Compare commits

..

9 Commits
0.18 ... 0.18.3

Author SHA1 Message Date
f5daac0d67 commitpkg: commit removal of obsolete arch 2020-05-28 20:12:33 +02:00
2484ea39a4 commitpkg: support are change when moving 2020-05-28 15:54:43 +02:00
9b222bdb83 commitpkg: rm old arch on change of arch
signpkg: tweak msg
2020-05-28 10:39:19 +02:00
a3e6b17c5f deploypkg: add xz compat 2020-05-25 22:49:27 +02:00
21a37f6b00 buildtree: quote vars 2020-05-25 22:10:26 +02:00
80416b76d5 buildtree: fix import for new pkgs 2020-05-25 21:01:05 +02:00
2113ffe4c6 newrepo (#29)
buildtree: only -n creates repos

buildtree: move msg in sync func

buildtree: deprecate pkglists
2020-05-25 18:29:24 +02:00
438473c878 quote vars 2020-05-25 00:14:17 +02:00
86c5c2f47b rm signfile 2020-05-24 19:06:51 +02:00
7 changed files with 75 additions and 154 deletions

View File

@@ -14,7 +14,6 @@ BASE_CONF = \
data/conf/artools-base.conf data/conf/artools-base.conf
BASE_BIN = \ BASE_BIN = \
bin/base/signfile \
bin/base/chroot-run \ bin/base/chroot-run \
bin/base/mkchroot \ bin/base/mkchroot \
bin/base/basestrap \ bin/base/basestrap \

View File

@@ -1,32 +0,0 @@
#!/bin/bash
#
# Copyright (C) 2018-19 artoo@artixlinux.org
# Copyright (C) 2018 Artix Linux Developers
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
. @libdir@/artools/util-base.sh
load_makepkg_config
file_to_sign="$1"
if [ ! -e "$1" ]; then
error "%s does not exist!" "$file_to_sign"
exit 1
fi
if [[ -n "${BUILDBOT_GPGP}" ]]; then
msg2 "Signing [%s]" "${file_to_sign##*/}"
gpg --batch --passphrase "${BUILDBOT_GPGP}" --detach-sign "$file_to_sign"
else
msg2 "Signing [%s] with key %s" "${file_to_sign##*/}" "${GPGKEY}..."
gpg --detach-sign --use-agent -u "${GPGKEY}" "$file_to_sign"
fi

View File

@@ -85,7 +85,7 @@ pull_tree_artix(){
sync_pkg(){ sync_pkg(){
local rsync_args=(-aWxvci --progress --delete-before --no-R --no-implied-dirs) local rsync_args=(-aWxvci --progress --delete-before --no-R --no-implied-dirs)
local src="$1" dest="$2" local src="$1" dest="$2"
msg "Sync from Arch [%s] to Artix [%s]" "${src##*archlinux/}" "${dest##*artixlinux/}"
rsync "${rsync_args[@]}" $src/ $dest/ rsync "${rsync_args[@]}" $src/ $dest/
} }
@@ -111,85 +111,21 @@ show_deps(){
} }
subrepo_new(){ subrepo_new(){
local group="${1:-$GROUP}" team="${2:-$TEAM}" cd ${TREE_DIR_ARTIX}/${GROUP}
local dest=${TREE_DIR_ARTIX}/$group/${PACKAGE}/trunk
cd ${TREE_DIR_ARTIX}/$group
msg2 "team: %s" "$team"
msg2 "group: %s" "$group"
local org=$(get_pkg_org "${PACKAGE}") local 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"
prepare_dir "$dest" prepare_dir "${TREE_DIR_ARTIX}/${GROUP}/${PACKAGE}/trunk"
commit_jenkins_files "${PACKAGE}" commit_jenkins_files "${PACKAGE}"
} }
get_group_packages(){
local pkglist="${SYSCONFDIR}/pkglist.d/$1.list"
local _space="s| ||g" _clean=':a;N;$!ba;s/\n/ /g' _com_rm="s|#.*||g"
local pkgs=($(sed "$_com_rm" "$pkglist" | sed "$_space" | sed "$_clean"))
local cases=
for p in ${pkgs[@]};do
cases=${cases:-}${cases:+|}${p}
done
echo $cases
}
get_group(){
local pkg="$1" fallback="${2##*/}" tree=
eval "case $pkg in
$(get_group_packages kernel)) tree=packages-kernel ;;
$(get_group_packages net)) tree=packages-net ;;
$(get_group_packages gfx)) tree=packages-gfx ;;
$(get_group_packages python)) tree=packages-python ;;
$(get_group_packages perl)) tree=packages-perl ;;
$(get_group_packages ruby)) tree=packages-ruby ;;
$(get_group_packages openrc)) tree=packages-openrc ;;
$(get_group_packages runit)) tree=packages-runit ;;
$(get_group_packages s6)) tree=packages-s6 ;;
$(get_group_packages media)) tree=packages-media ;;
$(get_group_packages xorg)) tree=packages-xorg ;;
$(get_group_packages qt5)) tree=packages-qt5 ;;
$(get_group_packages gtk)) tree=packages-gtk ;;
$(get_group_packages java)) tree=packages-java ;;
$(get_group_packages haskell)) tree=packages-haskell ;;
$(get_group_packages devel)) tree=packages-devel ;;
$(get_group_packages lxqt)) tree=packages-lxqt ;;
$(get_group_packages cinnamon)) tree=packages-cinnamon ;;
$(get_group_packages kde)) tree=packages-kde ;;
$(get_group_packages gnome)) tree=packages-gnome ;;
$(get_group_packages mate)) tree=packages-mate ;;
$(get_group_packages xfce)) tree=packages-xfce ;;
$(get_group_packages wm)) tree=packages-wm ;;
*) tree=$fallback ;;
esac"
echo $tree
}
get_team(){
local repo="$1" team=
case $repo in
*testing*|*staging*)
set_arch_repos false false false
team=$(find_repo "$srcpath")
team=${team%-*}
;;
*) team=${repo%-*} ;;
esac
echo $team
}
from_arch(){ from_arch(){
cd ${TREE_DIR_ARTIX} cd ${TREE_DIR_ARTIX}
@@ -197,33 +133,23 @@ from_arch(){
[[ -z $srcpath ]] && die "Package '%s' does not exist!" "${PACKAGE}" [[ -z $srcpath ]] && die "Package '%s' does not exist!" "${PACKAGE}"
local repo=$(find_repo "$srcpath") local repo=$(find_repo "$srcpath")
archpath=$srcpath/repos/$repo
local artixpath=$(find_pkg ${TREE_DIR_ARTIX} ${PACKAGE})
local tree=${srcpath%/*}
local tree=${tree##*/}
local group=$(get_group "${PACKAGE}" "$tree")
msg "repo: %s" "$repo" msg "repo: %s" "$repo"
artixpath=$artixpath/trunk
local archpath=$srcpath/repos/$repo
local artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${PACKAGE}")
show_deps "$archpath" show_deps "$archpath"
if [[ -f $artixpath/PKGBUILD ]];then if [[ -f "$artixpath"/.gitrepo ]]; then
artixpath="$artixpath"/trunk
. $artixpath/PKGBUILD 2>/dev/null if [[ -d "$artixpath" ]];then
local artixver=$(get_full_version) sync_pkg "$archpath" "$artixpath"
patch_pkg "$artixpath"
msg2 "Artix Version: %s" "$artixver" fi
else else
artixpath=${TREE_DIR_ARTIX}/$group/${PACKAGE}/trunk die "Package '%s' does not exist!" "${PACKAGE}"
subrepo_new "${group}" "$(get_team $repo)"
fi fi
msg "Sync (%s) from Arch [%s] to Artix [%s]" "${PACKAGE}" "${archpath##*archlinux/}" "${artixpath##*artixlinux/}"
sync_pkg "$archpath" "$artixpath"
patch_pkg "$artixpath"
} }
view_build(){ view_build(){
@@ -238,7 +164,7 @@ view_build(){
check_tree(){ check_tree(){
local archpath=$(find_pkg "${TREE_DIR_ARCH}" "${PACKAGE}") local archpath=$(find_pkg "${TREE_DIR_ARCH}" "${PACKAGE}")
[[ -z $archpath ]] && die "Package '%s' does not exist!" "${PACKAGE}" [[ -z $archpath ]] && die "Package '%s' does not exist!" "${PACKAGE}"
local artixpath=$(find_pkg "${TREE_DIR_ARTIX}" ${PACKAGE}) local artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${PACKAGE}")
local group=${artixpath%/*} local group=${artixpath%/*}
msg "group: %s" "${group##*/}" msg "group: %s" "${group##*/}"
@@ -289,7 +215,7 @@ usage() {
echo " -a Don't clone or pull arch repos" echo " -a Don't clone or pull arch repos"
echo " -b Don't clone or pull artix repos" echo " -b Don't clone or pull artix repos"
echo ' -i Import a package from arch repos' echo ' -i Import a package from arch repos'
echo ' -n Make new remote subrepo and clone it' echo ' -n New remote subrepo and clone it'
echo ' -v Check if a package is in the artix tree(s)' echo ' -v Check if a package is in the artix tree(s)'
echo ' -c View package depends' echo ' -c View package depends'
echo ' -x Exclude testing (only with -i)' echo ' -x Exclude testing (only with -i)'

View File

@@ -26,7 +26,11 @@ get_path(){
} }
prepare_commit(){ prepare_commit(){
local dest="$1" local dest="$1" to_rm="${2:-none}"
if [[ -d repos/$to_rm ]]; then
git rm -r repos/$to_rm
git commit -m "change of package arch"
fi
[[ -d repos/$dest ]] && git rm -r repos/$dest [[ -d repos/$dest ]] && git rm -r repos/$dest
[[ ! -d repos ]] && mkdir repos [[ ! -d repos ]] && mkdir repos
[[ ! -d repos/$dest ]] && mkdir repos/$dest [[ ! -d repos/$dest ]] && mkdir repos/$dest
@@ -101,6 +105,15 @@ commit_pkg(){
fi fi
} }
get_rm_arch(){
local rm_arch='none'
case "$CARCH" in
'any') rm_arch="${REPO_DEST}-x86_64" ;;
'x86_64') rm_arch="${REPO_DEST}-any" ;;
esac
echo $rm_arch
}
repo_commit_pkg(){ repo_commit_pkg(){
local artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${PACKAGE}") local artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${PACKAGE}")
if [[ -n ${artixpath} ]];then if [[ -n ${artixpath} ]];then
@@ -124,7 +137,7 @@ repo_commit_pkg(){
local action='add' local action='add'
local dest="${REPO_DEST}-$CARCH" local dest="${REPO_DEST}-$CARCH"
prepare_commit "$dest" prepare_commit "$dest" "$(get_rm_arch)"
cp trunk/* repos/$dest/ cp trunk/* repos/$dest/
else else
@@ -132,7 +145,7 @@ repo_commit_pkg(){
local src="${REPO_SRC}-$CARCH" dest="${REPO_DEST}-$CARCH" local src="${REPO_SRC}-$CARCH" dest="${REPO_DEST}-$CARCH"
[[ ! -f repos/$src/PKGBUILD ]] && die "%s does not exist!" "repos/$src/PKGBUILD" [[ ! -f repos/$src/PKGBUILD ]] && die "%s does not exist!" "repos/$src/PKGBUILD"
prepare_commit "$dest" prepare_commit "$dest" "$(get_rm_arch)"
cp repos/$src/* repos/$dest/ cp repos/$src/* repos/$dest/
git rm -r repos/$src git rm -r repos/$src

View File

@@ -34,29 +34,28 @@ get_pkgbasename(){
} }
add(){ add(){
packages+=("$pkg") packages+=("$pkg.$ext")
if [[ -e "${pkgfile}" ]]; then action='add'
action='add' ln -sf "${pkgfile}"{,.sig} "$repo_path"/
ln -sf "${pkgfile}"{,.sig} "$repo_path"/
fi
} }
remove(){ remove(){
packages+=("$(get_pkgbasename "$pkg")") local to_remove=$(get_pkgbasename "$pkg.$ext")
if [[ -e "$repo_path"/"$pkg" ]]; then packages+=("$to_remove")
action='remove' action='remove'
rm "$repo_path"/"$pkg" rm "$repo_path"/"$to_remove"*pkg.tar*
fi
[[ -e "$repo_path"/"$pkg".sig ]] && rm "$repo_path"/"$pkg".sig
} }
repo_action(){ repo_action(){
local packages=() action= func="$1" local packages=() action= func="$1"
for pkg in ${passfiles[@]}; do for pkgname in ${passfiles[@]}; do
if pkgfile=$(find_cached_pkgfile "$pkg");then pkg=${pkgname%.*}
msg "Found: %s" "${pkgfile}" for ext in zst xz;do
"$func" if pkgfile=$(find_cached_pkgfile "$pkg.$ext");then
fi msg "Found: %s" "${pkgfile}"
"$func"
fi
done
done done
cd $repo_path cd $repo_path
if [[ -n "$action" ]]; then if [[ -n "$action" ]]; then

View File

@@ -20,10 +20,27 @@ load_makepkg_config
passfiles="$@" passfiles="$@"
for name in ${passfiles[@]}; do sign_pkg(){
if pkgfile=$(find_cached_pkgfile "$name");then local file_to_sign="$1"
msg "Found: %s" "${pkgfile}"
[[ -e ${pkgfile}.sig ]] && rm ${pkgfile}.sig if [ ! -e "$file_to_sign" ]; then
[[ -e ${pkgfile} ]] && signfile ${pkgfile} error "%s does not exist!" "$file_to_sign"
exit 1
fi
if [[ -n "${BUILDBOT_GPGP}" ]]; then
msg "Signing [%s]" "${file_to_sign##*/}"
gpg --batch --passphrase "${BUILDBOT_GPGP}" --detach-sign "$file_to_sign"
else
msg2 "Signing [%s] with key %s" "${file_to_sign##*/}" "${GPGKEY}..."
gpg --detach-sign --use-agent -u "${GPGKEY}" "$file_to_sign"
fi
}
for pkg in ${passfiles[@]}; do
if pkgfile=$(find_cached_pkgfile "$pkg");then
msg2 "Found: %s" "${pkgfile}"
[[ -e "${pkgfile}".sig ]] && rm "${pkgfile}".sig
sign_pkg "${pkgfile}"
fi fi
done done

View File

@@ -16,10 +16,10 @@ shopt -s extglob
get_compliant_name(){ get_compliant_name(){
local gitname="$1" local gitname="$1"
case $gitname in case "$gitname" in
*+) gitname=${gitname//+/plus} *+) gitname=${gitname//+/plus}
esac esac
echo $gitname echo "$gitname"
} }
set_arch_repos(){ set_arch_repos(){
@@ -42,17 +42,16 @@ find_repo(){
find_pkg(){ find_pkg(){
local searchdir="$1" pkg="$2" local searchdir="$1" pkg="$2"
local result=$(find $searchdir -mindepth 2 -maxdepth 2 -type d -name "$pkg") local result=$(find "$searchdir" -mindepth 2 -maxdepth 2 -type d -name "$pkg")
echo $result echo "$result"
} }
find_cached_pkgfile() { find_cached_pkgfile() {
local searchdirs=("$PKGDEST" "$PWD") results=() local searchdirs=("$PKGDEST" "$PWD") results=()
local pkg="$1" local pkg="$1"
for dir in "${searchdirs[@]}"; do for dir in "${searchdirs[@]}"; do
[[ -d $dir ]] || continue [[ -d "$dir" ]] || continue
#results+=$(find "$dir" -type f -name "$pkg" ! -path '*.sig' ! -path '*.log') [[ -e "$dir/$pkg" ]] && results+=("$dir/$pkg")
[[ -e $dir/$pkg ]] && results+=($dir/$pkg)
done done
case ${#results[*]} in case ${#results[*]} in
0) 0)