Compare commits

..

5 Commits

Author SHA1 Message Date
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: #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: #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: #45
Co-Authored-By: artoo <artoo@artixlinux.org>
Co-Committed-By: artoo <artoo@artixlinux.org>
2020-12-21 16:09:56 +01:00
31 changed files with 206 additions and 171 deletions

View File

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

View File

@@ -21,13 +21,13 @@ m4_include(lib/base/mount.sh)
#{{{ functions
chroot_part_mount() {
info "mount: [%s]" "$2"
msg2 "mount: [%s]" "$2"
mount "$@" && CHROOT_ACTIVE_PART_MOUNTS=("$2" "${CHROOT_ACTIVE_PART_MOUNTS[@]}")
}
chroot_part_umount() {
chroot_api_umount
info "umount: [%s]" "${CHROOT_ACTIVE_PART_MOUNTS[@]}"
msg2 "umount: [%s]" "${CHROOT_ACTIVE_PART_MOUNTS[@]}"
umount "${CHROOT_ACTIVE_PART_MOUNTS[@]}"
unset CHROOT_ACTIVE_PART_MOUNTS
}
@@ -80,7 +80,7 @@ select_os(){
local last=${os##*:}
case $last in
'efi') count=$((count-1)) ;;
*) info "$i) $(get_os_name "$os")"; i=$((i+1)) ;;
*) msg2 "$i) $(get_os_name "$os")"; i=$((i+1)) ;;
esac
done
i=0

View File

