Compare commits

..

70 Commits

Author SHA1 Message Date
udeved
e5211838e8 Merge branch 'devel' of github.com:artix-linux/artools 2018-04-17 21:28:02 +02:00
udeved
441c97730b util-iso: append if runit to iso filename 2018-04-15 03:08:47 +02:00
udeved
8ca984325a util-iso-profiles: make setting DM easy to expand 2018-04-15 02:57:17 +02:00
artoo
3c4fc6e00b Merge pull request #42 from konimex/devel
Add initial runit support
2018-04-15 00:05:10 +02:00
udeved
20a20ee8bb buildiso: set the DM on runit 2018-04-14 22:44:30 +02:00
2aae876d98 Detect the service directory using the correct check.
I was an idiot..
2018-04-14 21:16:24 +07:00
a19379596d Add initial runit support 2018-04-14 21:15:49 +07:00
udeved
af8ab5fd1e buildiso: runit support for servicescfg 2018-04-14 10:37:10 +02:00
artoo
1c56ce7f8c Merge pull request #63 from artix-linux/devel
Devel
2018-04-11 17:14:38 +02:00
udeved
f80c5bf587 Makefile: clean up iso install & uninstall 2018-04-11 17:11:35 +02:00
udeved
d5c8af7025 initcpio: fix uninstall 2018-04-11 12:31:05 +02:00
udeved
12a41ec0b2 Makefile: fix sub makes 2018-04-11 12:23:52 +02:00
udeved
b5eb287867 Makefile: use CPIODIR 2018-04-11 12:18:12 +02:00
udeved
3e4fbd892e readme: fix typo 2018-04-11 11:56:11 +02:00
udeved
dca96f29d7 readme: update 2018-04-11 11:49:24 +02:00
udeved
a382bdc83a Makefile: split initcpio 2018-04-11 11:26:54 +02:00
udeved
b73aec6031 initcpio: add makefile 2018-04-11 11:26:35 +02:00
udeved
88f1145c96 Makefile: split base profile in sep. Makefile 2018-04-11 11:03:36 +02:00
udeved
43bc1d149a Makefile: add default mode 2018-04-10 15:30:14 +02:00
udeved
ffa532591c Makefile: cleanup uninstall 2018-04-10 15:22:11 +02:00
udeved
f9f8ca6b68 Makefile: define overlaydir 2018-04-10 14:25:55 +02:00
udeved
dbc3a94906 Makefile: add condition flags 2018-04-10 11:55:19 +02:00
udeved
8e4b5f88ca start 0.8 2018-04-10 00:32:26 +02:00
udeved
104cc0b1ef data: fix base profile fstab 2018-04-10 00:29:07 +02:00
udeved
ce790fcaab Makefile: fix uninstall 2018-04-10 00:28:11 +02:00
udeved
2d03e16a5f buildiso: add goblins repo support 2018-04-08 14:17:41 +02:00
udeved
64e0badbac Makefile: add buildiso-goblins symlink 2018-04-08 14:13:14 +02:00
udeved
a94afab8a0 readme: update 2018-04-07 16:30:01 +02:00
artoo
1d3c77dc73 Merge pull request #62 from artix-linux/devel
deploypkg: simplify code in update_repo()
2018-04-07 12:03:33 +02:00
udeved
1cccece399 deploypkg: simplify code in update_repo() 2018-04-06 23:05:15 +02:00
artoo
cc8b47912e Merge pull request #61 from artix-linux/devel
Devel
2018-04-06 22:19:26 +02:00
udeved
f36cf35d9a deploypkg: enable checkpkg on add 2018-04-06 22:17:46 +02:00
udeved
cca5283db6 deploypkg: optimize pacman db access 2018-04-06 22:04:39 +02:00
udeved
d6bf8bcf12 util-pkg: check for PKGBUILD instead of checking for repo dir in find_repo() 2018-04-06 21:04:49 +02:00
udeved
88886de9e9 remove vbox from base Packages-Live 2018-03-31 11:19:53 +02:00
artoo
55b0cd4ae2 Merge pull request #59 from artix-linux/devel
Devel
2018-03-30 23:39:01 +02:00
udeved
84a51f4a9e buildtree: code cleanup 2018-03-30 23:27:55 +02:00
udeved
87ad3a631a buildtree: add option to import from trunk, defaults to repos/$repo 2018-03-30 16:15:50 +02:00
udeved
2a70b5f123 commitpkg: quote some vars 2018-03-30 16:15:18 +02:00
udeved
3106e8975f commitpkg: make move more safe; prevent unwanted subdir in $repo in few cases 2018-03-30 02:18:25 +02:00
udeved
4a02e2d7be buildtree: init unstable false
unstable repos are only included on -x
2018-03-28 21:15:12 +02:00
udeved
4363421ce8 mkchrootpkg: revert fix verifysource with pacman-git until new pacman version 2018-03-27 20:38:38 +02:00
udeved
4b96a54347 buildtree: add -x to disable arch unstale kde and gnome when comparing 2018-03-27 20:12:59 +02:00
udeved
0ad953ead8 mkchrootpkg: port arch patch 2018-03-27 19:05:42 +02:00
udeved
45ebe43272 buildtree: fix upate display by sourcing the repo build instead of trunk 2018-03-27 19:04:58 +02:00
udeved
1c64fe7f69 commitpkg: make move more safe 2018-03-22 11:16:02 +01:00
udeved
c2a030b016 mkpkgclean: fix pretend 2018-03-18 16:44:25 +01:00
udeved
94670e18e7 add mkpkgclean 2018-03-18 16:20:00 +01:00
udeved
5c835b6e2c deploypkg: navigate in the repo dir in order to make old package removal work on repo-add 2018-03-18 15:47:53 +01:00
udeved
3f803be6b8 buildtree: clean view 2018-03-17 01:23:54 +01:00
udeved
70b81d7ff8 buildtree: view arch 2018-03-16 19:04:41 +01:00
udeved
12a34bd5a2 buildtree: add option to view depends of a given pkg 2018-03-16 18:53:59 +01:00
udeved
11504d3267 buildtree: fix checkdepends msg 2018-03-15 17:16:55 +01:00
udeved
203df20e76 commitpkg: prevent trunk dir copy in certain cases 2018-03-14 09:32:57 +01:00
udeved
184259c600 Merge branch 'devel' of github.com:artix-linux/artools 2018-03-12 21:50:29 +01:00
udeved
b95c7dee0d mkchrootpkg: reenable ctty workaround 2018-03-12 21:49:20 +01:00
udeved
c7c67fbc21 buildtree: show arch kde and gnome unstable 2018-03-12 21:47:34 +01:00
artoo
21a5c7e916 Merge pull request #57 from artix-linux/devel
Devel
2018-03-05 17:15:21 +01:00
udeved
62810d1d85 rm lists, pipelines 2018-03-05 17:09:19 +01:00
udeved
865bd20674 buildtree: add -z switch to skip arch sync 2018-03-04 23:13:41 +01:00
artoo
b46b5c626e Merge pull request #54 from artix-linux/devel
Devel
2018-02-21 01:11:10 +01:00
udeved
9ac4576666 upd missing pkgs list 2018-02-21 01:07:17 +01:00
udeved
a88f196217 commitpkh: clean up 2018-02-21 01:06:48 +01:00
udeved
c0e8ef4c26 buildiso: default to linux kernel 2018-02-19 23:59:39 +01:00
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
24 changed files with 620 additions and 936 deletions

236
Makefile
View File

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

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

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

View File

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

View File

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

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

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

View File

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

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

View File

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

31
initcpio/Makefile Normal file
View File

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

View File

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

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

View File

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

View File

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

View File

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

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=""