Compare commits

...

77 Commits
0.7.1 ... 0.8

Author SHA1 Message Date
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
artoo
02b28e82ef Merge pull request #53 from artix-linux/devel
upd missing build deps
2018-02-17 21:58:53 +01:00
udeved
fb6d1d4c1b upd missing build deps 2018-02-17 21:58:09 +01:00
artoo
9fc3fbd14d Merge pull request #52 from artix-linux/devel
Devel
2018-02-17 21:57:15 +01:00
udeved
72f2781cb9 buildtree: fix new imports that don't exist 2018-02-17 21:54:59 +01:00
udeved
9ddd73c8b4 buildtree: use find_tree() to determine the git repo 2018-02-17 12:59:17 +01:00
udeved
3c92d5c87a mkchrootpkg: place comments for workarounds 2018-02-17 12:58:31 +01:00
artoo
bc8f17cc86 Merge pull request #51 from artix-linux/devel
commitpkg: revert to pull before push if rebase default
2018-02-17 03:18:58 +01:00
udeved
1ceb6926e9 commitpkg: revert to pull before push if rebase default 2018-02-17 03:17:46 +01:00
artoo
4d3a993a72 Merge pull request #50 from artix-linux/devel
Devel
2018-02-17 02:56:20 +01:00
udeved
a52bdc9799 commitpkg: fix git_tree display 2018-02-17 02:38:27 +01:00
udeved
b62e90f778 mkchroot & chroot-run: set chroot version with makefile 2018-02-17 02:19:51 +01:00
udeved
5d2fda793d mkchroot: set static chroot version 2018-02-17 02:08:15 +01:00
udeved
550663cfd1 commitpkg, buildtree: clean up code 2018-02-17 02:05:13 +01:00
artoo
6c117fb97d Merge pull request #49 from artix-linux/devel
Devel
2018-02-17 00:23:00 +01:00
udeved
7e6d832314 commitpkg: improve git_tree handling; add error handling 2018-02-17 00:16:34 +01:00
udeved
6fc7b124fc update missing pkgs list 2018-02-16 20:56:59 +01:00
udeved
a011005901 deploypkg: check per pkg & sig 2018-02-16 20:56:41 +01:00
udeved
5da4fea263 chroot-run: bind mount /etc/hosts 2018-02-16 20:19:30 +01:00
udeved
e1b8a0493b commitpkg: add a check to pull if changes before push 2018-02-15 23:22:22 +01:00
udeved
8fe1e82226 util-msg: fix msg_row 2018-02-15 22:43:25 +01:00
udeved
aa8725518b commitpkg: fix it 2018-02-15 22:39:28 +01:00
23 changed files with 681 additions and 986 deletions

235
Makefile
View File

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

View File

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

View File

@@ -29,7 +29,7 @@ prepare_build(){
local pacman_conf pac_file="pacman-default.conf" local pacman_conf pac_file="pacman-default.conf"
case "${stablility}" in case "${stablility}" in
'gremlins') pac_file="pacman-${stablility}.conf" ;; 'gremlins'|'goblins') pac_file="pacman-${stablility}.conf" ;;
esac esac
pacman_conf="${DATADIR}/$pac_file" pacman_conf="${DATADIR}/$pac_file"

View File

