Compare commits

...

60 Commits

Author SHA1 Message Date
e10571eac0 util-iso-grub: create unicode fontinstead of copying 2018-06-21 23:52:31 +02:00
045ed9e895 Merge branch 'master' of github.com:artix-linux/artools into devel 2018-06-19 21:34:46 +02:00
60e77a878c readd locale backup 2018-06-19 21:34:23 +02:00
69d3897abb makefile: bump chroot version 2018-06-19 20:35:37 +02:00
90060a3851 mkchroot: fix dbus-uuidgen call 2018-06-19 20:12:32 +02:00
1bc756ec15 rm old code 2018-06-19 14:47:58 +02:00
26daf3aaa0 basestrap: improve resolv.conf mounting 2018-06-19 13:10:01 +02:00
c772bf8ea1 simplify chroot traps & mounting 2018-06-19 10:15:29 +02:00
caccd55fc1 util-chroot: fix locale 2018-06-19 09:47:44 +02:00
a2b31b72a0 fstabgen: add support for prefix matching 2018-06-18 21:54:41 +02:00
1beb5131ce disable crypto_speck module on linux import 2018-06-13 14:47:28 +02:00
udeved
ef794a0b85 mkchrootpkg: whitelist return code 14 from makepkg 2018-05-31 18:07:31 +02:00
udeved
aa12fc42bd buildtree: quote version vars 2018-05-29 17:29:07 +02:00
udeved
50f90ab53c mkchrootpkg: arch patches 2018-05-29 13:30:32 +02:00
udeved
63137eb046 util-iso-yaml: fix settings.conf path 2018-05-28 13:06:59 +02:00
udeved
92ec5eb194 util-iso-yaml: adopt runitcfg changes 2018-05-28 10:10:12 +02:00
udeved
f8e07c66c1 util-iso-grub: rm i686 support 2018-05-28 09:23:16 +02:00
udeved
2130eea235 initcpio: rm i686 from kms 2018-05-28 09:22:54 +02:00
udeved
58fc4bbe45 buildiso: remove kernel opt 2018-05-28 09:01:32 +02:00
udeved
591ae02d55 mkchrootpkg: update for pacman-5.1 2018-05-28 09:00:49 +02:00
udeved
6311233f73 util-iso-yaml: adopt calamares modules changes 2018-05-27 22:47:36 +02:00
udeved
398e91bdd9 deploypkg: add repo action check 2018-05-12 23:13:26 +00:00
udeved
d1f4c03e05 mkchrootpkg: add /etc/shadow entry for builduser for sudo 1.8.23 2018-05-12 09:28:57 +00:00
udeved
180decbc5e gitignore: update 2018-04-28 20:20:08 +02:00
udeved
943c0c36ea util-iso-profile: support base in git repo if present 2018-04-28 20:19:50 +02:00
udeved
60116e9f93 update pacman.conf files 2018-04-28 02:16:19 +02:00
udeved
eea5d31427 uril-iso-profile: split the path setters in init_profile() 2018-04-27 11:10:15 +02:00
udeved
d05e8700ef util-profile: update defaults 2018-04-26 22:59:44 +02:00
udeved
1d310e18e9 buildtree: add braodcom-wl to patch_pkg() 2018-04-26 22:41:32 +02:00
udeved
baf290d3aa Makefile: rm base profile 2018-04-26 19:37:37 +02:00
udeved
1f379eec51 Merge branch 'devel' of github.com:artix-linux/artools 2018-04-26 19:32:55 +02:00
udeved
c4d1425c46 move base profile in iso-profiles 2018-04-26 19:30:59 +02:00
udeved
e5211838e8 Merge branch 'devel' of github.com:artix-linux/artools 2018-04-17 21:28:02 +02:00
udeved
441c97730b util-iso: append if runit to iso filename 2018-04-15 03:08:47 +02:00
udeved
8ca984325a util-iso-profiles: make setting DM easy to expand 2018-04-15 02:57:17 +02:00
artoo
3c4fc6e00b Merge pull request #42 from konimex/devel
Add initial runit support
2018-04-15 00:05:10 +02:00
udeved
20a20ee8bb buildiso: set the DM on runit 2018-04-14 22:44:30 +02:00
2aae876d98 Detect the service directory using the correct check.
I was an idiot..
2018-04-14 21:16:24 +07:00
a19379596d Add initial runit support 2018-04-14 21:15:49 +07:00
udeved
af8ab5fd1e buildiso: runit support for servicescfg 2018-04-14 10:37:10 +02:00
artoo
1c56ce7f8c Merge pull request #63 from artix-linux/devel
Devel
2018-04-11 17:14:38 +02:00
udeved
f80c5bf587 Makefile: clean up iso install & uninstall 2018-04-11 17:11:35 +02:00
udeved
d5c8af7025 initcpio: fix uninstall 2018-04-11 12:31:05 +02:00
udeved
12a41ec0b2 Makefile: fix sub makes 2018-04-11 12:23:52 +02:00
udeved
b5eb287867 Makefile: use CPIODIR 2018-04-11 12:18:12 +02:00
udeved
3e4fbd892e readme: fix typo 2018-04-11 11:56:11 +02:00
udeved
dca96f29d7 readme: update 2018-04-11 11:49:24 +02:00
udeved
a382bdc83a Makefile: split initcpio 2018-04-11 11:26:54 +02:00
udeved
b73aec6031 initcpio: add makefile 2018-04-11 11:26:35 +02:00
udeved
88f1145c96 Makefile: split base profile in sep. Makefile 2018-04-11 11:03:36 +02:00
udeved
43bc1d149a Makefile: add default mode 2018-04-10 15:30:14 +02:00
udeved
ffa532591c Makefile: cleanup uninstall 2018-04-10 15:22:11 +02:00
udeved
f9f8ca6b68 Makefile: define overlaydir 2018-04-10 14:25:55 +02:00
udeved
dbc3a94906 Makefile: add condition flags 2018-04-10 11:55:19 +02:00
udeved
8e4b5f88ca start 0.8 2018-04-10 00:32:26 +02:00
udeved
104cc0b1ef data: fix base profile fstab 2018-04-10 00:29:07 +02:00
udeved
ce790fcaab Makefile: fix uninstall 2018-04-10 00:28:11 +02:00
udeved
2d03e16a5f buildiso: add goblins repo support 2018-04-08 14:17:41 +02:00
udeved
64e0badbac Makefile: add buildiso-goblins symlink 2018-04-08 14:13:14 +02:00
udeved
a94afab8a0 readme: update 2018-04-07 16:30:01 +02:00
38 changed files with 627 additions and 655 deletions

