Compare commits

..

13 Commits
0.21.3 ... 0.23

Author SHA1 Message Date
2f1cf770cd artools/0.23 (#49)
Reviewed-on: artix/artools#49
Co-authored-by: artoo <artoo@artixlinux.org>
Co-committed-by: artoo <artoo@artixlinux.org>
2021-04-29 21:27:56 +02:00
2f5a374523 comparepkg: highlight rebuild trigger pkg 2021-04-25 16:27:20 +02:00
76ca2dfdc7 deploypkg: fix return code 2021-02-08 20:00:56 +01:00
f05688dc12 rm char 2021-02-07 10:21:13 +01:00
091b5deaa8 mkchrootpkg: only expose failed build logs instead of products 2021-02-07 10:18:53 +01:00
93e4beb61f makepkg.conf: make rsync use new-style compression in makepkg.conf 2021-01-28 15:45:54 +01:00
76b4ff511d mkchrootpkg: Expose failed build logs/products 2021-01-28 15:44:23 +01:00
2995207e6b remove code now done in live-services (#48)
buildiso: simplify dm serivce

buildiso: remove openrc specific DM service handling

remove code now done in live-services

Reviewed-on: artix/artools#48
Co-Authored-By: artoo <artoo@artixlinux.org>
Co-Committed-By: artoo <artoo@artixlinux.org>
2021-01-08 19:06:41 +01:00
5aa8bd3333 comparepkg: remove obsolete help opt 2021-01-05 17:58:41 +01:00
699ea06445 Merge pull request 's6: force artix-live dependency on displaymanagers' (#47) from Dudemanguy/artools:master into master
Reviewed-on: artix/artools#47
2021-01-05 17:56:22 +01:00
4b9a883113 s6: force artix-live dependency on displaymanagers
A bit of a hack, but it's good enough. The liveiso has the problem of
the display manager service starting before the artix-live service
starts. This means the artix user isn't created yet and thus autologin
fails. What needs to happen is that every display manager service should
have a dependency on artix-live. However, s6-rc has no way to specify
optional dependencies so simply adding it to the script package can't be
a solution. Instead what we can do is to just check for the existence of
these services when building the iso (this is the only case where we
care about this dependency) and manually add it to the dependencies file
and rebuild the database.
2021-01-05 10:31:48 -06:00
74ab2c71b1 v0.22 (#46)
artix-chroot: tweak msg

remove unused func & var

buildiso: small msg cosmetics

deploypkg: use full filenames on removal

readd lost get_compliant_name()

update artools-pkg.conf

links-add: don't elf read kernel documentation

chroot-run: remove & tweak msgs

links-add: unquote files var

tweak msgs

shellcheck ignore colors

remove info() and use
only use config vars in caps

Makefile: start 0.22

Reviewed-on: artix/artools#46
Co-Authored-By: artoo <artoo@artixlinux.org>
Co-Committed-By: artoo <artoo@artixlinux.org>
2020-12-26 00:12:19 +01:00
1f64eba1e6 refactor (#45)
fix workspace defaults

buildiso: fix pac conf selection

refactor

use load_valid_names()

Reviewed-on: artix/artools#45
Co-Authored-By: artoo <artoo@artixlinux.org>
Co-Committed-By: artoo <artoo@artixlinux.org>
2020-12-21 16:09:56 +01:00
34 changed files with 303 additions and 305 deletions

View File

@@ -1,4 +1,4 @@
VERSION=0.21 VERSION=0.23
TOOLS = artools TOOLS = artools
PREFIX ?= /usr PREFIX ?= /usr

View File

@@ -21,13 +21,13 @@ m4_include(lib/base/mount.sh)
#{{{ functions #{{{ functions
chroot_part_mount() { chroot_part_mount() {
info "mount: [%s]" "$2" msg2 "mount: [%s]" "$2"
mount "$@" && CHROOT_ACTIVE_PART_MOUNTS=("$2" "${CHROOT_ACTIVE_PART_MOUNTS[@]}") mount "$@" && CHROOT_ACTIVE_PART_MOUNTS=("$2" "${CHROOT_ACTIVE_PART_MOUNTS[@]}")
} }
chroot_part_umount() { chroot_part_umount() {
chroot_api_umount chroot_api_umount
info "umount: [%s]" "${CHROOT_ACTIVE_PART_MOUNTS[@]}" msg2 "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
} }
@@ -80,7 +80,7 @@ select_os(){
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)) ;; *) msg2 "$i) $(get_os_name "$os")"; i=$((i+1)) ;;
esac esac
done done
i=0 i=0

View File

@@ -15,6 +15,7 @@
m4_include(lib/base/message.sh) m4_include(lib/base/message.sh)
m4_include(lib/base/mount.sh) m4_include(lib/base/mount.sh)
m4_include(lib/base/chroot.sh) m4_include(lib/base/chroot.sh)
m4_include(lib/base/chroot-version.sh)
# $1: chroot # $1: chroot
kill_chroot_process(){ kill_chroot_process(){
@@ -26,7 +27,7 @@ kill_chroot_process(){
# this process is in the chroot... # this process is in the chroot...
pid=$(basename "$(dirname "$root_dir")") pid=$(basename "$(dirname "$root_dir")")
name=$(ps -p "$pid" -o comm=) name=$(ps -p "$pid" -o comm=)
info "Killing chroot process: %s (%s)" "$name" "$pid" msg2 "Killing chroot process: %s (%s)" "$name" "$pid"
kill -9 "$pid" kill -9 "$pid"
fi fi
fi fi
@@ -96,7 +97,6 @@ for host_mirror in "${host_mirrors[@]}"; do
if [[ $host_mirror == *file://* ]]; then if [[ $host_mirror == *file://* ]]; then
# shellcheck disable=2016 # shellcheck disable=2016
host_mirror=$(echo "$host_mirror" | sed -r 's#file://(/.*)/\$repo/os/\$arch#\1#g') 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") in_array "$host_mirror" "${cache_dirs[@]}" || cache_dirs+=("$host_mirror")
fi fi
done done
@@ -148,12 +148,6 @@ chroot_extra_mount() {
done done
} }
sync_host_localtime(){
if [[ -e /etc/localtime ]]; then
cp -L /etc/localtime "${working_dir}"/etc/localtime
fi
}
umask 0022 umask 0022
# Sanity check # Sanity check
@@ -163,8 +157,6 @@ 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 chroot_extra_mount

View File

@@ -14,6 +14,7 @@
m4_include(lib/base/message.sh) m4_include(lib/base/message.sh)
m4_include(lib/base/chroot.sh) m4_include(lib/base/chroot.sh)
m4_include(lib/base/chroot-version.sh)
working_dir='' working_dir=''
umode='' umode=''

View File

@@ -86,9 +86,9 @@ make_rootfs() {
basestrap "${basestrap_args[@]}" "${rootfs}" "${packages[@]}" basestrap "${basestrap_args[@]}" "${rootfs}" "${packages[@]}"
copy_overlay "${ROOT_OVERLAY}" "${rootfs}" copy_overlay "${root_overlay}" "${rootfs}"
[[ -z ${LIVE_LIST} ]] && configure_chroot "${rootfs}" [[ -z ${live_list} ]] && configure_chroot "${rootfs}"
clean_up_chroot "${rootfs}" clean_up_chroot "${rootfs}"
@@ -109,7 +109,7 @@ make_livefs() {
basestrap "${basestrap_args[@]}" "${livefs}" "${packages[@]}" basestrap "${basestrap_args[@]}" "${livefs}" "${packages[@]}"
copy_overlay "${LIVE_OVERLAY}" "${livefs}" copy_overlay "${live_overlay}" "${livefs}"
configure_chroot "${livefs}" configure_chroot "${livefs}"
@@ -154,7 +154,7 @@ make_grub(){
msg "Prepare [/iso/boot/grub]" msg "Prepare [/iso/boot/grub]"
local layer=${work_dir}/rootfs local layer=${work_dir}/rootfs
[[ -n ${LIVE_LIST} ]] && layer=${work_dir}/livefs [[ -n ${live_list} ]] && layer=${work_dir}/livefs
prepare_grub "${work_dir}/rootfs" "$layer" prepare_grub "${work_dir}/rootfs" "$layer"
@@ -187,10 +187,9 @@ gen_iso_fn(){
prepare_build(){ prepare_build(){
load_profile load_profile
local repo=default
case "${repo}" in case "${repo}" in
'gremlins'|'goblins') repo="${repo}" ;; 'gremlins'|'goblins') repo="${repo}" ;;
*) repo=default ;;
esac esac
get_pacman_conf "${repo}" get_pacman_conf "${repo}"
@@ -249,10 +248,10 @@ mk_boot(){
} }
mk_chroots(){ mk_chroots(){
load_pkgs "${ROOT_LIST}" "${INITSYS}" load_pkgs "${root_list}"
run_safe "make_rootfs" run_safe "make_rootfs"
if [[ -n ${LIVE_LIST} ]]; then if [[ -n ${live_list} ]]; then
load_pkgs "${LIVE_LIST}" "${INITSYS}" load_pkgs "${live_list}"
run_safe "make_livefs" run_safe "make_livefs"
fi fi
} }

View File

@@ -53,20 +53,20 @@ create_repo() {
} }
subrepo_new(){ subrepo_new(){
cd "${TREE_DIR_ARTIX}/${GROUP}" || return cd "${TREE_DIR_ARTIX}/${group}" || return
local org local org
org=$(get_pkg_org "${PACKAGE}") org=$(get_pkg_org "${package}")
create_repo "${PACKAGE}" "$org" create_repo "${package}" "$org"
add_repo_to_team "${PACKAGE}" "$org" "${TEAM}" add_repo_to_team "${package}" "$org" "${team}"
subrepo_clone "${PACKAGE}" "$org" subrepo_clone "${package}" "$org"
mkdir -p "${TREE_DIR_ARTIX}/${GROUP}/${PACKAGE}/trunk" mkdir -p "${TREE_DIR_ARTIX}/${group}/${package}/trunk"
commit_jenkins_files "${PACKAGE}" commit_jenkins_files "${package}"
} }
#}}} #}}}
@@ -89,7 +89,7 @@ pull_tree_arch(){
pull_tree "${tree}" "$(get_local_head)" "Arch" pull_tree "${tree}" "$(get_local_head)" "Arch"
) )
else else
clone_tree "${host_tree_arch}" "${tree}" "Arch" clone_tree "${HOST_TREE_ARCH}" "${tree}" "Arch"
fi fi
done done
} }
@@ -110,7 +110,7 @@ config_tree(){
pull_tree_artix(){ pull_tree_artix(){
local repos=() local repos=()
if ${sync_group}; then if ${sync_group}; then
repos=("${GROUP}") repos=("${group}")
else else
repos=("${ARTIX_TREE[@]}") repos=("${ARTIX_TREE[@]}")
fi fi
@@ -213,14 +213,14 @@ from_arch(){
cd "${TREE_DIR_ARTIX}" || return cd "${TREE_DIR_ARTIX}" || return
local srcpath repo archpath artixpath local srcpath repo archpath artixpath
srcpath=$(find_pkg "${TREE_DIR_ARCH}" "${PACKAGE}") srcpath=$(find_pkg "${TREE_DIR_ARCH}" "${package}")
[[ -z $srcpath ]] && die "Package '%s' does not exist!" "${PACKAGE}" [[ -z $srcpath ]] && die "Package '%s' does not exist!" "${package}"
repo=$(find_repo "$srcpath") repo=$(find_repo "$srcpath")
msg "repo: %s" "${repo#*/}" msg "repo: %s" "${repo#*/}"
archpath=$srcpath/$repo archpath=$srcpath/$repo
artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${PACKAGE}") artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${package}")
show_deps "$archpath" show_deps "$archpath"
@@ -232,7 +232,7 @@ from_arch(){
patch_pkg "$artixpath" patch_pkg "$artixpath"
fi fi
else else
die "Package '%s' does not exist!" "${PACKAGE}" die "Package '%s' does not exist!" "${package}"
fi fi
} }
@@ -240,8 +240,8 @@ from_arch(){
view_build(){ view_build(){
local archpath repo local archpath repo
archpath=$(find_pkg "${TREE_DIR_ARCH}" "${PACKAGE}") archpath=$(find_pkg "${TREE_DIR_ARCH}" "${package}")
[[ -z $archpath ]] && die "Package '%s' does not exist!" "${PACKAGE}" [[ -z $archpath ]] && die "Package '%s' does not exist!" "${package}"
repo=$(find_repo "${archpath}") repo=$(find_repo "${archpath}")
archpath=$archpath/$repo archpath=$archpath/$repo
msg "repo: %s" "${repo#*/}" msg "repo: %s" "${repo#*/}"
@@ -250,9 +250,9 @@ view_build(){
check_tree(){ check_tree(){
local archpath artixpath group local archpath artixpath group
archpath=$(find_pkg "${TREE_DIR_ARCH}" "${PACKAGE}") archpath=$(find_pkg "${TREE_DIR_ARCH}" "${package}")
[[ -z $archpath ]] && die "Package '%s' does not exist!" "${PACKAGE}" [[ -z $archpath ]] && die "Package '%s' does not exist!" "${package}"
artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${PACKAGE}") artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${package}")
group=${artixpath%/*} group=${artixpath%/*}
msg "group: %s" "${group##*/}" msg "group: %s" "${group##*/}"
@@ -267,6 +267,8 @@ sync_repos(){
load_makepkg_config load_makepkg_config
load_valid_names
testing=true testing=true
staging=true staging=true
unstable=false unstable=false
@@ -280,22 +282,21 @@ createnew=false
sync_group=false sync_group=false
check=false check=false
PACKAGE='' package=''
TEAM='community' team='community'
GROUP="${ARTIX_TREE[0]}" group="${ARTIX_TREE[0]}"
host_tree_artix="${GIT_SSH}:artixlinux" host_tree_artix="${GIT_SSH}:artixlinux"
host_tree_arch='https://github.com/archlinux'
usage() { usage() {
echo "Usage: ${0##*/} [options]" echo "Usage: ${0##*/} [options]"
echo ' -p <pkg> Package name' echo ' -p <pkg> Package name'
echo ' -t <team> Team name (only with -n)' echo ' -t <team> Team name (only with -n)'
echo ' Possible values: core,extra,community,multilib' echo ' Possible values: core,extra,community,multilib'
echo " [default: ${TEAM}]" echo " [default: ${team}]"
echo ' -g <group> Group name, the superrepo (only with -n or -s)' echo ' -g <group> Group name, the superrepo (only with -n or -s)'
echo " [default: ${GROUP}]" echo " [default: ${group}]"
echo " -s Clone or pull repos" echo " -s Clone or pull repos"
echo " -a Don't clone or pull arch repos" echo " -a Don't clone or pull arch repos"
echo " -b Don't clone or pull artix repos" echo " -b Don't clone or pull artix repos"
@@ -316,9 +317,9 @@ opts='p:t:g:sinabcvxyzh'
while getopts "${opts}" arg; do while getopts "${opts}" arg; do
case "${arg}" in case "${arg}" in
p) PACKAGE="$OPTARG" ;; p) package="$OPTARG" ;;
t) TEAM="$OPTARG" ;; t) team="$OPTARG" ;;
g) GROUP="$OPTARG"; sync_group=true ;; g) group="$OPTARG"; sync_group=true ;;
s) sync=true ;; s) sync=true ;;
a) sync_arch=false ;; a) sync_arch=false ;;
b) sync_artix=false ;; b) sync_artix=false ;;

View File

@@ -18,24 +18,12 @@ m4_include(lib/base/message.sh)
m4_include(lib/pkg/repo.sh) m4_include(lib/pkg/repo.sh)
m4_include(lib/pkg/table.sh) m4_include(lib/pkg/table.sh)
update_db_cache(){
msg "Updating database cache"
for repo in "${searchrepos[@]}"; do
local cachedir=${db_cache_dir}/${linksdb_ext}/${CARCH}/${repo}
rm -rf "$cachedir"
mkdir -p "$cachedir"
msg2 "%s" "$repo"
curl -L -s "${REPOS_MIRROR}/${repo}/os/${CARCH}/${repo}.${linksdb_ext}" \
| bsdtar -xf - -C "$cachedir"
done
msg "Done"
}
#{{{ sogrep #{{{ sogrep
query_db() { query_db() {
for repo in "${searchrepos[@]}"; do for repo in "${searchrepos[@]}"; do
local db=${db_cache_dir}/${linksdb_ext}/${CARCH}/${repo}/ local db
db=${db_cache_dir}/${linksdb_ext}/${CARCH}/${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
@@ -52,9 +40,10 @@ query_db() {
#{{{ check db #{{{ check db
is_db_entry() { is_db_entry() {
local pkgname="$1" repo="${REPOS[$2]}" local pkgname="$1" repo="${REPOS[$2]}" entry
entry=${db_cache_dir}/${linksdb_ext}/${CARCH}/$repo/$pkgname
if [[ -d ${db_cache_dir}/${linksdb_ext}/${CARCH}/$repo/$pkgname ]];then if [[ -d "$entry" ]];then
return 0 return 0
fi fi
return 1 return 1
@@ -71,14 +60,14 @@ check_db(){
# shellcheck disable=1090 # shellcheck disable=1090
. "$pkgbuild" 2>/dev/null . "$pkgbuild" 2>/dev/null
artixver=$(get_full_version) artixver=$(get_full_version)
for name in "${pkgname[@]}"; do for name in "${pkgname[@]}"; do
if ! is_db_entry "$name-$artixver" "$repo"; then if ! is_db_entry "$name-$artixver" "$repo"; then
msg_row "${tableU}" "$repo" "$name" "$artixver" "false" msg_row_red "${tableU}" "$repo" "$name" "$artixver" "false"
else
${all_db} && msg_row "${tableU}" "$repo" "$name" "$artixver" "true"
fi fi
done done
unset artixver pkgbuild pkgver epoch pkgname pkgbase unset artixver pkgbuild pkgver epoch pkgname pkgbase
done done
@@ -96,6 +85,20 @@ show_db_table(){
tree_loop check_db tree_loop check_db
} }
update_db_cache(){
msg "Updating database cache ..."
local cachedir url
for repo in "${searchrepos[@]}"; do
cachedir=${db_cache_dir}/${linksdb_ext}/${CARCH}/${repo}
rm -rf "$cachedir"
mkdir -p "$cachedir"
msg2 "%s" "$repo"
url=${REPOS_MIRROR}/${repo}/os/${CARCH}/${repo}.${linksdb_ext}
curl -L -s "$url" | bsdtar -xf - -C "$cachedir"
done
msg "Done"
}
db_cache_dir="${XDG_CACHE_HOME:-$USER_HOME/.cache}/artools" db_cache_dir="${XDG_CACHE_HOME:-$USER_HOME/.cache}/artools"
linksdb_ext="links.tar.${DBEXT}" linksdb_ext="links.tar.${DBEXT}"
@@ -105,11 +108,12 @@ load_makepkg_config
sync=false sync=false
check=false check=false
query=false query=false
all_db=false
readonly tableU="%-20s %-35s %-30s %-10s" readonly tableU="%-20s %-35s %-30s %-10s"
readonly tableQ="%-20s %-45s %s" readonly tableQ="%-20s %-45s %s"
set_arch_repos "true" "true" "true" load_valid_names
#{{{ repo names arrays #{{{ repo names arrays
@@ -151,6 +155,7 @@ usage() {
echo ' [default: all]' echo ' [default: all]'
echo " -s Sync repo databases" echo " -s Sync repo databases"
echo ' -c Check repos' echo ' -c Check repos'
echo ' -a Show repo db (-c)'
echo " -q Query repo databases for so libs" echo " -q Query repo databases for so libs"
echo ' -h This help' echo ' -h This help'
echo '' echo ''
@@ -158,13 +163,14 @@ usage() {
exit "$1" exit "$1"
} }
opts='r:qcsh' opts='r:qcsah'
while getopts "${opts}" arg; do while getopts "${opts}" arg; do
case "${arg}" in case "${arg}" in
r) searchrepos=("$OPTARG") ;; r) searchrepos=("$OPTARG") ;;
s) sync=true ;; s) sync=true ;;
c) check=true ;; c) check=true ;;
a) all_db=true ;;
q) query=true ;; q) query=true ;;
h|?) usage 0 ;; h|?) usage 0 ;;
*) echo "invalid argument '${arg}'"; usage 1 ;; *) echo "invalid argument '${arg}'"; usage 1 ;;