@@ -15,6 +15,7 @@
m4_include(lib/base/message.sh)
m4_include(lib/base/mount.sh)
m4_include(lib/base/chroot.sh)
m4_include(lib/base/chroot-version.sh)
# $1: chroot
kill_chroot_process(){
@@ -26,7 +27,7 @@ kill_chroot_process(){
# this process is in the chroot...
pid=$(basename "$(dirname "$root_dir")")
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"
fi
fi
@@ -96,7 +97,6 @@ for host_mirror in "${host_mirrors[@]}"; do
if [[ $host_mirror == *file://* ]]; then
# shellcheck disable=2016
host_mirror=$(echo "$host_mirror" | sed -r 's#file://(/.*)/\$repo/os/\$arch#\1#g')
info "host mirror: %s" "$host_mirror"
in_array "$host_mirror" "${cache_dirs[@]}" || cache_dirs+=("$host_mirror")
fi
done
@@ -148,12 +148,6 @@ chroot_extra_mount() {
done
}
sync_host_localtime(){
if [[ -e /etc/localtime ]]; then
cp -L /etc/localtime "${working_dir}"/etc/localtime
fi
}
umask 0022
# 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}"
fi
#sync_host_localtime
chroot_api_mount "${working_dir}" || die "failed to setup API filesystems in chroot %s" "${working_dir}"
chroot_extra_mount

View File

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

View File

@@ -187,10 +187,9 @@ gen_iso_fn(){
prepare_build(){
load_profile
local repo=default
case "${repo}" in
'gremlins'|'goblins') repo="${repo}" ;;
*) repo=default ;;
esac
get_pacman_conf "${repo}"

View File

@@ -53,20 +53,20 @@ create_repo() {
}
subrepo_new(){
cd "${TREE_DIR_ARTIX}/${GROUP}" || return
cd "${TREE_DIR_ARTIX}/${group}" || return
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"
)
else
clone_tree "${host_tree_arch}" "${tree}" "Arch"
clone_tree "${HOST_TREE_ARCH}" "${tree}" "Arch"
fi
done
}
@@ -110,7 +110,7 @@ config_tree(){
pull_tree_artix(){
local repos=()
if ${sync_group}; then
repos=("${GROUP}")
repos=("${group}")
else
repos=("${ARTIX_TREE[@]}")
fi
@@ -213,14 +213,14 @@ from_arch(){
cd "${TREE_DIR_ARTIX}" || return
local srcpath repo archpath artixpath
srcpath=$(find_pkg "${TREE_DIR_ARCH}" "${PACKAGE}")
[[ -z $srcpath ]] && die "Package '%s' does not exist!" "${PACKAGE}"
srcpath=$(find_pkg "${TREE_DIR_ARCH}" "${package}")
[[ -z $srcpath ]] && die "Package '%s' does not exist!" "${package}"
repo=$(find_repo "$srcpath")
msg "repo: %s" "${repo#*/}"
archpath=$srcpath/$repo
artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${PACKAGE}")
artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${package}")
show_deps "$archpath"
@@ -232,7 +232,7 @@ from_arch(){
patch_pkg "$artixpath"
fi
else
die "Package '%s' does not exist!" "${PACKAGE}"
die "Package '%s' does not exist!" "${package}"
fi
}
@@ -240,8 +240,8 @@ from_arch(){
view_build(){
local archpath repo
archpath=$(find_pkg "${TREE_DIR_ARCH}" "${PACKAGE}")
[[ -z $archpath ]] && die "Package '%s' does not exist!" "${PACKAGE}"
archpath=$(find_pkg "${TREE_DIR_ARCH}" "${package}")
[[ -z $archpath ]] && die "Package '%s' does not exist!" "${package}"
repo=$(find_repo "${archpath}")
archpath=$archpath/$repo
msg "repo: %s" "${repo#*/}"
@@ -250,9 +250,9 @@ view_build(){
check_tree(){
local archpath artixpath group
archpath=$(find_pkg "${TREE_DIR_ARCH}" "${PACKAGE}")
[[ -z $archpath ]] && die "Package '%s' does not exist!" "${PACKAGE}"
artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${PACKAGE}")
archpath=$(find_pkg "${TREE_DIR_ARCH}" "${package}")
[[ -z $archpath ]] && die "Package '%s' does not exist!" "${package}"
artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${package}")
group=${artixpath%/*}
msg "group: %s" "${group##*/}"
@@ -267,6 +267,8 @@ sync_repos(){
load_makepkg_config
load_valid_names
testing=true
staging=true
unstable=false
@@ -280,22 +282,21 @@ createnew=false
sync_group=false
check=false
PACKAGE=''
package=''
TEAM='community'
GROUP="${ARTIX_TREE[0]}"
team='community'
group="${ARTIX_TREE[0]}"
host_tree_artix="${GIT_SSH}:artixlinux"
host_tree_arch='https://github.com/archlinux'
usage() {
echo "Usage: ${0##*/} [options]"
echo ' -p <pkg> Package name'
echo ' -t <team> Team name (only with -n)'
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 " [default: ${GROUP}]"
echo " [default: ${group}]"
echo " -s Clone or pull repos"
echo " -a Don't clone or pull arch repos"
echo " -b Don't clone or pull artix repos"
@@ -316,9 +317,9 @@ opts='p:t:g:sinabcvxyzh'
while getopts "${opts}" arg; do
case "${arg}" in
p) PACKAGE="$OPTARG" ;;
t) TEAM="$OPTARG" ;;
g) GROUP="$OPTARG"; sync_group=true ;;
p) package="$OPTARG" ;;
t) team="$OPTARG" ;;
g) group="$OPTARG"; sync_group=true ;;
s) sync=true ;;
a) sync_arch=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/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
query_db() {
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
while read -rd '' pkg; do
read -r match
@@ -52,9 +40,10 @@ query_db() {
#{{{ check db
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
fi
return 1
@@ -71,14 +60,14 @@ check_db(){
# 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 "${tableU}" "$repo" "$name" "$artixver" "false"
msg_row_upgrade "${tableU}" "$repo" "$name" "$artixver" "false"
else
${all_db} && msg_row "${tableU}" "$repo" "$name" "$artixver" "true"
fi
done
unset artixver pkgbuild pkgver epoch pkgname pkgbase
done
@@ -96,6 +85,20 @@ 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}"
@@ -105,11 +108,12 @@ load_makepkg_config
sync=false
check=false
query=false
all_db=false
readonly tableU="%-20s %-35s %-30s %-10s"
readonly tableQ="%-20s %-45s %s"
set_arch_repos "true" "true" "true"
load_valid_names
#{{{ repo names arrays
@@ -151,6 +155,7 @@ usage() {
echo ' [default: all]'
echo " -s Sync repo databases"
echo ' -c Check repos'
echo ' -a Show repo db (-c)'
echo " -q Query repo databases for so libs"
echo ' -h This help'
echo ''
@@ -158,13 +163,14 @@ usage() {
exit "$1"
}
opts='r:qcsh'
opts='r:qcsah'
while getopts "${opts}" arg; do
case "${arg}" in
r) searchrepos=("$OPTARG") ;;
s) sync=true ;;
c) check=true ;;
a) all_db=true ;;
q) query=true ;;
h|?) usage 0 ;;
*) echo "invalid argument '${arg}'"; usage 1 ;;