2
.gitignore vendored
View File

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

229
Makefile
View File

@@ -1,9 +1,39 @@
Version=0.7 VERSION=0.8
Chroot_version=0.7 CHROOT_VERSION=0.8
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
SYSCONF = \ SYSCONF = \
data/artools.conf data/artools.conf
@@ -63,159 +93,138 @@ 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_iso: install_cpio
install -dm0755 $(DESTDIR)$(PREFIX)/share/artools/iso-profiles/base install $(DIRMODE) $(DESTDIR)$(BINDIR)
install -m0644 ${BASE} $(DESTDIR)$(PREFIX)/share/artools/iso-profiles/base install $(MODE) $(BIN_ISO) $(DESTDIR)$(BINDIR)
install -dm0755 $(DESTDIR)$(PREFIX)/share/artools/iso-profiles/base/live-overlay/etc for l in $(BIN_ISO_SYMS); do $(LN) buildiso $(DESTDIR)$(BINDIR)/$$l; done
install -m0644 ${LIVE_ETC} $(DESTDIR)$(PREFIX)/share/artools/iso-profiles/base/live-overlay/etc
install -dm0755 $(DESTDIR)$(PREFIX)/share/artools/iso-profiles/base/live-overlay/etc/default install $(DIRMODE) $(DESTDIR)$(LIBDIR)/$(TOOLS)
install -m0644 ${LIVE_ETC_DEFAULT} $(DESTDIR)$(PREFIX)/share/artools/iso-profiles/base/live-overlay/etc/default install $(FILEMODE) $(LIBS_ISO) $(DESTDIR)$(LIBDIR)/$(TOOLS)
install -dm0755 $(DESTDIR)$(PREFIX)/share/artools/iso-profiles/base/live-overlay/etc/pam.d install $(DIRMODE) $(DESTDIR)$(DATADIR)/$(TOOLS)
install -m0644 ${LIVE_ETC_PAM} $(DESTDIR)$(PREFIX)/share/artools/iso-profiles/base/live-overlay/etc/pam.d install $(FILEMODE) $(SHARED_ISO) $(DESTDIR)$(DATADIR)/$(TOOLS)
install -dm0755 $(DESTDIR)$(PREFIX)/share/artools/iso-profiles/base/live-overlay/etc/sudoers.d
install -m0644 ${LIVE_ETC_SUDOERS} $(DESTDIR)$(PREFIX)/share/artools/iso-profiles/base/live-overlay/etc/sudoers.d
install_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_iso: uninstall_cpio
for f in ${BIN_ISO}; do rm -f $(DESTDIR)$(PREFIX)/bin/$$f; done for f in $(notdir $(BIN_ISO)); do $(RM) $(DESTDIR)$(BINDIR)/$$f; done
rm -f $(DESTDIR)$(PREFIX)/bin/buildiso-gremlins for l in $(notdir $(BIN_ISO_SYMS)); do $(RM) $(DESTDIR)$(BINDIR)/$$l; done
for f in ${SHARED_ISO}; do rm -f $(DESTDIR)$(PREFIX)/share/artools/$$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
for f in ${LIBS_ISO}; do rm -f $(DESTDIR)$(PREFIX)/lib/artools/$$f; done ifeq ($(WITH-PKG),yes)
for f in ${CPIOHOOKS}; do rm -f $(DESTDIR)$(SYSCONFDIR)/initcpio/hooks/$$f; done
for f in ${CPIOINST}; do rm -f $(DESTDIR)$(SYSCONFDIR)/initcpio/install/$$f; done
for f in ${CPIO}; do rm -f $(DESTDIR)$(SYSCONFDIR)/initcpio/$$f; done
install: install_base install_pkg install_iso install_isobase install: install_pkg
uninstall: uninstall_base uninstall_pkg uninstall_iso uninstall_isobase 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

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

View File

@@ -20,6 +20,26 @@ import ${LIBDIR}/util.sh
import ${LIBDIR}/util-mount.sh import ${LIBDIR}/util-mount.sh
import ${LIBDIR}/util-chroot.sh import ${LIBDIR}/util-chroot.sh
copy_mirrorlist(){
cp -a /etc/pacman.d/mirrorlist "$1/etc/pacman.d/"
}
copy_keyring(){
if [[ -d /etc/pacman.d/gnupg ]] && [[ ! -d $1/etc/pacman.d/gnupg ]]; then
cp -a /etc/pacman.d/gnupg "$1/etc/pacman.d/"
fi
}
create_min_fs(){
msg "Creating install root at %s" "$1"
mkdir -m 0755 -p $1/var/{cache/pacman/pkg,lib/pacman,log} $1/{dev,etc}
mkdir -m 1777 -p $1/{tmp,run}
mkdir -m 0555 -p $1/{sys,proc}
# if [[ ! -f $1/etc/machine-id ]];then
# touch $1/etc/machine-id
# fi
}
newroot=/mnt newroot=/mnt
hostcache=false hostcache=false

View File

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

View File