View File

@@ -65,47 +65,47 @@ prepare_commit(){
fi fi
if [[ $action == 'add' ]] || [[ $action == 'move' ]] ;then if [[ $action == 'add' ]] || [[ $action == 'move' ]] ;then
[[ -d "$CARCH/${REPO_DEST}" ]] && git rm -r "$CARCH/${REPO_DEST}" [[ -d "$CARCH/${repo_dest}" ]] && git rm -r "$CARCH/${repo_dest}"
[[ ! -d "$CARCH" ]] && mkdir "$CARCH" [[ ! -d "$CARCH" ]] && mkdir "$CARCH"
[[ ! -d "$CARCH/${REPO_DEST}" ]] && mkdir "$CARCH/${REPO_DEST}" [[ ! -d "$CARCH/${repo_dest}" ]] && mkdir "$CARCH/${repo_dest}"
fi fi
} }
check_rebuild(){ check_rebuild(){
if [[ -d "$CARCH"/"${valid_names[10]}" ]] \ if [[ -d "$CARCH"/"${valid_names[10]}" ]] \
&& [[ "${REPO_DEST}" == "${valid_names[7]}" ]]; then && [[ "${repo_dest}" == "${valid_names[7]}" ]]; then
git rm -r "$CARCH"/"${valid_names[10]}" git rm -r "$CARCH"/"${valid_names[10]}"
git commit -m "switch from ${valid_names[10]} to ${valid_names[7]}" git commit -m "switch from ${valid_names[10]} to ${valid_names[7]}"
elif [[ -d "$CARCH"/"${valid_names[7]}" ]] \ elif [[ -d "$CARCH"/"${valid_names[7]}" ]] \
&& [[ "${REPO_DEST}" == "${valid_names[10]}" ]]; then && [[ "${repo_dest}" == "${valid_names[10]}" ]]; then
git rm -r "$CARCH"/"${valid_names[7]}" git rm -r "$CARCH"/"${valid_names[7]}"
git commit -m "switch from ${valid_names[7]} to ${valid_names[10]}" git commit -m "switch from ${valid_names[7]} to ${valid_names[10]}"
fi fi
} }
check_team(){ check_team(){
if [[ "${REPO_SRC}" == "${valid_names[0]}" \ if [[ "${repo_src}" == "${valid_names[0]}" \
&& "${REPO_DEST}" == "${valid_names[1]}" ]] || \ && "${repo_dest}" == "${valid_names[1]}" ]] || \
[[ "${REPO_SRC}" == "${valid_names[1]}" \ [[ "${repo_src}" == "${valid_names[1]}" \
&& "${REPO_DEST}" == "${valid_names[0]}" ]] || \ && "${repo_dest}" == "${valid_names[0]}" ]] || \
[[ "${REPO_SRC}" == "${valid_names[1]}" \ [[ "${repo_src}" == "${valid_names[1]}" \
&& "${REPO_DEST}" == "${valid_names[2]}" ]] || \ && "${repo_dest}" == "${valid_names[2]}" ]] || \
[[ "${REPO_SRC}" == "${valid_names[2]}" \ [[ "${repo_src}" == "${valid_names[2]}" \
&& "${REPO_DEST}" == "${valid_names[1]}" ]] ;then && "${repo_dest}" == "${valid_names[1]}" ]] ;then
local org local org
org=$(get_pkg_org "${PACKAGE}") org=$(get_pkg_org "${package}")
add_repo_to_team "${PACKAGE}" "$org" "${REPO_DEST}" add_repo_to_team "${package}" "$org" "${repo_dest}"
remove_repo_from_team "${PACKAGE}" "$org" "${REPO_SRC}" remove_repo_from_team "${package}" "$org" "${repo_src}"
fi fi
} }
path_config() { path_config() {
[[ "${REPO_SRC}" != 'trunk' ]] && pkgbuild="$CARCH/${REPO_SRC}"/PKGBUILD [[ "${repo_src}" != 'trunk' ]] && pkgbuild="$CARCH/${repo_src}"/PKGBUILD
if [[ ! -f "$pkgbuild" ]]; then if [[ ! -f "$pkgbuild" ]]; then
pkgbuild=repos/"${REPO_SRC}-${CARCH}"/PKGBUILD pkgbuild=repos/"${repo_src}-${CARCH}"/PKGBUILD
[[ -f repos/"${REPO_SRC}"-any/PKGBUILD ]] && pkgbuild=repos/"${REPO_SRC}"-any/PKGBUILD [[ -f repos/"${repo_src}"-any/PKGBUILD ]] && pkgbuild=repos/"${repo_src}"-any/PKGBUILD
fi fi
# shellcheck disable=1090 # shellcheck disable=1090
@@ -116,21 +116,21 @@ commit_pkg() {
local commit_msg pkg local commit_msg pkg
if ${remove};then if ${remove};then
action='remove' action='remove'
if [[ "${REPO_SRC}" == 'trunk' ]];then if [[ "${repo_src}" == 'trunk' ]];then
pkg=${PACKAGE} pkg=${package}
git rm -r trunk git rm -r trunk
else else
pkg="${PACKAGE}-$(get_full_version)" pkg="${package}-$(get_full_version)"
prepare_commit prepare_commit
git rm -r "$CARCH/${REPO_SRC}" git rm -r "$CARCH/${repo_src}"
fi fi
commit_msg="[${REPO_SRC}] '$pkg' ${action}" commit_msg="[${repo_src}] '$pkg' ${action}"
msg "Action: %s" "$commit_msg" msg "Action: %s" "$commit_msg"
else else
action='modify' action='modify'
commit_msg="[${REPO_SRC}] '${PACKAGE}-$(get_full_version)' ${action}" commit_msg="[${repo_src}] '${package}-$(get_full_version)' ${action}"
msg "Action: %s" "$commit_msg" msg "Action: %s" "$commit_msg"
git add . git add .
fi fi
@@ -139,23 +139,23 @@ commit_pkg() {
repo_commit_pkg() { repo_commit_pkg() {
local commit_msg local commit_msg
if [[ "${REPO_SRC}" == 'trunk' ]];then if [[ "${repo_src}" == 'trunk' ]];then
action='add' action='add'
prepare_commit prepare_commit
check_rebuild check_rebuild
cp trunk/* "$CARCH/${REPO_DEST}"/ cp trunk/* "$CARCH/${repo_dest}"/
else else
action='move' action='move'
[[ ! -f $pkgbuild ]] && die "%s does not exist!" "$pkgbuild" [[ ! -f $pkgbuild ]] && die "%s does not exist!" "$pkgbuild"
prepare_commit prepare_commit
cp "$CARCH/${REPO_SRC}"/* "$CARCH/${REPO_DEST}"/ cp "$CARCH/${repo_src}"/* "$CARCH/${repo_dest}"/
git rm -r "$CARCH/${REPO_SRC}" git rm -r "$CARCH/${repo_src}"
fi fi
commit_msg="[${REPO_SRC}] -> [${REPO_DEST}] '${PACKAGE}-$(get_full_version)' ${action}" commit_msg="[${repo_src}] -> [${repo_dest}] '${package}-$(get_full_version)' ${action}"
msg "Action: %s" "$commit_msg" msg "Action: %s" "$commit_msg"
git add . git add .
@@ -164,7 +164,7 @@ repo_commit_pkg() {
run(){ run(){
local artixpath head group local artixpath head group
artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${PACKAGE}") artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${package}")
if [[ -n ${artixpath} ]];then if [[ -n ${artixpath} ]];then
group=${artixpath%/*} group=${artixpath%/*}
cd "${group}" || return cd "${group}" || return
@@ -183,9 +183,9 @@ run(){
cd "${group}" || return cd "${group}" || return
${push} && pull_tree "${group##*/}" "$head" ${push} && pull_tree "${group##*/}" "$head"
# subrepo_pull "${PACKAGE}" # subrepo_pull "${package}"
subrepo_push "${PACKAGE}" subrepo_push "${package}"
subrepo_clean "${PACKAGE}" subrepo_clean "${package}"
${push} && push_tree "${group##*/}" ${push} && push_tree "${group##*/}"
@@ -193,7 +193,7 @@ run(){
[[ "${cmd}" != 'commitpkg' ]] && check_team [[ "${cmd}" != 'commitpkg' ]] && check_team
else else
die "Package '%s' does not exist!" "${PACKAGE}" die "Package '%s' does not exist!" "${package}"
fi fi
} }
@@ -202,7 +202,7 @@ is_valid_repo(){
for repo in "${valid_names[@]}"; do for repo in "${valid_names[@]}"; do
_valid=${repo:-}${repo:+|}$_valid _valid=${repo:-}${repo:+|}$_valid
done done
eval "case ${REPO_SRC} in eval "case ${repo_src} in
${_valid}) return 0 ;; ${_valid}) return 0 ;;
*) return 1 ;; *) return 1 ;;
esac" esac"
@@ -212,19 +212,21 @@ is_valid_repo(){
load_makepkg_config load_makepkg_config
REPO_SRC='trunk' load_valid_names
PACKAGE=''
repo_src='trunk'
package=''
remove=false remove=false
push=false push=false
pkgbuild=trunk/PKGBUILD pkgbuild=trunk/PKGBUILD
cmd=${0##*/} cmd=${0##*/}
REPO_DEST=${cmd%pkg} repo_dest=${cmd%pkg}
usage() { usage() {
echo "Usage: ${0##*/} [options]" echo "Usage: ${0##*/} [options]"
echo " -s <name> Source repository [default:${REPO_SRC}]" echo " -s <name> Source repository [default:${repo_src}]"
echo ' -p <pkg> Package name' echo ' -p <pkg> Package name'
echo ' -r Delete from repo (commitpkg only)' echo ' -r Delete from repo (commitpkg only)'
echo ' -u Push' echo ' -u Push'
@@ -238,8 +240,8 @@ opts='p:s:urh'
while getopts "${opts}" arg; do while getopts "${opts}" arg; do
case "${arg}" in case "${arg}" in
s) REPO_SRC="$OPTARG" ;; s) repo_src="$OPTARG" ;;
p) PACKAGE="$OPTARG" ;; p) package="$OPTARG" ;;
r) remove=true ;; r) remove=true ;;
u) push=true ;; u) push=true ;;
h|?) usage 0 ;; h|?) usage 0 ;;
@@ -249,10 +251,8 @@ done
shift $(( OPTIND - 1 )) shift $(( OPTIND - 1 ))
set_arch_repos "false" "false" "false"
if is_valid_repo;then if is_valid_repo;then
run run
else else
die "source repository '%s' is not valid!" "${REPO_SRC}" die "source repository '%s' is not valid!" "${repo_src}"
fi fi

