forked from artix/artools
Compare commits
70 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
e5211838e8 | ||
![]() |
441c97730b | ||
![]() |
8ca984325a | ||
![]() |
3c4fc6e00b | ||
![]() |
20a20ee8bb | ||
2aae876d98 | |||
a19379596d | |||
![]() |
af8ab5fd1e | ||
![]() |
1c56ce7f8c | ||
![]() |
f80c5bf587 | ||
![]() |
d5c8af7025 | ||
![]() |
12a41ec0b2 | ||
![]() |
b5eb287867 | ||
![]() |
3e4fbd892e | ||
![]() |
dca96f29d7 | ||
![]() |
a382bdc83a | ||
![]() |
b73aec6031 | ||
![]() |
88f1145c96 | ||
![]() |
43bc1d149a | ||
![]() |
ffa532591c | ||
![]() |
f9f8ca6b68 | ||
![]() |
dbc3a94906 | ||
![]() |
8e4b5f88ca | ||
![]() |
104cc0b1ef | ||
![]() |
ce790fcaab | ||
![]() |
2d03e16a5f | ||
![]() |
64e0badbac | ||
![]() |
a94afab8a0 | ||
![]() |
1d3c77dc73 | ||
![]() |
1cccece399 | ||
![]() |
cc8b47912e | ||
![]() |
f36cf35d9a | ||
![]() |
cca5283db6 | ||
![]() |
d6bf8bcf12 | ||
![]() |
88886de9e9 | ||
![]() |
55b0cd4ae2 | ||
![]() |
84a51f4a9e | ||
![]() |
87ad3a631a | ||
![]() |
2a70b5f123 | ||
![]() |
3106e8975f | ||
![]() |
4a02e2d7be | ||
![]() |
4363421ce8 | ||
![]() |
4b96a54347 | ||
![]() |
0ad953ead8 | ||
![]() |
45ebe43272 | ||
![]() |
1c64fe7f69 | ||
![]() |
c2a030b016 | ||
![]() |
94670e18e7 | ||
![]() |
5c835b6e2c | ||
![]() |
3f803be6b8 | ||
![]() |
70b81d7ff8 | ||
![]() |
12a34bd5a2 | ||
![]() |
11504d3267 | ||
![]() |
203df20e76 | ||
![]() |
184259c600 | ||
![]() |
b95c7dee0d | ||
![]() |
c7c67fbc21 | ||
![]() |
21a5c7e916 | ||
![]() |
62810d1d85 | ||
![]() |
865bd20674 | ||
![]() |
b46b5c626e | ||
![]() |
9ac4576666 | ||
![]() |
a88f196217 | ||
![]() |
c0e8ef4c26 | ||
![]() |
02b28e82ef | ||
![]() |
fb6d1d4c1b | ||
![]() |
9fc3fbd14d | ||
![]() |
72f2781cb9 | ||
![]() |
9ddd73c8b4 | ||
![]() |
3c92d5c87a |
236
Makefile
236
Makefile
@@ -1,9 +1,41 @@
|
|||||||
Version=0.7
|
VERSION=0.8
|
||||||
|
|
||||||
Chroot_version=0.7
|
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
|
||||||
@@ -35,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)
|
||||||
@@ -62,159 +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}|" \
|
|
||||||
-e "s|@chroot_version@|${Chroot_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
|
||||||
|
70
README.md
70
README.md
@@ -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/
|
||||||
|
@@ -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"
|
||||||
|
209
bin/buildtree.in
209
bin/buildtree.in
@@ -55,25 +55,47 @@ 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
|
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 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/trunk/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 [ $(vercmp $artixver $archver) -lt 0 ];then
|
if ${artix};then
|
||||||
local ar=$(arch_to_artix_repo "$artixrepo")
|
if [ $(vercmp $artixver $archver) -eq 0 ] || [ $(vercmp $artixver $archver) -gt 0 ];then
|
||||||
${upgrades} && msg_row_upgrade "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver"
|
local ar=$(arch_to_artix_repo "$artixrepo")
|
||||||
fi
|
case $ar in
|
||||||
if [ $(vercmp $artixver $archver) -gt 0 ];then
|
*goblins)
|
||||||
local ar=$(arch_to_artix_repo "$artixrepo")
|
if [[ $archrepo == $artixrepo ]];then
|
||||||
if [[ -n $archver ]] && [[ -n $archrepo ]];then
|
msg_row "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver"
|
||||||
${downgrades} && msg_row_downgrade "%-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
|
||||||
fi
|
fi
|
||||||
unset pkgver epoch pkgrel artixver archver _package
|
unset pkgver epoch pkgrel artixver archver _package
|
||||||
@@ -82,83 +104,80 @@ show_version_table(){
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
show_artix_table(){
|
show_deps(){
|
||||||
msg_table_header "%-20s %-20s %-25s %-30s %-30s" "Arch Repo" "Artix Repo" "Package" "Arch version" "Artix version"
|
local src="$1" repo="$2"
|
||||||
for tree in packages packages-galaxy;do
|
source $src/PKGBUILD 2>/dev/null
|
||||||
local git=$(find ${tree_dir_artix}/$tree/ -mindepth 1 -maxdepth 1 -type d)
|
[[ $arch == 'any' ]] && CARCH=any
|
||||||
for pkg_path in ${git[@]}; do
|
local archver=$(get_full_version $pkg)
|
||||||
local artixrepo=$(find_repo "$pkg_path")
|
msg "git tree: %s" "$git_tree_arch"
|
||||||
if [[ -d $pkg_path/repos/$artixrepo ]];then
|
msg2 "repo: %s" "$repo"
|
||||||
source $pkg_path/repos/$artixrepo/PKGBUILD 2>/dev/null
|
msg2 "Package Name: %s" "$pkg"
|
||||||
local pkg=${pkg_path##*/}
|
msg2 "Arch Version: %s" "$archver"
|
||||||
local artixver=$(get_full_version $pkg)
|
msg2 "arch: %s" "$CARCH"
|
||||||
local src=$(get_import_path "$tree" "$pkg")
|
[[ -n ${makedepends[@]} ]] && msg2 "makedepends: %s" "${makedepends[*]}"
|
||||||
local archrepo=$(find_repo "$src/$pkg")
|
[[ -n ${checkdepends[@]} ]] && msg2 "checkdepends: %s" "${checkdepends[*]}"
|
||||||
if [[ -d $src/$pkg/repos/$archrepo ]];then
|
[[ -n ${depends[@]} ]] && msg2 "depends: %s" "${depends[*]}"
|
||||||
source $src/$pkg/repos/$archrepo/PKGBUILD 2>/dev/null
|
[[ -n ${optdepends[@]} ]] && msg2 "optdepends: %s" "${optdepends[@]}"
|
||||||
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
|
|
||||||
}
|
}
|
||||||
|
|
||||||
from_arch(){
|
from_arch(){
|
||||||
local pkg="$1" archtree="$2" artixtree="$3" src= dest=
|
local pkg="$1" src= dest=
|
||||||
src=${tree_dir_arch}/$archtree/$pkg/trunk
|
local git_tree_arch=$(find_tree "${tree_dir_arch}" "$pkg")
|
||||||
dest=${tree_dir_artix}/$artixtree/$pkg/trunk
|
[[ -z $git_tree_arch ]] && die "Package '%s' does not exist!" "$pkg"
|
||||||
|
|
||||||
source $src/PKGBUILD 2>/dev/null
|
local pkg_path=${tree_dir_arch}/$git_tree_arch/$pkg
|
||||||
cd ${tree_dir_arch}/$archtree
|
local repo=$(find_repo "$pkg_path" "${unstable}")
|
||||||
msg "Package: %s" "$pkg"
|
|
||||||
local archver=$(get_full_version $pkg)
|
src=$pkg_path/repos/$repo
|
||||||
msg2 "Arch Version: %s" "$archver"
|
$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
|
|
||||||
warning "Versions match! Nothing to do!"
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
cd ${tree_dir_artix}/$artixtree
|
[[ $git_tree_arch == 'packages' ]] && git_tree_artix=$git_tree_arch
|
||||||
info "Importing from archlinux (%s)" "$archtree"
|
[[ $git_tree_arch == 'community' ]] && git_tree_artix='packages-galaxy'
|
||||||
|
|
||||||
|
cd ${tree_dir_artix}/$git_tree_artix
|
||||||
|
|
||||||
|
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
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -171,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}"
|
||||||
@@ -191,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 ''
|
||||||
@@ -223,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 ;;
|
||||||
@@ -250,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}"
|
|
||||||
|
@@ -22,9 +22,7 @@ import ${LIBDIR}/util-pkg.sh
|
|||||||
commit_pkg(){
|
commit_pkg(){
|
||||||
local git_tree=$(find_tree "${tree_dir_artix}" "${package}")
|
local git_tree=$(find_tree "${tree_dir_artix}" "${package}")
|
||||||
if [[ -n ${git_tree} ]];then
|
if [[ -n ${git_tree} ]];then
|
||||||
cd ${tree_dir_artix}/${git_tree}
|
cd ${tree_dir_artix}/${git_tree}/${package}
|
||||||
|
|
||||||
cd ${package}
|
|
||||||
|
|
||||||
source trunk/PKGBUILD
|
source trunk/PKGBUILD
|
||||||
[[ $arch == 'any' ]] && CARCH=any
|
[[ $arch == 'any' ]] && CARCH=any
|
||||||
@@ -36,22 +34,22 @@ commit_pkg(){
|
|||||||
local pkg=${package}
|
local pkg=${package}
|
||||||
git rm -r trunk
|
git rm -r trunk
|
||||||
else
|
else
|
||||||
local pkg=${package}-$ver
|
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}"
|
msg "Action: [%s] '%s' %s" "${source_repo}" "$pkg" "${action}"
|
||||||
git commit -m "[${source_repo}] '$pkg' ${action}"
|
git commit -m "[${source_repo}] '$pkg' ${action}"
|
||||||
${push} && push_tree
|
|
||||||
else
|
else
|
||||||
local action='modify'
|
local action='modify'
|
||||||
msg "Action: [%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}"
|
||||||
if ${push};then
|
fi
|
||||||
msg "Checking (%s)" "${git_tree}"
|
|
||||||
pull_tree
|
if ${push};then
|
||||||
push_tree
|
msg "Checking (%s)" "${git_tree}"
|
||||||
fi
|
git pull origin master
|
||||||
|
git push origin master
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
error "Package '%s' does not exist!" "${package}"
|
error "Package '%s' does not exist!" "${package}"
|
||||||
@@ -61,9 +59,7 @@ commit_pkg(){
|
|||||||
symlink_commit_pkg(){
|
symlink_commit_pkg(){
|
||||||
local git_tree=$(find_tree "${tree_dir_artix}" "${package}")
|
local git_tree=$(find_tree "${tree_dir_artix}" "${package}")
|
||||||
if [[ -n ${git_tree} ]];then
|
if [[ -n ${git_tree} ]];then
|
||||||
cd ${tree_dir_artix}/${git_tree}
|
cd ${tree_dir_artix}/${git_tree}/${package}
|
||||||
|
|
||||||
cd ${package}
|
|
||||||
|
|
||||||
source trunk/PKGBUILD
|
source trunk/PKGBUILD
|
||||||
[[ $arch == 'any' ]] && CARCH=any
|
[[ $arch == 'any' ]] && CARCH=any
|
||||||
@@ -71,29 +67,33 @@ symlink_commit_pkg(){
|
|||||||
|
|
||||||
if [[ ${source_repo} == 'trunk' ]];then
|
if [[ ${source_repo} == 'trunk' ]];then
|
||||||
local action='add'
|
local action='add'
|
||||||
local dest=${target_repo}-$CARCH
|
local dest="${target_repo}-$CARCH"
|
||||||
|
|
||||||
[[ -d repos/$dest ]] && git rm -r repos/$dest
|
[[ -d repos/$dest ]] && git rm -r repos/$dest
|
||||||
[[ ! -d repos ]] && mkdir repos
|
[[ ! -d repos ]] && mkdir repos
|
||||||
|
[[ ! -d repos/$dest ]] && mkdir repos/$dest
|
||||||
|
|
||||||
cp -r trunk repos/$dest
|
cp trunk/* repos/$dest/
|
||||||
else
|
else
|
||||||
local action='move'
|
local action='move'
|
||||||
local dest=${target_repo}-$CARCH
|
local src="${source_repo}-$CARCH" dest="${target_repo}-$CARCH"
|
||||||
|
|
||||||
cd repos
|
[[ -d repos/$dest ]] && git rm -r repos/$dest
|
||||||
[[ -d $dest ]] && git rm -r $dest
|
[[ ! -d repos ]] && mkdir repos
|
||||||
git mv ${source_repo}-$CARCH $dest
|
[[ ! -d repos/$dest ]] && mkdir repos/$dest
|
||||||
cd ..
|
|
||||||
|
cp repos/$src/* repos/$dest/
|
||||||
|
git rm -r repos/$src
|
||||||
fi
|
fi
|
||||||
|
|
||||||
msg "Action: [%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}"
|
||||||
|
|
||||||
if ${push};then
|
if ${push};then
|
||||||
msg "Checking (%s)" "${git_tree}"
|
msg "Checking (%s)" "${git_tree}"
|
||||||
pull_tree
|
git pull origin master
|
||||||
push_tree
|
git push origin master
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
error "Package '%s' does not exist!" "${package}"
|
error "Package '%s' does not exist!" "${package}"
|
||||||
|
@@ -18,41 +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"
|
||||||
[[ -e $repo_path/${pkgfile##*/} ]] && rm -v $repo_path/${pkgfile##*/}
|
if ${add_pkg};then
|
||||||
[[ -e $repo_path/${pkgfile##*/}.sig ]] && rm -v $repo_path/${pkgfile##*/}.sig
|
local action='add'
|
||||||
fi
|
packages+=("$pkg")
|
||||||
done
|
# checkpkg $pkg
|
||||||
}
|
if ${sign_pkg};then
|
||||||
|
[[ -e ${pkgfile}.sig ]] && rm ${pkgfile}.sig
|
||||||
add_to_repo(){
|
signfile ${pkgfile}
|
||||||
local ver pkgfile=
|
fi
|
||||||
local repo="$1"
|
ln -sf ${pkgfile}{,.sig} $repo_path/
|
||||||
local repo_path=${repos_root}/$repo/os/${target_arch}
|
elif ${del_pkg};then
|
||||||
source PKGBUILD
|
local action='remove'
|
||||||
for name in ${pkgname[@]};do
|
packages+=("$name")
|
||||||
[[ $arch == any ]] && CARCH=any
|
[[ -e $repo_path/$pkg ]] && rm $repo_path/$pkg
|
||||||
ver=$(get_full_version $name)
|
[[ -e $repo_path/$pkg.sig ]] && rm $repo_path/$pkg.sig
|
||||||
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}
|
|
||||||
fi
|
fi
|
||||||
ln -sf ${pkgfile}{,.sig} $repo_path/
|
|
||||||
repo-add -R $repo_path/$repo.db.tar.xz $pkgfile
|
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
cd $repo_path
|
||||||
|
repo-$action -R $repo.$ext ${packages[@]}
|
||||||
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
display_settings(){
|
display_settings(){
|
||||||
@@ -83,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 ''
|
||||||
@@ -100,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 ;;
|
||||||
@@ -115,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
|
|
||||||
|
@@ -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
93
bin/mkpkgclean.in
Normal 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[@]}"
|
@@ -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}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@@ -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}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@@ -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
52
data/base/Makefile
Normal 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
|
@@ -1,8 +1,7 @@
|
|||||||
mkinitcpio-nfs-utils
|
mkinitcpio-nfs-utils
|
||||||
nbd
|
nbd
|
||||||
>openrc artix-live-openrc
|
>openrc artix-live-openrc
|
||||||
|
>runit artix-live-runit
|
||||||
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
|
||||||
|
@@ -60,6 +60,19 @@ ntfs-3g
|
|||||||
>openrc rsync-openrc
|
>openrc rsync-openrc
|
||||||
>openrc wpa_supplicant-openrc
|
>openrc wpa_supplicant-openrc
|
||||||
>openrc opentmpfiles
|
>openrc opentmpfiles
|
||||||
|
>runit runit-artix
|
||||||
|
>runit acpid-runit
|
||||||
|
>runit cronie-runit
|
||||||
|
>runit dbus-runit
|
||||||
|
>runit dhcpcd-runit
|
||||||
|
>runit elogind-runit
|
||||||
|
>runit haveged-runit
|
||||||
|
>runit lvm2-runit
|
||||||
|
>runit mdadm-runit
|
||||||
|
>runit nfs-utils-runit
|
||||||
|
>runit rsync-runit
|
||||||
|
>runit wpa_supplicant-runit
|
||||||
|
>runit opentmpfiles
|
||||||
os-prober
|
os-prober
|
||||||
pacman
|
pacman
|
||||||
pciutils
|
pciutils
|
||||||
|
@@ -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
|
||||||
|
25
data/missing
25
data/missing
@@ -1,25 +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
|
|
||||||
extra/libxkbui
|
|
||||||
extra/libxkbfile
|
|
||||||
extra/libunicodenames
|
|
||||||
extra/mpg123
|
|
||||||
extra/opencl-headers
|
|
@@ -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
31
initcpio/Makefile
Normal 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
|
@@ -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
|
|
@@ -44,19 +44,24 @@ load_profile(){
|
|||||||
[[ -z ${password} ]] && password="artix"
|
[[ -z ${password} ]] && password="artix"
|
||||||
|
|
||||||
if [[ -z ${addgroups} ]];then
|
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,audio,log"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -z ${services[@]} ]];then
|
if [[ -z ${services[@]} ]];then
|
||||||
services=('acpid' 'bluetooth' 'cronie' 'cupsd' 'dbus' 'syslog-ng' 'NetworkManager')
|
services=('acpid' 'bluetooth' 'cronie' 'cupsd' 'dbus' 'syslog-ng' 'NetworkManager')
|
||||||
fi
|
fi
|
||||||
|
|
||||||
[[ ${displaymanager} != "none" ]] && services+=('xdm')
|
if [[ ${displaymanager} != "none" ]];then
|
||||||
|
case "${initsys}" in
|
||||||
|
'openrc') services+=('xdm') ;;
|
||||||
|
'runit') services+=("${displaymanager}") ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ -z ${services_live[@]} ]];then
|
if [[ -z ${services_live[@]} ]];then
|
||||||
services_live=('artix-live' 'pacman-init')
|
services_live=('artix-live' 'pacman-init')
|
||||||
fi
|
fi
|
||||||
|
|
||||||
[[ -z ${netgroups_url} ]] && netgroups_url="https://raw.githubusercontent.com/artix-linux/netgroups/master"
|
[[ -z ${netgroups_url} ]] && netgroups_url="https://raw.githubusercontent.com/artix-linux/netgroups/master"
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
|
@@ -27,14 +27,15 @@ write_bootloader_conf(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
write_servicescfg_conf(){
|
write_servicescfg_conf(){
|
||||||
local conf="$1/servicescfg.conf"
|
local conf="$1/servicescfg.conf" init="$2"
|
||||||
msg2 "Writing %s ..." "${conf##*/}"
|
msg2 "Writing %s ..." "${conf##*/}"
|
||||||
echo '---' > "$conf"
|
echo '---' > "$conf"
|
||||||
|
echo "initsys: $init" >> "$conf"
|
||||||
echo '' >> "$conf"
|
echo '' >> "$conf"
|
||||||
echo 'services:' >> "$conf"
|
echo 'services:' >> "$conf"
|
||||||
echo ' enabled:' >> "$conf"
|
echo ' enabled:' >> "$conf"
|
||||||
for s in ${services[@]};do
|
for svc in ${services[@]};do
|
||||||
echo " - name: $s" >> "$conf"
|
echo " - name: $svc" >> "$conf"
|
||||||
echo ' runlevel: default' >> "$conf"
|
echo ' runlevel: default' >> "$conf"
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
@@ -88,16 +89,14 @@ write_unpack_conf(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
configure_calamares(){
|
configure_calamares(){
|
||||||
local dest="$1" mods="$1/etc/calamares/modules"
|
local dest="$1" mods="$1/etc/calamares/modules" init="$2"
|
||||||
if [[ -d $dest/etc/calamares/modules ]];then
|
if [[ -d $dest/etc/calamares/modules ]];then
|
||||||
info "Configuring [Calamares]"
|
info "Configuring [Calamares]"
|
||||||
write_netinstall_conf "$mods"
|
write_netinstall_conf "$mods"
|
||||||
write_unpack_conf "$mods"
|
write_unpack_conf "$mods"
|
||||||
write_users_conf "$mods"
|
write_users_conf "$mods"
|
||||||
write_initcpio_conf "$mods"
|
write_initcpio_conf "$mods"
|
||||||
case ${initsys} in
|
write_servicescfg_conf "$mods" "$init"
|
||||||
'openrc') write_servicescfg_conf "$mods" ;;
|
|
||||||
esac
|
|
||||||
write_bootloader_conf "$mods"
|
write_bootloader_conf "$mods"
|
||||||
info "Done configuring [Calamares]"
|
info "Done configuring [Calamares]"
|
||||||
fi
|
fi
|
||||||
|
@@ -139,6 +139,14 @@ add_svc_rc(){
|
|||||||
fi
|
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(){
|
set_xdm(){
|
||||||
if [[ -f $1/etc/conf.d/xdm ]];then
|
if [[ -f $1/etc/conf.d/xdm ]];then
|
||||||
local conf='DISPLAYMANAGER="'${displaymanager}'"'
|
local conf='DISPLAYMANAGER="'${displaymanager}'"'
|
||||||
@@ -173,6 +181,14 @@ configure_services(){
|
|||||||
add_svc_rc "$mnt" "$svc" "default"
|
add_svc_rc "$mnt" "$svc" "default"
|
||||||
done
|
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
|
esac
|
||||||
info "Done configuring [%s]" "${initsys}"
|
info "Done configuring [%s]" "${initsys}"
|
||||||
}
|
}
|
||||||
@@ -180,7 +196,7 @@ configure_services(){
|
|||||||
configure_system(){
|
configure_system(){
|
||||||
local mnt="$1"
|
local mnt="$1"
|
||||||
case ${initsys} in
|
case ${initsys} in
|
||||||
'openrc')
|
'openrc' | 'runit')
|
||||||
configure_logind "$mnt" "elogind"
|
configure_logind "$mnt" "elogind"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@@ -242,7 +258,7 @@ configure_live_image(){
|
|||||||
configure_hosts "$fs"
|
configure_hosts "$fs"
|
||||||
configure_system "$fs"
|
configure_system "$fs"
|
||||||
configure_services "$fs"
|
configure_services "$fs"
|
||||||
configure_calamares "$fs"
|
configure_calamares "$fs" "${initsys}"
|
||||||
write_live_session_conf "$fs"
|
write_live_session_conf "$fs"
|
||||||
msg "Done configuring [livefs]"
|
msg "Done configuring [livefs]"
|
||||||
}
|
}
|
||||||
@@ -388,6 +404,7 @@ gen_iso_fn(){
|
|||||||
local vars=() name
|
local vars=() name
|
||||||
vars+=("${iso_name}")
|
vars+=("${iso_name}")
|
||||||
vars+=("${profile}")
|
vars+=("${profile}")
|
||||||
|
[[ ${initsys} == 'runit' ]] && vars+=("${initsys}")
|
||||||
vars+=("${iso_version}")
|
vars+=("${iso_version}")
|
||||||
vars+=("${target_arch}")
|
vars+=("${target_arch}")
|
||||||
for n in ${vars[@]};do
|
for n in ${vars[@]};do
|
||||||
|
@@ -68,6 +68,11 @@ 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
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -119,62 +124,75 @@ is_valid_repo(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
find_repo(){
|
find_repo(){
|
||||||
local pkg="$1" repo=
|
local pkg="$1" incl="$2" repo=
|
||||||
|
|
||||||
if [[ -d $pkg/repos/core-x86_64 ]];then
|
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
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -191,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
|
||||||
}
|
}
|
||||||
|
@@ -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=""
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user