Compare commits

...

134 Commits
0.7.4 ... 0.9.4

Author SHA1 Message Date
64725482f8 update readme 2018-09-07 22:27:08 +02:00
11cd590529 util-iso-yaml: fix services in settings.conf 2018-09-07 22:19:26 +02:00
bb22741aa1 util-iso-grub: set pxe in base profile only 2018-09-07 17:34:52 +02:00
28e4b73964 util-iso-yaml: add dir options in services-openrc; fix runit svc typos 2018-09-06 19:29:57 +02:00
7ea0d6f475 util-iso-yaml: adopt upstream cal new services naming 2018-09-06 18:06:20 +02:00
bdcc22fd46 Makefile: remove uninstall & dist 2018-09-06 18:05:29 +02:00
3c2e97f915 buildtree: fix config arg on pull 2018-08-12 02:58:32 +02:00
ba77c20d77 buildtree: ch in proper dir in config 2018-08-12 02:48:47 +02:00
c376041a07 buildtree: fix it 2018-08-12 02:38:24 +02:00
bd29d360b4 buildtree: fix path 2018-08-12 02:34:47 +02:00
7e1b1ee238 nuildtree: configure repo after clone as well, its too later after pull only 2018-08-12 02:21:24 +02:00
221218ba2a util-pkg: don't set localersion in kernel config 2018-08-09 01:54:48 +02:00
697d18da82 util-pkg-gitea: create compliant git repo 2018-08-07 21:47:34 +02:00
27d0230ed7 buildtree: fix import 2018-08-07 02:38:25 +02:00
41fdcb68fb commitpkg: run git prune 2018-08-06 22:17:01 +02:00
37b02c08bc util-pkg-gitea: add licence header 2018-07-30 02:43:29 +02:00
31200d7765 util-pkg-gitea: get compliant repo name 2018-07-30 02:21:53 +02:00
60844ee0ea Merge branch 'subrepo' of artix/artools into master 2018-07-29 20:47:25 +00:00
2c2e6b41a1 commitpkg: move subrepo push in push switch 2018-07-29 18:45:40 +02:00
52c81a0e61 bump version 2018-07-29 18:38:10 +02:00
6667147b77 buildtree: fix import 2018-07-29 17:25:48 +02:00
26635e3a10 use ssh for git 2018-07-29 00:28:43 +02:00
1d5a565ed8 commitpkg: spilt out subrepo functions 2018-07-28 22:29:15 +02:00
4e54b48903 commitpkg: fix, add sleep 1 2018-07-28 22:23:10 +02:00
2f16cd73c9 buildtree, commitpkg: prepare first test 2018-07-28 21:54:26 +02:00
9fd6ac3531 buildtree: revert to old pkg repos 2018-07-27 20:39:26 +02:00
2f5acc6e3c buildtree, commitpkg: adapt import path 2018-07-27 19:51:27 +02:00
d73b6d9178 rename gitea lib 2018-07-27 19:47:30 +02:00
d5404ac2fa builtree: write jenkinsfile for new pkgs 2018-07-27 18:28:34 +02:00
d250b967ba buildtree, commitpkg: use subrepo 2018-07-27 14:52:30 +02:00
5715eecf0c buildtree, commitpkg: initial gitea/subrepo support 2018-07-27 13:35:31 +02:00
b6ef4d1895 buildtree: add -y arg to exclude staging from compare ops 2018-07-02 01:56:55 +02:00
3fd33eca4a mkchrootpkg: rm workarounds in chroot 2018-06-30 00:37:51 +02:00
eceed82a61 Remove cow file early for non-persistent systems 2018-06-29 21:42:12 +02:00
7337c341ba buildtree: configure git repo with makepkg's GPGKEY 2018-06-29 20:08:02 +02:00
51658f4838 buildtree: make signing commits mandatory 2018-06-29 16:50:19 +02:00
9dcef56350 chroot-run: bind mount /etc/hosts again 2018-06-27 22:51:59 +02:00
ba2647b4b0 rm pcmcia from initcpio 2018-06-27 22:51:15 +02:00
e10571eac0 util-iso-grub: create unicode fontinstead of copying 2018-06-21 23:52:31 +02:00
045ed9e895 Merge branch 'master' of github.com:artix-linux/artools into devel 2018-06-19 21:34:46 +02:00
60e77a878c readd locale backup 2018-06-19 21:34:23 +02:00
69d3897abb makefile: bump chroot version 2018-06-19 20:35:37 +02:00
90060a3851 mkchroot: fix dbus-uuidgen call 2018-06-19 20:12:32 +02:00
1bc756ec15 rm old code 2018-06-19 14:47:58 +02:00
26daf3aaa0 basestrap: improve resolv.conf mounting 2018-06-19 13:10:01 +02:00
c772bf8ea1 simplify chroot traps & mounting 2018-06-19 10:15:29 +02:00
caccd55fc1 util-chroot: fix locale 2018-06-19 09:47:44 +02:00
a2b31b72a0 fstabgen: add support for prefix matching 2018-06-18 21:54:41 +02:00
1beb5131ce disable crypto_speck module on linux import 2018-06-13 14:47:28 +02:00
udeved
ef794a0b85 mkchrootpkg: whitelist return code 14 from makepkg 2018-05-31 18:07:31 +02:00
udeved
aa12fc42bd buildtree: quote version vars 2018-05-29 17:29:07 +02:00
udeved
50f90ab53c mkchrootpkg: arch patches 2018-05-29 13:30:32 +02:00
udeved
63137eb046 util-iso-yaml: fix settings.conf path 2018-05-28 13:06:59 +02:00
udeved
92ec5eb194 util-iso-yaml: adopt runitcfg changes 2018-05-28 10:10:12 +02:00
udeved
f8e07c66c1 util-iso-grub: rm i686 support 2018-05-28 09:23:16 +02:00
udeved
2130eea235 initcpio: rm i686 from kms 2018-05-28 09:22:54 +02:00
udeved
58fc4bbe45 buildiso: remove kernel opt 2018-05-28 09:01:32 +02:00
udeved
591ae02d55 mkchrootpkg: update for pacman-5.1 2018-05-28 09:00:49 +02:00
udeved
6311233f73 util-iso-yaml: adopt calamares modules changes 2018-05-27 22:47:36 +02:00
udeved
398e91bdd9 deploypkg: add repo action check 2018-05-12 23:13:26 +00:00
udeved
d1f4c03e05 mkchrootpkg: add /etc/shadow entry for builduser for sudo 1.8.23 2018-05-12 09:28:57 +00:00
udeved
180decbc5e gitignore: update 2018-04-28 20:20:08 +02:00
udeved
943c0c36ea util-iso-profile: support base in git repo if present 2018-04-28 20:19:50 +02:00
udeved
60116e9f93 update pacman.conf files 2018-04-28 02:16:19 +02:00
udeved
eea5d31427 uril-iso-profile: split the path setters in init_profile() 2018-04-27 11:10:15 +02:00
udeved
d05e8700ef util-profile: update defaults 2018-04-26 22:59:44 +02:00
udeved
1d310e18e9 buildtree: add braodcom-wl to patch_pkg() 2018-04-26 22:41:32 +02:00
udeved
baf290d3aa Makefile: rm base profile 2018-04-26 19:37:37 +02:00
udeved
1f379eec51 Merge branch 'devel' of github.com:artix-linux/artools 2018-04-26 19:32:55 +02:00
udeved
c4d1425c46 move base profile in iso-profiles 2018-04-26 19:30:59 +02:00
udeved
e5211838e8 Merge branch 'devel' of github.com:artix-linux/artools 2018-04-17 21:28:02 +02:00
udeved
441c97730b util-iso: append if runit to iso filename 2018-04-15 03:08:47 +02:00
udeved
8ca984325a util-iso-profiles: make setting DM easy to expand 2018-04-15 02:57:17 +02:00
artoo
3c4fc6e00b Merge pull request #42 from konimex/devel
Add initial runit support
2018-04-15 00:05:10 +02:00
udeved
20a20ee8bb buildiso: set the DM on runit 2018-04-14 22:44:30 +02:00
2aae876d98 Detect the service directory using the correct check.
I was an idiot..
2018-04-14 21:16:24 +07:00
a19379596d Add initial runit support 2018-04-14 21:15:49 +07:00
udeved
af8ab5fd1e buildiso: runit support for servicescfg 2018-04-14 10:37:10 +02:00
artoo
1c56ce7f8c Merge pull request #63 from artix-linux/devel
Devel
2018-04-11 17:14:38 +02:00
udeved
f80c5bf587 Makefile: clean up iso install & uninstall 2018-04-11 17:11:35 +02:00
udeved
d5c8af7025 initcpio: fix uninstall 2018-04-11 12:31:05 +02:00
udeved
12a41ec0b2 Makefile: fix sub makes 2018-04-11 12:23:52 +02:00
udeved
b5eb287867 Makefile: use CPIODIR 2018-04-11 12:18:12 +02:00
udeved
3e4fbd892e readme: fix typo 2018-04-11 11:56:11 +02:00
udeved
dca96f29d7 readme: update 2018-04-11 11:49:24 +02:00
udeved
a382bdc83a Makefile: split initcpio 2018-04-11 11:26:54 +02:00
udeved
b73aec6031 initcpio: add makefile 2018-04-11 11:26:35 +02:00
udeved
88f1145c96 Makefile: split base profile in sep. Makefile 2018-04-11 11:03:36 +02:00
udeved
43bc1d149a Makefile: add default mode 2018-04-10 15:30:14 +02:00
udeved
ffa532591c Makefile: cleanup uninstall 2018-04-10 15:22:11 +02:00
udeved
f9f8ca6b68 Makefile: define overlaydir 2018-04-10 14:25:55 +02:00
udeved
dbc3a94906 Makefile: add condition flags 2018-04-10 11:55:19 +02:00
udeved
8e4b5f88ca start 0.8 2018-04-10 00:32:26 +02:00
udeved
104cc0b1ef data: fix base profile fstab 2018-04-10 00:29:07 +02:00
udeved
ce790fcaab Makefile: fix uninstall 2018-04-10 00:28:11 +02:00
udeved
2d03e16a5f buildiso: add goblins repo support 2018-04-08 14:17:41 +02:00
udeved
64e0badbac Makefile: add buildiso-goblins symlink 2018-04-08 14:13:14 +02:00
udeved
a94afab8a0 readme: update 2018-04-07 16:30:01 +02:00
artoo
1d3c77dc73 Merge pull request #62 from artix-linux/devel
deploypkg: simplify code in update_repo()
2018-04-07 12:03:33 +02:00
udeved
1cccece399 deploypkg: simplify code in update_repo() 2018-04-06 23:05:15 +02:00
artoo
cc8b47912e Merge pull request #61 from artix-linux/devel
Devel
2018-04-06 22:19:26 +02:00
udeved
f36cf35d9a deploypkg: enable checkpkg on add 2018-04-06 22:17:46 +02:00
udeved
cca5283db6 deploypkg: optimize pacman db access 2018-04-06 22:04:39 +02:00
udeved
d6bf8bcf12 util-pkg: check for PKGBUILD instead of checking for repo dir in find_repo() 2018-04-06 21:04:49 +02:00
udeved
88886de9e9 remove vbox from base Packages-Live 2018-03-31 11:19:53 +02:00
artoo
55b0cd4ae2 Merge pull request #59 from artix-linux/devel
Devel
2018-03-30 23:39:01 +02:00
udeved
84a51f4a9e buildtree: code cleanup 2018-03-30 23:27:55 +02:00
udeved
87ad3a631a buildtree: add option to import from trunk, defaults to repos/$repo 2018-03-30 16:15:50 +02:00
udeved
2a70b5f123 commitpkg: quote some vars 2018-03-30 16:15:18 +02:00
udeved
3106e8975f commitpkg: make move more safe; prevent unwanted subdir in $repo in few cases 2018-03-30 02:18:25 +02:00
udeved
4a02e2d7be buildtree: init unstable false
unstable repos are only included on -x
2018-03-28 21:15:12 +02:00
udeved
4363421ce8 mkchrootpkg: revert fix verifysource with pacman-git until new pacman version 2018-03-27 20:38:38 +02:00
udeved
4b96a54347 buildtree: add -x to disable arch unstale kde and gnome when comparing 2018-03-27 20:12:59 +02:00
udeved
0ad953ead8 mkchrootpkg: port arch patch 2018-03-27 19:05:42 +02:00
udeved
45ebe43272 buildtree: fix upate display by sourcing the repo build instead of trunk 2018-03-27 19:04:58 +02:00
udeved
1c64fe7f69 commitpkg: make move more safe 2018-03-22 11:16:02 +01:00
udeved
c2a030b016 mkpkgclean: fix pretend 2018-03-18 16:44:25 +01:00
udeved
94670e18e7 add mkpkgclean 2018-03-18 16:20:00 +01:00
udeved
5c835b6e2c deploypkg: navigate in the repo dir in order to make old package removal work on repo-add 2018-03-18 15:47:53 +01:00
udeved
3f803be6b8 buildtree: clean view 2018-03-17 01:23:54 +01:00
udeved
70b81d7ff8 buildtree: view arch 2018-03-16 19:04:41 +01:00
udeved
12a34bd5a2 buildtree: add option to view depends of a given pkg 2018-03-16 18:53:59 +01:00
udeved
11504d3267 buildtree: fix checkdepends msg 2018-03-15 17:16:55 +01:00
udeved
203df20e76 commitpkg: prevent trunk dir copy in certain cases 2018-03-14 09:32:57 +01:00
udeved
184259c600 Merge branch 'devel' of github.com:artix-linux/artools 2018-03-12 21:50:29 +01:00
udeved
b95c7dee0d mkchrootpkg: reenable ctty workaround 2018-03-12 21:49:20 +01:00
udeved
c7c67fbc21 buildtree: show arch kde and gnome unstable 2018-03-12 21:47:34 +01:00
artoo
21a5c7e916 Merge pull request #57 from artix-linux/devel
Devel
2018-03-05 17:15:21 +01:00
udeved
62810d1d85 rm lists, pipelines 2018-03-05 17:09:19 +01:00
udeved
865bd20674 buildtree: add -z switch to skip arch sync 2018-03-04 23:13:41 +01:00
artoo
b46b5c626e Merge pull request #54 from artix-linux/devel
Devel
2018-02-21 01:11:10 +01:00
udeved
9ac4576666 upd missing pkgs list 2018-02-21 01:07:17 +01:00
udeved
a88f196217 commitpkh: clean up 2018-02-21 01:06:48 +01:00
udeved
c0e8ef4c26 buildiso: default to linux kernel 2018-02-19 23:59:39 +01:00
49 changed files with 1045 additions and 1486 deletions

2
.gitignore vendored
View File

