Compare commits

..

172 Commits
0.3 ... 0.6

Author SHA1 Message Date
artoo
cbce0239ec Merge pull request #31 from artix-linux/devel
Devel
2017-10-04 21:48:16 +02:00
udeved
f6a0e565af buildtree: change rsync default args 2017-10-04 21:47:44 +02:00
udeved
cfd03d199f buildpkg: fix msg display 2017-10-04 21:47:06 +02:00
udeved
3cf71e6e08 buildiso: fix umount handler 2017-10-04 16:16:01 +02:00
udeved
276b5de46f signfile: remove gpg_args
builldtree: rename artix repo tree
2017-10-03 20:17:21 +02:00
udeved
587512add9 buildiso: clean up old vars 2017-10-03 19:54:06 +02:00
udeved
0eedc88f2f update artools.conf 2017-10-03 19:53:44 +02:00
udeved
2b08fb55ee buildpkg: set lib32 work dir consistently 2017-10-03 19:53:14 +02:00
udeved
b0b95c359d rename pacman-multilib*.conf 2017-10-03 00:55:54 +02:00
udeved
fdeb9f8a54 update import lists 2017-10-02 22:27:42 +02:00
udeved
e365743567 buildiso: fixes 2017-10-02 22:26:45 +02:00
udeved
7acf81b2c8 deployiso: rm commented code 2017-10-02 22:26:19 +02:00
udeved
ca15981350 mkchrootpkg: reopen console in chroot 2017-10-02 22:25:38 +02:00
udeved
188f50e968 util-iso: onfigure only cal if exists 2017-10-02 18:21:07 +02:00
udeved
77e20fd5c0 chroot-run: mount machine-id conditional 2017-10-02 18:09:24 +02:00
udeved
260e9fb4c5 update mkinitcpio.conf 2017-10-02 16:27:55 +02:00
udeved
e597de9377 util-iso-chroot: rm machine-id 2017-10-02 09:27:00 +02:00
udeved
a1745b28b1 update pacman multilib conf 2017-10-02 09:26:16 +02:00
udeved
d2e6872b78 buildyaml: fix 2017-10-01 23:12:54 +02:00
udeved
2cac649a0f buildyaml: readd cal switch 2017-10-01 22:57:28 +02:00
udeved
80b84c3fdb buildyaml: fixes 2017-10-01 22:53:26 +02:00
udeved
762ab73d6e Makefile: drop yaml separation 2017-10-01 18:21:33 +02:00
udeved
51c613b203 util-yaml: fix configure_calamares() 2017-10-01 18:20:50 +02:00
udeved
a4ee7b3dc6 util-iso: fix umounting on error 2017-10-01 17:02:09 +02:00
udeved
3f0c2d74f8 buildiso: add buildiso-testing symlink 2017-10-01 16:56:23 +02:00
udeved
e27349a1d9 buildiso: fix umount 2017-10-01 10:04:37 +02:00
udeved
c981ab4a83 basestrap: init switches properly fix 2017-10-01 10:03:50 +02:00
udeved
d49b0dedc5 signfile: fix it 2017-10-01 00:31:27 +02:00
udeved
4f8861d158 base: add net-tools 2017-09-30 22:10:57 +02:00
udeved
e164b60208 mkchrootpkg: open ctty in chroot 2017-09-30 18:22:15 +02:00
udeved
a84b4884f5 buildpkg: remove util-pkg-chroot
update import list
2017-09-30 17:44:44 +02:00
7bb8801f31 signfile: fix typo in variable name 2017-09-27 15:14:04 +01:00
9a83ca420f signfile: add pipeline vars support 2017-09-27 15:05:22 +01:00
udeved
1995bb87d6 util-pkg-tree: fix c&p error 2017-09-24 10:35:39 +02:00
udeved
7a6f8946d5 buildtree: write update patches on compare 2017-09-24 10:30:03 +02:00
udeved
c31fcbafd5 Merge branch 'devel' of github.com:artix-linux/artools into devel 2017-09-24 09:31:26 +02:00
udeved
7ff31cbaa0 findupdates: fixes
buildtree: add compare switch
2017-09-24 09:24:39 +02:00
archnous
8696c8f986 remove extraneous header 2017-09-24 01:10:01 +03:00
archnous
9c55510610 fix add array elements 2017-09-24 01:07:12 +03:00
udeved
8742397f69 findupdates: first step to util-msg integration 2017-09-23 23:55:52 +02:00
udeved
6334b60956 initcpio: remove miso leftovers, set misobasedir=artix 2017-09-23 23:53:16 +02:00
udeved
69511b6ce9 findupdates: impirt util.sh 2017-09-23 22:48:50 +02:00
udeved
bf814c03fe findupdates: forgot load_user_info 2017-09-23 22:39:00 +02:00
udeved
f6f2776a34 initial findupdates inclusion 2017-09-23 22:33:32 +02:00
udeved
21951149b9 util-pkg-tree: fix multilib llvm import 2017-09-23 22:14:15 +02:00
udeved
902a3913c8 lib:remove some deprecated code 2017-09-23 12:19:13 +02:00
udeved
1dc4255ef4 signfile: add hellbound support 2017-09-23 12:18:09 +02:00
udeved
7e45b8020a update import lists 2017-09-23 12:17:27 +02:00
udeved
28c9f9d708 util-pkg-publish: move the rsync to proper place for local move test runs 2017-09-21 21:34:29 +02:00
udeved
dc791a8ff5 deploypkg: minor fix 2017-09-16 20:24:20 +02:00
udeved
fd75e887c2 update import list 2017-09-16 20:23:45 +02:00
udeved
59b6cc1314 basestrap: fix interactive and hostcache arg logic 2017-09-16 16:17:25 +02:00
udeved
4438210168 util-pkg-publish: show some msgs 2017-09-15 09:35:18 +02:00
udeved
20474cc5ca deploypkg: rm old code 2017-09-15 00:34:45 +02:00
udeved
422f8f0253 deploypkg: add option to move repo packages to another repo 2017-09-15 00:29:30 +02:00
udeved
9a2be670bc clean up some code 2017-09-15 00:28:31 +02:00
udeved
7ff5e93bfe buildtree: support lib32 imports 2017-09-14 19:39:31 +02:00
udeved
98854cf650 update data files 2017-09-14 19:38:36 +02:00
udeved
0e7350e39d util-pkg-tree: fix sed 2017-09-13 22:27:15 +02:00
udeved
09e05ef59b buildtree: sed the builds 2017-09-13 19:33:12 +02:00
udeved
127165d33e util-pkg-publish: go in repo dir 2017-09-13 11:01:38 +02:00
artoo
6f154bb828 Merge pull request #30 from artix-linux/devel
Devel
2017-09-11 11:11:22 +02:00
udeved
488a385c03 fix patch name 2017-09-09 11:06:40 +02:00
udeved
c7696e61fc buildtree: update patches 2017-09-09 10:59:56 +02:00
udeved
cbe3d19a30 buildtree: add artix.bashrc 2017-09-09 09:01:54 +02:00
udeved
0f90ef836a buildtree: include patches 2017-09-09 03:01:41 +02:00
udeved
594ee6716a add artix glibc and bash patches 2017-09-09 02:39:02 +02:00
udeved
365762a494 buildpkg: remove staging 2017-09-07 09:38:49 +02:00
udeved
fdb3361041 buildtree: add push switch 2017-09-06 21:34:16 +02:00
udeved
f56031547f util-pkg-tree: fix source paths 2017-09-06 18:53:26 +02:00
udeved
d2cf21e71e util-pkg-tree: fix testing import 2017-09-06 17:38:59 +02:00
udeved
bcdeb2f337 buildtree: import from testing if exists 2017-09-06 17:16:22 +02:00
udeved
f81423405d chroot-run: pass through exit val 2017-09-05 23:27:05 +02:00
udeved
1ffb06e810 libs: cleanup 2017-09-05 19:29:28 +02:00
udeved
f07da7433a update import lists 2017-09-05 19:29:02 +02:00
udeved
d2957e9d11 util-pkg-tree: sleep 10 between pushes 2017-09-04 19:10:45 +02:00
udeved
83c385c12e import.list.d: reorder 2017-09-04 19:10:15 +02:00
udeved
e9218093d0 chroot-run: import util-chroot.sh 2017-09-04 10:19:34 +02:00
udeved
eee80c1478 chroot-run: kill possible processes in chroot
buildpkg: makepkg.conf override
2017-09-04 10:10:37 +02:00
udeved
0bad32939c prepare 0.6 rel 2017-09-03 21:10:51 +02:00
udeved
59bb576963 buildpkg: die on mkchroot fail 2017-09-01 22:23:18 +02:00
udeved
a90c850b1b cleanup 2017-09-01 22:20:14 +02:00
udeved
d060b051c7 Makefile: remove signpkgs 2017-09-01 22:18:42 +02:00
udeved
f3a4d4c56f signfile: make gpg args configurable 2017-09-01 22:17:25 +02:00
udeved
d3e0d1cff8 deploypkg: add exit code 2017-09-01 22:16:51 +02:00
udeved
23ee0537a3 lddd: update 2017-09-01 22:15:17 +02:00
udeved
5ebc08a875 buildpkg: fix repo name 2017-08-29 22:04:29 +02:00
udeved
64f9263da8 util-pkg-publish: sign pkg before adding to repo 2017-08-29 18:25:40 +02:00
udeved
4a6c2bd4c9 buildpkg, checkpkg, deploypkg: fixes 2017-08-29 18:12:57 +02:00
udeved
8b8ce8674b system: import zlib 2017-08-29 18:10:27 +02:00
udeved
e42ce00169 Makefile: add buildpkg testing and staging symlinks 2017-08-29 16:39:45 +02:00
udeved
cb239e152a buildpkg & deplyopkg: fixes 2017-08-29 16:39:11 +02:00
udeved
6a0edc7e2c buildpkg: fixes
deploypkg: do the PKGBUILd sourcing
2017-08-29 16:04:41 +02:00
udeved
49e6225dc4 buildpkg: add repo driven pacman.conf; rm make.list.d 2017-08-29 10:55:28 +02:00
udeved
61310dc54f deploypkg: update 2017-08-28 15:13:52 +02:00
udeved
dff1495ac2 buildpkg: rm cache_dir_pkg and pkg_dir vars 2017-08-28 10:27:18 +02:00
udeved
ad7b1e4ce5 deployment: prepare the move away from SF 2017-08-27 12:42:13 +02:00
udeved
b05e9419ee util-pkg-tree: clean up PR fn 2017-08-26 01:59:29 +02:00
udeved
d1b8a65e80 util-pkg-tree: create a PR for each import commit and push 2017-08-26 01:45:37 +02:00
udeved
b53369b49c util-pkg: add find_pool_package() 2017-08-22 19:01:44 +02:00
udeved
79c380b4ce util-pkg-tree: push after each import commit 2017-08-22 19:01:10 +02:00
udeved
5b2436ccc3 chroot-run: bind mount /etc/machine-id 2017-08-19 16:53:04 +02:00
udeved
200dbae331 start 0.6 2017-08-18 20:16:36 +02:00
artoo
01142309ac Merge pull request #29 from artix-linux/devel
Devel-0.5.4
2017-08-18 20:02:42 +02:00
udeved
d630ed2582 buildpkg: autocreate root chroot 2017-08-18 19:55:16 +02:00
udeved
9c546ca7fb buildiso, buildyaml: kill run_dir 2017-08-18 18:50:57 +02:00
udeved
a6a74c69f1 util-iso: fix traps 2017-08-18 13:40:51 +02:00
udeved
0f51544da4 buildiso: always load systemwide base profile 2017-08-18 12:23:31 +02:00
udeved
afe30328a6 data: remove example profile.conf & repo_info 2017-08-18 12:22:46 +02:00
udeved
9d7148b60e clean up code 2017-08-18 10:00:55 +02:00
artoo
afa239995c Merge pull request #28 from artix-linux/devel
Devel-0.5.3
2017-08-18 01:14:53 +02:00
udeved
0b4a4840e3 update readme 2017-08-18 01:14:09 +02:00
udeved
034e5a0a82 util: #18 2017-08-18 01:11:31 +02:00
udeved
d2590ddd74 util-profile: adopt system wide base profile 2017-08-18 01:10:50 +02:00
udeved
2975de2fb5 buildtree: prepare to drop import repos 2017-08-17 23:46:26 +02:00
udeved
b9383b628c remove pkglist.d 2017-08-17 11:53:01 +02:00
artoo
01bc8673c4 Merge pull request #27 from artix-linux/devel
Devel
2017-08-17 02:24:35 +02:00
udeved
0fcdc6af63 Makefile: add repo_info file 2017-08-17 02:04:16 +02:00
udeved
5ae9803be1 add iso base profile 2017-08-17 01:50:02 +02:00
udeved
b36ffd813e buildpkg: tweak chroots and pkg dir 2017-08-17 01:13:26 +02:00
artoo
fb0ad6d51f Merge pull request #26 from artix-linux/devel
Devel
2017-08-16 21:25:47 +02:00
udeved
3beb019d7c buildpkg: add switch for pkg copy/symlink 2017-08-16 21:22:49 +02:00
udeved
331520a3d6 update world-arch and galaxy-arch import list 2017-08-16 20:53:17 +02:00
udeved
ee196e84c7 update world-arch import 2017-08-16 20:29:52 +02:00
udeved
de6149a5bc rm sane 2017-08-16 20:21:17 +02:00
udeved
524ba5fe47 update import lists 2017-08-16 20:10:43 +02:00
udeved
b0169fc1b8 buildpkg: use $repo-$arch chroots and pool dirs
deploypkg: add option to copy a package instead of symlinking to repo
2017-08-16 17:01:29 +02:00
udeved
50577f0501 buildpkg: rm left over vars 2017-08-16 15:39:59 +02:00
udeved
9eb8ad06e2 buildpkg: clean up 2017-08-16 10:57:42 +02:00
udeved
a4bc7c5b01 buildpkg: allow pacman.conf and makepkg.conf overrides for jenkins 2017-08-16 01:37:30 +02:00
udeved
a050b76d8e buildtree: remove artix main repo sync 2017-08-14 23:23:55 +02:00
udeved
adc4fa6724 mkchrootpkg: export LAN explicity
fixes #24
but needs still closer look why the LANG is not set by /etc/locale.conf
2017-08-14 18:04:21 +02:00
artoo
e52f9b577e Merge pull request #22 from artix-linux/devel
Devel-0.5
2017-08-06 02:19:23 +02:00
udeved
31baa79248 start 0.5 2017-08-06 01:59:03 +02:00
udeved
fb1cead10a buildtree: pull testing optionally 2017-08-06 00:31:14 +02:00
artoo
01e37feb4e Merge pull request #21 from artix-linux/devel
buildtree: improve import
2017-08-05 22:32:02 +02:00
udeved
25e2755ffa buildtree: improve import 2017-08-05 22:20:44 +02:00
udeved
03fc8aea26 buildtree: adopt new arch import repos 2017-08-05 20:49:03 +02:00
udeved
fcc006f30f util-pkg-tree: just pull master and archlinux 2017-08-03 22:58:18 +02:00
artoo
525460b6ed Merge pull request #19 from artix-linux/devel
Devel-0.4.2
2017-08-02 23:47:41 +02:00
udeved
b0166d330e deploypkg: fix typos 2017-08-02 23:46:04 +02:00
udeved
cb4f83d765 cleaning 2017-08-02 23:32:33 +02:00
udeved
3134c3a4e8 deploypkg: add move mode 2017-08-02 23:30:31 +02:00
udeved
53c2b55044 remove heavy docbook depend 2017-08-02 19:46:46 +02:00
udeved
5d330d8f0a buildiso: default to base profile
buildyaml: default to base profile
deployiso: default to base profile
2017-08-02 17:09:33 +02:00
udeved
de93035152 data: don't import linux-lts in archlinux branch 2017-08-02 16:55:43 +02:00
udeved
4349f297a8 util-iso: include profile name in iso filename 2017-08-02 12:58:15 +02:00
udeved
81c8b63f0a buildpkg: display repo name 2017-08-01 19:52:01 +02:00
udeved
554f7611ba data: update artools.conf 2017-08-01 19:51:33 +02:00
udeved
754617f711 doc: update artools.conf.xml 2017-08-01 19:51:06 +02:00
udeved
0acc0a180a util-pkg-chroot: chown repo 2017-08-01 19:50:32 +02:00
artoo
1e4dc7cfcb Merge pull request #17 from artix-linux/devel
Devel-0.4.1
2017-07-31 21:03:08 +02:00
udeved
441257841c fix checks 2017-07-31 18:54:33 +02:00
udeved
33b4a689c1 buildpkg: make repository name optarg; add sig check
deploypkg: add some checks for existing pkg & sig
2017-07-31 17:59:43 +02:00
udeved
35016b7af4 buildpkg: add repo_add switch 2017-07-31 10:09:08 +02:00
artoo
20546c493a Merge pull request #16 from artix-linux/devel
Devel-0.4.1
2017-07-30 21:44:21 +02:00
udeved
02829b046f util-pkg-publish: silence the lock check 2017-07-30 21:43:17 +02:00
udeved
2feeb4f30f import.list.d: add qt5 to world list 2017-07-30 21:42:46 +02:00
udeved
50db8cf691 delete left over files 2017-07-30 15:50:07 +02:00
udeved
c272625422 util-pkg-tree: fix import commit msg
deploypkg: use new repo code
2017-07-30 03:46:39 +02:00
udeved
b8c9063e21 util-pkg-publish: simplify repo code 2017-07-30 03:45:35 +02:00
udeved
be70f7ed2c util-profile: set new netgroups url 2017-07-30 03:45:01 +02:00
udeved
3f05c3e97d version 0.4 2017-07-30 01:12:04 +02:00
artoo
edb486c662 Merge pull request #15 from artix-linux/devel
Devel
2017-07-30 01:10:03 +02:00
udeved
088ae05ad8 util-pkg-publish: fix silly error 2017-07-29 23:29:10 +02:00
udeved
0cbbe9f23f buildiso, buildyaml: remove profile multilib, basic and extra switches 2017-07-29 23:03:08 +02:00
udeved
f591a6b94e util-pkg-publish: add better repo lock check 2017-07-29 22:44:38 +02:00
artoo
47d7a47d96 Merge pull request #14 from artix-linux/devel
Devel-0.4
2017-07-28 17:03:40 +02:00
udeved
f0a5f0f442 util-yaml: clean old code 2017-07-28 10:32:48 +02:00
udeved
d3b67b4a1b buildiso: fix trap
buildyaml: fix profile loading
deployiso: cosmetics
2017-07-28 03:42:28 +02:00
udeved
00e041a143 util-yaml: fix netgroups 2017-07-28 02:48:36 +02:00
udeved
3b70c77f35 remove iso build lists 2017-07-28 02:42:58 +02:00
86 changed files with 1778 additions and 3553 deletions

149
Makefile
View File