@@ -67,18 +67,18 @@ show_version_table(){
local archver=$(get_full_version $pkg) local archver=$(get_full_version $pkg)
fi fi
if ${artix};then if ${artix};then
if [ $(vercmp $artixver $archver) -eq 0 ] || [ $(vercmp $artixver $archver) -gt 0 ];then if [ $(vercmp "$artixver" "$archver") -eq 0 ] || [ $(vercmp "$artixver" "$archver") -gt 0 ];then
local ar=$(arch_to_artix_repo "$artixrepo") local ar=$(arch_to_artix_repo "$artixrepo")
case $ar in case $ar in
*goblins) *goblins)
if [[ $archrepo == $artixrepo ]];then if [[ "$archrepo" == "$artixrepo" ]];then
msg_row "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver" msg_row "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver"
else else
msg_row_notify "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver" msg_row_notify "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver"
fi fi
;; ;;
*gremlins) *gremlins)
if [[ $archrepo == $artixrepo ]];then if [[ "$archrepo" == "$artixrepo" ]];then
msg_row "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver" msg_row "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver"
else else
msg_row_notify "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver" msg_row_notify "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver"
@@ -87,11 +87,11 @@ show_version_table(){
esac esac
fi fi
else else
if [ $(vercmp $artixver $archver) -lt 0 ];then if [ $(vercmp "$artixver" "$archver") -lt 0 ];then
local ar=$(arch_to_artix_repo "$artixrepo") local ar=$(arch_to_artix_repo "$artixrepo")
${upgrades} && msg_row_upgrade "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver" ${upgrades} && msg_row_upgrade "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver"
fi fi
if [ $(vercmp $artixver $archver) -gt 0 ];then if [ $(vercmp "$artixver" "$archver") -gt 0 ];then
local ar=$(arch_to_artix_repo "$artixrepo") local ar=$(arch_to_artix_repo "$artixrepo")
if [[ -n $archver ]] && [[ -n $archrepo ]];then if [[ -n $archver ]] && [[ -n $archrepo ]];then
${downgrades} && msg_row_downgrade "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver" ${downgrades} && msg_row_downgrade "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver"

View File

@@ -93,9 +93,9 @@ copy_hostconf () {
} }
chroot_extra_mount() { chroot_extra_mount() {
chroot_mount "/etc/resolv.conf" "$1/etc/resolv.conf" -B chroot_add_resolv_conf "$1"
chroot_mount "/etc/hosts" "$1/etc/hosts" -B # chroot_mount "/etc/hosts" "$1/etc/hosts" -B
chroot_mount_conditional "[[ -e $1/etc/machine-id ]]" "/etc/machine-id" "$1/etc/machine-id" -B # chroot_mount_conditional "[[ -e $1/etc/machine-id ]]" "/etc/machine-id" "$1/etc/machine-id" -B
chroot_mount "${cache_dirs[0]}" "$1${cache_dirs[0]}" -B chroot_mount "${cache_dirs[0]}" "$1${cache_dirs[0]}" -B
for cache_dir in ${cache_dirs[@]:1}; do for cache_dir in ${cache_dirs[@]:1}; do

View File

@@ -46,7 +46,7 @@ update_repo(){
fi fi
done done
cd $repo_path cd $repo_path
repo-$action -R $repo.$ext ${packages[@]} [[ -n $action ]] && repo-$action -R $repo.$ext ${packages[@]}
return 0 return 0
} }

View File

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

View File

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

View File

@@ -156,16 +156,17 @@ prepare_chroot() {
# We can't use useradd without chrooting, otherwise it invokes PAM modules # We can't use useradd without chrooting, otherwise it invokes PAM modules
# which we might not be able to load (i.e. when building i686 packages on # which we might not be able to load (i.e. when building i686 packages on
# an x86_64 host). # an x86_64 host).
sed -e '/^builduser:/d' -i "$copydir"/etc/{passwd,group} sed -e '/^builduser:/d' -i "$copydir"/etc/{passwd,shadow,group}
printf >>"$copydir/etc/group" 'builduser:x:%d:\n' $builduser_gid printf >>"$copydir/etc/group" 'builduser:x:%d:\n' $builduser_gid
printf >>"$copydir/etc/passwd" 'builduser:x:%d:%d:builduser:/build:/bin/bash\n' $builduser_uid $builduser_gid printf >>"$copydir/etc/passwd" 'builduser:x:%d:%d:builduser:/build:/bin/bash\n' $builduser_uid $builduser_gid
printf >>"$copydir/etc/shadow" 'builduser:!!:%d::::::\n' "$(( $(date -u +%s) / 86400 ))"
$install -d "$copydir"/{build,build/.gnupg,startdir,{pkg,srcpkg,src,log}dest} $install -d "$copydir"/{build,build/.gnupg,startdir,{pkg,srcpkg,src,log}dest}
for x in .gnupg/pubring.{kbx,gpg}; do # for x in .gnupg/pubring.{kbx,gpg}; do
[[ -r $USER_HOME/$x ]] || continue # [[ -r $USER_HOME/$x ]] || continue
$install -m 644 "$USER_HOME/$x" "$copydir/build/$x" # $install -m 644 "$USER_HOME/$x" "$copydir/build/$x"
done # done
sed -e '/^MAKEFLAGS=/d' -e '/^PACKAGER=/d' -i "$copydir/etc/makepkg.conf" sed -e '/^MAKEFLAGS=/d' -e '/^PACKAGER=/d' -i "$copydir/etc/makepkg.conf"
for x in BUILDDIR=/build PKGDEST=/pkgdest SRCPKGDEST=/srcpkgdest SRCDEST=/srcdest LOGDEST=/logdest \ for x in BUILDDIR=/build PKGDEST=/pkgdest SRCPKGDEST=/srcpkgdest SRCDEST=/srcdest LOGDEST=/logdest \
@@ -211,9 +212,15 @@ _chrootbuild() {
# workaround meson locale errors # workaround meson locale errors
# supposedly fixed with coming python-3.7 # 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 "$@"
ret=$?
case $ret in
0|14) return 0;;
*) return $ret;;
esac
} }
_chrootnamcap() { _chrootnamcap() {
@@ -234,8 +241,8 @@ download_sources() {
local builddir local builddir
builddir="$(mktemp -d)" builddir="$(mktemp -d)"
chmod 1777 "$builddir" # chmod 1777 "$builddir"
# chown "$makepkg_user:$makepkg_user" "$builddir" chown "$makepkg_user:" "$builddir"
# Ensure sources are downloaded # Ensure sources are downloaded
sudo -u "$makepkg_user" --preserve-env=GNUPGHOME \ sudo -u "$makepkg_user" --preserve-env=GNUPGHOME \

View File

@@ -35,9 +35,6 @@
# unset defaults to given value # unset defaults to given value
# kernel="linux" # kernel="linux"
# custom additional kernel args
# kernel_args=""
# gpg key; leave empty or commented to skip sfs signing # gpg key; leave empty or commented to skip sfs signing
# gpgkey="" # gpgkey=""

View File

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

View File

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

View File

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

View File

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

View File

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

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

View File

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

View File

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

View File

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

View File

@@ -1,3 +1,4 @@
#!/hint/bash
# #
# /etc/makepkg.conf # /etc/makepkg.conf
# #
@@ -8,9 +9,10 @@
# #
#-- The download utilities that makepkg should use to acquire sources #-- The download utilities that makepkg should use to acquire sources
# Format: 'protocol::agent' # Format: 'protocol::agent'
DLAGENTS=('ftp::/usr/bin/curl -fC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u' DLAGENTS=('file::/usr/bin/curl -gqC - -o %o %u'
'http::/usr/bin/curl -fLC - --retry 3 --retry-delay 3 -o %o %u' 'ftp::/usr/bin/curl -gqfC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u'
'https::/usr/bin/curl -fLC - --retry 3 --retry-delay 3 -o %o %u' 'http::/usr/bin/curl -gqb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
'https::/usr/bin/curl -gqb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
'rsync::/usr/bin/rsync --no-motd -z %u %o' 'rsync::/usr/bin/rsync --no-motd -z %u %o'
'scp::/usr/bin/scp -C %u %o') 'scp::/usr/bin/scp -C %u %o')
@@ -34,8 +36,6 @@ CARCH="x86_64"
CHOST="x86_64-pc-linux-gnu" CHOST="x86_64-pc-linux-gnu"
#-- Compiler and Linker Flags #-- Compiler and Linker Flags
# -march (or -mcpu) builds exclusively for an architecture
# -mtune optimizes for an architecture, but builds for whole processor family
CPPFLAGS="-D_FORTIFY_SOURCE=2" CPPFLAGS="-D_FORTIFY_SOURCE=2"
CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt" CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt"
CXXFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt" CXXFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt"
@@ -50,7 +50,7 @@ DEBUG_CXXFLAGS="-g -fvar-tracking-assignments"
# BUILD ENVIRONMENT # BUILD ENVIRONMENT
######################################################################### #########################################################################
# #
# Defaults: BUILDENV=(!distcc color !ccache check !sign) # Defaults: BUILDENV=(!distcc !color !ccache check !sign)
# A negated environment option will do the opposite of the comments below. # A negated environment option will do the opposite of the comments below.
# #
#-- distcc: Use the Distributed C/C++/ObjC compiler #-- distcc: Use the Distributed C/C++/ObjC compiler
@@ -73,7 +73,7 @@ BUILDENV=(!distcc color !ccache check !sign)
# These are default values for the options=() settings # These are default values for the options=() settings
######################################################################### #########################################################################
# #
# Default: OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !optipng !upx !debug) # Default: OPTIONS=(!strip docs libtool staticlibs emptydirs !zipman !purge !debug)
# A negated option will do the opposite of the comments below. # A negated option will do the opposite of the comments below.
# #
#-- strip: Strip symbols from binaries/libraries #-- strip: Strip symbols from binaries/libraries
@@ -83,11 +83,9 @@ BUILDENV=(!distcc color !ccache check !sign)
#-- emptydirs: Leave empty directories in packages #-- emptydirs: Leave empty directories in packages
#-- zipman: Compress manual (man and info) pages in MAN_DIRS with gzip #-- zipman: Compress manual (man and info) pages in MAN_DIRS with gzip
#-- purge: Remove files specified by PURGE_TARGETS #-- purge: Remove files specified by PURGE_TARGETS
#-- upx: Compress binary executable files using UPX
#-- optipng: Optimize PNG images with optipng
#-- debug: Add debugging flags as specified in DEBUG_* variables #-- debug: Add debugging flags as specified in DEBUG_* variables
# #
OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !optipng !upx !debug) OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !debug)
#-- File integrity checks to use. Valid: md5, sha1, sha256, sha384, sha512 #-- File integrity checks to use. Valid: md5, sha1, sha256, sha384, sha512
INTEGRITY_CHECK=(md5) INTEGRITY_CHECK=(md5)
@@ -103,6 +101,8 @@ MAN_DIRS=({usr{,/local}{,/share},opt/*}/{man,info})
DOC_DIRS=(usr/{,local/}{,share/}{doc,gtk-doc} opt/*/{doc,gtk-doc}) DOC_DIRS=(usr/{,local/}{,share/}{doc,gtk-doc} opt/*/{doc,gtk-doc})
#-- Files to be removed from all packages (if purge is specified) #-- Files to be removed from all packages (if purge is specified)
PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod) PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod)
#-- Directory to store source code in for debug packages
DBGSRCDIR="/usr/src/debug"
######################################################################### #########################################################################
# PACKAGE OUTPUT # PACKAGE OUTPUT
@@ -143,5 +143,3 @@ COMPRESSZ=(compress -c -f)
# #
PKGEXT='.pkg.tar.xz' PKGEXT='.pkg.tar.xz'
SRCEXT='.src.tar.gz' SRCEXT='.src.tar.gz'
# vim: set ft=sh ts=2 sw=2 et:

View File

@@ -44,7 +44,7 @@ LocalFileSigLevel = Optional
# NOTE: You must run `pacman-key --init` before first using pacman; the local # NOTE: You must run `pacman-key --init` before first using pacman; the local
# keyring can then be populated with the keys of all official Artix Linux # keyring can then be populated with the keys of all official Artix Linux
# packagers with `pacman-key --populate archlinux cromnix`. # packagers with `pacman-key --populate archlinux artix`.
# #
# REPOSITORIES # REPOSITORIES
@@ -63,6 +63,14 @@ LocalFileSigLevel = Optional
# #
# The header [repo-name] is crucial - it must be present and # The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo. # uncommented to enable the repo.
#
# The gremlins repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.
#[gremlins]
#Include = /etc/pacman.d/mirrorlist
[system] [system]
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
@@ -70,15 +78,45 @@ Include = /etc/pacman.d/mirrorlist
[world] [world]
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
#[galaxy-gremlins]
#Include = /etc/pacman.d/mirrorlist
[galaxy] [galaxy]
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
# If you want to run 32 bit applications on your x86_64 system,
# enable the lib32 repositories as required here.
#[lib32-gremlins]
#Include = /etc/pacman.d/mirrorlist
#[lib32]
#Include = /etc/pacman.d/mirrorlist
# An example of a custom package repository. See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs
# #
# ARCHLINUX # ARCHLINUX
# #
#[testing]
#Include = /etc/pacman.d/mirrorlist-arch
[extra] [extra]
Include = /etc/pacman.d/mirrorlist-arch Include = /etc/pacman.d/mirrorlist-arch
#[community-testing]
#Include = /etc/pacman.d/mirrorlist-arch
[community] [community]
Include = /etc/pacman.d/mirrorlist-arch Include = /etc/pacman.d/mirrorlist-arch
#[multilib-testing]
#Include = /etc/pacman.d/mirrorlist-arch
#[multilib]
#Include = /etc/pacman.d/mirrorlist-arch

View File

@@ -44,7 +44,7 @@ LocalFileSigLevel = Optional
# NOTE: You must run `pacman-key --init` before first using pacman; the local # NOTE: You must run `pacman-key --init` before first using pacman; the local
# keyring can then be populated with the keys of all official Artix Linux # keyring can then be populated with the keys of all official Artix Linux
# packagers with `pacman-key --populate archlinux cromnix`. # packagers with `pacman-key --populate archlinux artix`.
# #
# REPOSITORIES # REPOSITORIES
@@ -63,6 +63,11 @@ LocalFileSigLevel = Optional
# #
# The header [repo-name] is crucial - it must be present and # The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo. # uncommented to enable the repo.
#
# The gremlins repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.
[goblins] [goblins]
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
@@ -85,6 +90,24 @@ Include = /etc/pacman.d/mirrorlist
[galaxy] [galaxy]
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
# If you want to run 32 bit applications on your x86_64 system,
# enable the lib32 repositories as required here.
#[lib32-goblins]
#Include = /etc/pacman.d/mirrorlist
#[lib32-gremlins]
#Include = /etc/pacman.d/mirrorlist
#[lib32]
#Include = /etc/pacman.d/mirrorlist
# An example of a custom package repository. See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs
# #
# ARCHLINUX # ARCHLINUX
# #
@@ -106,3 +129,12 @@ Include = /etc/pacman.d/mirrorlist-arch
[community] [community]
Include = /etc/pacman.d/mirrorlist-arch Include = /etc/pacman.d/mirrorlist-arch
#[multilib-staging]
#Include = /etc/pacman.d/mirrorlist-arch
#[multilib-testing]
#Include = /etc/pacman.d/mirrorlist-arch
#[multilib]
#Include = /etc/pacman.d/mirrorlist-arch

View File

@@ -44,7 +44,7 @@ LocalFileSigLevel = Optional
# NOTE: You must run `pacman-key --init` before first using pacman; the local # NOTE: You must run `pacman-key --init` before first using pacman; the local
# keyring can then be populated with the keys of all official Artix Linux # keyring can then be populated with the keys of all official Artix Linux
# packagers with `pacman-key --populate archlinux cromnix`. # packagers with `pacman-key --populate archlinux artix`.
# #
# REPOSITORIES # REPOSITORIES
@@ -63,6 +63,11 @@ LocalFileSigLevel = Optional
# #
# The header [repo-name] is crucial - it must be present and # The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo. # uncommented to enable the repo.
#
# The gremlins repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.
[gremlins] [gremlins]
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
@@ -79,6 +84,21 @@ Include = /etc/pacman.d/mirrorlist
[galaxy] [galaxy]
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
# If you want to run 32 bit applications on your x86_64 system,
# enable the lib32 repositories as required here.
#[lib32-gremlins]
#Include = /etc/pacman.d/mirrorlist
#[lib32]
#Include = /etc/pacman.d/mirrorlist
# An example of a custom package repository. See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs
# #
# ARCHLINUX # ARCHLINUX
# #
@@ -94,3 +114,9 @@ Include = /etc/pacman.d/mirrorlist-arch
[community] [community]
Include = /etc/pacman.d/mirrorlist-arch Include = /etc/pacman.d/mirrorlist-arch
#[multilib-testing]
#Include = /etc/pacman.d/mirrorlist-arch
#[multilib]
#Include = /etc/pacman.d/mirrorlist-arch

View File

@@ -44,7 +44,7 @@ LocalFileSigLevel = Optional
# NOTE: You must run `pacman-key --init` before first using pacman; the local # NOTE: You must run `pacman-key --init` before first using pacman; the local
# keyring can then be populated with the keys of all official Artix Linux # keyring can then be populated with the keys of all official Artix Linux
# packagers with `pacman-key --populate archlinux cromnix`. # packagers with `pacman-key --populate archlinux artix`.
# #
# REPOSITORIES # REPOSITORIES
@@ -63,6 +63,11 @@ LocalFileSigLevel = Optional
# #
# The header [repo-name] is crucial - it must be present and # The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo. # uncommented to enable the repo.
#
# The gremlins repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.
[goblins] [goblins]
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
@@ -85,6 +90,9 @@ Include = /etc/pacman.d/mirrorlist
[galaxy] [galaxy]
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
# If you want to run 32 bit applications on your x86_64 system,
# enable the lib32 repositories as required here.
[lib32-goblins] [lib32-goblins]
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
@@ -94,7 +102,13 @@ Include = /etc/pacman.d/mirrorlist
[lib32] [lib32]
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
# # An example of a custom package repository. See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs
#
# ARCHLINUX # ARCHLINUX
# #

View File

@@ -44,7 +44,7 @@ LocalFileSigLevel = Optional
# NOTE: You must run `pacman-key --init` before first using pacman; the local # NOTE: You must run `pacman-key --init` before first using pacman; the local
# keyring can then be populated with the keys of all official Artix Linux # keyring can then be populated with the keys of all official Artix Linux
# packagers with `pacman-key --populate archlinux cromnix`. # packagers with `pacman-key --populate archlinux artix`.
# #
# REPOSITORIES # REPOSITORIES
@@ -63,6 +63,11 @@ LocalFileSigLevel = Optional
# #
# The header [repo-name] is crucial - it must be present and # The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo. # uncommented to enable the repo.
#
# The gremlins repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.
[gremlins] [gremlins]
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
@@ -79,13 +84,22 @@ Include = /etc/pacman.d/mirrorlist
[galaxy] [galaxy]
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
# If you want to run 32 bit applications on your x86_64 system,
# enable the lib32 repositories as required here.
[lib32-gremlins] [lib32-gremlins]
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
[lib32] [lib32]
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
# # An example of a custom package repository. See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs
#
# ARCHLINUX # ARCHLINUX
# #

View File

@@ -44,7 +44,7 @@ LocalFileSigLevel = Optional
# NOTE: You must run `pacman-key --init` before first using pacman; the local # NOTE: You must run `pacman-key --init` before first using pacman; the local
# keyring can then be populated with the keys of all official Artix Linux # keyring can then be populated with the keys of all official Artix Linux
# packagers with `pacman-key --populate archlinux cromnix`. # packagers with `pacman-key --populate archlinux artix`.
# #
# REPOSITORIES # REPOSITORIES
@@ -63,6 +63,14 @@ LocalFileSigLevel = Optional
# #
# The header [repo-name] is crucial - it must be present and # The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo. # uncommented to enable the repo.
#
# The gremlins repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.
#[gremlins]
#Include = /etc/pacman.d/mirrorlist
[system] [system]
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
@@ -70,21 +78,45 @@ Include = /etc/pacman.d/mirrorlist
[world] [world]
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
#[galaxy-gremlins]
#Include = /etc/pacman.d/mirrorlist
[galaxy] [galaxy]
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
# If you want to run 32 bit applications on your x86_64 system,
# enable the lib32 repositories as required here.
#[lib32-gremlins]
#Include = /etc/pacman.d/mirrorlist
[lib32] [lib32]
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
# # An example of a custom package repository. See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs
#
# ARCHLINUX # ARCHLINUX
# #
#[testing]
#Include = /etc/pacman.d/mirrorlist-arch
[extra] [extra]
Include = /etc/pacman.d/mirrorlist-arch Include = /etc/pacman.d/mirrorlist-arch
#[community-testing]
#Include = /etc/pacman.d/mirrorlist-arch
[community] [community]
Include = /etc/pacman.d/mirrorlist-arch Include = /etc/pacman.d/mirrorlist-arch
#[multilib-testing]
#Include = /etc/pacman.d/mirrorlist-arch
[multilib] [multilib]
Include = /etc/pacman.d/mirrorlist-arch Include = /etc/pacman.d/mirrorlist-arch

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

@@ -7,16 +7,6 @@ build() {
add_module "via-agp" add_module "via-agp"
add_module "sis-agp" add_module "sis-agp"
add_module "intel-agp" add_module "intel-agp"
if [[ $(uname -m) == i686 ]]; then
add_module "amd64-agp"
add_module "ati-agp"
add_module "sworks-agp"
add_module "ali-agp"
add_module "amd-k7-agp"
add_module "nvidia-agp"
add_module "efficeon-agp"
fi
} }
help() { help() {

View File

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

View File

@@ -19,7 +19,7 @@ prepare_initcpio(){
prepare_initramfs(){ prepare_initramfs(){
local mnt="$1" local mnt="$1"
cp ${DATADIR}/mkinitcpio.conf $mnt/etc/mkinitcpio-${iso_name}.conf cp ${DATADIR}/mkinitcpio.conf $mnt/etc/mkinitcpio-artix.conf
if [[ -n ${gpgkey} ]]; then if [[ -n ${gpgkey} ]]; then
user_run "gpg --export ${gpgkey} >${AT_USERCONFDIR}/gpgkey" user_run "gpg --export ${gpgkey} >${AT_USERCONFDIR}/gpgkey"
exec 17<>${AT_USERCONFDIR}/gpgkey exec 17<>${AT_USERCONFDIR}/gpgkey
@@ -27,7 +27,7 @@ prepare_initramfs(){
local _kernel=$(cat $mnt/usr/lib/modules/*/version) local _kernel=$(cat $mnt/usr/lib/modules/*/version)
ARTIX_GNUPG_FD=${gpgkey:+17} chroot-run $mnt \ ARTIX_GNUPG_FD=${gpgkey:+17} chroot-run $mnt \
/usr/bin/mkinitcpio -k ${_kernel} \ /usr/bin/mkinitcpio -k ${_kernel} \
-c /etc/mkinitcpio-${iso_name}.conf \ -c /etc/mkinitcpio-artix.conf \
-g /boot/initramfs.img -g /boot/initramfs.img
if [[ -n ${gpgkey} ]]; then if [[ -n ${gpgkey} ]]; then
@@ -47,18 +47,13 @@ prepare_boot_extras(){
} }
configure_grub(){ configure_grub(){
local conf="$1" local conf="$1/boot/grub/kernels.cfg"
sed -e "s|@iso_label@|${iso_label}|" -i $conf
sed -e "s|@arch@|${target_arch}|g" \
-e "s|@iso_label@|${iso_label}|" \
-e "s|@iso_name@|${iso_name}|g" \
-e "s|@kernel_args@|${kernel_args}|g" \
-i $conf
} }
prepare_grub(){ prepare_grub(){
local platform=i386-pc img='core.img' grub=$3/boot/grub efi=$3/efi/boot \ local platform=i386-pc img='core.img' grub=$3/boot/grub efi=$3/efi/boot \
lib=$1/usr/lib/grub prefix=/boot/grub theme=$2/usr/share/grub data=$1/usr/share/grub lib=$1/usr/lib/grub prefix=/boot/grub theme=$2/usr/share/grub
prepare_dir ${grub}/${platform} prepare_dir ${grub}/${platform}
@@ -72,16 +67,8 @@ prepare_grub(){
cat ${grub}/${platform}/cdboot.img ${grub}/${platform}/${img} > ${grub}/${platform}/eltorito.img cat ${grub}/${platform}/cdboot.img ${grub}/${platform}/${img} > ${grub}/${platform}/eltorito.img
case ${target_arch} in platform=x86_64-efi
'i686') img=bootx64.efi
platform=i386-efi
img=bootia32.efi
;;
'x86_64')
platform=x86_64-efi
img=bootx64.efi
;;
esac
prepare_dir ${efi} prepare_dir ${efi}
prepare_dir ${grub}/${platform} prepare_dir ${grub}/${platform}
@@ -93,10 +80,12 @@ prepare_grub(){
grub-mkimage -d ${grub}/${platform} -o ${efi}/${img} -O ${platform} -p ${prefix} iso9660 grub-mkimage -d ${grub}/${platform} -o ${efi}/${img} -O ${platform} -p ${prefix} iso9660
prepare_dir ${grub}/themes prepare_dir ${grub}/themes
cp -r ${theme}/themes/${iso_name} ${grub}/themes/ cp -r ${theme}/themes/artix ${grub}/themes/
cp ${data}/unicode.pf2 ${grub}
cp -r ${theme}/{locales,tz} ${grub} cp -r ${theme}/{locales,tz} ${grub}
msg2 "Creating %s ..." "unicode.pf2"
grub-mkfont -o ${grub}/unicode.pf2 /usr/share/fonts/misc/unifont.bdf
local size=4M mnt="${mnt_dir}/efiboot" efi_img="$3/efi.img" local size=4M mnt="${mnt_dir}/efiboot" efi_img="$3/efi.img"
msg2 "Creating fat image of %s ..." "${size}" msg2 "Creating fat image of %s ..." "${size}"
truncate -s ${size} "${efi_img}" truncate -s ${size} "${efi_img}"

View File

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

View File

@@ -9,43 +9,6 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details. # GNU General Public License for more details.
write_bootloader_conf(){
local conf="$1/bootloader.conf"
msg2 "Writing %s ..." "${conf##*/}"
echo '---' > "$conf"
echo "efiBootLoader: \"grub\"" >> "$conf"
echo "kernel: \"/vmlinuz-$kernel-${target_arch}\"" >> "$conf"
echo "img: \"/initramfs-$kernel-${target_arch}.img\"" >> "$conf"
echo "fallback: \"/initramfs-$kernel-${target_arch}-fallback.img\"" >> "$conf"
echo 'timeout: "10"' >> "$conf"
echo "kernelLine: \", with ${kernel}\"" >> "$conf"
echo "fallbackKernelLine: \", with ${kernel} (fallback initramfs)\"" >> "$conf"
echo 'grubInstall: "grub-install"' >> "$conf"
echo 'grubMkconfig: "grub-mkconfig"' >> "$conf"
echo 'grubCfg: "/boot/grub/grub.cfg"' >> "$conf"
echo '#efiBootloaderId: "dirname"' >> "$conf"
}
write_servicescfg_conf(){
local conf="$1/servicescfg.conf"
msg2 "Writing %s ..." "${conf##*/}"
echo '---' > "$conf"
echo '' >> "$conf"
echo 'services:' >> "$conf"
echo ' enabled:' >> "$conf"
for s in ${services[@]};do
echo " - name: $s" >> "$conf"
echo ' runlevel: default' >> "$conf"
done
}
write_initcpio_conf(){
local conf="$1/initcpio.conf"
msg2 "Writing %s ..." "${conf##*/}"
echo "---" > "$conf"
echo "kernel: ${kernel}" >> "$conf"
}
write_users_conf(){ write_users_conf(){
local conf="$1/users.conf" local conf="$1/users.conf"
msg2 "Writing %s ..." "${conf##*/}" msg2 "Writing %s ..." "${conf##*/}"
@@ -60,45 +23,51 @@ write_users_conf(){
echo "doAutologin: false" >> "$conf" echo "doAutologin: false" >> "$conf"
echo "sudoersGroup: wheel" >> "$conf" echo "sudoersGroup: wheel" >> "$conf"
echo "setRootPassword: true" >> "$conf" echo "setRootPassword: true" >> "$conf"
echo "doReusePassword: false" >> "$conf" # only used in old 'users' module # echo "doReusePassword: false" >> "$conf" # only used in old 'users' module
echo "availableShells: /bin/bash, /bin/zsh" >> "$conf" # only used in new 'users' module echo "availableShells: /bin/bash, /bin/zsh" >> "$conf" # only used in new 'users' module
echo "avatarFilePath: ~/.face" >> "$conf" echo "avatarFilePath: ~/.face" >> "$conf"
} }
write_netinstall_conf(){ write_servicescfg_conf(){
local conf="$1/netinstall.conf" local init="$2"
local conf="$1"/"$init"cfg.conf state='add'
msg2 "Writing %s ..." "${conf##*/}" msg2 "Writing %s ..." "${conf##*/}"
echo "---" > "$conf" echo '---' > "$conf"
echo "groupsUrl: ${netgroups}" >> "$conf" if [[ "$init" == 'runit' ]];then
state='enabled'
echo 'svdir: /etc/runit/sv' >> "$conf"
echo '' >> "$conf"
echo 'runsvdir: /etc/runit/runsvdir' >> "$conf"
fi
echo '' >> "$conf"
echo 'services:' >> "$conf"
echo " $state:" >> "$conf"
for svc in ${services[@]};do
echo " - name: $svc" >> "$conf"
echo ' runlevel: default' >> "$conf"
done
} }
write_unpack_conf(){ write_postcfg_conf(){
local conf="$1/unpackfs.conf" local conf="$1/postcfg.conf" init="$2"
msg2 "Writing %s ..." "${conf##*/}" sed -e "s|openrc|$init|" -i "$conf"
echo "---" > "$conf" }
echo "unpack:" >> "$conf"
echo " - source: \"/run/${iso_name}/bootmnt/${iso_name}/${target_arch}/rootfs.sfs\"" >> "$conf" write_netinstall_conf(){
echo " sourcefs: \"squashfs\"" >> "$conf" local conf="$1/netinstall.conf" init="$2"
echo " destination: \"\"" >> "$conf" sed -e "s|netgroups-openrc.yaml|netgroups-$init.yaml|" -i "$conf"
if [[ -f "${desktop_list}" ]] ; then
echo " - source: \"/run/${iso_name}/bootmnt/${iso_name}/${target_arch}/desktopfs.sfs\"" >> "$conf"
echo " sourcefs: \"squashfs\"" >> "$conf"
echo " destination: \"\"" >> "$conf"
fi
} }
configure_calamares(){ configure_calamares(){
local dest="$1" mods="$1/etc/calamares/modules" local mods="$1/etc/calamares/modules" init="$2"
if [[ -d $dest/etc/calamares/modules ]];then if [[ -d "$mods" ]];then
info "Configuring [Calamares]" info "Configuring [Calamares]"
write_netinstall_conf "$mods" write_netinstall_conf "$mods" "$init"
write_unpack_conf "$mods"
write_users_conf "$mods" write_users_conf "$mods"
write_initcpio_conf "$mods" write_servicescfg_conf "$mods" "$init"
case ${initsys} in write_postcfg_conf "$mods" "$init"
'openrc') write_servicescfg_conf "$mods" ;; local name="$init"cfg
esac sed -e "s|openrccfg|$name|" -i "$1"/etc/calamares/settings.conf
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
@@ -197,7 +213,10 @@ clean_up_image(){
local path mnt="$1" local path mnt="$1"
msg2 "Cleaning [%s]" "${mnt##*/}" msg2 "Cleaning [%s]" "${mnt##*/}"
default_locale "reset" "$mnt" if [[ -f "$mnt/etc/locale.gen.orig" ]];then
mv "$mnt/etc/locale.gen.orig" "$mnt/etc/locale.gen"
rm "$mnt/etc/locale.conf"
fi
path=$mnt/boot path=$mnt/boot
if [[ -d "$path" ]]; then if [[ -d "$path" ]]; then
find "$path" -name 'initramfs*.img' -delete &> /dev/null find "$path" -name 'initramfs*.img' -delete &> /dev/null
@@ -242,7 +261,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]"
} }
@@ -272,7 +291,7 @@ make_sfs() {
error "The path %s does not exist" "${src}" error "The path %s does not exist" "${src}"
retrun 1 retrun 1
fi fi
local timer=$(get_timer) dest=${iso_root}/${iso_name}/${target_arch} local timer=$(get_timer) dest=${iso_root}/artix/${target_arch}
local name=${1##*/} local name=${1##*/}
local sfs="${dest}/${name}.sfs" local sfs="${dest}/${name}.sfs"
mkdir -p ${dest} mkdir -p ${dest}
@@ -385,9 +404,9 @@ make_iso() {
} }
gen_iso_fn(){ gen_iso_fn(){
local vars=() name local vars=("artix") 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
@@ -505,7 +524,7 @@ make_grub(){
prepare_grub "${work_dir}/rootfs" "${work_dir}/livefs" "${iso_root}" prepare_grub "${work_dir}/rootfs" "${work_dir}/livefs" "${iso_root}"
configure_grub "${iso_root}/boot/grub/kernels.cfg" configure_grub "${iso_root}"
: > ${work_dir}/grub.lock : > ${work_dir}/grub.lock
msg "Done [/iso/boot/grub]" msg "Done [/iso/boot/grub]"
@@ -521,14 +540,14 @@ compress_images(){
prepare_images(){ prepare_images(){
local timer=$(get_timer) local timer=$(get_timer)
load_pkgs "${root_list}" "${initsys}" "${kernel}" load_pkgs "${root_list}" "${initsys}"
run_safe "make_rootfs" run_safe "make_rootfs"
if [[ -f "${desktop_list}" ]] ; then if [[ -f "${desktop_list}" ]] ; then
load_pkgs "${desktop_list}" "${initsys}" "${kernel}" load_pkgs "${desktop_list}" "${initsys}"
run_safe "make_desktopfs" run_safe "make_desktopfs"
fi fi
if [[ -f ${live_list} ]]; then if [[ -f ${live_list} ]]; then
load_pkgs "${live_list}" "${initsys}" "${kernel}" load_pkgs "${live_list}" "${initsys}"
run_safe "make_livefs" run_safe "make_livefs"
fi fi
run_safe "make_bootfs" run_safe "make_bootfs"

View File

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

View File

@@ -35,7 +35,7 @@ patch_pkg(){
-e '/nscd.service/d' \ -e '/nscd.service/d' \
-i $pkg/trunk/PKGBUILD -i $pkg/trunk/PKGBUILD
;; ;;
'tp_smapi'|'acpi_call'|'r8168'|'bbswitch') 'tp_smapi'|'acpi_call'|'r8168'|'bbswitch'|'broadcom-wl')
sed -e 's|-ARCH|-ARTIX|g' -i $pkg/trunk/PKGBUILD sed -e 's|-ARCH|-ARTIX|g' -i $pkg/trunk/PKGBUILD
;; ;;
'nvidia') 'nvidia')
@@ -47,6 +47,7 @@ patch_pkg(){
sed -e 's|-ARCH|-ARTIX|g' -i $pkg/trunk/PKGBUILD sed -e 's|-ARCH|-ARTIX|g' -i $pkg/trunk/PKGBUILD
sed -e 's|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION="-ARTIX"|' \ sed -e 's|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION="-ARTIX"|' \
-e 's|CONFIG_DEFAULT_HOSTNAME=.*|CONFIG_DEFAULT_HOSTNAME="artixlinux"|' \ -e 's|CONFIG_DEFAULT_HOSTNAME=.*|CONFIG_DEFAULT_HOSTNAME="artixlinux"|' \
-e 's|CONFIG_CRYPTO_SPECK=.*|CONFIG_CRYPTO_SPECK=n|' \
-i $pkg/trunk/config -i $pkg/trunk/config
cd $pkg/trunk cd $pkg/trunk
updpkgsums updpkgsums

View File

@@ -47,11 +47,6 @@ get_osname(){
echo "${NAME}" echo "${NAME}"
} }
get_osid(){
source /usr/lib/os-release
echo "${ID}"
}
init_artools_base(){ init_artools_base(){
target_arch=$(uname -m) target_arch=$(uname -m)
@@ -89,16 +84,10 @@ init_artools_iso(){
[[ -z ${iso_version} ]] && iso_version=$(date +%Y%m%d) [[ -z ${iso_version} ]] && iso_version=$(date +%Y%m%d)
iso_name=$(get_osid)
iso_label="ARTIX_$(date +%Y%m)" iso_label="ARTIX_$(date +%Y%m)"
[[ -z ${initsys} ]] && initsys="openrc" [[ -z ${initsys} ]] && initsys="openrc"
[[ -z ${kernel} ]] && kernel="linux"
[[ -z ${kernel_args} ]] && kernel_args=""
[[ -z ${gpgkey} ]] && gpgkey='' [[ -z ${gpgkey} ]] && gpgkey=''
[[ -z ${uplimit} ]] && uplimit=100 [[ -z ${uplimit} ]] && uplimit=100