Compare commits
15 Commits
Author | SHA1 | Date | |
---|---|---|---|
b7fd0a4e41 | |||
b734357ea9 | |||
74d44873e7 | |||
91e038c3f5 | |||
8548a584f3 | |||
38fb213e13 | |||
fade611ae7 | |||
8cdb68ce6a
|
|||
7d949afeb7 | |||
6f037f6faf | |||
ba1e6644ea | |||
3f90082cc1 | |||
915db85b7d | |||
a5a29259e5 | |||
c5f8bc7e20 |
9
Makefile
9
Makefile
@@ -1,4 +1,4 @@
|
||||
VERSION=0.24
|
||||
V=0.26
|
||||
|
||||
TOOLS = artools
|
||||
PREFIX ?= /usr
|
||||
@@ -22,6 +22,8 @@ BASE_DATA = \
|
||||
PKG_CONF = \
|
||||
data/conf/artools-pkg.conf
|
||||
|
||||
SETARCH_ALIASES = \
|
||||
|
||||
PKG_BIN = \
|
||||
bin/pkg/buildpkg \
|
||||
bin/pkg/deploypkg \
|
||||
@@ -105,7 +107,7 @@ FILEMODE = -m0644
|
||||
MODE = -m0755
|
||||
LN = ln -sf
|
||||
RM = rm -f
|
||||
M4 = m4 -P
|
||||
M4 = m4 -P --define=m4_artools_pkg_version=$V
|
||||
CHMODAW = chmod a-w
|
||||
CHMODX = chmod +x
|
||||
|
||||
@@ -137,6 +139,9 @@ install_base:
|
||||
install $(DIRMODE) $(DESTDIR)$(DATADIR)/$(TOOLS)
|
||||
install $(FILEMODE) $(BASE_DATA) $(DESTDIR)$(DATADIR)/$(TOOLS)
|
||||
|
||||
install $(DIRMODE) $(DESTDIR)$(DATADIR)/$(TOOLS)/setarch-aliases.d
|
||||
for a in ${SETARCH_ALIASES}; do install $(FILEMODE) setarch-aliases.d/$$a $(DESTDIR)$(DATADIR)/$(TOOLS)/setarch-aliases.d; done
|
||||
|
||||
install_pkg:
|
||||
install $(DIRMODE) $(DESTDIR)$(SYSCONFDIR)/$(TOOLS)
|
||||
install $(FILEMODE) $(PKG_CONF) $(DESTDIR)$(SYSCONFDIR)/$(TOOLS)
|
||||
|
@@ -85,14 +85,12 @@ shift 1
|
||||
|
||||
[[ -z $working_dir ]] && die 'Please specify a working directory.'
|
||||
|
||||
pacconf_cmd=$(command -v pacman-conf || command -v pacconf)
|
||||
|
||||
if (( ${#cache_dirs[@]} == 0 )); then
|
||||
mapfile -t cache_dirs < <($pacconf_cmd --config "${pac_conf:-$working_dir/etc/pacman.conf}" CacheDir)
|
||||
mapfile -t cache_dirs < <(pacman-conf --config "${pac_conf:-$working_dir/etc/pacman.conf}" CacheDir)
|
||||
fi
|
||||
|
||||
# shellcheck disable=2016
|
||||
host_mirrors=($("$pacconf_cmd" --repo world Server 2> /dev/null | sed -r 's#(.*/)world/os/.*#\1$repo/os/$arch#'))
|
||||
host_mirrors=($(pacman-conf --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
|
||||
@@ -104,7 +102,7 @@ done
|
||||
|
||||
while read -r line; do
|
||||
# shellcheck disable=2016
|
||||
mapfile -t lines < <($pacconf_cmd --config "${pac_conf:-$working_dir/etc/pacman.conf}" \
|
||||
mapfile -t lines < <(pacman-conf --config "${pac_conf:-$working_dir/etc/pacman.conf}" \
|
||||
--repo "$line" Server | sed -r 's#(.*/)[^/]+/os/.+#\1#')
|
||||
for line in "${lines[@]}"; do
|
||||
if [[ $line = file://* ]]; then
|
||||
@@ -112,7 +110,7 @@ while read -r line; do
|
||||
in_array "$line" "${cache_dirs[@]}" || cache_dirs+=("$line")
|
||||
fi
|
||||
done
|
||||
done < <("$pacconf_cmd" --config "${pac_conf:-$working_dir/etc/pacman.conf}" --repo-list)
|
||||
done < <(pacman-conf --config "${pac_conf:-$working_dir/etc/pacman.conf}" --repo-list)
|
||||
|
||||
copy_hostconf () {
|
||||
unshare --fork --pid gpg --homedir "$working_dir"/etc/pacman.d/gnupg/ --no-permission-warning --quiet --batch --import --import-options import-local-sigs "$(pacman-conf GpgDir)"/pubring.gpg >/dev/null 2>&1
|
||||
@@ -168,7 +166,13 @@ eval "$(grep '^CARCH=' "$working_dir/etc/makepkg.conf")"
|
||||
|
||||
[[ -z $nosetarch ]] || unset CARCH
|
||||
|
||||
${CARCH:+setarch "$CARCH"} chroot "${working_dir}" "$@"
|
||||
if [[ -f "@datadir@/artools/setarch-aliases.d/${CARCH}" ]]; then
|
||||
read -r set_arch < "@datadir@/artools/setarch-aliases.d/${CARCH}"
|
||||
else
|
||||
set_arch="${CARCH}"
|
||||
fi
|
||||
|
||||
${CARCH:+setarch "${set_arch}"} chroot "${working_dir}" "$@"
|
||||
|
||||
ret=$?
|
||||
|
||||
|
@@ -64,10 +64,8 @@ shift 1
|
||||
|
||||
[[ -z $working_dir ]] && die 'Please specify a working directory.'
|
||||
|
||||
pacconf_cmd=$(command -v pacman-conf || command -v pacconf)
|
||||
|
||||
if (( ${#cache_dirs[@]} == 0 )); then
|
||||
mapfile -t cache_dirs < <($pacconf_cmd CacheDir)
|
||||
mapfile -t cache_dirs < <(pacman-conf CacheDir)
|
||||
fi
|
||||
|
||||
umask 0022
|
||||
|
@@ -72,6 +72,12 @@ get_pacman_conf "${repo}"
|
||||
|
||||
get_makepkg_conf
|
||||
|
||||
if [[ -f "${DATADIR}/setarch-aliases.d/${arch}" ]]; then
|
||||
read -r set_arch < "${DATADIR}/setarch-aliases.d/${arch}"
|
||||
else
|
||||
set_arch="${arch}"
|
||||
fi
|
||||
|
||||
check_root SOURCE_DATE_EPOCH,SRCDEST,SRCPKGDEST,PKGDEST,LOGDEST,MAKEFLAGS,PACKAGER,GNUPGHOME
|
||||
|
||||
mkchrootpkg_args+=("${@:$OPTIND}")
|
||||
@@ -92,7 +98,7 @@ if ${create_first} || [[ ! -d "${chroots_pkg}/${repo}-${arch}" ]];then
|
||||
|
||||
rm -rf --one-file-system "${chroots_pkg}/${repo}-${arch}"
|
||||
(umask 0022; mkdir -p "${chroots_pkg}/${repo}-${arch}")
|
||||
setarch "${arch}" mkchroot \
|
||||
setarch "${set_arch}" mkchroot \
|
||||
-C "${pacman_conf}" \
|
||||
-M "${makepkg_conf}" \
|
||||
"${chroots_pkg}/${repo}-${arch}/root" \
|
||||
|
@@ -117,6 +117,7 @@ patch_pkg(){
|
||||
local pkgpath="$1"
|
||||
local pkg=${pkgpath%/*}
|
||||
pkg=${pkg##*/}
|
||||
sed -e 's|arch-meson|artix-meson|' -i "$pkgpath"/PKGBUILD
|
||||
case $pkg in
|
||||
glibc)
|
||||
msg2 "Patching %s" "$pkg"
|
||||
|
@@ -18,19 +18,42 @@ m4_include(lib/base/message.sh)
|
||||
m4_include(lib/pkg/repo.sh)
|
||||
m4_include(lib/pkg/table.sh)
|
||||
|
||||
#{{{ db libs
|
||||
|
||||
extract_db() {
|
||||
local u="$1" cdir="$2"
|
||||
rm -rf "$cdir"
|
||||
mkdir -p "$cdir"
|
||||
msg2 "%s" "${cdir##*/}"
|
||||
curl -L -s "$u" | bsdtar -xf - -C "$cdir"
|
||||
}
|
||||
|
||||
update_db_cache(){
|
||||
msg "Updating database cache ..."
|
||||
local cachedir url
|
||||
for repo in "${searchrepos[@]}"; do
|
||||
cachedir=${db_cache_dir}/linksdb/$repo
|
||||
url=${REPOS_MIRROR}/$repo/os/${CARCH}/$repo.${linksdb_ext}
|
||||
extract_db "$url" "$cachedir"
|
||||
done
|
||||
msg "Done"
|
||||
}
|
||||
|
||||
#}}}
|
||||
|
||||
#{{{ sogrep
|
||||
|
||||
query_db() {
|
||||
for repo in "${searchrepos[@]}"; do
|
||||
local db
|
||||
db=${db_cache_dir}/${linksdb_ext}/${CARCH}/${repo}/
|
||||
db=${db_cache_dir}/linksdb/$repo/
|
||||
if [[ -d ${db} ]]; then
|
||||
while read -rd '' pkg; do
|
||||
read -r match
|
||||
pkg=${pkg#${db}}
|
||||
pkg="${pkg%/*}"
|
||||
msg_row "${tableQ}" "${repo}" "${pkg}" "${match}"
|
||||
done < <(grep -rZ "${library}" "${db}") | sort -u
|
||||
msg_row "${tableQ}" "$repo" "$pkg" "${match}"
|
||||
done < <(grep -rZ "$library" "$db") | sort -u
|
||||
fi
|
||||
done
|
||||
}
|
||||
@@ -41,7 +64,7 @@ query_db() {
|
||||
|
||||
is_db_entry() {
|
||||
local pkgname="$1" repo="${REPOS[$2]}" entry
|
||||
entry=${db_cache_dir}/${linksdb_ext}/${CARCH}/$repo/$pkgname
|
||||
entry=${db_cache_dir}/linksdb/$repo/$pkgname
|
||||
|
||||
if [[ -d "$entry" ]];then
|
||||
return 0
|
||||
@@ -50,26 +73,74 @@ is_db_entry() {
|
||||
}
|
||||
|
||||
check_db(){
|
||||
local pkgpath="${1%/*}"
|
||||
local pkgpath="${1}"
|
||||
|
||||
for repo in "${!REPOS[@]}"; do
|
||||
|
||||
local pkgbuild artixver
|
||||
[[ -f $pkgpath/$CARCH/$repo/PKGBUILD ]] && pkgbuild=$pkgpath/$CARCH/$repo/PKGBUILD
|
||||
[[ -f $pkgpath/repos/$repo-$CARCH/PKGBUILD ]] && pkgbuild=$pkgpath/repos/$repo-$CARCH/PKGBUILD
|
||||
[[ -f $pkgpath/repos/$repo-any/PKGBUILD ]] && pkgbuild=$pkgpath/repos/$repo-any/PKGBUILD
|
||||
if [[ -f $pkgpath/$repo/PKGBUILD ]]; then
|
||||
pkgbuild=$pkgpath/$repo/PKGBUILD
|
||||
|
||||
# shellcheck disable=1090
|
||||
. "$pkgbuild" 2>/dev/null
|
||||
artixver=$(get_full_version)
|
||||
# shellcheck disable=1090
|
||||
. "$pkgbuild" 2>/dev/null
|
||||
artixver=$(get_full_version)
|
||||
for name in "${pkgname[@]}"; do
|
||||
if ! is_db_entry "$name-$artixver" "$repo"; then
|
||||
msg_row_red "${tableU}" "$repo" "$name" "$artixver" "false"
|
||||
else
|
||||
${all_db} && msg_row "${tableU}" "$repo" "$name" "$artixver" "true"
|
||||
fi
|
||||
done
|
||||
unset artixver pkgbuild pkgver epoch pkgname pkgbase
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
for name in "${pkgname[@]}"; do
|
||||
if ! is_db_entry "$name-$artixver" "$repo"; then
|
||||
msg_row_red "${tableU}" "$repo" "$name" "$artixver" "false"
|
||||
else
|
||||
${all_db} && msg_row "${tableU}" "$repo" "$name" "$artixver" "true"
|
||||
#}}}
|
||||
|
||||
# {{{ check obsolete
|
||||
|
||||
show_obsolete_table() {
|
||||
local arch_mirror='https://mirror.f4st.host/archlinux'
|
||||
|
||||
local arch_repo artix_repo artix_db arch_db url
|
||||
arch_repo="${searchrepos[@]}"
|
||||
artix_repo="${REPOS[$arch_repo]}"
|
||||
|
||||
artix_db="${db_cache_dir}/artixdb/${artix_repo}"
|
||||
arch_db="${db_cache_dir}/archdb/${arch_repo}"
|
||||
|
||||
msg "Updating database cache ..."
|
||||
url=${REPOS_MIRROR}/${artix_repo}/os/$CARCH/${artix_repo}.${db_ext}
|
||||
extract_db "$url" "${artix_db}"
|
||||
|
||||
url=${arch_mirror}/${arch_repo}/os/$CARCH/${arch_repo}.${db_ext}
|
||||
extract_db "$url" "${arch_db}"
|
||||
msg "Done"
|
||||
|
||||
msg_table_header "${tableQ}" "Repo" "Package" "Obsolete"
|
||||
for p in "${artix_db}"/*; do
|
||||
local pkg rel
|
||||
pkg=${p##*/}
|
||||
rel=${pkg##*-}
|
||||
rel=${rel%.*}
|
||||
pkg=${pkg%-*}
|
||||
local p="$pkg-$rel"
|
||||
|
||||
if [[ "$p" != *openrc* ]] && [[ "$p" != *runit* ]] \
|
||||
&& [[ "$p" != *s6* ]] && [[ "$p" != *suite66* ]] \
|
||||
&& [[ "$p" != *eudev* ]] && [[ "$p" != *elogind* ]] \
|
||||
&& [[ "$p" != *sysusers* ]] && [[ "$p" != *tmpfiles* ]] \
|
||||
&& [[ "$p" != *execline* ]] && [[ "$p" != *skalibs* ]] \
|
||||
&& [[ "$p" != *netifrc* ]] && [[ "$p" != *bootlogd* ]] \
|
||||
&& [[ "$p" != *pam_rundir* ]] && [[ "$p" != *artools* ]] \
|
||||
&& [[ "$p" != *archlinux* ]] && [[ "$p" != *iso-profiles* ]] \
|
||||
&& [[ "$p" != *calamares* ]] && [[ "$p" != *iso-initcpio* ]] \
|
||||
&& [[ "$p" != *dinit* ]] && [[ "$p" != *artix* ]]; then
|
||||
if [[ ! -d "${arch_db}/$p" ]]; then
|
||||
msg_row "${tableQ}" "${artix_repo}" "$p" "true"
|
||||
fi
|
||||
done
|
||||
unset artixver pkgbuild pkgver epoch pkgname pkgbase
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
@@ -85,23 +156,10 @@ show_db_table(){
|
||||
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"
|
||||
|
||||
linksdb_ext="links.tar.${DBEXT}"
|
||||
db_ext="db.tar.${DBEXT}"
|
||||
|
||||
load_makepkg_config
|
||||
|
||||
@@ -109,9 +167,10 @@ sync=false
|
||||
check=false
|
||||
query=false
|
||||
all_db=false
|
||||
obsolete=false
|
||||
|
||||
readonly tableU="%-20s %-35s %-30s %-10s"
|
||||
readonly tableQ="%-20s %-45s %s"
|
||||
readonly tableQ="%-20s %-55s %s"
|
||||
|
||||
load_valid_names
|
||||
|
||||
@@ -156,6 +215,7 @@ usage() {
|
||||
echo " -s Sync repo databases"
|
||||
echo ' -c Check repos'
|
||||
echo ' -a Show repo db (-c)'
|
||||
echo ' -o Check for obsolete packages'
|
||||
echo " -q Query repo databases for so libs"
|
||||
echo ' -h This help'
|
||||
echo ''
|
||||
@@ -163,7 +223,7 @@ usage() {
|
||||
exit "$1"
|
||||
}
|
||||
|
||||
opts='r:qcsah'
|
||||
opts='r:qcsaoh'
|
||||
|
||||
while getopts "${opts}" arg; do
|
||||
case "${arg}" in
|
||||
@@ -172,6 +232,7 @@ while getopts "${opts}" arg; do
|
||||
c) check=true ;;
|
||||
a) all_db=true ;;
|
||||
q) query=true ;;
|
||||
o) obsolete=true ;;
|
||||
h|?) usage 0 ;;
|
||||
*) echo "invalid argument '${arg}'"; usage 1 ;;
|
||||
esac
|
||||
@@ -186,3 +247,5 @@ ${sync} && update_db_cache
|
||||
${check} && show_db_table
|
||||
|
||||
${query} && show_lib_table
|
||||
|
||||
${obsolete} && show_obsolete_table
|
||||
|
@@ -46,33 +46,6 @@ subrepo_pull(){
|
||||
git subrepo pull "$pkg"
|
||||
}
|
||||
|
||||
prepare_commit(){
|
||||
# create new layout, copy & remove repos
|
||||
if [[ -d repos ]]; then
|
||||
msg2 "Switching to new layout ..."
|
||||
[[ ! -d "$CARCH" ]] && mkdir "$CARCH"
|
||||
|
||||
for r in repos/*; do
|
||||
local name noarch
|
||||
name=${r#*/}
|
||||
noarch=${name%-*}
|
||||
mkdir "$CARCH/${noarch}"
|
||||
cp repos/"${name}"/* "$CARCH/${noarch}/"
|
||||
git add "$CARCH/${noarch}"
|
||||
done
|
||||
|
||||
git rm -r repos
|
||||
git commit -m "switch to new repo layout"
|
||||
msg2 "Done switch"
|
||||
fi
|
||||
|
||||
if [[ $action == 'add' ]] || [[ $action == 'move' ]] ;then
|
||||
[[ -d "$CARCH/${repo_dest}" ]] && git rm -r "$CARCH/${repo_dest}"
|
||||
[[ ! -d "$CARCH" ]] && mkdir "$CARCH"
|
||||
[[ ! -d "$CARCH/${repo_dest}" ]] && mkdir "$CARCH/${repo_dest}"
|
||||
fi
|
||||
}
|
||||
|
||||
check_rebuild(){
|
||||
if [[ -d "$CARCH"/"${valid_names[10]}" ]] \
|
||||
&& [[ "${repo_dest}" == "${valid_names[7]}" ]]; then
|
||||
@@ -86,14 +59,12 @@ check_rebuild(){
|
||||
}
|
||||
|
||||
check_team(){
|
||||
if [[ "${repo_src}" == "${valid_names[0]}" \
|
||||
&& "${repo_dest}" == "${valid_names[1]}" ]] || \
|
||||
[[ "${repo_src}" == "${valid_names[1]}" \
|
||||
&& "${repo_dest}" == "${valid_names[0]}" ]] || \
|
||||
[[ "${repo_src}" == "${valid_names[1]}" \
|
||||
&& "${repo_dest}" == "${valid_names[2]}" ]] || \
|
||||
[[ "${repo_src}" == "${valid_names[2]}" \
|
||||
&& "${repo_dest}" == "${valid_names[1]}" ]] ;then
|
||||
if [[ "${repo_src}" == "${valid_names[0]}" && "${repo_dest}" == "${valid_names[1]}" ]] || \
|
||||
[[ "${repo_src}" == "${valid_names[1]}" && "${repo_dest}" == "${valid_names[0]}" ]] || \
|
||||
[[ "${repo_src}" == "${valid_names[1]}" && "${repo_dest}" == "${valid_names[2]}" ]] || \
|
||||
[[ "${repo_src}" == "${valid_names[2]}" && "${repo_dest}" == "${valid_names[1]}" ]] || \
|
||||
[[ "${repo_src}" == "${valid_names[0]}" && "${repo_dest}" == "${valid_names[2]}" ]] || \
|
||||
[[ "${repo_src}" == "${valid_names[2]}" && "${repo_dest}" == "${valid_names[0]}" ]]; then
|
||||
|
||||
local org gitname
|
||||
org=$(get_pkg_org "${package}")
|
||||
@@ -106,11 +77,6 @@ check_team(){
|
||||
path_config() {
|
||||
[[ "${repo_src}" != 'trunk' ]] && pkgbuild="$CARCH/${repo_src}"/PKGBUILD
|
||||
|
||||
if [[ ! -f "$pkgbuild" ]]; then
|
||||
pkgbuild=repos/"${repo_src}-${CARCH}"/PKGBUILD
|
||||
[[ -f repos/"${repo_src}"-any/PKGBUILD ]] && pkgbuild=repos/"${repo_src}"-any/PKGBUILD
|
||||
fi
|
||||
|
||||
# shellcheck disable=1090
|
||||
. "$pkgbuild"
|
||||
}
|
||||
@@ -132,7 +98,6 @@ commit_pkg() {
|
||||
if [[ "${repo_src}" == 'trunk' ]];then
|
||||
git rm -r trunk
|
||||
else
|
||||
prepare_commit
|
||||
git rm -r "$CARCH/${repo_src}"
|
||||
fi
|
||||
else
|
||||
@@ -146,11 +111,15 @@ commit_pkg() {
|
||||
|
||||
repo_commit_pkg() {
|
||||
local commit_msg
|
||||
|
||||
[[ -d "$CARCH/${repo_dest}" ]] && git rm -r "$CARCH/${repo_dest}"
|
||||
[[ ! -d "$CARCH" ]] && mkdir "$CARCH"
|
||||
[[ ! -d "$CARCH/${repo_dest}" ]] && mkdir "$CARCH/${repo_dest}"
|
||||
|
||||
if [[ "${repo_src}" == 'trunk' ]]; then
|
||||
action='add'
|
||||
commit_msg=$(get_repo_commit_msg)
|
||||
msg "Action: %s" "$commit_msg"
|
||||
prepare_commit
|
||||
check_rebuild
|
||||
cp trunk/* "$CARCH/${repo_dest}"/
|
||||
else
|
||||
@@ -158,7 +127,6 @@ repo_commit_pkg() {
|
||||
[[ ! -f $pkgbuild ]] && die "%s does not exist!" "$pkgbuild"
|
||||
commit_msg=$(get_repo_commit_msg)
|
||||
msg "Action: %s" "$commit_msg"
|
||||
prepare_commit
|
||||
cp "$CARCH/${repo_src}"/* "$CARCH/${repo_dest}"/
|
||||
git rm -r "$CARCH/${repo_src}"
|
||||
fi
|
||||
|
@@ -52,6 +52,9 @@ compare_m(){
|
||||
|
||||
compare_u(){
|
||||
if [ "$result" -eq -1 ];then
|
||||
# local arel=${archver##*-} brel=${artixver##*-}
|
||||
# local reldiff
|
||||
reldiff=$(( $arel-${brel%.*} ))
|
||||
msg_row_red "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}"
|
||||
write_list "${a}:$pkg" pkg_upgrades
|
||||
fi
|
||||
|
@@ -15,6 +15,9 @@
|
||||
m4_include(lib/base/message.sh)
|
||||
m4_include(lib/base/chroot.sh)
|
||||
|
||||
export BUILDTOOL=artools-pkg
|
||||
export BUILDTOOLVER=m4_artools_pkg_version
|
||||
|
||||
shopt -s nullglob
|
||||
|
||||
default_makepkg_args=(--syncdeps --noconfirm --log --holdver --skipinteg)
|
||||
@@ -193,6 +196,8 @@ EOF
|
||||
printf '#!/bin/bash\n'
|
||||
declare -f _chrootbuild
|
||||
declare -p SOURCE_DATE_EPOCH 2>/dev/null || true
|
||||
declare -p BUILDTOOL 2>/dev/null
|
||||
declare -p BUILDTOOLVER 2>/dev/null
|
||||
printf '_chrootbuild "$@" || exit\n'
|
||||
|
||||
if (( run_namcap )); then
|
||||
@@ -218,7 +223,10 @@ _chrootbuild() {
|
||||
# use "$" in arguments to commands with "sudo -i". ${foo} or
|
||||
# ${1} is OK, but $foo or $1 isn't.
|
||||
# https://bugzilla.sudo.ws/show_bug.cgi?id=765
|
||||
sudo --preserve-env=SOURCE_DATE_EPOCH -iu builduser bash -c 'cd /startdir; makepkg "$@"' -bash "$@"
|
||||
sudo --preserve-env=SOURCE_DATE_EPOCH \
|
||||
-preserve-env=BUILDTOOL \
|
||||
--preserve-env=BUILDTOOLVER \
|
||||
-iu builduser bash -c 'cd /startdir; makepkg "$@"' -bash "$@"
|
||||
ret=$?
|
||||
case $ret in
|
||||
0|14)
|
||||
@@ -241,7 +249,7 @@ download_sources() {
|
||||
chown "$makepkg_user:" "$WORKDIR"
|
||||
|
||||
# Ensure sources are downloaded
|
||||
sudo -u "$makepkg_user" --preserve-env=GNUPGHOME \
|
||||
sudo -u "$makepkg_user" --preserve-env=GNUPGHOME,SSH_AUTH_SOCK \
|
||||
env SRCDEST="$SRCDEST" BUILDDIR="$WORKDIR" \
|
||||
makepkg --config="$copydir/etc/makepkg.conf" --verifysource -o "${verifysource_args[@]}" ||
|
||||
die "Could not download sources."
|
||||
@@ -305,7 +313,7 @@ done
|
||||
[[ -n $makepkg_user && -z $(id -u "$makepkg_user") ]] && die 'Invalid makepkg user.'
|
||||
makepkg_user=${makepkg_user:-${SUDO_USER:-$USER}}
|
||||
|
||||
check_root SOURCE_DATE_EPOCH,GNUPGHOME,SRCDEST,SRCPKGDEST,PKGDEST,LOGDEST,MAKEFLAGS,PACKAGER
|
||||
check_root SOURCE_DATE_EPOCH,BUILDTOOL,BUILDTOOLVER,GNUPGHOME,SRCDEST,SRCPKGDEST,PKGDEST,LOGDEST,MAKEFLAGS,PACKAGER
|
||||
|
||||
# Canonicalize chrootdir, getting rid of trailing /
|
||||
chrootdir=$(readlink -e "$passeddir")
|
||||
|
@@ -8,7 +8,7 @@
|
||||
# the dist release; default: auto
|
||||
# ISO_VERSION=$(date +%Y%m%d)
|
||||
|
||||
# possible values: openrc, runit, s6, suite66
|
||||
# possible values: openrc, runit, s6, suite66, dinit
|
||||
# INITSYS="openrc"
|
||||
|
||||
# gpg key; leave empty or commented to skip img signing
|
||||
|
@@ -10,30 +10,38 @@
|
||||
# customize buildtree; uncomment to include
|
||||
# TREE_NAMES_ARTIX=(
|
||||
# packages-kernel
|
||||
# packages-llvm
|
||||
# packages-openrc
|
||||
# packages-runit
|
||||
# packages-s6
|
||||
# packages-suite66
|
||||
# python-world
|
||||
# packages-dinit
|
||||
# packages-perl
|
||||
# packages-java
|
||||
# packages-ruby
|
||||
# packages-kf5
|
||||
# packages-gtk
|
||||
# packages-qt5
|
||||
# packages-qt6
|
||||
# packages-xorg
|
||||
# packages-plasma
|
||||
# packages-kde
|
||||
# packages-gnome
|
||||
# packages-cinnamon
|
||||
# packages-lxqt
|
||||
# packages-lxde
|
||||
# packages-mate
|
||||
# packages-xfce
|
||||
# packages-wm
|
||||
# packages-devel
|
||||
# packages-lib32
|
||||
# packages-qt6
|
||||
# packages-office
|
||||
# packages-misc
|
||||
# packages-python
|
||||
# python-world
|
||||
# python-galaxy
|
||||
# python-galaxy-groups
|
||||
# python-misc
|
||||
# packages-python
|
||||
# packages-lib32
|
||||
# )
|
||||
|
||||
# TREE_DIR_ARCH=${WORKSPACE_DIR}/archlinux
|
||||
|
@@ -11,10 +11,10 @@
|
||||
#
|
||||
#-- The download utilities that makepkg should use to acquire sources
|
||||
# Format: 'protocol::agent'
|
||||
DLAGENTS=('file::/usr/bin/curl -gqC - -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'
|
||||
'https::/usr/bin/curl -gqb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
|
||||
DLAGENTS=('file::/usr/bin/curl -qgC - -o %o %u'
|
||||
'ftp::/usr/bin/curl -qgfC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u'
|
||||
'http::/usr/bin/curl -qgb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
|
||||
'https::/usr/bin/curl -qgb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
|
||||
'rsync::/usr/bin/rsync --no-motd -z %u %o'
|
||||
'scp::/usr/bin/scp -C %u %o')
|
||||
|
||||
@@ -93,7 +93,7 @@ BUILDENV=(!distcc color !ccache check !sign)
|
||||
#-- debug: Add debugging flags as specified in DEBUG_* variables
|
||||
#-- lto: Add compile flags for building with link time optimization
|
||||
#
|
||||
OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !debug !lto)
|
||||
OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !debug lto)
|
||||
|
||||
#-- File integrity checks to use. Valid: md5, sha1, sha224, sha256, sha384, sha512, b2
|
||||
INTEGRITY_CHECK=(sha256)
|
||||
|
@@ -36,6 +36,11 @@ write_services_suite66_conf(){
|
||||
write_services_conf 'svDir' '/etc/66/service' 'runsvDir' '/var/lib/66/system' > "$conf"
|
||||
}
|
||||
|
||||
write_services_dinit_conf(){
|
||||
local conf="$1"/services-dinit.conf
|
||||
write_services_conf 'initdDir' '/etc/dinit.d' 'runsvDir' '/etc/dinit.d/boot.d' > "$conf"
|
||||
}
|
||||
|
||||
configure_calamares(){
|
||||
local mods="$1/etc/calamares/modules"
|
||||
if [[ -d "$mods" ]];then
|
||||
|
@@ -10,7 +10,7 @@ prepare_initramfs_dracut(){
|
||||
printf "%s\n" 'add_dracutmodules+=" dmsquash-live"' > "$mnt"/etc/dracut.conf.d/50-live.conf
|
||||
|
||||
msg "Starting build: %s" "${kver}"
|
||||
artools-chroot "$mnt" dracut -fqM /boot/initramfs.img "$kver"
|
||||
artix-chroot "$mnt" dracut -fqM /boot/initramfs.img "$kver"
|
||||
msg "Image generation successful"
|
||||
|
||||
cp "$mnt"/boot/initramfs.img "${iso_root}"/boot/initramfs-"${arch}".img
|
||||
|
@@ -40,7 +40,7 @@ prepare_initramfs_mkinitcpio() {
|
||||
export ARTIX_GNUPG_FD
|
||||
fi
|
||||
|
||||
artools-chroot "$mnt" mkinitcpio -k "$k" \
|
||||
artix-chroot "$mnt" mkinitcpio -k "$k" \
|
||||
-c /etc/"$mkinitcpio_conf" \
|
||||
-g /boot/initramfs.img
|
||||
|
||||
|
@@ -53,4 +53,14 @@ add_svc_suite66(){
|
||||
done
|
||||
}
|
||||
|
||||
add_svc_dinit(){
|
||||
local mnt="$1" names="$2"
|
||||
for svc in $names; do
|
||||
if [[ -d $mnt/etc/dinit.d/boot.d ]]; then
|
||||
msg2 "Setting %s: [%s]" "${INITSYS}" "$svc"
|
||||
chroot "$mnt" ln -s ../"$svc" /etc/dinit.d/boot.d/"$svc" &>/dev/null
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
#}}}
|
||||
|
@@ -41,7 +41,7 @@ find_pkg(){
|
||||
tree_loop(){
|
||||
local func="$1" pkgs
|
||||
for tree in "${ARTIX_TREE[@]}"; do
|
||||
pkgs=$(find "${TREE_DIR_ARTIX}/$tree" -name repos -o -name "$CARCH" | sort)
|
||||
pkgs=$(find "${TREE_DIR_ARTIX}/$tree" -name "$CARCH" | sort)
|
||||
for _package in ${pkgs}; do
|
||||
"$func" "$_package"
|
||||
done
|
||||
|
@@ -5,32 +5,31 @@
|
||||
msg_table_header(){
|
||||
local mesg=$1; shift
|
||||
# shellcheck disable=2059
|
||||
printf "${BLUE} ${mesg} ${ALL_OFF}\n" "$@" >&2
|
||||
printf "${BLUE} ${mesg} ${ALL_OFF}\n" "$@"
|
||||
}
|
||||
|
||||
msg_row_yellow(){
|
||||
local mesg=$1; shift
|
||||
# shellcheck disable=2059
|
||||
printf "${YELLOW} ${mesg}${ALL_OFF}\n" "$@" >&2
|
||||
printf "${YELLOW} ${mesg}${ALL_OFF}\n" "$@"
|
||||
}
|
||||
|
||||
msg_row_green(){
|
||||
local mesg=$1; shift
|
||||
# shellcheck disable=2059
|
||||
printf "${GREEN} ${mesg}${ALL_OFF}\n" "$@" >&2
|
||||
printf "${GREEN} ${mesg}${ALL_OFF}\n" "$@"
|
||||
}
|
||||
|
||||
msg_row(){
|
||||
local mesg=$1; shift
|
||||
# printf "${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2
|
||||
# shellcheck disable=2059
|
||||
printf "${WHITE} ${mesg}${ALL_OFF}\n" "$@" >&2
|
||||
printf "${WHITE} ${mesg}${ALL_OFF}\n" "$@"
|
||||
}
|
||||
|
||||
msg_row_red(){
|
||||
local mesg=$1; shift
|
||||
# shellcheck disable=2059
|
||||
printf "${RED} ${mesg} ${ALL_OFF}\n" "$@" >&2
|
||||
printf "${RED} ${mesg} ${ALL_OFF}\n" "$@"
|
||||
}
|
||||
|
||||
#}}}
|
||||
|
@@ -23,19 +23,19 @@ load_pkg_config(){
|
||||
|
||||
ARTIX_TREE=(
|
||||
packages community
|
||||
packages-{gfx,gtk,media,net,qt5,xorg}
|
||||
packages-{gfx,media,net}
|
||||
)
|
||||
|
||||
local dev_tree=(
|
||||
packages-{python,perl,java,ruby}
|
||||
python-{world,galaxy}
|
||||
packages-{llvm,python,perl,java,ruby,misc}
|
||||
python-{world,galaxy,galaxy-groups,misc}
|
||||
)
|
||||
|
||||
local init_tree=(packages-{openrc,runit,s6,suite66})
|
||||
local init_tree=(packages-{openrc,runit,s6,suite66,dinit})
|
||||
|
||||
local desktop_tree=(
|
||||
packages-{kf5,plasma,kde,qt6}
|
||||
packages-{lxqt,gnome,cinnamon,mate,xfce,wm}
|
||||
packages-{kf5,plasma,kde,qt5,qt6,xorg,gtk}
|
||||
packages-{lxqt,gnome,cinnamon,mate,xfce,wm,lxde}
|
||||
)
|
||||
|
||||
[[ -z ${TREE_NAMES_ARTIX[*]} ]] && \
|
||||
|
Reference in New Issue
Block a user