@@ -1,4 +1,4 @@
Version=0.3
Version=0.6
PREFIX = /usr/local
SYSCONFDIR = /etc
@@ -22,14 +22,7 @@ LIBS_BASE = \
lib/util-fstab.sh
SHARED_BASE = \
data/pacman-default.conf \
data/pacman-multilib.conf
LIST_PKG = \
$(wildcard data/pkg.list.d/*.list)
ARCH_CONF = \
$(wildcard data/make.conf.d/*.conf)
$(wildcard data/pacman-*.conf)
LIST_IMPORT = \
$(wildcard data/import.list.d/*.list)
@@ -38,8 +31,8 @@ BIN_PKG = \
bin/checkpkg \
bin/lddd \
bin/finddeps \
bin/findupdates \
bin/find-libdeps \
bin/signpkgs \
bin/mkchrootpkg \
bin/buildpkg \
bin/buildtree \
@@ -49,21 +42,24 @@ LIBS_PKG = \
$(wildcard lib/util-pkg*.sh)
SHARED_PKG = \
data/makepkg.conf
$(wildcard data/makepkg-*.conf)
LIST_ISO = \
$(wildcard data/iso.list.d/*.list)
PATCHES = \
$(wildcard data/patches/*.patch)
BIN_ISO = \
bin/buildiso \
bin/deployiso
bin/deployiso \
bin/buildyaml
LIBS_ISO = \
$(wildcard lib/util-iso*.sh)
$(wildcard lib/util-iso*.sh) \
$(wildcard lib/util-yaml*.sh) \
lib/util-profile.sh
SHARED_ISO = \
data/mkinitcpio.conf \
data/profile.conf.example
data/linux.preset
CPIOHOOKS = \
$(wildcard initcpio/hooks/*)
@@ -74,27 +70,24 @@ CPIOINST = \
CPIO = \
initcpio/script/artix_shutdown
MAN_XML = \
buildpkg.xml \
buildtree.xml \
buildiso.xml \
deployiso.xml \
deploypkg.xml \
buildyaml.xml \
artools.conf.xml \
profile.conf.xml
BASE = \
$(wildcard data/base/Packages-*) \
data/base/profile.conf
BIN_YAML = \
bin/buildyaml
LIVE_ETC = \
data/base/live-overlay/etc/issue \
data/base/live-overlay/etc/fstab
LIBS_YAML = \
$(wildcard lib/util-yaml*.sh) \
lib/util-profile.sh
LIVE_ETC_DEFAULT = \
$(wildcard data/base/live-overlay/etc/default/*)
SHARED_YAML = \
data/linux.preset
LIVE_ETC_PAM = \
$(wildcard data/base/live-overlay/etc/pam.d/*)
all: $(BIN_BASE) $(BIN_PKG) $(BIN_ISO) $(BIN_YAML) doc
LIVE_ETC_SUDOERS = \
$(wildcard data/base/live-overlay/etc/sudoers.d/*)
all: $(BIN_BASE) $(BIN_PKG) $(BIN_ISO)
edit = sed -e "s|@datadir[@]|$(DESTDIR)$(PREFIX)/share/artools|g" \
-e "s|@sysconfdir[@]|$(DESTDIR)$(SYSCONFDIR)/artools|g" \
@@ -108,13 +101,8 @@ edit = sed -e "s|@datadir[@]|$(DESTDIR)$(PREFIX)/share/artools|g" \
@chmod a-w "$@"
@chmod +x "$@"
doc:
mkdir -p man
$(foreach var,$(MAN_XML),xsltproc /usr/share/docbook2X/xslt/man/docbook.xsl docbook/$(var) | db2x_manxml --output-dir man ;)
clean:
rm -f $(BIN_BASE) ${BIN_PKG} ${BIN_ISO}
rm -rf man
install_base:
install -dm0755 $(DESTDIR)$(SYSCONFDIR)/artools
@@ -130,18 +118,14 @@ install_base:
install -m0644 ${SHARED_BASE} $(DESTDIR)$(PREFIX)/share/artools
install_pkg:
install -dm0755 $(DESTDIR)$(SYSCONFDIR)/artools/pkg.list.d
install -m0644 ${LIST_PKG} $(DESTDIR)$(SYSCONFDIR)/artools/pkg.list.d
install -dm0755 $(DESTDIR)$(SYSCONFDIR)/artools/import.list.d
install -m0644 ${LIST_IMPORT} $(DESTDIR)$(SYSCONFDIR)/artools/import.list.d
install -dm0755 $(DESTDIR)$(SYSCONFDIR)/artools/make.conf.d
install -m0644 ${ARCH_CONF} $(DESTDIR)$(SYSCONFDIR)/artools/make.conf.d
install -dm0755 $(DESTDIR)$(PREFIX)/bin
install -m0755 ${BIN_PKG} $(DESTDIR)$(PREFIX)/bin
ln -sf buildpkg $(DESTDIR)$(PREFIX)/bin/buildpkg-testing
ln -sf find-libdeps $(DESTDIR)$(PREFIX)/bin/find-libprovides
install -dm0755 $(DESTDIR)$(PREFIX)/lib/artools
@@ -150,17 +134,31 @@ install_pkg:
install -dm0755 $(DESTDIR)$(PREFIX)/share/artools
install -m0644 ${SHARED_PKG} $(DESTDIR)$(PREFIX)/share/artools
install -dm0755 $(DESTDIR)$(PREFIX)/share/man/man1
gzip -c man/buildpkg.1 > $(DESTDIR)$(PREFIX)/share/man/man1/buildpkg.1.gz
gzip -c man/buildtree.1 > $(DESTDIR)$(PREFIX)/share/man/man1/buildtree.1.gz
install -dm0755 $(DESTDIR)$(PREFIX)/share/artools/patches
install -m0644 ${PATCHES} $(DESTDIR)$(PREFIX)/share/artools/patches
install_isobase:
install -dm0755 $(DESTDIR)$(PREFIX)/share/artools/iso-profiles/base
install -m0644 ${BASE} $(DESTDIR)$(PREFIX)/share/artools/iso-profiles/base
install -dm0755 $(DESTDIR)$(PREFIX)/share/artools/iso-profiles/base/live-overlay/etc
install -m0644 ${LIVE_ETC} $(DESTDIR)$(PREFIX)/share/artools/iso-profiles/base/live-overlay/etc
install -dm0755 $(DESTDIR)$(PREFIX)/share/artools/iso-profiles/base/live-overlay/etc/default
install -m0644 ${LIVE_ETC_DEFAULT} $(DESTDIR)$(PREFIX)/share/artools/iso-profiles/base/live-overlay/etc/default
install -dm0755 $(DESTDIR)$(PREFIX)/share/artools/iso-profiles/base/live-overlay/etc/pam.d
install -m0644 ${LIVE_ETC_PAM} $(DESTDIR)$(PREFIX)/share/artools/iso-profiles/base/live-overlay/etc/pam.d
install -dm0755 $(DESTDIR)$(PREFIX)/share/artools/iso-profiles/base/live-overlay/etc/sudoers.d
install -m0644 ${LIVE_ETC_SUDOERS} $(DESTDIR)$(PREFIX)/share/artools/iso-profiles/base/live-overlay/etc/sudoers.d
install_iso:
install -dm0755 $(DESTDIR)$(SYSCONFDIR)/artools/iso.list.d
install -m0644 ${LIST_ISO} $(DESTDIR)$(SYSCONFDIR)/artools/iso.list.d
install -dm0755 $(DESTDIR)$(PREFIX)/bin
install -m0755 ${BIN_ISO} $(DESTDIR)$(PREFIX)/bin
ln -sf buildiso $(DESTDIR)$(PREFIX)/bin/buildiso-testing
install -dm0755 $(DESTDIR)$(PREFIX)/lib/artools
install -m0644 ${LIBS_ISO} $(DESTDIR)$(PREFIX)/lib/artools
@@ -172,31 +170,9 @@ install_iso:
install -m0755 ${CPIO} $(DESTDIR)$(SYSCONFDIR)/initcpio
install -dm0755 $(DESTDIR)$(PREFIX)/share/artools
install -m0644 ${SHARED_ISO} $(DESTDIR)$(PREFIX)/share/artools
install -dm0755 $(DESTDIR)$(PREFIX)/share/man/man1
gzip -c man/buildiso.1 > $(DESTDIR)$(PREFIX)/share/man/man1/buildiso.1.gz
gzip -c man/deployiso.1 > $(DESTDIR)$(PREFIX)/share/man/man1/deployiso.1.gz
install -dm0755 $(DESTDIR)$(PREFIX)/share/man/man5
gzip -c man/artools.conf.5 > $(DESTDIR)$(PREFIX)/share/man/man5/artools.conf.5.gz
gzip -c man/profile.conf.5 > $(DESTDIR)$(PREFIX)/share/man/man5/profile.conf.5.gz
install_yaml:
install -dm0755 $(DESTDIR)$(PREFIX)/bin
install -m0755 ${BIN_YAML} $(DESTDIR)$(PREFIX)/bin
install -dm0755 $(DESTDIR)$(PREFIX)/lib/artools
install -m0644 ${LIBS_YAML} $(DESTDIR)$(PREFIX)/lib/artools
install -dm0755 $(DESTDIR)$(PREFIX)/share/artools
install -m0644 ${SHARED_YAML} $(DESTDIR)$(PREFIX)/share/artools
install -dm0755 $(DESTDIR)$(PREFIX)/share/man/man1
gzip -c man/buildyaml.1 > $(DESTDIR)$(PREFIX)/share/man/man1/buildyaml.1.gz
uninstall_base:
for f in ${SYSCONF}; do rm -f $(DESTDIR)$(SYSCONFDIR)/artools/$$f; done
for f in ${BIN_BASE}; do rm -f $(DESTDIR)$(PREFIX)/bin/$$f; done
@@ -204,39 +180,34 @@ uninstall_base:
for f in ${LIBS_BASE}; do rm -f $(DESTDIR)$(PREFIX)/lib/artools/$$f; done
uninstall_pkg:
for f in ${LIST_PKG}; do rm -f $(DESTDIR)$(SYSCONFDIR)/artools/pkg.list.d/$$f; done
for f in ${LIST_IMPORT}; do rm -f $(DESTDIR)$(SYSCONFDIR)/artools/import.list.d/$$f; done
for f in ${ARCH_CONF}; do rm -f $(DESTDIR)$(SYSCONFDIR)/artools/make.conf.d/$$f; done
for f in ${BIN_PKG}; do rm -f $(DESTDIR)$(PREFIX)/bin/$$f; done
rm -f $(DESTDIR)$(PREFIX)/bin/find-libprovides
rm -f $(DESTDIR)$(PREFIX)/bin/buildpkg-testing
for f in ${SHARED_PKG}; do rm -f $(DESTDIR)$(PREFIX)/share/artools/$$f; done
for f in ${PATCHES}; do rm -f $(DESTDIR)$(PREFIX)/share/artools/patches/$$f; done
for f in ${LIBS_PKG}; do rm -f $(DESTDIR)$(PREFIX)/lib/artools/$$f; done
rm -f $(DESTDIR)$(PREFIX)/share/man/man1/buildpkg.1.gz
rm -f $(DESTDIR)$(PREFIX)/share/man/man1/buildtree.1.gz
uninstall_isobase:
for f in ${BASE}; do rm -f $(DESTDIR)$(PREFIX)/share/artools/iso-profiles/base/$$f; done
for f in ${LIVE_ETC}; do rm -f $(DESTDIR)$(PREFIX)/share/artools/iso-profiles/base/live-overlay/etc/$$f; done
for f in ${LIVE_ETC_DEFAULT}; do rm -f $(DESTDIR)$(PREFIX)/share/artools/iso-profiles/base/live-overlay/etc/default/$$f; done
for f in ${LIVE_ETC_PAM}; do rm -f $(DESTDIR)$(PREFIX)/share/artools/iso-profiles/base/live-overlay/etc/pam.d/$$f; done
for f in ${LIVE_ETC_SUDOERS}; do rm -f $(DESTDIR)$(PREFIX)/share/artools/iso-profiles/base/live-overlay/etc/sudoers.d/$$f; done
uninstall_iso:
for f in ${LIST_ISO}; do rm -f $(DESTDIR)$(SYSCONFDIR)/artools/iso.list.d/$$f; done
for f in ${BIN_ISO}; do rm -f $(DESTDIR)$(PREFIX)/bin/$$f; done
rm -f $(DESTDIR)$(PREFIX)/bin/buildiso-testing
for f in ${SHARED_ISO}; do rm -f $(DESTDIR)$(PREFIX)/share/artools/$$f; done
for f in ${LIBS_ISO}; do rm -f $(DESTDIR)$(PREFIX)/lib/artools/$$f; done
for f in ${CPIOHOOKS}; do rm -f $(DESTDIR)$(SYSCONFDIR)/initcpio/hooks/$$f; done
for f in ${CPIOINST}; do rm -f $(DESTDIR)$(SYSCONFDIR)/initcpio/install/$$f; done
for f in ${CPIO}; do rm -f $(DESTDIR)$(SYSCONFDIR)/initcpio/$$f; done
rm -f $(DESTDIR)$(PREFIX)/share/man/man1/buildiso.1.gz
rm -f $(DESTDIR)$(PREFIX)/share/man/man1/deployiso.1.gz
rm -f $(DESTDIR)$(PREFIX)/share/man/man5/artools.conf.5.gz
rm -f $(DESTDIR)$(PREFIX)/share/man/man5/profile.conf.5.gz
uninstall_yaml:
for f in ${BIN_YAML}; do rm -f $(DESTDIR)$(PREFIX)/bin/$$f; done
for f in ${LIBS_YAML}; do rm -f $(DESTDIR)$(PREFIX)/lib/artools/$$f; done
for f in ${SHARED_YAML}; do rm -f $(DESTDIR)$(PREFIX)/share/artools/$$f; done
rm -f $(DESTDIR)$(PREFIX)/share/man/man1/buildyaml.1.gz
install: install_base install_pkg install_iso install_isobase
install: install_base install_pkg install_iso install_yaml
uninstall: uninstall_base uninstall_pkg uninstall_iso uninstall_yaml
uninstall: uninstall_base uninstall_pkg uninstall_iso uninstall_isobase
dist:
git archive --format=tar --prefix=artools-$(Version)/ $(Version) | gzip -9 > artools-$(Version).tar.gz

View File

@@ -31,16 +31,12 @@ By default it is commented and shows just initialization values done in code.
Tools configuration is done in artools.conf or by args.
Specifying args will override artools.conf settings.
User build lists(eg 'my-super-build.list') can be placed in
~~~
$HOME/.config/artools/pkg.list.d
$HOME/.config/artools/iso.list.d
$HOME/.config/artools/import.list.d
~~~
overriding
~~~
/etc/artools/pkg.list.d
/etc/artools/iso.list.d
/etc/artools/import.list.d
~~~

View File

@@ -25,6 +25,8 @@ newroot=/mnt
hostcache=false
copykeyring=true
copymirrorlist=true
directory=false
interactive=false
usage() {
echo "usage: ${0##*/} [options] root [packages...]"
@@ -67,9 +69,9 @@ check_root
newroot=$1; shift
pacman_args=("${@:-base}")
${hostcache} && pacman_args+=(--cachedir="$newroot/var/cache/pacman/pkg")
${hostcache} || pacman_args+=(--cachedir="$newroot/var/cache/pacman/pkg")
${interactive} && pacman_args+=(--noconfirm)
${interactive} || pacman_args+=(--noconfirm)
[[ -n $pacman_conf ]] && pacman_args+=(--config="$pacman_conf")

View File

@@ -21,22 +21,21 @@ import ${LIBDIR}/util-iso.sh
prepare_build(){
timer_start=$(get_timer)
profile=$1
local profile_dir=${run_dir}/${profile}
load_profile "${profile_dir}"
load_profile "${profile}"
local user_conf=${profile_dir}/user-repos.conf pac_arch='default' pacman_conf
[[ "${target_arch}" == 'x86_64' ]] && pac_arch='multilib'
if [[ -f ${user_conf} ]];then
info "detected: %s" "user-repos.conf"
check_user_repos_conf "${user_conf}"
pacman_conf=${tmp_dir}/custom-pacman.conf
cat ${DATADIR}/pacman-$pac_arch.conf ${user_conf} > "$pacman_conf"
local pac_arch='default' pacman_conf pac_conf
[[ "${target_arch}" == 'x86_64' ]] && pac_arch='lib32'
if [[ ${stablility} == 'buildiso' ]];then
pac_conf=$pac_arch
else
pacman_conf="${DATADIR}/pacman-$pac_arch.conf"
pac_conf=$pac_arch-${stablility}
fi
pacman_conf="${DATADIR}/pacman-$pac_conf.conf"
[[ -f $AT_USERCONFDIR/pacman-$pac_conf.conf ]] && pacman_conf="$AT_USERCONFDIR/pacman-$pac_conf.conf"
iso_file=$(gen_iso_fn).iso
mkchroot_args+=(-C ${pacman_conf})
@@ -51,43 +50,29 @@ prepare_build(){
}
show_profile(){
local prof="$1"
prepare_build "$prof"
msg2 "iso_file: %s" "${iso_file}"
if ${verbose};then
msg2 "autologin: %s" "${autologin}"
[[ ${target_arch} == 'x86_64' ]] && msg2 "multilib: %s" "${multilib}"
msg2 "extra: %s" "${extra}"
msg2 "netinstall: %s" "${netinstall}"
msg2 "chrootcfg: %s" "${chrootcfg}"
${netinstall} && msg2 "netgroups: %s" "$(get_yaml)"
msg2 "netgroups: %s" "$(get_yaml)"
msg2 "hostname: %s" "${hostname}"
msg2 "username: %s" "${username}"
msg2 "password: %s" "${password}"
msg2 "login_shell: %s" "${login_shell}"
msg2 "addgroups: %s" "${addgroups}"
msg2 "enable_live: %s" "${enable_live[*]}"
msg2 "openrc_boot: %s" "${openrc_boot[*]}"
msg2 "openrc_default: %s" "${openrc_default[*]}"
fi
reset_profile
}
display_settings(){
show_version
show_config
# msg "PROFILE:"
# msg2 "build_lists: %s" "$(show_build_lists ${list_dir_iso})"
# msg2 "build_list_iso: %s" "${build_list_iso}"
msg2 "is_build_list: %s" "${is_build_list}"
msg "OPTIONS:"
msg2 "profile: %s" "${profile}"
msg2 "arch: %s" "${target_arch}"
msg2 "initsys: %s" "${initsys}"
msg2 "kernel: %s" "${kernel}"
@@ -99,21 +84,52 @@ display_settings(){
msg2 "iso_only: %s" "${iso_only}"
msg2 "persist: %s" "${persist}"
msg "DIST SETTINGS:"
msg2 "dist_name: %s" "${dist_name}"
msg2 "dist_release: %s" "${dist_release}"
msg2 "dist_branding: %s" "${dist_branding}"
msg "ISO SETTINGS:"
msg2 "iso_version: %s" "${iso_version}"
msg "BUILD QUEUE:"
run show_profile "${build_list_iso}"
msg "BUILD:"
show_profile
}
build(){
msg "Start building [%s]" "${profile}"
if ${clean_first};then
for copy in "${work_dir}"/*; do
[[ -d $copy ]] || continue
msg2 "Deleting chroot copy '%s'..." "$(basename "${copy}")"
lock 9 "$copy.lock" "Locking chroot copy '%s'" "$copy"
subvolume_delete_recursive "${copy}"
rm -rf --one-file-system "${copy}"
done
lock_close 9
rm -rf --one-file-system "${work_dir}"
clean_iso_root "${iso_root}"
fi
if ${iso_only}; then
[[ ! -d ${work_dir} ]] && die "Create images: buildiso -p %s -x" "${profile}"
compress_images
exit 1
fi
if ${images_only}; then
prepare_images
warning "Continue compress: buildiso -p %s -zc ..." "${profile}"
exit 1
else
prepare_images
compress_images
fi
msg "Finished building [%s]" "${profile}"
show_elapsed_time "${FUNCNAME}" "${timer_start}"
}
load_user_info
load_config "${AT_USERCONFDIR}/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
load_run_dir
clean_first=true
pretend=false
images_only=false
@@ -122,10 +138,12 @@ verbose=false
persist=false
mkchroot_args=()
cmd=${0##*/}
stablility=${cmd##*-}
usage() {
echo "Usage: ${0##*/} [options]"
echo " -p <profile> Buildset or profile [default: ${build_list_iso}]"
echo " -p <profile> Profile [default: ${profile}]"
echo " -a <arch> Arch [default: ${target_arch}]"
echo ' -r <dir> Chroots directory'
echo " [default: ${chroots_iso}]"
@@ -156,7 +174,7 @@ opts='p:a:r:t:k:i:g:czxmvqh'
while getopts "${opts}" arg; do
case "${arg}" in
p) build_list_iso="$OPTARG" ;;
p) profile="$OPTARG" ;;
a) target_arch="$OPTARG" ;;
r) chroots_iso="$OPTARG" ;;
t) cache_dir_iso="$OPTARG" ;;
@@ -178,8 +196,10 @@ shift $(($OPTIND - 1))
check_root
check_requirements
prepare_traps
prepare_build
${pretend} && display_settings && exit 1
run build "${build_list_iso}"
build

View File

@@ -21,7 +21,6 @@ SYSCONFDIR='@sysconfdir@'
import ${LIBDIR}/util.sh
import ${LIBDIR}/util-chroot.sh
import ${LIBDIR}/util-pkg.sh
import ${LIBDIR}/util-pkg-chroot.sh
show_pkg(){
check_build "$1"
@@ -37,136 +36,115 @@ display_settings(){
show_version
show_config
# msg "PROFILE:"
# msg2 "build_lists: %s" "$(show_build_lists ${list_dir_pkg})"
# msg2 "build_list_pkg: %s" "${build_list_pkg}"
msg2 "is_build_list: %s" "${is_build_list}"
msg "OPTIONS:"
msg2 "arch: %s" "${target_arch}"
msg2 "chroots_pkg: %s" "${chroots_pkg}"
msg2 "repository: %s" "${repository}"
msg2 "stablility: %s" "${stablility}"
msg "ARGS:"
msg2 "create_first: %s" "${create_first}"
msg2 "delete_first: %s" "${delete_first}"
msg2 "clean_first: %s" "${clean_first}"
msg2 "update_first: %s" "${update_first}"
msg2 "purge: %s" "${purge}"
msg2 "namcap: %s" "${namcap}"
msg2 "sign: %s" "${sign}"
msg2 "makepkg_args: %s" "${makepkg_args[*]}"
msg2 "mkchrootpkg_args: %s" "${mkchrootpkg_args[*]}"
msg "PATHS:"
msg2 "pkg_dir: %s" "${pkg_dir}"
if ${create_first};then
msg "PKG:"
msg2 "packages: %s" "${packages[*]}"
fi
msg "BUILD QUEUE:"
run show_pkg "${build_list_pkg}"
msg "BUILD:"
show_pkg "${package}"
}
load_user_info
load_config "${AT_USERCONFDIR}/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
load_vars "${PAC_USERCONFDIR}/makepkg.conf" || load_vars "$USER_HOME/.makepkg.conf"
load_vars /etc/makepkg.conf
create_first=false
delete_first=false
clean_first=false
update_first=false
purge=false
namcap=false
pretend=false
is_build_list=false
sign=false
is_multilib=false
mkchroot_args=()
mkchrootpkg_args=()
mkchrootpkg_args=(-c -n)
install_pkgs=()
prepare_build(){
local pac_arch='default'
package=''
cmd=${0##*/}
stablility=${cmd##*-}
repository=${PWD##*/}
base_devel=('base-devel')
if [[ "${target_arch}" == 'multilib' ]];then
pac_arch='multilib'
is_multilib=true
prepare_build(){
local pac_arch='default' pac_conf=
if [[ "${target_arch}" == 'lib32' ]];then
pac_arch='lib32'
base_devel+=('multilib-devel')
fi
local pacman_conf="${DATADIR}/pacman-$pac_arch.conf"
if [[ ${stablility} == 'buildpkg' ]];then
pac_conf=$pac_arch
else
pac_conf=$pac_arch-${stablility}
fi
work_dir="${chroots_pkg}/${target_arch}"
pkg_dir="${cache_dir_pkg}/${target_arch}"
[[ "$pac_arch" == 'lib32' ]] && target_arch='x86_64'
local makepkg_conf=$(get_makepkg_conf "${target_arch}")
local pacman_conf="${DATADIR}/pacman-$pac_conf.conf"
[[ -f $AT_USERCONFDIR/pacman-$pac_conf.conf ]] && pacman_conf="$AT_USERCONFDIR/pacman-$pac_conf.conf"
work_dir="${chroots_pkg}/${repository}-${target_arch}"
[[ "$pac_arch" == 'multilib' ]] && target_arch='x86_64'
local makepkg_conf="${DATADIR}/makepkg-${target_arch}.conf"
[[ -f $AT_USERCONFDIR/makepkg-${target_arch}.conf ]] && makepkg_conf="$AT_USERCONFDIR/makepkg-${target_arch}.conf"
mkchroot_args+=(-C ${pacman_conf} -M ${makepkg_conf} -U "${build_mirror}")
mkchroot_args+=(-C "${pacman_conf}" -M "${makepkg_conf}" "${work_dir}/root")
mkchrootpkg_args+=(-r ${work_dir})
prepare_dir "${pkg_dir}"
prepare_dir "${work_dir}"
eval_build_list "${list_dir_pkg}" "${build_list_pkg}"
packages=('base-devel')
${is_multilib} && packages+=('multilib-devel')
mkchrootpkg_args+=(-r "${work_dir}" "${makepkg_args[@]}")
timer_start=$(get_timer)
}
build(){
local timer_start=$(get_timer)
if [[ -f ${package}/PKGBUILD ]];then
cd ${package}
else
die "Directory must contain a PKGBUILD!"
fi
msg "Start building [%s] (%s)" "${package}" "${repository}"
exec mkchrootpkg "${mkchrootpkg_args[@]}"
show_elapsed_time "${FUNCNAME}" "${timer_start}"
}
usage() {
echo "Usage: ${0##*/} [options]"
echo " -p <pkg> Build list or pkg [default: ${build_list_pkg}]"
echo "Usage: ${0##*/} [options] -- [makepkg_args]"
echo " -p <pkg> Package to build [default: ${package}]"
echo " -a <arch> Arch [default: ${target_arch}]"
echo ' -r <dir> Chroots directory'
echo " [default: ${chroots_pkg}]"
echo ' -i <pkgs> Install packages into the working copy of the chroot'
echo ' -o Create chroot'
echo ' -d Delete chroot'
echo ' -c Clean chroot copy'
echo ' -u Update chroot copy'
echo ' -w Clean up cache and sources'
echo ' -n Install and run namcap check'
echo ' -s Sign packages'
echo " -r <dir> Chroots directory [default: ${chroots_pkg}]"
echo ' -z <repo> Repo name'
echo ' -c Create root chroot'
echo ' -q Query settings and pretend build'
echo ' -h This help'
echo ''
echo "Default makepkg_args args: ${makepkg_args[*]}"
echo ''
exit $1
}
orig_argv=("$0" "$@")
opts='p:a:r:i:odcuwnsqh'
opts='p:a:r:z:cqh'
while getopts "${opts}" arg; do
case "${arg}" in
p) build_list_pkg="$OPTARG" ;;
p) package="$OPTARG" ;;
a) target_arch="$OPTARG" ;;
r) chroots_pkg="$OPTARG" ;;
i) install_pkgs+=("$OPTARG"); mkchrootpkg_args+=(-I "${install_pkgs[*]}") ;;
o) create_first=true ;;
d) delete_first=true ;;
c) clean_first=true ; mkchrootpkg_args+=(-c) ;;
u) update_first=true ; mkchrootpkg_args+=(-u) ;;
w) purge=true ;;
n) namcap=true; mkchrootpkg_args+=(-n) ;;
s) sign=true ;;
z) repository="$OPTARG" ;;
c) create_first=true ;;
q) pretend=true ;;
h|?) usage 0 ;;
*) echo "invalid argument '%s'" "${arg}"; usage 1 ;;
esac
done
shift $(($OPTIND - 1))
# shift $(($OPTIND - 1))
makepkg_args+=("${@:$OPTIND}")
check_root
@@ -174,8 +152,28 @@ prepare_build
${pretend} && display_settings && exit
${delete_first} && delete_chroot "${work_dir}/root" "${work_dir}"
if ${create_first} || [[ ! -d ${work_dir}/root ]];then
msg "Creating chroot for [%s] (%s)..." "${repository}" "${target_arch}"
${create_first} && create_chroot "${mkchroot_args[@]}" "${work_dir}/root" "${packages[@]}"
for copy in "${work_dir}"/*; do
[[ -d $copy ]] || continue
msg2 "Deleting chroot copy '%s'..." "$(basename "${copy}")"
run make_pkg "${build_list_pkg}"
lock 9 "$copy.lock" "Locking chroot copy '%s'" "$copy"
subvolume_delete_recursive "${copy}"
rm -rf --one-file-system "${copy}"
done
lock_close 9
rm -rf --one-file-system "${work_dir}"
mkdir -p "${work_dir}"
setarch "${target_arch}" mkchroot \
"${mkchroot_args[@]}" "${base_devel[@]}" || abort
else
lock 9 "${work_dir}/root.lock" "Locking clean chroot"
chroot-run "${mkchroot_args[@]}" \
pacman -Syu --noconfirm || abort
fi
build "${package}"

View File

@@ -13,66 +13,54 @@ version=@version@
LIBDIR='@libdir@'
SYSCONFDIR='@sysconfdir@'
DATADIR='@datadir@'
[[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh
import ${LIBDIR}/util.sh
import ${LIBDIR}/util-pkg.sh
import ${LIBDIR}/util-pkg-tree.sh
show_imports(){
for repo in ${repo_tree_artix[@]};do
read_import_list "$repo"
for p in ${import_list[@]};do
msg2 "%s: %s" ""$repo "$p"
done
done
}
display_settings(){
show_version
show_config
msg "REPOS:"
msg2 "repo_tree_artix: %s" "${repo_tree_artix[*]}"
msg2 "repo_tree_arch: %s" "${repo_tree_arch[*]}"
msg2 "repo_tree_artix: %s" "${repo_tree_artix[*]}"
msg "ARGS:"
msg2 "verbose: %s" "${verbose}"
msg2 "artix: %s" "${artix}"
msg2 "arch: %s" "${arch}"
msg2 "compare: %s" "${compare}"
msg2 "import_arch: %s" "${import_arch}"
msg2 "gitpush: %s" "${gitpush}"
msg "PATHS:"
msg2 "tree_dir_artix: %s" "${tree_dir_artix}"
msg2 "tree_dir_arch: %s" "${tree_dir_arch}"
# msg2 "host_tree_artix: %s" "${host_tree_artix}"
# msg2 "host_tree_arch: %s" "${host_tree_arch}"
if ${verbose}; then
if ${import_arch};then
msg "IMPORT QUEUE:"
show_imports
fi
fi
msg2 "patches_dir: %s" "${patches_dir}"
}
load_user_info
load_config "${AT_USERCONFDIR}/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
artix=false
pretend=false
arch=false
artix=false
compare=false
import_arch=false
verbose=false
gitpush=false
rsync_args=(-aWx --progress --delete --no-R --no-implied-dirs)
rsync_args=(-aWxv --progress --delete-before --no-R --no-implied-dirs)
usage() {
echo "Usage: ${0##*/} [options]"
echo " -x Sync artix tree"
echo " -a Sync arch tree"
echo ' -i Import arch system packages'
echo ' -v Verbose import output'
echo " -s Sync artix tree"
echo " -c Compare artix and arch versions"
echo ' -i Import arch packages'
echo ' -p Push import packages'
echo ' -q Query settings'
echo ' -h This help'
echo ''
@@ -82,14 +70,15 @@ usage() {
orig_argv=("$0" "$@")
opts='xaivqh'
opts='aipscqh'
while getopts "${opts}" arg; do
case "${arg}" in
x) artix=true ;;
a) arch=true ;;
s) artix=true ;;
c) compare=true ;;
i) import_arch=true ;;
v) verbose=true; rsync_args+=(-v --stats) ;;
p) gitpush=true ;;
q) pretend=true ;;
h|?) usage 0 ;;
*) echo "invalid argument '${arg}'"; usage 1 ;;
@@ -100,6 +89,7 @@ shift $(($OPTIND - 1))
prepare_dir "${tree_dir_artix}"
prepare_dir "${tree_dir_arch}"
prepare_dir "${patches_dir}"
${pretend} && display_settings && exit 1
@@ -107,4 +97,6 @@ ${artix} && sync_tree_artix
${arch} && sync_tree_arch
${import_arch} && import_from_arch
${compare} && show_version_table
${import_arch} && import_from_arch ${gitpush}

View File

