Compare commits

..

29 Commits

Author SHA1 Message Date
6d5dbc5774 data: sync with pacman 5.2.0-2 2019-11-09 00:58:27 +01:00
36ee26e18c use libmakepkg load_makepkg_config() 2019-11-09 00:19:24 +01:00
0b9e18ed5b use libmakepkg load_makepkg_config() 2019-11-09 00:15:18 +01:00
b26b6da61c chroot-run: remove obsolete mount calls 2019-11-09 00:14:42 +01:00
e1f762cd91 mkchrootpkg $ chroot-run: add arch patches, simplify bindmounts 2019-11-08 20:49:36 +01:00
ee55448fe0 buildtree: update patch_pkg() 2019-11-05 21:36:40 +01:00
b3415307b1 buildiso: drop empty yaml lines 2019-11-05 18:32:53 +01:00
2516fccc3b comparepkg: delete list on rerun 2019-11-05 18:23:15 +01:00
45ecb59ffd Makefile: 0.16 2019-11-05 01:03:37 +01:00
11fff303f9 readme: update 2019-11-05 01:00:20 +01:00
b05d1c999f buildiso: write cal postcfg 2019-11-05 00:56:55 +01:00
1572c94389 small fixes 2019-11-04 10:35:31 +01:00
601f7c30ba buildiso: update profile default services 2019-11-03 00:25:37 +01:00
2f37832558 batchpkg: quote vars 2019-11-03 00:25:08 +01:00
bf70341af9 batchpkg: add run option 2019-11-02 16:30:51 +01:00
ea3a06a9bc fix user info 2019-11-02 15:58:50 +01:00
812cf9a317 lib fixes 2019-11-02 15:35:28 +01:00
70aa91ddd8 simplify conf loading 2019-11-02 14:44:07 +01:00
15407b612a batchpkg: add listname arg 2019-11-02 11:09:23 +01:00
8d4adb5b47 chroot-run: always sync localtime from host 2019-11-02 10:40:49 +01:00
85659bfa5e Makefile: update 2019-11-02 01:07:52 +01:00
f0799f85e4 data: rename artools conf files
lib: load new file names
2019-11-02 01:07:36 +01:00
3810656411 conf (#19) 2019-11-01 23:57:02 +01:00
79b99440fc batchpkg & comparepkg: fixes 2019-11-01 21:04:23 +01:00
d353cd8d46 Makefile: include batchpkg 2019-11-01 19:48:31 +01:00
90623d0485 add batchpkg
comparepkg writes a move and upgrade list which batchpkg reads
2019-11-01 19:47:08 +01:00
2c0c3b2032 buildiso: cal conf cleaning 2019-11-01 18:59:18 +01:00
a463f22118 start 0.16 2019-11-01 18:57:56 +01:00
86504ac676 chroot-run: sync host localtime with chroot 2019-11-01 18:56:21 +01:00
37 changed files with 455 additions and 402 deletions

View File

@@ -1,4 +1,4 @@
VERSION=0.15 VERSION=0.16
CHROOT_VERSION=0.10 CHROOT_VERSION=0.10
@@ -10,8 +10,8 @@ LIBDIR = $(PREFIX)/lib
DATADIR = $(PREFIX)/share DATADIR = $(PREFIX)/share
CPIODIR = $(SYSCONFDIR)/initcpio CPIODIR = $(SYSCONFDIR)/initcpio
CONF = \ BASE_CONF = \
data/artools.conf data/conf/artools-base.conf
BASE_BIN = \ BASE_BIN = \
bin/base/signfile \ bin/base/signfile \
@@ -29,6 +29,9 @@ BASE_UTIL = lib/util-base.sh
BASE_DATA = \ BASE_DATA = \
$(wildcard data/base/pacman*.conf) $(wildcard data/base/pacman*.conf)
PKG_CONF = \
data/conf/artools-pkg.conf
PKG_BIN = \ PKG_BIN = \
bin/pkg/buildpkg \ bin/pkg/buildpkg \
bin/pkg/deploypkg \ bin/pkg/deploypkg \
@@ -41,7 +44,8 @@ PKG_BIN = \
bin/pkg/links-add \ bin/pkg/links-add \
bin/pkg/checkpkg \ bin/pkg/checkpkg \
bin/pkg/finddeps \ bin/pkg/finddeps \
bin/pkg/find-libdeps bin/pkg/find-libdeps \
bin/pkg/batchpkg
LN_COMMITPKG = \ LN_COMMITPKG = \
extrapkg \ extrapkg \
@@ -96,6 +100,9 @@ PKG_DATA = \
PATCHES = \ PATCHES = \
$(wildcard data/patches/*.patch) $(wildcard data/patches/*.patch)
ISO_CONF = \
data/conf/artools-iso.conf
ISO_BIN = \ ISO_BIN = \
bin/iso/buildiso \ bin/iso/buildiso \
bin/iso/deployiso bin/iso/deployiso
@@ -151,7 +158,7 @@ clean:
install_base: install_base:
install $(DIRMODE) $(DESTDIR)$(SYSCONFDIR)/$(TOOLS) install $(DIRMODE) $(DESTDIR)$(SYSCONFDIR)/$(TOOLS)
install $(FILEMODE) $(CONF) $(DESTDIR)$(SYSCONFDIR)/$(TOOLS) install $(FILEMODE) $(BASE_CONF) $(DESTDIR)$(SYSCONFDIR)/$(TOOLS)
install $(DIRMODE) $(DESTDIR)$(BINDIR) install $(DIRMODE) $(DESTDIR)$(BINDIR)
install $(MODE) $(BASE_BIN) $(DESTDIR)$(BINDIR) install $(MODE) $(BASE_BIN) $(DESTDIR)$(BINDIR)
@@ -164,6 +171,9 @@ install_base:
install $(FILEMODE) $(BASE_DATA) $(DESTDIR)$(DATADIR)/$(TOOLS) install $(FILEMODE) $(BASE_DATA) $(DESTDIR)$(DATADIR)/$(TOOLS)
install_pkg: install_pkg:
install $(DIRMODE) $(DESTDIR)$(SYSCONFDIR)/$(TOOLS)
install $(FILEMODE) $(PKG_CONF) $(DESTDIR)$(SYSCONFDIR)/$(TOOLS)
install $(DIRMODE) $(DESTDIR)$(BINDIR) install $(DIRMODE) $(DESTDIR)$(BINDIR)
install $(MODE) $(PKG_BIN) $(DESTDIR)$(BINDIR) install $(MODE) $(PKG_BIN) $(DESTDIR)$(BINDIR)
@@ -189,6 +199,9 @@ install_cpio:
+make CPIODIR=$(CPIODIR) DESTDIR=$(DESTDIR) -C initcpio install +make CPIODIR=$(CPIODIR) DESTDIR=$(DESTDIR) -C initcpio install
install_iso: install_cpio install_iso: install_cpio
install $(DIRMODE) $(DESTDIR)$(SYSCONFDIR)/$(TOOLS)
install $(FILEMODE) $(ISO_CONF) $(DESTDIR)$(SYSCONFDIR)/$(TOOLS)
install $(DIRMODE) $(DESTDIR)$(BINDIR) install $(DIRMODE) $(DESTDIR)$(BINDIR)
install $(MODE) $(ISO_BIN) $(DESTDIR)$(BINDIR) install $(MODE) $(ISO_BIN) $(DESTDIR)$(BINDIR)

View File

@@ -39,15 +39,18 @@ artools
#### Configuration #### Configuration
artools.conf is the central configuration file for artools. artools-{base,pkg,iso}.conf are the configuration files for artools.
By default, the config is installed in By default, the config files are installed in
/etc/artools/artools.conf ```bash
/etc/artools/artools-{base,pkg,iso}.conf
```
A user artools.conf can be placed in A user artools-{base,pkg,iso}.conf can be placed in
$HOME/.config/artools/artools.conf
```bash
$HOME/.config/artools/artools-{base,pkg,iso}.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
@@ -55,13 +58,17 @@ 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-{base,pkg,iso}.conf or by args.
Specifying args will override artools.conf settings. Specifying args will override artools-{base,pkg,iso}.conf settings.
Both, pacman.conf and makepkg.conf for chroots are loaded from Both, pacman.conf and makepkg.conf for chroots are loaded from
/usr/share/artools/{makepkg,pacman-*}.conf ```bash
usr/share/artools/{makepkg,pacman-*}.conf
```
and can be overridden dropping them in and can be overridden dropping them in
$HOME/.config/artools/ ```bash
$HOME/.config/artools/
```

View File

@@ -46,10 +46,6 @@ select_os(){
fi fi
} }
load_user_info
load_config "${USERCONFDIR}/artools/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
automount=false automount=false
usage() { usage() {

View File

@@ -23,6 +23,8 @@ umask 0022
working_dir='' working_dir=''
files=() files=()
mount_args=()
usage() { usage() {
echo "Usage: ${0##*/} [options] working-dir [run arguments]" echo "Usage: ${0##*/} [options] working-dir [run arguments]"
echo "A wrapper around chroot. Provides support for pacman." echo "A wrapper around chroot. Provides support for pacman."
@@ -33,16 +35,15 @@ usage() {
echo ' -c <dir> Set pacman cache' echo ' -c <dir> Set pacman cache'
echo ' -f <file> Copy file from the host to the chroot' echo ' -f <file> Copy file from the host to the chroot'
echo ' -s Do not run setarch' echo ' -s Do not run setarch'
echo ' -r <list> Bind mountargs ro' echo ' -b <list> Bind mountargs'
echo ' -w <list> Bind mountargs rw' echo ' List format [mntarg1:src1:dest1 ... mntargN:srcN:destN]'
echo ' List format [src1:target1 ... srcN:targetN]'
echo ' -h This message' echo ' -h This message'
exit 1 exit 1
} }
orig_argv=("$0" "$@") orig_argv=("$0" "$@")
opts='hC:M:c:r:w:f:s' opts='hC:M:c:b:f:s'
while getopts ${opts} arg; do while getopts ${opts} arg; do
case "${arg}" in case "${arg}" in
@@ -51,8 +52,7 @@ while getopts ${opts} arg; do
c) cache_dirs+=("$OPTARG") ;; c) cache_dirs+=("$OPTARG") ;;
f) files+=("$OPTARG") ;; f) files+=("$OPTARG") ;;
s) nosetarch=1 ;; s) nosetarch=1 ;;
r) bindmounts_ro=("$OPTARG") ;; b) bindmounts=("$OPTARG"); mount_args+=(${bindmounts[@]}) ;;
w) bindmounts_rw=("$OPTARG") ;;
h|?) usage ;; h|?) usage ;;
*) error "invalid argument '$arg'"; usage ;; *) error "invalid argument '$arg'"; usage ;;
esac esac
@@ -76,6 +76,14 @@ fi
host_mirrors=($($pacconf_cmd --repo world Server 2> /dev/null | sed -r 's#(.*/)world/os/.*#\1$repo/os/$arch#')) host_mirrors=($($pacconf_cmd --repo world Server 2> /dev/null | sed -r 's#(.*/)world/os/.*#\1$repo/os/$arch#'))
for host_mirror in "${host_mirrors[@]}"; do
if [[ $host_mirror == *file://* ]]; then
host_mirror=$(echo "$host_mirror" | sed -r 's#file://(/.*)/\$repo/os/\$arch#\1#g')
info "host mirror: %s" "$host_mirror"
in_array "$host_mirror" "${cache_dirs[@]}" || cache_dirs+=("$host_mirror")
fi
done
while read -r line; do while read -r line; do
mapfile -t lines < <($pacconf_cmd --config "${pac_conf:-$working_dir/etc/pacman.conf}" \ mapfile -t lines < <($pacconf_cmd --config "${pac_conf:-$working_dir/etc/pacman.conf}" \
--repo $line Server | sed -r 's#(.*/)[^/]+/os/.+#\1$repo/os/$arch#') --repo $line Server | sed -r 's#(.*/)[^/]+/os/.+#\1$repo/os/$arch#')
@@ -95,9 +103,9 @@ copy_hostconf () {
printf 'Server = %s\n' "${host_mirrors[@]}" >"$working_dir/etc/pacman.d/mirrorlist" printf 'Server = %s\n' "${host_mirrors[@]}" >"$working_dir/etc/pacman.d/mirrorlist"
[[ -n $pacman_conf ]] && cp $pacman_conf "$1/etc/pacman.conf" [[ -n $pacman_conf ]] && cp $pacman_conf "${working_dir}/etc/pacman.conf"
[[ -n $makepkg_conf ]] && cp $makepkg_conf "$1/etc/makepkg.conf" [[ -n $makepkg_conf ]] && cp $makepkg_conf "${working_dir}/etc/makepkg.conf"
local file local file
for file in "${files[@]}"; do for file in "${files[@]}"; do
@@ -105,36 +113,31 @@ copy_hostconf () {
cp -T "$file" "$working_dir$file" cp -T "$file" "$working_dir$file"
done done
sed -r "s|^#?\\s*CacheDir.+|CacheDir = ${cache_dirs[*]}|g" -i "$1/etc/pacman.conf" sed -r "s|^#?\\s*CacheDir.+|CacheDir = ${cache_dirs[*]}|g" -i "${working_dir}/etc/pacman.conf"
} }
mount_args+=("-B:${cache_dirs[0]//:/\\:}:${cache_dirs[0]//:/\\:}" "-B:/etc/hosts:/etc/hosts")
for cache_dir in "${cache_dirs[@]:1}"; do
mount_args+=("-Br:${cache_dir//:/\\:}:${cache_dir//:/\\:}")
done
chroot_extra_mount() { chroot_extra_mount() {
chroot_add_resolv_conf "$1" chroot_add_resolv_conf "${working_dir}"
chroot_mount "/etc/hosts" "$1/etc/hosts" -B
chroot_mount "${cache_dirs[0]}" "$1${cache_dirs[0]}" -B
# if [[ -e /etc/localtime ]];then
# [[ -e $1/etc/localtime ]] || touch $1/etc/localtime
# chroot_mount "/etc/localtime" "$1/etc/localtime" -B
# fi
for cache_dir in ${cache_dirs[@]:1}; do for arg in ${mount_args[@]}; do
chroot_mount "$cache_dir" "$1${cache_dir}" -Br local flag=${arg%%:*}
local dest=${arg##*:}
local src=${arg%:*}
src=${src#*:}
chroot_mount "${src}" "${working_dir}${dest}" "${flag}"
done done
}
for m in ${bindmounts_ro[@]}; do sync_host_localtime(){
chroot_mount "${m%%:*}" "$1${m##*:}" -Br if [[ -e /etc/localtime ]]; then
done cp -L /etc/localtime "${working_dir}"/etc/localtime
fi
for m in ${bindmounts_rw[@]}; do
chroot_mount "${m%%:*}" "$1${m##*:}" -B
done
for host_mirror in "${host_mirrors[@]}"; do
if [[ $host_mirror == *file://* ]]; then
host_mirror_path=$(echo "$host_mirror" | sed -r 's#file://(/.*)/\$repo/os/\$arch#\1#g')
chroot_mount "$host_mirror_path" "$1$host_mirror_path" -Br
fi
done
} }
umask 0022 umask 0022
@@ -146,11 +149,13 @@ elif [[ $(cat "$working_dir/.artools") != ${CHROOTVERSION} ]]; then
die "chroot '%s' is not at version %s. Please rebuild." "$working_dir" "${CHROOTVERSION}" die "chroot '%s' is not at version %s. Please rebuild." "$working_dir" "${CHROOTVERSION}"
fi fi
sync_host_localtime
chroot_api_mount "${working_dir}" || die "failed to setup API filesystems in chroot %s" "${working_dir}" chroot_api_mount "${working_dir}" || die "failed to setup API filesystems in chroot %s" "${working_dir}"
chroot_extra_mount "${working_dir}" chroot_extra_mount
copy_hostconf "${working_dir}" copy_hostconf
eval $(grep '^CARCH=' "$working_dir/etc/makepkg.conf") eval $(grep '^CARCH=' "$working_dir/etc/makepkg.conf")

View File

@@ -14,10 +14,7 @@
. @libdir@/artools/util-base.sh . @libdir@/artools/util-base.sh
load_user_info load_makepkg_config
load_vars "${USERCONFDIR}/pacman/makepkg.conf" || load_vars "$USER_HOME/.makepkg.conf"
load_vars /etc/makepkg.conf
file_to_sign="$1" file_to_sign="$1"

View File

@@ -12,7 +12,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.
. @libdir@/artools/util-base.sh
. @libdir@/artools/util-iso.sh . @libdir@/artools/util-iso.sh
gen_iso_fn(){ gen_iso_fn(){
@@ -42,7 +41,7 @@ prepare_build(){
esac esac
pacman_conf="${DATADIR}/$pac_file" pacman_conf="${DATADIR}/$pac_file"
[[ -f ${USERCONFDIR}/artools/$pac_file ]] && pacman_conf="${USERCONFDIR}/artools/$pac_file" [[ -f ${USER_CONF_DIR}/$pac_file ]] && pacman_conf="${USER_CONF_DIR}/$pac_file"
iso_file=$(gen_iso_fn).iso iso_file=$(gen_iso_fn).iso
@@ -110,10 +109,6 @@ build(){
show_elapsed_time "${FUNCNAME}" "${timer_start}" show_elapsed_time "${FUNCNAME}" "${timer_start}"
} }
load_user_info
load_config "${USERCONFDIR}/artools/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
clean_first=true clean_first=true
pretend=false pretend=false
images_only=false images_only=false

View File

@@ -12,7 +12,7 @@
# 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.
. @libdir@/artools/util-base.sh . @libdir@/artools/util-iso.sh
connect(){ connect(){
echo "${ACCOUNT}@${FILE_HOST}:${FILE_HOME}" echo "${ACCOUNT}@${FILE_HOST}:${FILE_HOME}"
@@ -30,10 +30,6 @@ sync_dir(){
show_elapsed_time "${FUNCNAME}" "${timer_start}" show_elapsed_time "${FUNCNAME}" "${timer_start}"
} }
load_user_info
load_config "${USERCONFDIR}/artools/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
update=false update=false
verbose=false verbose=false

71
bin/pkg/batchpkg.in Normal file
View File

@@ -0,0 +1,71 @@
#!/bin/bash
#
# Copyright (C) 2018-19 artoo@artixlinux.org
# Copyright (C) 2018 Artix Linux Developers
#
# 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.
. /usr/lib/artools/util-pkg.sh
batch_move() {
local name="${1:-pkg_moves}"
local pkglist=${TREE_DIR_ARTIX}/$name.list
[[ -f $pkglist ]] || die "%s does not exist!" "$pkglist"
while read entry;do
local pkg=${entry##*:}
local src=${entry%:*}
src=${src#*:}
local dest=${entry%%:*}
if ${runlist}; then
"${dest}"pkg -s "${src}" -u -p "${pkg}"
else
msg "%s" "${dest}pkg -s ${src} -u -p ${pkg}"
fi
done < $pkglist
}
# batch_upgrade() {
# local pkglist=${TREE_DIR_ARTIX}/pkg_upgrades.list
# [[ -f $pkglist ]] || die "%s does not exist!" "$pkglist"
# while read entry;do
# local pkg=${entry#*:}
# local dest=${entry%:*}
# echo "buildtree -i -p ${pkg}"
# echo "${dest}pkg -u -p ${pkg}"
# done < $pkglist
# }
usage() {
echo "Usage: ${0##*/} [optional listname]"
echo ' -r Run generated commands'
echo ' -h This help'
echo ''
echo ''
exit $1
}
movelistname=pkg_moves
runlist=false
opts='rh'
while getopts "${opts}" arg; do
case "${arg}" in
r) runlist=true ;;
h|?) usage 0 ;;
*) echo "invalid argument '${arg}'"; usage 1 ;;
esac
done
shift $(($OPTIND - 1))
movelistname="$1"; shift
batch_move "$movelistname"

View File

@@ -12,13 +12,8 @@
# 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.
. @libdir@/artools/util-base.sh
. @libdir@/artools/util-pkg.sh . @libdir@/artools/util-pkg.sh
load_user_info
load_config "${USERCONFDIR}/artools/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
create_first=false create_first=false
rebuild=false rebuild=false
no_check=false no_check=false
@@ -71,10 +66,10 @@ else
fi fi
pacman_conf="${DATADIR}/pacman-${repo}.conf" pacman_conf="${DATADIR}/pacman-${repo}.conf"
[[ -f ${USERCONFDIR}/artools/pacman-${repo}.conf ]] && pacman_conf="${USERCONFDIR}/artools/pacman-${repo}.conf" [[ -f ${USER_CONF_DIR}/pacman-${repo}.conf ]] && pacman_conf="${USER_CONF_DIR}/pacman-${repo}.conf"
makepkg_conf="${DATADIR}/makepkg.conf" makepkg_conf="${DATADIR}/makepkg.conf"
[[ -f ${USERCONFDIR}/artools/makepkg.conf ]] && makepkg_conf="${USERCONFDIR}/artools/makepkg.conf" [[ -f ${USER_CONF_DIR}/makepkg.conf ]] && makepkg_conf="${USER_CONF_DIR}/makepkg.conf"
check_root SOURCE_DATE_EPOCH check_root SOURCE_DATE_EPOCH

View File

@@ -12,9 +12,39 @@
# 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.
. @libdir@/artools/util-base.sh
. @libdir@/artools/util-pkg.sh . @libdir@/artools/util-pkg.sh
patch_pkg(){
local pkg="$1"
case $pkg in
glibc)
sed -e 's|{locale,systemd/system,tmpfiles.d}|{locale,tmpfiles.d}|' \
-e '/nscd.service/d' \
-i $pkg/trunk/PKGBUILD
;;
linux|linux-lts)
sed -e 's|KBUILD_BUILD_HOST=.*|KBUILD_BUILD_HOST=artixlinux|' -i $pkg/trunk/PKGBUILD
sed -e 's|CONFIG_DEFAULT_HOSTNAME=.*|CONFIG_DEFAULT_HOSTNAME="artixlinux"|' \
-i $pkg/trunk/config
;;
bash)
sed -e 's|system.bash_logout)|system.bash_logout artix.bashrc)|' \
-e "s|etc/bash.|etc/bash/|g" \
-e 's|"$pkgdir/etc/skel/.bash_logout"|"$pkgdir/etc/skel/.bash_logout"\n install -Dm644 artix.bashrc $pkgdir/etc/bash/bashrc.d/artix.bashrc|' \
-i $pkg/trunk/PKGBUILD
cd $pkg/trunk
patch -Np 1 -i ${DATADIR}/patches/artix-bash.patch
updpkgsums
cd ../..
;;
gstreamer|gst-plugins-*|licenses)
sed -e 's|https://www.archlinux.org/|https://www.artixlinux.org/|' \
-e 's|(Arch Linux)|(Artix Linux)|' \
-i $pkg/trunk/PKGBUILD
;;
esac
}
pull_tree_arch(){ pull_tree_arch(){
cd ${TREE_DIR_ARCH} cd ${TREE_DIR_ARCH}
for tree in ${TREE_NAMES_ARCH[@]};do for tree in ${TREE_NAMES_ARCH[@]};do
@@ -165,11 +195,7 @@ sync_repos(){
fi fi
} }
load_user_info load_makepkg_config
load_config "${USERCONFDIR}/artools/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
load_vars "${USERCONFDIR}/pacman/makepkg.conf" || load_vars "$USER_HOME/.makepkg.conf"
load_vars /etc/makepkg.conf
sync=false sync=false
sync_arch=true sync_arch=true

View File

@@ -12,7 +12,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.
. @libdir@/artools/util-base.sh
. @libdir@/artools/util-pkg.sh . @libdir@/artools/util-pkg.sh
shopt -s extglob shopt -s extglob

View File

@@ -12,7 +12,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.
. @libdir@/artools/util-base.sh
. @libdir@/artools/util-pkg.sh . @libdir@/artools/util-pkg.sh
get_path(){ get_path(){
@@ -142,11 +141,7 @@ symlink_commit_pkg(){
fi fi
} }
load_user_info load_makepkg_config
load_config "${USERCONFDIR}/artools/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
load_vars "${USERCONFDIR}/pacman/makepkg.conf" || load_vars "$USER_HOME/.makepkg.conf"
load_vars /etc/makepkg.conf
REPO_SRC='trunk' REPO_SRC='trunk'
PACKAGE='' PACKAGE=''

View File

@@ -12,7 +12,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.
. @libdir@/artools/util-base.sh
. @libdir@/artools/util-pkg.sh . @libdir@/artools/util-pkg.sh
compare(){ compare(){
@@ -53,6 +52,10 @@ compare(){
msg_row "${table}" "$archshow" "$artixshow" "$pkg" "$archver" "$artixver" "${group#*-}" msg_row "${table}" "$archshow" "$artixshow" "$pkg" "$archver" "$artixver" "${group#*-}"
else else
msg_row_notify "${table}" "$archshow" "$artixshow" "$pkg" "$archver" "$artixver" "${group#*-}" msg_row_notify "${table}" "$archshow" "$artixshow" "$pkg" "$archver" "$artixver" "${group#*-}"
if [[ -n "$archshow" ]]; then
printf "%s\n" "$archshow:$artixshow:$pkg" >> ${TREE_DIR_ARTIX}/pkg_moves.list
fi
fi fi
;; ;;
esac esac
@@ -62,6 +65,8 @@ compare(){
if [ $result -eq -1 ];then if [ $result -eq -1 ];then
msg_row_upgrade "${table}" "$archshow" "$artixshow" "$pkg" "$archver" "$artixver" "${group#*-}" msg_row_upgrade "${table}" "$archshow" "$artixshow" "$pkg" "$archver" "$artixver" "${group#*-}"
printf "%s\n" "$archshow:$pkg" >> ${TREE_DIR_ARTIX}/pkg_upgrades.list
fi fi
elif ${downgrades};then elif ${downgrades};then
@@ -80,7 +85,7 @@ compare(){
is_db_entry() { is_db_entry() {
local pkgname="$1" repo="$(arch2artix $2)" local pkgname="$1" repo="$(arch2artix $2)"
if [[ -d ${USERCACHEDIR}/${LINKSDBEXT}/${ARCH}/$repo/$pkgname ]];then if [[ -d ${USER_CACHE_DIR}/${LINKSDBEXT}/${ARCH}/$repo/$pkgname ]];then
return 0 return 0
fi fi
return 1 return 1
@@ -110,7 +115,7 @@ check_db(){
is_entry=true is_entry=true
fi fi
if ! $is_entry; then if ! $is_entry; then
msg_row "${table2}" "$repo" "$name" "$artixver" "$is_entry" msg_row "${tableU}" "$repo" "$name" "$artixver" "$is_entry"
fi fi
done done
unset artixver is_entry pkgbuild pkgver epoch pkgname pkgbase unset artixver is_entry pkgbuild pkgver epoch pkgname pkgbase
@@ -122,28 +127,27 @@ check_db(){
update_db_cache(){ update_db_cache(){
msg "Updating database cache" msg "Updating database cache"
for repo in "${searchrepos[@]}"; do for repo in "${searchrepos[@]}"; do
local cachedir=${USERCACHEDIR}/${LINKSDBEXT}/${ARCH}/${repo} local cachedir=${USER_CACHE_DIR}/${LINKSDBEXT}/${ARCH}/${repo}
rm -rf "$cachedir" rm -rf "$cachedir"
mkdir -p "$cachedir" mkdir -p "$cachedir"
msg2 "%s" "$repo" msg2 "%s" "$repo"
curl -s "${REPOS_MIRROR}/${repo}/os/${ARCH}/${repo}.${LINKSDBEXT}" \ curl -L -s "${REPOS_MIRROR}/${repo}/os/${ARCH}/${repo}.${LINKSDBEXT}" \
| bsdtar -xf - -C "$cachedir" | bsdtar -xf - -C "$cachedir"
done done
msg "Done" msg "Done"
} }
query_db() { query_db() {
msg_table_header "${table3}" "Repo" "Package" "Library"
for repo in "${searchrepos[@]}"; do for repo in "${searchrepos[@]}"; do
local prefix= local prefix=
local db=${USERCACHEDIR}/${LINKSDBEXT}/${ARCH}/${repo}/ local db=${USER_CACHE_DIR}/${LINKSDBEXT}/${ARCH}/${repo}/
if [[ -d ${db} ]]; then if [[ -d ${db} ]]; then
while read -rd '' pkg; do while read -rd '' pkg; do
read -r match read -r match
pkg=${pkg#${db}} pkg=${pkg#${db}}
pkg="${pkg%/*}" pkg="${pkg%/*}"
msg_row "${table3}" "${repo}" "${pkg}" "${match}" msg_row "${tableQ}" "${repo}" "${pkg}" "${match}"
done < <(grep -rZ "${library}" "${db}") | sort -u done < <(grep -rZ "${library}" "${db}") | sort -u
fi fi
done done
@@ -154,18 +158,23 @@ show_version_table(){
if ${check};then if ${check};then
${sync} && update_db_cache ${sync} && update_db_cache
msg_table_header "${table2}" "Repo" "Package" "Version" "Database" msg_table_header "${tableU}" "Repo" "Package" "Version" "Database"
elif ${query};then elif ${query};then
${sync} && update_db_cache ${sync} && update_db_cache
msg_table_header "${tableQ}" "Repo" "Package" "Library"
query_db query_db
else else
msg_table_header "${table}" "Arch Repo" "Artix Repo" "Package" "Arch version" "Artix version" "Group" msg_table_header "${table}" "Arch Repo" "Artix Repo" "Package" "Arch version" "Artix version" "Group"
fi fi
if ${move} && [[ -f ${TREE_DIR_ARTIX}/pkg_moves.list ]]; then
rm ${TREE_DIR_ARTIX}/pkg_moves.list
elif ${upgrades} && [[ -f ${TREE_DIR_ARTIX}/pkg_upgrades.list ]]; then
rm ${TREE_DIR_ARTIX}/pkg_upgrades.list
fi
for tree in ${TREE_NAMES_ARTIX[@]};do for tree in ${TREE_NAMES_ARTIX[@]};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 package in ${git[@]}; do for package in ${git[@]}; do
if ${check};then if ${check};then
check_db "$package" check_db "$package"
@@ -176,11 +185,7 @@ show_version_table(){
done done
} }
load_user_info load_makepkg_config
load_config "${USERCONFDIR}/artools/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
load_vars "${USERCONFDIR}/pacman/makepkg.conf" || load_vars "$USER_HOME/.makepkg.conf"
load_vars /etc/makepkg.conf
unstable=false unstable=false
staging=true staging=true
@@ -199,8 +204,8 @@ artix_repos=(
) )
readonly table="%-18s %-18s %-25s %-27s %-27s %-10s" readonly table="%-18s %-18s %-25s %-27s %-27s %-10s"
readonly table2="%-20s %-35s %-30s %-10s" readonly tableU="%-20s %-35s %-30s %-10s"
readonly table3="%-20s %-45s %s" readonly tableQ="%-20s %-45s %s"
searchrepos=(${artix_repos[@]}) searchrepos=(${artix_repos[@]})

View File

@@ -12,7 +12,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.
. @libdir@/artools/util-base.sh
. @libdir@/artools/util-pkg.sh . @libdir@/artools/util-pkg.sh
find_cached_pkgfile() { find_cached_pkgfile() {
@@ -130,11 +129,7 @@ update_repo(){
return 0 return 0
} }
load_user_info load_makepkg_config
load_config "${USERCONFDIR}/artools/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
load_vars "${USERCONFDIR}/pacman/makepkg.conf" || load_vars "$USER_HOME/.makepkg.conf"
load_vars /etc/makepkg.conf
add_pkg=false add_pkg=false
del_pkg=false del_pkg=false

View File

@@ -33,7 +33,7 @@ REPO_DB_PREFIX=
REPO_DB_SUFFIX= REPO_DB_SUFFIX=
LOCKFILE= LOCKFILE=
CLEAN_LOCK=0 CLEAN_LOCK=0
PREVENT_DOWNGRADE=0 # PREVENT_DOWNGRADE=0
. @libdir@/artools/util-base.sh . @libdir@/artools/util-base.sh
@@ -53,7 +53,7 @@ Multiple packages to add can be specified on the command line.\n"
printf -- "\n" printf -- "\n"
printf -- "Options:\n" printf -- "Options:\n"
printf -- " -n, --new only add packages that are not already in the database\n" printf -- " -n, --new only add packages that are not already in the database\n"
printf -- "$(gettext " -p, --prevent-downgrade do not add package to database if a newer version is already present\n")" # printf -- "$(gettext " -p, --prevent-downgrade do not add package to database if a newer version is already present\n")"
elif [[ $cmd == "links-remove" ]] ; then elif [[ $cmd == "links-remove" ]] ; then
printf -- "Usage: links-remove [options] <path-to-db> <packagename> ...\n" printf -- "Usage: links-remove [options] <path-to-db> <packagename> ...\n"
printf -- "\n" printf -- "\n"
@@ -201,18 +201,18 @@ db_write_entry() {
if (( ONLYADDNEW )); then if (( ONLYADDNEW )); then
return 0 return 0
fi fi
else # else
pkgentry=$(find_pkgentry "$pkgname") # pkgentry=$(find_pkgentry "$pkgname")
if [[ -n $pkgentry ]]; then # if [[ -n $pkgentry ]]; then
#
local version=$(sed -n '/^%VERSION%$/ {n;p;q}' "$pkgentry/desc") # local version=$(sed -n '/^%VERSION%$/ {n;p;q}' "$pkgentry/desc")
if (( $(vercmp "$version" "$pkgver") > 0 )); then # if (( $(vercmp "$version" "$pkgver") > 0 )); then
warning "$(gettext "A newer version for '%s' is already present in database")" "$pkgname" # warning "$(gettext "A newer version for '%s' is already present in database")" "$pkgname"
if (( PREVENT_DOWNGRADE )); then # if (( PREVENT_DOWNGRADE )); then
return 0 # return 0
fi # fi
fi # fi
fi # fi
fi fi
# remove an existing entry if it exists, ignore failures # remove an existing entry if it exists, ignore failures
@@ -473,7 +473,7 @@ while (( $# )); do
-s|--sign) SIGN=1 ;; -s|--sign) SIGN=1 ;;
-k|--key) KEY=1 ; shift; GPGKEY=$1 ;; -k|--key) KEY=1 ; shift; GPGKEY=$1 ;;
-v|--verify) VERIFY=1 ;; -v|--verify) VERIFY=1 ;;
-p|--prevent-downgrade) PREVENT_DOWNGRADE=1 ;; # -p|--prevent-downgrade) PREVENT_DOWNGRADE=1 ;;
*) args+=("$1") ;; *) args+=("$1") ;;
esac esac
shift shift

View File

@@ -33,8 +33,7 @@ run_checkpkg=0
temp_chroot=0 temp_chroot=0
run_nocheck=0 run_nocheck=0
bindmounts_ro=() bindmounts=()
bindmounts_rw=()
copy=$USER copy=$USER
[[ -n ${SUDO_USER:-} ]] && copy=$SUDO_USER [[ -n ${SUDO_USER:-} ]] && copy=$SUDO_USER
@@ -147,8 +146,7 @@ install_packages() {
cp -- "${install_pkgs[@]}" "$copydir/root/" cp -- "${install_pkgs[@]}" "$copydir/root/"
chroot-run \ chroot-run \
-r "${bindmounts_ro[@]}" \ -b "${bindmounts[@]}" \
-r "${bindmounts_rw[@]}" \
"$copydir" \ "$copydir" \
bash -c 'yes y | pacman -U -- "$@"' -bash "${pkgnames[@]/#//root/}" bash -c 'yes y | pacman -U -- "$@"' -bash "${pkgnames[@]/#//root/}"
ret=$? ret=$?
@@ -282,13 +280,12 @@ move_products() {
orig_argv=("$0" "$@") orig_argv=("$0" "$@")
opts='hcur:I:l:nNCTD:d:U:' opts='hcur:I:l:nNCTb:U:'
while getopts "${opts}" arg; do while getopts "${opts}" arg; do
case "$arg" in case "$arg" in
c) clean_first=1 ;; c) clean_first=1 ;;
D) bindmounts_ro+=("$OPTARG") ;; b) bindmounts+=("$OPTARG") ;;
d) bindmounts_rw+=("$OPTARG") ;;
u) update_first=1 ;; u) update_first=1 ;;
r) passeddir="$OPTARG" ;; r) passeddir="$OPTARG" ;;
I) install_pkgs+=("$OPTARG") ;; I) install_pkgs+=("$OPTARG") ;;
@@ -332,12 +329,12 @@ for arg in "${@:$OPTIND}"; do
esac esac
done done
load_user_info
umask 0022 umask 0022
load_vars "${USERCONFDIR}/pacman/makepkg.conf" || load_vars "$USER_HOME/.makepkg.conf" ORIG_HOME=$HOME
load_vars /etc/makepkg.conf IFS=: read -r _ _ _ _ _ HOME _ < <(getent passwd "${SUDO_USER:-$USER}")
load_makepkg_config
HOME=$ORIG_HOME
# Use PKGBUILD directory if these don't exist # Use PKGBUILD directory if these don't exist
[[ -d $PKGDEST ]] || PKGDEST=$PWD [[ -d $PKGDEST ]] || PKGDEST=$PWD
@@ -352,11 +349,10 @@ if [[ ! -d $copydir ]] || (( clean_first )); then
sync_chroot "$chrootdir" "$copydir" "$copy" sync_chroot "$chrootdir" "$copydir" "$copy"
fi fi
bindmounts_rw+=("${PWD}:/startdir" "${SRCDEST}:/srcdest") bindmounts+=("-B:${PWD}:/startdir" "-B:${SRCDEST}:/srcdest")
(( update_first )) && chroot-run \ (( update_first )) && chroot-run \
-r "${bindmounts_ro[*]}" \ -b "${bindmounts[*]}" \
-w "${bindmounts_rw[*]}" \
"$copydir" \ "$copydir" \
pacman -Syuu --noconfirm pacman -Syuu --noconfirm
@@ -377,8 +373,7 @@ download_sources
prepare_chroot prepare_chroot
if chroot-run \ if chroot-run \
-r "${bindmounts_ro[*]}" \ -b "${bindmounts[*]}" \
-w "${bindmounts_rw[*]}" \
"$copydir" \ "$copydir" \
/chrootbuild "${makepkg_args[@]}" /chrootbuild "${makepkg_args[@]}"
then then

View File

@@ -144,6 +144,6 @@ PACKAGE="$1"/PKGBUILD; shift
. "$PACKAGE" . "$PACKAGE"
. /etc/makepkg.conf load_makepkg_config
write_pkg_yaml write_pkg_yaml

View File

@@ -16,10 +16,9 @@
#GPGDir = /etc/pacman.d/gnupg/ #GPGDir = /etc/pacman.d/gnupg/
#HookDir = /etc/pacman.d/hooks/ #HookDir = /etc/pacman.d/hooks/
HoldPkg = pacman glibc HoldPkg = pacman glibc
#XferCommand = /usr/bin/curl -C - -f %u > %o #XferCommand = /usr/bin/curl -L -C - -f -o %o %u
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u #XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled #CleanMethod = KeepInstalled
#UseDelta = 0.7
Architecture = auto Architecture = auto
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup # Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup

View File

@@ -16,10 +16,9 @@
#GPGDir = /etc/pacman.d/gnupg/ #GPGDir = /etc/pacman.d/gnupg/
#HookDir = /etc/pacman.d/hooks/ #HookDir = /etc/pacman.d/hooks/
HoldPkg = pacman glibc HoldPkg = pacman glibc
#XferCommand = /usr/bin/curl -C - -f %u > %o #XferCommand = /usr/bin/curl -L -C - -f -o %o %u
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u #XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled #CleanMethod = KeepInstalled
#UseDelta = 0.7
Architecture = auto Architecture = auto
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup # Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup

View File

@@ -16,10 +16,9 @@
#GPGDir = /etc/pacman.d/gnupg/ #GPGDir = /etc/pacman.d/gnupg/
#HookDir = /etc/pacman.d/hooks/ #HookDir = /etc/pacman.d/hooks/
HoldPkg = pacman glibc HoldPkg = pacman glibc
#XferCommand = /usr/bin/curl -C - -f %u > %o #XferCommand = /usr/bin/curl -L -C - -f -o %o %u
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u #XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled #CleanMethod = KeepInstalled
#UseDelta = 0.7
Architecture = auto Architecture = auto
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup # Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup

View File

@@ -16,10 +16,9 @@
#GPGDir = /etc/pacman.d/gnupg/ #GPGDir = /etc/pacman.d/gnupg/
#HookDir = /etc/pacman.d/hooks/ #HookDir = /etc/pacman.d/hooks/
HoldPkg = pacman glibc HoldPkg = pacman glibc
#XferCommand = /usr/bin/curl -C - -f %u > %o #XferCommand = /usr/bin/curl -L -C - -f -o %o %u
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u #XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled #CleanMethod = KeepInstalled
#UseDelta = 0.7
Architecture = auto Architecture = auto
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup # Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup

View File

@@ -16,10 +16,9 @@
#GPGDir = /etc/pacman.d/gnupg/ #GPGDir = /etc/pacman.d/gnupg/
#HookDir = /etc/pacman.d/hooks/ #HookDir = /etc/pacman.d/hooks/
HoldPkg = pacman glibc HoldPkg = pacman glibc
#XferCommand = /usr/bin/curl -C - -f %u > %o #XferCommand = /usr/bin/curl -L -C - -f -o %o %u
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u #XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled #CleanMethod = KeepInstalled
#UseDelta = 0.7
Architecture = auto Architecture = auto
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup # Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup

View File

@@ -16,10 +16,9 @@
#GPGDir = /etc/pacman.d/gnupg/ #GPGDir = /etc/pacman.d/gnupg/
#HookDir = /etc/pacman.d/hooks/ #HookDir = /etc/pacman.d/hooks/
HoldPkg = pacman glibc HoldPkg = pacman glibc
#XferCommand = /usr/bin/curl -C - -f %u > %o #XferCommand = /usr/bin/curl -L -C - -f -o %o %u
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u #XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled #CleanMethod = KeepInstalled
#UseDelta = 0.7
Architecture = auto Architecture = auto
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup # Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup

View File

@@ -16,10 +16,9 @@
#GPGDir = /etc/pacman.d/gnupg/ #GPGDir = /etc/pacman.d/gnupg/
#HookDir = /etc/pacman.d/hooks/ #HookDir = /etc/pacman.d/hooks/
HoldPkg = pacman glibc HoldPkg = pacman glibc
#XferCommand = /usr/bin/curl -C - -f %u > %o #XferCommand = /usr/bin/curl -L -C - -f -o %o %u
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u #XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled #CleanMethod = KeepInstalled
#UseDelta = 0.7
Architecture = auto Architecture = auto
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup # Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup

View File

@@ -16,10 +16,9 @@
#GPGDir = /etc/pacman.d/gnupg/ #GPGDir = /etc/pacman.d/gnupg/
#HookDir = /etc/pacman.d/hooks/ #HookDir = /etc/pacman.d/hooks/
HoldPkg = pacman glibc HoldPkg = pacman glibc
#XferCommand = /usr/bin/curl -C - -f %u > %o #XferCommand = /usr/bin/curl -L -C - -f -o %o %u
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u #XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled #CleanMethod = KeepInstalled
#UseDelta = 0.7
Architecture = auto Architecture = auto
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup # Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup

View File

@@ -0,0 +1,9 @@
#############################################
################ artools-base ###############
#############################################
# build dir where buildpkg or buildiso chroots are created
# CHROOTS_DIR=/var/lib/artools
# the workspace directory
# WORKSPACE_DIR="/home/${OWNER}/artools-workspace"

View File

@@ -0,0 +1,21 @@
#############################################
################ artools-iso ################
#############################################
# the iso storage directory
# ISO_POOL="${WORKSPACE_DIR}/iso"
# the dist release; default: auto
# ISO_VERSION=$(date +%Y%m%d)
# possible values: openrc, runit, s6
# INITSYS="openrc"
# gpg key; leave empty or commented to skip sfs signing
# GPG_KEY=""
# set upload bandwidth limit in kB/s
# UPLIMIT=1000
# the server user
# ACCOUNT=[SetUser]

View File

@@ -1,13 +1,3 @@
#############################################
################ artools-base ###############
#############################################
# build dir where buildpkg or buildiso chroots are created
# CHROOTS_DIR=/var/lib/artools
# the workspace directory
# WORKSPACE_DIR="/home/${OWNER}/artools-workspace"
############################################# #############################################
################ artools-pkg ################ ################ artools-pkg ################
############################################# #############################################
@@ -53,25 +43,3 @@
# default mirror for sogrep # default mirror for sogrep
# REPOS_MIRROR="http://mirror1.artixlinux.org/repos" # REPOS_MIRROR="http://mirror1.artixlinux.org/repos"
#############################################
################ artools-iso ################
#############################################
# the iso storage directory
# ISO_POOL="${WORKSPACE_DIR}/iso"
# the dist release; default: auto
# ISO_VERSION=$(date +%Y%m%d)
# possible values: openrc, runit, s6
# INITSYS="openrc"
# gpg key; leave empty or commented to skip sfs signing
# GPG_KEY=""
# set upload bandwidth limit in kB/s
# UPLIMIT=1000
# the server user
# ACCOUNT=[SetUser]

View File

@@ -132,17 +132,17 @@ DBGSRCDIR="/usr/src/debug"
COMPRESSGZ=(gzip -c -f -n) COMPRESSGZ=(gzip -c -f -n)
COMPRESSBZ2=(bzip2 -c -f) COMPRESSBZ2=(bzip2 -c -f)
COMPRESSXZ=(xz -c -z -) COMPRESSXZ=(xz -c -z -)
COMPRESSZST=(zstd -c -z -q -)
COMPRESSLRZ=(lrzip -q) COMPRESSLRZ=(lrzip -q)
COMPRESSLZO=(lzop -q) COMPRESSLZO=(lzop -q)
COMPRESSZ=(compress -c -f) COMPRESSZ=(compress -c -f)
COMPRESSLZ4=(lz4 -q)
COMPRESSLZ=(lzip -c -f)
######################################################################### #########################################################################
# EXTENSION DEFAULTS # EXTENSION DEFAULTS
######################################################################### #########################################################################
# #
# WARNING: Do NOT modify these variables unless you know what you are
# doing.
#
PKGEXT='.pkg.tar.xz' PKGEXT='.pkg.tar.xz'
SRCEXT='.src.tar.gz' SRCEXT='.src.tar.gz'

View File

@@ -25,158 +25,15 @@ show_elapsed_time(){
info "Time %s: %s minutes" "$1" "$(elapsed_time $2)" info "Time %s: %s minutes" "$1" "$(elapsed_time $2)"
} }
load_vars() {
local var
[[ -f $1 ]] || return 1
for var in {SRC,SRCPKG,PKG,LOG}DEST MAKEFLAGS PACKAGER CARCH GPGKEY; do
[[ -z ${!var:-} ]] && eval "$(source "$1"; printf "%s='%s'" "$var" "${!var}")"
done
return 0
}
prepare_dir(){ prepare_dir(){
[[ ! -d $1 ]] && mkdir -p $1 [[ ! -d $1 ]] && mkdir -p $1
} }
get_disturl(){
. /usr/lib/os-release
echo "${HOME_URL}"
}
get_osname(){ get_osname(){
. /usr/lib/os-release . /usr/lib/os-release
echo "${NAME}" echo "${NAME}"
} }
init_artools_base(){
ARCH=$(uname -m)
CHROOTS_DIR=${CHROOTS_DIR:-'/var/lib/artools'}
WORKSPACE_DIR=${WORKSPACE_DIR:-"/home/${OWNER}/artools-workspace"}
prepare_dir "${WORKSPACE_DIR}"
}
init_artools_pkg(){
DOMAIN='artixlinux.org'
GIT_DOMAIN="gitea.${DOMAIN}"
GIT_URL="https://${GIT_DOMAIN}"
GIT_TOKEN=${GIT_TOKEN:-''}
TREE_DIR_ARTIX=${TREE_DIR_ARTIX:-"${WORKSPACE_DIR}/artixlinux"}
[[ -z ${TREE_NAMES_ARTIX[@]} ]] && \
TREE_NAMES_ARTIX=(
packages
community
packages-kernel
packages-openrc
packages-runit
packages-xorg
packages-python
packages-perl
packages-java
packages-qt5
packages-devel
packages-ruby
packages-gtk
packages-gnome
packages-cinnamon
packages-lxqt
packages-mate
packages-kde
packages-xfce
# packages-haskell
)
HOST_TREE_ARTIX=${HOST_TREE_ARTIX:-"gitea@${GIT_DOMAIN}:artixlinux"}
TREE_DIR_ARCH=${TREE_DIR_ARCH:-"${WORKSPACE_DIR}/archlinux"}
TREE_NAMES_ARCH=(packages community)
HOST_TREE_ARCH=${HOST_TREE_ARCH:-'git://git.archlinux.org/svntogit'}
CHROOTS_PKG="${CHROOTS_DIR}/buildpkg"
REPOS_ROOT=${REPOS_ROOT:-"${WORKSPACE_DIR}/repos"}
REPOS_MIRROR=${REPOS_MIRROR:-'http://mirror1.artixlinux.org/repos'}
DBEXT=${DBEXT:-'xz'}
LINKSDBEXT=${LINKSDBEXT:-"links.tar.${DBEXT}"}
PKGDBEXT=${PKGDBEXT:-"db.tar.${DBEXT}"}
}
init_artools_iso(){
CHROOTS_ISO="${CHROOTS_DIR}/buildiso"
ISO_POOL=${ISO_POOL:-"${WORKSPACE_DIR}/iso"}
prepare_dir "${ISO_POOL}"
PROFILE='base'
ISO_VERSION=${ISO_VERSION:-"$(date +%Y%m%d)"}
INITSYS=${INITSYS:-'openrc'}
GPG_KEY=${GPG_KEY:-''}
UPLIMIT=${UPLIMIT:-1000}
FILE_HOST="download.${DOMAIN}"
FILE_HOME=${FILE_HOME:-'/srv/iso'}
FILE_PORT=${FILE_PORT:-65432}
ACCOUNT=${ACCOUNT:-'naughtyISOuploader'}
}
load_config(){
local conf="$1"
[[ -f "$conf" ]] || return 1
[[ -r "$conf" ]] && . "$conf"
init_artools_base
init_artools_pkg
init_artools_iso
return 0
}
load_user_info(){
OWNER=${SUDO_USER:-$USER}
if [[ -n $SUDO_USER ]]; then
eval "USER_HOME=~$SUDO_USER"
else
USER_HOME=$HOME
fi
USERCONFDIR="${XDG_CONFIG_HOME:-$USER_HOME/.config}"
prepare_dir "${USERCONFDIR}"
USERCACHEDIR="${XDG_CACHE_HOME:-$USER_HOME/.cache}/artools"
}
# orig_argv=("$0" "$@") # orig_argv=("$0" "$@")
check_root() { check_root() {
local keepenv=$1 local keepenv=$1

View File

@@ -80,7 +80,6 @@ configure_system(){
write_users_conf(){ write_users_conf(){
local yaml=$(write_yaml_header) local yaml=$(write_yaml_header)
yaml+=$(write_empty_line)
yaml+=$(write_yaml_map 0 'defaultGroups') yaml+=$(write_yaml_map 0 'defaultGroups')
local IFS=',' local IFS=','
for g in ${ADDGROUPS[@]};do for g in ${ADDGROUPS[@]};do
@@ -105,7 +104,6 @@ write_users_conf(){
write_services_conf(){ write_services_conf(){
local key1="$1" val1="$2" key2="$3" val2="$4" local key1="$1" val1="$2" key2="$3" val2="$4"
local yaml=$(write_yaml_header) local yaml=$(write_yaml_header)
yaml+=$(write_empty_line)
yaml+=$(write_yaml_map 0 "$key1" "$val1") yaml+=$(write_yaml_map 0 "$key1" "$val1")
yaml+=$(write_yaml_map 0 "$key2" "$val2") yaml+=$(write_yaml_map 0 "$key2" "$val2")
yaml+=$(write_yaml_map 0 'services') yaml+=$(write_yaml_map 0 'services')
@@ -117,18 +115,28 @@ write_services_conf(){
} }
write_services_openrc_conf(){ write_services_openrc_conf(){
local mods="$1" local conf="$1"/services-openrc.conf
write_services_conf 'initdDir' '/etc/init.d' 'runlevelsDir' '/etc/runlevels' > "$mods"/services-openrc.conf write_services_conf 'initdDir' '/etc/init.d' 'runlevelsDir' '/etc/runlevels' > "$conf"
} }
write_services_runit_conf(){ write_services_runit_conf(){
local mods="$1" local conf="$1"/services-runit.conf
write_services_conf 'svDir' '/etc/runit/sv' 'runsvDir' '/etc/runit/runsvdir' > "$mods"/services-runit.conf write_services_conf 'svDir' '/etc/runit/sv' 'runsvDir' '/etc/runit/runsvdir' > "$conf"
} }
write_services_s6_conf(){ write_services_s6_conf(){
local mods="$1" local conf="$1"/services-s6.conf
write_services_conf 'svDir' '/etc/s6/sv' 'dbDir' '/etc/s6/rc/compiled' > "$mods"/services-s6.conf write_services_conf 'svDir' '/etc/s6/sv' 'dbDir' '/etc/s6/rc/compiled' > "$conf"
}
write_postcfg(){
local yaml=$(write_yaml_header)
yaml+=$(write_yaml_map 0 'keyrings')
for k in archlinux artix;do
yaml+=$(write_yaml_seq 2 "$k")
done
yaml+=$(write_empty_line)
printf '%s' "${yaml}"
} }
configure_calamares(){ configure_calamares(){
@@ -137,7 +145,9 @@ configure_calamares(){
msg2 "Configuring Calamares" msg2 "Configuring Calamares"
write_users_conf > "$mods"/users.conf write_users_conf > "$mods"/users.conf
write_services_"${INITSYS}"_conf "$mods" write_services_"${INITSYS}"_conf "$mods"
sed -e "s|services-openrc|services-${INITSYS}|" -i "$1"/etc/calamares/settings.conf write_postcfg > "$mods"/postcfg.conf
sed -e "s|services-openrc|services-${INITSYS}|" \
-i "$1"/etc/calamares/settings.conf
fi fi
} }

View File

@@ -97,16 +97,23 @@ make_sfs() {
show_elapsed_time "${FUNCNAME}" "${timer_start}" show_elapsed_time "${FUNCNAME}" "${timer_start}"
} }
get_disturl(){
. /usr/lib/os-release
echo "${HOME_URL}"
}
assemble_iso(){ assemble_iso(){
msg "Creating ISO image..." msg "Creating ISO image..."
local mod_date=$(date -u +%Y-%m-%d-%H-%M-%S-00 | sed -e s/-//g) local mod_date=$(date -u +%Y-%m-%d-%H-%M-%S-00 | sed -e s/-//g)
local appid="$(get_osname) Live/Rescue CD"
local publisher="$(get_osname) <$(get_disturl)>"
xorriso -as mkisofs \ xorriso -as mkisofs \
--modification-date=${mod_date} \ --modification-date=${mod_date} \
--protective-msdos-label \ --protective-msdos-label \
-volid "${iso_label}" \ -volid "${iso_label}" \
-appid "$(get_osname) Live/Rescue CD" \ -appid "${appid}" \
-publisher "$(get_osname) <$(get_disturl)>" \ -publisher "${publisher}" \
-preparer "Prepared by artools/${0##*/}" \ -preparer "Prepared by artools/${0##*/}" \
-r -graft-points -no-pad \ -r -graft-points -no-pad \
--sort-weight 0 / \ --sort-weight 0 / \

View File

@@ -51,7 +51,7 @@ load_profile(){
ADDGROUPS=${ADDGROUPS:-"video,power,optical,network,lp,scanner,wheel,users,log"} ADDGROUPS=${ADDGROUPS:-"video,power,optical,network,lp,scanner,wheel,users,log"}
if [[ -z ${SERVICES[@]} ]];then if [[ -z ${SERVICES[@]} ]];then
SERVICES=('acpid' 'bluetooth' 'cronie' 'cupsd' 'syslog-ng' 'connman') SERVICES=('acpid' 'bluetoothd' 'cronie' 'cupsd' 'syslog-ng' 'connmand')
fi fi
if [[ ${DISPLAYMANAGER} != "none" ]];then if [[ ${DISPLAYMANAGER} != "none" ]];then
@@ -61,9 +61,7 @@ load_profile(){
esac esac
fi fi
if [[ -z ${SERVICES_LIVE[@]} ]];then SERVICES_LIVE=('artix-live' 'pacman-init')
SERVICES_LIVE=('artix-live' 'pacman-init')
fi
return 0 return 0
} }

View File

@@ -20,55 +20,6 @@ get_compliant_name(){
echo $gitname echo $gitname
} }
patch_pkg(){
local pkg="$1"
case $pkg in
'glibc')
sed -e 's|{locale,systemd/system,tmpfiles.d}|{locale,tmpfiles.d}|' \
-e '/nscd.service/d' \
-i $pkg/trunk/PKGBUILD
;;
'tp_smapi'|'acpi_call'|'r8168'|'bbswitch'|'broadcom-wl')
sed -e 's|-ARCH|-ARTIX|g' -i $pkg/trunk/PKGBUILD
;;
'nvidia')
sed -e 's|-ARCH|-ARTIX|g' -e 's|for Arch kernel|for Artix kernel|g' \
-e 's|for LTS Arch kernel|for LTS Artix kernel|g' \
-i $pkg/trunk/PKGBUILD
;;
'linux')
sed -e 's|-ARCH|-ARTIX|g' -i $pkg/trunk/PKGBUILD
sed -e 's|CONFIG_DEFAULT_HOSTNAME=.*|CONFIG_DEFAULT_HOSTNAME="artixlinux"|' \
-e 's|CONFIG_CRYPTO_SPECK=.*|CONFIG_CRYPTO_SPECK=n|' \
-i $pkg/trunk/config
cd $pkg/trunk
updpkgsums
cd ../..
;;
'licenses')
sed -e 's|https://www.archlinux.org/|https://www.artixlinux.org/|' -i $pkg/trunk/PKGBUILD
;;
'bash')
sed -e 's|system.bash_logout)|system.bash_logout artix.bashrc)|' \
-e "s|etc/bash.|etc/bash/|g" \
-e 's|"$pkgdir/etc/skel/.bash_logout"|"$pkgdir/etc/skel/.bash_logout"\n install -Dm644 artix.bashrc $pkgdir/etc/bash/bashrc.d/artix.bashrc|' \
-i $pkg/trunk/PKGBUILD
cd $pkg/trunk
patch -Np 1 -i ${DATADIR}/patches/artix-bash.patch
updpkgsums
cd ../..
;;
gstreamer|gst-plugins-*)
sed -e 's|https://www.archlinux.org/|https://www.artixlinux.org/|' \
-e 's|(Arch Linux)|(Artix Linux)|' \
-i $pkg/trunk/PKGBUILD
;;
esac
}
arch2artix(){ arch2artix(){
local repo="$1" artix=none local repo="$1" artix=none
case "$repo" in case "$repo" in

View File

@@ -23,3 +23,45 @@ SYSCONFDIR=${SYSCONFDIR:-'@sysconfdir@/artools'}
for baselib in ${LIBDIR}/base/*.sh; do for baselib in ${LIBDIR}/base/*.sh; do
. $baselib . $baselib
done done
load_user_info(){
OWNER=${SUDO_USER:-$USER}
if [[ -n $SUDO_USER ]]; then
eval "USER_HOME=~$SUDO_USER"
else
USER_HOME=$HOME
fi
XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$USER_HOME/.config}"
USER_CONF_DIR="${XDG_CONFIG_HOME}/artools"
prepare_dir "${USER_CONF_DIR}"
USER_CACHE_DIR="${XDG_CACHE_HOME:-$USER_HOME/.cache}/artools"
}
load_base_config(){
local conf="$1/artools-base.conf"
[[ -f "$conf" ]] || return 1
[[ -r "$conf" ]] && . "$conf"
ARCH=$(uname -m)
CHROOTS_DIR=${CHROOTS_DIR:-'/var/lib/artools'}
WORKSPACE_DIR=${WORKSPACE_DIR:-"/home/${OWNER}/artools-workspace"}
prepare_dir "${WORKSPACE_DIR}"
return 0
}
load_user_info
load_base_config "${USER_CONF_DIR}" || load_base_config "${SYSCONFDIR}"

View File

@@ -12,6 +12,45 @@
# 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.
. @libdir@/artools/util-base.sh
for isolib in ${LIBDIR}/iso/*.sh; do for isolib in ${LIBDIR}/iso/*.sh; do
. $isolib . $isolib
done done
load_iso_config(){
local conf="$1/artools-iso.conf"
[[ -f "$conf" ]] || return 1
[[ -r "$conf" ]] && . "$conf"
CHROOTS_ISO="${CHROOTS_DIR}/buildiso"
ISO_POOL=${ISO_POOL:-"${WORKSPACE_DIR}/iso"}
prepare_dir "${ISO_POOL}"
PROFILE='base'
ISO_VERSION=${ISO_VERSION:-"$(date +%Y%m%d)"}
INITSYS=${INITSYS:-'openrc'}
GPG_KEY=${GPG_KEY:-''}
UPLIMIT=${UPLIMIT:-1000}
FILE_HOST="download.${DOMAIN}"
FILE_HOME=${FILE_HOME:-'/srv/iso'}
FILE_PORT=${FILE_PORT:-65432}
ACCOUNT=${ACCOUNT:-'naughtyISOuploader'}
return 0
}
load_iso_config "${USER_CONF_DIR}" || load_iso_config "${SYSCONFDIR}"

View File

@@ -12,6 +12,75 @@
# 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.
. @libdir@/artools/util-base.sh
for pkglib in ${LIBDIR}/pkg/*.sh; do for pkglib in ${LIBDIR}/pkg/*.sh; do
. $pkglib . $pkglib
done done
load_pkg_config(){
local conf="$1/artools-pkg.conf"
[[ -f "$conf" ]] || return 1
[[ -r "$conf" ]] && . "$conf"
DOMAIN='artixlinux.org'
GIT_DOMAIN="gitea.${DOMAIN}"
GIT_URL="https://${GIT_DOMAIN}"
GIT_TOKEN=${GIT_TOKEN:-''}
TREE_DIR_ARTIX=${TREE_DIR_ARTIX:-"${WORKSPACE_DIR}/artixlinux"}
[[ -z ${TREE_NAMES_ARTIX[@]} ]] && \
TREE_NAMES_ARTIX=(
packages
community
packages-kernel
packages-openrc
packages-runit
packages-xorg
packages-python
packages-perl
packages-java
packages-qt5
packages-devel
packages-ruby
packages-gtk
packages-gnome
packages-cinnamon
packages-lxqt
packages-mate
packages-kde
packages-xfce
# packages-haskell
)
HOST_TREE_ARTIX=${HOST_TREE_ARTIX:-"gitea@${GIT_DOMAIN}:artixlinux"}
TREE_DIR_ARCH=${TREE_DIR_ARCH:-"${WORKSPACE_DIR}/archlinux"}
TREE_NAMES_ARCH=(packages community)
HOST_TREE_ARCH=${HOST_TREE_ARCH:-'git://git.archlinux.org/svntogit'}
CHROOTS_PKG="${CHROOTS_DIR}/buildpkg"
REPOS_ROOT=${REPOS_ROOT:-"${WORKSPACE_DIR}/repos"}
REPOS_MIRROR=${REPOS_MIRROR:-'http://mirror1.artixlinux.org/repos'}
DBEXT=${DBEXT:-'xz'}
LINKSDBEXT=${LINKSDBEXT:-"links.tar.${DBEXT}"}
PKGDBEXT=${PKGDBEXT:-"db.tar.${DBEXT}"}
return 0
}
load_pkg_config "${USER_CONF_DIR}" || load_pkg_config "${SYSCONFDIR}"