@@ -19,42 +19,17 @@ DATADIR='@datadir@'
import ${LIBDIR}/util.sh import ${LIBDIR}/util.sh
import ${LIBDIR}/util-pkg.sh import ${LIBDIR}/util-pkg.sh
pull_tree(){
local branch="master" tree="$1"
local local_head=$(get_local_head "$branch")
local remote_head=$(get_remote_head "$branch")
local timer=$(get_timer)
msg "Checking [%s] ..." "$tree"
msg2 "local: %s" "${local_head}"
msg2 "remote: %s" "${remote_head}"
if [[ "${local_head}" == "${remote_head}" ]]; then
info "nothing to do"
else
info "needs pull"
git pull origin $branch
fi
msg "Done [%s]" "$tree"
show_elapsed_time "${FUNCNAME}" "${timer}"
}
clone_tree(){
local timer=$(get_timer) tree="$1" host_tree="$2"
msg "Preparing [%s] ..." "$tree"
info "clone"
git clone $host_tree.git
msg "Done [%s]" "$tree"
show_elapsed_time "${FUNCNAME}" "${timer}"
}
pull_tree_arch(){ pull_tree_arch(){
cd ${tree_dir_arch} cd ${tree_dir_arch}
for tree in packages community;do for tree in packages community;do
if [[ -d ${tree} ]];then if [[ -d ${tree} ]];then
cd ${tree} cd ${tree}
pull_tree "${tree}" msg "Checking (%s)" "${tree}"
pull_tree
cd .. cd ..
else else
clone_tree "${tree}" "${host_tree_arch}/${tree}" msg "Cloning (%s) ..." "$tree"
clone_tree "${host_tree_arch}/${tree}"
fi fi
done done
} }
@@ -65,10 +40,12 @@ pull_tree_artix(){
if [[ -d ${tree} ]];then if [[ -d ${tree} ]];then
cd ${tree} cd ${tree}
git config --bool pull.rebase true git config --bool pull.rebase true
pull_tree "${tree}" msg "Checking (%s)" "${tree}"
pull_tree
cd .. cd ..
else else
clone_tree "${tree}" "${host_tree_artix}/${tree}" msg "Cloning (%s) ..." "$tree"
clone_tree "${host_tree_artix}/${tree}"
fi fi
done done
} }
@@ -78,51 +55,19 @@ show_version_table(){
for tree in packages packages-galaxy;do for tree in packages packages-galaxy;do
local git=$(find ${tree_dir_artix}/$tree/ -mindepth 1 -maxdepth 1 -type d) local git=$(find ${tree_dir_artix}/$tree/ -mindepth 1 -maxdepth 1 -type d)
for pkg_path in ${git[@]}; do for pkg_path in ${git[@]}; do
local artixrepo=$(find_repo "$pkg_path") local artixrepo=$(find_repo "$pkg_path" "${unstable}")
if [[ -d $pkg_path/repos/$artixrepo ]];then
source $pkg_path/trunk/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/trunk/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"
fi
fi
unset pkgver epoch pkgrel artixver archver _package
fi
done
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 if [[ -d $pkg_path/repos/$artixrepo ]];then
source $pkg_path/repos/$artixrepo/PKGBUILD 2>/dev/null source $pkg_path/repos/$artixrepo/PKGBUILD 2>/dev/null
local pkg=${pkg_path##*/} local pkg=${pkg_path##*/}
local artixver=$(get_full_version $pkg) local artixver=$(get_full_version $pkg)
local src=$(get_import_path "$tree" "$pkg") local src=$(get_import_path "$tree" "$pkg")
local archrepo=$(find_repo "$src/$pkg") local archrepo=$(find_repo "$src/$pkg" "${unstable}")
if [[ -d $src/$pkg/repos/$archrepo ]];then if [[ -d $src/$pkg/repos/$archrepo ]];then
source $src/$pkg/repos/$archrepo/PKGBUILD 2>/dev/null source $src/$pkg/repos/$archrepo/PKGBUILD 2>/dev/null
local archver=$(get_full_version $pkg) local archver=$(get_full_version $pkg)
fi fi
if ${artix};then
if [ $(vercmp $artixver $archver) -eq 0 ] || [ $(vercmp $artixver $archver) -gt 0 ];then if [ $(vercmp $artixver $archver) -eq 0 ] || [ $(vercmp $artixver $archver) -gt 0 ];then
local ar=$(arch_to_artix_repo "$artixrepo") local ar=$(arch_to_artix_repo "$artixrepo")
case $ar in case $ar in
*goblins) *goblins)
@@ -139,49 +84,100 @@ show_artix_table(){
msg_row_notify "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver" msg_row_notify "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver"
fi fi
;; ;;
# system|world|galaxy|lib32) msg_row "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver" ;;
esac esac
fi 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 unset pkgver epoch pkgrel artixver archver _package
fi fi
done done
done done
} }
from_arch(){ show_deps(){
local pkg="$1" archtree="$2" artixtree="$3" src= dest= local src="$1" repo="$2"
src=${tree_dir_arch}/$archtree/$pkg/trunk
dest=${tree_dir_artix}/$artixtree/$pkg/trunk
source $src/PKGBUILD 2>/dev/null source $src/PKGBUILD 2>/dev/null
cd ${tree_dir_arch}/$archtree [[ $arch == 'any' ]] && CARCH=any
msg "Package: %s" "$pkg"
local archver=$(get_full_version $pkg) 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 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"
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
show_deps "$src" "$repo"
if [[ -d $dest ]];then if [[ -d $dest ]];then
cd ${tree_dir_artix}/$git_tree_artix
source $dest/PKGBUILD 2>/dev/null source $dest/PKGBUILD 2>/dev/null
cd ${tree_dir_artix}/$artixtree
local artixver=$(get_full_version $pkg) local artixver=$(get_full_version $pkg)
msg2 "Artix Version: %s" "$artixver" msg2 "Artix Version: %s" "$artixver"
if [ $(vercmp $artixver $archver) -lt 0 ];then info "Update from archlinux (%s)" "$git_tree_arch"
info "Importing from archlinux (%s)" "$archtree"
rsync "${rsync_args[@]}" $src/ $dest/ rsync "${rsync_args[@]}" $src/ $dest/
patch_pkg "$pkg" "$tree" patch_pkg "$pkg" "$tree"
else else
warning "Versions match! Nothing to do!" [[ $git_tree_arch == 'packages' ]] && git_tree_artix=$git_tree_arch
fi [[ $git_tree_arch == 'community' ]] && git_tree_artix='packages-galaxy'
else
cd ${tree_dir_artix}/$artixtree cd ${tree_dir_artix}/$git_tree_artix
info "Importing from archlinux (%s)" "$archtree"
dest=${tree_dir_artix}/$git_tree_artix/$pkg/trunk
mkdir $pkg mkdir $pkg
info "Import from archlinux (%s)" "$git_tree_arch"
rsync "${rsync_args[@]}" $src/ $dest/ rsync "${rsync_args[@]}" $src/ $dest/
patch_pkg "$pkg" "$tree" patch_pkg "$pkg" "$tree"
fi 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(){ sync_repos(){
pull_tree_arch ${sync_arch} && pull_tree_arch
pull_tree_artix pull_tree_artix
} }
@@ -194,12 +190,14 @@ display_settings(){
msg "ARGS:" msg "ARGS:"
msg2 "sync: %s" "${sync}" msg2 "sync: %s" "${sync}"
msg2 "sync_arch: %s" "${sync_arch}"
msg2 "compare: %s" "${compare}" msg2 "compare: %s" "${compare}"
msg2 "upgrades: %s" "${upgrades}" msg2 "upgrades: %s" "${upgrades}"
msg2 "downgrades: %s" "${downgrades}" msg2 "downgrades: %s" "${downgrades}"
msg2 "artix: %s" "${artix}" msg2 "artix: %s" "${artix}"
msg2 "import_packages: %s" "${import_packages}" msg2 "import: %s" "${import}"
msg2 "import_community: %s" "${import_community}" msg2 "view: %s" "${view}"
msg2 "trunk: %s" "${trunk}"
msg "PATHS:" msg "PATHS:"
msg2 "tree_dir_artix: %s" "${tree_dir_artix}" msg2 "tree_dir_artix: %s" "${tree_dir_artix}"
@@ -214,29 +212,32 @@ load_vars /etc/makepkg.conf
pretend=false pretend=false
sync=false sync=false
sync_arch=true
compare=false compare=false
upgrades=true unstable=false
upgrades=false
downgrades=false downgrades=false
artix=false artix=false
import_packages=false import=false
import_community=false view=false
trunk=false
package='' package=''
git_artix='packages'
git_arch='packages'
rsync_args=(-aWxvci --progress --delete-before --no-R --no-implied-dirs) rsync_args=(-aWxvci --progress --delete-before --no-R --no-implied-dirs)
usage() { usage() {
echo "Usage: ${0##*/} [options]" echo "Usage: ${0##*/} [options]"
echo ' -p <pkg> Package name' echo ' -p <pkg> Package name'
echo " -s Clone or pull repos" echo " -s Clone or pull repos"
echo " -z Don't clone or pull arch repos"
echo ' -c Compare packages' echo ' -c Compare packages'
echo ' -x Include unstable kde and gnome'
echo ' -u Show upgrade packages' echo ' -u Show upgrade packages'
echo ' -d Show downgrade packages' echo ' -d Show downgrade packages'
echo ' -a Show artix specific packages' echo ' -a Show testing and staging packages'
echo ' -i Import from arch packages' echo ' -i Import a package from arch repos'
echo ' -j Import from arch community' echo ' -t Import from arch trunk'
echo ' -v View package depends'
echo ' -q Query settings' echo ' -q Query settings'
echo ' -h This help' echo ' -h This help'
echo '' echo ''
@@ -246,18 +247,21 @@ usage() {
orig_argv=("$0" "$@") orig_argv=("$0" "$@")
opts='p:csudaijqh' opts='p:csudaiztxvqh'
while getopts "${opts}" arg; do while getopts "${opts}" arg; do
case "${arg}" in case "${arg}" in
p) package="$OPTARG" ;; p) package="$OPTARG" ;;
s) sync=true ;; s) sync=true ;;
z) sync_arch=false ;;
c) compare=true ;; c) compare=true ;;
u) upgrades=false ;; u) upgrades=true ;;
d) downgrades=true ;; d) downgrades=true ;;
a) artix=true ;; a) artix=true ;;
i) import_packages=true ;; i) import=true ;;
j) import_community=true; git_artix='packages-galaxy'; git_arch='community' ;; t) trunk=true ;;
v) view=true ;;
x) unstable=true ;;
q) pretend=true ;; q) pretend=true ;;
h|?) usage 0 ;; h|?) usage 0 ;;
*) echo "invalid argument '${arg}'"; usage 1 ;; *) echo "invalid argument '${arg}'"; usage 1 ;;
@@ -273,10 +277,8 @@ ${pretend} && display_settings && exit 1
${sync} && sync_repos ${sync} && sync_repos
${view} && view_build "${package}"
${compare} && show_version_table ${compare} && show_version_table
${artix} && show_artix_table ${import} && from_arch "${package}"
${import_packages} && from_arch "${package}" "${git_arch}" "${git_artix}"
${import_community} && from_arch "${package}" "${git_arch}" "${git_artix}"