@@ -20,88 +20,57 @@ import ${LIBDIR}/util.sh
import ${LIBDIR}/util-yaml-check.sh
import ${LIBDIR}/util-profile.sh
prepare_check(){
local profile="$1"
local profile_dir=${run_dir}/${profile}
load_profile "${profile_dir}"
yaml_dir=${cache_dir_netinstall}/${profile}/${target_arch}
prepare_dir "${yaml_dir}"
}
show_profile(){
prepare_check "$1"
msg2 "yaml_dir: %s" "${yaml_dir}"
msg2 "autologin: %s" "${autologin}"
[[ ${target_arch} == 'x86_64' ]] && msg2 "multilib: %s" "${multilib}"
msg2 "extra: %s" "${extra}"
msg2 "netinstall: %s" "${netinstall}"
msg2 "chrootcfg: %s" "${chrootcfg}"
${netinstall} && msg2 "netgroups: %s" "$(get_yaml)"
msg2 "netgroups: %s" "$(get_yaml)"
msg2 "hostname: %s" "${hostname}"
msg2 "username: %s" "${username}"
msg2 "password: %s" "${password}"
msg2 "login_shell: %s" "${login_shell}"
msg2 "addgroups: %s" "${addgroups}"
msg2 "enable_live: %s" "${enable_live[*]}"
msg2 "openrc_boot: %s" "${openrc_boot[*]}"
msg2 "openrc_default: %s" "${openrc_default[*]}"
reset_profile
unset yaml_dir
}
display_settings(){
show_version
show_config
# msg "PROFILE:"
# msg2 "build_lists: %s" "$(show_build_lists ${list_dir_iso})"
# msg2 "build_list_iso: %s" "${build_list_iso}"
msg2 "is_build_list: %s" "${is_build_list}"
msg "OPTIONS:"
msg2 "profile: %s" "${profile}"
msg2 "arch: %s" "${target_arch}"
msg2 "initsys: %s" "${initsys}"
msg2 "kernel: %s" "${kernel}"
msg "ARGS:"
msg2 "calamares: %s" "${calamares}"
msg2 "group: %s" "${group}"
msg2 "calamares: %s" "${calamares}"
msg "CHECK QUEUE:"
run show_profile "${build_list_iso}"
msg "BUILD:"
show_profile
}
load_user_info
load_config "${AT_USERCONFDIR}/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
# to force old way to have buildiso run in iso-profiles dir
# run_dir=$(pwd)
load_run_dir
calamares=false
pretend=false
group=false
cache_dir_netinstall="${workspace_dir}/netinstall"
calamares=false
usage() {
echo "Usage: ${0##*/} [options]"
echo " -p <profile> Buildset or profile [default: ${build_list_iso}]"
echo " -p <profile> Buildset or profile [default: ${profile}]"
echo " -a <arch> Arch [default: ${target_arch}]"
echo " -k <name> Kernel to use[default: ${kernel}]"
echo " -i <name> Init system to use [default: ${initsys}]"
echo ' -c Check also calamares yaml files generated for the profile'
echo ' -g Enable pacman group accepted for -p'
echo ' -c Check also calamares yaml files generated for the profile'
echo ' -q Query settings'
echo ' -h This help'
echo ''
@@ -115,12 +84,12 @@ opts='p:a:i:k:gcqh'
while getopts "${opts}" arg; do
case "${arg}" in
p) build_list_iso="$OPTARG" ;;
p) profile="$OPTARG" ;;
a) target_arch="$OPTARG" ;;
i) initsys="$OPTARG" ;;
k) kernel="$OPTARG" ;;
c) calamares=true ;;
g) group=true ;;
c) calamares=true ;;
q) pretend=true ;;
h|?) usage 0 ;;
*) echo "invalid argument '${arg}'"; usage 1 ;;
@@ -129,10 +98,10 @@ done
shift $(($OPTIND - 1))
eval_build_list "${list_dir_iso}" "${build_list_iso}"
prepare_build
${pretend} && display_settings && exit 1
${group} && write_pacman_group_yaml "${build_list_iso}" && exit 0
${group} && write_pacman_group_yaml "${profile}" && exit 0
run make_profile_yaml "${build_list_iso}"
build

View File

@@ -14,6 +14,7 @@ version=@version@
LIBDIR='@libdir@'
[[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh
import ${LIBDIR}/util.sh
import ${LIBDIR}/util-pkg.sh
shopt -s extglob

View File

@@ -15,6 +15,7 @@ LIBDIR='@libdir@'
[[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh
import ${LIBDIR}/util.sh
import ${LIBDIR}/util-chroot.sh
import ${LIBDIR}/util-mount.sh
working_dir=''
@@ -91,6 +92,7 @@ copy_hostconf () {
chroot_extra_mount() {
chroot_mount "/etc/resolv.conf" "$1/etc/resolv.conf" -B
chroot_mount_conditional "[[ -e $1/etc/machine-id ]]" "/etc/machine-id" "$1/etc/machine-id" -B
chroot_mount "${cache_dirs[0]}" "$1${cache_dirs[0]}" -B
for cache_dir in ${cache_dirs[@]:1}; do
@@ -126,3 +128,9 @@ eval $(grep '^CARCH=' "$working_dir/etc/makepkg.conf")
${nosetarch} && unset CARCH
${CARCH:+setarch "$CARCH"} chroot "${working_dir}" "$@"
ret=$?
kill_chroot_process "${working_dir}"
exit $ret

View File

@@ -18,20 +18,13 @@ SYSCONFDIR='@sysconfdir@'
import ${LIBDIR}/util.sh
import ${LIBDIR}/util-iso-publish.sh
show_profile(){
prepare_transfer "$1"
info "Profile: [$1]"
msg2 "src_dir: ${src_dir}"
msg2 "target_dir: ${target_dir}"
}
display_settings(){
show_version
show_config
msg "OPTIONS:"
msg2 "profile: %s" "${profile}"
msg2 "uplimit: %s kB/s" "${uplimit}"
# msg2 "dist_release: %s" "${dist_release}"
msg "ARGS:"
msg2 "update: %s" "${update}"
@@ -47,11 +40,12 @@ display_settings(){
msg "REMOTE:"
msg2 "account: %s" "${account}"
msg2 "host: %s" "${host}"
msg2 "file_host: %s" "${file_host}"
msg2 "project: %s" "${project}"
msg "UPLOAD:"
show_profile "${profile}"
msg2 "src_dir: ${src_dir}"
msg2 "target_dir: ${target_dir}"
}
load_user_info
@@ -62,13 +56,12 @@ pretend=false
update=false
verbose=false
torrent=false
profile=''
rsync_args=(-aP --progress -e ssh)
usage() {
echo "Usage: ${0##*/} [options]"
echo " -p Source folder to upload"
echo " -p Source folder to upload [default: ${profile}]"
echo " -l Limit bandwidth in kB/s [default:${uplimit}]"
echo ' -u Update remote directory'
echo ' -t Create iso torrent'
@@ -101,6 +94,8 @@ timer_start=$(get_timer)
rsync_args+=(--bwlimit=${uplimit})
prepare_transfer
${pretend} && display_settings #&& exit 1
sync_dir "${profile}"
sync_dir

View File

@@ -18,63 +18,48 @@ SYSCONFDIR='@sysconfdir@'
import ${LIBDIR}/util.sh
import ${LIBDIR}/util-pkg-publish.sh
show_transfer(){
local repo="$1"
msg2 "local: %s" "${repos_local}/$repo/"
msg2 "remote: %s" "${repos_remote}/$repo/"
}
display_settings(){
show_version
show_config
msg "OPTIONS:"
msg2 "repository: %s" "${repository}"
msg2 "package: %s" "${package}"
msg2 "to_repository: %s" "${to_repository}"
msg2 "package: %s" "${package[@]}"
msg2 "target_arch: %s" "${target_arch}"
msg "ARGS:"
msg2 "add_pkg: %s" "${add_pkg}"
msg2 "del_pkg: %s" "${del_pkg}"
msg2 "download: %s" "${download}"
msg2 "upload: %s" "${upload}"
msg2 "verbose: %s" "${verbose}"
msg "REMOTE:"
msg2 "account: %s" "${account}"
msg2 "host: %s" "${host}"
msg2 "project: %s" "${project}"
msg "SYNC:"
show_transfer "${repository}"
msg2 "move_pkg: %s" "${move_pkg}"
}
load_user_info
load_config "${AT_USERCONFDIR}/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
load_vars "${PAC_USERCONFDIR}/makepkg.conf" || load_vars "$USER_HOME/.makepkg.conf"
load_vars /etc/makepkg.conf
pretend=false
upload=false
download=false
verbose=false
verbose=false
add_pkg=false
del_pkg=false
move_pkg=false
package=''
repository=${PWD##*/}
to_repository=${PWD##*/}
rsync_args=(-rtxisP --progress --delete -e ssh)
usage() {
echo "Usage: ${0##*/} [options]"
echo " -a Repository arch [default:${target_arch}]"
echo " -r Repository to sync [default:${repository}]"
echo " -u Upload repository"
echo ' -d Download repository'
echo " -r Repository [default:${repository}]"
echo " -t Repository to move to [default:${to_repository}]"
echo " -p Package name to add/delete"
echo ' -x Add package to repository'
echo ' -y Delete package from repository'
echo ' -m Move packages from source to destination repository'
echo ' -q Query settings and pretend upload'
echo ' -v Verbose output'
echo ' -h This help'
echo ''
echo ''
@@ -83,19 +68,18 @@ usage() {
orig_argv=("$0" "$@")
opts='p:a:r:xyduvqh'
opts='p:a:r:t:xymqh'
while getopts "${opts}" arg; do
case "${arg}" in
a) target_arch="$OPTARG" ;;
r) repository="$OPTARG" ;;
p) package="$OPTARG" ;;
t) to_repository="$OPTARG" ;;
m) move_pkg=true ;;
x) add_pkg=true ;;
y) del_pkg=true ;;
d) download=true ;;
u) upload=true; rsync_args+=(-L) ;;
v) verbose=true; rsync_args+=(-v --stats) ;;
q) pretend=true; rsync_args+=(-n) ;;
q) pretend=true ;;
h|?) usage 0 ;;
*) echo "invalid argument '${arg}'"; usage 1 ;;
esac
@@ -105,12 +89,14 @@ shift $(($OPTIND - 1))
timer_start=$(get_timer)
prepare_dir "${repos_local}"
prepare_dir "${repos_root}"
${pretend} && display_settings #&& exit 1
${pretend} && display_settings && exit 1
${add_pkg} && repo_add_pkg "${repository}" "${target_arch}" "${package}"
${del_pkg} && repo_del_pkg "${repository}" "${target_arch}" "${package}"
${move_pkg} && move_to_repo "${repository}" "${to_repository}" "${target_arch}"
${download} && repo_download "${repository}"
${upload} && repo_upload "${repository}"
${del_pkg} && del_from_repo "${repository}" "${target_arch}" "${package}"
${add_pkg} && add_to_repo "${repository}" "${target_arch}" "${package}"
exit 0

53
bin/findupdates.in Normal file
View File

@@ -0,0 +1,53 @@
#!/bin/bash
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
version=@version@
LIBDIR='@libdir@'
[[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh
import ${LIBDIR}/util.sh
import ${LIBDIR}/util-pkg.sh
import ${LIBDIR}/util-pkg-tree.sh
load_user_info
load_config "${AT_USERCONFDIR}/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
declare -A UPDATES
msg_table_header "%-30s %-30s %-30s %-30s" "Repository" "Package" "Artix version" "Arch version"
for repo in ${repo_tree_artix[@]}; do
for pkg in ${tree_dir_artix}/$repo/*; do
if [[ -f $pkg/PKGBUILD ]];then
source $pkg/PKGBUILD 2>/dev/null
package=${pkg##*/}
artixver=$(get_full_version $package)
set_import_path "$repo" "$package"
if [[ -f $src/PKGBUILD ]];then
source $src/PKGBUILD 2>/dev/null
archver=$(get_full_version $package)
fi
if [ $(vercmp $artixver $archver) -lt 0 ];then
UPDATES[$package]="$src/PKGBUILD $pkg/PKGBUILD"
msg_row_update "%-30s %-30s %-30s %-30s" "$repo" "$package" "$artixver" "$archver"
else
msg_row "%-30s %-30s %-30s %-30s" "$repo" "$package" "$artixver" "$archver"
fi
fi
unset pkgver epoch pkgrel artixver archver package
done
done
for upd in "${!UPDATES[@]}"; do
msg "Diff: %s" "$upd"
diff -u ${UPDATES[$upd]}
done

View File

@@ -21,15 +21,15 @@ IFS="${IFS}:"
libdirs="/lib /usr/lib /usr/local/lib $(cat /etc/ld.so.conf.d/*)"
extras=
TMPDIR=$(mktemp -d --tmpdir lddd-script.XXXX)
TEMPDIR=$(mktemp -d --tmpdir lddd-script.XXXX)
msg 'Go out and drink some tea, this will take a while :) ...'
# Check ELF binaries in the PATH and specified dir trees.
for tree in $PATH $libdirs $extras; do
msg2 "DIR $tree"
msg2 "DIR %s" "$tree"
# Get list of files in tree.
files=$(find $tree -type f ! -name '*.a' ! -name '*.la' ! -name '*.py*' ! -name '*.txt' ! -name '*.h' ! -name '*.ttf' ! \
files=$(find "$tree" -type f ! -name '*.a' ! -name '*.la' ! -name '*.py*' ! -name '*.txt' ! -name '*.h' ! -name '*.ttf' ! \
-name '*.rb' ! -name '*.ko' ! -name '*.pc' ! -name '*.enc' ! -name '*.cf' ! -name '*.def' ! -name '*.rules' ! -name \
'*.cmi' ! -name '*.mli' ! -name '*.ml' ! -name '*.cma' ! -name '*.cmx' ! -name '*.cmxa' ! -name '*.pod' ! -name '*.pm' \
! -name '*.pl' ! -name '*.al' ! -name '*.tcl' ! -name '*.bs' ! -name '*.o' ! -name '*.png' ! -name '*.gif' ! -name '*.cmo' \
@@ -37,22 +37,22 @@ for tree in $PATH $libdirs $extras; do
-name '*.mcopclass' ! -name '*.mcoptype')
IFS=$ifs
for i in $files; do
if (( $(file $i | grep -c 'ELF') != 0 )); then
if (( $(file "$i" | grep -c 'ELF') != 0 )); then
# Is an ELF binary.
if (( $(ldd $i 2>/dev/null | grep -c 'not found') != 0 )); then
if (( $(ldd "$i" 2>/dev/null | grep -c 'not found') != 0 )); then
# Missing lib.
echo "$i:" >> $TMPDIR/raw.txt
ldd $i 2>/dev/null | grep 'not found' >> $TMPDIR/raw.txt
echo "$i:" >> "$TEMPDIR/raw.txt"
ldd "$i" 2>/dev/null | grep 'not found' >> "$TEMPDIR/raw.txt"
fi
fi
done
done
grep '^/' $TMPDIR/raw.txt | sed -e 's/://g' >> $TMPDIR/affected-files.txt
grep '^/' "$TEMPDIR/raw.txt" | sed -e 's/://g' >> "$TEMPDIR/affected-files.txt"
# invoke pacman
for i in $(cat $TMPDIR/affected-files.txt); do
pacman -Qo $i | awk '{print $4,$5}' >> $TMPDIR/pacman.txt
done
while read -r i; do
pacman -Qo "$i" | awk '{print $4,$5}' >> "$TEMPDIR/pacman.txt"
done < "$TEMPDIR/affected-files.txt"
# clean list
sort -u $TMPDIR/pacman.txt >> $TMPDIR/possible-rebuilds.txt
sort -u "$TEMPDIR/pacman.txt" >> "$TEMPDIR/possible-rebuilds.txt"
msg "Files saved to $TMPDIR"
msg "Files saved to %s" "$TEMPDIR"

View File

@@ -22,7 +22,7 @@ shopt -s nullglob
init_variables() {
default_makepkg_args=(--syncdeps --noconfirm --log --holdver --skipinteg)
makepkg_args=("${default_makepkg_args[@]}")
repack=false
keepbuilddir=false
update_first=false
clean_first=false
run_namcap=false
@@ -121,24 +121,24 @@ sync_chroot() {
}
# Usage: delete_chroot $copydir [$copy]
# delete_chroot() {
# local copydir=$1
# local copy=${1:-$2}
#
# stat_busy "Removing chroot copy [%s]" "$copy"
# if is_btrfs "$chrootdir" && ! mountpoint -q "$copydir"; then
# subvolume_delete_recursive "$copydir" ||
# die "Unable to delete subvolume %s" "$copydir"
# else
# # avoid change of filesystem in case of an umount failure
# rm --recursive --force --one-file-system "$copydir" ||
# die "Unable to delete %s" "$copydir"
# fi
#
# # remove lock file
# rm -f "$copydir.lock"
# stat_done
# }
delete_chroot() {
local copydir=$1
local copy=${1:-$2}
stat_busy "Removing chroot copy [%s]" "$copy"
if is_btrfs "$chrootdir" && ! mountpoint -q "$copydir"; then
subvolume_delete_recursive "$copydir" ||
die "Unable to delete subvolume %s" "$copydir"
else
# avoid change of filesystem in case of an umount failure
rm --recursive --force --one-file-system "$copydir" ||
die "Unable to delete %s" "$copydir"
fi
# remove lock file
rm -f "$copydir.lock"
stat_done
}
# Usage: install_packages $copydir $pkgs...
install_packages() {
@@ -159,17 +159,17 @@ install_packages() {
return $ret
}
# Usage: prepare_chroot $copydir $HOME $repack $run_namcap
# Usage: prepare_chroot $copydir $HOME $keepbuilddir $run_namcap
# Globals:
# - MAKEFLAGS
# - PACKAGER
prepare_chroot() {
local copydir=$1
local USER_HOME=$2
local repack=$3
local keepbuilddir=$3
local run_namcap=$4
$repack || rm -rf "$copydir/build"
$keepbuilddir || rm -rf "$copydir/build"
local builduser_uid="${SUDO_UID:-$UID}"
local builduser_gid="$(id -g "$builduser_uid")"
@@ -221,6 +221,8 @@ EOF
# These functions aren't run in makechrootpkg,
# so no global variables
_chrootbuild() {
exec </dev/console
export LANG=en_US.UTF-8
. /etc/profile
sudo -iu builduser bash -c 'cd /startdir; makepkg "$@"' -bash "$@"
}
@@ -331,13 +333,13 @@ main() {
# Pass all arguments after -- right to makepkg
makepkg_args+=("${@:$OPTIND}")
# See if -R was passed to makepkg
for arg in "${@:OPTIND}"; do
# See if -R or -e was passed to makepkg
for arg in "${makepkg_args[@]}"; do
case ${arg%%=*} in
-*R*|--repackage)
repack=true
break 2
;;
--repackage|--noextract) keepbuilddir=true; break ;;
--repackage|--noextract) keepbuilddir=true; break ;;
--*) ;;
-*R*|-*e*) keepbuilddir=true; break ;;
esac
done
@@ -378,7 +380,7 @@ main() {
download_sources "$copydir" "$src_owner"
prepare_chroot "$copydir" "$USER_HOME" "$repack" "$run_namcap"
prepare_chroot "$copydir" "$USER_HOME" "$keepbuilddir"
bindmounts_rw+=("${PWD}:/startdir" "${SRCDEST}:/srcdest")

View File

@@ -18,13 +18,25 @@ import ${LIBDIR}/util.sh
load_user_info
load_config "${AT_USERCONFDIR}/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
load_vars "${PAC_USERCONFDIR}/makepkg.conf" || load_vars "$USER_HOME/.makepkg.conf"
load_vars /etc/makepkg.conf
file_to_sign="$1"
if [ ! -e "$1" ]; then
error "%s does not exist!" "$1"
error "%s does not exist!" "$file_to_sign"
exit 1
fi
msg2 "Signing [%s] with key %s" "${1##*/}" "${GPGKEY}..."
gpg --detach-sign --use-agent -u "${GPGKEY}" "$1"
msg2 "Signing [%s] with key %s" "${file_to_sign##*/}" "${GPGKEY}..."
if [[ -n "${BUILDBOT_GPGP}" ]]; then
gpg --batch --passphrase "${BUILDBOT_GPGP}" --detach-sign "$file_to_sign"
else
if [[ -f /usr/bin/hellhound ]]; then
gpg --batch --passphrase $(hellhound retrieve) --detach-sign "$file_to_sign"
else
gpg --detach-sign --use-agent -u "${GPGKEY}" "$file_to_sign"
fi
fi

View File

@@ -1,14 +0,0 @@
#!/bin/bash
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
version=@version@
find $PWD -maxdepth 1 -name '*.pkg.tar.xz' -exec signfile {} \;

View File

@@ -1,39 +0,0 @@
#!/bin/bash
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
version=@version@
if [ $# -eq 0 ]; then
echo "
usage: testiso <isofile> [id|ic|sd|sc|vd|vc]
id boot iso as IDE disk
ic boot iso as IDE cd-rom
sd boot iso as SCSI disk
sc boot iso as SCSI cd-rom
vd boot iso as virtio disk
vc boot iso as virtio cd-rom
"
exit 1
fi
case "${2}" in
id) IF="ide"; MEDIA="disk";;
ic) IF="ide"; MEDIA="cdrom";;
sd) IF="scsi"; MEDIA="disk";;
sc) IF="scsi"; MEDIA="cdrom";;
vd) IF="virtio"; MEDIA="disk";;
vc) IF="virtio"; MEDIA="cdrom";;
*) IF="scsi"; MEDIA="cdrom";;
esac
echo qemu -m 256 -drive file=${1},if=${IF},media=${MEDIA},boot=on
qemu -m 256 -drive file=${1},if=${IF},media=${MEDIA},boot=on

View File

@@ -1,6 +1,6 @@
######################################################
################ artools.conf ##################
######################################################
#############################################
################ artools-base ###############
#############################################
# default taget arch: auto detect
# target_arch=$(uname -m)
@@ -8,48 +8,32 @@
# build dir where buildpkg or buildiso chroots are created
# chroots_dir=/var/lib/artools
# custom build mirror server
# build_mirror=https://netcologne.dl.sourceforge.net/project/artix-linux/repos
# the server user
# account=[SetUser]
# the server project
# project="artix-linux"
# host mirrors
# host_mirrors=('netcologne' 'freefr' 'netix' 'kent' '10gbps-io')
# the workspace directory
# workspace_dir="/home/${OWNER}/artools-workspace"
################ buildtree ###############
#############################################
################ artools-pkg ################
#############################################
# artix package tree
# repo_tree_artix=('system' 'world' 'galaxy')
# repo_tree_artix=('system' 'world' 'galaxy' 'lib32')
# host_tree_artix=https://github.com/artix-linux
# host_tree_artix='https://github.com/artix-linux'
# archlinux package tree
# repo_tree_arch=('packages' 'community')
# host_tree_arch=git://projects.archlinux.org/svntogit
################ buildpkg ################
# default repos root
# repos_root=${workspace_dir}/repos
# default pkg build list; name without .list extension
# build_list_pkg=default
################ buildiso ################
# default iso build list; name without .list extension
# build_list_iso=default
#############################################
################ artools-iso ################
#############################################
# the dist release; default: auto
# dist_release=rolling
# the branding; default: auto
# dist_branding="ARTIX"
# iso_version=$(date +%Y%m%d)
# possible values: openrc, (s6, runit) not yet supported
# initsys="openrc"
@@ -60,14 +44,22 @@
# gpg key; leave empty or commented to skip sfs signing
# gpgkey=""
################ deployiso ################
# set upload bandwidth limit in kB/s
# limit=100
# the torrent tracker urls, comma separated
# tracker_url='udp://mirror.strits.dk:6969'
# file_host="sourceforge.net"
# the server user
# account=[SetUser]
# the server project
# project="artix-linux"
# host mirrors
# host_mirrors=('netcologne' 'freefr' 'netix' 'kent' '10gbps-io')
# Piece size, 2^n
# piece_size=21

View File

@@ -1,30 +0,0 @@
autoconf
automake
binutils
bison
libeudev
fakeroot
file
findutils
flex
gawk
gcc
gettext
grep
groff
gzip
libtool
m4
make
pacman
patch
pkg-config
sed
sudo
texinfo
libutil-linux-nosystemd
util-linux-nosystemd
which
>multilib gcc-multilib
>multilib lib32-fakeroot
>multilib lib32-libltdl

9
data/base/Packages-Live Normal file
View File

@@ -0,0 +1,9 @@
mkinitcpio-nfs-utils
nbd
>openrc artix-live-openrc
squashfs-tools
artix-live-portable-efi
virtualbox-guest-modules-artix
virtualbox-guest-utils
linux-lts-headers

83
data/base/Packages-Root Normal file
View File

@@ -0,0 +1,83 @@
acpi
b43-fwcutter
bash
btrfs-progs
bzip2
coreutils
crda
dhclient
diffutils
dmraid
dnsmasq
dosfstools
e2fsprogs
ecryptfs-utils
exfat-utils
f2fs-tools
file
filesystem
findutils
gawk
gcc-libs
gettext
glibc
grep
grub
gzip
inetutils
#intel-ucode
iproute2
iptables
iputils
ipw2100-fw
ipw2200-fw
jfsutils
KERNEL
less
licenses
linux-firmware
logrotate
lsb-release
man-db
man-pages
memtest86+
mkinitcpio-openswap
nano
net-tools
ntfs-3g
>openrc acpid-openrc
>openrc cronie-openrc
>openrc cryptsetup-openrc
>openrc dbus-openrc
>openrc device-mapper-openrc
>openrc dhcpcd-openrc
>openrc elogind-openrc
>openrc haveged-openrc
>openrc lvm2-openrc
>openrc mdadm-openrc
>openrc netifrc
>openrc nfs-utils-openrc
>openrc rsync-openrc
>openrc wpa_supplicant-openrc
os-prober
pacman
pciutils
pcmciautils
perl
procps-ng
psmisc
reiserfsprogs
sed
shadow
s-nail
sudo
sysfsutils
tar
texinfo
usbutils
util-linux
which
>x86_64 efibootmgr
xfsprogs
zd1211-firmware
zsh

View File

