forked from artix/artools
Compare commits
19 Commits
Author | SHA1 | Date | |
---|---|---|---|
1d85f8000c | |||
21c44dba79 | |||
f4e3abae46 | |||
a7cef500ad | |||
f7c29d1c98 | |||
f1b2af947b | |||
5637ba0f8f | |||
a383531e5d | |||
6b4acbdd94 | |||
b7fd0a4e41 | |||
b734357ea9 | |||
74d44873e7 | |||
91e038c3f5 | |||
8548a584f3 | |||
38fb213e13 | |||
fade611ae7 | |||
8cdb68ce6a
|
|||
7d949afeb7 | |||
6f037f6faf |
@@ -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
|
||||||
|
@@ -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
|
||||||
|
@@ -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,18 +73,17 @@ 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
|
for name in "${pkgname[@]}"; do
|
||||||
if ! is_db_entry "$name-$artixver" "$repo"; then
|
if ! is_db_entry "$name-$artixver" "$repo"; then
|
||||||
msg_row_red "${tableU}" "$repo" "$name" "$artixver" "false"
|
msg_row_red "${tableU}" "$repo" "$name" "$artixver" "false"
|
||||||
@@ -70,6 +92,55 @@ check_db(){
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
unset artixver pkgbuild pkgver epoch pkgname pkgbase
|
unset artixver pkgbuild pkgver epoch pkgname pkgbase
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
#}}}
|
||||||
|
|
||||||
|
# {{{ 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" != *udev* ]] && [[ "$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* ]] && [[ "$p" != *blocaled* ]]; then
|
||||||
|
if [[ ! -d "${arch_db}/$p" ]]; then
|
||||||
|
msg_row "${tableQ}" "${artix_repo}" "$p" "true"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
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
|
||||||
|
@@ -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
|
||||||
@@ -104,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"
|
||||||
}
|
}
|
||||||
@@ -130,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
|
||||||
@@ -144,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
|
||||||
@@ -156,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
|
||||||
|
@@ -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
|
||||||
|
@@ -249,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."
|
||||||
|
@@ -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(){
|
||||||
|
@@ -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, 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
|
||||||
|
@@ -15,15 +15,20 @@
|
|||||||
# packages-runit
|
# packages-runit
|
||||||
# packages-s6
|
# packages-s6
|
||||||
# packages-suite66
|
# packages-suite66
|
||||||
|
# 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
|
||||||
@@ -33,6 +38,8 @@
|
|||||||
# packages-misc
|
# packages-misc
|
||||||
# python-world
|
# python-world
|
||||||
# python-galaxy
|
# python-galaxy
|
||||||
|
# python-galaxy-groups
|
||||||
|
# python-misc
|
||||||
# packages-python
|
# packages-python
|
||||||
# packages-lib32
|
# packages-lib32
|
||||||
# )
|
# )
|
||||||
|
@@ -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)
|
||||||
|
@@ -29,6 +29,8 @@ write_services_runit_conf(){
|
|||||||
write_services_s6_conf(){
|
write_services_s6_conf(){
|
||||||
local conf="$1"/services-s6.conf
|
local conf="$1"/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"
|
||||||
|
printf '%s\n' "" >> "$conf"
|
||||||
|
printf '%s\n' "defaultBundle: default" >> "$conf"
|
||||||
}
|
}
|
||||||
|
|
||||||
write_services_suite66_conf(){
|
write_services_suite66_conf(){
|
||||||
@@ -36,6 +38,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
|
||||||
|
@@ -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
|
||||||
|
@@ -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
|
||||||
|
|
||||||
|
@@ -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}") ;;
|
||||||
|
@@ -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
|
|
||||||
chroot "$mnt" s6-rc-db -c "$db" type "$svc" &> /dev/null || error=true
|
|
||||||
ret="$?"
|
|
||||||
if [ $ret -eq 0 ] && [[ "$error" == false ]]; then
|
|
||||||
msg2 "Setting %s: [%s]" "${INITSYS}" "$svc"
|
msg2 "Setting %s: [%s]" "${INITSYS}" "$svc"
|
||||||
chroot "$mnt" s6-rc-bundle-update -c "$db" add "$rlvl" "$svc"
|
chroot "$mnt" s6-service add "$rlvl" "$svc"
|
||||||
|
if [[ "$svc" == "$display_manager" ]]; then
|
||||||
|
if [[ -d "$dep" ]]; then
|
||||||
|
touch "$dep"/artix-live
|
||||||
|
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
|
||||||
|
}
|
||||||
|
|
||||||
#}}}
|
#}}}
|
||||||
|
@@ -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
|
||||||
|
@@ -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-{llvm,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[*]} ]] && \
|
||||||
|
Reference in New Issue
Block a user