View File

@@ -11,6 +11,8 @@
version=@version@ version=@version@
chroot_version=@chroot_version@
LIBDIR='@libdir@' LIBDIR='@libdir@'
[[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh [[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh
@@ -92,6 +94,7 @@ copy_hostconf () {
chroot_extra_mount() { chroot_extra_mount() {
chroot_mount "/etc/resolv.conf" "$1/etc/resolv.conf" -B chroot_mount "/etc/resolv.conf" "$1/etc/resolv.conf" -B
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 chroot_mount "${cache_dirs[0]}" "$1${cache_dirs[0]}" -B
@@ -113,8 +116,8 @@ umask 0022
# Sanity check # Sanity check
if [[ ! -f "$working_dir/.artools" ]]; then if [[ ! -f "$working_dir/.artools" ]]; then
die "'%s' does not appear to be an artix chroot." "$working_dir" die "'%s' does not appear to be an artix chroot." "$working_dir"
elif [[ $(cat "$working_dir/.artools") != $version ]]; then elif [[ $(cat "$working_dir/.artools") != $chroot_version ]]; then
die "chroot '%s' is not at version %s. Please rebuild." "$working_dir" "$version" die "chroot '%s' is not at version %s. Please rebuild." "$working_dir" "$chroot_version"
fi fi
chroot_api_mount "${working_dir}" || die "failed to setup API filesystems in chroot %s" "${working_dir}" chroot_api_mount "${working_dir}" || die "failed to setup API filesystems in chroot %s" "${working_dir}"

View File

@@ -17,59 +17,86 @@ DATADIR='@datadir@'
[[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh [[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh
import ${LIBDIR}/util.sh import ${LIBDIR}/util.sh
import ${LIBDIR}/util-pkg.sh
commit_pkg(){ commit_pkg(){
local git_tree=$(find_tree "${tree_dir_artix}" "${package}")
if [[ -n ${git_tree} ]];then
cd ${tree_dir_artix}/${git_tree}/${package} cd ${tree_dir_artix}/${git_tree}/${package}
source trunk/PKGBUILD source trunk/PKGBUILD
local ver=$(get_full_version ${package}) [[ $arch == 'any' ]] && CARCH=any
local ver=$(get_full_version "${package}")
if ${remove};then if ${remove};then
local action='remove' local action='remove'
local pkg=${package}-$ver
if [[ "${source_repo}" == 'trunk' ]];then if [[ "${source_repo}" == 'trunk' ]];then
pkg=${package} local pkg=${package}
info "[%s] '%s' %s" "${source_repo}" "$pkg" "${action}"
git rm -r trunk git rm -r trunk
else else
info "[%s] '%s' %s" "${source_repo}" "$pkg" "${action}" local pkg="${package}-$ver"
git rm -r repos/${source_repo}-$CARCH git rm -r repos/"${source_repo}-$CARCH"
fi fi
msg "Action: [%s] '%s' %s" "${source_repo}" "$pkg" "${action}"
git commit -m "[${source_repo}] '$pkg' ${action}" git commit -m "[${source_repo}] '$pkg' ${action}"
${push} && git push origin master
else else
local action='modify' local action='modify'
info "[%s] '%s' %s" "${source_repo}" "${package}-$ver" "${action}" msg "Action: [%s] '%s' %s" "${source_repo}" "${package}-$ver" "${action}"
git add . git add .
git commit -m "[${source_repo}] '${package}-$ver' ${action}" git commit -m "[${source_repo}] '${package}-$ver' ${action}"
${push} && git push origin master fi
if ${push};then
msg "Checking (%s)" "${git_tree}"
git pull origin master
git push origin master
fi
else
error "Package '%s' does not exist!" "${package}"
fi fi
} }
release_pkg(){ symlink_commit_pkg(){
if [[ -d ${tree_dir_artix}/${git_tree}/${package} ]];then local git_tree=$(find_tree "${tree_dir_artix}" "${package}")
if [[ -n ${git_tree} ]];then
cd ${tree_dir_artix}/${git_tree}/${package} cd ${tree_dir_artix}/${git_tree}/${package}
source trunk/PKGBUILD source trunk/PKGBUILD
[[ $arch == 'any' ]] && CARCH=any [[ $arch == 'any' ]] && CARCH=any
if [[ ${source_repo} != 'trunk' ]];then local ver=$(get_full_version "${package}")
cd repos
dest=${target_repo}-$CARCH if [[ ${source_repo} == 'trunk' ]];then
action='move' local action='add'
[[ -d $dest ]] && git rm -r $dest local dest="${target_repo}-$CARCH"
git mv ${source_repo}-$CARCH $dest
cd .. [[ -d repos/$dest ]] && git rm -r repos/$dest
else
dest=${target_repo}-$CARCH
action='add'
[[ ! -d repos ]] && mkdir repos [[ ! -d repos ]] && mkdir repos
cd repos [[ ! -d repos/$dest ]] && mkdir repos/$dest
[[ -d $dest ]] && git rm -r $dest
cd .. cp trunk/* repos/$dest/
cp -r trunk repos/$dest else
local action='move'
local src="${source_repo}-$CARCH" dest="${target_repo}-$CARCH"
[[ -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 fi
local ver=$(get_full_version ${package})
info "[%s] -> [%s] '%s' %s" "${source_repo}" "${target_repo}" "${package}-$ver" "${action}" msg "Action: [%s] -> [%s] '%s' %s" "${source_repo}" "${target_repo}" "${package}-$ver" "${action}"
git add . git add .
git commit -m "[${source_repo}] -> [${target_repo}] '${package}-$ver' ${action}" git commit -m "[${source_repo}] -> [${target_repo}] '${package}-$ver' ${action}"
${push} && git push origin master
if ${push};then
msg "Checking (%s)" "${git_tree}"
git pull origin master
git push origin master
fi
else
error "Package '%s' does not exist!" "${package}"
fi fi
} }
@@ -78,7 +105,6 @@ display_settings(){
show_config show_config
msg "OPTIONS:" msg "OPTIONS:"
msg2 "git_tree: %s" "${git_tree}"
msg2 "source_repo: %s" "${source_repo}" msg2 "source_repo: %s" "${source_repo}"
msg2 "target_repo: %s" "${target_repo}" msg2 "target_repo: %s" "${target_repo}"
msg2 "package: %s" "${package}" msg2 "package: %s" "${package}"
@@ -100,20 +126,14 @@ remove=false
push=false push=false
pretend=false pretend=false
git_tree='packages'
cmd=${0##*/} cmd=${0##*/}
target_repo=${cmd%pkg} target_repo=${cmd%pkg}
case ${target_repo} in
community*|multilib*) git_tree='packages-galaxy' ;;
esac
usage() { usage() {
echo "Usage: ${0##*/} [options]" echo "Usage: ${0##*/} [options]"
echo " -s <name> Source repository [default:${source_repo}]" echo " -s <name> Source repository [default:${source_repo}]"
echo ' -p <pkg> Package name' echo ' -p <pkg> Package name'
echo ' -r Delete from repo' echo ' -r Delete from repo (commitpkg only)'
echo ' -u Push' echo ' -u Push'
echo ' -q Query settings and pretend' echo ' -q Query settings and pretend'
echo ' -h This help' echo ' -h This help'
@@ -142,8 +162,12 @@ shift $(($OPTIND - 1))
${pretend} && display_settings && exit 1 ${pretend} && display_settings && exit 1
if $(is_valid_repo "${source_repo}");then
if [[ "${cmd}" == 'commitpkg' ]];then if [[ "${cmd}" == 'commitpkg' ]];then
commit_pkg commit_pkg
else else
release_pkg symlink_commit_pkg
fi
else
error "source repository '%s' is not valid!" "${source_repo}"
fi fi

View File

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

View File

@@ -11,6 +11,8 @@
version=@version@ version=@version@
chroot_version=@chroot_version@
LIBDIR='@libdir@' LIBDIR='@libdir@'
[[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh [[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh
@@ -104,7 +106,7 @@ done < <(declare -x | sed -r 's/^declare -x ([^=]*)=.*/\1/' | grep -i '_proxy$')
env -i "${_env[@]}" \ env -i "${_env[@]}" \
basestrap "${basestrap_args[@]}" "$working_dir" ${cache_dirs[@]/#/--cachedir=} "$@" || die 'Failed to install all packages' basestrap "${basestrap_args[@]}" "$working_dir" ${cache_dirs[@]/#/--cachedir=} "$@" || die 'Failed to install all packages'
echo "$version" > "$working_dir/.artools" echo "$chroot_version" > "$working_dir/.artools"
default_locale "set" "$working_dir" default_locale "set" "$working_dir"

View File

@@ -202,11 +202,15 @@ _chrootbuild() {
# No coredumps # No coredumps
ulimit -c 0 ulimit -c 0
# Work around chroot-run not giving a ctty
exec </dev/console exec </dev/console
. /etc/profile . /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 "$@" sudo --preserve-env=SOURCE_DATE_EPOCH -iu builduser bash -c 'cd /startdir; makepkg "$@"' -bash "$@"
@@ -231,9 +235,11 @@ download_sources() {
local builddir local builddir
builddir="$(mktemp -d)" builddir="$(mktemp -d)"
chmod 1777 "$builddir" chmod 1777 "$builddir"
# chown "$makepkg_user:$makepkg_user" "$builddir"
# Ensure sources are downloaded # 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 || makepkg --config="$copydir/etc/makepkg.conf" --verifysource -o ||
die "Could not download sources." die "Could not download sources."
@@ -325,7 +331,7 @@ main() {
[[ -n $makepkg_user && -z $(id -u "$makepkg_user") ]] && die 'Invalid makepkg user.' [[ -n $makepkg_user && -z $(id -u "$makepkg_user") ]] && die 'Invalid makepkg user.'
makepkg_user=${makepkg_user:-${SUDO_USER:-$USER}} makepkg_user=${makepkg_user:-${SUDO_USER:-$USER}}
check_root check_root SOURCE_DATE_EPOCH,GNUPGHOME
# Canonicalize chrootdir, getting rid of trailing / # Canonicalize chrootdir, getting rid of trailing /
chrootdir=$(readlink -e "$passeddir") 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

@@ -33,7 +33,7 @@
# initsys="openrc" # initsys="openrc"
# unset defaults to given value # unset defaults to given value
# kernel="linux-lts" # kernel="linux"
# custom additional kernel args # custom additional kernel args
# kernel_args="" # kernel_args=""

52
data/base/Makefile Normal file
View File

@@ -0,0 +1,52 @@
DIRMODE = -dm0755
FILEMODE = -m0644
RMD = rm -fr --one-file-system
RM = rm -f
BASE = \
$(wildcard Packages-*) \
profile.conf
LIVE_ETC = \
live-overlay/etc/fstab \
live-overlay/etc/issue
LIVE_ETC_DEFAULT = \
$(wildcard live-overlay/etc/default/*)
LIVE_ETC_PAM = \
$(wildcard live-overlay/etc/pam.d/*)
LIVE_ETC_SUDOERS = \
$(wildcard live-overlay/etc/sudoers.d/*)
install_isobase:
install $(DIRMODE) $(DESTDIR)$(PROFDIR)
install $(FILEMODE) $(BASE) $(DESTDIR)$(PROFDIR)
install $(DIRMODE) $(DESTDIR)$(OVERLAYDIR)
install $(FILEMODE) $(LIVE_ETC) $(DESTDIR)$(OVERLAYDIR)
install $(DIRMODE) $(DESTDIR)$(OVERLAYDIR)/default
install $(FILEMODE) $(LIVE_ETC_DEFAULT) $(DESTDIR)$(OVERLAYDIR)/default
install $(DIRMODE) $(DESTDIR)$(OVERLAYDIR)/pam.d
install $(FILEMODE) $(LIVE_ETC_PAM) $(DESTDIR)$(OVERLAYDIR)/pam.d
install $(DIRMODE) $(DESTDIR)$(OVERLAYDIR)/sudoers.d
install $(FILEMODE) $(LIVE_ETC_SUDOERS) $(DESTDIR)$(OVERLAYDIR)/sudoers.d
uninstall_isobase:
for f in $(notdir $(BASE)); do $(RM) $(DESTDIR)$(PROFDIR)/$$f; done
for f in $(notdir $(LIVE_ETC)); do $(RM) $(DESTDIR)$(OVERLAYDIR)/$$f; done
for f in $(notdir $(LIVE_ETC_DEFAULT)); do $(RM) $(DESTDIR)$(OVERLAYDIR)/default/$$f; done
for f in $(notdir $(LIVE_ETC_PAM)); do $(RM) $(DESTDIR)$(OVERLAYDIR)/pam.d/$$f; done
for f in $(notdir $(LIVE_ETC_SUDOERS)); do $(RM) $(DESTDIR)$(OVERLAYDIR)/sudoers.d/$$f; done
$(RMD) $(DESTDIR)$(PROFDIR)
install: install_isobase
uninstall: uninstall_isobase
.PHONY: install uninstall

View File

@@ -3,6 +3,4 @@ nbd
>openrc artix-live-openrc >openrc artix-live-openrc
squashfs-tools squashfs-tools
artix-live-portable-efi artix-live-portable-efi
virtualbox-guest-modules-artix
virtualbox-guest-utils
linux-lts-headers linux-lts-headers

View File

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

View File

@@ -1,20 +0,0 @@
extra/speexdsp
extra/spandsp
extra/soundtouch
extra/sbc
extra/neon
extra/mjpegtools
extra/libmp4v2
extra/js
extra/gst-plugins-bad
extra/faac
extra/enchant
extra/chromaprint
extra/python-appdirs
extra/python-beaker
extra/python-mako
extra/python-markupsafe
extra/python-packaging
extra/python-pyparsing
extra/ttf-liberation
extra/appstream-glib

View File

@@ -1,45 +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
python2-pyqt5
python-pyqt5
pyqt5-common

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

@@ -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

@@ -91,14 +91,14 @@ msg_row_notify(){
printf "${GREEN} ${mesg}${ALL_OFF}\n" "$@" >&2 printf "${GREEN} ${mesg}${ALL_OFF}\n" "$@" >&2
} }
msg_row_downgrade(){ msg_row(){
local mesg=$1; shift local mesg=$1; shift
printf "${YELLOW} ${mesg}${ALL_OFF}\n" "$@" >&2 printf "${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2
} }
msg_row_upgrade(){ msg_row_upgrade(){
local mesg=$1; shift local mesg=$1; shift
printf "${RED}${BOLD} ${mesg} ${ALL_OFF}\n" "$@" >&2 printf "${RED}${RED} ${mesg} ${ALL_OFF}\n" "$@" >&2
} }
import(){ import(){

View File

@@ -68,9 +68,44 @@ patch_pkg(){
updpkgsums updpkgsums
cd ../.. 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 esac
} }
find_tree(){
local tree="$1" pkg="$2"
local result=$(find $tree -mindepth 2 -maxdepth 2 -type d -name "$pkg")
result=${result%/*}
echo ${result##*/}
}
clone_tree(){
local timer=$(get_timer) host_tree="$1"
git clone $host_tree.git
show_elapsed_time "${FUNCNAME}" "${timer}"
}
pull_tree(){
local branch="master"
local local_head=$(get_local_head "$branch")
local remote_head=$(get_remote_head "$branch")
if [[ "${local_head}" == "${remote_head}" ]]; then
msg2 "remote changes: no"
else
msg2 "remote changes: yes"
git pull origin "$branch"
fi
}
push_tree(){
local branch="master"
git push origin "$branch"
}
get_import_path(){ get_import_path(){
local tree="$1" import_path= local tree="$1" import_path=
case $tree in case $tree in
@@ -80,63 +115,84 @@ get_import_path(){
echo $import_path echo $import_path
} }
find_repo(){ is_valid_repo(){
local pkg="$1" repo= local src="$1"
case $src in
core|extra|community|multilib|testing|staging|community-testing|community-staging|multilib-testing|multilib-staging|trunk) return 0 ;;
*) return 1 ;;
esac
}
if [[ -d $pkg/repos/core-x86_64 ]];then find_repo(){
local pkg="$1" incl="$2" repo=
if [[ -f $pkg/repos/core-x86_64/PKGBUILD ]];then
repo=core-x86_64 repo=core-x86_64
elif [[ -d $pkg/repos/core-any ]];then elif [[ -f $pkg/repos/core-any/PKGBUILD ]];then
repo=core-any repo=core-any
fi fi
if [[ -d $pkg/repos/extra-x86_64 ]];then if [[ -f $pkg/repos/extra-x86_64/PKGBUILD ]];then
repo=extra-x86_64 repo=extra-x86_64
elif [[ -d $pkg/repos/extra-any ]];then elif [[ -f $pkg/repos/extra-any/PKGBUILD ]];then
repo=extra-any repo=extra-any
fi fi
if [[ -d $pkg/repos/testing-x86_64 ]];then if [[ -f $pkg/repos/testing-x86_64/PKGBUILD ]];then
repo=testing-x86_64 repo=testing-x86_64
elif [[ -d $pkg/repos/testing-any ]];then elif [[ -f $pkg/repos/testing-any/PKGBUILD ]];then
repo=testing-any repo=testing-any
fi fi
if [[ -d $pkg/repos/staging-x86_64 ]];then if [[ -f $pkg/repos/staging-x86_64/PKGBUILD ]];then
repo=staging-x86_64 repo=staging-x86_64
elif [[ -d $pkg/repos/staging-any ]];then elif [[ -f $pkg/repos/staging-any/PKGBUILD ]];then
repo=staging-any 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 repo=community-x86_64
elif [[ -d $pkg/repos/community-any ]];then elif [[ -f $pkg/repos/community-any/PKGBUILD ]];then
repo=community-any repo=community-any
fi 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 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 repo=community-testing-any
fi fi
if [[ -d $pkg/repos/community-staging-x86_64 ]];then if [[ -f $pkg/repos/community-staging-x86_64/PKGBUILD ]];then
repo=community-staging-x86_64 repo=community-staging-x86_64
elif [[ -d $pkg/repos/community-staging-any ]];then elif [[ -f $pkg/repos/community-staging-any/PKGBUILD ]];then
repo=community-staging-any 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 repo=multilib-x86_64
fi 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 repo=multilib-testing-x86_64
fi fi
if [[ -d $pkg/repos/multilib-staging-x86_64 ]];then if [[ -f $pkg/repos/multilib-staging-x86_64/PKGBUILD ]];then
repo=multilib-staging-x86_64 repo=multilib-staging-x86_64
fi fi
if $incl;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 echo $repo
} }
@@ -153,6 +209,7 @@ arch_to_artix_repo(){
multilib-staging-x86_64) repo=lib32-goblins ;; multilib-staging-x86_64) repo=lib32-goblins ;;
community-testing-*) repo=galaxy-gremlins ;; community-testing-*) repo=galaxy-gremlins ;;
community-staging-*) repo=galaxy-goblins ;; community-staging-*) repo=galaxy-goblins ;;
kde-unstable-*|gnome-unstable-*) repo=goblins ;;
esac esac
echo $repo echo $repo
} }

View File

@@ -95,7 +95,7 @@ init_artools_iso(){
[[ -z ${initsys} ]] && initsys="openrc" [[ -z ${initsys} ]] && initsys="openrc"
[[ -z ${kernel} ]] && kernel="linux-lts" [[ -z ${kernel} ]] && kernel="linux"
[[ -z ${kernel_args} ]] && kernel_args="" [[ -z ${kernel_args} ]] && kernel_args=""