@@ -0,0 +1,49 @@
GRUB_DEFAULT=saved
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Artix"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
# If you want to enable the save default function, uncomment the following
# line, and set GRUB_DEFAULT to saved.
GRUB_SAVEDEFAULT=true
# Preload both GPT and MBR modules so that they are not missed
GRUB_PRELOAD_MODULES="part_gpt part_msdos"
# Uncomment to enable Hidden Menu, and optionally hide the timeout count
#GRUB_HIDDEN_TIMEOUT=5
#GRUB_HIDDEN_TIMEOUT_QUIET=true
# Uncomment to use basic console
GRUB_TERMINAL_INPUT=console
# Uncomment to disable graphical terminal
#GRUB_TERMINAL_OUTPUT=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
GRUB_GFXMODE=auto
# Uncomment to allow the kernel use the same resolution used by grub
GRUB_GFXPAYLOAD_LINUX=keep
# Uncomment if you want GRUB to pass to the Linux kernel the old parameter
# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx"
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entries
GRUB_DISABLE_RECOVERY=true
# Uncomment and set to the desired menu colors. Used by normal and wallpaper
# modes only. Entries specified as foreground/background.
GRUB_COLOR_NORMAL="light-gray/black"
GRUB_COLOR_HIGHLIGHT="cyan/black"
# Uncomment one of them for the gfx desired, a image background or a gfxtheme
GRUB_BACKGROUND="/usr/share/grub/background.png"
#GRUB_THEME="/path/to/gfxtheme"
# Uncomment to get a beep at GRUB start
#GRUB_INIT_TUNE="480 440 1"

View File

@@ -0,0 +1,5 @@
#
# /etc/fstab: static file system information
#
# <file system> <dir> <type> <options> <dump> <pass>
/dev/mapper/root-image / auto defaults 0 0

View File

@@ -0,0 +1,13 @@

Artix Live ISO (\l) - \s-\r \m
# Welcome to Artix #
login for the live environment:
user 'artix'
password 'artix'

View File

@@ -0,0 +1,6 @@
#%PAM-1.0
auth sufficient pam_rootok.so
auth sufficient pam_wheel.so trust use_uid
auth required pam_unix.so
account required pam_unix.so
session required pam_unix.so

View File

@@ -0,0 +1 @@
%wheel ALL=(ALL) NOPASSWD: ALL

View File

@@ -1,13 +1,3 @@
##########################################
###### use this file in the profile ######
##########################################
# use multilib packages; x86_64 only
# multilib="true"
# use extra packages as defined in pkglist to activate a full profile
# extra="false"
################ install ################
# default displaymanager: none
@@ -17,12 +7,6 @@
# Set to false to disable autologin in the livecd
# autologin="true"
# configure calamares for netinstall
# netinstall="false"
# configure calamares to use chrootcfg instead of unpackfs; default: unpackfs
# chrootcfg="false"
# service runlevels
# openrc_boot=('elogind')
# openrc_default=('acpid' 'bluetooth' 'cronie' 'cupsd' 'dbus' 'syslog-ng' 'NetworkManager')

View File

@@ -0,0 +1,12 @@
autoconf-archive
confuse
libappindicator
libdbusmenu
libftdi
libindicator
libdbi
libpgm
libsodium
zeromq
jansson
libnewt

View File

@@ -0,0 +1,3 @@
lib32-glibc
gcc-multilib
llvm

View File

@@ -1,60 +1,36 @@
acl
archlinux-keyring
tzdata
iana-etc
linux-api-headers
binutils
glibc
gcc
attr
acl
ncurses
readline
bash
sed
diffutils
expat
db
lz4
lzo
bzip2
gmp
mpfr
m4
gdbm
xz
zlib
file
icu
perl
openssl
openssl-1.0
autoconf
automake
b43-fwcutter
binutils
bison
bridge-utils
bzip2
ca-certificates
ca-certificates-cacert
coreutils
cracklib
curl
dash
db
dialog
diffutils
ding-libs
dnssec-anchors
dosfstools
e2fsprogs
ed
efibootmgr
efivar
elfutils
expat
fakeroot
file
findutils
flex
gawk
gcc
gdbm
gettext
glib2
gmp
gnutls
gpgme
grep
groff
gzip
hdparm
hwids
iana-etc
icu
ifenslave
iproute2
iputils
ipw2100-fw
ipw2200-fw
isdn4k-utils
iw
jfsutils
kbd
keyutils
bison
ldns
less
libaio
@@ -85,20 +61,49 @@ libtasn1
libtirpc
libtool
libunistring
pcre
glib2
grep
gzip
bridge-utils
ca-certificates
ca-certificates-cacert
coreutils
cracklib
dialog
ding-libs
dnssec-anchors
dosfstools
e2fsprogs
ed
efibootmgr
efivar
elfutils
fakeroot
findutils
flex
gawk
gettext
gnutls
gpgme
groff
hdparm
hwids
ifenslave
iproute2
iputils
iw
jfsutils
kbd
keyutils
licenses
links
linux-api-headers
linux-atm
linux-firmware
linux-lts
lz4
lzo
m4
make
man-pages
mkinitcpio-busybox
mkinitcpio-nfs-utils
mpfr
nano
nettle
net-tools
@@ -107,13 +112,9 @@ nilfs-utils
npth
nspr
nss
openssl
openssl-1.0
p11-kit
patch
pciutils
pcre
perl
pinentry
pkcs11-helper
pkg-config
@@ -125,7 +126,6 @@ pth
reiserfsprogs
run-parts
sdparm
sed
s-nail
sqlite
sysfsutils
@@ -134,7 +134,6 @@ tar
texinfo
thin-provisioning-tools
traceroute
tzdata
usbutils
vi
which
@@ -142,5 +141,11 @@ wireless-regdb
wireless_tools
wpa_actiond
xfsprogs
xz
zd1211-firmware
archlinux-keyring
b43-fwcutter
ipw2100-fw
ipw2200-fw
isdn4k-utils
curl
sudo

View File

@@ -0,0 +1,232 @@
libasyncns
libblockdev
libbytesize
libcap-ng
libcroco
libdaemon
libdatrie
libdrm
libepoxy
libexif
libfontenc
libglvnd
libgphoto2
libical
libice
libieee1284
libimobiledevice
libiscsi
libjpeg-turbo
libomxil-bellagio
libpaper
libpciaccess
libplist
libpng
libproxy
librsvg
libsm
libthai
libtiff
libtxc_dxtn
libunwind
libusb-compat
libusbmuxd
libwebp
libx11
libxau
libxaw
libxcb
libxcomposite
libxcursor
libxdamage
libxdmcp
libxext
libxfixes
libxfont
libxfont2
libxft
libxi
libxinerama
libxkbcommon
libxkbfile
libxml2
libxmu
libxpm
libxrandr
libxrender
libxshmfence
libxslt
libxt
libxtst
libxxf86vm
libgusb
liblouis
libraqm
liblqr
libuv
libqmi
glib-networking
gsettings-desktop-schemas
slang
dhcp
dbus-python
lirc
qt5-3d
qt5-canvas3d
qt5-charts
qt5-connectivity
qt5-datavis3d
qt5-declarative
qt5-doc
qt5-examples
qt5-gamepad
qt5-graphicaleffects
qt5-imageformats
qt5-location
qt5-multimedia
qt5-networkauth
qt5-quickcontrols
qt5-quickcontrols2
qt5-remoteobjects
qt5-script
qt5-scxml
qt5-sensors
qt5-serialbus
qt5-serialport
qt5-speech
qt5-svg
qt5-tools
qt5-translations
qt5-virtualkeyboard
qt5-wayland
qt5-webchannel
qt5-webengine
qt5-webkit
qt5-websockets
qt5-webview
qt5-x11extras
qt5-xmlpatterns
adwaita-icon-theme
alsa-lib
apr
apr-util
atk
at-spi2-atk
at-spi2-core
boost
cairo
cantarell-fonts
check
compositeproto
damageproto
dbus-glib
dconf
desktop-file-utils
docbook-dsssl
docbook-sgml31
docbook-utils
docbook-xml
docbook-xsl
double-conversion
doxygen
eventlog
fixesproto
fontconfig
fontsproto
freetype2
gd
gdk-pixbuf2
ghostscript
giflib
gnome-common
gobject-introspection
gptfdisk
graphite
graphviz
gsfonts
gtk3
gtk-doc
gts
harfbuzz
hicolor-icon-theme
ijs
inputproto
intltool
itstool
jasper
jbig2dec
json-glib
kbproto
lcms2
mesa
mtdev
net-snmp
openjade
opensp
pango
parted
pcre2
perl-error
perl-xml-parser
perl-yaml
pixman
python2
python
python-appdirs
python-beaker
python-mako
python-markupsafe
python-packaging
python-pyparsing
python-setuptools
python-six
randrproto
recordproto
renderproto
serf
sgml-common
shared-mime-info
source-highlight
speexdsp
tslib
v4l-utils
vala
valgrind
volume_key
vte3
vte
wayland
wayland-protocols
xcb-proto
xcb-util
xcb-util-image
xcb-util-keysyms
xcb-util-renderutil
xcb-util-wm
xextproto
xf86vidmodeproto
xineramaproto
xkeyboard-config
xorg-bdftopcf
xorg-fonts-alias
xorg-fonts-encodings
xorg-fonts-misc
xorg-font-util
xorg-font-utils
xorg-mkfontdir
xorg-mkfontscale
xorg-setxkbmap
xorg-xkbcomp
xproto
yelp-tools
yelp-xsl
cmake
jemalloc
jsoncpp
fribidi
js
imagemagick
poppler
bc
xdg-utils
xf86-input-libinput

View File

@@ -1 +0,0 @@
lxqt

View File

@@ -1,3 +0,0 @@
carch="i686"
chost="i686-pc-linux-gnu"
cflags="-march=i686 -mtune=generic -O2 -pipe -fstack-protector-strong"

View File

@@ -1,3 +0,0 @@
carch="x86_64"
chost="x86_64-pc-linux-gnu"
cflags="-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong"

View File

@@ -1,3 +0,0 @@
carch="x86_64"
chost="x86_64-pc-linux-gnu"
cflags="-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong"

View File

@@ -20,26 +20,26 @@ DLAGENTS=('ftp::/usr/bin/curl -fC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %
# /usr/bin/wget
#-- The package required by makepkg to download VCS sources
# Format: 'protocol::package'
# Format: 'protocol::package'
VCSCLIENTS=('bzr::bzr'
'git::git'
'hg::mercurial'
'svn::subversion')
'git::git'
'hg::mercurial'
'svn::subversion')
#########################################################################
# ARCHITECTURE, COMPILE FLAGS
#########################################################################
#
CARCH="@CARCH@"
CHOST="@CHOST@"
CARCH="i686"
CHOST="i686-pc-linux-gnu"
#-- Compiler and Linker Flags
# -march (or -mcpu) builds exclusively for an architecture
# -mtune optimizes for an architecture, but builds for whole processor family
CPPFLAGS="-D_FORTIFY_SOURCE=2"
CFLAGS="@CFLAGS@"
CXXFLAGS="@CFLAGS@"
LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro"
CFLAGS="-march=i686 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt"
CXXFLAGS="-march=i686 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt"
LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now"
#-- Make Flags: change this for DistCC/SMP systems
#MAKEFLAGS="-j2"
#-- Debugging flags
@@ -50,10 +50,9 @@ DEBUG_CXXFLAGS="-g -fvar-tracking-assignments"
# BUILD ENVIRONMENT
#########################################################################
#
# Defaults: BUILDENV=(fakeroot !distcc color !ccache check !sign)
# Defaults: BUILDENV=(!distcc color !ccache check !sign)
# A negated environment option will do the opposite of the comments below.
#
#-- fakeroot: Allow building packages as a non-root user
#-- distcc: Use the Distributed C/C++/ObjC compiler
#-- color: Colorize output messages
#-- ccache: Use ccache to cache compilation
@@ -85,6 +84,7 @@ BUILDENV=(!distcc color !ccache check !sign)
#-- zipman: Compress manual (man and info) pages in MAN_DIRS with gzip
#-- purge: Remove files specified by PURGE_TARGETS
#-- upx: Compress binary executable files using UPX
#-- optipng: Optimize PNG images with optipng
#-- debug: Add debugging flags as specified in DEBUG_* variables
#
OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !optipng !upx !debug)

147
data/makepkg-x86_64.conf Normal file
View File

@@ -0,0 +1,147 @@
#
# /etc/makepkg.conf
#
#########################################################################
# SOURCE ACQUISITION
#########################################################################
#
#-- The download utilities that makepkg should use to acquire sources
# Format: 'protocol::agent'
DLAGENTS=('ftp::/usr/bin/curl -fC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u'
'http::/usr/bin/curl -fLC - --retry 3 --retry-delay 3 -o %o %u'
'https::/usr/bin/curl -fLC - --retry 3 --retry-delay 3 -o %o %u'
'rsync::/usr/bin/rsync --no-motd -z %u %o'
'scp::/usr/bin/scp -C %u %o')
# Other common tools:
# /usr/bin/snarf
# /usr/bin/lftpget -c
# /usr/bin/wget
#-- The package required by makepkg to download VCS sources
# Format: 'protocol::package'
VCSCLIENTS=('bzr::bzr'
'git::git'
'hg::mercurial'
'svn::subversion')
#########################################################################
# ARCHITECTURE, COMPILE FLAGS
#########################################################################
#
CARCH="x86_64"
CHOST="x86_64-pc-linux-gnu"
#-- Compiler and Linker Flags
# -march (or -mcpu) builds exclusively for an architecture
# -mtune optimizes for an architecture, but builds for whole processor family
CPPFLAGS="-D_FORTIFY_SOURCE=2"
CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt"
CXXFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt"
LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now"
#-- Make Flags: change this for DistCC/SMP systems
#MAKEFLAGS="-j2"
#-- Debugging flags
DEBUG_CFLAGS="-g -fvar-tracking-assignments"
DEBUG_CXXFLAGS="-g -fvar-tracking-assignments"
#########################################################################
# BUILD ENVIRONMENT
#########################################################################
#
# Defaults: BUILDENV=(!distcc color !ccache check !sign)
# A negated environment option will do the opposite of the comments below.
#
#-- distcc: Use the Distributed C/C++/ObjC compiler
#-- color: Colorize output messages
#-- ccache: Use ccache to cache compilation
#-- check: Run the check() function if present in the PKGBUILD
#-- sign: Generate PGP signature file
#
BUILDENV=(!distcc color !ccache check !sign)
#
#-- If using DistCC, your MAKEFLAGS will also need modification. In addition,
#-- specify a space-delimited list of hosts running in the DistCC cluster.
#DISTCC_HOSTS=""
#
#-- Specify a directory for package building.
#BUILDDIR=/tmp/makepkg
#########################################################################
# GLOBAL PACKAGE OPTIONS
# These are default values for the options=() settings
#########################################################################
#
# Default: OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !optipng !upx !debug)
# A negated option will do the opposite of the comments below.
#
#-- strip: Strip symbols from binaries/libraries
#-- docs: Save doc directories specified by DOC_DIRS
#-- libtool: Leave libtool (.la) files in packages
#-- staticlibs: Leave static library (.a) files in packages
#-- emptydirs: Leave empty directories in packages
#-- zipman: Compress manual (man and info) pages in MAN_DIRS with gzip
#-- purge: Remove files specified by PURGE_TARGETS
#-- upx: Compress binary executable files using UPX
#-- optipng: Optimize PNG images with optipng
#-- debug: Add debugging flags as specified in DEBUG_* variables
#
OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !optipng !upx !debug)
#-- File integrity checks to use. Valid: md5, sha1, sha256, sha384, sha512
INTEGRITY_CHECK=(md5)
#-- Options to be used when stripping binaries. See `man strip' for details.
STRIP_BINARIES="--strip-all"
#-- Options to be used when stripping shared libraries. See `man strip' for details.
STRIP_SHARED="--strip-unneeded"
#-- Options to be used when stripping static libraries. See `man strip' for details.
STRIP_STATIC="--strip-debug"
#-- Manual (man and info) directories to compress (if zipman is specified)
MAN_DIRS=({usr{,/local}{,/share},opt/*}/{man,info})
#-- Doc directories to remove (if !docs is specified)
DOC_DIRS=(usr/{,local/}{,share/}{doc,gtk-doc} opt/*/{doc,gtk-doc})
#-- Files to be removed from all packages (if purge is specified)
PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod)
#########################################################################
# PACKAGE OUTPUT
#########################################################################
#
# Default: put built package and cached source in build directory
#
#-- Destination: specify a fixed directory where all packages will be placed
#PKGDEST=/home/packages
#-- Source cache: specify a fixed directory where source files will be cached
#SRCDEST=/home/sources
#-- Source packages: specify a fixed directory where all src packages will be placed
#SRCPKGDEST=/home/srcpackages
#-- Log files: specify a fixed directory where all log files will be placed
#LOGDEST=/home/makepkglogs
#-- Packager: name/email of the person or organization building packages
#PACKAGER="John Doe <john@doe.com>"
#-- Specify a key to use for package signing
#GPGKEY=""
#########################################################################
# COMPRESSION DEFAULTS
#########################################################################
#
COMPRESSGZ=(gzip -c -f -n)
COMPRESSBZ2=(bzip2 -c -f)
COMPRESSXZ=(xz -c -z -)
COMPRESSLRZ=(lrzip -q)
COMPRESSLZO=(lzop -q)
COMPRESSZ=(compress -c -f)
#########################################################################
# EXTENSION DEFAULTS
#########################################################################
#
# WARNING: Do NOT modify these variables unless you know what you are
# doing.
#
PKGEXT='.pkg.tar.xz'
SRCEXT='.src.tar.gz'
# vim: set ft=sh ts=2 sw=2 et:

View File

@@ -1,3 +1,5 @@
MODULES="loop dm-snapshot"
HOOKS="base udev artix_shutdown artix artix_loop_mnt artix_pxe_common artix_pxe_http artix_pxe_nbd artix_pxe_nfs artix_kms modconf block pcmcia filesystems keyboard keymap"
MODULES=(loop dm-snapshot)
HOOKS=(base udev artix_shutdown artix artix_loop_mnt artix_pxe_common artix_pxe_http artix_pxe_nbd artix_pxe_nfs artix_kms modconf block pcmcia filesystems keyboard keymap)
COMPRESSION="xz"

View File

@@ -0,0 +1,101 @@
#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives
#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir = /
#DBPath = /var/lib/pacman/
#CacheDir = /var/cache/pacman/pkg/
#LogFile = /var/log/pacman.log
#GPGDir = /etc/pacman.d/gnupg/
#HookDir = /etc/pacman.d/hooks/
HoldPkg = pacman glibc
#XferCommand = /usr/bin/curl -C - -f %u > %o
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
#UseDelta = 0.7
Architecture = auto
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg =
#IgnoreGroup =
#NoUpgrade =
#NoExtract =
# Misc options
#UseSyslog
#Color
#TotalDownload
CheckSpace
#VerbosePkgLists
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
SigLevel = Required DatabaseOptional
LocalFileSigLevel = Optional
#RemoteFileSigLevel = Required
# NOTE: You must run `pacman-key --init` before first using pacman; the local
# keyring can then be populated with the keys of all official Artix Linux
# packagers with `pacman-key --populate archlinux cromnix`.
#
# REPOSITORIES
# - can be defined here or included from another file
# - pacman will search repositories in the order defined here
# - local/custom mirrors can be added here or in separate files
# - repositories listed first will take precedence when packages
# have identical names, regardless of version number
# - URLs will have $repo replaced by the name of the current repo
# - URLs will have $arch replaced by the name of the architecture
#
# Repository entries are of the format:
# [repo-name]
# Server = ServerName
# Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
[system-testing]
Include = /etc/pacman.d/mirrorlist
[system]
Include = /etc/pacman.d/mirrorlist
[world-testing]
Include = /etc/pacman.d/mirrorlist
[world]
Include = /etc/pacman.d/mirrorlist
[galaxy-testing]
Include = /etc/pacman.d/mirrorlist
[galaxy]
Include = /etc/pacman.d/mirrorlist
# An example of a custom package repository. See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs
[testing]
Include = /etc/pacman.d/mirrorlist-arch
[extra]
Include = /etc/pacman.d/mirrorlist-arch
[community-testing]
Include = /etc/pacman.d/mirrorlist-arch
[community]
Include = /etc/pacman.d/mirrorlist-arch

View File

@@ -79,9 +79,6 @@ Include = /etc/pacman.d/mirrorlist
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs
# [core]
# Include = /etc/pacman.d/mirrorlist-arch
[extra]
Include = /etc/pacman.d/mirrorlist-arch

View File

@@ -0,0 +1,116 @@
#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives
#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir = /
#DBPath = /var/lib/pacman/
#CacheDir = /var/cache/pacman/pkg/
#LogFile = /var/log/pacman.log
#GPGDir = /etc/pacman.d/gnupg/
#HookDir = /etc/pacman.d/hooks/
HoldPkg = pacman glibc
#XferCommand = /usr/bin/curl -C - -f %u > %o
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
#UseDelta = 0.7
Architecture = auto
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg =
#IgnoreGroup =
#NoUpgrade =
#NoExtract =
# Misc options
#UseSyslog
#Color
#TotalDownload
CheckSpace
#VerbosePkgLists
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
SigLevel = Required DatabaseOptional
LocalFileSigLevel = Optional
#RemoteFileSigLevel = Required
# NOTE: You must run `pacman-key --init` before first using pacman; the local
# keyring can then be populated with the keys of all official Artix Linux
# packagers with `pacman-key --populate archlinux cromnix`.
#
# REPOSITORIES
# - can be defined here or included from another file
# - pacman will search repositories in the order defined here
# - local/custom mirrors can be added here or in separate files
# - repositories listed first will take precedence when packages
# have identical names, regardless of version number
# - URLs will have $repo replaced by the name of the current repo
# - URLs will have $arch replaced by the name of the architecture
#
# Repository entries are of the format:
# [repo-name]
# Server = ServerName
# Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
[system-testing]
Include = /etc/pacman.d/mirrorlist
[system]
Include = /etc/pacman.d/mirrorlist
[world-testing]
Include = /etc/pacman.d/mirrorlist
[world]
Include = /etc/pacman.d/mirrorlist
[galaxy-testing]
Include = /etc/pacman.d/mirrorlist
[galaxy]
Include = /etc/pacman.d/mirrorlist
# If you want to run 32 bit applications on your x86_64 system,
# enable the lib32 repositories as required here.
[lib32-testing]
Include = /etc/pacman.d/mirrorlist
[lib32]
Include = /etc/pacman.d/mirrorlist
# An example of a custom package repository. See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs
[testing]
Include = /etc/pacman.d/mirrorlist-arch
[extra]
Include = /etc/pacman.d/mirrorlist-arch
[community-testing]
Include = /etc/pacman.d/mirrorlist-arch
[community]
Include = /etc/pacman.d/mirrorlist-arch
[multilib-testing]
Include = /etc/pacman.d/mirrorlist-arch
[multilib]
Include = /etc/pacman.d/mirrorlist-arch

View File

@@ -74,10 +74,10 @@ Include = /etc/pacman.d/mirrorlist
Include = /etc/pacman.d/mirrorlist
# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repositories as required here.
# enable the lib32 repositories as required here.
[multilib]
Include = /etc/pacman.d/mirrorlist-arch
[lib32]
Include = /etc/pacman.d/mirrorlist
# An example of a custom package repository. See the pacman manpage for
# tips on creating your own repositories.
@@ -85,11 +85,11 @@ Include = /etc/pacman.d/mirrorlist-arch
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs
# [core]
# Include = /etc/pacman.d/mirrorlist-arch
[extra]
Include = /etc/pacman.d/mirrorlist-arch
[community]
Include = /etc/pacman.d/mirrorlist-arch
[multilib]
Include = /etc/pacman.d/mirrorlist-arch

View File