View File

@@ -23,43 +23,40 @@ m4_include(lib/pkg/table.sh)
remove_list(){ remove_list(){
local name="$1" local name="$1"
[[ -f "${TREE_DIR_ARTIX}"/$name.list ]] && rm "${TREE_DIR_ARTIX}"/$name.list [[ -f "${TREE_DIR_ARTIX}"/$name.list ]] && rm "${TREE_DIR_ARTIX}"/"$name".list
} }
write_list(){ write_list(){
local line="$1" name="$2" local line="$1" name="$2"
printf "%s\n" "$line" >> "${TREE_DIR_ARTIX}"/$name.list printf "%s\n" "$line" >> "${TREE_DIR_ARTIX}"/"$name".list
} }
compare_m(){ compare_m(){
result=$(vercmp "$artixver" "$archver")
case ${artixrepo} in case ${artixrepo} in
*testing*|*staging*|*rebuild) *testing*|*staging*|*rebuild)
if [[ "${a}" == "${b}" ]] || [[ "${a}" == 'staging' && "${b}" == 'rebuild' ]]; then if [[ "${a}" == "${b}" ]]; then
msg_row "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}" msg_row "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}"
elif [[ "${a}" == 'staging' && "${b}" == 'rebuild' ]]; then
msg_row_yellow "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}"
else else
msg_row_notify "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}" msg_row_green "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}"
if [[ -n "$archrepo" ]]; then [[ -n "$archrepo" ]] && write_list "${a}:${b}:$pkg" pkg_moves
write_list "${a}:${b}:$pkg" pkg_moves
fi
fi fi
;; ;;
esac esac
} }
compare_u(){ compare_u(){
result=$(vercmp "$artixver" "$archver")
if [ "$result" -eq -1 ];then if [ "$result" -eq -1 ];then
msg_row_upgrade "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}" msg_row_red "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}"
write_list "${a}:$pkg" pkg_upgrades write_list "${a}:$pkg" pkg_upgrades
fi fi
} }
compare_d(){ compare_d(){
result=$(vercmp "$artixver" "$archver")
if [ "$result" -eq 1 ];then if [ "$result" -eq 1 ];then
if [[ -n "$archver" ]] && [[ -n "$archrepo" ]];then if [[ -n "$archver" ]] && [[ -n "$archrepo" ]];then
msg_row_downgrade "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}" msg_row_yellow "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}"
fi fi
fi fi
} }
@@ -102,9 +99,11 @@ pre_compare(){
archver=$(get_full_version) archver=$(get_full_version)
fi fi
result=$(vercmp "$artixver" "$archver")
"$func" "$func"
unset pkgver epoch pkgrel artixver archver pkgbuild archpath unset epoch
fi fi
} }
@@ -148,6 +147,8 @@ show_move_table(){
load_makepkg_config load_makepkg_config
load_valid_names
testing=true testing=true
staging=true staging=true
unstable=false unstable=false
@@ -159,7 +160,7 @@ move=false
readonly table="%-18s %-18s %-25s %-27s %-27s %-10s" readonly table="%-18s %-18s %-25s %-27s %-27s %-10s"
usage() { usage() {
echo "Usage: ${0##*/} [options] (with -q [libname])" echo "Usage: ${0##*/} [options]"
echo ' -u Show upgrade packages' echo ' -u Show upgrade packages'
echo ' -d Show downgrade packages' echo ' -d Show downgrade packages'
echo ' -m Show packages to move' echo ' -m Show packages to move'

View File

@@ -17,7 +17,7 @@ m4_include(lib/util-pkg.sh)
m4_include(lib/base/message.sh) m4_include(lib/base/message.sh)
m4_include(lib/pkg/deploy.sh) m4_include(lib/pkg/deploy.sh)
#{{{ functions #{{{ deploy
add(){ add(){
if pkgfile=$(find_cached_pkgfile "${pkgname}"); then if pkgfile=$(find_cached_pkgfile "${pkgname}"); then
@@ -29,9 +29,9 @@ add(){
} }
remove(){ remove(){
packages+=("$pkgname") packages+=("$(get_pkgbasename "${pkgname}")")
action='remove' action='remove'
rm -v "$repo_path"/"$pkgname"*.pkg.tar.* rm -v "$repo_path"/"${pkgname}"{,.sig}
} }
repo_action(){ repo_action(){
@@ -92,6 +92,10 @@ passfiles=("$@")
repo_path=${REPOS_ROOT}/${dest_repo}/os/${CARCH} repo_path=${REPOS_ROOT}/${dest_repo}/os/${CARCH}
if [[ -n "${passfiles[*]}" ]]; then if [[ -n "${passfiles[*]}" ]]; then
${add_pkg} && repo_action add if ${add_pkg}; then
${rm_pkg} && repo_action remove repo_action add
fi
if ${rm_pkg}; then
repo_action remove
fi
fi fi

View File

@@ -232,8 +232,9 @@ db_write_entry() {
msg2 "Creating '%s' db entry..." "${REPO_DB_NAME}" msg2 "Creating '%s' db entry..." "${REPO_DB_NAME}"
local linksentry=$tmpdir/${REPO_DB_NAME}/$pkgname-$pkgver/${REPO_DB_NAME} local linksentry=$tmpdir/${REPO_DB_NAME}/$pkgname-$pkgver/${REPO_DB_NAME}
local files=$(find "$tmppkg" -type f ! -ipath "*/Documentation/*")
for f in $(find "$tmppkg" -type f); do for f in ${files}; do
readelf -d "$f" 2> /dev/null | sed -nr 's/.*Shared library: \[(.*)\].*/\1/p' readelf -d "$f" 2> /dev/null | sed -nr 's/.*Shared library: \[(.*)\].*/\1/p'
done | sort -u > "$linksentry" done | sort -u > "$linksentry"

View File

@@ -32,7 +32,6 @@ clean_first=0
run_namcap=0 run_namcap=0
run_checkpkg=0 run_checkpkg=0
temp_chroot=0 temp_chroot=0
run_nocheck=0
bindmounts=() bindmounts=()
@@ -248,6 +247,15 @@ download_sources() {
die "Could not download sources." die "Could not download sources."
} }
move_logfiles() {
local l
for l in "$copydir"/logdest/*; do
[[ $l == */logpipe.* ]] && continue
chown "$src_owner" "$l"
mv "$l" "$LOGDEST"
done
}
move_products() { move_products() {
local pkgfile local pkgfile
for pkgfile in "$copydir"/pkgdest/*; do for pkgfile in "$copydir"/pkgdest/*; do
@@ -260,12 +268,7 @@ move_products() {
fi fi
done done
local l move_logfiles
for l in "$copydir"/logdest/*; do
[[ $l == */logpipe.* ]] && continue
chown "$src_owner" "$l"
mv "$l" "$LOGDEST"
done
for s in "$copydir"/srcpkgdest/*; do for s in "$copydir"/srcpkgdest/*; do
chown "$src_owner" "$s" chown "$src_owner" "$s"
@@ -290,7 +293,7 @@ while getopts "${opts}" arg; do
I) install_pkgs+=("$OPTARG") ;; I) install_pkgs+=("$OPTARG") ;;
l) copy="$OPTARG" ;; l) copy="$OPTARG" ;;
n) run_namcap=1; makepkg_args+=(--install) ;; n) run_namcap=1; makepkg_args+=(--install) ;;
N) run_nocheck=1; makepkg_args+=(--nocheck) ;; N) makepkg_args+=(--nocheck) ;;
C) run_checkpkg=1 ;; C) run_checkpkg=1 ;;
T) temp_chroot=1; copy+="-$$" ;; T) temp_chroot=1; copy+="-$$" ;;
U) makepkg_user="$OPTARG" ;; U) makepkg_user="$OPTARG" ;;
@@ -380,6 +383,7 @@ then
move_products move_products
else else
(( ret += 1 )) (( ret += 1 ))
move_logfiles
fi fi
(( temp_chroot )) && delete_chroot "$copydir" "$copy" (( temp_chroot )) && delete_chroot "$copydir" "$copy"

View File

@@ -152,10 +152,10 @@ shift $(( OPTIND - 1 ))
srcpath=$(readlink -f "$1") srcpath=$(readlink -f "$1")
[[ -f "$srcpath"/PKGBUILD ]] || die "%s/PKGBUILD does not exist!" "$srcpath" [[ -f "$srcpath"/PKGBUILD ]] || die "%s/PKGBUILD does not exist!" "$srcpath"
PACKAGE="$srcpath"/PKGBUILD; shift package="$srcpath"/PKGBUILD; shift
# shellcheck disable=1090 # shellcheck disable=1090
. "$PACKAGE" . "${package}"
load_makepkg_config load_makepkg_config

View File

@@ -6,4 +6,4 @@
# CHROOTS_DIR=/var/lib/artools # CHROOTS_DIR=/var/lib/artools
# the workspace directory # the workspace directory
# WORKSPACE_DIR="/home/${USER}/artools-workspace" # WORKSPACE_DIR="${USER_HOME}/artools-workspace"

View File

@@ -8,7 +8,7 @@
# the dist release; default: auto # the dist release; default: auto
# ISO_VERSION=$(date +%Y%m%d) # ISO_VERSION=$(date +%Y%m%d)
# possible values: openrc, runit, s6 # possible values: openrc, runit, s6, 66
# INITSYS="openrc" # INITSYS="openrc"
# gpg key; leave empty or commented to skip img signing # gpg key; leave empty or commented to skip img signing

View File

@@ -38,3 +38,9 @@
# default mirror for checkrepo # default mirror for checkrepo
# REPOS_MIRROR="http://mirror1.artixlinux.org/repos" # REPOS_MIRROR="http://mirror1.artixlinux.org/repos"
# enable if trouble with default github arch mirror
# ARCH_TREE=(packages community)
# enable if trouble with default github arch mirror
# HOST_TREE_ARCH='https://git.archlinux.org/svntogit'

View File

@@ -15,7 +15,7 @@ DLAGENTS=('file::/usr/bin/curl -gqC - -o %o %u'
'ftp::/usr/bin/curl -gqfC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u' 'ftp::/usr/bin/curl -gqfC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u'
'http::/usr/bin/curl -gqb "" -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' '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 -zz %u %o'
'scp::/usr/bin/scp -C %u %o') 'scp::/usr/bin/scp -C %u %o')
# Other common tools: # Other common tools:

View File

@@ -36,7 +36,7 @@ goblins=(
"${valid_names[10]}" "${valid_names[10]}"
) )
unstable=( wobble=(
"${valid_names[11]}" "${valid_names[11]}"
"${valid_names[12]}" "${valid_names[12]}"
) )

View File

@@ -0,0 +1,3 @@
#!/hint/bash
CHROOTVERSION=0.10

View File

@@ -2,8 +2,6 @@
#{{{ chroot #{{{ chroot
CHROOTVERSION=0.10
orig_argv=("$0" "$@") orig_argv=("$0" "$@")
check_root() { check_root() {
local keepenv="$1" local keepenv="$1"

View File

@@ -14,15 +14,10 @@ shopt -s extglob
if [[ -t 2 && "$TERM" != dumb ]]; then if [[ -t 2 && "$TERM" != dumb ]]; then
colorize colorize
else else
# shellcheck disable=2034
declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW=''
fi fi
info() {
local mesg=$1; shift
# shellcheck disable=2059
printf "${YELLOW} -->${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2
}
stat_busy() { stat_busy() {
local mesg=$1; shift local mesg=$1; shift
# shellcheck disable=2059 # shellcheck disable=2059

View File

@@ -13,7 +13,7 @@ trap_setup(){
} }
chroot_mount() { chroot_mount() {
# info "mount: [%s]" "$2" # msg2 "mount: [%s]" "$2"
mount "$@" && CHROOT_ACTIVE_MOUNTS=("$2" "${CHROOT_ACTIVE_MOUNTS[@]}") mount "$@" && CHROOT_ACTIVE_MOUNTS=("$2" "${CHROOT_ACTIVE_MOUNTS[@]}")
} }
@@ -75,7 +75,7 @@ chroot_api_mount() {
chroot_api_umount() { chroot_api_umount() {
if (( ${#CHROOT_ACTIVE_MOUNTS[@]} )); then if (( ${#CHROOT_ACTIVE_MOUNTS[@]} )); then
# info "umount: [%s]" "${CHROOT_ACTIVE_MOUNTS[@]}" # msg2 "umount: [%s]" "${CHROOT_ACTIVE_MOUNTS[@]}"
umount "${CHROOT_ACTIVE_MOUNTS[@]}" umount "${CHROOT_ACTIVE_MOUNTS[@]}"
fi fi
unset CHROOT_ACTIVE_MOUNTS unset CHROOT_ACTIVE_MOUNTS

View File

@@ -2,30 +2,6 @@
#{{{ calamares #{{{ calamares
write_users_conf(){
local yaml
yaml=$(write_yaml_header)
yaml+=$(write_yaml_map 0 'defaultGroups')
local IFS=','
for g in "${ADDGROUPS[@]}"; do
yaml+=$(write_yaml_seq 2 "$g")
done
unset IFS
yaml+=$(write_yaml_map 0 'autologinGroup' 'autologin')
yaml+=$(write_yaml_map 0 'doAutologin' 'false')
yaml+=$(write_yaml_map 0 'sudoersGroup' 'wheel')
yaml+=$(write_yaml_map 0 'setRootPassword' 'true')
yaml+=$(write_yaml_map 0 'availableShells' '/bin/bash, /bin/zsh')
# yaml+=$(write_yaml_map 0 'passwordRequirements')
# yaml+=$(write_yaml_map 2 'minLength' '-1')
# yaml+=$(write_yaml_map 2 'maxLength' '-1')
# yaml+=$(write_yaml_map 2 'libpwquality')
# yaml+=$(write_yaml_seq 4 "minlen=8")
# yaml+=$(write_yaml_seq 4 "minclass=80")
yaml+=$(write_empty_line)
printf '%s' "${yaml}"
}
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 local yaml
@@ -55,6 +31,11 @@ write_services_s6_conf(){
write_services_conf 'svDir' '/etc/s6/sv' 'dbDir' '/etc/s6/rc/compiled' > "$conf" write_services_conf 'svDir' '/etc/s6/sv' 'dbDir' '/etc/s6/rc/compiled' > "$conf"
} }
write_services_66_conf(){
local conf="$1"/services-66.conf
write_services_conf 'svDir' '/etc/66/service' 'dbDir' '/run/66/tree' > "$conf"
}
write_postcfg(){ write_postcfg(){
local yaml local yaml
yaml=$(write_yaml_header) yaml=$(write_yaml_header)
@@ -70,13 +51,10 @@ write_unpackfs() {
local yaml local yaml
yaml=$(write_yaml_header) yaml=$(write_yaml_header)
yaml+=$(write_yaml_map 0 'unpack') yaml+=$(write_yaml_map 0 'unpack')
# if ${persist}; then local fs="squashfs"
# yaml+=$(write_yaml_seq_map 2 'source' '"/run/artix/bootmnt/LiveOS/rootfs.img"') # ${persist} && fs="ext4"
# yaml+=$(write_yaml_map 4 'sourcefs' '"ext4"')
# else
yaml+=$(write_yaml_seq_map 2 'source' '"/run/artix/bootmnt/LiveOS/rootfs.img"') yaml+=$(write_yaml_seq_map 2 'source' '"/run/artix/bootmnt/LiveOS/rootfs.img"')
yaml+=$(write_yaml_map 4 'sourcefs' '"squashfs"') yaml+=$(write_yaml_map 4 'sourcefs' \'"$fs"\')
# fi
yaml+=$(write_yaml_map 4 'destination' '""') yaml+=$(write_yaml_map 4 'destination' '""')
yaml+=$(write_empty_line) yaml+=$(write_empty_line)
printf '%s' "${yaml}" printf '%s' "${yaml}"
@@ -85,8 +63,7 @@ write_unpackfs() {
configure_calamares(){ configure_calamares(){
local mods="$1/etc/calamares/modules" local mods="$1/etc/calamares/modules"
if [[ -d "$mods" ]];then if [[ -d "$mods" ]];then
msg2 "Configuring Calamares" msg2 "Configuring: Calamares"
write_users_conf > "$mods"/users.conf
write_services_"${INITSYS}"_conf "$mods" write_services_"${INITSYS}"_conf "$mods"
write_postcfg > "$mods"/postcfg.conf write_postcfg > "$mods"/postcfg.conf
write_unpackfs > "$mods"/unpackfs.conf write_unpackfs > "$mods"/unpackfs.conf

View File

@@ -2,52 +2,27 @@
#{{{ session #{{{ session
configure_hosts(){
sed -e "s|localhost.localdomain|localhost.localdomain ${HOST_NAME}|" -i "$1"/etc/hosts
}
configure_logind(){
local conf=$1/etc/"$2"/logind.conf
if [[ -e "$conf" ]];then
msg2 "Configuring logind ..."
sed -i 's/#\(HandleSuspendKey=\)suspend/\1ignore/' "$conf"
sed -i 's/#\(HandleLidSwitch=\)suspend/\1ignore/' "$conf"
sed -i 's/#\(HandleHibernateKey=\)hibernate/\1ignore/' "$conf"
fi
}
configure_services(){ configure_services(){
local mnt="$1" local mnt="$1"
info "Configuring [%s] services" "${INITSYS}" add_svc_"${INITSYS}" "$mnt" "${SERVICES[*]}"
add_svc_"${INITSYS}" "$mnt" "${SERVICES[*]} ${SERVICES_LIVE[*]}"
info "Done configuring [%s] services" "${INITSYS}"
} }
configure_system(){
local mnt="$1"
configure_logind "$mnt" "elogind"
echo "${HOST_NAME}" > "$mnt"/etc/hostname
}
write_live_session_conf(){ write_live_session_conf(){
local conf='' local conf=''
conf+=$(printf '%s\n' '# live session configuration') conf+=$(printf '%s\n' '# live session configuration')
conf+=$(printf "\nAUTOLOGIN=%s\n" "${AUTOLOGIN}") conf+=$(printf "\nAUTOLOGIN=%s\n" "${AUTOLOGIN}")
conf+=$(printf "\nUSER_NAME=%s\n" "${USER_NAME}")
conf+=$(printf "\nPASSWORD=%s\n" "${PASSWORD}") conf+=$(printf "\nPASSWORD=%s\n" "${PASSWORD}")
conf+=$(printf "\nADDGROUPS='%s'\n" "${ADDGROUPS}")
printf '%s' "$conf" printf '%s' "$conf"
} }
configure_chroot(){ configure_chroot(){
local fs="$1" local fs="$1"
msg "Configuring [%s]" "${fs##*/}" msg "Configuring [%s]" "${fs##*/}"
configure_hosts "$fs"
configure_system "$fs"
configure_services "$fs" configure_services "$fs"
configure_calamares "$fs" configure_calamares "$fs"
[[ ! -d "$fs/etc/artools" ]] && mkdir -p "$fs/etc/artools" [[ ! -d "$fs/etc/artools" ]] && mkdir -p "$fs/etc/artools"
msg2 "Writing live.conf" msg2 "Writing: live.conf"
write_live_session_conf > "$fs/etc/artools/live.conf" write_live_session_conf > "$fs/etc/artools/live.conf"
msg "Done configuring [%s]" "${fs##*/}" msg "Done configuring [%s]" "${fs##*/}"
} }

View File

@@ -3,7 +3,7 @@
#{{{ mount #{{{ mount
track_img() { track_img() {
info "mount: [%s]" "$2" msg2 "mount: [%s]" "$2"
mount "$@" && IMG_ACTIVE_MOUNTS=("$2" "${IMG_ACTIVE_MOUNTS[@]}") mount "$@" && IMG_ACTIVE_MOUNTS=("$2" "${IMG_ACTIVE_MOUNTS[@]}")
} }
@@ -15,7 +15,7 @@ mount_img() {
umount_img() { umount_img() {
if [[ -n "${IMG_ACTIVE_MOUNTS[*]}" ]];then if [[ -n "${IMG_ACTIVE_MOUNTS[*]}" ]];then
info "umount: [%s]" "${IMG_ACTIVE_MOUNTS[@]}" msg2 "umount: [%s]" "${IMG_ACTIVE_MOUNTS[@]}"
umount "${IMG_ACTIVE_MOUNTS[@]}" umount "${IMG_ACTIVE_MOUNTS[@]}"
unset IMG_ACTIVE_MOUNTS unset IMG_ACTIVE_MOUNTS
rm -r "$1" rm -r "$1"
@@ -23,7 +23,7 @@ umount_img() {
} }
track_fs() { track_fs() {
info "overlayfs mount: [%s]" "$5" msg2 "overlayfs mount: [%s]" "$5"
mount "$@" && FS_ACTIVE_MOUNTS=("$5" "${FS_ACTIVE_MOUNTS[@]}") mount "$@" && FS_ACTIVE_MOUNTS=("$5" "${FS_ACTIVE_MOUNTS[@]}")
} }
@@ -45,7 +45,7 @@ mount_overlayfs(){
umount_overlayfs(){ umount_overlayfs(){
if [[ -n "${FS_ACTIVE_MOUNTS[*]}" ]];then if [[ -n "${FS_ACTIVE_MOUNTS[*]}" ]];then
info "overlayfs umount: [%s]" "${FS_ACTIVE_MOUNTS[@]}" msg2 "overlayfs umount: [%s]" "${FS_ACTIVE_MOUNTS[@]}"
umount "${FS_ACTIVE_MOUNTS[@]}" umount "${FS_ACTIVE_MOUNTS[@]}"
unset FS_ACTIVE_MOUNTS unset FS_ACTIVE_MOUNTS
rm -rf "${mnt_dir}/work" rm -rf "${mnt_dir}/work"

View File

@@ -5,80 +5,81 @@
show_profile(){ show_profile(){
msg2 "iso_file: %s" "${iso_file}" msg2 "iso_file: %s" "${iso_file}"
msg2 "AUTOLOGIN: %s" "${AUTOLOGIN}" msg2 "AUTOLOGIN: %s" "${AUTOLOGIN}"
msg2 "HOST_NAME: %s" "${HOST_NAME}"
msg2 "USER_NAME: %s" "${USER_NAME}"
msg2 "PASSWORD: %s" "${PASSWORD}" msg2 "PASSWORD: %s" "${PASSWORD}"
msg2 "ADDGROUPS: %s" "${ADDGROUPS}"
msg2 "SERVICES_LIVE: %s" "${SERVICES_LIVE[*]}"
msg2 "SERVICES: %s" "${SERVICES[*]}" msg2 "SERVICES: %s" "${SERVICES[*]}"
} }
load_profile(){ load_profile(){
local profile_dir="${DATADIR}/iso-profiles" local profile_dir="${DATADIR}/iso-profiles"
[[ -d ${WORKSPACE_DIR}/iso-profiles ]] && profile_dir=${WORKSPACE_DIR}/iso-profiles [[ -d "${WORKSPACE_DIR}"/iso-profiles ]] && profile_dir="${WORKSPACE_DIR}"/iso-profiles
ROOT_LIST="$profile_dir/${profile}/Packages-Root" root_list="$profile_dir/${profile}/Packages-Root"
ROOT_OVERLAY="$profile_dir/${profile}/root-overlay" root_overlay="$profile_dir/${profile}/root-overlay"
[[ -f "$profile_dir/${profile}/Packages-Live" ]] && LIVE_LIST="$profile_dir/${profile}/Packages-Live" [[ -f "$profile_dir/${profile}/Packages-Live" ]] && live_list="$profile_dir/${profile}/Packages-Live"
[[ -d "$profile_dir/${profile}/live-overlay" ]] && LIVE_OVERLAY="$profile_dir/${profile}/live-overlay" [[ -d "$profile_dir/${profile}/live-overlay" ]] && live_overlay="$profile_dir/${profile}/live-overlay"
common_dir="${DATADIR}/iso-profiles/common"
[[ -d "$profile_dir"/common ]] && common_dir="${profile_dir}"/common
[[ -f $profile_dir/${profile}/profile.conf ]] || return 1 [[ -f $profile_dir/${profile}/profile.conf ]] || return 1
# shellcheck disable=1090 # shellcheck disable=1090
[[ -r "$profile_dir/${profile}"/profile.conf ]] && . "$profile_dir/${profile}"/profile.conf [[ -r "$profile_dir/${profile}"/profile.conf ]] && . "$profile_dir/${profile}"/profile.conf
DISPLAYMANAGER=${DISPLAYMANAGER:-'none'} AUTOLOGIN=${AUTOLOGIN:-true}
AUTOLOGIN=${AUTOLOGIN:-"true"}
[[ ${DISPLAYMANAGER} == 'none' ]] && AUTOLOGIN="false"
HOST_NAME=${HOST_NAME:-'artix'}
USER_NAME=${USER_NAME:-'artix'}
PASSWORD=${PASSWORD:-'artix'} PASSWORD=${PASSWORD:-'artix'}
ADDGROUPS=${ADDGROUPS:-"video,power,optical,network,lp,scanner,wheel,users,log"}
if [[ -z "${SERVICES[*]}" ]];then if [[ -z "${SERVICES[*]}" ]];then
SERVICES=('acpid' 'bluetoothd' 'cronie' 'cupsd' 'syslog-ng' 'connmand') SERVICES=('acpid' 'bluetoothd' 'cronie' 'cupsd' 'syslog-ng' 'connmand')
fi fi
if [[ ${DISPLAYMANAGER} != "none" ]];then
case "${INITSYS}" in
'openrc') SERVICES+=('xdm') ;;
'runit'|'s6') SERVICES+=("${DISPLAYMANAGER}") ;;
esac
fi
SERVICES_LIVE=('artix-live' 'pacman-init')
return 0 return 0
} }
load_pkgs(){ read_from_list() {
local pkglist="$1" init="$2" local list="$1"
info "Loading Packages: [%s] ..." "${pkglist##*/}" local _space="s| ||g"
local _clean=':a;N;$!ba;s/\n/ /g'
local _com_rm="s|#.*||g"
local _init="s|@$init||g" _init_rm1 _init_rm2 local _init="s|@initsys@|${INITSYS}|g"
case "$init" in
'openrc') _init_rm1="s|@runit.*||g"; _init_rm2="s|@s6.*||g" ;;
's6') _init_rm1="s|@runit.*||g"; _init_rm2="s|@openrc.*||g" ;;
'runit') _init_rm1="s|@s6.*||g"; _init_rm2="s|@openrc.*||g" ;;
esac
local _space="s| ||g" \ msg2 "Loading Packages: [%s] ..." "${list##*/}"
_clean=':a;N;$!ba;s/\n/ /g' \ packages+=($(sed "$_com_rm" "$list" \
_com_rm="s|#.*||g"
packages=($(sed "$_com_rm" "$pkglist" \
| sed "$_space" \ | sed "$_space" \
| sed "$_purge" \
| sed "$_init" \ | sed "$_init" \
| sed "$_init_rm1" \
| sed "$_init_rm2" \
| sed "$_clean")) | sed "$_clean"))
} }
read_from_services() {
for svc in "${SERVICES[@]}"; do
case "$svc" in
sddm|gdm|lightdm|mdm|greetd|lxdm|xdm) packages+=("$svc-${INITSYS}") ;;
NetworkManager) packages+=("networkmanager-${INITSYS}") ;;
connmand) packages+=("connman-${INITSYS}") ;;
cupsd) packages+=("cups-${INITSYS}") ;;
bluetoothd) packages+=("bluez-${INITSYS}") ;;
syslog-ng|metalog) packages+=("$svc-${INITSYS}") ;;
esac
done
}
load_pkgs(){
local pkglist="$1"
packages=()
if [[ "${pkglist##*/}" == "Packages-Root" ]]; then
read_from_list "${common_dir}/Packages-base"
read_from_list "${common_dir}/Packages-apps"
read_from_list "${common_dir}/Packages-${INITSYS}"
[[ -n "${live_list}" ]] && read_from_list "${common_dir}/Packages-xorg"
read_from_list "$pkglist"
read_from_services
else
read_from_list "$pkglist"
fi
}
#}}} #}}}