@@ -4,3 +4,5 @@
.kateproject.d
data/schemas/*.conf
.project
iso-profiles
live-services

193
Makefile
View File

@@ -1,9 +1,28 @@
Version=0.7
VERSION=0.9
Chroot_version=0.7
CHROOT_VERSION=0.8
TOOLS = artools
ifdef PREFIX
PREFIX = /usr/local
endif
SYSCONFDIR = /etc
BINDIR = $(PREFIX)/bin
LIBDIR = $(PREFIX)/lib
DATADIR = $(PREFIX)/share
DIRMODE = -dm0755
FILEMODE = -m0644
MODE = -m0755
LN = ln -sf
RM = rm -f
RMD = rm -fr --one-file-system
M4 = m4 -P
CHMODAW = chmod a-w
CHMODX = chmod +x
CPIODIR = $(SYSCONFDIR)/initcpio
SYSCONF = \
data/artools.conf
@@ -35,7 +54,8 @@ BIN_PKG = \
bin/buildpkg \
bin/buildtree \
bin/deploypkg \
bin/commitpkg
bin/commitpkg \
bin/mkpkgclean
LIBS_PKG = \
$(wildcard lib/util-pkg*.sh)
@@ -62,159 +82,78 @@ BIN_ISO = \
bin/buildiso \
bin/deployiso
BIN_ISO_SYMS = \
buildiso-gremlins \
buildiso-goblins
LIBS_ISO = \
$(wildcard lib/util-iso*.sh)
SHARED_ISO = \
data/mkinitcpio.conf
CPIOHOOKS = \
$(wildcard initcpio/hooks/*)
CPIOINST = \
$(wildcard initcpio/install/*)
CPIO = \
initcpio/script/artix_shutdown
BASE = \
$(wildcard data/base/Packages-*) \
data/base/profile.conf
LIVE_ETC = \
data/base/live-overlay/etc/issue \
data/base/live-overlay/etc/fstab
LIVE_ETC_DEFAULT = \
$(wildcard data/base/live-overlay/etc/default/*)
LIVE_ETC_PAM = \
$(wildcard data/base/live-overlay/etc/pam.d/*)
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" \
-e "s|@libdir[@]|$(DESTDIR)$(PREFIX)/lib/artools|g" \
-e "s|@version@|${Version}|" \
-e "s|@chroot_version@|${Chroot_version}|"
EDIT = sed -e "s|@datadir[@]|$(DATADIR)/$(TOOLS)|g" \
-e "s|@sysconfdir[@]|$(SYSCONFDIR)/$(TOOLS)|g" \
-e "s|@libdir[@]|$(LIBDIR)/$(TOOLS)|g" \
-e "s|@version@|$(VERSION)|" \
-e "s|@chroot_version@|$(CHROOT_VERSION)|"
%: %.in Makefile
@echo "GEN $@"
@$(RM) "$@"
@m4 -P $@.in | $(edit) >$@
@chmod a-w "$@"
@chmod +x "$@"
@$(M4) $@.in | $(EDIT) >$@
@$(CHMODAW) "$@"
@$(CHMODX) "$@"
clean:
rm -f $(BIN_BASE) ${BIN_PKG} ${BIN_ISO}
$(RM) $(BIN_BASE) $(BIN_PKG) $(BIN_ISO)
install_base:
install -dm0755 $(DESTDIR)$(SYSCONFDIR)/artools
install -m0644 ${SYSCONF} $(DESTDIR)$(SYSCONFDIR)/artools
install $(DIRMODE) $(DESTDIR)$(SYSCONFDIR)/$(TOOLS)
install $(FILEMODE) $(SYSCONF) $(DESTDIR)$(SYSCONFDIR)/$(TOOLS)
install -dm0755 $(DESTDIR)$(PREFIX)/bin
install -m0755 ${BIN_BASE} $(DESTDIR)$(PREFIX)/bin
install $(DIRMODE) $(DESTDIR)$(BINDIR)
install $(MODE) $(BIN_BASE) $(DESTDIR)$(BINDIR)
install -dm0755 $(DESTDIR)$(PREFIX)/lib/artools
install -m0644 ${LIBS_BASE} $(DESTDIR)$(PREFIX)/lib/artools
install $(DIRMODE) $(DESTDIR)$(LIBDIR)/$(TOOLS)
install $(FILEMODE) $(LIBS_BASE) $(DESTDIR)$(LIBDIR)/$(TOOLS)
install -dm0755 $(DESTDIR)$(PREFIX)/share/artools
install -m0644 ${SHARED_BASE} $(DESTDIR)$(PREFIX)/share/artools
install $(DIRMODE) $(DESTDIR)$(DATADIR)/$(TOOLS)
install $(FILEMODE) $(SHARED_BASE) $(DESTDIR)$(DATADIR)/$(TOOLS)
install_pkg:
install -dm0755 $(DESTDIR)$(PREFIX)/bin
install -m0755 ${BIN_PKG} $(DESTDIR)$(PREFIX)/bin
install $(DIRMODE) $(DESTDIR)$(BINDIR)
install $(MODE) $(BIN_PKG) $(DESTDIR)$(BINDIR)
ln -sf find-libdeps $(DESTDIR)$(PREFIX)/bin/find-libprovides
$(LN) find-libdeps $(DESTDIR)$(BINDIR)/find-libprovides
for l in ${COMMITPKG_SYMS}; do ln -sf commitpkg $(DESTDIR)$(PREFIX)/bin/$$l; done
for l in $(COMMITPKG_SYMS); do $(LN) commitpkg $(DESTDIR)$(BINDIR)/$$l; done
install -dm0755 $(DESTDIR)$(PREFIX)/lib/artools
install -m0644 ${LIBS_PKG} $(DESTDIR)$(PREFIX)/lib/artools
install $(DIRMODE) $(DESTDIR)$(LIBDIR)/$(TOOLS)
install $(FILEMODE) $(LIBS_PKG) $(DESTDIR)$(LIBDIR)/$(TOOLS)
install -dm0755 $(DESTDIR)$(PREFIX)/share/artools
install -m0644 ${SHARED_PKG} $(DESTDIR)$(PREFIX)/share/artools
install $(DIRMODE) $(DESTDIR)$(DATADIR)/$(TOOLS)
install $(FILEMODE) $(SHARED_PKG) $(DESTDIR)$(DATADIR)/$(TOOLS)
install -dm0755 $(DESTDIR)$(PREFIX)/share/artools/patches
install -m0644 ${PATCHES} $(DESTDIR)$(PREFIX)/share/artools/patches
install $(DIRMODE) $(DESTDIR)$(DATADIR)/$(TOOLS)/patches
install $(FILEMODE) $(PATCHES) $(DESTDIR)$(DATADIR)/$(TOOLS)/patches
install_cpio:
+make CPIODIR=$(CPIODIR) DESTDIR=$(DESTDIR) -C initcpio install
install_isobase:
install -dm0755 $(DESTDIR)$(PREFIX)/share/artools/iso-profiles/base
install -m0644 ${BASE} $(DESTDIR)$(PREFIX)/share/artools/iso-profiles/base
install_iso: install_cpio
install $(DIRMODE) $(DESTDIR)$(BINDIR)
install $(MODE) $(BIN_ISO) $(DESTDIR)$(BINDIR)
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
for l in $(BIN_ISO_SYMS); do $(LN) buildiso $(DESTDIR)$(BINDIR)/$$l; done
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 $(DIRMODE) $(DESTDIR)$(LIBDIR)/$(TOOLS)
install $(FILEMODE) $(LIBS_ISO) $(DESTDIR)$(LIBDIR)/$(TOOLS)
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 $(DIRMODE) $(DESTDIR)$(DATADIR)/$(TOOLS)
install $(FILEMODE) $(SHARED_ISO) $(DESTDIR)$(DATADIR)/$(TOOLS)
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: install_base install_pkg install_iso
install_iso:
install -dm0755 $(DESTDIR)$(PREFIX)/bin
install -m0755 ${BIN_ISO} $(DESTDIR)$(PREFIX)/bin
ln -sf buildiso $(DESTDIR)$(PREFIX)/bin/buildiso-gremlins
install -dm0755 $(DESTDIR)$(PREFIX)/lib/artools
install -m0644 ${LIBS_ISO} $(DESTDIR)$(PREFIX)/lib/artools
install -dm0755 $(DESTDIR)$(SYSCONFDIR)/initcpio/hooks
install -m0755 ${CPIOHOOKS} $(DESTDIR)$(SYSCONFDIR)/initcpio/hooks
install -dm0755 $(DESTDIR)$(SYSCONFDIR)/initcpio/install
install -m0755 ${CPIOINST} $(DESTDIR)$(SYSCONFDIR)/initcpio/install
install -m0755 ${CPIO} $(DESTDIR)$(SYSCONFDIR)/initcpio
install -dm0755 $(DESTDIR)$(PREFIX)/share/artools
install -m0644 ${SHARED_ISO} $(DESTDIR)$(PREFIX)/share/artools
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
for f in ${SHARED_BASE}; do rm -f $(DESTDIR)$(PREFIX)/share/artools/$$f; done
for f in ${LIBS_BASE}; do rm -f $(DESTDIR)$(PREFIX)/lib/artools/$$f; done
uninstall_pkg:
for f in ${BIN_PKG}; do rm -f $(DESTDIR)$(PREFIX)/bin/$$f; done
rm -f $(DESTDIR)$(PREFIX)/bin/find-libprovides
for l in ${COMMITPKG_SYMS}; do rm -f $(DESTDIR)$(PREFIX)/bin/$$l; done
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
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 ${BIN_ISO}; do rm -f $(DESTDIR)$(PREFIX)/bin/$$f; done
rm -f $(DESTDIR)$(PREFIX)/bin/buildiso-gremlins
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
install: install_base install_pkg install_iso install_isobase
uninstall: uninstall_base uninstall_pkg uninstall_iso uninstall_isobase
dist:
git archive --format=tar --prefix=artools-$(Version)/ $(Version) | gzip -9 > artools-$(Version).tar.gz
gpg --detach-sign --use-agent artools-$(Version).tar.gz
.PHONY: all clean install uninstall dist
.PHONY: all clean install

View File

@@ -1,42 +1,67 @@
artools
=============
User manual
#### Make flags
### 1. artools.conf
* PREFIX=/usr/local (default if defined)
* SYSCONFDIR=/etc
#### Dependencies
##### Buildtime:
* make
* git
* m4
##### Runtime:
- base:
* openssh
* rsync
* haveged
* os-prober
* gnupg
* pacman
- pkg:
* namcap
* git-subrepo
- iso:
* dosfstools
* libisoburn
* squashfs-tools
* mkinitcpio
* mktorrent
* grub
#### Configuration
artools.conf is the central configuration file for artools.
By default, the config is installed in
~~~
/etc/artools/artools.conf
~~~
/etc/artools/artools.conf
A user artools.conf can be placed in
~~~
$HOME/.config/artools/artools.conf
~~~
$HOME/.config/artools/artools.conf
If the userconfig is present, artools will load the userconfig values, however, if variables have been set in the systemwide
~~~
/etc/artools/artools.conf
~~~
these values take precedence over the userconfig.
These values take precedence over the userconfig.
Best practise is to leave systemwide file untouched.
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.
~~~
$HOME/.config/artools/import.list.d
~~~
Both, pacman.conf and makepkg.conf for chroots are loaded from
overriding
/usr/share/artools/{makepkg,pacman-*}.conf
~~~
/etc/artools/import.list.d
~~~
and can be overridden dropping them in
$HOME/.config/artools/

View File

@@ -86,8 +86,8 @@ else
${pretend} && display_settings && exit 1
chroot_api_efi_mount "${chrootdir}" || die "failed to setup API filesystems in chroot %s" "${chrootdir}"
chroot_mount /etc/resolv.conf "${chrootdir}/etc/resolv.conf" --bind
chroot_api_mount "${chrootdir}" || die "failed to setup API filesystems in chroot %s" "${chrootdir}"
chroot_add_resolv_conf "${chrootdir}"
fi
SHELL=/bin/sh unshare --fork --pid chroot "${chrootdir}" ${run_args[*]}

View File

@@ -20,6 +20,26 @@ import ${LIBDIR}/util.sh
import ${LIBDIR}/util-mount.sh
import ${LIBDIR}/util-chroot.sh
copy_mirrorlist(){
cp -a /etc/pacman.d/mirrorlist "$1/etc/pacman.d/"
}
copy_keyring(){
if [[ -d /etc/pacman.d/gnupg ]] && [[ ! -d $1/etc/pacman.d/gnupg ]]; then
cp -a /etc/pacman.d/gnupg "$1/etc/pacman.d/"
fi
}
create_min_fs(){
msg "Creating install root at %s" "$1"
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
}
newroot=/mnt
hostcache=false

View File

@@ -24,12 +24,10 @@ prepare_build(){
load_profile "${profile}"
netgroups=${netgroups_url}/netgroups-${initsys}.yaml
local pacman_conf pac_file="pacman-default.conf"
case "${stablility}" in
'gremlins') pac_file="pacman-${stablility}.conf" ;;
'gremlins'|'goblins') pac_file="pacman-${stablility}.conf" ;;
esac
pacman_conf="${DATADIR}/$pac_file"
@@ -53,8 +51,6 @@ show_profile(){
if ${verbose};then
msg2 "autologin: %s" "${autologin}"
msg2 "netgroups: %s" "${netgroups}"
msg2 "hostname: %s" "${hostname}"
msg2 "username: %s" "${username}"
msg2 "password: %s" "${password}"
@@ -72,7 +68,6 @@ display_settings(){
msg "OPTIONS:"
msg2 "profile: %s" "${profile}"
msg2 "initsys: %s" "${initsys}"
msg2 "kernel: %s" "${kernel}"
[[ -n ${gpgkey} ]] && msg2 "gpgkey: %s" "${gpgkey}"
msg2 "stablility: %s" "${stablility}"
@@ -146,8 +141,6 @@ usage() {
echo " [default: ${chroots_iso}]"
echo ' -t <dir> Target directory'
echo " [default: ${iso_pool}]"
echo ' -k <name> Kernel to use'
echo " [default: ${kernel}]"
echo ' -i <name> Init system to use'
echo " [default: ${initsys}]"
echo ' -g <key> The gpg key for sfs signing'
@@ -167,14 +160,13 @@ usage() {
orig_argv=("$0" "$@")
opts='p:r:t:k:i:g:czxmvqh'
opts='p:r:t:i:g:czxmvqh'
while getopts "${opts}" arg; do
case "${arg}" in
p) profile="$OPTARG" ;;
r) chroots_iso="$OPTARG" ;;
t) iso_pool="$OPTARG" ;;
k) kernel="$OPTARG" ;;
i) initsys="$OPTARG" ;;
g) gpgkey="$OPTARG" ;;
c) clean_first=false ;;

View File

@@ -18,14 +18,16 @@ 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-gitea.sh
import ${LIBDIR}/util-pkg-subrepo.sh
pull_tree_arch(){
cd ${tree_dir_arch}
for tree in packages community;do
if [[ -d ${tree} ]];then
cd ${tree}
msg "Checking (%s)" "${tree}"
pull_tree
msg "Checking (%s)" "${tree}"
pull_tree
cd ..
else
msg "Cloning (%s) ..." "$tree"
@@ -34,18 +36,32 @@ pull_tree_arch(){
done
}
config_tree(){
local tree="$1"
cd $tree
git config --bool pull.rebase true
git config commit.gpgsign true
if [[ -n "${GPGKEY}" ]];then
git config user.signingkey "${GPGKEY}"
else
warning "No GPGKEY configured in makepkg.conf!"
fi
cd ..
}
pull_tree_artix(){
cd ${tree_dir_artix}
for tree in packages packages-galaxy;do
if [[ -d ${tree} ]];then
config_tree "${tree}"
cd ${tree}
git config --bool pull.rebase true
msg "Checking (%s)" "${tree}"
pull_tree
msg "Checking (%s)" "${tree}"
pull_tree
cd ..
else
msg "Cloning (%s) ..." "$tree"
clone_tree "${host_tree_artix}/${tree}"
config_tree "${tree}"
fi
done
}
@@ -55,25 +71,47 @@ show_version_table(){
for tree in packages packages-galaxy;do
local git=$(find ${tree_dir_artix}/$tree/ -mindepth 1 -maxdepth 1 -type d)
for pkg_path in ${git[@]}; do
local artixrepo=$(find_repo "$pkg_path")
local artixrepo=$(find_repo "$pkg_path" "${unstable}" "${staging}")
if [[ -d $pkg_path/repos/$artixrepo ]];then
source $pkg_path/trunk/PKGBUILD 2>/dev/null
source $pkg_path/repos/$artixrepo/PKGBUILD 2>/dev/null
local pkg=${pkg_path##*/}
local artixver=$(get_full_version $pkg)
local src=$(get_import_path "$tree" "$pkg")
local archrepo=$(find_repo "$src/$pkg")
local archrepo=$(find_repo "$src/$pkg" "${unstable}" "${staging}")
if [[ -d $src/$pkg/repos/$archrepo ]];then
source $src/$pkg/trunk/PKGBUILD 2>/dev/null
source $src/$pkg/repos/$archrepo/PKGBUILD 2>/dev/null
local archver=$(get_full_version $pkg)
fi
if [ $(vercmp $artixver $archver) -lt 0 ];then
local ar=$(arch_to_artix_repo "$artixrepo")
${upgrades} && msg_row_upgrade "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver"
fi
if [ $(vercmp $artixver $archver) -gt 0 ];then
local ar=$(arch_to_artix_repo "$artixrepo")
if [[ -n $archver ]] && [[ -n $archrepo ]];then
${downgrades} && msg_row_downgrade "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver"
if ${artix};then
if [ $(vercmp "$artixver" "$archver") -eq 0 ] || [ $(vercmp "$artixver" "$archver") -gt 0 ];then
local ar=$(arch_to_artix_repo "$artixrepo")
case $ar in
*goblins)
if [[ "$archrepo" == "$artixrepo" ]];then
msg_row "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver"
else
msg_row_notify "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver"
fi
;;
*gremlins)
if [[ "$archrepo" == "$artixrepo" ]];then
msg_row "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver"
else
msg_row_notify "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver"
fi
;;
esac
fi
else
if [ $(vercmp "$artixver" "$archver") -lt 0 ];then
local ar=$(arch_to_artix_repo "$artixrepo")
${upgrades} && msg_row_upgrade "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver"
fi
if [ $(vercmp "$artixver" "$archver") -gt 0 ];then
local ar=$(arch_to_artix_repo "$artixrepo")
if [[ -n $archver ]] && [[ -n $archrepo ]];then
${downgrades} && msg_row_downgrade "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver"
fi
fi
fi
unset pkgver epoch pkgrel artixver archver _package
@@ -82,68 +120,39 @@ show_version_table(){
done
}
show_artix_table(){
msg_table_header "%-20s %-20s %-25s %-30s %-30s" "Arch Repo" "Artix Repo" "Package" "Arch version" "Artix version"
for tree in packages packages-galaxy;do
local git=$(find ${tree_dir_artix}/$tree/ -mindepth 1 -maxdepth 1 -type d)
for pkg_path in ${git[@]}; do
local artixrepo=$(find_repo "$pkg_path")
if [[ -d $pkg_path/repos/$artixrepo ]];then
source $pkg_path/repos/$artixrepo/PKGBUILD 2>/dev/null
local pkg=${pkg_path##*/}
local artixver=$(get_full_version $pkg)
local src=$(get_import_path "$tree" "$pkg")
local archrepo=$(find_repo "$src/$pkg")
if [[ -d $src/$pkg/repos/$archrepo ]];then
source $src/$pkg/repos/$archrepo/PKGBUILD 2>/dev/null
local archver=$(get_full_version $pkg)
fi
if [ $(vercmp $artixver $archver) -eq 0 ] || [ $(vercmp $artixver $archver) -gt 0 ];then
local ar=$(arch_to_artix_repo "$artixrepo")
case $ar in
*goblins)
if [[ $archrepo == $artixrepo ]];then
msg_row "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver"
else
msg_row_notify "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver"
fi
;;
*gremlins)
if [[ $archrepo == $artixrepo ]];then
msg_row "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver"
else
msg_row_notify "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver"
fi
;;
# system|world|galaxy|lib32) msg_row "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver" ;;
esac
fi
unset pkgver epoch pkgrel artixver archver _package
fi
done
done
show_deps(){
local src="$1" repo="$2"
source $src/PKGBUILD 2>/dev/null
[[ $arch == 'any' ]] && CARCH=any
local archver=$(get_full_version $pkg)
msg "git tree: %s" "$git_tree_arch"
msg2 "repo: %s" "$repo"
msg2 "Package Name: %s" "$pkg"
msg2 "Arch Version: %s" "$archver"
msg2 "arch: %s" "$CARCH"
[[ -n ${makedepends[@]} ]] && msg2 "makedepends: %s" "${makedepends[*]}"
[[ -n ${checkdepends[@]} ]] && msg2 "checkdepends: %s" "${checkdepends[*]}"
[[ -n ${depends[@]} ]] && msg2 "depends: %s" "${depends[*]}"
[[ -n ${optdepends[@]} ]] && msg2 "optdepends: %s" "${optdepends[@]}"
}
from_arch(){
local pkg="$1" src= dest=
local git_tree_arch=$(find_tree "${tree_dir_arch}" "$pkg")
[[ -z $git_tree_arch ]] && die "Package '%s' does not exist!" "$pkg"
src=${tree_dir_arch}/$git_tree_arch/$pkg/trunk
local pkg_path=${tree_dir_arch}/$git_tree_arch/$pkg
local repo=$(find_repo "$pkg_path" "${unstable}")
src=$pkg_path/repos/$repo
$trunk && src=$pkg_path/trunk
local git_tree_artix=$(find_tree "${tree_dir_artix}" "$pkg")
dest=${tree_dir_artix}/$git_tree_artix/$pkg/trunk
cd ${tree_dir_arch}/$git_tree_arch
source $src/PKGBUILD 2>/dev/null
local archver=$(get_full_version $pkg)
msg "Package: %s" "$pkg"
msg2 "Arch Version: %s" "$archver"
[[ -n ${makedepends[@]} ]] && msg2 "makedepends: %s" "${makedepends[*]}"
[[ -n ${checkdepends[@]} ]] && msg2 "depends: %s" "${checkdepends[*]}"
[[ -n ${depends[@]} ]] && msg2 "depends: %s" "${depends[*]}"
show_deps "$src" "$repo"
if [[ -d $dest ]];then
cd ${tree_dir_artix}/$git_tree_artix
@@ -162,7 +171,10 @@ from_arch(){
cd ${tree_dir_artix}/$git_tree_artix
dest=${tree_dir_artix}/$git_tree_artix/$pkg/trunk
mkdir $pkg
create_repo "$pkg"
add_repo_to_team "$pkg" "$pkg_path"
subrepo_clone "$pkg"
info "Import from archlinux (%s)" "$git_tree_arch"
rsync "${rsync_args[@]}" $src/ $dest/
@@ -170,8 +182,21 @@ from_arch(){
fi
}
view_build(){
local pkg="$1" src=
local git_tree_arch=$(find_tree "${tree_dir_arch}" "$pkg")
[[ -z $git_tree_arch ]] && die "Package '%s' does not exist!" "$pkg"
local pkg_path=${tree_dir_arch}/$git_tree_arch/$pkg
local repo=$(find_repo "$pkg_path" "${unstable}")
src=$pkg_path/repos/$repo
show_deps "$src" "$repo"
}
sync_repos(){
pull_tree_arch
${sync_arch} && pull_tree_arch
pull_tree_artix
}
@@ -184,11 +209,16 @@ display_settings(){
msg "ARGS:"
msg2 "sync: %s" "${sync}"
msg2 "sync_arch: %s" "${sync_arch}"
msg2 "compare: %s" "${compare}"
msg2 "upgrades: %s" "${upgrades}"
msg2 "downgrades: %s" "${downgrades}"
msg2 "artix: %s" "${artix}"
msg2 "staging: %s" "${staging}"
msg2 "unstable: %s" "${unstable}"
msg2 "import: %s" "${import}"
msg2 "view: %s" "${view}"
msg2 "trunk: %s" "${trunk}"
msg "PATHS:"
msg2 "tree_dir_artix: %s" "${tree_dir_artix}"
@@ -203,11 +233,16 @@ load_vars /etc/makepkg.conf
pretend=false
sync=false
sync_arch=true
compare=false
upgrades=true
unstable=false
staging=true
upgrades=false
downgrades=false
artix=false
import=false
view=false
trunk=false
package=''
rsync_args=(-aWxvci --progress --delete-before --no-R --no-implied-dirs)
@@ -216,11 +251,16 @@ usage() {
echo "Usage: ${0##*/} [options]"
echo ' -p <pkg> Package name'
echo " -s Clone or pull repos"
echo " -z Don't clone or pull arch repos"
echo ' -c Compare packages'
echo ' -u Show upgrade packages'
echo ' -d Show downgrade packages'
echo ' -a Show artix specific packages'
echo ' -i Import a package from arch'
echo ' -a Show testing packages'
echo " -y Don't inlcude staging packages"
echo ' -x Include unstable kde and gnome'
echo ' -i Import a package from arch repos'
echo ' -t Import from arch trunk'
echo ' -v View package depends'
echo ' -q Query settings'
echo ' -h This help'
echo ''
@@ -230,17 +270,22 @@ usage() {
orig_argv=("$0" "$@")
opts='p:csudaiqh'
opts='p:csudayiztxvqh'
while getopts "${opts}" arg; do
case "${arg}" in
p) package="$OPTARG" ;;
s) sync=true ;;
z) sync_arch=false ;;
c) compare=true ;;
u) upgrades=false ;;
u) upgrades=true ;;
d) downgrades=true ;;
a) artix=true ;;
y) staging=false ;;
i) import=true ;;
t) trunk=true ;;
v) view=true ;;
x) unstable=true ;;
q) pretend=true ;;
h|?) usage 0 ;;
*) echo "invalid argument '${arg}'"; usage 1 ;;
@@ -256,8 +301,8 @@ ${pretend} && display_settings && exit 1
${sync} && sync_repos
${view} && view_build "${package}"
${compare} && show_version_table
${artix} && show_artix_table
${import} && from_arch "${package}"