View File

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

View File

@@ -23,32 +23,28 @@ m4_include(lib/pkg/table.sh)
remove_list(){
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(){
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(){
result=$(vercmp "$artixver" "$archver")
case ${artixrepo} in
*testing*|*staging*|*rebuild)
if [[ "${a}" == "${b}" ]] || [[ "${a}" == 'staging' && "${b}" == 'rebuild' ]]; then
msg_row "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}"
else
msg_row_notify "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}"
if [[ -n "$archrepo" ]]; then
write_list "${a}:${b}:$pkg" pkg_moves
fi
[[ -n "$archrepo" ]] && write_list "${a}:${b}:$pkg" pkg_moves
fi
;;
esac
}
compare_u(){
result=$(vercmp "$artixver" "$archver")
if [ "$result" -eq -1 ];then
msg_row_upgrade "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}"
write_list "${a}:$pkg" pkg_upgrades
@@ -56,7 +52,6 @@ compare_u(){
}
compare_d(){
result=$(vercmp "$artixver" "$archver")
if [ "$result" -eq 1 ];then
if [[ -n "$archver" ]] && [[ -n "$archrepo" ]];then
msg_row_downgrade "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}"
@@ -102,9 +97,11 @@ pre_compare(){
archver=$(get_full_version)
fi
result=$(vercmp "$artixver" "$archver")
"$func"
unset pkgver epoch pkgrel artixver archver pkgbuild archpath
unset epoch
fi
}
@@ -148,6 +145,8 @@ show_move_table(){
load_makepkg_config
load_valid_names
testing=true
staging=true
unstable=false
@@ -159,7 +158,7 @@ move=false
readonly table="%-18s %-18s %-25s %-27s %-27s %-10s"
usage() {
echo "Usage: ${0##*/} [options] (with -q [libname])"
echo "Usage: ${0##*/} [options]"
echo ' -u Show upgrade packages'
echo ' -d Show downgrade packages'
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/pkg/deploy.sh)
#{{{ functions
#{{{ deploy
add(){
if pkgfile=$(find_cached_pkgfile "${pkgname}"); then
@@ -29,9 +29,9 @@ add(){
}
remove(){
packages+=("$pkgname")
packages+=("$(get_pkgbasename "${pkgname}")")
action='remove'
rm -v "$repo_path"/"$pkgname"*.pkg.tar.*
rm -v "$repo_path"/"${pkgname}"{,.sig}
}
repo_action(){

View File

@@ -232,8 +232,9 @@ db_write_entry() {
msg2 "Creating '%s' db entry..." "${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'
done | sort -u > "$linksentry"

View File

@@ -32,7 +32,6 @@ clean_first=0
run_namcap=0
run_checkpkg=0
temp_chroot=0
run_nocheck=0
bindmounts=()
@@ -290,7 +289,7 @@ while getopts "${opts}" arg; do
I) install_pkgs+=("$OPTARG") ;;
l) copy="$OPTARG" ;;
n) run_namcap=1; makepkg_args+=(--install) ;;
N) run_nocheck=1; makepkg_args+=(--nocheck) ;;
N) makepkg_args+=(--nocheck) ;;
C) run_checkpkg=1 ;;
T) temp_chroot=1; copy+="-$$" ;;
U) makepkg_user="$OPTARG" ;;

View File

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

View File

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

View File

