Compare commits

...

23 Commits

Author SHA1 Message Date
f4e3abae46 buildiso: clean up s6 sv handling 2022-04-11 02:06:20 +02:00
a7cef500ad s6 (#61)
Reviewed-on: artix/artools#61
Co-authored-by: artoo <artoo@artixlinux.org>
Co-committed-by: artoo <artoo@artixlinux.org>
2022-04-10 20:44:11 +02:00
f7c29d1c98 makepkg.conf: drop -fvar-tracking-assignments flag 2022-02-14 17:42:36 +01:00
f1b2af947b s6: remove s6-rc-bundle-update usage
This is deprecated, so we should remove it from the buildiso script.
Instead, files are touched in the defaults/contents.d directory and the
database is reloaded.
2022-02-08 14:58:31 +01:00
5637ba0f8f pkg1yaml: yaml sequence debug pkgs 2022-02-01 20:02:29 +01:00
a383531e5d pkg2yaml: don't include debug packages for pkgnames 2022-01-30 18:58:31 +01:00
6b4acbdd94 comparepkg: fix upg cmp 2021-12-25 15:23:20 +01:00
b7fd0a4e41 enable lto, upd conf 2021-12-23 19:07:38 +01:00
b734357ea9 checkrepo: refactoring 2021-11-29 22:58:49 +01:00
74d44873e7 checkrepo: add obsolete pkg check 2021-11-29 16:41:49 +01:00
91e038c3f5 don't find arch vcs repos 2021-11-28 13:59:20 +01:00
8548a584f3 restore arch vcs repo detect 2021-11-28 13:57:07 +01:00
38fb213e13 pkg tools: remove old layout support 2021-11-26 19:04:17 +01:00
fade611ae7 checkrepo: fix check_db() and speed it up 2021-11-26 10:55:11 +01:00
8cdb68ce6a fix call to artools-chroot when artools-pkg is not installed 2021-11-08 16:21:23 -03:00
7d949afeb7 Merge pull request 'add initial support for dinit' (#59) from konimex/artools:master into master
Reviewed-on: artix/artools#59
2021-11-05 16:36:30 +01:00
6f037f6faf add initial support for dinit 2021-10-27 17:02:50 +07:00
ba1e6644ea arch-patches (#58)
Reviewed-on: artix/artools#58
Co-authored-by: artoo <artoo@artixlinux.org>
Co-committed-by: artoo <artoo@artixlinux.org>
2021-09-11 00:19:34 +02:00
3f90082cc1 update tree names 2021-07-24 18:01:46 +02:00
915db85b7d commitpkg: fix team check 2021-07-24 16:21:31 +02:00
a5a29259e5 pkg (#57)
Reviewed-on: artix/artools#57
Co-authored-by: artoo <artoo@artixlinux.org>
Co-committed-by: artoo <artoo@artixlinux.org>
2021-07-24 15:50:33 +02:00
c5f8bc7e20 lib/table: don't redirect to stderr 2021-07-21 15:35:24 +02:00
11dd9be3f1 comp (#56)
Reviewed-on: artix/artools#56
Co-authored-by: artoo <artoo@artixlinux.org>
Co-committed-by: artoo <artoo@artixlinux.org>
2021-07-13 11:07:33 +02:00
24 changed files with 258 additions and 142 deletions

View File

@@ -1,4 +1,4 @@
VERSION=0.24 V=0.26
TOOLS = artools TOOLS = artools
PREFIX ?= /usr PREFIX ?= /usr
@@ -22,6 +22,8 @@ BASE_DATA = \
PKG_CONF = \ PKG_CONF = \
data/conf/artools-pkg.conf data/conf/artools-pkg.conf
SETARCH_ALIASES = \
PKG_BIN = \ PKG_BIN = \
bin/pkg/buildpkg \ bin/pkg/buildpkg \
bin/pkg/deploypkg \ bin/pkg/deploypkg \
@@ -105,7 +107,7 @@ FILEMODE = -m0644
MODE = -m0755 MODE = -m0755
LN = ln -sf LN = ln -sf
RM = rm -f RM = rm -f
M4 = m4 -P M4 = m4 -P --define=m4_artools_pkg_version=$V
CHMODAW = chmod a-w CHMODAW = chmod a-w
CHMODX = chmod +x CHMODX = chmod +x
@@ -137,6 +139,9 @@ install_base:
install $(DIRMODE) $(DESTDIR)$(DATADIR)/$(TOOLS) install $(DIRMODE) $(DESTDIR)$(DATADIR)/$(TOOLS)
install $(FILEMODE) $(BASE_DATA) $(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_pkg:
install $(DIRMODE) $(DESTDIR)$(SYSCONFDIR)/$(TOOLS) install $(DIRMODE) $(DESTDIR)$(SYSCONFDIR)/$(TOOLS)
install $(FILEMODE) $(PKG_CONF) $(DESTDIR)$(SYSCONFDIR)/$(TOOLS) install $(FILEMODE) $(PKG_CONF) $(DESTDIR)$(SYSCONFDIR)/$(TOOLS)

View File

@@ -85,14 +85,12 @@ shift 1
[[ -z $working_dir ]] && die 'Please specify a working directory.' [[ -z $working_dir ]] && die 'Please specify a working directory.'
pacconf_cmd=$(command -v pacman-conf || command -v pacconf)
if (( ${#cache_dirs[@]} == 0 )); then 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 fi
# shellcheck disable=2016 # 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 for host_mirror in "${host_mirrors[@]}"; do
if [[ $host_mirror == *file://* ]]; then if [[ $host_mirror == *file://* ]]; then
@@ -104,7 +102,7 @@ done
while read -r line; do while read -r line; do
# shellcheck disable=2016 # 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#') --repo "$line" Server | sed -r 's#(.*/)[^/]+/os/.+#\1#')
for line in "${lines[@]}"; do for line in "${lines[@]}"; do
if [[ $line = file://* ]]; then if [[ $line = file://* ]]; then
@@ -112,7 +110,7 @@ while read -r line; do
in_array "$line" "${cache_dirs[@]}" || cache_dirs+=("$line") in_array "$line" "${cache_dirs[@]}" || cache_dirs+=("$line")
fi fi
done 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 () { 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 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 [[ -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=$? ret=$?

View File

@@ -64,10 +64,8 @@ shift 1
[[ -z $working_dir ]] && die 'Please specify a working directory.' [[ -z $working_dir ]] && die 'Please specify a working directory.'
pacconf_cmd=$(command -v pacman-conf || command -v pacconf)
if (( ${#cache_dirs[@]} == 0 )); then if (( ${#cache_dirs[@]} == 0 )); then
mapfile -t cache_dirs < <($pacconf_cmd CacheDir) mapfile -t cache_dirs < <(pacman-conf CacheDir)
fi fi
umask 0022 umask 0022

View File

@@ -221,6 +221,8 @@ display_settings(){
msg "ISO SETTINGS:" msg "ISO SETTINGS:"
msg2 "ISO_VERSION: %s" "${ISO_VERSION}" msg2 "ISO_VERSION: %s" "${ISO_VERSION}"
msg2 "COMPRESSION: %s" "${COMPRESSION}"
[[ "${COMPRESSION}" == 'zstd' ]] && msg2 "COMPRESSION_LEVEL: %s" "${COMPRESSION_LEVEL}"
msg "BUILD:" msg "BUILD:"
show_profile show_profile

View File

@@ -72,6 +72,12 @@ get_pacman_conf "${repo}"
get_makepkg_conf 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 check_root SOURCE_DATE_EPOCH,SRCDEST,SRCPKGDEST,PKGDEST,LOGDEST,MAKEFLAGS,PACKAGER,GNUPGHOME
mkchrootpkg_args+=("${@:$OPTIND}") 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}" rm -rf --one-file-system "${chroots_pkg}/${repo}-${arch}"
(umask 0022; mkdir -p "${chroots_pkg}/${repo}-${arch}") (umask 0022; mkdir -p "${chroots_pkg}/${repo}-${arch}")
setarch "${arch}" mkchroot \ setarch "${set_arch}" mkchroot \
-C "${pacman_conf}" \ -C "${pacman_conf}" \
-M "${makepkg_conf}" \ -M "${makepkg_conf}" \
"${chroots_pkg}/${repo}-${arch}/root" \ "${chroots_pkg}/${repo}-${arch}/root" \

View File

@@ -117,6 +117,7 @@ patch_pkg(){
local pkgpath="$1" local pkgpath="$1"
local pkg=${pkgpath%/*} local pkg=${pkgpath%/*}
pkg=${pkg##*/} pkg=${pkg##*/}
sed -e 's|arch-meson|artix-meson|' -i "$pkgpath"/PKGBUILD
case $pkg in case $pkg in
glibc) glibc)
msg2 "Patching %s" "$pkg" msg2 "Patching %s" "$pkg"

View File

@@ -18,19 +18,42 @@ 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)
#{{{ 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 #{{{ sogrep
query_db() { query_db() {
for repo in "${searchrepos[@]}"; do for repo in "${searchrepos[@]}"; do
local db local db
db=${db_cache_dir}/${linksdb_ext}/${CARCH}/${repo}/ db=${db_cache_dir}/linksdb/$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 "${tableQ}" "${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
} }
@@ -41,7 +64,7 @@ query_db() {
is_db_entry() { is_db_entry() {
local pkgname="$1" repo="${REPOS[$2]}" 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 if [[ -d "$entry" ]];then
return 0 return 0
@@ -50,26 +73,74 @@ is_db_entry() {
} }
check_db(){ check_db(){
local pkgpath="${1%/*}" local pkgpath="${1}"
for repo in "${!REPOS[@]}"; do for repo in "${!REPOS[@]}"; do
local pkgbuild artixver local pkgbuild artixver
[[ -f $pkgpath/$CARCH/$repo/PKGBUILD ]] && pkgbuild=$pkgpath/$CARCH/$repo/PKGBUILD if [[ -f $pkgpath/$repo/PKGBUILD ]]; then
[[ -f $pkgpath/repos/$repo-$CARCH/PKGBUILD ]] && pkgbuild=$pkgpath/repos/$repo-$CARCH/PKGBUILD pkgbuild=$pkgpath/$repo/PKGBUILD
[[ -f $pkgpath/repos/$repo-any/PKGBUILD ]] && pkgbuild=$pkgpath/repos/$repo-any/PKGBUILD
# 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
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" # {{{ check obsolete
else
${all_db} && msg_row "${tableU}" "$repo" "$name" "$artixver" "true" 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 fi
done fi
unset artixver pkgbuild pkgver epoch pkgname pkgbase
done done
} }
@@ -85,23 +156,10 @@ 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}"
db_ext="db.tar.${DBEXT}"
load_makepkg_config load_makepkg_config
@@ -109,9 +167,10 @@ sync=false
check=false check=false
query=false query=false
all_db=false all_db=false
obsolete=false
readonly tableU="%-20s %-35s %-30s %-10s" readonly tableU="%-20s %-35s %-30s %-10s"
readonly tableQ="%-20s %-45s %s" readonly tableQ="%-20s %-55s %s"
load_valid_names load_valid_names
@@ -156,6 +215,7 @@ usage() {
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 ' -a Show repo db (-c)'
echo ' -o Check for obsolete packages'
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 ''
@@ -163,7 +223,7 @@ usage() {
exit "$1" exit "$1"
} }
opts='r:qcsah' opts='r:qcsaoh'
while getopts "${opts}" arg; do while getopts "${opts}" arg; do
case "${arg}" in case "${arg}" in
@@ -172,6 +232,7 @@ while getopts "${opts}" arg; do
c) check=true ;; c) check=true ;;
a) all_db=true ;; a) all_db=true ;;
q) query=true ;; q) query=true ;;
o) obsolete=true ;;
h|?) usage 0 ;; h|?) usage 0 ;;
*) echo "invalid argument '${arg}'"; usage 1 ;; *) echo "invalid argument '${arg}'"; usage 1 ;;
esac esac
@@ -186,3 +247,5 @@ ${sync} && update_db_cache
${check} && show_db_table ${check} && show_db_table
${query} && show_lib_table ${query} && show_lib_table
${obsolete} && show_obsolete_table

View File

@@ -46,33 +46,6 @@ subrepo_pull(){
git subrepo pull "$pkg" 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(){ 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
@@ -86,14 +59,12 @@ check_rebuild(){
} }
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_dest}" == "${valid_names[0]}" ]] || \
[[ "${repo_src}" == "${valid_names[1]}" \ [[ "${repo_src}" == "${valid_names[1]}" && "${repo_dest}" == "${valid_names[2]}" ]] || \
&& "${repo_dest}" == "${valid_names[0]}" ]] || \ [[ "${repo_src}" == "${valid_names[2]}" && "${repo_dest}" == "${valid_names[1]}" ]] || \
[[ "${repo_src}" == "${valid_names[1]}" \ [[ "${repo_src}" == "${valid_names[0]}" && "${repo_dest}" == "${valid_names[2]}" ]] || \
&& "${repo_dest}" == "${valid_names[2]}" ]] || \ [[ "${repo_src}" == "${valid_names[2]}" && "${repo_dest}" == "${valid_names[0]}" ]]; then
[[ "${repo_src}" == "${valid_names[2]}" \
&& "${repo_dest}" == "${valid_names[1]}" ]] ;then
local org gitname local org gitname
org=$(get_pkg_org "${package}") org=$(get_pkg_org "${package}")
@@ -106,11 +77,6 @@ check_team(){
path_config() { path_config() {
[[ "${repo_src}" != 'trunk' ]] && pkgbuild="$CARCH/${repo_src}"/PKGBUILD [[ "${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 # shellcheck disable=1090
. "$pkgbuild" . "$pkgbuild"
} }
@@ -132,7 +98,6 @@ commit_pkg() {
if [[ "${repo_src}" == 'trunk' ]];then if [[ "${repo_src}" == 'trunk' ]];then
git rm -r trunk git rm -r trunk
else else
prepare_commit
git rm -r "$CARCH/${repo_src}" git rm -r "$CARCH/${repo_src}"
fi fi
else else
@@ -146,11 +111,15 @@ commit_pkg() {
repo_commit_pkg() { repo_commit_pkg() {
local commit_msg 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 if [[ "${repo_src}" == 'trunk' ]]; then
action='add' action='add'
commit_msg=$(get_repo_commit_msg) commit_msg=$(get_repo_commit_msg)
msg "Action: %s" "$commit_msg" msg "Action: %s" "$commit_msg"
prepare_commit
check_rebuild check_rebuild
cp trunk/* "$CARCH/${repo_dest}"/ cp trunk/* "$CARCH/${repo_dest}"/
else else
@@ -158,7 +127,6 @@ repo_commit_pkg() {
[[ ! -f $pkgbuild ]] && die "%s does not exist!" "$pkgbuild" [[ ! -f $pkgbuild ]] && die "%s does not exist!" "$pkgbuild"
commit_msg=$(get_repo_commit_msg) commit_msg=$(get_repo_commit_msg)
msg "Action: %s" "$commit_msg" msg "Action: %s" "$commit_msg"
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

View File

@@ -52,6 +52,9 @@ compare_m(){
compare_u(){ compare_u(){
if [ "$result" -eq -1 ];then 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#*-}" msg_row_red "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}"
write_list "${a}:$pkg" pkg_upgrades write_list "${a}:$pkg" pkg_upgrades
fi fi

View File

@@ -15,6 +15,9 @@
m4_include(lib/base/message.sh) m4_include(lib/base/message.sh)
m4_include(lib/base/chroot.sh) m4_include(lib/base/chroot.sh)
export BUILDTOOL=artools-pkg
export BUILDTOOLVER=m4_artools_pkg_version
shopt -s nullglob shopt -s nullglob
default_makepkg_args=(--syncdeps --noconfirm --log --holdver --skipinteg) default_makepkg_args=(--syncdeps --noconfirm --log --holdver --skipinteg)
@@ -193,6 +196,8 @@ EOF
printf '#!/bin/bash\n' printf '#!/bin/bash\n'
declare -f _chrootbuild declare -f _chrootbuild
declare -p SOURCE_DATE_EPOCH 2>/dev/null || true 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' printf '_chrootbuild "$@" || exit\n'
if (( run_namcap )); then if (( run_namcap )); then
@@ -218,7 +223,10 @@ _chrootbuild() {
# use "$" in arguments to commands with "sudo -i". ${foo} or # use "$" in arguments to commands with "sudo -i". ${foo} or
# ${1} is OK, but $foo or $1 isn't. # ${1} is OK, but $foo or $1 isn't.
# https://bugzilla.sudo.ws/show_bug.cgi?id=765 # 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=$? ret=$?
case $ret in case $ret in
0|14) 0|14)
@@ -241,7 +249,7 @@ download_sources() {
chown "$makepkg_user:" "$WORKDIR" chown "$makepkg_user:" "$WORKDIR"
# Ensure sources are downloaded # 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" \ env SRCDEST="$SRCDEST" BUILDDIR="$WORKDIR" \
makepkg --config="$copydir/etc/makepkg.conf" --verifysource -o "${verifysource_args[@]}" || makepkg --config="$copydir/etc/makepkg.conf" --verifysource -o "${verifysource_args[@]}" ||
die "Could not download sources." die "Could not download sources."
@@ -305,7 +313,7 @@ done
[[ -n $makepkg_user && -z $(id -u "$makepkg_user") ]] && die 'Invalid makepkg user.' [[ -n $makepkg_user && -z $(id -u "$makepkg_user") ]] && die 'Invalid makepkg user.'
makepkg_user=${makepkg_user:-${SUDO_USER:-$USER}} makepkg_user=${makepkg_user:-${SUDO_USER:-$USER}}
check_root 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 / # Canonicalize chrootdir, getting rid of trailing /
chrootdir=$(readlink -e "$passeddir") chrootdir=$(readlink -e "$passeddir")

View File

@@ -17,6 +17,24 @@ m4_include(lib/base/yaml.sh)
#{{{ functions #{{{ functions
print_package_names() {
local version=$(get_full_version)
local architecture pkg
for pkg in ${pkgname[@]}; do
architecture=$(get_pkg_arch $pkg)
printf "%s/%s-%s-%s%s\n" "$PKGDEST" "$pkg" "$version" "$architecture" "$PKGEXT"
done
}
print_debug_package_names() {
local version=$(get_full_version)
local architecture
if check_option "debug" "y" && check_option "strip" "y"; then
architecture=$(get_pkg_arch)
printf "%s/%s-%s-%s-%s%s\n" "$PKGDEST" "$pkgbase" "debug" "$version" "$architecture" "$PKGEXT"
fi
}
srcyaml_write_attr(){ srcyaml_write_attr(){
local ident1="$1" ident2="$2" ident3="$3" local ident1="$1" ident2="$2" ident3="$3"
local attrname=$4 attrvalues=("${@:5}") local attrname=$4 attrvalues=("${@:5}")
@@ -108,13 +126,19 @@ yaml_write_fileinfo(){
pkgbase=${pkgbase:-$pkgname} pkgbase=${pkgbase:-$pkgname}
Yaml+=$(write_yaml_map 0 "version" "${version:-0}") Yaml+=$(write_yaml_map 0 "version" "${version:-0}")
Yaml+=$(write_empty_line) Yaml+=$(write_empty_line)
local pkgfile local pkgfile debug_pkg
pkgfile=$(print_all_package_names) pkgfile=$(print_package_names)
Yaml+=$(write_yaml_map 0 "files") Yaml+=$(write_yaml_map 0 "files")
for f in ${pkgfile}; do for f in ${pkgfile}; do
Yaml+=$(write_yaml_seq 2 "${f##*/}") Yaml+=$(write_yaml_seq 2 "${f##*/}")
done done
Yaml+=$(write_empty_line) Yaml+=$(write_empty_line)
debug_pkg=$(print_debug_package_names)
Yaml+=$(write_yaml_map 0 "debug")
for d in ${debug_pkg}; do
Yaml+=$(write_yaml_seq 2 "${d##*/}")
done
Yaml+=$(write_empty_line)
} }
write_srcyaml(){ write_srcyaml(){

View File

@@ -8,13 +8,14 @@
# 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, suite66 # possible values: openrc, runit, s6, suite66, dinit
# INITSYS="openrc" # INITSYS="openrc"
# gpg key; leave empty or commented to skip img signing # gpg key; leave empty or commented to skip img signing
# GPG_KEY="" # GPG_KEY=""
# mksquashfs compression # possible values: zstd (default), xz
# default: zstd <compression-level> should be 1 .. 22 (default 15) # COMPRESSION="zstd"
# optional xz args: COMPRESSION_ARGS=(-comp xz -Xbcj x86)
#COMPRESSION_ARGS=(-comp zstd -Xcompression-level 22) # zstd only: range 1..22
# COMPRESSION_LEVEL=15

View File

@@ -10,30 +10,38 @@
# customize buildtree; uncomment to include # customize buildtree; uncomment to include
# TREE_NAMES_ARTIX=( # TREE_NAMES_ARTIX=(
# packages-kernel # packages-kernel
# packages-llvm
# packages-openrc # packages-openrc
# packages-runit # packages-runit
# packages-s6 # packages-s6
# packages-suite66 # packages-suite66
# python-world # packages-dinit
# packages-perl # packages-perl
# packages-java # packages-java
# packages-ruby # packages-ruby
# packages-kf5 # packages-gtk
# packages-qt5
# packages-qt6
# packages-xorg
# packages-plasma # packages-plasma
# packages-kde # packages-kde
# packages-gnome # packages-gnome
# packages-cinnamon # packages-cinnamon
# packages-lxqt # packages-lxqt
# packages-lxde
# packages-mate # packages-mate
# packages-xfce # packages-xfce
# packages-wm # packages-wm
# packages-devel # packages-devel
# packages-lib32
# packages-qt6 # packages-qt6
# packages-office # packages-office
# packages-misc # packages-misc
# packages-python # python-world
# python-galaxy # python-galaxy
# python-galaxy-groups
# python-misc
# packages-python
# packages-lib32
# ) # )
# TREE_DIR_ARCH=${WORKSPACE_DIR}/archlinux # TREE_DIR_ARCH=${WORKSPACE_DIR}/archlinux

View File

@@ -11,10 +11,10 @@
# #
#-- The download utilities that makepkg should use to acquire sources #-- The download utilities that makepkg should use to acquire sources
# Format: 'protocol::agent' # Format: 'protocol::agent'
DLAGENTS=('file::/usr/bin/curl -gqC - -o %o %u' DLAGENTS=('file::/usr/bin/curl -qgC - -o %o %u'
'ftp::/usr/bin/curl -gqfC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u' 'ftp::/usr/bin/curl -qgfC - --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 -qgb "" -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 -qgb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
'rsync::/usr/bin/rsync --no-motd -z %u %o' 'rsync::/usr/bin/rsync --no-motd -z %u %o'
'scp::/usr/bin/scp -C %u %o') 'scp::/usr/bin/scp -C %u %o')
@@ -49,8 +49,8 @@ LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now"
#-- Make Flags: change this for DistCC/SMP systems #-- Make Flags: change this for DistCC/SMP systems
#MAKEFLAGS="-j2" #MAKEFLAGS="-j2"
#-- Debugging flags #-- Debugging flags
DEBUG_CFLAGS="-g -fvar-tracking-assignments" DEBUG_CFLAGS="-g"
DEBUG_CXXFLAGS="-g -fvar-tracking-assignments" DEBUG_CXXFLAGS="-g"
#DEBUG_RUSTFLAGS="-C debuginfo=2" #DEBUG_RUSTFLAGS="-C debuginfo=2"
######################################################################### #########################################################################
@@ -93,7 +93,7 @@ BUILDENV=(!distcc color !ccache check !sign)
#-- debug: Add debugging flags as specified in DEBUG_* variables #-- debug: Add debugging flags as specified in DEBUG_* variables
#-- lto: Add compile flags for building with link time optimization #-- 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 #-- File integrity checks to use. Valid: md5, sha1, sha224, sha256, sha384, sha512, b2
INTEGRITY_CHECK=(sha256) INTEGRITY_CHECK=(sha256)

View File

@@ -36,6 +36,11 @@ write_services_suite66_conf(){
write_services_conf 'svDir' '/etc/66/service' 'runsvDir' '/var/lib/66/system' > "$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(){ configure_calamares(){
local mods="$1/etc/calamares/modules" local mods="$1/etc/calamares/modules"
if [[ -d "$mods" ]];then if [[ -d "$mods" ]];then

View File

@@ -10,7 +10,7 @@ prepare_initramfs_dracut(){
printf "%s\n" 'add_dracutmodules+=" dmsquash-live"' > "$mnt"/etc/dracut.conf.d/50-live.conf printf "%s\n" 'add_dracutmodules+=" dmsquash-live"' > "$mnt"/etc/dracut.conf.d/50-live.conf
msg "Starting build: %s" "${kver}" 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" msg "Image generation successful"
cp "$mnt"/boot/initramfs.img "${iso_root}"/boot/initramfs-"${arch}".img cp "$mnt"/boot/initramfs.img "${iso_root}"/boot/initramfs-"${arch}".img

View File

@@ -40,7 +40,7 @@ prepare_initramfs_mkinitcpio() {
export ARTIX_GNUPG_FD export ARTIX_GNUPG_FD
fi fi
artools-chroot "$mnt" mkinitcpio -k "$k" \ artix-chroot "$mnt" mkinitcpio -k "$k" \
-c /etc/"$mkinitcpio_conf" \ -c /etc/"$mkinitcpio_conf" \
-g /boot/initramfs.img -g /boot/initramfs.img

View File

@@ -56,7 +56,8 @@ read_from_list() {
read_from_services() { read_from_services() {
for svc in "${SERVICES[@]}"; do for svc in "${SERVICES[@]}"; do
case "$svc" in case "$svc" in
sddm|gdm|lightdm|mdm|greetd|lxdm|xdm) packages+=("$svc-${INITSYS}") ;; sddm|gdm|lightdm|mdm|greetd|lxdm|xdm)
packages+=("$svc-${INITSYS}"); display_manager="$svc" ;;
NetworkManager) packages+=("networkmanager-${INITSYS}") ;; NetworkManager) packages+=("networkmanager-${INITSYS}") ;;
connmand) packages+=("connman-${INITSYS}") ;; connmand) packages+=("connman-${INITSYS}") ;;
cupsd) packages+=("cups-${INITSYS}") ;; cupsd) packages+=("cups-${INITSYS}") ;;

View File

@@ -23,24 +23,26 @@ 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}" dep
local db=/etc/s6/rc/compiled dep="$mnt"/etc/s6/sv/"$display_manager"-srv/dependencies.d
for svc in $names; do for svc in $names; do
error=false msg2 "Setting %s: [%s]" "${INITSYS}" "$svc"
chroot "$mnt" s6-rc-db -c "$db" type "$svc" &> /dev/null || error=true chroot "$mnt" s6-service add "$rlvl" "$svc"
ret="$?" if [[ "$svc" == "$display_manager" ]]; then
if [ $ret -eq 0 ] && [[ "$error" == false ]]; then if [[ -d "$dep" ]]; then
msg2 "Setting %s: [%s]" "${INITSYS}" "$svc" touch "$dep"/artix-live
chroot "$mnt" s6-rc-bundle-update -c "$db" add "$rlvl" "$svc" fi
fi fi
done done
local rlvl=/etc/s6/current chroot "$mnt" s6-db-reload -r
local src=/etc/s6/current skel=/etc/s6/skel getty='/usr/bin/agetty -L -8 tty7 115200'
# rebuild s6-linux-init binaries # rebuild s6-linux-init binaries
chroot "$mnt" rm -r "$rlvl" chroot "$mnt" rm -r "$src"
chroot "$mnt" s6-linux-init-maker -1 -N -f /etc/s6/skel -G "/usr/bin/agetty -L -8 tty7 115200" -c "$rlvl" "$rlvl" chroot "$mnt" s6-linux-init-maker -1 -N -f "$skel" -G "$getty" -c "$src" "$src"
chroot "$mnt" mv "$rlvl"/bin/init "$rlvl"/bin/s6-init chroot "$mnt" mv "$src"/bin/init "$src"/bin/s6-init
chroot "$mnt" cp -a "$rlvl"/bin /usr chroot "$mnt" cp -a "$src"/bin /usr
} }
add_svc_suite66(){ add_svc_suite66(){
@@ -53,4 +55,14 @@ add_svc_suite66(){
done 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
}
#}}} #}}}

View File

@@ -67,7 +67,7 @@ make_sfs() {
mksfs_args+=("${sfs_out}") mksfs_args+=("${sfs_out}")
mksfs_args+=("${COMPRESSION_ARGS[@]}" -noappend) mksfs_args+=(-comp "${COMPRESSION}" "${COMPRESSION_ARGS[@]}" -noappend)
mksquashfs "${mksfs_args[@]}" mksquashfs "${mksfs_args[@]}"

View File

@@ -41,7 +41,7 @@ find_pkg(){
tree_loop(){ 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" | sort) pkgs=$(find "${TREE_DIR_ARTIX}/$tree" -name "$CARCH" | sort)
for _package in ${pkgs}; do for _package in ${pkgs}; do
"$func" "$_package" "$func" "$_package"
done done

View File

@@ -5,32 +5,31 @@
msg_table_header(){ msg_table_header(){
local mesg=$1; shift local mesg=$1; shift
# shellcheck disable=2059 # shellcheck disable=2059
printf "${BLUE} ${mesg} ${ALL_OFF}\n" "$@" >&2 printf "${BLUE} ${mesg} ${ALL_OFF}\n" "$@"
} }
msg_row_yellow(){ 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" "$@"
} }
msg_row_green(){ 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" "$@"
} }
msg_row(){ msg_row(){
local mesg=$1; shift local mesg=$1; shift
# printf "${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2
# shellcheck disable=2059 # shellcheck disable=2059
printf "${WHITE} ${mesg}${ALL_OFF}\n" "$@" >&2 printf "${WHITE} ${mesg}${ALL_OFF}\n" "$@"
} }
msg_row_red(){ 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" "$@"
} }
#}}} #}}}

View File

@@ -19,8 +19,16 @@ load_iso_config(){
GPG_KEY=${GPG_KEY:-''} GPG_KEY=${GPG_KEY:-''}
COMPRESSION="${COMPRESSION:-zstd}"
COMPRESSION_LEVEL="${COMPRESSION_LEVEL:-15}"
if [[ -z "${COMPRESSION_ARGS[*]}" ]]; then if [[ -z "${COMPRESSION_ARGS[*]}" ]]; then
COMPRESSION_ARGS=(-comp zstd -Xcompression-level 22) COMPRESSION_ARGS=(-Xcompression-level "${COMPRESSION_LEVEL}")
fi
if [[ "${COMPRESSION}" == 'xz' ]]; then
COMPRESSION_ARGS=(-Xbcj x86)
fi fi
return 0 return 0

View File

@@ -23,19 +23,19 @@ load_pkg_config(){
ARTIX_TREE=( ARTIX_TREE=(
packages community packages community
packages-{gfx,gtk,media,net,qt5,xorg} packages-{gfx,media,net}
) )
local dev_tree=( local dev_tree=(
packages-{python,perl,java,ruby} packages-{llvm,python,perl,java,ruby,misc}
python-{world,galaxy} 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=( local desktop_tree=(
packages-{kf5,plasma,kde,qt6} packages-{kf5,plasma,kde,qt5,qt6,xorg,gtk}
packages-{lxqt,gnome,cinnamon,mate,xfce,wm} packages-{lxqt,gnome,cinnamon,mate,xfce,wm,lxde}
) )
[[ -z ${TREE_NAMES_ARTIX[*]} ]] && \ [[ -z ${TREE_NAMES_ARTIX[*]} ]] && \