View File

@@ -93,9 +93,9 @@ copy_hostconf () {
}
chroot_extra_mount() {
chroot_mount "/etc/resolv.conf" "$1/etc/resolv.conf" -B
chroot_add_resolv_conf "$1"
chroot_mount "/etc/hosts" "$1/etc/hosts" -B
chroot_mount_conditional "[[ -e $1/etc/machine-id ]]" "/etc/machine-id" "$1/etc/machine-id" -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

View File

@@ -18,17 +18,17 @@ 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-subrepo.sh
commit_pkg(){
local git_tree=$(find_tree "${tree_dir_artix}" "${package}")
if [[ -n ${git_tree} ]];then
cd ${tree_dir_artix}/${git_tree}
cd ${package}
cd ${tree_dir_artix}/${git_tree}/${package}
source trunk/PKGBUILD
[[ $arch == 'any' ]] && CARCH=any
local ver=$(get_full_version "${package}")
local commit_msg=""
if ${remove};then
local action='remove'
@@ -36,23 +36,30 @@ commit_pkg(){
local pkg=${package}
git rm -r trunk
else
local pkg=${package}-$ver
git rm -r repos/${source_repo}-$CARCH
local pkg="${package}-$ver"
git rm -r repos/"${source_repo}-$CARCH"
fi
msg "Action: [%s] '%s' %s" "${source_repo}" "$pkg" "${action}"
git commit -m "[${source_repo}] '$pkg' ${action}"
${push} && push_tree
commit_msg="[${source_repo}] '$pkg' ${action}"
msg "Action: %s" "$commit_msg"
else
local action='modify'
msg "Action: [%s] '%s' %s" "${source_repo}" "${package}-$ver" "${action}"
commit_msg="[${source_repo}] '${package}-$ver' ${action}"
msg "Action: %s" "$commit_msg"
git add .
git commit -m "[${source_repo}] '${package}-$ver' ${action}"
if ${push};then
msg "Checking (%s)" "${git_tree}"
pull_tree
push_tree
fi
fi
git commit -m "$commit_msg"
cd ${tree_dir_artix}/${git_tree}
if ${push};then
msg "Checking (%s)" "${git_tree}"
git pull origin master
subrepo_push "${package}"
sleep 1
git push origin master
fi
git prune
else
error "Package '%s' does not exist!" "${package}"
fi
@@ -61,9 +68,7 @@ commit_pkg(){
symlink_commit_pkg(){
local git_tree=$(find_tree "${tree_dir_artix}" "${package}")
if [[ -n ${git_tree} ]];then
cd ${tree_dir_artix}/${git_tree}
cd ${package}
cd ${tree_dir_artix}/${git_tree}/${package}
source trunk/PKGBUILD
[[ $arch == 'any' ]] && CARCH=any
@@ -71,30 +76,40 @@ symlink_commit_pkg(){
if [[ ${source_repo} == 'trunk' ]];then
local action='add'
local dest=${target_repo}-$CARCH
local dest="${target_repo}-$CARCH"
[[ -d repos/$dest ]] && git rm -r repos/$dest
[[ ! -d repos ]] && mkdir repos
[[ ! -d repos/$dest ]] && mkdir repos/$dest
cp -r trunk repos/$dest
cp trunk/* repos/$dest/
else
local action='move'
local dest=${target_repo}-$CARCH
local src="${source_repo}-$CARCH" dest="${target_repo}-$CARCH"
cd repos
[[ -d $dest ]] && git rm -r $dest
git mv ${source_repo}-$CARCH $dest
cd ..
[[ -d repos/$dest ]] && git rm -r repos/$dest
[[ ! -d repos ]] && mkdir repos
[[ ! -d repos/$dest ]] && mkdir repos/$dest
cp repos/$src/* repos/$dest/
git rm -r repos/$src
fi
local commit_msg="[${source_repo}] -> [${target_repo}] '${package}-$ver' ${action}"
msg "Action: %s" "$commit_msg"
msg "Action: [%s] -> [%s] '%s' %s" "${source_repo}" "${target_repo}" "${package}-$ver" "${action}"
git add .
git commit -m "[${source_repo}] -> [${target_repo}] '${package}-$ver' ${action}"
git commit -m "$commit_msg"
cd ${tree_dir_artix}/${git_tree}
if ${push};then
msg "Checking (%s)" "${git_tree}"
pull_tree
push_tree
git pull origin master
subrepo_push "${package}"
sleep 1
git push origin master
fi
git prune
else
error "Package '%s' does not exist!" "${package}"
fi

View File

@@ -18,41 +18,36 @@ SYSCONFDIR='@sysconfdir@'
import ${LIBDIR}/util.sh
import ${LIBDIR}/util-pkg.sh
del_from_repo(){
local ver
local repo="$1"
local repo_path=${repos_root}/$repo/os/${target_arch}
update_repo(){
local repo="$1" pkgfile ver ext=db.tar.xz
local repo_path=${repos_root}/$repo/os/${target_arch} packages=()
source PKGBUILD
for name in ${pkgname[@]};do
[[ $arch == any ]] && CARCH=any
ver=$(get_full_version $name)
ver=$(get_full_version "$name")
if pkgfile=$(find_cached_package "$name" "$ver" "$CARCH");then
info "pkgfile: %s" "${pkgfile##*/}"
repo-remove -R $repo_path/$repo.db.tar.xz $name
[[ -e $repo_path/${pkgfile##*/} ]] && rm -v $repo_path/${pkgfile##*/}
[[ -e $repo_path/${pkgfile##*/}.sig ]] && rm -v $repo_path/${pkgfile##*/}.sig
fi
done
}
add_to_repo(){
local ver pkgfile=
local repo="$1"
local repo_path=${repos_root}/$repo/os/${target_arch}
source PKGBUILD
for name in ${pkgname[@]};do
[[ $arch == any ]] && CARCH=any
ver=$(get_full_version $name)
if pkgfile=$(find_cached_package "$name" "$ver" "$CARCH"); then
info "pkgfile: %s" "${pkgfile##*/}"
if ${sign_pkg};then
[[ -e ${pkgfile}.sig ]] && rm ${pkgfile}.sig
signfile ${pkgfile}
local pkg=${pkgfile##*/}
info "Found: %s" "$pkg"
if ${add_pkg};then
local action='add'
packages+=("$pkg")
# checkpkg $pkg
if ${sign_pkg};then
[[ -e ${pkgfile}.sig ]] && rm ${pkgfile}.sig
signfile ${pkgfile}
fi
ln -sf ${pkgfile}{,.sig} $repo_path/
elif ${del_pkg};then
local action='remove'
packages+=("$name")
[[ -e $repo_path/$pkg ]] && rm $repo_path/$pkg
[[ -e $repo_path/$pkg.sig ]] && rm $repo_path/$pkg.sig
fi
ln -sf ${pkgfile}{,.sig} $repo_path/
repo-add -R $repo_path/$repo.db.tar.xz $pkgfile
fi
done
cd $repo_path
[[ -n $action ]] && repo-$action -R $repo.$ext ${packages[@]}
return 0
}
display_settings(){
@@ -83,9 +78,9 @@ sign_pkg=false
usage() {
echo "Usage: ${0##*/} [options]"
echo " -d Destination repository [default:${repository}]"
echo ' -a Add package to repository'
echo ' -r Remove package from repository'
echo ' -s Sign package'
echo ' -a Add package(s) to repository'
echo ' -r Remove package(s) from repository'
echo ' -s Sign package(s)'
echo ' -q Query settings and pretend upload'
echo ' -h This help'
echo ''
@@ -100,8 +95,8 @@ opts='d:arsqh'
while getopts "${opts}" arg; do
case "${arg}" in
d) repository="$OPTARG" ;;
a) add_pkg=true ;;
r) del_pkg=true ;;
a) add_pkg=true; del_pkg=false ;;
r) del_pkg=true; add_pkg=false ;;
s) sign_pkg=true ;;
q) pretend=true ;;
h|?) usage 0 ;;
@@ -115,8 +110,4 @@ prepare_dir "${repos_root}"
${pretend} && display_settings && exit 1
${del_pkg} && del_from_repo "${repository}"
${add_pkg} && add_to_repo "${repository}"
exit 0
update_repo "${repository}"

View File

@@ -93,6 +93,7 @@ usage() {
usage: ${0##*/} [options] root
Options:
-f FILTER Restrict output to mountpoints matching the prefix FILTER
-L Use labels for source identifiers (shortcut for -t LABEL)
-p Exclude pseudofs mounts (default behavior)
-P Include printing mounts
@@ -112,10 +113,11 @@ if [[ -z $1 || $1 = @(-h|--help) ]]; then
exit $(( $# ? 0 : 1 ))
fi
while getopts ':LPpt:U' flag; do
while getopts ':f:LPpt:U' flag; do
case $flag in
L) bytag=LABEL ;;
U) bytag=UUID ;;
f) prefixfilter=$OPTARG ;;
P) pseudofs=1 ;;
p) pseudofs=0 ;;
t) bytag=${OPTARG^^} ;;
@@ -139,6 +141,8 @@ while read -r src target fstype opts fsroot; do
continue
fi
[[ $target = "$prefixfilter"* ]] || continue
# default 5th and 6th columns
dump=0 pass=2

View File

@@ -22,9 +22,6 @@ import ${LIBDIR}/util-chroot.sh
working_dir=''
files=()
build_locales=false
keep_mirrors=false
keep_flag=''
nosetarch=false
usage() {
@@ -73,9 +70,6 @@ else
cache_dirs=(${cache_dir})
fi
basestrap_args=(-Gc ${pacman_conf:+-C "$pacman_conf"})
[[ -n ${mirror} ]] && basestrap_args+=(-M)
umask 0022
#[[ -e $working_dir ]] && die "Working directory '%s' already exists" "$working_dir"
@@ -104,17 +98,21 @@ while read -r varname; do
_env+=("$varname=${!varname}")
done < <(declare -x | sed -r 's/^declare -x ([^=]*)=.*/\1/' | grep -i '_proxy$')
env -i "${_env[@]}" \
basestrap "${basestrap_args[@]}" "$working_dir" ${cache_dirs[@]/#/--cachedir=} "$@" || die 'Failed to install all packages'
basestrap -Gc ${pacman_conf:+-C "$pacman_conf"} "$working_dir" ${cache_dirs[@]/#/--cachedir=} "$@" || die 'Failed to install all packages'
echo "$chroot_version" > "$working_dir/.artools"
default_locale "set" "$working_dir"
if [[ ! -f "$working_dir/etc/locale.gen.orig" ]];then
mv "$working_dir/etc/locale.gen" "$working_dir/etc/locale.gen.orig"
fi
printf '%s.UTF-8 UTF-8\n' en_US de_DE > "$working_dir/etc/locale.gen"
echo 'LANG=en_US.UTF-8' > "$working_dir/etc/locale.conf"
dbus-uuidgen --ensure="$working_dir"/etc/machine-id
chroot_args=(${pacman_conf:+-C "$pacman_conf"} ${makepkg_conf:+-M "$makepkg_conf"} ${cache_dir:+-c "$cache_dir"})
${nosetarch} && chroot_args+=(${nosetarch:+-s})
[[ -n ${mirror} ]] && default_mirror "$working_dir" "$mirror"
exec chroot-run \
"${chroot_args[@]}" \
"$working_dir" locale-gen

View File

@@ -156,16 +156,17 @@ prepare_chroot() {
# We can't use useradd without chrooting, otherwise it invokes PAM modules
# which we might not be able to load (i.e. when building i686 packages on
# an x86_64 host).
sed -e '/^builduser:/d' -i "$copydir"/etc/{passwd,group}
sed -e '/^builduser:/d' -i "$copydir"/etc/{passwd,shadow,group}
printf >>"$copydir/etc/group" 'builduser:x:%d:\n' $builduser_gid
printf >>"$copydir/etc/passwd" 'builduser:x:%d:%d:builduser:/build:/bin/bash\n' $builduser_uid $builduser_gid
printf >>"$copydir/etc/shadow" 'builduser:!!:%d::::::\n' "$(( $(date -u +%s) / 86400 ))"
$install -d "$copydir"/{build,build/.gnupg,startdir,{pkg,srcpkg,src,log}dest}
for x in .gnupg/pubring.{kbx,gpg}; do
[[ -r $USER_HOME/$x ]] || continue
$install -m 644 "$USER_HOME/$x" "$copydir/build/$x"
done
# for x in .gnupg/pubring.{kbx,gpg}; do
# [[ -r $USER_HOME/$x ]] || continue
# $install -m 644 "$USER_HOME/$x" "$copydir/build/$x"
# done
sed -e '/^MAKEFLAGS=/d' -e '/^PACKAGER=/d' -i "$copydir/etc/makepkg.conf"
for x in BUILDDIR=/build PKGDEST=/pkgdest SRCPKGDEST=/srcpkgdest SRCDEST=/srcdest LOGDEST=/logdest \
@@ -203,17 +204,23 @@ _chrootbuild() {
ulimit -c 0
# Work around chroot-run not giving a ctty
# exec </dev/console
#exec </dev/console
. /etc/profile
export LANG=en_US.UTF-8
#export LANG=en_US.UTF-8
# workaround meson locale errors
# supposedly fixed with coming python-3.7
locale-gen &> /dev/null
#locale-gen &> /dev/null
sudo --preserve-env=SOURCE_DATE_EPOCH -iu builduser bash -c 'cd /startdir; makepkg "$@"' -bash "$@"
ret=$?
case $ret in
0|14) return 0;;
*) return $ret;;
esac
}
_chrootnamcap() {
@@ -234,10 +241,12 @@ download_sources() {
local builddir
builddir="$(mktemp -d)"
chmod 1777 "$builddir"
# chmod 1777 "$builddir"
chown "$makepkg_user:" "$builddir"
# Ensure sources are downloaded
sudo -u "$makepkg_user" env SRCDEST="$SRCDEST" BUILDDIR="$builddir" \
sudo -u "$makepkg_user" --preserve-env=GNUPGHOME \
env SRCDEST="$SRCDEST" BUILDDIR="$builddir" \
makepkg --config="$copydir/etc/makepkg.conf" --verifysource -o ||
die "Could not download sources."
@@ -329,7 +338,7 @@ main() {
[[ -n $makepkg_user && -z $(id -u "$makepkg_user") ]] && die 'Invalid makepkg user.'
makepkg_user=${makepkg_user:-${SUDO_USER:-$USER}}
check_root
check_root SOURCE_DATE_EPOCH,GNUPGHOME
# Canonicalize chrootdir, getting rid of trailing /
chrootdir=$(readlink -e "$passeddir")

93
bin/mkpkgclean.in Normal file
View File

@@ -0,0 +1,93 @@
#!/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@'
SYSCONFDIR='@sysconfdir@'
[[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh
import ${LIBDIR}/util.sh
prepare_clean(){
if [[ -n ${repository} ]];then
storage_dir=${repos_root}/${repository}/os/${target_arch}
paccache_args+=(-c "${storage_dir}" -k 1)
else
if [[ -n ${PKGDEST} ]];then
storage_dir=${PKGDEST}
paccache_args+=(-c "${storage_dir}" -k 4)
else
die "PKGDEST not set in makepkg.conf!"
fi
fi
}
display_settings(){
show_version
show_config
msg "OPTIONS:"
msg2 "repository: %s" "${repository}"
msg "PATH:"
msg2 "storage_dir: %s" "${storage_dir}"
msg "ARGS:"
msg2 "paccache_args: %s" "${paccache_args[*]}"
paccache "${paccache_args[@]}"
}
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
clean=false
pretend=false
repository=''
storage_dir=''
paccache_args=(-v)
usage() {
echo "Usage: ${0##*/} [options]"
echo " -d <dir> Directory [default:${repository}]"
echo ' -c Clean up'
echo ' -q Query settings and pretend cleaning'
echo ' -h This help'
echo ''
echo ''
exit $1
}
orig_argv=("$0" "$@")
opts='d:cqh'
while getopts "${opts}" arg; do
case "${arg}" in
d) repository="$OPTARG" ;;
c) clean=true ; paccache_args+=(-r) ;;
q) pretend=true; paccache_args+=(-d) ;;
h|?) usage 0 ;;
*) echo "invalid argument '${arg}'"; usage 1 ;;
esac
done
shift $(($OPTIND - 1))
prepare_clean
${pretend} && display_settings && exit 1
${clean} && paccache "${paccache_args[@]}"

View File

@@ -1,274 +0,0 @@
def ADD_REPO = ''
def RM_REPO = ''
def IS_ADD = 'false'
def IS_REMOVE = 'false'
def IS_BUILD = 'false'
def PKG_TRUNK = ''
def PKG_PATH = ''
pipeline {
agent any
options {
skipDefaultCheckout()
timestamps()
}
stages {
stage('Checkout') {
steps {
script {
checkout scm
def currentCommit = sh(returnStdout: true, script: 'git rev-parse @').trim()
echo "currentCommit: ${currentCommit}"
def changedFilesStatus = sh(returnStdout: true, script: "git show --pretty=format: --name-status ${currentCommit}").tokenize('\n')
def changedPkgStatus = []
def pkgPath = []
int entryCount = 0
for ( int i = 0; i < changedFilesStatus.size(); i++ ) {
def entry = changedFilesStatus[i].split()
def fileStatus = entry[0]
entryCount = entry.size()
for ( int j = 1; j < entry.size(); j++ ) {
if ( entry[j].contains('/PKGBUILD') && entry[j].contains('/repos') ){
changedPkgStatus << "${fileStatus} " + entry[j].minus('/PKGBUILD')
pkgPath << entry[j].minus('/PKGBUILD')
}
}
}
int pkgCount = changedPkgStatus.size()
int pkgPathCount = pkgPath.size()
echo "pkgCount: ${pkgCount}"
echo "entryCount: ${entryCount}"
echo "pkgPathCount: ${pkgPathCount}"
echo "changedPkgStatus: ${changedPkgStatus}"
if ( pkgCount > 0 ) {
if ( entryCount == 2 && pkgCount == 2 ) {
def pkgEntry1 = changedPkgStatus[0].split()
def pkgEntry2 = changedPkgStatus[1].split()
def srcPath = []
def pkgStatus = []
srcPath << pkgEntry1[1]
srcPath << pkgEntry2[1]
pkgStatus << pkgEntry1[0]
pkgStatus << pkgEntry2[0]
def buildInfo1 = srcPath[0].tokenize('/')
def buildInfo2 = srcPath[1].tokenize('/')
if ( pkgStatus[0] == "M" ) {
IS_ADD = 'true'
if ( srcPath[0].contains('community-testing') ) {
ADD_REPO = 'galaxy-gremlins'
} else if ( srcPath[0].contains('community-x86_64') || srcPath[0].contains('community-any') ) {
ADD_REPO = 'galaxy'
}
if ( srcPath[0].contains('multilib-testing') ) {
ADD_REPO = 'lib32-gremlins'
} else if ( srcPath[0].contains('multilib-x86_64') ) {
ADD_REPO = 'lib32'
}
} else if ( pkgStatus[1] == "M" ) {
IS_ADD = 'true'
if ( srcPath[1].contains('community-testing') ) {
ADD_REPO = 'galaxy-gremlins'
} else if ( srcPath[1].contains('community-x86_64') || srcPath[1].contains('community-any') ) {
ADD_REPO = 'galaxy'
}
if ( srcPath[1].contains('multilib-testing') ) {
ADD_REPO = 'lib32-gremlins'
} else if ( srcPath[1].contains('multilib-x86_64') ) {
ADD_REPO = 'lib32'
}
}
if ( pkgStatus[0] == "D" ) {
IS_REMOVE = 'true'
if ( srcPath[0].contains('community-testing') ) {
RM_REPO = 'galaxy-gremlins'
} else if ( srcPath[0].contains('community-x86_64') || srcPath[0].contains('community-any') ) {
RM_REPO = 'galaxy'
}
if ( srcPath[0].contains('multilib-testing') ) {
RM_REPO = 'lib32-gremlins'
} else if ( srcPath[0].contains('multilib-x86_64') ) {
RM_REPO = 'lib32'
}
} else if ( pkgStatus[1] == "D" ) {
IS_REMOVE = 'true'
if ( srcPath[1].contains('community-testing') ) {
RM_REPO = 'galaxy-gremlins'
} else if ( srcPath[1].contains('community-x86_64') || srcPath[1].contains('community-any') ) {
RM_REPO = 'galaxy'
}
if ( srcPath[1].contains('multilib-testing') ) {
RM_REPO = 'lib32-gremlins'
} else if ( srcPath[1].contains('multilib-x86_64') ) {
RM_REPO = 'lib32'
}
}
PKG_TRUNK = buildInfo1[0] + '/trunk'
}
if ( entryCount == 3 && pkgCount == 2 ) {
def pkgEntry = changedPkgStatus[0].split()
def pkgStatus = pkgEntry[0]
def buildInfo1 = pkgPath[0].tokenize('/')
def buildInfo2 = pkgPath[1].tokenize('/')
if ( pkgStatus.contains('R') ) {
IS_ADD = 'true'
IS_REMOVE = 'true'
if ( pkgPath[0].contains('community-staging') && pkgPath[1].contains('community-testing') ) {
ADD_REPO = 'galaxy-gremlins'
RM_REPO = 'galaxy-goblins'
} else if ( pkgPath[0].contains('community-testing') && pkgPath[1].contains('community-staging') ) {
ADD_REPO = 'galaxy-goblins'
RM_REPO = 'galaxy-gremlins'
}
if ( pkgPath[0].contains('community-testing') && pkgPath[1].contains('community-x86_64') || pkgPath[0].contains('community-any') ) {
ADD_REPO = 'galaxy-gremlins'
RM_REPO = 'galaxy'
} else if ( pkgPath[0].contains('community-x86_64') || pkgPath[0].contains('community-any') && pkgPath[1].contains('community-testing') ) {
ADD_REPO = 'galaxy'
RM_REPO = 'galaxy-gremlins'
}
if ( pkgPath[0].contains('multilib-staging') && pkgPath[1].contains('multilib-testing') ) {
ADD_REPO = 'lib32-gremlins'
RM_REPO = 'lib32-goblins'
} else if ( pkgPath[0].contains('multilib-testing') && pkgPath[1].contains('multilib-staging') ) {
ADD_REPO = 'lib32-goblins'
RM_REPO = 'lib32-gremlins'
}
if ( pkgPath[0].contains('multilib-testing') && pkgPath[1].contains('multilib-x86_64') ) {
ADD_REPO = 'lib32'
RM_REPO = 'lib32-gremlins'
} else if ( pkgPath[0].contains('multilib-x86_64') && pkgPath[1].contains('multilib-testing') ) {
ADD_REPO = 'lib32-gremlins'
RM_REPO = 'lib32'
}
}
PKG_TRUNK = buildInfo1[0] + '/trunk'
}
if ( pkgCount == 1 ) {
def pkgEntry = changedPkgStatus[0].split()
def pkgStatus = pkgEntry[0]
def srcPath = pkgEntry[1]
def buildInfo = srcPath.tokenize('/')
if ( srcPath.contains('community-staging') ) {
if ( pkgStatus == 'A' || pkgStatus == 'M' ) {
IS_BUILD = 'true'
}
if ( pkgStatus == 'D' ) {
IS_REMOVE = 'true'
}
ADD_REPO = 'galaxy-goblins'
RM_REPO = ADD_REPO
} else if ( srcPath.contains('community-testing') ) {
if ( pkgStatus == 'A' || pkgStatus == 'M' ) {
IS_BUILD = 'true'
}
if ( pkgStatus == 'D' ) {
IS_REMOVE = 'true'
}
ADD_REPO = 'galaxy-gremlins'
RM_REPO = ADD_REPO
} else if ( srcPath.contains('community-x86_64') || srcPath.contains('community-any') ) {
if ( pkgStatus == 'A' || pkgStatus == 'M' ) {
IS_BUILD = 'true'
}
if ( pkgStatus == 'D' ) {
IS_REMOVE = 'true'
}
ADD_REPO = 'galaxy'
RM_REPO = ADD_REPO
}
if ( srcPath.contains('multilib-staging') ) {
if ( pkgStatus == 'A' || pkgStatus == 'M' ) {
IS_BUILD = 'true'
}
if ( pkgStatus == 'D' ) {
IS_REMOVE = 'true'
}
ADD_REPO = 'lib32-goblins'
RM_REPO = ADD_REPO
} else if ( srcPath.contains('multilib-testing') ) {
if ( pkgStatus == 'A' || pkgStatus == 'M' ) {
IS_BUILD = 'true'
}
if ( pkgStatus == 'D' ) {
IS_REMOVE = 'true'
}
ADD_REPO = 'lib32-gremlins'
RM_REPO = ADD_REPO
} else if ( srcPath.contains('multilib-x86_64') ) {
if ( pkgStatus == 'A' || pkgStatus == 'M' ) {
IS_BUILD = 'true'
}
if ( pkgStatus == 'D' ) {
IS_REMOVE = 'true'
}
ADD_REPO = 'lib32'
RM_REPO = ADD_REPO
}
PKG_PATH = srcPath
PKG_TRUNK = buildInfo[0] + '/trunk'
}
}
}
}
}
stage('Build') {
environment {
BUILDBOT_GPGP = credentials('BUILDBOT_GPGP')
}
when {
expression { return IS_BUILD == 'true' }
}
steps {
dir("${PKG_PATH}") {
sh "buildpkg -r ${ADD_REPO}"
}
}
post {
success {
dir("${PKG_PATH}") {
sh "deploypkg -a -d ${ADD_REPO} -s"
}
}
}
}
stage('Add') {
when {
expression { return IS_ADD == 'true' }
}
steps {
dir("${PKG_TRUNK}") {
sh "deploypkg -a -d ${ADD_REPO}"
}
}
}
stage('Remove') {
when {
expression { return IS_REMOVE == 'true' }
}
steps {
dir("${PKG_TRUNK}") {
sh "deploypkg -r -d ${RM_REPO}"
}
}
}
}
}

View File

@@ -1,241 +0,0 @@
def ADD_REPO = ''
def RM_REPO = ''
def IS_ADD = 'false'
def IS_REMOVE = 'false'
def IS_BUILD = 'false'
def PKG_TRUNK = ''
def PKG_PATH = ''
pipeline {
agent any
options {
skipDefaultCheckout()
timestamps()
}
stages {
stage('Checkout') {
steps {
script {
checkout scm
def currentCommit = sh(returnStdout: true, script: 'git rev-parse @').trim()
echo "currentCommit: ${currentCommit}"
def changedFilesStatus = sh(returnStdout: true, script: "git show --pretty=format: --name-status ${currentCommit}").tokenize('\n')
def changedPkgStatus = []
def pkgPath = []
int entryCount = 0
for ( int i = 0; i < changedFilesStatus.size(); i++ ) {
def entry = changedFilesStatus[i].split()
def fileStatus = entry[0]
entryCount = entry.size()
for ( int j = 1; j < entry.size(); j++ ) {
if ( entry[j].contains('/PKGBUILD') && entry[j].contains('/repos') ){
changedPkgStatus << "${fileStatus} " + entry[j].minus('/PKGBUILD')
pkgPath << entry[j].minus('/PKGBUILD')
}
}
}
int pkgCount = changedPkgStatus.size()
int pkgPathCount = pkgPath.size()
echo "pkgCount: ${pkgCount}"
echo "entryCount: ${entryCount}"
echo "pkgPathCount: ${pkgPathCount}"
echo "changedPkgStatus: ${changedPkgStatus}"
if ( pkgCount > 0 ) {
if ( entryCount == 2 && pkgCount == 2 ) {
def pkgEntry1 = changedPkgStatus[0].split()
def pkgEntry2 = changedPkgStatus[1].split()
def srcPath = []
def pkgStatus = []
srcPath << pkgEntry1[1]
srcPath << pkgEntry2[1]
pkgStatus << pkgEntry1[0]
pkgStatus << pkgEntry2[0]
def buildInfo1 = srcPath[0].tokenize('/')
def buildInfo2 = srcPath[1].tokenize('/')
if ( pkgStatus[0] == 'M' ) {
IS_ADD = 'true'
if ( srcPath[0].contains('testing') ) {
ADD_REPO = 'gremlins'
} else if ( srcPath[0].contains('core') ) {
ADD_REPO = 'system'
} else if ( srcPath[0].contains('extra') ) {
ADD_REPO = 'world'
}
} else if ( pkgStatus[1] == 'M' ) {
IS_ADD = 'true'
if ( srcPath[1].contains('testing') ) {
ADD_REPO = 'gremlins'
} else if ( srcPath[1].contains('core') ) {
ADD_REPO = ''
} else if ( srcPath[1].contains('extra') ) {
ADD_REPO = 'world'
}
}
if ( pkgStatus[0] == 'D' ) {
IS_REMOVE = 'true'
if ( srcPath[0].contains('testing') ) {
RM_REPO = 'gremlins'
} else if ( srcPath[0].contains('core') ) {
RM_REPO = 'system'
} else if ( srcPath[0].contains('extra') ) {
RM_REPO = 'world'
}
} else if ( pkgStatus[1] == 'D' ) {
IS_REMOVE = 'true'
if ( srcPath[1].contains('testing') ) {
RM_REPO = 'gremlins'
} else if ( srcPath[1].contains('core') ) {
RM_REPO = 'system'
} else if ( srcPath[1].contains('extra') ) {
RM_REPO = 'world'
}
}
PKG_TRUNK = buildInfo1[0] + '/trunk'
}
if ( entryCount == 3 && pkgCount == 2 ) {
def pkgEntry = changedPkgStatus[0].split()
def pkgStatus = pkgEntry[0]
def buildInfo1 = pkgPath[0].tokenize('/')
def buildInfo2 = pkgPath[1].tokenize('/')
if ( pkgStatus.contains('R') ) {
IS_ADD = 'true'
IS_REMOVE = 'true'
if ( pkgPath[0].contains('staging') && pkgPath[1].contains('testing') ) {
ADD_REPO = 'gremlins'
RM_REPO = 'goblins'
} else if ( pkgPath[0].contains('testing') && pkgPath[1].contains('staging') ) {
ADD_REPO = 'goblins'
RM_REPO = 'gremlins'
}
if ( pkgPath[0].contains('core') && pkgPath[1].contains('testing')) {
ADD_REPO = 'gremlins'
RM_REPO = 'system'
} else if ( pkgPath[0].contains('testing') && pkgPath[1].contains('core')) {
ADD_REPO = 'system'
RM_REPO = 'gremlins'
}
if ( pkgPath[0].contains('extra') && pkgPath[1].contains('testing')) {
ADD_REPO = 'gremlins'
RM_REPO = 'world'
} else if ( pkgPath[0].contains('testing') && pkgPath[1].contains('extra')) {
ADD_REPO = 'world'
RM_REPO = 'gremlins'
}
if ( pkgPath[0].contains('core') && pkgPath[1].contains('extra')) {
ADD_REPO = 'world'
RM_REPO = 'system'
} else if ( pkgPath[0].contains('extra') && pkgPath[1].contains('core')) {
ADD_REPO = 'system'
RM_REPO = 'world'
}
}
PKG_TRUNK = buildInfo1[0] + '/trunk'
}
if ( pkgCount == 1 ) {
def pkgEntry = changedPkgStatus[0].split()
def pkgStatus = pkgEntry[0]
def srcPath = pkgEntry[1]
def buildInfo = srcPath.tokenize('/')
if ( srcPath.contains('staging') ) {
if ( pkgStatus == 'A' || pkgStatus == 'M' ) {
IS_BUILD = 'true'
}
if ( pkgStatus == 'D' ) {
IS_REMOVE = 'true'
}
ADD_REPO = 'goblins'
RM_REPO = ADD_REPO
} else if ( srcPath.contains('testing') ) {
if ( pkgStatus == 'A' || pkgStatus == 'M' ) {
IS_BUILD = 'true'
}
if ( pkgStatus == 'D' ) {
IS_REMOVE = 'true'
}
ADD_REPO = 'gremlins'
RM_REPO = ADD_REPO
} else if ( srcPath.contains('core') ) {
if ( pkgStatus == 'A' || pkgStatus == 'M' ) {
IS_BUILD = 'true'
}
if ( pkgStatus == 'D' ) {
IS_REMOVE = 'true'
}
ADD_REPO = 'system'
RM_REPO = ADD_REPO
} else if ( srcPath.contains('extra') ) {
if ( pkgStatus == 'A' || pkgStatus == 'M' ) {
IS_BUILD = 'true'
}
if ( pkgStatus == 'D' ) {
IS_REMOVE = 'true'
}
ADD_REPO = 'world'
RM_REPO = ADD_REPO
}
PKG_PATH = srcPath
PKG_TRUNK = buildInfo[0] + '/trunk'
}
}
}
}
}
stage('Build') {
environment {
BUILDBOT_GPGP = credentials('BUILDBOT_GPGP')
}
when {
expression { return IS_BUILD == 'true' }
}
steps {
dir("${PKG_PATH}") {
sh "buildpkg -r ${ADD_REPO}"
}
}
post {
success {
dir("${PKG_PATH}") {
sh "deploypkg -a -d ${ADD_REPO} -s"
}
}
}
}
stage('Add') {
when {
expression { return IS_ADD == 'true' }
}
steps {
dir("${PKG_TRUNK}") {
sh "deploypkg -a -d ${ADD_REPO}"
}
}
}
stage('Remove') {
when {
expression { return IS_REMOVE == 'true' }
}
steps {
dir("${PKG_TRUNK}") {
sh "deploypkg -r -d ${RM_REPO}"
}
}
}
}
}

View File

@@ -12,7 +12,10 @@
################ artools-pkg ################
#############################################
# host_tree_artix='https://github.com/artix-linux'
# git user access token
# git_token=''
# host_tree_artix='gitea@gitea.artixlinux.org:artix'
# host_tree_arch=git://projects.archlinux.org/svntogit
@@ -33,10 +36,7 @@
# initsys="openrc"
# unset defaults to given value
# kernel="linux-lts"
# custom additional kernel args
# kernel_args=""
# kernel="linux"
# gpg key; leave empty or commented to skip sfs signing
# gpgkey=""

View File

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

View File

@@ -1,84 +0,0 @@
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
>openrc opentmpfiles
os-prober
pacman
pciutils
pcmciautils
perl
procps-ng
psmisc
reiserfsprogs
sed
shadow
s-nail
sudo
sysfsutils
tar
texinfo
usbutils
util-linux
which
efibootmgr
xfsprogs
zd1211-firmware
zsh

View File

@@ -1,49 +0,0 @@
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

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

View File

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

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

View File

@@ -1,6 +0,0 @@
#%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

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

View File

@@ -1,27 +0,0 @@
################ install ################
# default displaymanager: none
# supported; lightdm, sddm, gdm, lxdm, mdm
# displaymanager="none"
# Set to false to disable autologin in the livecd
# autologin="true"
# service runlevels
# services=('acpid' 'bluetooth' 'cronie' 'cupsd' 'dbus' 'syslog-ng' 'NetworkManager')
# default values
# addgroups="video,power,storage,optical,network,lp,scanner,wheel,users"
# netgroups_url="https://raw.githubusercontent.com/artix-linux/netgroups/master"
################# live-session #################
# default value
# hostname="artix"
# default value
# username="artix"
# default value
# password="artix"

View File

@@ -1,3 +1,4 @@
#!/hint/bash
#
# /etc/makepkg.conf
#
@@ -8,9 +9,10 @@
#
#-- 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'
DLAGENTS=('file::/usr/bin/curl -gqC - -o %o %u'
'ftp::/usr/bin/curl -gqfC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u'
'http::/usr/bin/curl -gqb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
'https::/usr/bin/curl -gqb "" -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')
@@ -34,8 +36,6 @@ 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"
@@ -50,7 +50,7 @@ DEBUG_CXXFLAGS="-g -fvar-tracking-assignments"
# BUILD ENVIRONMENT
#########################################################################
#
# Defaults: BUILDENV=(!distcc color !ccache check !sign)
# 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
@@ -73,7 +73,7 @@ BUILDENV=(!distcc color !ccache check !sign)
# These are default values for the options=() settings
#########################################################################
#
# Default: OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !optipng !upx !debug)
# Default: OPTIONS=(!strip docs libtool staticlibs emptydirs !zipman !purge !debug)
# A negated option will do the opposite of the comments below.
#
#-- strip: Strip symbols from binaries/libraries
@@ -83,11 +83,9 @@ BUILDENV=(!distcc color !ccache check !sign)
#-- 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)
OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !debug)
#-- File integrity checks to use. Valid: md5, sha1, sha256, sha384, sha512
INTEGRITY_CHECK=(md5)
@@ -103,6 +101,8 @@ MAN_DIRS=({usr{,/local}{,/share},opt/*}/{man,info})
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)
#-- Directory to store source code in for debug packages
DBGSRCDIR="/usr/src/debug"
#########################################################################
# PACKAGE OUTPUT
@@ -143,5 +143,3 @@ COMPRESSZ=(compress -c -f)
#
PKGEXT='.pkg.tar.xz'
SRCEXT='.src.tar.gz'
# vim: set ft=sh ts=2 sw=2 et:

View File

@@ -1,51 +0,0 @@
extra/python-appdirs
extra/python-beaker
extra/python-mako
extra/python-markupsafe
extra/python-packaging
extra/python-pyparsing
extra/libmp4v2
extra/libmpdclient
extra/audiofile
extra/libid3tag
extra/idnkit
extra/neon
extra/sbc
extra/enchant
extra/chromaprint
extra/ttf-liberation
extra/ethtool
extra/pygobject2-devel
extra/python2-gobject2
extra/faac
extra/mjpegtools
extra/mpg123
extra/serf
extra/tinycdb
extra/js
extra/speexdsp
extra/spandsp
extra/soundtouch
extra/gst-plugins-bad
extra/appstream-glib
extra/opencl-headers
# openrc-world deps
extra/metalog
extra/clamav
extra/lighttpd
extra/dnsmasq
extra/postgresql-libs
extra/postfix
extra/wicd
extra/cyrus-sasl
extra/mpd
extra/bitlbee
extra/bind
extra/lirc
extra/sane
extra/transmission-cli

View File

@@ -1,5 +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)
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 filesystems keyboard keymap)
COMPRESSION="xz"

View File

@@ -44,7 +44,7 @@ LocalFileSigLevel = Optional
# 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`.
# packagers with `pacman-key --populate archlinux artix`.
#
# REPOSITORIES
@@ -63,6 +63,14 @@ LocalFileSigLevel = Optional
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#
# The gremlins repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.
#[gremlins]
#Include = /etc/pacman.d/mirrorlist
[system]
Include = /etc/pacman.d/mirrorlist
@@ -70,15 +78,45 @@ Include = /etc/pacman.d/mirrorlist
[world]
Include = /etc/pacman.d/mirrorlist
#[galaxy-gremlins]
#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-gremlins]
#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
#
# ARCHLINUX
#
#[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

@@ -44,7 +44,7 @@ LocalFileSigLevel = Optional
# 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`.
# packagers with `pacman-key --populate archlinux artix`.
#
# REPOSITORIES
@@ -63,6 +63,11 @@ LocalFileSigLevel = Optional
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#
# The gremlins repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.
[goblins]
Include = /etc/pacman.d/mirrorlist
@@ -85,6 +90,24 @@ 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-goblins]
#Include = /etc/pacman.d/mirrorlist
#[lib32-gremlins]
#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
#
# ARCHLINUX
#
@@ -106,3 +129,12 @@ Include = /etc/pacman.d/mirrorlist-arch
[community]
Include = /etc/pacman.d/mirrorlist-arch
#[multilib-staging]
#Include = /etc/pacman.d/mirrorlist-arch
#[multilib-testing]
#Include = /etc/pacman.d/mirrorlist-arch
#[multilib]
#Include = /etc/pacman.d/mirrorlist-arch

View File

@@ -44,7 +44,7 @@ LocalFileSigLevel = Optional
# 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`.
# packagers with `pacman-key --populate archlinux artix`.
#
# REPOSITORIES
@@ -63,6 +63,11 @@ LocalFileSigLevel = Optional
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#
# The gremlins repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.
[gremlins]
Include = /etc/pacman.d/mirrorlist
@@ -79,6 +84,21 @@ 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-gremlins]
#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
#
# ARCHLINUX
#
@@ -94,3 +114,9 @@ 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

@@ -44,7 +44,7 @@ LocalFileSigLevel = Optional
# 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`.
# packagers with `pacman-key --populate archlinux artix`.
#
# REPOSITORIES
@@ -63,6 +63,11 @@ LocalFileSigLevel = Optional
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#
# The gremlins repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.
[goblins]
Include = /etc/pacman.d/mirrorlist
@@ -85,6 +90,9 @@ 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-goblins]
Include = /etc/pacman.d/mirrorlist
@@ -94,7 +102,13 @@ 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
#
# ARCHLINUX
#

View File

@@ -44,7 +44,7 @@ LocalFileSigLevel = Optional
# 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`.
# packagers with `pacman-key --populate archlinux artix`.
#
# REPOSITORIES
@@ -63,6 +63,11 @@ LocalFileSigLevel = Optional
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#
# The gremlins repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.
[gremlins]
Include = /etc/pacman.d/mirrorlist
@@ -79,13 +84,22 @@ 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-gremlins]
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
#
# ARCHLINUX
#

View File

@@ -44,7 +44,7 @@ LocalFileSigLevel = Optional
# 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`.
# packagers with `pacman-key --populate archlinux artix`.
#
# REPOSITORIES
@@ -63,6 +63,14 @@ LocalFileSigLevel = Optional
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#
# The gremlins repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.
#[gremlins]
#Include = /etc/pacman.d/mirrorlist
[system]
Include = /etc/pacman.d/mirrorlist
@@ -70,21 +78,45 @@ Include = /etc/pacman.d/mirrorlist
[world]
Include = /etc/pacman.d/mirrorlist
#[galaxy-gremlins]
#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-gremlins]
#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
#
# ARCHLINUX
#
#[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

@@ -1,38 +0,0 @@
qt5-base
qt5-xmlpatterns
qt5-x11extras
qt5-script
qt5-svg
qt5-serialport
qt5-serialbus
qt5-networkauth
qt5-imageformats
qt5-declarative
qt5-wayland
qt5-sensors
qt5-scxml
qt5-connectivity
qt5-graphicaleffects
qt5-gamepad
qt5-3d
qt5-canvas3d
qt5-datavis3d
qt5-charts
qt5-virtualkeyboard
qt5-location
qt5-multimedia
qt5-speech
qt5-quickcontrols
qt5-quickcontrols2
qt5-remoteobjects
qt5-webchannel
qt5-websockets
qt5-webglplugin
qt5-tools
qt5-translations
qt5-doc
qt5-examples
qt5-webengine
qt5-webview
qt5-webkit
pyqt5

31
initcpio/Makefile Normal file
View File

@@ -0,0 +1,31 @@
DIRMODE = -dm0755
MODE = -m0755
RM = rm -f
CPIOHOOKS = \
$(wildcard hooks/*)
CPIOINST = \
$(wildcard install/*)
SCRIPT = \
$(wildcard script/*)
install_initcpio:
install $(DIRMODE) $(DESTDIR)$(CPIODIR)/hooks
install $(MODE) $(CPIOHOOKS) $(DESTDIR)$(CPIODIR)/hooks
install $(DIRMODE) $(DESTDIR)$(CPIODIR)/install
install $(MODE) $(CPIOINST) $(DESTDIR)$(CPIODIR)/install
install $(MODE) $(SCRIPT) $(DESTDIR)$(CPIODIR)
uninstall_initcpio:
for f in $(notdir $(CPIOHOOKS)); do $(RM) $(DESTDIR)$(CPIODIR)/hooks/$$f; done
for f in $(notdir $(CPIOINST)); do $(RM) $(DESTDIR)$(CPIODIR)/install/$$f; done
for f in $(notdir $(SCRIPT)); do $(RM) $(DESTDIR)$(CPIODIR)/$$f; done
install: install_initcpio
uninstall: uninstall_initcpio
.PHONY: install uninstall

View File

@@ -32,6 +32,10 @@ _mnt_dmsnapshot() {
dmsetup create ${dm_snap_name} --table "0 ${ro_dev_size} snapshot ${ro_dev} ${rw_dev} ${cow_persistent} ${cow_chunksize}"
if [[ "${cow_persistent}" != "P" ]]; then
rm -f "/run/artix/cowspace/${cow_directory}/${img_name}.cow"
fi
_mnt_dev "/dev/mapper/${dm_snap_name}" "${mnt}" "-w" "defaults"
echo $(readlink -f /dev/mapper/${dm_snap_name}) >> /run/artix/used_block_devices
}

View File

@@ -7,16 +7,6 @@ build() {
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() {

View File

@@ -1,38 +0,0 @@
#!/bin/ash
# /oldroot depends on things inside /oldroot/run/miso...
mkdir /oldrun
mount -n --move /oldroot/run /oldrun
# Unmount all mounts now.
#umount $(mount | awk '$3 ~/^\/oldroot/ {print $3}' | sort -r)
umount $(mount | awk '$3 ~/^\/oldroot/ {if($3 != "/run/miso/bootmnt") print $3}' | sort -r)
# Remove all dm-snapshot devices.
dmsetup remove_all
# Remove all loopback devices.
for _lup in $(grep ^/dev/loop /oldrun/miso/used_block_devices | tac); do
if ! losetup -d ${_lup} 2> /dev/null; then
umount -d ${_lup}
fi
done
# Unmount the space used to store *.cow.
umount /oldrun/miso/cowspace
# Unmount boot device if needed (no copytoram=y used)
if [[ ! -d /oldrun/miso/copytoram ]]; then
if [[ -d /oldrun/miso/img_dev ]]; then
umount /oldrun/miso/img_dev
else
umount /oldrun/miso/bootmnt
fi
fi
# reboot / poweroff / halt, depending on the argument passed by init
# if something invalid is passed, we halt
case "$1" in
reboot|poweroff|halt) "$1" -f ;;
*) halt -f;;
esac

View File

@@ -8,26 +8,6 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
copy_mirrorlist(){
cp -a /etc/pacman.d/mirrorlist "$1/etc/pacman.d/"
}
copy_keyring(){
if [[ -d /etc/pacman.d/gnupg ]] && [[ ! -d $1/etc/pacman.d/gnupg ]]; then
cp -a /etc/pacman.d/gnupg "$1/etc/pacman.d/"
fi
}
create_min_fs(){
msg "Creating install root at %s" "$1"
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() {
[[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs ]]
}
@@ -47,30 +27,6 @@ subvolume_delete_recursive() {
return 0
}
default_locale(){
local action="$1" mnt="$2"
if [[ $action == "set" ]];then
if [[ ! -f "$mnt/etc/locale.gen.bak" ]];then
info "Setting locale ..."
mv "$mnt/etc/locale.gen" "$mnt/etc/locale.gen.bak"
printf '%s.UTF-8 UTF-8\n' en_US de_DE > "$mnt/etc/locale.gen"
echo 'LANG=en_US.UTF-8.UTF-8' > "$mnt/etc/locale.conf"
fi
elif [[ $action == "reset" ]];then
if [[ -f "$mnt/etc/locale.gen.bak" ]];then
info "Resetting locale ..."
mv "$mnt/etc/locale.gen.bak" "$mnt/etc/locale.gen"
rm "$mnt/etc/locale.conf"
fi
fi
}
default_mirror(){
local mnt="$1" mirror="$2"'/$repo/os/$arch'
[[ -f $mnt/etc/pacman.d/mirrorlist ]] && mv "$mnt"/etc/pacman.d/mirrorlist "$mnt"/etc/pacman.d/mirrorlist.bak
echo "Server = $mirror" > $mnt/etc/pacman.d/mirrorlist
}
# $1: chroot
kill_chroot_process(){
local prefix="$1" flink pid name

View File

@@ -19,7 +19,12 @@ prepare_initcpio(){
prepare_initramfs(){
local mnt="$1"
cp ${DATADIR}/mkinitcpio.conf $mnt/etc/mkinitcpio-${iso_name}.conf
cp ${DATADIR}/mkinitcpio.conf $mnt/etc/mkinitcpio-artix.conf
if [[ "${profile}" != 'base' ]];then
sed -e 's/artix_pxe_common artix_pxe_http artix_pxe_nbd artix_pxe_nfs //' -i $mnt/etc/mkinitcpio-artix.conf
fi
if [[ -n ${gpgkey} ]]; then
user_run "gpg --export ${gpgkey} >${AT_USERCONFDIR}/gpgkey"
exec 17<>${AT_USERCONFDIR}/gpgkey
@@ -27,7 +32,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-${iso_name}.conf \
-c /etc/mkinitcpio-artix.conf \
-g /boot/initramfs.img
if [[ -n ${gpgkey} ]]; then
@@ -40,25 +45,24 @@ prepare_initramfs(){
prepare_boot_extras(){
local src="$1" dest="$2"
# cp $src/boot/intel-ucode.img $dest/intel_ucode.img
# cp $src/usr/share/licenses/intel-ucode/LICENSE $dest/intel_ucode.LICENSE
# for u in intel amd;do
# cp $src/boot/$u-ucode.img $dest/$u-ucode.img
# cp $src/usr/share/licenses/$u-ucode/LICENSE $dest/$u-ucode.LICENSE
# done
cp $src/boot/memtest86+/memtest.bin $dest/memtest
cp $src/usr/share/licenses/common/GPL2/license.txt $dest/memtest.COPYING
}
configure_grub(){
local conf="$1"
sed -e "s|@arch@|${target_arch}|g" \
-e "s|@iso_label@|${iso_label}|" \
-e "s|@iso_name@|${iso_name}|g" \
-e "s|@kernel_args@|${kernel_args}|g" \
-i $conf
local conf="$1/boot/grub/kernels.cfg"
sed -e "s|@iso_label@|${iso_label}|" -i $conf
}
prepare_grub(){
local platform=i386-pc img='core.img' grub=$3/boot/grub efi=$3/efi/boot \
lib=$1/usr/lib/grub prefix=/boot/grub theme=$2/usr/share/grub data=$1/usr/share/grub
lib=$1/usr/lib/grub prefix=/boot/grub theme=$2/usr/share/grub
prepare_dir ${grub}/${platform}
@@ -72,16 +76,8 @@ prepare_grub(){
cat ${grub}/${platform}/cdboot.img ${grub}/${platform}/${img} > ${grub}/${platform}/eltorito.img
case ${target_arch} in
'i686')
platform=i386-efi
img=bootia32.efi
;;
'x86_64')
platform=x86_64-efi
img=bootx64.efi
;;
esac
platform=x86_64-efi
img=bootx64.efi
prepare_dir ${efi}
prepare_dir ${grub}/${platform}
@@ -93,10 +89,17 @@ prepare_grub(){
grub-mkimage -d ${grub}/${platform} -o ${efi}/${img} -O ${platform} -p ${prefix} iso9660
prepare_dir ${grub}/themes
cp -r ${theme}/themes/${iso_name} ${grub}/themes/
cp ${data}/unicode.pf2 ${grub}
cp -r ${theme}/themes/artix ${grub}/themes/
cp -r ${theme}/{locales,tz} ${grub}
if [[ -f /usr/share/grub/unicode.pf2 ]];then
msg2 "Copying %s ..." "unicode.pf2"
cp /usr/share/grub/unicode.pf2 ${grub}/unicode.pf2
else
msg2 "Creating %s ..." "unicode.pf2"
grub-mkfont -o ${grub}/unicode.pf2 /usr/share/fonts/misc/unifont.bdf
fi
local size=4M mnt="${mnt_dir}/efiboot" efi_img="$3/efi.img"
msg2 "Creating fat image of %s ..." "${size}"
truncate -s ${size} "${efi_img}"

View File

@@ -8,29 +8,34 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
init_profile(){
local profdir="$1" prof="$2"
root_list="$profdir/base/Packages-Root"
root_overlay="$profdir/base/root-overlay"
live_list="$profdir/base/Packages-Live"
live_overlay="$profdir/base/live-overlay"
[[ -f "$profdir/$prof/Packages-Root" ]] && root_list="$profdir/$prof/Packages-Root"
[[ -d "$profdir/$prof/root-overlay" ]] && root_overlay="$profdir/$prof/root-overlay"
[[ -f "$profdir/$prof/Packages-Desktop" ]] && desktop_list="$profdir/$prof/Packages-Desktop"
[[ -d "$profdir/$prof/desktop-overlay" ]] && desktop_overlay="$profdir/$prof/desktop-overlay"
[[ -f "$profdir/$prof/Packages-Live" ]] && live_list="$profdir/$prof/Packages-Live"
[[ -d "$profdir/$prof/live-overlay" ]] && live_overlay="$profdir/$prof/live-overlay"
}
load_profile(){
local prof="$1"
local profdir="${DATADIR}/iso-profiles/$prof"
[[ "$prof" != 'base' ]] && profdir=${workspace_dir}/iso-profiles/$prof
local profdir="${DATADIR}/iso-profiles"
[[ -d ${workspace_dir}/iso-profiles ]] && profdir=${workspace_dir}/iso-profiles
root_list="${DATADIR}/iso-profiles/base/Packages-Root"
[[ -f "$profdir/Packages-Root" ]] && root_list="$profdir/Packages-Root"
init_profile "$profdir" "$prof"
root_overlay="${DATADIR}/iso-profiles/base/root-overlay"
[[ -d "$profdir/root-overlay" ]] && root_overlay="$profdir/root-overlay"
[[ -f $profdir/$prof/profile.conf ]] || return 1
[[ -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
[[ -r $profdir/$prof/profile.conf ]] && source $profdir/$prof/profile.conf
[[ -z ${displaymanager} ]] && displaymanager="none"
@@ -44,20 +49,23 @@ load_profile(){
[[ -z ${password} ]] && password="artix"
if [[ -z ${addgroups} ]];then
addgroups="video,power,storage,optical,network,lp,scanner,wheel,users,audio"
addgroups="video,power,storage,optical,network,lp,scanner,wheel,users,log"
fi
if [[ -z ${services[@]} ]];then
services=('acpid' 'bluetooth' 'cronie' 'cupsd' 'dbus' 'syslog-ng' 'NetworkManager')
services=('acpid' 'bluetooth' 'cronie' 'cupsd' 'syslog-ng' 'NetworkManager')
fi
if [[ ${displaymanager} != "none" ]];then
case "${initsys}" in
'openrc') services+=('xdm') ;;
'runit') services+=("${displaymanager}") ;;
esac
fi
[[ ${displaymanager} != "none" ]] && services+=('xdm')
if [[ -z ${services_live[@]} ]];then
services_live=('artix-live' 'pacman-init')
fi
[[ -z ${netgroups_url} ]] && netgroups_url="https://raw.githubusercontent.com/artix-linux/netgroups/master"
return 0
}
@@ -83,7 +91,7 @@ write_live_session_conf(){
}
load_pkgs(){
local pkglist="$1" init="$2" _kv="$3"
local pkglist="$1" init="$2"
info "Loading Packages: [%s] ..." "${pkglist##*/}"
local _init="s|>$init||g"
@@ -94,7 +102,6 @@ load_pkgs(){
esac
local _blacklist="s|>blacklist.*||g" \
_kernel="s|KERNEL|$_kv|g" \
_space="s| ||g" \
_clean=':a;N;$!ba;s/\n/ /g' \
_com_rm="s|#.*||g"
@@ -106,6 +113,5 @@ load_pkgs(){
| sed "$_init" \
| sed "$_init_rm1" \
| sed "$_init_rm2" \
| sed "$_kernel" \
| sed "$_clean"))
}

View File

@@ -9,43 +9,6 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
write_bootloader_conf(){
local conf="$1/bootloader.conf"
msg2 "Writing %s ..." "${conf##*/}"
echo '---' > "$conf"
echo "efiBootLoader: \"grub\"" >> "$conf"
echo "kernel: \"/vmlinuz-$kernel-${target_arch}\"" >> "$conf"
echo "img: \"/initramfs-$kernel-${target_arch}.img\"" >> "$conf"
echo "fallback: \"/initramfs-$kernel-${target_arch}-fallback.img\"" >> "$conf"
echo 'timeout: "10"' >> "$conf"
echo "kernelLine: \", with ${kernel}\"" >> "$conf"
echo "fallbackKernelLine: \", with ${kernel} (fallback initramfs)\"" >> "$conf"
echo 'grubInstall: "grub-install"' >> "$conf"
echo 'grubMkconfig: "grub-mkconfig"' >> "$conf"
echo 'grubCfg: "/boot/grub/grub.cfg"' >> "$conf"
echo '#efiBootloaderId: "dirname"' >> "$conf"
}
write_servicescfg_conf(){
local conf="$1/servicescfg.conf"
msg2 "Writing %s ..." "${conf##*/}"
echo '---' > "$conf"
echo '' >> "$conf"
echo 'services:' >> "$conf"
echo ' enabled:' >> "$conf"
for s in ${services[@]};do
echo " - name: $s" >> "$conf"
echo ' runlevel: default' >> "$conf"
done
}
write_initcpio_conf(){
local conf="$1/initcpio.conf"
msg2 "Writing %s ..." "${conf##*/}"
echo "---" > "$conf"
echo "kernel: ${kernel}" >> "$conf"
}
write_users_conf(){
local conf="$1/users.conf"
msg2 "Writing %s ..." "${conf##*/}"
@@ -60,45 +23,63 @@ write_users_conf(){
echo "doAutologin: false" >> "$conf"
echo "sudoersGroup: wheel" >> "$conf"
echo "setRootPassword: true" >> "$conf"
echo "doReusePassword: false" >> "$conf" # only used in old 'users' module
# 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"
}
write_netinstall_conf(){
local conf="$1/netinstall.conf"
write_servicescfg_conf(){
local init="$2"
local conf="$1"/services-"$init".conf
msg2 "Writing %s ..." "${conf##*/}"
echo "---" > "$conf"
echo "groupsUrl: ${netgroups}" >> "$conf"
echo '---' > "$conf"
case "$init" in
'runit')
echo 'svDir: /etc/runit/sv' >> "$conf"
echo '' >> "$conf"
echo 'runsvDir: /etc/runit/runsvdir' >> "$conf"
echo '' >> "$conf"
echo 'services:' >> "$conf"
echo " enabled:" >> "$conf"
for svc in ${services[@]};do
echo " - name: $svc" >> "$conf"
echo ' runlevel: default' >> "$conf"
done
;;
'openrc')
echo 'initdDir: /etc/init.d' >> "$conf"
echo '' >> "$conf"
echo 'runlevelsDir: /etc/runlevels' >> "$conf"
echo '' >> "$conf"
echo 'services:' >> "$conf"
for svc in ${services[@]};do
echo " - name: $svc" >> "$conf"
echo ' runlevel: default' >> "$conf"
done
;;
esac
}
write_unpack_conf(){
local conf="$1/unpackfs.conf"
msg2 "Writing %s ..." "${conf##*/}"
echo "---" > "$conf"
echo "unpack:" >> "$conf"
echo " - source: \"/run/${iso_name}/bootmnt/${iso_name}/${target_arch}/rootfs.sfs\"" >> "$conf"
echo " sourcefs: \"squashfs\"" >> "$conf"
echo " destination: \"\"" >> "$conf"
if [[ -f "${desktop_list}" ]] ; then
echo " - source: \"/run/${iso_name}/bootmnt/${iso_name}/${target_arch}/desktopfs.sfs\"" >> "$conf"
echo " sourcefs: \"squashfs\"" >> "$conf"
echo " destination: \"\"" >> "$conf"
fi
write_postcfg_conf(){
local conf="$1/postcfg.conf" init="$2"
sed -e "s|openrc|$init|" -i "$conf"
}
write_netinstall_conf(){
local conf="$1/netinstall.conf" init="$2"
sed -e "s|netgroups-openrc.yaml|netgroups-$init.yaml|" -i "$conf"
}
configure_calamares(){
local dest="$1" mods="$1/etc/calamares/modules"
if [[ -d $dest/etc/calamares/modules ]];then
local mods="$1/etc/calamares/modules" init="$2"
if [[ -d "$mods" ]];then
info "Configuring [Calamares]"
write_netinstall_conf "$mods"
write_unpack_conf "$mods"
write_netinstall_conf "$mods" "$init"
write_users_conf "$mods"
write_initcpio_conf "$mods"
case ${initsys} in
'openrc') write_servicescfg_conf "$mods" ;;
esac
write_bootloader_conf "$mods"
write_servicescfg_conf "$mods" "$init"
write_postcfg_conf "$mods" "$init"
local name=services-"$init"
sed -e "s|services-openrc|$name|" -i "$1"/etc/calamares/settings.conf
info "Done configuring [Calamares]"
fi
}

View File

@@ -139,6 +139,14 @@ add_svc_rc(){
fi
}
add_svc_runit(){
local mnt="$1" name="$2"
if [[ -d $mnt/etc/runit/sv/$name ]]; then
msg2 "Setting %s ..." "$name"
chroot $mnt ln -s /etc/runit/sv/$name /etc/runit/runsvdir/default &>/dev/null
fi
}
set_xdm(){
if [[ -f $1/etc/conf.d/xdm ]];then
local conf='DISPLAYMANAGER="'${displaymanager}'"'
@@ -173,6 +181,14 @@ configure_services(){
add_svc_rc "$mnt" "$svc" "default"
done
;;
'runit')
for svc in ${services[@]}; do
add_svc_runit "$mnt" "$svc"
done
for svc in ${services_live[@]}; do
add_svc_runit "$mnt" "$svc"
done
;;
esac
info "Done configuring [%s]" "${initsys}"
}
@@ -180,7 +196,7 @@ configure_services(){
configure_system(){
local mnt="$1"
case ${initsys} in
'openrc')
'openrc' | 'runit')
configure_logind "$mnt" "elogind"
;;
esac
@@ -197,7 +213,10 @@ clean_up_image(){
local path mnt="$1"
msg2 "Cleaning [%s]" "${mnt##*/}"
default_locale "reset" "$mnt"
if [[ -f "$mnt/etc/locale.gen.orig" ]];then
mv "$mnt/etc/locale.gen.orig" "$mnt/etc/locale.gen"
rm "$mnt/etc/locale.conf"
fi
path=$mnt/boot
if [[ -d "$path" ]]; then
find "$path" -name 'initramfs*.img' -delete &> /dev/null
@@ -242,7 +261,7 @@ configure_live_image(){
configure_hosts "$fs"
configure_system "$fs"
configure_services "$fs"
configure_calamares "$fs"
configure_calamares "$fs" "${initsys}"
write_live_session_conf "$fs"
msg "Done configuring [livefs]"
}
@@ -272,7 +291,7 @@ make_sfs() {
error "The path %s does not exist" "${src}"
retrun 1
fi
local timer=$(get_timer) dest=${iso_root}/${iso_name}/${target_arch}
local timer=$(get_timer) dest=${iso_root}/artix/${target_arch}
local name=${1##*/}
local sfs="${dest}/${name}.sfs"
mkdir -p ${dest}
@@ -385,9 +404,9 @@ make_iso() {
}
gen_iso_fn(){
local vars=() name
vars+=("${iso_name}")
local vars=("artix") name
vars+=("${profile}")
[[ ${initsys} == 'runit' ]] && vars+=("${initsys}")
vars+=("${iso_version}")
vars+=("${target_arch}")
for n in ${vars[@]};do
@@ -505,7 +524,7 @@ make_grub(){
prepare_grub "${work_dir}/rootfs" "${work_dir}/livefs" "${iso_root}"
configure_grub "${iso_root}/boot/grub/kernels.cfg"
configure_grub "${iso_root}"
: > ${work_dir}/grub.lock
msg "Done [/iso/boot/grub]"
@@ -521,14 +540,14 @@ compress_images(){
prepare_images(){
local timer=$(get_timer)
load_pkgs "${root_list}" "${initsys}" "${kernel}"
load_pkgs "${root_list}" "${initsys}"
run_safe "make_rootfs"
if [[ -f "${desktop_list}" ]] ; then
load_pkgs "${desktop_list}" "${initsys}" "${kernel}"
load_pkgs "${desktop_list}" "${initsys}"
run_safe "make_desktopfs"
fi
if [[ -f ${live_list} ]]; then
load_pkgs "${live_list}" "${initsys}" "${kernel}"
load_pkgs "${live_list}" "${initsys}"
run_safe "make_livefs"
fi
run_safe "make_bootfs"

View File

@@ -45,44 +45,100 @@ chroot_part_mount() {
}
select_os(){
local os_list=( $(detect) ) count=${#os_list[@]}
local os_list=( $(detect) ) count=${#os_list[@]}
if [[ ${count} > 1 ]];then
msg "Detected systems:"
local i=0
for os in ${os_list[@]};do
msg "Detected systems:"
local i=0
for os in ${os_list[@]};do
local last=${os##*:}
case $last in
'efi') count=$((count-1)) ;;
*) info "$i) $(get_os_name $os)"; i=$((i+1)) ;;
esac
done
i=0
done
i=0
msg "Select system to mount [0-%s] : " "$((count-1))"
read select
else
read select
else
select=0
fi
local os_str=${os_list[$select]} type
type=$os_str
root=${os_str%%:*}
type=${type##*:}
if [[ "${type##*:}" == 'linux' ]];then
if [[ "${type##*:}" == 'linux' ]];then
msg "Mounting (%s) [%s]" "$(get_os_name $os_str)" "$root"
chroot_mount_partitions "$1" "$root"
else
die "You can't mount %s!" "$select"
fi
mount_os "$1" "$root"
else
die "You can't mount %s!" "$select"
fi
}
chroot_mount_partitions(){
trap_setup(){
[[ $(trap -p EXIT) ]] && die 'Error! Attempting to overwrite existing EXIT trap'
trap "$1" EXIT
}
chroot_mount() {
info "mount: [%s]" "$2"
mount "$@" && CHROOT_ACTIVE_MOUNTS=("$2" "${CHROOT_ACTIVE_MOUNTS[@]}")
}
chroot_add_resolv_conf() {
local chrootdir=$1 resolv_conf=$1/etc/resolv.conf
[[ -e /etc/resolv.conf ]] || return 0
# Handle resolv.conf as a symlink to somewhere else.
if [[ -L $chrootdir/etc/resolv.conf ]]; then
# readlink(1) should always give us *something* since we know at this point
# it's a symlink. For simplicity, ignore the case of nested symlinks.
resolv_conf=$(readlink "$chrootdir/etc/resolv.conf")
if [[ $resolv_conf = /* ]]; then
resolv_conf=$chrootdir$resolv_conf
else
resolv_conf=$chrootdir/etc/$resolv_conf
fi
# ensure file exists to bind mount over
if [[ ! -f $resolv_conf ]]; then
install -Dm644 /dev/null "$resolv_conf" || return 1
fi
elif [[ ! -e $chrootdir/etc/resolv.conf ]]; then
# The chroot might not have a resolv.conf.
return 0
fi
chroot_mount /etc/resolv.conf "$resolv_conf" --bind
}
chroot_mount_conditional() {
local cond=$1; shift
if eval "$cond"; then
chroot_mount "$@"
fi
}
chroot_setup(){
chroot_mount_conditional "! mountpoint -q '$1'" "$1" "$1" --bind &&
chroot_mount proc "$1/proc" -t proc -o nosuid,noexec,nodev &&
chroot_mount sys "$1/sys" -t sysfs -o nosuid,noexec,nodev,ro &&
ignore_error chroot_mount_conditional "[[ -d '$1/sys/firmware/efi/efivars' ]]" \
efivarfs "$1/sys/firmware/efi/efivars" -t efivarfs -o nosuid,noexec,nodev &&
chroot_mount udev "$1/dev" -t devtmpfs -o mode=0755,nosuid &&
chroot_mount devpts "$1/dev/pts" -t devpts -o mode=0620,gid=5,nosuid,noexec &&
chroot_mount shm "$1/dev/shm" -t tmpfs -o mode=1777,nosuid,nodev &&
chroot_mount run "$1/run" -t tmpfs -o nosuid,nodev,mode=0755 &&
chroot_mount tmp "$1/tmp" -t tmpfs -o mode=1777,strictatime,nodev,nosuid
}
mount_os(){
CHROOT_ACTIVE_PART_MOUNTS=()
CHROOT_ACTIVE_MOUNTS=()
[[ $(trap -p EXIT) ]] && die 'Error! Attempting to overwrite existing EXIT trap'
trap 'trap_handler' EXIT
trap_setup chroot_part_umount
chroot_part_mount $2 $1
chroot_part_mount "$2" "$1"
local mounts=$(parse_fstab "$1")
@@ -105,82 +161,26 @@ chroot_mount_partitions(){
;;
esac
chroot_mount_conditional "! mountpoint -q '$1'" "$1" "$1" --bind &&
chroot_mount proc "$1/proc" -t proc -o nosuid,noexec,nodev &&
chroot_mount sys "$1/sys" -t sysfs -o nosuid,noexec,nodev,ro &&
ignore_error chroot_mount_conditional "[[ -d '$1/sys/firmware/efi/efivars' ]]" \
efivarfs "$1/sys/firmware/efi/efivars" -t efivarfs -o nosuid,noexec,nodev &&
chroot_mount udev "$1/dev" -t devtmpfs -o mode=0755,nosuid &&
chroot_mount devpts "$1/dev/pts" -t devpts -o mode=0620,gid=5,nosuid,noexec &&
chroot_mount shm "$1/dev/shm" -t tmpfs -o mode=1777,nosuid,nodev &&
chroot_mount run "$1/run" -t tmpfs -o nosuid,nodev,mode=0755 &&
chroot_mount tmp "$1/tmp" -t tmpfs -o mode=1777,strictatime,nodev,nosuid
chroot_mount /etc/resolv.conf "$1/etc/resolv.conf" --bind
}
chroot_mount() {
#info "mount: [%s]" "$2"
mount "$@" && CHROOT_ACTIVE_MOUNTS=("$2" "${CHROOT_ACTIVE_MOUNTS[@]}")
}
chroot_mount_conditional() {
local cond=$1; shift
if eval "$cond"; then
chroot_mount "$@"
fi
}
chroot_api_efi_mount() {
CHROOT_ACTIVE_MOUNTS=()
[[ $(trap -p EXIT) ]] && die 'Error! Attempting to overwrite existing EXIT trap'
trap 'chroot_api_efi_umount' EXIT
chroot_mount_conditional "! mountpoint -q '$1'" "$1" "$1" --bind &&
chroot_mount proc "$1/proc" -t proc -o nosuid,noexec,nodev &&
chroot_mount sys "$1/sys" -t sysfs -o nosuid,noexec,nodev,ro &&
ignore_error chroot_mount_conditional "[[ -d '$1/sys/firmware/efi/efivars' ]]" \
efivarfs "$1/sys/firmware/efi/efivars" -t efivarfs -o nosuid,noexec,nodev &&
chroot_mount udev "$1/dev" -t devtmpfs -o mode=0755,nosuid &&
chroot_mount devpts "$1/dev/pts" -t devpts -o mode=0620,gid=5,nosuid,noexec &&
chroot_mount shm "$1/dev/shm" -t tmpfs -o mode=1777,nosuid,nodev &&
chroot_mount run "$1/run" -t tmpfs -o nosuid,nodev,mode=0755 &&
chroot_mount tmp "$1/tmp" -t tmpfs -o mode=1777,strictatime,nodev,nosuid
chroot_setup "$1"
chroot_add_resolv_conf "$1"
}
chroot_api_mount() {
CHROOT_ACTIVE_MOUNTS=()
[[ $(trap -p EXIT) ]] && die 'Error! Attempting to overwrite existing EXIT trap'
trap 'chroot_api_umount' EXIT
chroot_mount_conditional "! mountpoint -q '$1'" "$1" "$1" --bind &&
chroot_mount proc "$1/proc" -t proc -o nosuid,noexec,nodev &&
chroot_mount sys "$1/sys" -t sysfs -o nosuid,noexec,nodev,ro &&
chroot_mount udev "$1/dev" -t devtmpfs -o mode=0755,nosuid &&
chroot_mount devpts "$1/dev/pts" -t devpts -o mode=0620,gid=5,nosuid,noexec &&
chroot_mount shm "$1/dev/shm" -t tmpfs -o mode=1777,nosuid,nodev &&
chroot_mount run "$1/run" -t tmpfs -o nosuid,nodev,mode=0755 &&
chroot_mount tmp "$1/tmp" -t tmpfs -o mode=1777,strictatime,nodev,nosuid
trap_setup chroot_api_umount
chroot_setup "$1"
}
chroot_part_umount() {
info "umount: [%s]" "${CHROOT_ACTIVE_MOUNTS[@]}"
umount "${CHROOT_ACTIVE_MOUNTS[@]}"
info "umount: [%s]" "${CHROOT_ACTIVE_PART_MOUNTS[@]}"
umount "${CHROOT_ACTIVE_PART_MOUNTS[@]}"
unset CHROOT_ACTIVE_PART_MOUNTS
unset CHROOT_ACTIVE_PART_MOUNTS CHROOT_ACTIVE_MOUNTS
}
chroot_api_umount() {
#info "umount: [%s]" "${CHROOT_ACTIVE_MOUNTS[@]}"
info "umount: [%s]" "${CHROOT_ACTIVE_MOUNTS[@]}"
umount "${CHROOT_ACTIVE_MOUNTS[@]}"
unset CHROOT_ACTIVE_MOUNTS
}
chroot_api_efi_umount() {
#info "umount: [%s]" "${CHROOT_ACTIVE_MOUNTS[@]}"
umount "${CHROOT_ACTIVE_MOUNTS[@]}"
unset CHROOT_ACTIVE_MOUNTS
}
trap_handler(){
chroot_api_umount
chroot_part_umount
}

59
lib/util-pkg-gitea.sh Normal file
View File

@@ -0,0 +1,59 @@
#!/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.
get_compliant_name(){
local gitname="$1"
case $gitname in
*+) gitname=${gitname//+/plus}
esac
echo $gitname
}
create_repo(){
local pkg="$1"
local gitname=$(get_compliant_name "$pkg")
curl -X POST "${git_url}/api/v1/org/packages/repos?access_token=${git_token}" -H "accept: application/json" -H "content-type: application/json" -d "{ \"auto_init\": true, \"name\":\"$gitname\", \"readme\": \"Default\" }"
}
delete_repo(){
local pkg="$1"
local gitname=$(get_compliant_name "$pkg")
curl -X DELETE "${git_url}/api/v1/repos/packages/$gitname?access_token=${git_token}" -H "accept: application/json"
}
find_team(){
local pkg="$1" team_id=
if [[ -f $pkg/repos/core-x86_64/PKGBUILD ]];then
team_id=18
elif [[ -f $pkg/repos/core-any/PKGBUILD ]];then
team_id=18
elif [[ -f $pkg/repos/extra-x86_64/PKGBUILD ]];then
team_id=19
elif [[ -f $pkg/repos/extra-any/PKGBUILD ]];then
team_id=19
elif [[ -f $pkg/repos/community-x86_64/PKGBUILD ]];then
team_id=20
elif [[ -f $pkg/repos/community-any/PKGBUILD ]];then
team_id=20
elif [[ -f $pkg/repos/multilib-x86_64/PKGBUILD ]];then
team_id=21
fi
echo $team_id
}
add_repo_to_team(){
local pkg="$1" path="$2"
local id=$(find_team "$path")
curl -X PUT "${git_url}/api/v1/teams/$id/repos/packages/$pkg?access_token=${git_token}" -H "accept: application/json"
}

30
lib/util-pkg-subrepo.sh Normal file
View File

@@ -0,0 +1,30 @@
#!/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.
subrepo_init(){
local pkg="$1"
git subrepo init $pkg -r gitea@${git_domain}:packages/$pkg.git -b master
}
subrepo_push(){
local pkg="$1"
git subrepo push -u "$pkg" -b master
}
subrepo_pull(){
local pkg="$1" name="${2:-$1}"
git subrepo pull "$pkg" -b master -r gitea@${git_domain}:packages/$name.git -u
}
subrepo_clone(){
local pkg="$1" name="${2:-$1}"
git subrepo clone gitea@gitea.artixlinux.org:packages/$pkg.git "$name" -b master
}

View File

@@ -35,7 +35,7 @@ patch_pkg(){
-e '/nscd.service/d' \
-i $pkg/trunk/PKGBUILD
;;
'tp_smapi'|'acpi_call'|'r8168'|'bbswitch')
'tp_smapi'|'acpi_call'|'r8168'|'bbswitch'|'broadcom-wl')
sed -e 's|-ARCH|-ARTIX|g' -i $pkg/trunk/PKGBUILD
;;
'nvidia')
@@ -45,8 +45,8 @@ patch_pkg(){
;;
'linux')
sed -e 's|-ARCH|-ARTIX|g' -i $pkg/trunk/PKGBUILD
sed -e 's|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION="-ARTIX"|' \
-e 's|CONFIG_DEFAULT_HOSTNAME=.*|CONFIG_DEFAULT_HOSTNAME="artixlinux"|' \
sed -e 's|CONFIG_DEFAULT_HOSTNAME=.*|CONFIG_DEFAULT_HOSTNAME="artixlinux"|' \
-e 's|CONFIG_CRYPTO_SPECK=.*|CONFIG_CRYPTO_SPECK=n|' \
-i $pkg/trunk/config
cd $pkg/trunk
updpkgsums
@@ -68,9 +68,22 @@ patch_pkg(){
updpkgsums
cd ../..
;;
gstreamer|gst-plugins-*)
sed -e 's|https://www.archlinux.org/|https://www.artixlinux.org/|' \
-e 's|(Arch Linux)|(Artix Linux)|' \
-i $pkg/trunk/PKGBUILD
;;
esac
}
write_jenkinsfile(){
local pkg="$1" jenkins=Jenkinsfile
echo '@Library(["PackagePipeline", "BuildPkg", "DeployPkg", "Notify", "PostBuild", "RepoPackage"]) import org.artixlinux.RepoPackage' > $pkg/$jenkins
echo '' >> $pkg/$jenkins
echo 'PackagePipeline(new RepoPackage(this))' >> $pkg/$jenkins
echo '' >> $pkg/$jenkins
}
find_tree(){
local tree="$1" pkg="$2"
local result=$(find $tree -mindepth 2 -maxdepth 2 -type d -name "$pkg")
@@ -119,62 +132,81 @@ is_valid_repo(){
}
find_repo(){
local pkg="$1" repo=
local pkg="$1" unst="$2" stag="$3" repo=
if [[ -d $pkg/repos/core-x86_64 ]];then
if [[ -f $pkg/repos/core-x86_64/PKGBUILD ]];then
repo=core-x86_64
elif [[ -d $pkg/repos/core-any ]];then
elif [[ -f $pkg/repos/core-any/PKGBUILD ]];then
repo=core-any
fi
if [[ -d $pkg/repos/extra-x86_64 ]];then
if [[ -f $pkg/repos/extra-x86_64/PKGBUILD ]];then
repo=extra-x86_64
elif [[ -d $pkg/repos/extra-any ]];then
elif [[ -f $pkg/repos/extra-any/PKGBUILD ]];then
repo=extra-any
fi
if [[ -d $pkg/repos/testing-x86_64 ]];then
if [[ -f $pkg/repos/testing-x86_64/PKGBUILD ]];then
repo=testing-x86_64
elif [[ -d $pkg/repos/testing-any ]];then
elif [[ -f $pkg/repos/testing-any/PKGBUILD ]];then
repo=testing-any
fi
if [[ -d $pkg/repos/staging-x86_64 ]];then
repo=staging-x86_64
elif [[ -d $pkg/repos/staging-any ]];then
repo=staging-any
if $stag;then
if [[ -f $pkg/repos/staging-x86_64/PKGBUILD ]];then
repo=staging-x86_64
elif [[ -f $pkg/repos/staging-any/PKGBUILD ]];then
repo=staging-any
fi
fi
if [[ -d $pkg/repos/community-x86_64 ]];then
if [[ -f $pkg/repos/community-x86_64/PKGBUILD ]];then
repo=community-x86_64
elif [[ -d $pkg/repos/community-any ]];then
elif [[ -f $pkg/repos/community-any/PKGBUILD ]];then
repo=community-any
fi
if [[ -d $pkg/repos/community-testing-x86_64 ]];then
if [[ -f $pkg/repos/community-testing-x86_64/PKGBUILD ]];then
repo=community-testing-x86_64
elif [[ -d $pkg/repos/community-testing-any ]];then
elif [[ -f $pkg/repos/community-testing-any/PKGBUILD ]];then
repo=community-testing-any
fi
if [[ -d $pkg/repos/community-staging-x86_64 ]];then
repo=community-staging-x86_64
elif [[ -d $pkg/repos/community-staging-any ]];then
repo=community-staging-any
if $stag;then
if [[ -f $pkg/repos/community-staging-x86_64/PKGBUILD ]];then
repo=community-staging-x86_64
elif [[ -f $pkg/repos/community-staging-any/PKGBUILD ]];then
repo=community-staging-any
fi
fi
if [[ -d $pkg/repos/multilib-x86_64 ]];then
if [[ -f $pkg/repos/multilib-x86_64/PKGBUILD ]];then
repo=multilib-x86_64
fi
if [[ -d $pkg/repos/multilib-testing-x86_64 ]];then
if [[ -f $pkg/repos/multilib-testing-x86_64/PKGBUILD ]];then
repo=multilib-testing-x86_64
fi
if [[ -d $pkg/repos/multilib-staging-x86_64 ]];then
repo=multilib-staging-x86_64
if $stag;then
if [[ -f $pkg/repos/multilib-staging-x86_64/PKGBUILD ]];then
repo=multilib-staging-x86_64
fi
fi
if $unst;then
if [[ -f $pkg/repos/gnome-unstable-x86_64/PKGBUILD ]];then
repo=gnome-unstable-x86_64
elif [[ -f $pkg/repos/gnome-unstable-any/PKGBUILD ]];then
repo=gnome-unstable-any
fi
if [[ -f $pkg/repos/kde-unstable-x86_64/PKGBUILD ]];then
repo=kde-unstable-x86_64
elif [[ -f $pkg/repos/kde-unstable-any/PKGBUILD ]];then
repo=kde-unstable-any
fi
fi
echo $repo
}
@@ -191,6 +223,7 @@ arch_to_artix_repo(){
multilib-staging-x86_64) repo=lib32-goblins ;;
community-testing-*) repo=galaxy-gremlins ;;
community-staging-*) repo=galaxy-goblins ;;
kde-unstable-*|gnome-unstable-*) repo=goblins ;;
esac
echo $repo
}

View File

@@ -47,11 +47,6 @@ get_osname(){
echo "${NAME}"
}
get_osid(){
source /usr/lib/os-release
echo "${ID}"
}
init_artools_base(){
target_arch=$(uname -m)
@@ -65,9 +60,15 @@ init_artools_base(){
init_artools_pkg(){
git_domain='gitea.artixlinux.org'
git_url="https://${git_domain}"
[[ -z ${git_token} ]] && git_token=''
[[ -z ${tree_dir_artix} ]] && tree_dir_artix=${workspace_dir}/artix
[[ -z ${host_tree_artix} ]] && host_tree_artix='https://github.com/artix-linux'
[[ -z ${host_tree_artix} ]] && host_tree_artix="gitea@gitea.artixlinux.org:artix"
[[ -z ${tree_dir_arch} ]] && tree_dir_arch=${workspace_dir}/archlinux
@@ -89,16 +90,10 @@ init_artools_iso(){
[[ -z ${iso_version} ]] && iso_version=$(date +%Y%m%d)
iso_name=$(get_osid)
iso_label="ARTIX_$(date +%Y%m)"
[[ -z ${initsys} ]] && initsys="openrc"
[[ -z ${kernel} ]] && kernel="linux-lts"
[[ -z ${kernel_args} ]] && kernel_args=""
[[ -z ${gpgkey} ]] && gpgkey=''
[[ -z ${uplimit} ]] && uplimit=100