View File

@@ -2,19 +2,11 @@
#{{{ services #{{{ services
set_xdm(){
if [[ -f "$1"/etc/conf.d/xdm ]];then
local conf='DISPLAYMANAGER="'${DISPLAYMANAGER}'"'
sed -i -e "s|^.*DISPLAYMANAGER=.*|${conf}|" "$1"/etc/conf.d/xdm
fi
}
add_svc_openrc(){ add_svc_openrc(){
local mnt="$1" names="$2" rlvl="${3:-default}" local mnt="$1" names="$2" rlvl="${3:-default}"
for svc in $names; do for svc in $names; do
if [[ -f $mnt/etc/init.d/$svc ]];then if [[ -f $mnt/etc/init.d/$svc ]];then
msg2 "Setting %s ..." "$svc" msg2 "Setting %s: [%s]" "${INITSYS}" "$svc"
[[ $svc == "xdm" ]] && set_xdm "$mnt"
chroot "$mnt" rc-update add "$svc" "$rlvl" &>/dev/null chroot "$mnt" rc-update add "$svc" "$rlvl" &>/dev/null
fi fi
done done
@@ -24,7 +16,7 @@ add_svc_runit(){
local mnt="$1" names="$2" rlvl="${3:-default}" local mnt="$1" names="$2" rlvl="${3:-default}"
for svc in $names; do for svc in $names; do
if [[ -d $mnt/etc/runit/sv/$svc ]]; then if [[ -d $mnt/etc/runit/sv/$svc ]]; then
msg2 "Setting %s ..." "$svc" msg2 "Setting %s: [%s]" "${INITSYS}" "$svc"
chroot "$mnt" ln -s /etc/runit/sv/"$svc" /etc/runit/runsvdir/"$rlvl" &>/dev/null chroot "$mnt" ln -s /etc/runit/sv/"$svc" /etc/runit/runsvdir/"$rlvl" &>/dev/null
fi fi
done done
@@ -32,21 +24,34 @@ add_svc_runit(){
add_svc_s6(){ add_svc_s6(){
local mnt="$1" names="$2" rlvl="${3:-default}" error ret local mnt="$1" names="$2" rlvl="${3:-default}" error ret
local db=/etc/s6/rc/compiled
for svc in $names; do for svc in $names; do
error=false error=false
chroot "$mnt" s6-rc-db -c /etc/s6/rc/compiled type "$svc" &> /dev/null || error=true chroot "$mnt" s6-rc-db -c "$db" type "$svc" &> /dev/null || error=true
ret="$?" ret="$?"
if [ $ret -eq 0 ] && [[ "$error" == false ]]; then if [ $ret -eq 0 ] && [[ "$error" == false ]]; then
msg2 "Setting %s ..." "$svc" msg2 "Setting %s: [%s]" "${INITSYS}" "$svc"
chroot "$mnt" s6-rc-bundle-update -c /etc/s6/rc/compiled add "$rlvl" "$svc" chroot "$mnt" s6-rc-bundle-update -c "$db" add "$rlvl" "$svc"
fi fi
done done
local rlvl=/etc/s6/current
# rebuild s6-linux-init binaries # rebuild s6-linux-init binaries
chroot "$mnt" rm -r /etc/s6/current chroot "$mnt" rm -r "$rlvl"
chroot "$mnt" s6-linux-init-maker -1 -N -f /etc/s6/skel -G "/usr/bin/agetty -L -8 tty1 115200" -c /etc/s6/current /etc/s6/current chroot "$mnt" s6-linux-init-maker -1 -N -f /etc/s6/skel -G "/usr/bin/agetty -L -8 tty1 115200" -c "$rlvl" "$rlvl"
chroot "$mnt" mv /etc/s6/current/bin/init /etc/s6/current/bin/s6-init chroot "$mnt" mv "$rlvl"/bin/init "$rlvl"/bin/s6-init
chroot "$mnt" cp -a /etc/s6/current/bin /usr chroot "$mnt" cp -a "$rlvl"/bin /usr
}
add_svc_66(){
local mnt="$1" names="$2"
chroot "$mnt" 66-tree -cnE root &>/dev/null
for svc in $names; do
if [[ -f $mnt/etc/66/service/$svc ]]; then
chroot "$mnt" 66-enable -t root $svc &>/dev/null
chroot "$mnt" 66-start -t root $svc &>/dev/null
fi
done
} }
#}}} #}}}

View File

@@ -1,6 +1,6 @@
#!/hint/bash #!/hint/bash
#{{{ deploy #{{{ functions
find_cached_pkgfile() { find_cached_pkgfile() {
local searchdirs=("$PKGDEST" "$PWD") results=() local searchdirs=("$PKGDEST" "$PWD") results=()
@@ -25,4 +25,13 @@ find_cached_pkgfile() {
esac esac
} }
get_pkgbasename() {
local name="$1"
local rm_pkg=${name%.pkg.tar*}
rm_pkg=${rm_pkg%-*}
rm_pkg=${rm_pkg%-*}
rm_pkg=${rm_pkg%-*}
echo "$rm_pkg"
}
#}}} #}}}

View File

@@ -2,6 +2,14 @@
#{{{ git #{{{ git
get_compliant_name(){
local gitname="$1"
case "$gitname" in
*+) gitname=${gitname//+/plus}
esac
echo "$gitname"
}
get_pkg_org(){ get_pkg_org(){
local pkg="$1" org sub local pkg="$1" org sub
case ${pkg} in case ${pkg} in

View File

@@ -4,20 +4,26 @@
shopt -s extglob shopt -s extglob
load_valid_names(){
local conf
conf="${DATADIR}"/valid-names.conf
[[ -f "$conf" ]] || return 1
# shellcheck source=/usr/share/artools/valid-names.conf
[[ -r "$conf" ]] && . "$conf"
return 0
}
set_arch_repos(){ set_arch_repos(){
local _testing="${1:-false}" _staging="${2:-false}" _unstable="${3:-false}" local _testing="$1" _staging="$2" _unstable="$3"
# shellcheck disable=1090 [[ -z ${valid_names[*]} ]] && load_valid_names
. "${DATADIR}"/valid-names.conf
ARCH_REPOS=("${stable[@]}") ARCH_REPOS=("${stable[@]}")
$_testing && ARCH_REPOS+=("${gremlins[@]}") $_testing && ARCH_REPOS+=("${gremlins[@]}")
$_staging && ARCH_REPOS+=("${goblins[@]}") $_staging && ARCH_REPOS+=("${goblins[@]}")
$_unstable && ARCH_REPOS+=("${unstable[@]}") $_unstable && ARCH_REPOS+=("${wobble[@]}")
} }
find_repo(){ find_repo(){
local pkg="$1" repo pkgarch="${2:-${CARCH}}" local pkg="$1" pkgarch="${2:-${CARCH}}" repo
for r in "${ARCH_REPOS[@]}"; do for r in "${ARCH_REPOS[@]}"; do
[[ -f $pkg/repos/$r-$pkgarch/PKGBUILD ]] && repo=repos/"$r-$pkgarch" [[ -f $pkg/repos/$r-$pkgarch/PKGBUILD ]] && repo=repos/"$r-$pkgarch"
[[ -f $pkg/repos/$r-any/PKGBUILD ]] && repo=repos/"$r"-any [[ -f $pkg/repos/$r-any/PKGBUILD ]] && repo=repos/"$r"-any
@@ -36,8 +42,8 @@ tree_loop(){
local func="$1" pkgs local func="$1" pkgs
for tree in "${ARTIX_TREE[@]}"; do for tree in "${ARTIX_TREE[@]}"; do
pkgs=$(find "${TREE_DIR_ARTIX}/$tree" -name repos -o -name "$CARCH") pkgs=$(find "${TREE_DIR_ARTIX}/$tree" -name repos -o -name "$CARCH")
for package in ${pkgs}; do for _package in ${pkgs}; do
"$func" "$package" "$func" "$_package"
done done
done done
} }

View File

@@ -8,13 +8,13 @@ msg_table_header(){
printf "${BLUE} ${mesg} ${ALL_OFF}\n" "$@" >&2 printf "${BLUE} ${mesg} ${ALL_OFF}\n" "$@" >&2
} }
msg_row_downgrade(){ msg_row_yellow(){
local mesg=$1; shift local mesg=$1; shift
# shellcheck disable=2059 # shellcheck disable=2059
printf "${YELLOW} ${mesg}${ALL_OFF}\n" "$@" >&2 printf "${YELLOW} ${mesg}${ALL_OFF}\n" "$@" >&2
} }
msg_row_notify(){ msg_row_green(){
local mesg=$1; shift local mesg=$1; shift
# shellcheck disable=2059 # shellcheck disable=2059
printf "${GREEN} ${mesg}${ALL_OFF}\n" "$@" >&2 printf "${GREEN} ${mesg}${ALL_OFF}\n" "$@" >&2
@@ -27,7 +27,7 @@ msg_row(){
printf "${WHITE} ${mesg}${ALL_OFF}\n" "$@" >&2 printf "${WHITE} ${mesg}${ALL_OFF}\n" "$@" >&2
} }
msg_row_upgrade(){ msg_row_red(){
local mesg=$1; shift local mesg=$1; shift
# shellcheck disable=2059 # shellcheck disable=2059
printf "${RED} ${mesg} ${ALL_OFF}\n" "$@" >&2 printf "${RED} ${mesg} ${ALL_OFF}\n" "$@" >&2

View File

@@ -23,12 +23,12 @@ load_base_config(){
[[ -f "$conf" ]] || return 1 [[ -f "$conf" ]] || return 1
# shellcheck disable=1090 # shellcheck source=/etc/artools/artools-base.conf
[[ -r "$conf" ]] && . "$conf" [[ -r "$conf" ]] && . "$conf"
CHROOTS_DIR=${CHROOTS_DIR:-'/var/lib/artools'} CHROOTS_DIR=${CHROOTS_DIR:-'/var/lib/artools'}
WORKSPACE_DIR=${WORKSPACE_DIR:-"/home/${USER}/artools-workspace"} WORKSPACE_DIR=${WORKSPACE_DIR:-"${USER_HOME}/artools-workspace"}
return 0 return 0
} }

View File

@@ -8,7 +8,7 @@ load_iso_config(){
[[ -f "$conf" ]] || return 1 [[ -f "$conf" ]] || return 1
# shellcheck disable=1090 # shellcheck source=/etc/artools/artools-iso.conf
[[ -r "$conf" ]] && . "$conf" [[ -r "$conf" ]] && . "$conf"
ISO_POOL=${ISO_POOL:-"${WORKSPACE_DIR}/iso"} ISO_POOL=${ISO_POOL:-"${WORKSPACE_DIR}/iso"}

View File

@@ -8,14 +8,14 @@ load_pkg_config(){
[[ -f "$conf" ]] || return 1 [[ -f "$conf" ]] || return 1
# shellcheck disable=1090 # shellcheck source=/etc/artools/artools-pkg.conf
[[ -r "$conf" ]] && . "$conf" [[ -r "$conf" ]] && . "$conf"
local git_domain="gitea.artixlinux.org" local git_domain="gitea.artixlinux.org"
GIT_URL="https://${git_domain}" GIT_URL=${GIT_URL:-"https://${git_domain}"}
GIT_SSH="gitea@${git_domain}" GIT_SSH=${GIT_SSH:-"gitea@${git_domain}"}
GIT_TOKEN=${GIT_TOKEN:-''} GIT_TOKEN=${GIT_TOKEN:-''}
@@ -26,7 +26,10 @@ load_pkg_config(){
packages-{gfx,gtk,media,net,qt5,xorg} packages-{gfx,gtk,media,net,qt5,xorg}
) )
local dev_tree=(packages-{python,perl,java,ruby}) local dev_tree=(
packages-{python,perl,java,ruby}
python-{world,galaxy}
)
local init_tree=(packages-{openrc,runit,s6}) local init_tree=(packages-{openrc,runit,s6})
@@ -49,12 +52,15 @@ load_pkg_config(){
TREE_DIR_ARCH=${TREE_DIR_ARCH:-"${WORKSPACE_DIR}/archlinux"} TREE_DIR_ARCH=${TREE_DIR_ARCH:-"${WORKSPACE_DIR}/archlinux"}
[[ -z ${ARCH_TREE[*]} ]] && \
ARCH_TREE=(svntogit-{packages,community}) ARCH_TREE=(svntogit-{packages,community})
REPOS_ROOT=${REPOS_ROOT:-"${WORKSPACE_DIR}/repos"} REPOS_ROOT=${REPOS_ROOT:-"${WORKSPACE_DIR}/repos"}
REPOS_MIRROR=${REPOS_MIRROR:-'http://mirror1.artixlinux.org/repos'} REPOS_MIRROR=${REPOS_MIRROR:-'http://mirror1.artixlinux.org/repos'}
HOST_TREE_ARCH=${HOST_TREE_ARCH:-'https://github.com/archlinux'}
DBEXT=${DBEXT:-'xz'} DBEXT=${DBEXT:-'xz'}
return 0 return 0