@@ -0,0 +1,49 @@
--- /dev/null
+++ b/bash/artix.bashrc
@@ -0,0 +1,46 @@
+use_color=true
+
+# Set colorful PS1 only on colorful terminals.
+# dircolors --print-database uses its own built-in database
+# instead of using /etc/DIR_COLORS. Try to use the external file
+# first to take advantage of user additions. Use internal bash
+# globbing instead of external grep binary.
+safe_term=${TERM//[^[:alnum:]]/?} # sanitize TERM
+match_lhs=""
+[[ -f ~/.dir_colors ]] && match_lhs="${match_lhs}$(<~/.dir_colors)"
+[[ -f /etc/DIR_COLORS ]] && match_lhs="${match_lhs}$(</etc/DIR_COLORS)"
+[[ -z ${match_lhs} ]] \
+ && type -P dircolors >/dev/null \
+ && match_lhs=$(dircolors --print-database)
+[[ $'\n'${match_lhs} == *$'\n'"TERM "${safe_term}* ]] && use_color=true
+
+if ${use_color} ; then
+ # Enable colors for ls, etc. Prefer ~/.dir_colors #64489
+ if type -P dircolors >/dev/null ; then
+ if [[ -f ~/.dir_colors ]] ; then
+ eval $(dircolors -b ~/.dir_colors)
+ elif [[ -f /etc/DIR_COLORS ]] ; then
+ eval $(dircolors -b /etc/DIR_COLORS)
+ fi
+ fi
+
+ if [[ ${EUID} == 0 ]] ; then
+ PS1='\[\033[01;31m\][\h\[\033[01;36m\] \W\[\033[01;31m\]]\$\[\033[00m\] '
+ else
+ PS1='\[\033[01;36m\][\u@\h\[\033[01;37m\] \W\[\033[01;36m\]]\$\[\033[00m\] '
+ fi
+
+ alias ls='ls --color=auto'
+ alias grep='grep --colour=auto'
+ alias egrep='egrep --colour=auto'
+ alias fgrep='fgrep --colour=auto'
+else
+ if [[ ${EUID} == 0 ]] ; then
+ # show root@ when we don't have colors
+ PS1='\u@\h \W \$ '
+ else
+ PS1='\u@\h \w \$ '
+ fi
+fi
+
+unset use_color safe_term match_lhs sh

View File

@@ -0,0 +1,11 @@
--- a/bash/dot.bashrc
+++ b/bash/dot.bashrc
@@ -5,5 +5,5 @@
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
-alias ls='ls --color=auto'
-PS1='[\u@\h \W]\$ '
+# alias ls='ls --color=auto'
+# PS1='[\u@\h \W]\$ '

View File

@@ -0,0 +1,19 @@
--- a/bash/system.bashrc
+++ a/bash/system.bashrc
@@ -1,5 +1,5 @@
#
-# /etc/bash.bashrc
+# /etc/bash/bashrc
#
# If not running interactively, don't do anything
@@ -19,4 +19,8 @@
;;
esac
+for sh in /etc/bash/bashrc.d/*.bashrc ; do
+ [[ -r ${sh} ]] && source "${sh}"
+done
+
[ -r /usr/share/bash-completion/bash_completion ] && . /usr/share/bash-completion/bash_completion

View File

@@ -0,0 +1,8 @@
--- a/bash/system.bash_logout
+++ a/bash/system.bash_logout
@@ -1,3 +1,3 @@
#
-# /etc/bash.bash_logout
+# /etc/bash/bash_logout
#

View File

@@ -1 +0,0 @@
openrc

View File

@@ -1,305 +0,0 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of artools.
Copyright 2015 Manjaro Developers
Copyright 2017 Artoo
artools is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
artools is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
<refentry id="profile.conf" xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>profile.conf-+</title>
<productname>artools</productname>
<authorgroup>
<author>
<contrib></contrib>
<firstname></firstname>
<surname></surname>
<email></email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>artools.conf</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refnamediv>
<refname>artools.conf</refname>
<refpurpose>general configuration file for artools</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>artools.conf</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>artools.conf is a general configuration file for all artools binaries. </para>
<para>By default all the options in the file are commented, with a value equal to the
default value. To change it just uncomment and put the desired value.</para>
</refsect1>
<refsect1>
<title>General options for all tools</title>
<para>The following options are understood and used for various tools:</para>
<variablelist>
<varlistentry>
<term><varname>target_arch=</varname></term>
<listitem><para>Takes <option>i686</option> or <option>x86_64</option>.
By default it will try to autodetect the current architecture.
It defines in witch architecture the packages will be built with
buildpkg.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>workspace_dir=</varname></term>
<listitem><para>Workspace dir where packages, iso, repos or build tree. Default is "/home/$OWNER/artools-workspace".
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>chroots_dir=</varname></term>
<listitem><para>Build dir where buildpkg or buildiso chroot
environment will be created. Default is "/var/lib/artools".
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>build_mirror=</varname></term>
<listitem><para>Default mirror to be used when building
packages or iso.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>account=</varname></term>
<listitem><para>Default user to be used for upload.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>project=</varname></term>
<listitem><para>Default SF project name to be used for upload.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>host_mirrors=</varname></term>
<listitem><para>Array of host mirrors.
</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Options for buildtree</title>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><varname>repo_tree_artix=</varname></term>
<listitem><para>Artix package tree. Default is
"('system' 'world' 'galaxy')".
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>host_tree_artix=</varname></term>
<listitem><para>Host tree. Default is "https://github.com/artix-linux".
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>repo_tree_arch=</varname></term>
<listitem><para>Archlinux package tree. Default is
"('packages' 'community')".
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>host_tree_arch=</varname></term>
<listitem><para>Host tree for archlinux. Default is
"https://projects.archlinux.org/git/svntogit".
</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Options for buildpkg</title>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><varname>build_list_pkg=</varname></term>
<listitem><para>Default list for buildpkg without the .list
extension.
</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Options for buildiso</title>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><varname>build_list_iso=</varname></term>
<listitem><para>Default list for buildiso without the .list
extension.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>dist_release=</varname></term>
<listitem><para>Release version of the distribution.
</para></listitem>
</varlistentry>
<varlistentry>
<!-- TODO: We should tell where exactly this is used -->
<term><varname>dist_branding=</varname></term>
<listitem><para>Branding of the distribution.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>gpgkey=</varname></term>
<listitem><para>If the gpgkey is supplied, the sfs images on iso will be signed.
If the key is left empty or commented, signing will be skipped.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>initsys=</varname></term>
<listitem><para>Takes <option>openrc</option> (the default)
or <option>notyetimplemented</option>. Selecting and option will change
how the hostname, the displaymanager and services will be configured.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>kernel=</varname></term>
<listitem><para>Takes a string corresponding to an
artix kernel package.
</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Options for deployiso</title>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><varname>tracker_url=</varname></term>
<listitem><para>Default tracker announce for the torrent.
The tracker url can also contain comma separated urls.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>piece_size=</varname></term>
<listitem><para>Default priece size for the torrent in 2^n.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>uplimit=</varname></term>
<listitem><para>Default upload bandwidth limit in kb/s.
</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Options for deploypkg</title>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><varname>repos_local=</varname></term>
<listitem><para>The local repository root. Default is "${workspace_dir}/repos".
</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry project='artools'><refentrytitle>profiles.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry project='artools'><refentrytitle>buildiso</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry project='artools'><refentrytitle>deployiso</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry project='artools'><refentrytitle>buildtree</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry project='artools'><refentrytitle>deploypkg</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry project='artools'><refentrytitle>buildpkg</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@@ -1,181 +0,0 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of artools.
Copyright 2015 Manjaro Developers
Copyright 2017 Artoo
artools is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
artools is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with artools; If not, see <http://www.gnu.org/licenses/>.
-->
<refentry id="buildiso" xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>buildiso-+</title>
<productname>artools</productname>
<authorgroup>
<author>
<contrib></contrib>
<firstname></firstname>
<surname></surname>
<email></email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>buildiso</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>buildiso</refname>
<refpurpose>buildiso is used to build a particular ISO or a set of ISOs. </refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>buildiso</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para><command>buildiso</command> is used to build a particular ISO or a set of ISOs. </para>
<para>With buildiso you can build ISOs suitable to be booted from a removable media
like a DVD o a USB Stick, it will automatically create the necessary files to
install this ISO using calamares.</para>
</refsect1>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><option>-p PROFILE...</option></term>
<listitem><para>Name of the build list or name of the directory
you will build. It needs to contain an existing build list or a
folder with a valid profile.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-a i686|x86_64</option></term>
<listitem><para>Architecture that the iso will be built. Can be i686 or x86_64.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-r DIR</option></term>
<listitem><para>Root working directory where the iso will be built.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-t DIR</option></term>
<listitem><para>Iso target directory where the final iso will be stored.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-i openrc|s6|runit</option></term>
<listitem><para>The init system on the iso</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-g KEY</option></term>
<listitem><para>The GPG key to use to sign the sfs images.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-k linuxXXX</option></term>
<listitem><para>The kernel on the iso</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-c</option></term>
<listitem><para>Disable clean working directory step.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-m</option></term>
<listitem><para>Enable persistence mode.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-x</option></term>
<listitem><para>Only build images, without creating an ISO file.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-z</option></term>
<listitem><para>Generate iso from already created images, for example created with the -x option.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-v</option></term>
<listitem><para>Verbose output to log file, show profile detail in combination with pretend.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-q</option></term>
<listitem><para>Query settings and pretend build.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-h</option></term>
<listitem><para>Help.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<!--<refsect1>
<title>Exit status</title>
<para>On success, 0 is returned, a non-zero failure code
otherwise.</para>
</refsect1>
-->
<refsect1>
<title>See Also</title>
<para>
<citerefentry project='artools'><refentrytitle>artools.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry project='artools'><refentrytitle>profiles.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
</para>
</refsect1>
</refentry>

View File

@@ -1,160 +0,0 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of artools.
Copyright 2015 Manjaro Developers
Copyright 2017 Artoo
artools is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
artools is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with artools; If not, see <http://www.gnu.org/licenses/>.
-->
<refentry id="buildpkg" xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>buildpkg-+</title>
<productname>artools</productname>
<authorgroup>
<author>
<contrib></contrib>
<firstname></firstname>
<surname></surname>
<email></email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>buildpkg</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>buildpkg</refname>
<refpurpose>buildpkg is used to build packages in a clean chroot. </refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>buildpkg</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para><command>buildpkg</command> is used to build a particular package or a set of packages. </para>
<para>With buildpkg you can build packages in a clean chroot environment.</para>
</refsect1>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><option>-p PROFILE...</option></term>
<listitem><para>Name of the build list or name of the directory
you will build. It needs to cantain a existing build list or a
folder with a valid PKGBUILD.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-a i686|x86_64|multilib</option></term>
<listitem><para>Architecture that the iso will be built. Can be i686, x86_64 or multilib.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-r DIR</option></term>
<listitem><para>Root working directory where the package will be built.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-i PKG</option></term>
<listitem><para>Install packages into the working copy of the chroot.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-o</option></term>
<listitem><para>Create chroot.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-d</option></term>
<listitem><para>Delete chroot.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-c</option></term>
<listitem><para>Clean chroot copy.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-u</option></term>
<listitem><para>Update chroot copy.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-w</option></term>
<listitem><para>Clean up cache and sources.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-n</option></term>
<listitem><para>Install built package in chroot and run namcap check.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-s</option></term>
<listitem><para>Sign package.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-q</option></term>
<listitem><para>Query settings and pretend build.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-h</option></term>
<listitem><para>Help.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry project='artools'><refentrytitle>artools.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
</para>
</refsect1>
</refentry>

View File

@@ -1,111 +0,0 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of artools.
Copyright 2015 Manjaro Developers
Copyright 2017 Artoo
artools is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
artools is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with artools; If not, see <http://www.gnu.org/licenses/>.
-->
<refentry id="buildtree" xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>buildtree-+</title>
<productname>artools</productname>
<authorgroup>
<author>
<contrib></contrib>
<firstname></firstname>
<surname></surname>
<email></email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>buildtree</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>buildtree</refname>
<refpurpose>buildtree is used to sync the cromnix and arch package build tree. </refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>buildtree</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para><command>buildtree</command> is used to sync package trees. </para>
<para>With buildtree, you can sync the cromnix and arch linux packae build trees.</para>
</refsect1>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><option>-s</option></term>
<listitem><para>Sync Manjaro linux tree.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-a</option></term>
<listitem><para>Sync Arch linux tree.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-c</option></term>
<listitem><para>Clean package trees.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-q</option></term>
<listitem><para>Query settings.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-h</option></term>
<listitem><para>Help.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry project='artools'><refentrytitle>artools.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
</para>
</refsect1>
</refentry>

View File

@@ -1,146 +0,0 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of artools.
Copyright 2015 Manjaro Developers
Copyright 2017 Artoo
artools is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
artools is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with artools; If not, see <http://www.gnu.org/licenses/>.
-->
<refentry id="buildyaml" xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>buildyaml-+</title>
<productname>artools</productname>
<authorgroup>
<author>
<contrib></contrib>
<firstname></firstname>
<surname></surname>
<email></email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>buildyaml</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>buildyaml</refname>
<refpurpose>buildyaml is used to generate and validate yaml files used by calamares. </refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>buildyaml</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para><command>buildyaml</command> is used to generate and validate yaml files used by calamares.</para>
<para>buildyaml is a script to generate and validate yaml files by yaml schemas. Buildiso generates these files also, but buildyaml is a standalone version without the need to build the entire iso.</para>
</refsect1>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><option>-p PROFILE...</option></term>
<listitem><para>Name of the build list or name of the directory.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-a i686|x86_64</option></term>
<listitem><para>Architecture that the yaml will be created for. Can be i686 or x86_64.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-i openrc|s6|runit</option></term>
<listitem><para>The init system the yaml will be created for.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-k linuxXXX</option></term>
<listitem><para>The kernel the yaml will be created for.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-c</option></term>
<listitem><para>Create calamares yaml conf files.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-g</option></term>
<listitem><para>Generate a packman group netgroup yaml file.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-v</option></term>
<listitem><para>Validate the yaml file by yaml schema.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-q</option></term>
<listitem><para>Query settings.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-h</option></term>
<listitem><para>Help.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<!--<refsect1>
<title>Exit status</title>
<para>On success, 0 is returned, a non-zero failure code
otherwise.</para>
</refsect1>
-->
<refsect1>
<title>See Also</title>
<para>
<citerefentry project='artools'><refentrytitle>artools.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry project='artools'><refentrytitle>profiles.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
</para>
</refsect1>
</refentry>

View File

@@ -1,135 +0,0 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of artools.
Copyright 2015 Manjaro Developers
Copyright 2017 Artoo
artools is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
artools is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with artools; If not, see <http://www.gnu.org/licenses/>.
-->
<refentry id="deployiso" xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>deployiso-+</title>
<productname>artools</productname>
<authorgroup>
<author>
<contrib></contrib>
<firstname></firstname>
<surname></surname>
<email></email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>deployiso</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>deployiso</refname>
<refpurpose>deployiso is used to upload a particular ISO or a set of ISOs. </refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>deployiso</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para><command>deployiso</command> is used to upload a particular ISO or a set of ISOs. </para>
<para>deployiso is a script to upload a specific iso or a buiildset to SF.</para>
</refsect1>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><option>-p PROFILE...</option></term>
<listitem><para>Name of the build list or name of the directory
you will upload.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-l</option></term>
<listitem><para>Limit bandwidth in kB/s.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-u</option></term>
<listitem><para>Update remote iso.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-t</option></term>
<listitem><para>Create a torrent from iso file.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-v</option></term>
<listitem><para>Verbose output.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-q</option></term>
<listitem><para>Query settings and pretend upload.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-h</option></term>
<listitem><para>Help.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<!--<refsect1>
<title>Exit status</title>
<para>On success, 0 is returned, a non-zero failure code
otherwise.</para>
</refsect1>
-->
<refsect1>
<title>See Also</title>
<para>
<citerefentry project='artools'><refentrytitle>artools.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry project='artools'><refentrytitle>profiles.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
</para>
</refsect1>
</refentry>

View File

@@ -1,145 +0,0 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of artools.
Copyright 2015 Manjaro Developers
Copyright 2017 Artoo
artools is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
artools is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with artools; If not, see <http://www.gnu.org/licenses/>.
-->
<refentry id="deploypkg" xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>deploypkg-+</title>
<productname>artools</productname>
<authorgroup>
<author>
<contrib></contrib>
<firstname></firstname>
<surname></surname>
<email></email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>deploypkg</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>deploypkg</refname>
<refpurpose>deploypkg is used to sync package repositories. </refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>deploypkg</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para><command>deploypkg</command> is used to sync package repositories. </para>
<para>deploypkg is a script to sync a specific repoitory with SF.</para>
</refsect1>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><option>-r REPOSITORY...</option></term>
<listitem><para>Name of the repo to sync.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-p PACKAGE...</option></term>
<listitem><para>Name of the package to add or delete.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-x</option></term>
<listitem><para>Add a package to the repo db.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-y</option></term>
<listitem><para>Delete a package from the repo.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-u</option></term>
<listitem><para>Upload a repo.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-d</option></term>
<listitem><para>Download a repo.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-v</option></term>
<listitem><para>Verbose output.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-q</option></term>
<listitem><para>Query settings and pretend upload.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-h</option></term>
<listitem><para>Help.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<!--<refsect1>
<title>Exit status</title>
<para>On success, 0 is returned, a non-zero failure code
otherwise.</para>
</refsect1>
-->
<refsect1>
<title>See Also</title>
<para>
<citerefentry project='artools'><refentrytitle>artools.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
</para>
</refsect1>
</refentry>

View File

@@ -1,200 +0,0 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of artools.
Copyright 2015 Manjaro Developers
Copyright 2017 Artoo
artools is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
artools is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with artools; If not, see <http://www.gnu.org/licenses/>.
-->
<refentry id="profile.conf" xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>profile.conf-+</title>
<productname>artools</productname>
<authorgroup>
<author>
<contrib></contrib>
<firstname></firstname>
<surname></surname>
<email></email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>profile.conf</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refnamediv>
<refname>profile.conf</refname>
<refpurpose>configuration file for the individual profiles </refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>profile.conf</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>profile.conf is a configuration file used to modify how the ISO will be built. </para>
<para>By default all the options in the file are commented, with a value equal to the
default value. To change it just uncomment and put the desired value.</para>
</refsect1>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><varname>displaymanager=</varname></term>
<listitem><para>Takes a value of
<option>lightdm</option>,
<option>sddm</option>,
<option>gdm</option>,
<option>mdm</option>,
<option>lxdm</option>. Defaults to "none" value,
which won't configure any display manager.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>autologin=</varname></term>
<listitem><para>Accepts
<option>true</option> (the default)
<option>false</option>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>netinstall=</varname></term>
<listitem><para>Accepts
<option>false</option> (the default)
<option>true</option>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>chrootcfg=</varname></term>
<listitem><para>Accepts
<option>false</option> (the default)
<option>true</option>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>extra=</varname></term>
<listitem><para>Accepts
<option>false</option> (the default)
<option>false</option>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>multilib=</varname></term>
<listitem><para>Accepts
<option>true</option> (the default)
<option>false</option>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>openrc_boot=</varname></term>
<listitem><para>Array of services that will be
enabled in openrc boot runlevel.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>openrc_default=</varname></term>
<listitem><para>Array of services that will be
enabled in openrc default runlevel.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>hostname=</varname></term>
<listitem><para>Hostname for the ISO.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>username=</varname></term>
<listitem><para>Username of the default user
that will be created in the live-cd.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>password=</varname></term>
<listitem><para>Password of the default user
that will be created in the live-cd.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>login_shell=</varname></term>
<listitem><para>Accepts any login shell for the user, eg. /bin/zsh.
login_shell defaults to /bin/bash
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>addgroups=</varname></term>
<listitem><para>Default groups of the default user
in the live-cd and the user created while installing
the iso using calamares.
</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry project='artools'><refentrytitle>artools.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry project='artools'><refentrytitle>buildiso</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
</para>
</refsect1>
</refentry>

View File

@@ -120,7 +120,7 @@ _verify_signature() {
run_hook() {
[[ -z "${arch}" ]] && arch="$(uname -m)"
[[ -z "${copytoram_size}" ]] && copytoram_size="75%"
[[ -z "${artixbasedir}" ]] && artixbasedir="cromnix"
[[ -z "${artixbasedir}" ]] && artixbasedir="artix"
[[ -z "${dm_snap_prefix}" ]] && dm_snap_prefix="arch"
[[ -z "${artixdevice}" ]] && artixdevice="/dev/disk/by-label/${artixlabel}"

View File

@@ -1,245 +0,0 @@
# args: source, newroot, mountpoint
_mnt_dmsnapshot() {
local img="${1}"
local mnt="${2}"
local img_fullname="${img##*/}";
local img_name="${img_fullname%%.*}"
local dm_snap_name="${dm_snap_prefix}_${img_name}"
local ro_dev ro_dev_size rw_dev
ro_dev=$(losetup --find --show --read-only "${img}")
echo ${ro_dev} >> /run/miso/used_block_devices
ro_dev_size=$(blockdev --getsz ${ro_dev})
if [[ "${cow_persistent}" == "P" ]]; then
if [[ -f "/run/miso/cowspace/${cow_directory}/${img_name}.cow" ]]; then
msg ":: Found '/run/miso/cowspace/${cow_directory}/${img_name}.cow', using as persistent."
else
msg ":: Creating '/run/miso/cowspace/${cow_directory}/${img_name}.cow' as persistent."
truncate -s "${cow_spacesize}" "/run/miso/cowspace/${cow_directory}/${img_name}.cow"
fi
else
if [[ -f "/run/miso/cowspace/${cow_directory}/${img_name}.cow" ]]; then
msg ":: Found '/run/miso/cowspace/${cow_directory}/${img_name}.cow' but non-persistent requested, removing."
rm -f "/run/miso/cowspace/${cow_directory}/${img_name}.cow"
fi
msg ":: Creating '/run/miso/cowspace/${cow_directory}/${img_name}.cow' as non-persistent."
truncate -s "${cow_spacesize}" "/run/miso/cowspace/${cow_directory}/${img_name}.cow"
fi
rw_dev=$(losetup --find --show "/run/miso/cowspace/${cow_directory}/${img_name}.cow")
echo ${rw_dev} >> /run/miso/used_block_devices
dmsetup create ${dm_snap_name} --table "0 ${ro_dev_size} snapshot ${ro_dev} ${rw_dev} ${cow_persistent} ${cow_chunksize}"
_mnt_dev "/dev/mapper/${dm_snap_name}" "${mnt}" "-w" "defaults"
echo $(readlink -f /dev/mapper/${dm_snap_name}) >> /run/miso/used_block_devices
}
# args: source, newroot, mountpoint
_mnt_overlayfs() {
local src="${1}"
local newroot="${2}"
local mnt="${3}"
local work_dir="/run/miso/overlay_root/work"
local upper_dir="/run/miso/overlay_root/upper"
mkdir -p "${upper_dir}" "${work_dir}"
mount -t overlay overlay -o lowerdir="${src}",upperdir="${upper_dir}",workdir="${work_dir}" "${newroot}${mnt}"
}
# args: /path/to/image_file, mountpoint
_mnt_sfs() {
local img="${1}"
local mnt="${2}"
local img_fullname="${img##*/}"
local sfs_dev
if [[ "${copytoram}" == "y" ]]; then
msg -n ":: Copying squashfs image to RAM..."
if ! cp "${img}" "/run/miso/copytoram/${img_fullname}" ; then
echo "ERROR: while copy '${img}' to '/run/miso/copytoram/${img_fullname}'"
launch_interactive_shell
fi
img="/run/miso/copytoram/${img_fullname}"
msg "done."
fi
sfs_dev=$(losetup --find --show --read-only "${img}")
echo ${sfs_dev} >> /run/miso/used_block_devices
_mnt_dev "${sfs_dev}" "${mnt}" "-r" "defaults"
}
# args: device, mountpoint, flags, opts
_mnt_dev() {
local dev="${1}"
local mnt="${2}"
local flg="${3}"
local opts="${4}"
mkdir -p "${mnt}"
msg ":: Mounting '${dev}' to '${mnt}'"
while ! poll_device "${dev}" 30; do
echo "ERROR: '${dev}' device did not show up after 30 seconds..."
echo " Falling back to interactive prompt"
echo " You can try to fix the problem manually, log out when you are finished"
launch_interactive_shell
done
if mount -o "${opts}" "${flg}" "${dev}" "${mnt}"; then
msg ":: Device '${dev}' mounted successfully."
else
echo "ERROR; Failed to mount '${dev}'"
echo " Falling back to interactive prompt"
echo " You can try to fix the problem manually, log out when you are finished"
launch_interactive_shell
fi
}
_verify_checksum() {
local _status
cd "/run/miso/bootmnt/${misobasedir}/${arch}"
md5sum -c $1.md5 > /tmp/checksum.log 2>&1
_status=$?
cd "${OLDPWD}"
return ${_status}
}
_verify_signature() {
local _status
cd "/run/miso/bootmnt/${misobasedir}/${arch}"
gpg --homedir /gpg --status-fd 1 --verify $1.sfs.sig 2>/dev/null | grep -qE '^\[GNUPG:\] GOODSIG'
_status=$?
cd "${OLDPWD}"
return ${_status}
}
run_hook() {
[[ -z "${arch}" ]] && arch="$(uname -m)"
[[ -z "${copytoram_size}" ]] && copytoram_size="75%"
[[ -z "${misobasedir}" ]] && misobasedir="cromnix"
[[ -z "${dm_snap_prefix}" ]] && dm_snap_prefix="arch"
[[ -z "${misodevice}" ]] && misodevice="/dev/disk/by-label/${misolabel}"
[[ -z "${cow_spacesize}" ]] && cow_spacesize="256M"
[[ -z "${overlay_root_size}" ]] && overlay_root_size="75%"
if [[ -n "${cow_label}" ]]; then
cow_device="/dev/disk/by-label/${cow_label}"
[[ -z "${cow_persistent}" ]] && cow_persistent="P"
elif [[ -n "${cow_device}" ]]; then
[[ -z "${cow_persistent}" ]] && cow_persistent="P"
else
cow_persistent="N"
fi
[[ -z "${cow_flags}" ]] && cow_flags="defaults"
[[ -z "${cow_directory}" ]] && cow_directory="persistent_${misolabel}/${arch}"
[[ -z "${cow_chunksize}" ]] && cow_chunksize="8"
# set mount handler for miso
mount_handler="miso_mount_handler"
}
# This function is called normally from init script, but it can be called
# as chain from other mount handlers.
# args: /path/to/newroot
miso_mount_handler() {
local newroot="${1}"
if ! mountpoint -q "/run/miso/bootmnt"; then
_mnt_dev "${misodevice}" "/run/miso/bootmnt" "-r" "defaults"
if [[ "${copytoram}" != "y" ]]; then
echo $(readlink -f ${misodevice}) >> /run/miso/used_block_devices
fi
fi
if [[ "${checksum}" == "y" ]]; then
for fs in rootfs desktopfs livefs;do
if [[ -f "/run/miso/bootmnt/${misobasedir}/${arch}/${fs}.sfs" ]]; then
if [[ -f "/run/miso/bootmnt/${misobasedir}/${arch}/${fs}.md5" ]]; then
msg -n ":: Self-test requested, please wait..."
if _verify_checksum "${fs}"; then
msg "done. Checksum is OK, continue booting."
else
echo "ERROR: one or more files are corrupted"
echo "see /tmp/checksum.log for details"
launch_interactive_shell
fi
else
echo "ERROR: checksum=y option specified but ${misobasedir}/${arch}/${fs}.md5 not found"
launch_interactive_shell
fi
fi
done
fi
if [[ "${verify}" == "y" ]]; then
for fs in rootfs desktopfs livefs;do
if [[ -f "/run/miso/bootmnt/${misobasedir}/${arch}/${fs}.sfs" ]]; then
if [[ -f "/run/miso/bootmnt/${misobasedir}/${arch}/${fs}.sfs.sig" ]]; then
msg -n ":: Signature verification requested, please wait..."
if _verify_signature "${fs}"; then
msg "done. Signature is OK, continue booting."
else
echo "ERROR: one or more files are corrupted"
launch_interactive_shell
fi
else
echo "ERROR: verify=y option specified but ${misobasedir}/${arch}/${fs}.sfs.sig not found"
launch_interactive_shell
fi
fi
done
fi
if [[ "${copytoram}" == "y" ]]; then
msg ":: Mounting /run/miso/copytoram (tmpfs) filesystem, size=${copytoram_size}"
mkdir -p /run/miso/copytoram
mount -t tmpfs -o "size=${copytoram_size}",mode=0755 copytoram /run/miso/copytoram
fi
if [[ -n "${cow_device}" ]]; then
_mnt_dev "${cow_device}" "/run/miso/cowspace" "-r" "${cow_flags}"
echo $(readlink -f ${cow_device}) >> /run/miso/used_block_devices
mount -o remount,rw "/run/miso/cowspace"
else
msg ":: Mounting /run/miso/cowspace (tmpfs) filesystem, size=${cow_spacesize}..."
mkdir -p /run/miso/cowspace
mount -t tmpfs -o "size=${cow_spacesize}",mode=0755 cowspace /run/miso/cowspace
fi
mkdir -p -m 0700 "/run/miso/cowspace/${cow_directory}"
msg -n ":: Mounting overlay root (tmpfs) filesystem, size=${overlay_root_size}..."
mkdir -p /run/miso/overlay_root
mount -t tmpfs -o "size=${overlay_root_size}",mode=0755 overlay_root /run/miso/overlay_root
local src="/run/miso/bootmnt/${misobasedir}/${arch}"
local dest_sfs="/run/miso/sfs" dest_img="/run/miso/img"
local lower_dir
for sfs in livefs desktopfs rootfs;do
if [[ -f "${src}/${sfs}.sfs" ]]; then
_mnt_sfs "${src}/${sfs}.sfs" "${dest_sfs}/${sfs}"
if [[ -f "${dest_sfs}/${sfs}/${sfs}.img" ]]; then
mkdir -p ${dest_img}
lower_dir=${lower_dir:-}${lower_dir:+:}"${dest_img}/${sfs}"
_mnt_dmsnapshot "${dest_sfs}/${sfs}/${sfs}.img" "${dest_img}/${sfs}"
else
lower_dir=${lower_dir:-}${lower_dir:+:}"${dest_sfs}/${sfs}"
fi
fi
done
_mnt_overlayfs "${lower_dir}" "${newroot}" "/"
if [[ "${copytoram}" == "y" ]]; then
umount -d /run/miso/bootmnt
mkdir -p /run/miso/bootmnt/${misobasedir}/${arch}
mount -o bind /run/miso/copytoram /run/miso/bootmnt/${misobasedir}/${arch}
fi
}
# vim:ft=sh:ts=4:sw=4:et:

View File

@@ -1,35 +0,0 @@
# vim: set ft=sh:
run_hook () {
[[ -n "${img_label}" ]] && img_dev="/dev/disk/by-label/${img_label}"
[[ -z "${img_flags}" ]] && img_flags="defaults"
if [[ -n "${img_dev}" && -n "${img_loop}" ]]; then
mount_handler="miso_loop_mount_handler"
fi
}
miso_loop_mount_handler () {
newroot="${1}"
local _dev_loop
msg ":: Setup a loop device from ${img_loop} located at device ${img_dev}"
_mnt_dev "${img_dev}" "/run/miso/img_dev" "-r" "${img_flags}"
if [[ "${copytoram}" != "y" ]]; then
echo $(readlink -f ${img_dev}) >> /run/miso/used_block_devices
fi
if _dev_loop=$(losetup --find --show --read-only "/run/miso/img_dev/${img_loop}"); then
misodevice="${_dev_loop}"
else
echo "ERROR: Setting loopback device for file '/run/miso/img_dev/${img_loop}'"
launch_interactive_shell
fi
miso_mount_handler ${newroot}
if [[ "${copytoram}" == "y" ]]; then
losetup -d ${_dev_loop} 2>/dev/null
umount /run/miso/img_dev
fi
}

View File

@@ -1,72 +0,0 @@
# vim: set ft=sh:
run_hook () {
# Do *not* declare 'bootif_dev' local! We need it in run_latehook().
local i net_mac bootif_mac
# These variables will be parsed from /tmp/net-*.conf generated by ipconfig
local DEVICE
local IPV4ADDR IPV4BROADCAST IPV4NETMASK IPV4GATEWAY IPV4DNS0 IPV4DNS1
local HOSTNAME DNSDOMAIN NISDOMAIN ROOTSERVER ROOTPATH
local filename
# /tmp/net-*.conf
if [[ -n "${ip}" ]]; then
if [[ -n "${BOOTIF}" ]]; then
bootif_mac=${BOOTIF#01-}
bootif_mac=${bootif_mac//-/:}
for i in /sys/class/net/*/address; do
read net_mac < ${i}
if [[ "${bootif_mac}" == "${net_mac}" ]]; then
bootif_dev=${i#/sys/class/net/}
bootif_dev=${bootif_dev%/address}
break
fi
done
if [[ "${ip}" == "dhcp" ]]; then
ip=":::::${bootif_dev}:dhcp"
else
ip="${ip}::${bootif_dev}"
fi
fi
# setup network and save some values
if ! ipconfig -t 20 "ip=${ip}"; then
echo "ERROR; Failed to configure network"
echo " Falling back to interactive prompt"
echo " You can try to fix the problem manually, log out when you are finished"
launch_interactive_shell
fi
. /tmp/net-*.conf
pxeserver=${ROOTSERVER}
# setup DNS resolver
if [[ "${IPV4DNS0}" != "0.0.0.0" ]]; then
echo "# added by miso_pxe_common hook" > /etc/resolv.conf
echo "nameserver ${IPV4DNS0}" >> /etc/resolv.conf
fi
if [[ "${IPV4DNS1}" != "0.0.0.0" ]]; then
echo "nameserver ${IPV4DNS1}" >> /etc/resolv.conf
fi
if [[ -n "${DNSDOMAIN}" ]]; then
echo "search ${DNSDOMAIN}" >> /etc/resolv.conf
echo "domain ${DNSDOMAIN}" >> /etc/resolv.conf
fi
fi
}
run_latehook () {
if [[ -n "${ip}" ]]; then
[[ -z "${copy_resolvconf}" ]] && copy_resolvconf="y"
if [[ "${copytoram}" == "y" ]]; then
if [[ -n "${bootif_dev}" ]]; then
ip addr flush dev "${bootif_dev}"
ip link set "${bootif_dev}" down
fi
elif [[ "${copy_resolvconf}" != "n" && -f /etc/resolv.conf ]]; then
cp /etc/resolv.conf /new_root/etc/resolv.conf
fi
fi
}

View File

@@ -1,59 +0,0 @@
# vim: set ft=sh:
run_hook() {
if [[ -n "${ip}" && -n "${miso_http_srv}" ]]; then
# booting with http is always copy-to-ram, so set here to make sure
# addresses are flushed and interface is set down
copytoram="y"
miso_http_srv=$(eval echo ${miso_http_srv})
[[ -z "${miso_http_spc}" ]] && miso_http_spc="75%"
mount_handler="miso_pxe_http_mount_handler"
fi
}
# Fetch a file with CURL
#
# $1 URL
# $2 Destination directory inside httpspace/${misobasedir}
_curl_get() {
local _url="${1}"
local _dst="${2}"
msg ":: Downloading '${_url}'"
if ! curl -L -f -o "/run/miso/httpspace/${misobasedir}${_dst}/${_url##*/}" --create-dirs "${_url}"; then
echo "ERROR: Downloading '${_url}'"
echo " Falling back to interactive prompt"
echo " You can try to fix the problem manually, log out when you are finished"
launch_interactive_shell
fi
}
miso_pxe_http_mount_handler () {
newroot="${1}"
msg ":: Mounting /run/miso/httpspace (tmpfs) filesystem, size='${miso_http_spc}'"
mkdir -p "/run/miso/httpspace"
mount -t tmpfs -o size="${miso_http_spc}",mode=0755 httpspace "/run/miso/httpspace"
local _src=${miso_http_srv}${misobasedir}/${arch}
for sfs in livefs desktopfs rootfs;do
if [[ ! -z "$( curl -s --head "${_src}/${sfs}.sfs" | grep "OK" )" ]]; then
_curl_get "${_src}/${sfs}.sfs" "/${arch}"
if [[ "${checksum}" == "y" ]]; then
_curl_get "${_src}/${sfs}.md5" "/${arch}"
fi
if [[ "${verify}" == "y" ]]; then
_curl_get "${_src}/${sfs}.sfs.sig" "/${arch}"
fi
fi
done
mkdir -p "/run/miso/bootmnt"
mount -o bind /run/miso/httpspace /run/miso/bootmnt
miso_mount_handler ${newroot}
}

View File

@@ -1,47 +0,0 @@
# vim: set ft=sh:
run_earlyhook() {
if [[ -n "${ip}" && -n "${miso_nbd_srv}" ]]; then
# Module autoloading like with loop devices does not work, doing manually...
modprobe nbd 2> /dev/null
fi
}
run_hook() {
if [[ -n "${ip}" && -n "${miso_nbd_srv}" ]]; then
miso_nbd_srv=$(eval echo ${miso_nbd_srv})
[[ -z "${miso_nbd_name}" ]] && miso_nbd_name="miso"
mount_handler="miso_pxe_nbd_mount_handler"
fi
}
miso_pxe_nbd_mount_handler () {
newroot="${1}"
msg ":: Waiting for boot device..."
while ! poll_device /dev/nbd0 30; do
echo "ERROR: boot device didn't show up after 30 seconds..."
echo " Falling back to interactive prompt"
echo " You can try to fix the problem manually, log out when you are finished"
launch_interactive_shell
done
msg ":: Setup NBD from ${miso_nbd_srv} at /dev/nbd0"
if [[ "${copytoram}" != "n" ]]; then
nbd-client ${miso_nbd_srv} -N ${miso_nbd_name} /dev/nbd0
copytoram="y"
else
nbd-client ${miso_nbd_srv} -N ${miso_nbd_name} -persist /dev/nbd0
fi
misodevice=/dev/nbd0
miso_mount_handler ${newroot}
if [[ "${copytoram}" == "y" ]]; then
msg ":: Disconnect NBD from ${miso_nbd_srv} at /dev/nbd0"
nbd-client -d /dev/nbd0
fi
}

View File

@@ -1,30 +0,0 @@
# vim: set ft=sh:
run_hook() {
if [[ -n "${ip}" && -n "${miso_nfs_srv}" ]]; then
miso_nfs_srv=$(eval echo ${miso_nfs_srv})
[[ -n "${miso_nfs_opt}" ]] && miso_nfs_opt="-o ${miso_nfs_opt}"
mount_handler="miso_nfs_mount_handler"
fi
}
miso_nfs_mount_handler() {
newroot="${1}"
mkdir -p "/run/miso/bootmnt"
msg ":: Mounting '${miso_nfs_srv}'"
# Do not put "${miso_nfs_opt}" nfsmount fails!
if ! nfsmount ${miso_nfs_opt} "${miso_nfs_srv}" "/run/miso/bootmnt"; then
echo "ERROR: Mounting '${miso_nfs_srv}'"
echo " Falling back to interactive prompt"
echo " You can try to fix the problem manually, log out when you are finished"
launch_interactive_shell
fi
if [[ "${copytoram}" != "n" ]]; then
copytoram="y"
fi
miso_mount_handler ${newroot}
}

View File

@@ -1,6 +0,0 @@
run_cleanuphook() {
rm -rf /usr/lib/modules
cp -ax / /run/initramfs
}
# vim: set ft=sh ts=4 sw=4 et:

View File

@@ -1,30 +0,0 @@
#!/bin/bash
build() {
add_module "cdrom"
add_module "loop"
add_module "dm-snapshot"
add_module "overlay"
add_runscript
add_binary /usr/lib/udev/cdrom_id
add_binary blockdev
add_binary dmsetup
add_binary losetup
add_binary mountpoint
add_binary truncate
add_binary gpg
add_binary grep
add_file /usr/lib/udev/rules.d/60-cdrom_id.rules
add_file /usr/lib/udev/rules.d/10-dm.rules
add_file /usr/lib/udev/rules.d/95-dm-notify.rules
add_file /usr/lib/initcpio/udev/11-dm-initramfs.rules /usr/lib/udev/rules.d/11-dm-initramfs.rules
if [[ $MISO_GNUPG_FD ]]; then
mkdir -p "$BUILDROOT$dest"/gpg
gpg --homedir "$BUILDROOT$dest"/gpg --import <&$MISO_GNUPG_FD
fi
}
# vim: set ft=sh ts=4 sw=4 et:

View File

@@ -1,26 +0,0 @@
#!/bin/bash
build() {
add_module "radeon"
add_module "nouveau"
add_module "i915"
add_module "via-agp"
add_module "sis-agp"
add_module "intel-agp"
if [[ $(uname -m) == i686 ]]; then
add_module "amd64-agp"
add_module "ati-agp"
add_module "sworks-agp"
add_module "ali-agp"
add_module "amd-k7-agp"
add_module "nvidia-agp"
add_module "efficeon-agp"
fi
}
help() {
cat << HELPEOF
Adds all common KMS drivers to the initramfs image.
HELPEOF
}

View File

@@ -1,13 +0,0 @@
#!/bin/bash
build() {
add_runscript
}
help() {
cat<<HELPEOF
This hook loads the necessary modules for boot via loop device.
HELPEOF
}
# vim: set ft=sh ts=4 sw=4 et:

View File

@@ -1,26 +0,0 @@
#!/bin/bash
build() {
add_checked_modules -f "(irda|phy|wimax|wireless|ppp_|plip|pppoe)" "/drivers/net/"
add_runscript
add_binary /usr/lib/initcpio/ipconfig /bin/ipconfig
# Add hosts support files+dns
add_symlink /usr/lib/libnss_files.so.2 $(readlink /usr/lib/libnss_files.so.2)
add_binary $(readlink -f /usr/lib/libnss_files.so.2)
add_symlink /usr/lib/libnss_dns.so.2 $(readlink /usr/lib/libnss_dns.so.2)
add_binary $(readlink -f /usr/lib/libnss_dns.so.2)
add_dir /etc
echo "hosts: files dns" > $BUILDROOT/etc/nsswitch.conf
}
help() {
cat<<HELPEOF
This hook loads the necessary modules for boot via PXE.
HELPEOF
}
# vim: set ft=sh ts=4 sw=4 et:

View File

@@ -1,17 +0,0 @@
#!/bin/bash
build() {
add_runscript
add_binary curl
add_file $(readlink -f /etc/ssl/certs/ca-certificates.crt) /etc/ssl/certs/ca-certificates.crt
}
help() {
cat<<HELPEOF
This hook loads the necessary modules for boot via PXE and HTTP.
HELPEOF
}
# vim: set ft=sh ts=4 sw=4 et:

View File

@@ -1,17 +0,0 @@
#!/bin/bash
build() {
add_module "nbd"
add_runscript
add_binary nbd-client
}
help() {
cat<<HELPEOF
This hook loads the necessary modules for boot via PXE and NBD.
HELPEOF
}
# vim: set ft=sh ts=4 sw=4 et:

View File

@@ -1,17 +0,0 @@
#!/bin/bash
build() {
add_module "nfs"
add_runscript
add_binary /usr/lib/initcpio/nfsmount /bin/nfsmount
}
help() {
cat <<HELPEOF
This hook loads the necessary modules for boot via PXE and NFS.
HELPEOF
}
# vim: set ft=sh ts=4 sw=4 et:

View File

@@ -1,20 +0,0 @@
#!/bin/bash
build() {
add_binary cp
add_runscript
add_file /etc/initcpio/miso_shutdown /shutdown
}
help() {
cat <<HELPEOF
This hook will create a shutdown initramfs in /run/initramfs
that we can pivot to on shutdown in order to unmount / and
and others mount points, dm-snapshot devices and loopback devices.
Mostly usefull for dm-snapshot persistent.
HELPEOF
}
# vim: set ft=sh ts=4 sw=4 et:

View File

@@ -23,6 +23,9 @@ create_min_fs(){
mkdir -m 0755 -p $1/var/{cache/pacman/pkg,lib/pacman,log} $1/{dev,etc}
mkdir -m 1777 -p $1/{tmp,run}
mkdir -m 0555 -p $1/{sys,proc}
if [[ ! -f $1/etc/machine-id ]];then
touch $1/etc/machine-id
fi
}
is_btrfs() {
@@ -69,51 +72,19 @@ default_mirror(){
echo "Server = $mirror" > $mnt/etc/pacman.d/mirrorlist
}
create_chroot(){
local timer=$(get_timer)
setarch "${target_arch}" \
mkchroot "$@"
show_elapsed_time "${FUNCNAME}" "${timer}"
}
delete_chroot() {
local copydir=$1
local copy=${1:-$2}
stat_busy "Removing chroot copy [%s]" "$copy"
if is_btrfs "$chrootdir" && ! mountpoint -q "$copydir"; then
subvolume_delete_recursive "$copydir" ||
die "Unable to delete subvolume %s" "$copydir"
else
# avoid change of filesystem in case of an umount failure
rm --recursive --force --one-file-system "$copydir" ||
die "Unable to delete %s" "$copydir"
fi
# remove lock file
rm -f "$copydir.lock"
stat_done
}
# $1: chroot
# kill_chroot_process(){
# # enable to have more debug info
# #msg "machine-id (etc): $(cat $1/etc/machine-id)"
# #[[ -e $1/var/lib/dbus/machine-id ]] && msg "machine-id (lib): $(cat $1/var/lib/dbus/machine-id)"
# #msg "running processes: "
# #lsof | grep $1
#
# local prefix="$1" flink pid name
# for root_dir in /proc/*/root; do
# flink=$(readlink $root_dir)
# if [ "x$flink" != "x" ]; then
# if [ "x${flink:0:${#prefix}}" = "x$prefix" ]; then
# # this process is in the chroot...
# pid=$(basename $(dirname "$root_dir"))
# name=$(ps -p $pid -o comm=)
# info "Killing chroot process: %s (%s)" "$name" "$pid"
# kill -9 "$pid"
# fi
# fi
# done
# }
kill_chroot_process(){
local prefix="$1" flink pid name
for root_dir in /proc/*/root; do
flink=$(readlink $root_dir)
if [ "x$flink" != "x" ]; then
if [ "x${flink:0:${#prefix}}" = "x$prefix" ]; then
# this process is in the chroot...
pid=$(basename $(dirname "$root_dir"))
name=$(ps -p $pid -o comm=)
info "Killing chroot process: %s (%s)" "$name" "$pid"
kill -9 "$pid"
fi
fi
done
}

View File

@@ -28,15 +28,6 @@ configure_hosts(){
sed -e "s|localhost.localdomain|localhost.localdomain ${hostname}|" -i $1/etc/hosts
}
configure_lsb(){
local conf=$1/etc/lsb-release
if [[ -e $conf ]] ; then
msg2 "Configuring lsb-release"
sed -i -e "s/^.*DISTRIB_RELEASE.*/DISTRIB_RELEASE=${dist_release}/" $conf
# sed -i -e "s/^.*DISTRIB_CODENAME.*/DISTRIB_CODENAME=${dist_codename}/" $conf
fi
}
configure_logind(){
local conf=$1/etc/$2/logind.conf
if [[ -e $conf ]];then
@@ -118,19 +109,10 @@ clean_up_image(){
fi
find "$mnt" -name *.pacnew -name *.pacsave -name *.pacorig -delete
file=$mnt/boot/grub/grub.cfg
if [[ -f "$file" ]]; then
rm $file
if [[ -f "$mnt/boot/grub/grub.cfg" ]]; then
rm $mnt/boot/grub/grub.cfg
fi
if [[ -f "$mnt/etc/machine-id" ]]; then
rm $mnt/etc/machine-id
fi
}
chroot_clean(){
local dest="$1"
for root in "$dest"/*; do
[[ -d ${root} ]] || continue
local name=${root##*/}
delete_chroot "${root}" "$dest"
done
rm -rf --one-file-system "$dest"
}

View File

@@ -19,7 +19,7 @@ prepare_initcpio(){
prepare_initramfs(){
local mnt="$1"
cp ${DATADIR}/mkinitcpio.conf $mnt/etc/mkinitcpio-${os_id}.conf
cp ${DATADIR}/mkinitcpio.conf $mnt/etc/mkinitcpio-${iso_name}.conf
if [[ -n ${gpgkey} ]]; then
user_run "gpg --export ${gpgkey} >${AT_USERCONFDIR}/gpgkey"
exec 17<>${AT_USERCONFDIR}/gpgkey
@@ -27,7 +27,7 @@ prepare_initramfs(){
local _kernel=$(cat $mnt/usr/lib/modules/*/version)
ARTIX_GNUPG_FD=${gpgkey:+17} chroot-run $mnt \
/usr/bin/mkinitcpio -k ${_kernel} \
-c /etc/mkinitcpio-${os_id}.conf \
-c /etc/mkinitcpio-${iso_name}.conf \
-g /boot/initramfs.img
if [[ -n ${gpgkey} ]]; then
@@ -83,7 +83,7 @@ prepare_grub(){
grub-mkimage -d ${grub}/${platform} -o ${efi}/${img} -O ${platform} -p ${prefix} iso9660
prepare_dir ${grub}/themes
cp -r ${theme}/themes/${os_id} ${grub}/themes/
cp -r ${theme}/themes/${iso_name} ${grub}/themes/
cp ${data}/unicode.pf2 ${grub}
cp -r ${theme}/{locales,tz} ${grub}

View File

@@ -34,7 +34,7 @@ track_fs() {
mount "$@" && FS_ACTIVE_MOUNTS=("$5" "${FS_ACTIVE_MOUNTS[@]}")
}
mount_fs(){
mount_overlay(){
FS_ACTIVE_MOUNTS=()
local lower= upper="$1" work="$2" pkglist="$3"
local fs=${upper##*/}
@@ -55,7 +55,7 @@ mount_fs(){
track_fs -t overlay overlay -olowerdir="$lower",upperdir="$upper",workdir="${mnt_dir}/work" "$upper"
}
umount_fs(){
umount_overlay(){
if [[ -n ${FS_ACTIVE_MOUNTS[@]} ]];then
info "overlayfs umount: [%s]" "${FS_ACTIVE_MOUNTS[@]}"
umount "${FS_ACTIVE_MOUNTS[@]}"

View File

@@ -9,6 +9,11 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
connect(){
local home="/home/frs/project/${project}"
echo "${account},${project}@frs.${file_host}:${home}"
}
gen_webseed(){
local webseed seed="$1"
for mirror in ${host_mirrors[@]};do
@@ -22,7 +27,7 @@ make_torrent(){
if [[ -n $(find ${src_dir} -type f -name "*.iso") ]]; then
for iso in $(ls ${src_dir}/*.iso);do
local seed=${host}/project/${project}/${target_dir}/${iso##*/}
local seed=${file_host}/project/${project}/${target_dir}/${iso##*/}
local mktorrent_args=(-c "${torrent_meta}" -p -l ${piece_size} -a ${tracker_url} -w $(gen_webseed ${seed}))
${verbose} && mktorrent_args+=(-v)
msg2 "Creating (%s) ..." "${iso##*/}.torrent"
@@ -32,17 +37,14 @@ make_torrent(){
}
prepare_transfer(){
prof="$1"
target_dir="/iso/$prof/"
src_dir="${cache_dir_iso}/$prof/"
target_dir="/iso/${profile}/"
src_dir="${cache_dir_iso}/${profile}/"
${torrent} && make_torrent
}
sync_dir(){
prof="$1"
prepare_transfer "$prof"
msg "Start upload [%s] ..." "$prof"
msg "Start upload [%s] ..." "${profile}"
rsync "${rsync_args[@]}" ${src_dir} $(connect)${target_dir}
msg "Done upload [%s]" "$prof"
msg "Done upload [%s]" "${profile}"
show_elapsed_time "${FUNCNAME}" "${timer_start}"
}

View File

@@ -26,7 +26,7 @@ error_function() {
error "A failure occurred in %s()." "$func"
plain "Aborting..."
fi
umount_fs
umount_overlay
umount_img
exit 2
}
@@ -35,7 +35,6 @@ error_function() {
run_log(){
local func="$1"
local logfile=${log_dir}/$(gen_iso_fn).$func.log
# local tmpfile=${tmp_dir}/$func.ansi.log
logpipe=$(mktemp -u "${tmp_dir}/$func.pipe.XXXXXXXX")
mkfifo "$logpipe"
tee "$logfile" < "$logpipe" &
@@ -43,8 +42,6 @@ run_log(){
$func &> "$logpipe"
wait $teepid
rm "$logpipe"
# cat $tmpfile | perl -pe 's/\e\[?.*?[\@-~]//g' > $logfile
# rm "$tmpfile"
}
run_safe() {
@@ -68,18 +65,26 @@ run_safe() {
trap_exit() {
local sig=$1; shift
error "$@"
umount_fs
umount_overlay
trap -- "$sig"
kill "-$sig" "$$"
}
prepare_traps(){
for sig in TERM HUP QUIT; do
trap "trap_exit $sig \"$(gettext "%s signal caught. Exiting...")\" \"$sig\"" "$sig"
done
trap 'trap_exit INT "$(gettext "Aborted by user! Exiting...")"' INT
# trap 'trap_exit USR1 "$(gettext "An unknown error has occurred. Exiting...")"' ERR
}
configure_live_image(){
local fs="$1"
msg "Configuring [livefs]"
configure_hosts "$fs"
configure_system "$fs"
configure_services "$fs"
configure_calamares "$fs"
configure_calamares "$fs/etc/calamares/modules"
write_live_session_conf "$fs"
msg "Done configuring [livefs]"
}
@@ -109,7 +114,7 @@ make_sfs() {
error "The path %s does not exist" "${src}"
retrun 1
fi
local timer=$(get_timer) dest=${iso_root}/${os_id}/${target_arch}
local timer=$(get_timer) dest=${iso_root}/${iso_name}/${target_arch}
local name=${1##*/}
local sfs="${dest}/${name}.sfs"
mkdir -p ${dest}
@@ -179,7 +184,7 @@ assemble_iso(){
xorriso -as mkisofs \
--modification-date=${mod_date} \
--protective-msdos-label \
-volid "${dist_branding}" \
-volid "${iso_label}" \
-appid "$(get_osname) Live/Rescue CD" \
-publisher "$(get_osname) <$(get_disturl)>" \
-preparer "Prepared by artools/${0##*/}" \
@@ -226,12 +231,9 @@ make_iso() {
gen_iso_fn(){
local vars=() name
vars+=("${os_id}")
# if ! ${chrootcfg};then
# [[ -n ${profile} ]] && vars+=("${profile}")
# fi
# [[ ${initsys} == 'openrc' ]] && vars+=("${initsys}")
vars+=("${dist_release}")
vars+=("${iso_name}")
vars+=("${profile}")
vars+=("${iso_version}")
vars+=("${target_arch}")
for n in ${vars[@]};do
name=${name:-}${name:+-}${n}
@@ -239,6 +241,12 @@ gen_iso_fn(){
echo $name
}
install_packages(){
local fs="$1"
setarch "${target_arch}" mkchroot \
"${mkchroot_args[@]}" "${fs}" "${packages[@]}"
}
copy_overlay(){
local src="$1" dest="$2"
if [[ -e "$src" ]];then
@@ -247,56 +255,53 @@ copy_overlay(){
fi
}
# Base installation (rootfs)
make_image_root() {
make_rootfs() {
if [[ ! -e ${work_dir}/rootfs.lock ]]; then
msg "Prepare [Base installation] (rootfs)"
local rootfs="${work_dir}/rootfs"
prepare_dir "${rootfs}"
create_chroot "${mkchroot_args[@]}" "${rootfs}" "${packages[@]}"
install_packages "${rootfs}"
copy_overlay "${root_overlay}" "${rootfs}"
configure_lsb "${rootfs}"
clean_up_image "${rootfs}"
msg "Done [Base installation] (rootfs)"
fi
}
make_image_desktop() {
make_desktopfs() {
if [[ ! -e ${work_dir}/desktopfs.lock ]]; then
msg "Prepare [Desktop installation] (desktopfs)"
local desktopfs="${work_dir}/desktopfs"
prepare_dir "${desktopfs}"
mount_fs "${desktopfs}" "${work_dir}"
mount_overlay "${desktopfs}" "${work_dir}"
create_chroot "${mkchroot_args[@]}" "${desktopfs}" "${packages[@]}"
install_packages "${desktopfs}"
copy_overlay "${desktop_overlay}" "${desktopfs}"
umount_fs
umount_overlay
clean_up_image "${desktopfs}"
msg "Done [Desktop installation] (desktopfs)"
fi
}
make_image_live() {
make_livefs() {
if [[ ! -e ${work_dir}/livefs.lock ]]; then
msg "Prepare [Live installation] (livefs)"
local livefs="${work_dir}/livefs"
prepare_dir "${livefs}"
mount_fs "${livefs}" "${work_dir}" "${desktop_list}"
mount_overlay "${livefs}" "${work_dir}" "${desktop_list}"
create_chroot "${mkchroot_args[@]}" "${livefs}" "${packages[@]}"
install_packages "${livefs}"
copy_overlay "${live_overlay}" "${livefs}"
@@ -304,7 +309,7 @@ make_image_live() {
pacman -Qr "${livefs}" > ${iso_dir}/$(gen_iso_fn)-pkgs.txt
umount_fs
umount_overlay
clean_up_image "${livefs}"
@@ -312,7 +317,7 @@ make_image_live() {
fi
}
make_image_boot() {
make_bootfs() {
if [[ ! -e ${work_dir}/bootfs.lock ]]; then
msg "Prepare [/iso/boot]"
local boot="${iso_root}/boot"
@@ -323,7 +328,7 @@ make_image_boot() {
local bootfs="${work_dir}/bootfs"
mount_fs "${bootfs}" "${work_dir}" "${desktop_list}"
mount_overlay "${bootfs}" "${work_dir}" "${desktop_list}"
prepare_initcpio "${bootfs}"
prepare_initramfs "${bootfs}"
@@ -331,7 +336,7 @@ make_image_boot() {
cp ${bootfs}/boot/initramfs.img ${boot}/initramfs-${target_arch}.img
prepare_boot_extras "${bootfs}" "${boot}"
umount_fs
umount_overlay
rm -R ${bootfs}
: > ${work_dir}/bootfs.lock
@@ -341,9 +346,9 @@ make_image_boot() {
configure_grub(){
local conf="$1"
local default_args="artixbasedir=${os_id} artixlabel=${dist_branding}" boot_args=('quiet')
local default_args="artixbasedir=${iso_name} artixlabel=${iso_label}" boot_args=('quiet')
sed -e "s|@DIST_NAME@|${dist_name}|g" \
sed -e "s|@DIST_NAME@|${iso_name}|g" \
-e "s|@ARCH@|${target_arch}|g" \
-e "s|@DEFAULT_ARGS@|${default_args}|g" \
-e "s|@BOOT_ARGS@|${boot_args[*]}|g" \
@@ -353,7 +358,7 @@ configure_grub(){
configure_grub_theme(){
local conf="$1"
sed -e "s|@DIST@|${os_id}|" -i "$conf"
sed -e "s|@DIST@|${iso_name}|" -i "$conf"
}
make_grub(){
@@ -370,19 +375,6 @@ make_grub(){
fi
}
check_requirements(){
eval_build_list "${list_dir_iso}" "${build_list_iso}"
[[ -f ${run_dir}/repo_info ]] || die "%s is not a valid iso profiles directory!" "${run_dir}"
for sig in TERM HUP QUIT; do
trap "trap_exit $sig \"$(gettext "%s signal caught. Exiting...")\" \"$sig\"" "$sig"
done
trap 'trap_exit INT "$(gettext "Aborted by user! Exiting...")"' INT
trap 'trap_exit USR1 "$(gettext "An unknown error has occurred. Exiting...")"' ERR
}
compress_images(){
local timer=$(get_timer)
run_safe "make_iso"
@@ -393,68 +385,17 @@ compress_images(){
prepare_images(){
local timer=$(get_timer)
load_pkgs "${root_list}" "${target_arch}" "${initsys}" "${kernel}"
run_safe "make_image_root"
run_safe "make_rootfs"
if [[ -f "${desktop_list}" ]] ; then
load_pkgs "${desktop_list}" "${target_arch}" "${initsys}" "${kernel}"
run_safe "make_image_desktop"
run_safe "make_desktopfs"
fi
if [[ -f ${live_list} ]]; then
load_pkgs "${live_list}" "${target_arch}" "${initsys}" "${kernel}"
run_safe "make_image_live"
run_safe "make_livefs"
fi
run_safe "make_image_boot"
run_safe "make_bootfs"
run_safe "make_grub"
show_elapsed_time "${FUNCNAME}" "${timer}"
}
archive_logs(){
local name=$(gen_iso_fn) ext=log.tar.xz src=${tmp_dir}/archives.list
find ${log_dir} -maxdepth 1 -name "$name*.log" -printf "%f\n" > $src
msg2 "Archiving log files [%s] ..." "$name.$ext"
tar -cJf ${log_dir}/$name.$ext -C ${log_dir} -T $src
msg2 "Cleaning log files ..."
find ${log_dir} -maxdepth 1 -name "$name*.log" -delete
}
make_profile(){
msg "Start building [%s]" "${profile}"
if ${clean_first};then
chroot_clean "${chroots_iso}/${profile}/${target_arch}"
local unused_arch='i686'
if [[ ${target_arch} == 'i686' ]];then
unused_arch='x86_64'
fi
if [[ -d "${chroots_iso}/${profile}/${unused_arch}" ]];then
chroot_clean "${chroots_iso}/${profile}/${unused_arch}"
fi
clean_iso_root "${iso_root}"
fi
if ${iso_only}; then
[[ ! -d ${work_dir} ]] && die "Create images: buildiso -p %s -x" "${profile}"
compress_images
${verbose} && archive_logs
exit 1
fi
if ${images_only}; then
prepare_images
${verbose} && archive_logs
warning "Continue compress: buildiso -p %s -zc ..." "${profile}"
exit 1
else
prepare_images
compress_images
${verbose} && archive_logs
fi
reset_profile
msg "Finished building [%s]" "${profile}"
show_elapsed_time "${FUNCNAME}" "${timer_start}"
}
build(){
local prof="$1"
prepare_build "$prof"
make_profile
}

View File

@@ -115,6 +115,21 @@ die() {
cleanup 255
}
msg_table_header(){
local mesg=$1; shift
printf "${GREEN} ${mesg} ${ALL_OFF}\n" "$@" >&2
}
msg_row(){
local mesg=$1; shift
printf "${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2
}
msg_row_update(){
local mesg=$1; shift
printf "${RED}${BOLD} ${mesg} ${ALL_OFF}\n" "$@" >&2
}
import(){
if [[ -r "$1" ]];then
source "$1"

View File

@@ -1,110 +0,0 @@
#!/bin/bash
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
load_compiler_settings(){
local arch="$1" conf
conf=${make_conf_dir}/$arch.conf
[[ -f $conf ]] || return 1
info "Loading compiler settings: %s" "$arch"
source $conf
return 0
}
get_makepkg_conf(){
local arch="$1"
local conf="${tmp_dir}/makepkg-${arch}.conf"
cp "${DATADIR}/makepkg.conf" "$conf"
load_compiler_settings "${arch}"
sed -i "$conf" \
-e "s|@CARCH[@]|$carch|g" \
-e "s|@CHOST[@]|$chost|g" \
-e "s|@CFLAGS[@]|$cflags|g"
echo "$conf"
}
check_build(){
local bdir="$1"
find_pkg "${bdir}"
[[ ! -f ${bdir}/PKGBUILD ]] && die "Directory must contain a PKGBUILD!"
}
find_pkg(){
local bdir="$1"
local result=$(find . -type d -name "${bdir}")
[[ -z $result ]] && die "%s is not a valid package or build list!" "${bdir}"
}
clean_up(){
msg2 "Cleaning [%s]" "${pkg_dir}"
find ${pkg_dir} -maxdepth 1 -name "*.*" -delete #&> /dev/null
if [[ -z $SRCDEST ]];then
msg2 "Cleaning [source files]"
find $PWD -maxdepth 1 -name '*.?z?' -delete #&> /dev/null
fi
}
sign_pkg(){
local pkg="$1"
user_run "signfile ${pkg_dir}/${pkg}"
}
move_to_cache(){
local src="$1"
[[ -n $PKGDEST ]] && src="$PKGDEST/$src"
[[ ! -f $src ]] && die
msg2 "Moving [%s] -> [%s]" "${src##*/}" "${pkg_dir}"
mv $src ${pkg_dir}/
user_own "${pkg_dir}" -R
${sign} && sign_pkg "${src##*/}"
# [[ -n $PKGDEST ]] && rm "$src"
user_own "${pkg_dir}" -R
}
post_build(){
source PKGBUILD
local ext='pkg.tar.xz' tarch ver src
for pkg in ${pkgname[@]};do
case $arch in
any) tarch='any' ;;
*) tarch=${target_arch}
esac
local ver=$(get_full_version "$pkg") src
src=$pkg-$ver-$tarch.$ext
move_to_cache "$src"
done
}
build_pkg(){
${purge} && clean_up
# setarch "${target_arch}"
mkchrootpkg "${mkchrootpkg_args[@]}" || die
post_build
}
make_pkg(){
local pkg="$1"
check_build "${pkg}"
msg "Start building [%s]" "${pkg}"
cd ${pkg}
build_pkg
cd ..
msg "Finished building [%s]" "${pkg}"
show_elapsed_time "${FUNCNAME}" "${timer_start}"
}

View File

@@ -9,51 +9,63 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
repo_add_pkg(){
local repo="$1" arch="$2" pkg="$3"
# if [[ ! -f ${cache_dir_pkg}/$arch/$pkg{,.sig} ]];then
ln -s ${cache_dir_pkg}/$arch/$pkg{,.sig} ${repos_local}/$repo/os/$arch/
# fi
repo-add -R ${repos_local}/$repo/os/$arch/$repo.db.tar.xz ${repos_local}/$repo/os/$arch/$pkg
import ${LIBDIR}/util-pkg.sh
del_from_repo(){
local repo="$1" destarch="$2" pkg="$3" ver result
local repo_path=${repos_root}/$repo/os/$destarch
source $pkg/PKGBUILD
for name in ${pkgname[@]};do
[[ $arch == any ]] && CARCH=any
ver=$(get_full_version $name)
if ! result=$(find_cached_package "$name" "$ver" "$CARCH");then
cd $repo_path
repo-remove -R $repo.db.tar.xz $name
fi
done
}
repo_del_pkg(){
local repo="$1" arch="$2" pkg="$3"
repo-remove -R ${repos_local}/$repo/os/$arch/$repo.db.tar.xz $pkg
move_to_repo(){
local repo_src="$1" repo_dest="$2" repo_arch="$3"
local repo_path=${repos_root}/$repo_src/os/$repo_arch
local src=$PWD
local filelist=${workspace_dir}/$repo_src.files.txt
local pkglist=${workspace_dir}/$repo_src.pkgs.txt
[[ -n ${PKGDEST} ]] && src=${PKGDEST}
cd $repo_path
msg "Writing repo lists [%s]" "$repo_src"
ls *.pkg.tar.xz{,.sig} > $filelist
ls *.pkg.tar.xz > $pkglist
# uncomment for local test run
# rsync -v --files-from="$filelist" $repo_path "$src"
rm -v *
repo-add $repo_src.db.tar.xz
repo_path=${repos_root}/$repo_dest/os/$repo_arch
local move=$(cat $filelist) pkgs=$(cat $pkglist)
msg "Reading repo lists [%s]" "$repo_dest"
for f in ${move[@]};do
ln -sfv $src/$f $repo_path/
done
cd $repo_path
repo-add -R $repo_dest.db.tar.xz ${pkgs[@]}
}
update_lock(){
local repo="$1"
rsync "${rsync_args[@]}" --exclude='os' "${repos_local}/$repo/" "$(connect)${repos_remote}/$repo/"
}
repo_lock(){
local repo="$1"
if [[ ! -f ${repos_local}/$repo/$repo.lock ]];then
warning "Locking %s" "$repo"
touch ${repos_local}/$repo/$repo.lock
update_lock "$repo"
fi
}
repo_unlock(){
local repo="$1"
if [[ -f ${repos_local}/$repo/$repo.lock ]];then
warning "Unlocking %s" "$repo"
rm ${repos_local}/$repo/$repo.lock
update_lock "$repo"
fi
}
repo_download(){
local repo="$1"
rsync "${rsync_args[@]}" "$(connect)${repos_remote}/$repo/" "${repos_local}/$repo/"
[[ -f ${repos_local}/$repo/$repo.lock ]] && die "The '%s' repository is locked" "$repo"
}
repo_upload(){
local repo="$1"
repo_lock "$repo"
rsync "${rsync_args[@]}" "${repos_local}/$repo/" "$(connect)${repos_remote}/$repo/"
repo_unlock "$repo"
add_to_repo(){
local repo="$1" destarch="$2" pkg="$3" ver pkgfile result
local repo_path=${repos_root}/$repo/os/$destarch
source $pkg/PKGBUILD
local dest=$pkg
for name in ${pkgname[@]};do
[[ $arch == any ]] && CARCH=any
ver=$(get_full_version $name)
if ! result=$(find_cached_package "$name" "$ver" "$CARCH"); then
pkgfile=$name-$ver-$CARCH.pkg.tar.xz
[[ -n ${PKGDEST} ]] && dest=${PKGDEST}/$pkgfile
[[ -e $dest.sig ]] && rm $dest.sig
signfile $dest
ln -sf $dest{,.sig} $repo_path/
cd $repo_path
repo-add -R $repo.db.tar.xz $pkgfile
fi
done
}

View File

@@ -17,33 +17,46 @@ get_remote_head(){
echo $(git ls-remote origin -h refs/heads/$1 | cut -f1)
}
sync_tree_branches(){
local branches=(master artix archlinux)
for b in ${branches[@]};do
git checkout $b &> /dev/null
local local_head=$(get_local_head "$b")
local remote_head=$(get_remote_head "$b")
local timer=$(get_timer) repo="$1"
msg "Checking [%s] (%s) ..." "$repo" "$b"
msg2 "local: %s" "${local_head}"
msg2 "remote: %s" "${remote_head}"
if [[ "${local_head}" == "${remote_head}" ]]; then
info "nothing to do"
else
info "needs sync"
git pull origin $b
fi
msg "Done [%s]" "$repo"
is_dirty() {
[[ $(git diff --shortstat 2> /dev/null | tail -n1) != "" ]] || return 1
return 0
}
show_version_table(){
declare -A UPDATES
msg_table_header "%-30s %-30s %-30s %-30s" "Repository" "Package" "Artix version" "Arch version"
for repo in ${repo_tree_artix[@]}; do
for pkg in ${tree_dir_artix}/$repo/*; do
if [[ -f $pkg/PKGBUILD ]];then
source $pkg/PKGBUILD 2>/dev/null
package=${pkg##*/}
artixver=$(get_full_version $package)
set_import_path "$repo" "$package"
if [[ -f $src/PKGBUILD ]];then
source $src/PKGBUILD 2>/dev/null
archver=$(get_full_version $package)
fi
if [ $(vercmp $artixver $archver) -lt 0 ];then
UPDATES[$package]="$pkg/PKGBUILD $src/PKGBUILD"
msg_row_update "%-30s %-30s %-30s %-30s" "$repo" "$package" "$artixver" "$archver"
fi
fi
unset pkgver epoch pkgrel artixver archver package
done
done
rm ${patches_dir}/*.patch
for upd in "${!UPDATES[@]}"; do
msg "Writing %s update patch ..." "$upd"
diff -u ${UPDATES[$upd]} > ${patches_dir}/"$upd"-archlinux.patch
done
git checkout master &> /dev/null
show_elapsed_time "${FUNCNAME}" "${timer}"
}
sync_tree(){
local branch="master"
local branch="master" repo="$1"
git checkout $branch
local local_head=$(get_local_head "$branch")
local remote_head=$(get_remote_head "$branch")
local timer=$(get_timer) repo="$1"
local timer=$(get_timer)
msg "Checking [%s] ..." "$repo"
msg2 "local: %s" "${local_head}"
msg2 "remote: %s" "${remote_head}"
@@ -66,20 +79,6 @@ clone_tree(){
show_elapsed_time "${FUNCNAME}" "${timer}"
}
sync_tree_artix(){
cd ${tree_dir_artix}
for repo in ${repo_tree_artix[@]};do
if [[ -d ${repo} ]];then
cd ${repo}
sync_tree_branches "${repo}"
cd ..
else
clone_tree "${repo}" "${host_tree_artix}/${repo}"
fi
done
cd ..
}
sync_tree_arch(){
cd ${tree_dir_arch}
for repo in ${repo_tree_arch[@]};do
@@ -94,39 +93,142 @@ sync_tree_arch(){
cd ..
}
read_import_list(){
local name="$1"
local _space="s| ||g" _clean=':a;N;$!ba;s/\n/ /g' _com_rm="s|#.*||g"
import_list=$(sed "$_com_rm" "${list_dir_import}/$name.list" | sed "$_space" | sed "$_clean")
sync_tree_artix(){
cd ${tree_dir_artix}
for repo in ${repo_tree_artix[@]};do
if [[ -d ${repo} ]];then
cd ${repo}
sync_tree "${repo}"
cd ..
else
clone_tree "${repo}" "${host_tree_artix}/${repo}"
fi
done
cd ..
}
is_dirty() {
[[ $(git diff --shortstat 2> /dev/null | tail -n1) != "" ]] || return 1
read_import_list(){
local repo="$1"
local _space="s| ||g" _clean=':a;N;$!ba;s/\n/ /g' _com_rm="s|#.*||g"
import_list=$(sed "$_com_rm" "${list_dir_import}/$repo.list" | sed "$_space" | sed "$_clean")
}
is_untracked(){
[[ $(git ls-files --others --exclude-standard) != "" ]] || return 1
return 0
}
get_pkgver(){
source PKGBUILD
echo $pkgver-$pkgrel
patch_pkg(){
local pkg="$1"
case $pkg in
'glibc')
sed -e 's|{locale,systemd/system,tmpfiles.d}|{locale,tmpfiles.d}|' \
-e '/nscd.service/d' \
-i $pkg/PKGBUILD
;;
'bash')
sed -e 's|system.bash_logout)|system.bash_logout\n artix.bashrc)|' \
-e 's|etc/bash.|etc/bash/|g' \
-e 's|install -dm755 "$pkgdir"/etc/skel/|install -dm755 "$pkgdir"/etc/{skel,bash/bashrc.d}/|' \
-e 's|/etc/skel/.bash_logout|/etc/skel/.bash_logout\n install -m644 artix.bashrc "$pkgdir"/etc/bash/bashrc.d/artix.bashrc|' \
-i $pkg/PKGBUILD
patch -p1 -i $DATADIR/patches/dot-bashrc.patch
patch -p1 -i $DATADIR/patches/system-bashrc.patch
patch -p1 -i $DATADIR/patches/system-bashrc_logout.patch
patch -p1 -i $DATADIR/patches/artix-bashrc.patch
cd $pkg
updpkgsums
cd ..
;;
esac
}
set_import_path(){
local arch_dir arch_repo import_path
local repo="$1" pkg="$2"
case $repo in
system|world)
if [[ "$repo" == 'system' ]];then
arch_repo=core
arch_dir=packages
fi
if [[ "$repo" == 'world' ]];then
arch_repo=extra
arch_dir=packages
fi
import_path=${tree_dir_arch}/$arch_dir/$pkg/repos
src=$import_path/$arch_repo-x86_64
if [[ -d $import_path/$arch_repo-any ]];then
src=$import_path/$arch_repo-any
elif [[ -d $import_path/testing-x86_64 ]];then
src=$import_path/testing-x86_64
elif [[ -d $import_path/testing-any ]];then
src=$import_path/testing-any
fi
;;
galaxy)
arch_repo=community
arch_dir=$arch_repo
import_path=${tree_dir_arch}/$arch_dir/$pkg/repos/$arch_repo
src=$import_path-x86_64
if [[ -d $import_path-any ]];then
src=$import_path-any
elif [[ -d $import_path-testing-x86_64 ]];then
src=$import_path-testing-x86_64
elif [[ -d $import_path-testing-any ]];then
src=$import_path-testing-any
fi
;;
lib32)
if [[ "$pkg" == 'llvm' ]];then
arch_repo=extra
arch_dir=packages
import_path=${tree_dir_arch}/$arch_dir/$pkg/repos
src=$import_path/extra-x86_64
if [[ -d $import_path/testing-x86_64 ]];then
src=$import_path/testing-x86_64
fi
else
arch_repo=multilib
arch_dir=community
import_path=${tree_dir_arch}/$arch_dir/$pkg/repos
src=$import_path/$arch_repo-x86_64
if [[ -d $import_path/$arch_repo-testing-x86_64 ]];then
src=$import_path/$arch_repo-testing-x86_64
fi
fi
;;
esac
}
import_from_arch(){
local timer=$(get_timer)
local timer=$(get_timer) branch='testing' push="$1"
for repo in ${repo_tree_artix[@]};do
read_import_list "$repo"
if [[ -n ${import_list[@]} ]];then
cd ${tree_dir_artix}/$repo
git checkout archlinux &> /dev/null
local arch_dir=packages
[[ $repo == "galaxy" ]] && arch_dir=community
msg "Import into [%s] branch (archlinux)" "$repo"
git checkout $branch &> /dev/null
$(is_dirty) && die "[%s] has uncommited changes!" "${repo}"
git pull origin "$branch"
msg "Import into [%s]" "$repo"
for pkg in ${import_list[@]};do
msg2 "Importing [%s] ..." "$pkg"
rsync "${rsync_args[@]}" ${tree_dir_arch}/$arch_dir/$pkg/trunk/ ${tree_dir_artix}/$repo/$pkg/
if $(is_dirty); then
git add $pkg
git commit -m "Archlinux $pkg-$(get_pkgver) import"
source $pkg/PKGBUILD 2>/dev/null
local ver=$(get_full_version $pkg)
msg2 "package: %s-%s" "$pkg" "$ver"
set_import_path "$repo" "$pkg"
rsync "${rsync_args[@]}" $src/ ${tree_dir_artix}/$repo/$pkg/
if $(is_dirty) || $(is_untracked); then
patch_pkg "$pkg"
${push} && git add "$pkg"
msg2 "Archlinux import: [%s]" "$pkg-$ver"
if ${push};then
git commit -m "Archlinux import: $pkg-$ver"
sleep 10
git push origin "$branch"
fi
fi
unset pkgver epoch pkgrel ver
done
fi
done

View File

@@ -9,16 +9,6 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
repo_add_pkg(){
repo="$1" arch="$2" pkg="$3" ext="db.tar.xz"
repo-add "$repo/os/$arch/$repo.$ext" "$repo/os/$arch/$pkg"
}
repo_del_pkg(){
repo="$1" arch="$2" pkg="$3" ext="db.tar.xz"
repo-remove "$repo/os/$arch/$repo.$ext" "$repo/os/$arch/$pkg"
}
in_array() {
local needle=$1; shift
local item
@@ -117,16 +107,16 @@ find_cached_package() {
case ${#results[*]} in
0)
return 1
return 1
;;
1)
printf '%s\n' "$results"
return 0
printf '%s\n' "$results"
return 0
;;
*)
error 'Multiple packages found:'
printf '\t%s\n' "${results[@]}" >&2
return 1
error 'Multiple packages found:'
printf '\t%s\n' "${results[@]}" >&2
return 1
;;
esac
}

View File

@@ -8,47 +8,41 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
write_repo_conf(){
local repos=$(find $USER_HOME -type f -name "repo_info")
local path name
[[ -z ${repos[@]} ]] && run_dir=${DATADIR}/iso-profiles && return 1
for r in ${repos[@]}; do
path=${r%/repo_info}
name=${path##*/}
echo "run_dir=$path" > ${AT_USERCONFDIR}/$name.conf
done
}
load_run_dir(){
local gitrepo='iso-profiles'
[[ -f ${AT_USERCONFDIR}/$gitrepo.conf ]] || write_repo_conf
[[ -r ${AT_USERCONFDIR}/$gitrepo.conf ]] && source ${AT_USERCONFDIR}/$gitrepo.conf
return 0
}
load_profile(){
local profdir="$1"
local profile_conf="$profdir/profile.conf"
local prof="$1"
local profdir="${DATADIR}/iso-profiles/$prof"
[[ "$prof" != 'base' ]] && profdir=${workspace_dir}/iso-profiles/$prof
[[ -f ${profile_conf} ]] || return 1
root_list="${DATADIR}/iso-profiles/base/Packages-Root"
[[ -f "$profdir/Packages-Root" ]] && root_list="$profdir/Packages-Root"
[[ -r ${profile_conf} ]] && source ${profile_conf}
root_overlay="${DATADIR}/iso-profiles/base/root-overlay"
[[ -d "$profdir/root-overlay" ]] && root_overlay="$profdir/root-overlay"
[[ -f "$profdir/Packages-Desktop" ]] && desktop_list="$profdir/Packages-Desktop"
[[ -d "$profdir/desktop-overlay" ]] && desktop_overlay="$profdir/desktop-overlay"
live_list="${DATADIR}/iso-profiles/base/Packages-Live"
[[ -f "$profdir/Packages-Live" ]] && live_list="$profdir/Packages-Live"
live_overlay="${DATADIR}/iso-profiles/base/live-overlay"
[[ -d "$profdir/live-overlay" ]] && live_overlay="$profdir/live-overlay"
[[ -f $profdir/profile.conf ]] || return 1
[[ -r $profdir/profile.conf ]] && source $profdir/profile.conf
[[ -z ${displaymanager} ]] && displaymanager="none"
[[ -z ${autologin} ]] && autologin="true"
[[ ${displaymanager} == 'none' ]] && autologin="false"
[[ -z ${multilib} ]] && multilib="true"
[[ -z ${hostname} ]] && hostname="artix"
[[ -z ${username} ]] && username="artix"
[[ -z ${password} ]] && password="artix"
[[ -z ${login_shell} ]] && login_shell='/bin/bash'
if [[ -z ${addgroups} ]];then
addgroups="video,power,storage,optical,network,lp,scanner,wheel,users"
fi
@@ -63,67 +57,13 @@ load_profile(){
[[ ${displaymanager} != "none" ]] && openrc_default+=('xdm')
[[ -z ${netinstall} ]] && netinstall='false'
[[ -z ${chrootcfg} ]] && chrootcfg='false'
enable_live=('artix-live' 'pacman-init')
netgroups="https://raw.githubusercontent.com/artix-linux/iso-profiles/master/shared/netgroups"
basic='true'
[[ -z ${extra} ]] && extra='false'
${extra} && basic='false'
root_list=${run_dir}/shared/Packages-Root
[[ -f "$profdir/Packages-Root" ]] && root_list="$profdir/Packages-Root"
root_overlay="${run_dir}/shared/root-overlay"
[[ -d "$profdir/root-overlay" ]] && root_overlay="$profdir/root-overlay"
[[ -f "$profdir/Packages-Desktop" ]] && desktop_list=$profdir/Packages-Desktop
[[ -d "$profdir/desktop-overlay" ]] && desktop_overlay="$profdir/desktop-overlay"
live_list="${run_dir}/shared/Packages-Live"
[[ -f "$profdir/Packages-Live" ]] && live_list="$profdir/Packages-Live"
live_overlay="${run_dir}/shared/live-overlay"
[[ -d "$profdir/live-overlay" ]] && live_overlay="$profdir/live-overlay"
if ${netinstall};then
sort -u ${run_dir}/shared/Packages-Net ${live_list} > ${tmp_dir}/packages-live-net.list
live_list=${tmp_dir}/packages-live-net.list
else
chrootcfg="false"
fi
[[ -z ${netgroups} ]] && netgroups="https://raw.githubusercontent.com/artix-linux/netgroups/master"
return 0
}
reset_profile(){
unset displaymanager
unset autologin
unset multilib
unset hostname
unset username
unset password
unset addgroups
unset openrc_boot
unset openrc_default
unset enable_live
unset login_shell
unset netinstall
unset chrootcfg
unset extra
unset root_list
unset desktop_list
unset live_list
unset root_overlay
unset desktop_overlay
unset live_overlay
}
write_live_session_conf(){
local path=$1${SYSCONFDIR}
[[ ! -d $path ]] && mkdir -p "$path"
@@ -134,9 +74,6 @@ write_live_session_conf(){
echo '# autologin' >> ${conf}
echo "autologin=${autologin}" >> ${conf}
echo '' >> ${conf}
echo '# login shell' >> ${conf}
echo "login_shell=${login_shell}" >> ${conf}
echo '' >> ${conf}
echo '# live username' >> ${conf}
echo "username=${username}" >> ${conf}
echo '' >> ${conf}
@@ -152,32 +89,18 @@ load_pkgs(){
local pkglist="$1" arch="$2" init="$3" _kv="$4"
info "Loading Packages: [%s] ..." "${pkglist##*/}"
local _init="s|>openrc||g" #_init_rm="s|>runit.*||g"
local _init="s|>$init||g"
case "$init" in
'openrc') _init_rm1="s|>runit.*||g"; _init_rm2="s|>s6*||g" ;;
's6') _init_rm1="s|>runit.*||g"; _init_rm2="s|>openrc.*||g" ;;
'runit') _init_rm1="s|>s6.*||g"; _init_rm2="s|>openrc.*||g" ;;
esac
local _basic="s|>basic.*||g"
if ${basic};then
_basic="s|>basic||g"
fi
local _extra="s|>extra.*||g"
if ${extra};then
_extra="s|>extra||g"
fi
local _multi _arch _arch_rm
local _arch="s|>x86_64||g" _arch_rm="s|>i686.*||g"
if [[ "$arch" == 'i686' ]];then
_arch="s|>i686||g"
_arch_rm="s|>x86_64.*||g"
_multi="s|>multilib.*||g"
else
_arch="s|>x86_64||g"
_arch_rm="s|>i686.*||g"
if ${multilib};then
_multi="s|>multilib||g"
else
_multi="s|>multilib.*||g"
fi
fi
local _blacklist="s|>blacklist.*||g" \
@@ -191,11 +114,10 @@ load_pkgs(){
| sed "$_blacklist" \
| sed "$_purge" \
| sed "$_init" \
| sed "$_init_rm1" \
| sed "$_init_rm2" \
| sed "$_arch" \
| sed "$_arch_rm" \
| sed "$_multi" \
| sed "$_kernel" \
| sed "$_basic" \
| sed "$_extra" \
| sed "$_clean"))
}

View File

@@ -12,38 +12,43 @@
import ${LIBDIR}/util-yaml.sh
write_netgroup_yaml(){
msg2 "Writing %s ..." "${2##*/}"
echo "---" > "$2"
echo "- name: '$1'" >> "$2"
echo " description: '$1'" >> "$2"
echo " selected: false" >> "$2"
echo " hidden: false" >> "$2"
echo " critical: false" >> "$2"
echo " packages:" >> "$2"
local name="$1" yaml="$2"
msg2 "Writing %s ..." "${yaml##*/}"
echo "---" > "$yaml"
echo "- name: '$name'" >> "$yaml"
echo " description: '$name'" >> "$yaml"
echo " selected: false" >> "$yaml"
echo " hidden: false" >> "$yaml"
echo " critical: false" >> "$yaml"
echo " packages:" >> "$yaml"
for p in ${packages[@]};do
echo " - $p" >> "$2"
echo " - $p" >> "$yaml"
done
}
write_pacman_group_yaml(){
packages=$(pacman -Sgq "$1")
local group="$1"
packages=$(pacman -Sgq "$group")
prepare_dir "${cache_dir_netinstall}/pacman"
write_netgroup_yaml "$1" "${cache_dir_netinstall}/pacman/$1.yaml"
write_netgroup_yaml "$group" "${cache_dir_netinstall}/pacman/$group.yaml"
}
gen_fn(){
echo "${yaml_dir}/$1-${target_arch}-${initsys}.yaml"
}
make_profile_yaml(){
prepare_check "$1"
prepare_build(){
load_profile "${profile}"
yaml_dir=${cache_dir_netinstall}/${profile}/${target_arch}
prepare_dir "${yaml_dir}"
}
build(){
load_pkgs "${root_list}" "${target_arch}" "${initsys}" "${kernel}"
write_netgroup_yaml "$1" "$(gen_fn "Packages-Root")"
write_netgroup_yaml "${profile}" "$(gen_fn "Packages-Root")"
if [[ -f "${desktop_list}" ]]; then
load_pkgs "${desktop_list}" "${target_arch}" "${initsys}" "${kernel}"
write_netgroup_yaml "$1" "$(gen_fn "Packages-Desktop")"
write_netgroup_yaml "${profile}" "$(gen_fn "Packages-Desktop")"
fi
${calamares} && configure_calamares "${yaml_dir}"
reset_profile
unset yaml_dir
}

View File

@@ -9,24 +9,6 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
write_machineid_conf(){
local conf="${modules_dir}/machineid.conf"
msg2 "Writing %s ..." "${conf##*/}"
echo '---' > "$conf"
echo "systemd: false" >> $conf
echo "dbus: true" >> $conf
echo "symlink: true" >> $conf
}
write_finished_conf(){
msg2 "Writing %s ..." "finished.conf"
local conf="${modules_dir}/finished.conf" cmd="loginctl reboot"
echo '---' > "$conf"
echo 'restartNowEnabled: true' >> "$conf"
echo 'restartNowChecked: false' >> "$conf"
echo "restartNowCommand: \"${cmd}\"" >> "$conf"
}
get_preset(){
local p=${tmp_dir}/${kernel}.preset
cp ${DATADIR}/linux.preset $p
@@ -37,7 +19,7 @@ get_preset(){
}
write_bootloader_conf(){
local conf="${modules_dir}/bootloader.conf" efi_boot_loader='grub'
local conf="$1/bootloader.conf" efi_boot_loader='grub'
msg2 "Writing %s ..." "${conf##*/}"
source "$(get_preset)"
echo '---' > "$conf"
@@ -55,7 +37,7 @@ write_bootloader_conf(){
}
write_servicescfg_conf(){
local conf="${modules_dir}/servicescfg.conf"
local conf="$1/servicescfg.conf"
msg2 "Writing %s ..." "${conf##*/}"
echo '---' > "$conf"
echo '' >> "$conf"
@@ -71,45 +53,15 @@ write_servicescfg_conf(){
done
}
write_displaymanager_conf(){
local conf="${modules_dir}/displaymanager.conf"
msg2 "Writing %s ..." "${conf##*/}"
echo "---" > "$conf"
echo "displaymanagers:" >> "$conf"
echo " - lightdm" >> "$conf"
echo " - gdm" >> "$conf"
echo " - mdm" >> "$conf"
echo " - sddm" >> "$conf"
echo " - lxdm" >> "$conf"
echo " - slim" >> "$conf"
echo '' >> "$conf"
echo "basicSetup: false" >> "$conf"
}
write_initcpio_conf(){
local conf="${modules_dir}/initcpio.conf"
local conf="$1/initcpio.conf"
msg2 "Writing %s ..." "${conf##*/}"
echo "---" > "$conf"
echo "kernel: ${kernel}" >> "$conf"
}
write_unpack_conf(){
local conf="${modules_dir}/unpackfs.conf"
msg2 "Writing %s ..." "${conf##*/}"
echo "---" > "$conf"
echo "unpack:" >> "$conf"
echo " - source: \"/run/artix/bootmnt/${os_id}/${target_arch}/rootfs.sfs\"" >> "$conf"
echo " sourcefs: \"squashfs\"" >> "$conf"
echo " destination: \"\"" >> "$conf"
if [[ -f "${desktop_list}" ]] ; then
echo " - source: \"/run/artix/bootmnt/${os_id}/${target_arch}/desktopfs.sfs\"" >> "$conf"
echo " sourcefs: \"squashfs\"" >> "$conf"
echo " destination: \"\"" >> "$conf"
fi
}
write_users_conf(){
local conf="${modules_dir}/users.conf"
local conf="$1/users.conf"
msg2 "Writing %s ..." "${conf##*/}"
echo "---" > "$conf"
echo "defaultGroups:" >> "$conf"
@@ -119,153 +71,32 @@ write_users_conf(){
done
unset IFS
echo "autologinGroup: autologin" >> "$conf"
echo "doAutologin: false" >> "$conf" # can be either 'true' or 'false'
echo "doAutologin: false" >> "$conf"
echo "sudoersGroup: wheel" >> "$conf"
echo "setRootPassword: true" >> "$conf" # must be true, else some options get hidden
echo "setRootPassword: true" >> "$conf"
echo "doReusePassword: false" >> "$conf" # only used in old 'users' module
echo "availableShells: /bin/bash, /bin/zsh" >> "$conf" # only used in new 'users' module
echo "avatarFilePath: ~/.face" >> "$conf" # mostly used file-name for avatar
}
write_packages_conf(){
local conf="${modules_dir}/packages.conf"
msg2 "Writing %s ..." "${conf##*/}"
echo "---" > "$conf"
echo "backend: pacman" >> "$conf"
echo '' >> "$conf"
echo "update_db: true" >> "$conf"
}
write_welcome_conf(){
local conf="${modules_dir}/welcome.conf"
msg2 "Writing %s ..." "${conf##*/}"
echo "---" > "$conf" >> "$conf"
echo "showSupportUrl: true" >> "$conf"
echo "showKnownIssuesUrl: true" >> "$conf"
echo "showReleaseNotesUrl: true" >> "$conf"
echo '' >> "$conf"
echo "requirements:" >> "$conf"
echo " requiredStorage: 7.9" >> "$conf"
echo " requiredRam: 1.0" >> "$conf"
echo " internetCheckUrl: https://github.com/cromnix" >> "$conf"
echo " check:" >> "$conf"
echo " - storage" >> "$conf"
echo " - ram" >> "$conf"
echo " - power" >> "$conf"
echo " - internet" >> "$conf"
echo " - root" >> "$conf"
echo " required:" >> "$conf"
echo " - storage" >> "$conf"
echo " - ram" >> "$conf"
echo " - root" >> "$conf"
if ${netinstall};then
echo " - internet" >> "$conf"
fi
}
write_umount_conf(){
local conf="${modules_dir}/umount.conf"
msg2 "Writing %s ..." "${conf##*/}"
echo "---" > "$conf"
echo 'srcLog: "/root/.cache/Calamares/Calamares/Calamares.log"' >> "$conf"
echo 'destLog: "/var/log/Calamares.log"' >> "$conf"
}
get_yaml(){
local args=() yaml
if ${chrootcfg};then
args+=("chrootcfg")
else
args+=("packages")
fi
args+=("${initsys}")
for arg in ${args[@]};do
yaml=${yaml:-}${yaml:+-}${arg}
done
echo "${yaml}.yaml"
echo "avatarFilePath: ~/.face" >> "$conf"
}
write_netinstall_conf(){
local conf="${modules_dir}/netinstall.conf"
local conf="$1/netinstall.conf"
msg2 "Writing %s ..." "${conf##*/}"
echo "---" > "$conf"
echo "groupsUrl: ${netgroups}/$(get_yaml)" >> "$conf"
}
write_locale_conf(){
local conf="${modules_dir}/locale.conf"
msg2 "Writing %s ..." "${conf##*/}"
echo "---" > "$conf"
echo "localeGenPath: /etc/locale.gen" >> "$conf"
echo "geoipUrl: freegeoip.net" >> "$conf"
}
write_settings_conf(){
local conf="$1/etc/calamares/settings.conf"
msg2 "Writing %s ..." "${conf##*/}"
echo "---" > "$conf"
echo "modules-search: [ local ]" >> "$conf"
echo '' >> "$conf"
echo "sequence:" >> "$conf"
echo " - show:" >> "$conf"
echo " - welcome" >> "$conf" && write_welcome_conf
echo " - locale" >> "$conf" && write_locale_conf
echo " - keyboard" >> "$conf"
echo " - partition" >> "$conf"
echo " - users" >> "$conf" && write_users_conf
if ${netinstall};then
echo " - netinstall" >> "$conf" && write_netinstall_conf
fi
echo " - summary" >> "$conf"
echo " - exec:" >> "$conf"
echo " - partition" >> "$conf"
echo " - mount" >> "$conf"
if ${netinstall};then
if ${chrootcfg}; then
echo " - chrootcfg" >> "$conf"
echo " - networkcfg" >> "$conf"
else
echo " - unpackfs" >> "$conf" && write_unpack_conf
echo " - networkcfg" >> "$conf"
echo " - packages" >> "$conf" && write_packages_conf
fi
else
echo " - unpackfs" >> "$conf" && write_unpack_conf
echo " - networkcfg" >> "$conf"
fi
echo " - machineid" >> "$conf" && write_machineid_conf
echo " - fstab" >> "$conf"
echo " - locale" >> "$conf"
echo " - keyboard" >> "$conf"
echo " - localecfg" >> "$conf"
echo " - luksopenswaphookcfg" >> "$conf"
echo " - luksbootkeyfile" >> "$conf"
echo " - initcpiocfg" >> "$conf"
echo " - initcpio" >> "$conf" && write_initcpio_conf
echo " - users" >> "$conf"
echo " - displaymanager" >> "$conf" && write_displaymanager_conf
echo " - hwclock" >> "$conf"
case ${initsys} in
'openrc') echo " - servicescfg" >> "$conf" && write_servicescfg_conf ;;
esac
echo " - grubcfg" >> "$conf"
echo " - bootloader" >> "$conf" && write_bootloader_conf
echo " - postcfg" >> "$conf"
echo " - umount" >> "$conf" && write_umount_conf
echo " - show:" >> "$conf"
echo " - finished" >> "$conf" && write_finished_conf
echo '' >> "$conf"
echo "branding: ${os_id}" >> "$conf"
echo '' >> "$conf"
echo "prompt-install: false" >> "$conf"
echo '' >> "$conf"
echo "dont-chroot: false" >> "$conf"
echo "groupsUrl: ${netgroups}/netgroups-${initsys}.yaml" >> "$conf"
}
configure_calamares(){
info "Configuring [Calamares]"
modules_dir=$1/etc/calamares/modules
prepare_dir "${modules_dir}"
write_settings_conf "$1"
info "Done configuring [Calamares]"
local modules_dir="$1"
if [[ -d $modules_dir ]];then
info "Configuring [Calamares]"
write_users_conf "$modules_dir"
write_netinstall_conf "$modules_dir"
write_initcpio_conf "$modules_dir"
case ${initsys} in
'openrc') write_servicescfg_conf "$modules_dir" ;;
esac
write_bootloader_conf "$modules_dir"
info "Done configuring [Calamares]"
fi
}

View File

@@ -8,80 +8,6 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# $1: section
parse_section() {
local is_section=0
while read line; do
[[ $line =~ ^\ {0,}# ]] && continue
[[ -z "$line" ]] && continue
if [ $is_section == 0 ]; then
if [[ $line =~ ^\[.*?\] ]]; then
line=${line:1:$((${#line}-2))}
section=${line// /}
if [[ $section == $1 ]]; then
is_section=1
continue
fi
continue
fi
elif [[ $line =~ ^\[.*?\] && $is_section == 1 ]]; then
break
else
pc_key=${line%%=*}
pc_key=${pc_key// /}
pc_value=${line##*=}
pc_value=${pc_value## }
eval "$pc_key='$pc_value'"
fi
done < "$2"
}
get_repos() {
local section repos=() filter='^\ {0,}#'
while read line; do
[[ $line =~ "${filter}" ]] && continue
[[ -z "$line" ]] && continue
if [[ $line =~ ^\[.*?\] ]]; then
line=${line:1:$((${#line}-2))}
section=${line// /}
case ${section} in
"options") continue ;;
*) repos+=("${section}") ;;
esac
fi
done < "$1"
echo ${repos[@]}
}
check_user_repos_conf(){
local repositories=$(get_repos "$1") uri='file://'
for repo in ${repositories[@]}; do
msg2 "parsing repo [%s] ..." "${repo}"
parse_section "${repo}" "$1"
[[ ${pc_value} == $uri* ]] && die "Using local repositories is not supported!"
done
}
# $1: list_dir
show_build_lists(){
local list temp
for item in $(ls $1/*.list); do
temp=${item##*/}
list=${list:-}${list:+|}${temp%.list}
done
echo $list
}
# $1: make_conf_dir
show_build_profiles(){
local cpuarch temp
for item in $(ls $1/*.conf); do
temp=${item##*/}
cpuarch=${cpuarch:-}${cpuarch:+|}${temp%.conf}
done
echo $cpuarch
}
get_timer(){
echo $(date +%s)
}
@@ -111,16 +37,6 @@ prepare_dir(){
[[ ! -d $1 ]] && mkdir -p $1
}
get_release(){
source /etc/lsb-release
echo "${DISTRIB_RELEASE}"
}
get_distname(){
source /etc/lsb-release
echo "${DISTRIB_ID%Linux}"
}
get_disturl(){
source /usr/lib/os-release
echo "${HOME_URL}"
@@ -136,36 +52,26 @@ get_osid(){
echo "${ID}"
}
init_common(){
init_artools_base(){
[[ -z ${target_arch} ]] && target_arch=$(uname -m)
[[ -z ${chroots_dir} ]] && chroots_dir='/var/lib/artools'
[[ -z ${build_mirror} ]] && build_mirror='https://downloads.sourceforge.net/project/artix-linux/repos'
log_dir='/var/log/artools'
tmp_dir='/tmp'
host="sourceforge.net"
[[ -z ${host_mirrors[@]} ]] && host_mirrors=('netcologne' 'freefr' 'netix' 'kent' '10gbps-io')
[[ -z ${project} ]] && project="artix-linux"
[[ -z ${account} ]] && account="[SetUser]"
[[ -z ${workspace_dir} ]] && workspace_dir=/home/${OWNER}/artools-workspace
prepare_dir "${workspace_dir}"
}
init_buildtree(){
init_artools_pkg(){
[[ -z ${tree_dir_artix} ]] && tree_dir_artix=${workspace_dir}/artix
[[ -z ${repo_tree_artix[@]} ]] && repo_tree_artix=('system' 'world' 'galaxy')
[[ -z ${repo_tree_artix[@]} ]] && repo_tree_artix=('system' 'world' 'galaxy' 'lib32')
[[ -z ${host_tree_artix} ]] && host_tree_artix='https://github.com/artix-linux'
@@ -178,55 +84,34 @@ init_buildtree(){
list_dir_import="${SYSCONFDIR}/import.list.d"
[[ -d ${AT_USERCONFDIR}/import.list.d ]] && list_dir_import=${AT_USERCONFDIR}/import.list.d
}
init_buildpkg(){
chroots_pkg="${chroots_dir}/buildpkg"
list_dir_pkg="${SYSCONFDIR}/pkg.list.d"
[[ -z ${patches_dir} ]] && patches_dir=${workspace_dir}/archlinux-patches
make_conf_dir="${SYSCONFDIR}/make.conf.d"
[[ -d ${AT_USERCONFDIR}/pkg.list.d ]] && list_dir_pkg=${AT_USERCONFDIR}/pkg.list.d
[[ -z ${build_list_pkg} ]] && build_list_pkg='default'
cache_dir_pkg=${workspace_dir}/pkg
prepare_dir "${cache_dir_pkg}"
[[ -z ${repos_root} ]] && repos_root="${workspace_dir}/repos"
}
init_buildiso(){
init_artools_iso(){
chroots_iso="${chroots_dir}/buildiso"
list_dir_iso="${SYSCONFDIR}/iso.list.d"
[[ -d ${AT_USERCONFDIR}/iso.list.d ]] && list_dir_iso=${AT_USERCONFDIR}/iso.list.d
[[ -z ${build_list_iso} ]] && build_list_iso='default'
cache_dir_iso="${workspace_dir}/iso"
prepare_dir "${cache_dir_iso}"
##### iso settings #####
profile='base'
[[ -z ${dist_release} ]] && dist_release=$(get_release)
[[ -z ${iso_version} ]] && iso_version=$(date +%Y%m%d)
dist_name=$(get_distname)
iso_name=$(get_osid)
os_id=$(get_osid)
[[ -z ${dist_branding} ]] && dist_branding="ARTIX"
iso_label="ARTIX_$(date +%Y%m)"
[[ -z ${initsys} ]] && initsys="openrc"
[[ -z ${kernel} ]] && kernel="linux-lts"
[[ -z ${gpgkey} ]] && gpgkey=''
}
init_deployiso(){
[[ -z ${uplimit} ]] && uplimit=100
@@ -234,17 +119,17 @@ init_deployiso(){
[[ -z ${piece_size} ]] && piece_size=21
[[ -z ${file_host} ]] && file_host="sourceforge.net"
[[ -z ${project} ]] && project="artix-linux"
[[ -z ${account} ]] && account="[SetUser]"
[[ -z ${host_mirrors[@]} ]] && host_mirrors=('netcologne' 'freefr' 'netix' 'kent' '10gbps-io')
torrent_meta="$(get_osname)"
}
init_deploypkg(){
repository='system'
[[ -z ${repos_local} ]] && repos_local="${workspace_dir}/repos"
repos_remote="/${repos_local##*/}"
}
load_config(){
@@ -254,17 +139,11 @@ load_config(){
[[ -r ${artools_conf} ]] && source ${artools_conf}
init_common
init_artools_base
init_buildtree
init_artools_pkg
init_buildpkg
init_buildiso
init_deployiso
init_deploypkg
init_artools_iso
return 0
}
@@ -312,30 +191,6 @@ show_config(){
fi
}
read_build_list(){
local _space="s| ||g" _clean=':a;N;$!ba;s/\n/ /g' _com_rm="s|#.*||g"
build_list=$(sed "$_com_rm" "$1.list" | sed "$_space" | sed "$_clean")
}
# $1: list_dir
# $2: build list
eval_build_list(){
eval "case $2 in
$(show_build_lists $1)) is_build_list=true; read_build_list $1/$2 ;;
*) is_build_list=false ;;
esac"
}
run(){
if ${is_build_list};then
for item in ${build_list[@]};do
$1 $item
done
else
$1 $2
fi
}
check_root() {
(( EUID == 0 )) && return
if type -P sudo >/dev/null; then
@@ -344,8 +199,3 @@ check_root() {
exec su root -c "$(printf ' %q' "${orig_argv[@]}")"
fi
}
connect(){
local home="/home/frs/project/${project}"
echo "${account},${project}@frs.${host}:${home}"
}