@@ -38,3 +38,9 @@
# default mirror for checkrepo
# 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

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -85,7 +85,7 @@ write_unpackfs() {
configure_calamares(){
local mods="$1/etc/calamares/modules"
if [[ -d "$mods" ]];then
msg2 "Configuring Calamares"
msg2 "Configuring: Calamares"
write_users_conf > "$mods"/users.conf
write_services_"${INITSYS}"_conf "$mods"
write_postcfg > "$mods"/postcfg.conf

View File

@@ -7,9 +7,9 @@ configure_hosts(){
}
configure_logind(){
local conf=$1/etc/"$2"/logind.conf
local conf=$1/etc/elogind/logind.conf
if [[ -e "$conf" ]];then
msg2 "Configuring logind ..."
msg2 "Configuring: logind"
sed -i 's/#\(HandleSuspendKey=\)suspend/\1ignore/' "$conf"
sed -i 's/#\(HandleLidSwitch=\)suspend/\1ignore/' "$conf"
sed -i 's/#\(HandleHibernateKey=\)hibernate/\1ignore/' "$conf"
@@ -18,14 +18,12 @@ configure_logind(){
configure_services(){
local mnt="$1"
info "Configuring [%s] services" "${INITSYS}"
add_svc_"${INITSYS}" "$mnt" "${SERVICES[*]} ${SERVICES_LIVE[*]}"
info "Done configuring [%s] services" "${INITSYS}"
}
configure_system(){
local mnt="$1"
configure_logind "$mnt" "elogind"
configure_logind "$mnt"
echo "${HOST_NAME}" > "$mnt"/etc/hostname
}
@@ -47,7 +45,7 @@ configure_chroot(){
configure_services "$fs"
configure_calamares "$fs"
[[ ! -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"
msg "Done configuring [%s]" "${fs##*/}"
}

View File

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

View File

@@ -59,7 +59,7 @@ load_profile(){
load_pkgs(){
local pkglist="$1" init="$2"
info "Loading Packages: [%s] ..." "${pkglist##*/}"
msg2 "Loading Packages: [%s] ..." "${pkglist##*/}"
local _init="s|@$init||g" _init_rm1 _init_rm2
case "$init" in

View File

@@ -13,7 +13,7 @@ add_svc_openrc(){
local mnt="$1" names="$2" rlvl="${3:-default}"
for svc in $names; do
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
fi
@@ -24,7 +24,7 @@ add_svc_runit(){
local mnt="$1" names="$2" rlvl="${3:-default}"
for svc in $names; do
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
fi
done
@@ -37,11 +37,19 @@ add_svc_s6(){
chroot "$mnt" s6-rc-db -c /etc/s6/rc/compiled type "$svc" &> /dev/null || error=true
ret="$?"
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"
fi
done
# force artix-live as a dependency if these display managers exist
for displaymanager in gdm lightdm-srv lxdm sddm; do
if [ -f "${work_dir}"/rootfs/etc/s6/sv/$displaymanager/dependencies ]; then
echo "artix-live" >> "${work_dir}"rootfs/etc/s6/sv/$displaymanager/dependencies
fi
done
chroot "$mnt" sh /usr/share/libalpm/scripts/s6-rc-db-update-hook
# rebuild s6-linux-init binaries
chroot "$mnt" rm -r /etc/s6/current
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

View File

@@ -1,6 +1,6 @@
#!/hint/bash
#{{{ deploy
#{{{ functions
find_cached_pkgfile() {
local searchdirs=("$PKGDEST" "$PWD") results=()
@@ -25,4 +25,13 @@ find_cached_pkgfile() {
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
get_compliant_name(){
local gitname="$1"
case "$gitname" in
*+) gitname=${gitname//+/plus}
esac
echo "$gitname"
}
get_pkg_org(){
local pkg="$1" org sub
case ${pkg} in

View File

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

View File

@@ -23,12 +23,12 @@ load_base_config(){
[[ -f "$conf" ]] || return 1
# shellcheck disable=1090
# shellcheck source=/etc/artools/artools-base.conf
[[ -r "$conf" ]] && . "$conf"
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
}

View File

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

View File

@@ -8,14 +8,14 @@ load_pkg_config(){
[[ -f "$conf" ]] || return 1
# shellcheck disable=1090
# shellcheck source=/etc/artools/artools-pkg.conf
[[ -r "$conf" ]] && . "$conf"
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:-''}
@@ -26,7 +26,10 @@ load_pkg_config(){
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})
@@ -49,12 +52,15 @@ load_pkg_config(){
TREE_DIR_ARCH=${TREE_DIR_ARCH:-"${WORKSPACE_DIR}/archlinux"}
[[ -z ${ARCH_TREE[*]} ]] && \
ARCH_TREE=(svntogit-{packages,community})
REPOS_ROOT=${REPOS_ROOT:-"${WORKSPACE_DIR}/repos"}
REPOS_MIRROR=${REPOS_MIRROR:-'http://mirror1.artixlinux.org/repos'}
HOST_TREE_ARCH=${HOST_TREE_ARCH:-'https://github.com/archlinux'}
DBEXT=${DBEXT:-'xz'}
return 0