Compare commits

...

8 Commits

Author SHA1 Message Date
231d054ee9 remove useless param in get_full_version() calls 2019-08-23 20:24:26 +02:00
2945493eb7 use var 2019-08-23 20:23:42 +02:00
0f037f1106 finddeps: colorize 2019-08-23 19:45:59 +02:00
6c4197e76d buildtree: enhance check mode 2019-08-22 16:42:38 +02:00
8ebdad278e buildtree: rm args in funcs 2019-08-22 14:18:37 +02:00
2bacf6d19e deploypkg: fix remove in file mode 2019-08-19 23:07:48 +02:00
6700e1a2e6 Merge branch 'deploy' of artix/artools into master 2019-08-19 14:57:15 +02:00
f874c8c399 buildpkg: add a rebuild option
deploypkg: add option to pass filenames
2019-08-18 21:47:27 +02:00
8 changed files with 169 additions and 64 deletions

View File

@@ -20,6 +20,7 @@ load_user_info
load_config "${USERCONFDIR}/artools/artools.conf" || load_config "${SYSCONFDIR}/artools.conf" load_config "${USERCONFDIR}/artools/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
create_first=false create_first=false
rebuild=false
mkchrootpkg_args=(-c -n) mkchrootpkg_args=(-c -n)
@@ -27,22 +28,11 @@ cmd=${0##*/}
repo=${cmd#*-} repo=${cmd#*-}
base_devel=('base-devel') base_devel=('base-devel')
case ${repo} in
system|world|galaxy) repo='default' ;;
lib32*) base_devel+=('multilib-devel') ;;
galaxy-gremlins|galaxy-goblins) repo=${repo#*-} ;;
esac
pacman_conf="${DATADIR}/pacman-${repo}.conf"
[[ -f ${USERCONFDIR}/artools/pacman-${repo}.conf ]] && pacman_conf="${USERCONFDIR}/artools/pacman-${repo}.conf"
makepkg_conf="${DATADIR}/makepkg.conf"
[[ -f ${USERCONFDIR}/artools/makepkg.conf ]] && makepkg_conf="${USERCONFDIR}/artools/makepkg.conf"
usage() { usage() {
echo "Usage: ${0##*/} [options] -- [mkchrootpkg_args]" echo "Usage: ${0##*/} [options] -- [mkchrootpkg_args]"
echo " -r <dir> Create chroots in this directory" echo " -r <dir> Create chroots in this directory"
echo ' -c Recreate the chroot before building' echo ' -c Recreate the chroot before building'
echo ' -m Major rebuild'
echo ' -h This help' echo ' -h This help'
echo '' echo ''
echo "Default mkchrootpkg_args args: ${mkchrootpkg_args[*]}" echo "Default mkchrootpkg_args args: ${mkchrootpkg_args[*]}"
@@ -52,17 +42,34 @@ usage() {
orig_argv=("$0" "$@") orig_argv=("$0" "$@")
opts='hcr:' opts='hcmr:'
while getopts "${opts}" arg; do while getopts "${opts}" arg; do
case "${arg}" in case "${arg}" in
r) CHROOTS_PKG="$OPTARG" ;; r) CHROOTS_PKG="$OPTARG" ;;
c) create_first=true ;; c) create_first=true ;;
m) rebuild=true ;;
h|?) usage 0 ;; h|?) usage 0 ;;
*) echo "invalid argument '%s'" "${arg}"; usage 1 ;; *) echo "invalid argument '%s'" "${arg}"; usage 1 ;;
esac esac
done done
if ${rebuild};then
repo='default'
else
case ${repo} in
system|world|galaxy) repo='default' ;;
lib32*) base_devel+=('multilib-devel') ;;
galaxy-gremlins|galaxy-goblins) repo=${repo#*-} ;;
esac
fi
pacman_conf="${DATADIR}/pacman-${repo}.conf"
[[ -f ${USERCONFDIR}/artools/pacman-${repo}.conf ]] && pacman_conf="${USERCONFDIR}/artools/pacman-${repo}.conf"
makepkg_conf="${DATADIR}/makepkg.conf"
[[ -f ${USERCONFDIR}/artools/makepkg.conf ]] && makepkg_conf="${USERCONFDIR}/artools/makepkg.conf"
check_root SOURCE_DATE_EPOCH check_root SOURCE_DATE_EPOCH
mkchrootpkg_args+=("${@:$OPTIND}") mkchrootpkg_args+=("${@:$OPTIND}")

View File

@@ -58,7 +58,7 @@ show_deps(){
[[ $arch == 'any' ]] && CARCH=any [[ $arch == 'any' ]] && CARCH=any
local archver=$(get_full_version $pkg) local archver=$(get_full_version)
msg2 "repo: %s" "$repo" msg2 "repo: %s" "$repo"
[[ -n ${pkgbase} ]] && msg2 "pkgbase: %s" "${pkgbase}" [[ -n ${pkgbase} ]] && msg2 "pkgbase: %s" "${pkgbase}"
@@ -74,19 +74,22 @@ show_deps(){
} }
from_arch(){ from_arch(){
local pkg="$1" src= dest= local src= dest=
local git_tree_arch=$(find_tree "${TREE_DIR_ARCH}" "$pkg")
[[ -z $git_tree_arch ]] && die "Package '%s' does not exist!" "$pkg"
local package=${TREE_DIR_ARCH}/$git_tree_arch/$pkg cd ${TREE_DIR_ARTIX}
local git_tree_arch=$(find_tree "${TREE_DIR_ARCH}" "${PACKAGE}")
[[ -z $git_tree_arch ]] && die "Package '%s' does not exist!" "${PACKAGE}"
local package=${TREE_DIR_ARCH}/$git_tree_arch/${PACKAGE}
local repo=$(find_repo "$package" "${staging}" "${unstable}") local repo=$(find_repo "$package" "${staging}" "${unstable}")
src=$package/repos/$repo src=$package/repos/$repo
local git_tree_artix=$(find_tree "${TREE_DIR_ARTIX}" "$pkg") local git_tree_artix=$(find_tree "${TREE_DIR_ARTIX}" "${PACKAGE}")
local tree_dir=$(get_artix_tree "$pkg" "$git_tree_artix" "$git_tree_arch") local tree_dir=$(get_artix_tree "${PACKAGE}" "$git_tree_artix" "$git_tree_arch")
dest=${TREE_DIR_ARTIX}/$tree_dir/$pkg/trunk dest=${TREE_DIR_ARTIX}/$tree_dir/${PACKAGE}/trunk
msg "tree: %s" "$tree_dir" msg "tree: %s" "$tree_dir"
show_deps "$src" "$repo" show_deps "$src" "$repo"
@@ -96,25 +99,25 @@ from_arch(){
cd ${TREE_DIR_ARTIX}/$git_tree_artix cd ${TREE_DIR_ARTIX}/$git_tree_artix
. $dest/PKGBUILD 2>/dev/null . $dest/PKGBUILD 2>/dev/null
local artixver=$(get_full_version $pkg) local artixver=$(get_full_version)
msg2 "Artix Version: %s" "$artixver" msg2 "Artix Version: %s" "$artixver"
else else
subrepo_new "$pkg" "$tree_dir" "$git_tree_arch" subrepo_new "${PACKAGE}" "$tree_dir" "$git_tree_arch"
fi fi
msg "Sync (%s) from [%s] to [%s]" "$pkg" "$git_tree_arch" "$tree_dir" msg "Sync (%s) from [%s] to [%s]" "${PACKAGE}" "$git_tree_arch" "$tree_dir"
sync_pkg "$src" "$dest" sync_pkg "$src" "$dest"
patch_pkg "$pkg" patch_pkg "${PACKAGE}"
} }
view_build(){ view_build(){
local pkg="$1" src= local src=
local git_tree_arch=$(find_tree "${TREE_DIR_ARCH}" "$pkg") local git_tree_arch=$(find_tree "${TREE_DIR_ARCH}" "${PACKAGE}")
[[ -z $git_tree_arch ]] && die "Package '%s' does not exist!" "$pkg" [[ -z $git_tree_arch ]] && die "Package '%s' does not exist!" "${PACKAGE}"
local pkg_path=${TREE_DIR_ARCH}/$git_tree_arch/$pkg local pkg_path=${TREE_DIR_ARCH}/$git_tree_arch/${PACKAGE}
local repo=$(find_repo "$pkg_path" "${staging}" "${unstable}") local repo=$(find_repo "$pkg_path" "${staging}" "${unstable}")
src=$pkg_path/repos/$repo src=$pkg_path/repos/$repo
@@ -122,6 +125,16 @@ view_build(){
show_deps "$src" "$repo" show_deps "$src" "$repo"
} }
check_tree(){
local git_tree_arch=$(find_tree "${TREE_DIR_ARCH}" "${PACKAGE}")
[[ -z $git_tree_arch ]] && die "Package '%s' does not exist!" "${PACKAGE}"
local git_tree_artix=$(find_tree "${TREE_DIR_ARTIX}" "${PACKAGE}")
local tree_dir=$(get_artix_tree "${PACKAGE}" "$git_tree_artix" "$git_tree_arch")
msg "tree_dir: %s" "$tree_dir"
[[ -z $git_tree_artix ]] && msg2 "exists: %s" "no"
[[ -n $git_tree_artix ]] && msg2 "exists: %s" "yes"
}
sync_repos(){ sync_repos(){
${sync_arch} && pull_tree_arch ${sync_arch} && pull_tree_arch
if ${sync_artix};then if ${sync_artix};then
@@ -133,6 +146,25 @@ sync_repos(){
fi fi
} }
subrepo_new(){
local dest=${TREE_DIR_ARTIX}/${GROUP}/${PACKAGE}/trunk
cd ${TREE_DIR_ARTIX}/${GROUP}
local org=$(get_pkg_org "${PACKAGE}")
create_repo "${PACKAGE}" "$org"
add_repo_to_team "${PACKAGE}" "$org" "${TEAM:-$GROUP}"
subrepo_clone "${PACKAGE}" "$org"
prepare_dir "$dest"
commit_jenkins_files "${PACKAGE}"
}
load_user_info load_user_info
load_config "${USERCONFDIR}/artools/artools.conf" || load_config "${SYSCONFDIR}/artools.conf" load_config "${USERCONFDIR}/artools/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
@@ -149,6 +181,7 @@ conf=false
unstable=false unstable=false
staging=true staging=true
sync_group=false sync_group=false
check=false
PACKAGE='' PACKAGE=''
@@ -169,7 +202,8 @@ usage() {
echo ' -n Make new remote subrepo and clone it' echo ' -n Make new remote subrepo and clone it'
echo ' -u Include kde & gnome unstable (only with -i)' echo ' -u Include kde & gnome unstable (only with -i)'
echo ' -w Exclude staging (only with -i)' echo ' -w Exclude staging (only with -i)'
echo ' -v View package depends' echo ' -v Check if a package is in the artix tree(s)'
echo ' -c View package depends'
echo ' -h This help' echo ' -h This help'
echo '' echo ''
echo '' echo ''
@@ -178,7 +212,7 @@ usage() {
orig_argv=("$0" "$@") orig_argv=("$0" "$@")
opts='p:t:g:uwsinzyvh' opts='p:t:g:uwsinzycvh'
while getopts "${opts}" arg; do while getopts "${opts}" arg; do
case "${arg}" in case "${arg}" in
@@ -192,6 +226,7 @@ while getopts "${opts}" arg; do
n) createnew=true ;; n) createnew=true ;;
w) staging=false ;; w) staging=false ;;
u) unstable=true ;; u) unstable=true ;;
c) check=true ;;
v) view=true ;; v) view=true ;;
h|?) usage 0 ;; h|?) usage 0 ;;
*) echo "invalid argument '${arg}'"; usage 1 ;; *) echo "invalid argument '${arg}'"; usage 1 ;;
@@ -205,8 +240,10 @@ prepare_dir "${TREE_DIR_ARCH}"
${sync} && sync_repos ${sync} && sync_repos
${view} && view_build "${PACKAGE}" ${view} && view_build
${import} && from_arch "${PACKAGE}" ${check} && check_tree
${createnew} && subrepo_new "${PACKAGE}" "${GROUP}" "${TEAM}" ${import} && from_arch
${createnew} && subrepo_new

View File

@@ -43,7 +43,7 @@ TEMPDIR=$(mktemp -d --tmpdir checkpkg-script.XXXX)
for _pkgname in "${pkgname[@]}"; do for _pkgname in "${pkgname[@]}"; do
comparepkg=$_pkgname comparepkg=$_pkgname
pkgurl= pkgurl=
target_pkgver=$(get_full_version "$_pkgname") target_pkgver=$(get_full_version)
if ! pkgfile=$(find_cached_package "$_pkgname" "$target_pkgver" "$CARCH"); then if ! pkgfile=$(find_cached_package "$_pkgname" "$target_pkgver" "$CARCH"); then
die 'tarball not found for package: %s' "${_pkgname}-$target_pkgver" die 'tarball not found for package: %s' "${_pkgname}-$target_pkgver"
fi fi

View File

@@ -18,14 +18,14 @@
compare(){ compare(){
local pkgpath="$1" group="$2" local pkgpath="$1" group="$2"
local pkg=${pkgpath##*/} local pkg=${pkgpath##*/}
local artixrepo=$(find_repo "$package" "${staging}" "${unstable}") local artixrepo=$(find_repo "$pkgpath" "${staging}" "${unstable}")
local artixshow=${artixrepo%-*} local artixshow=${artixrepo%-*}
local pkgbuild=$pkgpath/repos/$artixrepo/PKGBUILD local pkgbuild=$pkgpath/repos/$artixrepo/PKGBUILD
if [[ -f $pkgbuild ]];then if [[ -f $pkgbuild ]];then
. $pkgbuild 2>/dev/null . $pkgbuild 2>/dev/null
local artixver=$(get_full_version $pkg) local artixver=$(get_full_version)
local archpath=$(get_import_path $pkg) local archpath=$(get_import_path $pkg)
@@ -36,7 +36,7 @@ compare(){
if [[ -f $pkgbuild ]];then if [[ -f $pkgbuild ]];then
. $pkgbuild 2>/dev/null . $pkgbuild 2>/dev/null
local archver=$(get_full_version $pkg) local archver=$(get_full_version)
fi fi
local result=$(vercmp "$artixver" "$archver") local result=$(vercmp "$artixver" "$archver")
@@ -101,7 +101,7 @@ check_db(){
if [[ -f $pkgbuild ]];then if [[ -f $pkgbuild ]];then
. $pkgbuild 2>/dev/null . $pkgbuild 2>/dev/null
local artixver=$(get_full_version $pkg) local artixver=$(get_full_version)
local is_entry=false local is_entry=false
for name in ${pkgname[@]};do for name in ${pkgname[@]};do

View File

@@ -15,6 +15,79 @@
. @libdir@/artools/util-base.sh . @libdir@/artools/util-base.sh
. @libdir@/artools/util-pkg.sh . @libdir@/artools/util-pkg.sh
find_cached_pkgfile() {
local searchdirs=("$PKGDEST" "$PWD") results=()
local pkg="$1"
for dir in "${searchdirs[@]}"; do
[[ -d $dir ]] || continue
results+=$(find "$dir" -type f -name "$pkg")
done
case ${#results[*]} in
0)
return 1
;;
1)
printf '%s\n' "${results[0]}"
return 0
;;
*)
error 'Multiple packages found:'
printf '\t%s\n' "${results[@]}" >&2
return 1
;;
esac
}
get_pkgbasename(){
local pkg="$1"
local pkgbasename name ver rel arch
pkgbasename=${pkg%.pkg.tar.?z}
arch=${pkgbasename##*-}
pkgbasename=${pkgbasename%-"$arch"}
rel=${pkgbasename##*-}
pkgbasename=${pkgbasename%-"$rel"}
ver=${pkgbasename##*-}
name=${pkgbasename%-"$ver"}
echo $name
}
update_repo2(){
local repo="$1"
local repo_path=${REPOS_ROOT}/$repo/os/${ARCH} packages=()
for name in ${passfiles[@]}; do
if pkgfile=$(find_cached_pkgfile "$name");then
info "Found: %s" "$name"
if ${add_pkg};then
local action='add'
packages+=("$name")
# checkpkg "${pkgfile}" || return 2
if ${sign_pkg};then
[[ -e ${pkgfile}.sig ]] && rm ${pkgfile}.sig
signfile ${pkgfile}
fi
ln -sf ${pkgfile}{,.sig} $repo_path/
elif ${del_pkg};then
local action='remove'
packages+=("$(get_pkgbasename "$name")")
[[ -e $repo_path/$name ]] && rm $repo_path/$name
[[ -e $repo_path/$name.sig ]] && rm $repo_path/$name.sig
fi
fi
done
cd $repo_path
if [[ -n $action ]]; then
repo-$action -R $repo.${PKGDBEXT} ${packages[@]}
${linksdb} && links-$action $repo.${LINKSDBEXT} ${packages[@]}
fi
return 0
}
update_repo(){ update_repo(){
local repo="$1" pkgfile ver local repo="$1" pkgfile ver
local repo_path=${REPOS_ROOT}/$repo/os/${ARCH} packages=() local repo_path=${REPOS_ROOT}/$repo/os/${ARCH} packages=()
@@ -29,7 +102,7 @@ update_repo(){
for name in ${pkgsearch[@]}; do for name in ${pkgsearch[@]}; do
pkgarch=$(get_pkg_arch "$name") pkgarch=$(get_pkg_arch "$name")
ver=$(get_full_version "$name") ver=$(get_full_version)
if pkgfile=$(find_cached_package "$name" "$ver" "$pkgarch");then if pkgfile=$(find_cached_package "$name" "$ver" "$pkgarch");then
local pkg=${pkgfile##*/} local pkg=${pkgfile##*/}
info "Found: %s" "$pkg" info "Found: %s" "$pkg"
@@ -100,6 +173,12 @@ done
shift $(($OPTIND - 1)) shift $(($OPTIND - 1))
passfiles="$@"
prepare_dir "${REPOS_ROOT}" prepare_dir "${REPOS_ROOT}"
update_repo "${dest_repo}" if [[ -n ${passfiles[@]} ]]; then
update_repo2 "${dest_repo}"
else
update_repo "${dest_repo}"
fi

View File

@@ -33,17 +33,18 @@ find . -type d -print0 2>/dev/null| while read -r -d '' d; do
for dep in "${depends[@]}"; do for dep in "${depends[@]}"; do
# lose the version comparator, if any # lose the version comparator, if any
depname=${dep%%[<>=]*} depname=${dep%%[<>=]*}
[[ $depname = "$match" ]] && echo "$d (depends)" [[ $depname = "$match" ]] && msg "$d (depends)"
done done
for dep in "${makedepends[@]}"; do for dep in "${makedepends[@]}"; do
# lose the version comparator, if any # lose the version comparator, if any
depname=${dep%%[<>=]*} depname=${dep%%[<>=]*}
[[ $depname = "$match" ]] && echo "$d (makedepends)" [[ $depname = "$match" ]] && msg "$d (makedepends)"
done done
for dep in "${optdepends[@]/:*}"; do for dep in "${optdepends[@]/:*}"; do
# lose the version comaparator, if any # lose the version comaparator, if any
depname=${dep%%[<>=]*} depname=${dep%%[<>=]*}
[[ $depname = "$match" ]] && echo "$d (optdepends)" [[ $depname = "$match" ]] && msg "$d (optdepends)"
done done
fi fi
done done

View File

@@ -139,22 +139,3 @@ config_tree(){
fi fi
cd .. cd ..
} }
subrepo_new(){
local pkg="$1" tree="$2" team="${3:-$2}"
local dest=${TREE_DIR_ARTIX}/$tree/$pkg/trunk
cd ${TREE_DIR_ARTIX}/$tree
local org=$(get_pkg_org "$pkg")
create_repo "$pkg" "$org"
add_repo_to_team "$pkg" "$org" "$team"
subrepo_clone "$pkg" "$org"
prepare_dir "$dest"
commit_jenkins_files "$pkg"
}

View File

@@ -109,7 +109,7 @@ find_repo(){
local pkg="$1" stag="$2" unst="$3" repo= local pkg="$1" stag="$2" unst="$3" repo=
for r in $(arch_repos "$stag" "$unst");do for r in $(arch_repos "$stag" "$unst");do
[[ -f $pkg/repos/$r-x86_64/PKGBUILD ]] && repo=$r-x86_64 [[ -f $pkg/repos/$r-${ARCH}/PKGBUILD ]] && repo=$r-${ARCH}
[[ -f $pkg/repos/$r-any/PKGBUILD ]] && repo=$r-any [[ -f $pkg/repos/$r-any/PKGBUILD ]] && repo=$r-any
done done
echo $repo echo $repo