Compare commits
	
		
			11 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 08b73032a2 | |||
| 46431619f2 | |||
| 12d2159c12 | |||
| 3865ceab58 | |||
| 890e631e1b | |||
| 273e928905 | |||
| f5c328f8e5 | |||
| 4089151791 | |||
| 211579f9d7 | |||
| 2a85209e1e | |||
| 40d691bc85 | 
| @@ -147,7 +147,7 @@ elif [[ $(cat "$working_dir/.artools") != ${CHROOTVERSION} ]]; then | ||||
|     die "chroot '%s' is not at version %s. Please rebuild." "$working_dir" "${CHROOTVERSION}" | ||||
| fi | ||||
|  | ||||
| sync_host_localtime | ||||
| #sync_host_localtime | ||||
|  | ||||
| chroot_api_mount "${working_dir}" || die "failed to setup API filesystems in chroot %s" "${working_dir}" | ||||
|  | ||||
|   | ||||
| @@ -17,32 +17,38 @@ | ||||
| prepare_artools | ||||
|  | ||||
| patch_pkg(){ | ||||
|     local pkg="$1" | ||||
|     local pkgpath="$1" | ||||
|     local pkg=${pkgpath%/*} | ||||
|     pkg=${pkg##*/} | ||||
|     case $pkg in | ||||
|         glibc) | ||||
|             msg2 "Patching %s" "$pkg" | ||||
|             sed -e 's|{locale,systemd/system,tmpfiles.d}|{locale,tmpfiles.d}|' \ | ||||
|                 -e '/nscd.service/d' \ | ||||
|                 -i $pkg/PKGBUILD | ||||
|                 -i $pkgpath/PKGBUILD | ||||
|         ;; | ||||
|         linux|linux-lts) | ||||
|             sed -e 's|KBUILD_BUILD_HOST=.*|KBUILD_BUILD_HOST=artixlinux|' -i $pkg/PKGBUILD | ||||
|             msg2 "Patching %s" "$pkg" | ||||
|             sed -e 's|KBUILD_BUILD_HOST=.*|KBUILD_BUILD_HOST=artixlinux|' -i $pkgpath/PKGBUILD | ||||
|             sed -e 's|CONFIG_DEFAULT_HOSTNAME=.*|CONFIG_DEFAULT_HOSTNAME="artixlinux"|' \ | ||||
|                 -i $pkg/config | ||||
|                 -i $pkgpath/config | ||||
|         ;; | ||||
|         bash) | ||||
|             msg2 "Patching %s" "$pkg" | ||||
|             sed -e 's|system.bash_logout)|system.bash_logout artix.bashrc)|' \ | ||||
|             -e "s|etc/bash.|etc/bash/|g" \ | ||||
|             -e 's|"$pkgdir/etc/skel/.bash_logout"|"$pkgdir/etc/skel/.bash_logout"\n  install -Dm644 artix.bashrc $pkgdir/etc/bash/bashrc.d/artix.bashrc|' \ | ||||
|             -i $pkg/PKGBUILD | ||||
|             cd $pkg | ||||
|             -i $pkgpath/PKGBUILD | ||||
|             cd $pkgpath | ||||
|                 patch -Np 1 -i ${DATADIR}/patches/artix-bash.patch | ||||
|                 updpkgsums | ||||
|             cd ../.. | ||||
|         ;; | ||||
|         gstreamer|gst-plugins-*|licenses) | ||||
|             msg2 "Patching %s" "$pkg" | ||||
|             sed -e 's|https://www.archlinux.org/|https://www.artixlinux.org/|' \ | ||||
|                 -e 's|(Arch Linux)|(Artix Linux)|' \ | ||||
|                 -i $pkg/PKGBUILD | ||||
|                 -i $pkgpath/PKGBUILD | ||||
|         ;; | ||||
|     esac | ||||
| } | ||||
| @@ -126,13 +132,71 @@ subrepo_new(){ | ||||
|     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(){ | ||||
|     cd ${TREE_DIR_ARTIX} | ||||
|  | ||||
|     local srcpath=$(find_pkg "${TREE_DIR_ARCH}" "${PACKAGE}") | ||||
|     [[ -z $srcpath ]] && die "Package '%s' does not exist!" "${PACKAGE}" | ||||
|  | ||||
|     local repo=$(find_repo "$srcpath" "${testing}" "${staging}" "${unstable}") | ||||
|     local repo=$(find_repo "$srcpath") | ||||
|  | ||||
|     archpath=$srcpath/repos/$repo | ||||
|     local artixpath=$(find_pkg ${TREE_DIR_ARTIX} ${PACKAGE}) | ||||
| @@ -153,7 +217,7 @@ from_arch(){ | ||||
|         msg2 "Artix Version: %s" "$artixver" | ||||
|     else | ||||
|         artixpath=${TREE_DIR_ARTIX}/$group/${PACKAGE}/trunk | ||||
|         subrepo_new "${group}" "${repo%-*}" | ||||
|         subrepo_new "${group}" "$(get_team $repo)" | ||||
|     fi | ||||
|  | ||||
|     msg "Sync (%s) from Arch [%s] to Artix [%s]" "${PACKAGE}" "${archpath##*archlinux/}" "${artixpath##*artixlinux/}" | ||||
| @@ -165,7 +229,7 @@ from_arch(){ | ||||
| view_build(){ | ||||
|     local archpath=$(find_pkg "${TREE_DIR_ARCH}" "${PACKAGE}") | ||||
|     [[ -z $archpath ]] && die "Package '%s' does not exist!" "${PACKAGE}" | ||||
|     local repo=$(find_repo "${archpath}" "${testing}" "${staging}" "${unstable}") | ||||
|     local repo=$(find_repo "${archpath}") | ||||
|     archpath=$archpath/repos/$repo | ||||
|     msg2 "repo: %s" "$repo" | ||||
|     show_deps "$archpath" | ||||
| @@ -195,16 +259,16 @@ sync_repos(){ | ||||
|  | ||||
| load_makepkg_config | ||||
|  | ||||
| testing=true | ||||
| staging=true | ||||
| unstable=false | ||||
|  | ||||
| sync=false | ||||
| sync_arch=true | ||||
| sync_artix=true | ||||
| import=false | ||||
| view=false | ||||
| createnew=false | ||||
| conf=false | ||||
| unstable=false | ||||
| staging=true | ||||
| testing=true | ||||
| sync_group=false | ||||
| check=false | ||||
|  | ||||
| @@ -222,15 +286,15 @@ usage() { | ||||
|     echo '    -g <group>    Group name, the superrepo (only with -n or -s)' | ||||
|     echo "                  [default: ${GROUP}]" | ||||
|     echo "    -s            Clone or pull repos" | ||||
|     echo "    -z            Don't clone or pull arch repos" | ||||
|     echo "    -y            Don't clone or pull artix repos" | ||||
|     echo "    -a            Don't clone or pull arch repos" | ||||
|     echo "    -b            Don't clone or pull artix repos" | ||||
|     echo '    -i            Import a package from arch repos' | ||||
|     echo '    -n            Make new remote subrepo and clone it' | ||||
|     echo '    -u            Include kde & gnome unstable (only with -i)' | ||||
|     echo '    -w            Exclude staging (only with -i)' | ||||
|     echo '    -x            Exclude testing (only with -i)' | ||||
|     echo '    -v            Check if a package is in the artix tree(s)' | ||||
|     echo '    -c            View package depends' | ||||
|     echo '    -x            Exclude testing (only with -i)' | ||||
|     echo '    -y            Exclude staging (only with -i)' | ||||
|     echo '    -z            Include kde & gnome unstable (only with -i)' | ||||
|     echo '    -h            This help' | ||||
|     echo '' | ||||
|     echo '' | ||||
| @@ -239,7 +303,7 @@ usage() { | ||||
|  | ||||
| orig_argv=("$0" "$@") | ||||
|  | ||||
| opts='p:t:g:uwsinxzycvh' | ||||
| opts='p:t:g:sinabcvxyzh' | ||||
|  | ||||
| while getopts "${opts}" arg; do | ||||
|     case "${arg}" in | ||||
| @@ -247,15 +311,15 @@ while getopts "${opts}" arg; do | ||||
|         t) TEAM="$OPTARG" ;; | ||||
|         g) GROUP="$OPTARG"; sync_group=true ;; | ||||
|         s) sync=true ;; | ||||
|         z) sync_arch=false ;; | ||||
|         y) sync_artix=false ;; | ||||
|         a) sync_arch=false ;; | ||||
|         b) sync_artix=false ;; | ||||
|         i) import=true ;; | ||||
|         n) createnew=true ;; | ||||
|         w) staging=false ;; | ||||
|         x) testing=false ;; | ||||
|         u) unstable=true ;; | ||||
|         c) check=true ;; | ||||
|         v) view=true ;; | ||||
|         x) testing=false ;; | ||||
|         y) staging=false ;; | ||||
|         z) unstable=true ;; | ||||
|         h|?) usage 0 ;; | ||||
|         *) echo "invalid argument '${arg}'"; usage 1 ;; | ||||
|     esac | ||||
| @@ -266,6 +330,8 @@ shift $(($OPTIND - 1)) | ||||
| prepare_dir "${TREE_DIR_ARTIX}" | ||||
| prepare_dir "${TREE_DIR_ARCH}" | ||||
|  | ||||
| set_arch_repos "$testing" "$staging" "$unstable" | ||||
|  | ||||
| ${sync} && sync_repos | ||||
|  | ||||
| ${view} && view_build | ||||
|   | ||||
| @@ -161,6 +161,18 @@ repo_commit_pkg(){ | ||||
|     fi | ||||
| } | ||||
|  | ||||
| is_valid_repo(){ | ||||
|     local src="$1" cases= | ||||
|     set_arch_repos true true true | ||||
|     for r in ${ARCH_REPOS[@]};do | ||||
|         cases=${cases:-}${cases:+|}${r} | ||||
|     done | ||||
|     eval "case $src in | ||||
|         ${cases}|trunk) return 0 ;; | ||||
|         *) return 1 ;; | ||||
|     esac" | ||||
| } | ||||
|  | ||||
| load_makepkg_config | ||||
|  | ||||
| REPO_SRC='trunk' | ||||
|   | ||||
| @@ -26,8 +26,9 @@ get_import_path(){ | ||||
| } | ||||
|  | ||||
| compare_m(){ | ||||
|     local result=$(vercmp "$artixver" "$archver") | ||||
|     local artixver="$1" artixrepo="$2" archver="$3" archrepo="$4" | ||||
|  | ||||
|     local result=$(vercmp "$artixver" "$archver") | ||||
|     if [[ $artixrepo == *testing* ]] || [[ $artixrepo == *staging* ]]; then | ||||
|         if [[ "$archrepo" == "$artixrepo"  ]]; then | ||||
|             msg_row "${table}" "${archrepo%-*}" "${artixrepo%-*}" "$pkg" "$archver" "$artixver" "${group#*-}" | ||||
| @@ -42,8 +43,9 @@ compare_m(){ | ||||
| } | ||||
|  | ||||
| compare_u(){ | ||||
|     local result=$(vercmp "$artixver" "$archver") | ||||
|     local artixver="$1" artixrepo="$2" archver="$3" archrepo="$4" | ||||
|  | ||||
|     local result=$(vercmp "$artixver" "$archver") | ||||
|     if [ $result -eq -1 ];then | ||||
|         msg_row_upgrade "${table}" "${archrepo%-*}" "${artixrepo%-*}" "$pkg" "$archver" "$artixver" "${group#*-}" | ||||
|         printf "%s\n" "${archrepo%-*}:$pkg" >> ${TREE_DIR_ARTIX}/pkg_upgrades.list | ||||
| @@ -51,8 +53,9 @@ compare_u(){ | ||||
| } | ||||
|  | ||||
| compare_d(){ | ||||
|     local result=$(vercmp "$artixver" "$archver") | ||||
|     local artixver="$1" artixrepo="$2" archver="$3" archrepo="$4" | ||||
|  | ||||
|     local result=$(vercmp "$artixver" "$archver") | ||||
|     if [ $result -eq 1 ];then | ||||
|         if [[ -n "$archver" ]] && [[ -n "$archrepo" ]];then | ||||
|             msg_row_downgrade "${table}" "${archrepo%-*}" "${artixrepo%-*}" "$pkg" "$archver" "$artixver" "${group#*-}" | ||||
| @@ -65,7 +68,7 @@ pre_compare(){ | ||||
|     local group="${pkgpath%/*}" | ||||
|     group=${group##*/} | ||||
|     local pkg=${pkgpath##*/} | ||||
|     local artixrepo=$(find_repo "$pkgpath" "${testing}" "${staging}" "${unstable}") | ||||
|     local artixrepo=$(find_repo "$pkgpath") | ||||
|     local pkgbuild=$pkgpath/repos/$artixrepo/PKGBUILD | ||||
|  | ||||
|     if [[ -f $pkgbuild ]];then | ||||
| @@ -73,7 +76,7 @@ pre_compare(){ | ||||
|         local artixver=$(get_full_version) | ||||
|  | ||||
|         local archpath=$(get_import_path $pkg) | ||||
|         local archrepo=$(find_repo "${archpath}" "${testing}" "${staging}" "${unstable}") | ||||
|         local archrepo=$(find_repo "${archpath}") | ||||
|         pkgbuild=$archpath/repos/$archrepo/PKGBUILD | ||||
|  | ||||
|         if [[ -f "$pkgbuild" ]];then | ||||
| @@ -155,7 +158,6 @@ query_db() { | ||||
|                 read -r match | ||||
|                 pkg=${pkg#${db}} | ||||
|                 pkg="${pkg%/*}" | ||||
|  | ||||
|                 msg_row "${tableQ}" "${repo}" "${pkg}" "${match}" | ||||
|             done < <(grep -rZ "${library}" "${db}") | sort -u | ||||
|         fi | ||||
| @@ -182,9 +184,7 @@ check_db(){ | ||||
|     local pkg=${pkgpath##*/} | ||||
|     local sarch=(any ${ARCH}) | ||||
|  | ||||
|     local repos=$(arch_repos "${testing}" "${staging}" "${unstable}") | ||||
|  | ||||
|     for repo in ${repos[@]};do | ||||
|     for repo in ${ARCH_REPOS[@]};do | ||||
|         for a in ${sarch[@]};do | ||||
|  | ||||
|             local pkgbuild=$pkgpath/repos/$repo-$a/PKGBUILD | ||||
| @@ -221,21 +221,40 @@ db_cache_dir="${XDG_CACHE_HOME:-$USER_HOME/.cache}/artools" | ||||
|  | ||||
| load_makepkg_config | ||||
|  | ||||
| unstable=false | ||||
| testing=true | ||||
| staging=true | ||||
| unstable=false | ||||
|  | ||||
| upgrades=false | ||||
| downgrades=false | ||||
| move=false | ||||
| check=false | ||||
|  | ||||
| sync=false | ||||
| check=false | ||||
| query=false | ||||
| testing=true | ||||
|  | ||||
| readonly table="%-18s %-18s %-25s %-27s %-27s %-10s" | ||||
| readonly tableU="%-20s %-35s %-30s %-10s" | ||||
| readonly tableQ="%-20s %-45s %s" | ||||
|  | ||||
| declare -A REPOS=( | ||||
|     [core]=system | ||||
|     [extra]=world | ||||
|     [community]=galaxy | ||||
|     [multilib]=lib32 | ||||
|     [testing]=gremlins | ||||
|     [staging]=goblins | ||||
|     [community-testing]=galaxy-gremlins | ||||
|     [community-staging]=galaxy-goblins | ||||
|     [multilib-testing]=lib32-gremlins | ||||
|     [multilib-staging]=lib32-goblins | ||||
|     [kde-unstable]=kde-wobble | ||||
|     [gnome-unstable]=gnome-wobble | ||||
| ) | ||||
|  | ||||
| searchrepos=( | ||||
|     ${REPOS[kde-unstable]} | ||||
|     ${REPOS[gnome-unstable]} | ||||
|     ${REPOS[staging]} | ||||
|     ${REPOS[testing]} | ||||
|     ${REPOS[core]} | ||||
| @@ -246,8 +265,6 @@ searchrepos=( | ||||
|     ${REPOS[multilib-staging]} | ||||
|     ${REPOS[multilib-testing]} | ||||
|     ${REPOS[multilib]} | ||||
|     ${REPOS[kde-unstable]} | ||||
|     ${REPOS[gnome-unstable]} | ||||
| ) | ||||
|  | ||||
| usage() { | ||||
| @@ -255,11 +272,11 @@ usage() { | ||||
|     echo '    -u            Show upgrade packages' | ||||
|     echo '    -d            Show downgrade packages' | ||||
|     echo '    -m            Show packages to move' | ||||
|     echo "    -z            Don't inlcude testing packages" | ||||
|     echo "    -x            Don't inlcude staging packages" | ||||
|     echo '    -y            Include unstable kde and gnome' | ||||
|     echo '    -c            Check repos' | ||||
|     echo "    -x            Don't inlcude testing packages" | ||||
|     echo "    -y            Don't inlcude staging packages" | ||||
|     echo '    -z            Include unstable kde and gnome' | ||||
|     echo "    -s            Sync repo databases" | ||||
|     echo '    -c            Check repos' | ||||
|     echo "    -q            Query repo databases for so libs" | ||||
|     echo '    -r <repo>     Repo name to query' | ||||
|     echo '                  [default: all]' | ||||
| @@ -271,20 +288,20 @@ usage() { | ||||
|  | ||||
| orig_argv=("$0" "$@") | ||||
|  | ||||
| opts='r:qcsudmzxyh' | ||||
| opts='r:qcsudmxyzh' | ||||
|  | ||||
| while getopts "${opts}" arg; do | ||||
|     case "${arg}" in | ||||
|         u) upgrades=true ;; | ||||
|         d) downgrades=true ;; | ||||
|         m) move=true ;; | ||||
|         x) staging=false ;; | ||||
|         y) unstable=true ;; | ||||
|         z) testing=false ;; | ||||
|         c) check=true ;; | ||||
|         s) sync=true ;; | ||||
|         c) check=true ;; | ||||
|         q) query=true ;; | ||||
|         r) searchrepos=("$OPTARG") ;; | ||||
|         x) testing=false ;; | ||||
|         y) staging=false ;; | ||||
|         z) unstable=true ;; | ||||
|         h|?) usage 0 ;; | ||||
|         *) echo "invalid argument '${arg}'"; usage 1 ;; | ||||
|     esac | ||||
| @@ -294,6 +311,8 @@ shift $(($OPTIND - 1)) | ||||
|  | ||||
| library="$1"; shift | ||||
|  | ||||
| set_arch_repos "$testing" "$staging" "$unstable" | ||||
|  | ||||
| ${move} && show_move_table | ||||
|  | ||||
| ${upgrades} && show_upgrades_table | ||||
|   | ||||
| @@ -22,7 +22,7 @@ find_cached_pkgfile() { | ||||
|     local search=${pkg%.*} | ||||
|     for dir in "${searchdirs[@]}"; do | ||||
|         [[ -d $dir ]] || continue | ||||
|         results+=$(find "$dir" -type f -name "$search.*" ! -path '*.sig') | ||||
|         results+=$(find "$dir" -type f -name "$search.*" ! -path '*.sig' ! -path '*.log') | ||||
|     done | ||||
|     case ${#results[*]} in | ||||
|         0) | ||||
|   | ||||
| @@ -377,11 +377,7 @@ if chroot-run \ | ||||
|     "$copydir" \ | ||||
|     /chrootbuild "${makepkg_args[@]}" | ||||
| then | ||||
|     pkgnames=() | ||||
|     for pkgfile in "$copydir"/pkgdest/*; do | ||||
|         pkgfile=${pkgfile##*/}; | ||||
|         pkgnames+=("${pkgfile%-*-*-*}"); | ||||
|     done | ||||
|     mapfile -t pkgnames < <(sudo -u "$makepkg_user" bash -c 'source PKGBUILD; printf "%s\n" "${pkgname[@]}"') | ||||
|     move_products | ||||
| else | ||||
|     (( ret += 1 )) | ||||
| @@ -398,27 +394,28 @@ if (( ret != 0 )); then | ||||
| else | ||||
|     if (( run_checkpkg )); then | ||||
|         msg "Running checkpkg" | ||||
|         # sync off-site databases for up-to-date queries | ||||
|         trap 'rm -rf $dbpath; cleanup' EXIT INT TERM QUIT | ||||
|         dbpath=$(mktemp -d --tmpdir makechrootpkg-database.XXXXXXXXXX) | ||||
|         mkdir -p "$dbpath" | ||||
|         pacman -Sy --dbpath "$dbpath" --logfile /dev/null | ||||
|  | ||||
|         # query current package locations | ||||
|         remotepkgs=($(pacman -Sddp --dbpath "$dbpath" --logfile /dev/null "${pkgnames[@]}")) | ||||
|         if (( $? )); then | ||||
|         mapfile -t remotepkgs < <(pacman --config "$copydir"/etc/pacman.conf \ | ||||
|             --dbpath "$copydir"/var/lib/pacman \ | ||||
|             -Sddp "${pkgnames[@]}") | ||||
|  | ||||
|         if ! wait $!; then | ||||
|             warning "Skipped checkpkg due to missing repo packages" | ||||
|             exit 0 | ||||
|         fi | ||||
|         # download package files if any non-local location exists | ||||
|         for remotepkg in "${remotepkgs[@]}"; do | ||||
|             [[ $remotepkg == file://* ]] && continue | ||||
|             msg2 "Downloading current versions" | ||||
|             pacman --noconfirm -Swdd --dbpath "$dbpath" --logfile /dev/null "${pkgnames[@]}" | ||||
|             break | ||||
|             if [[ $remotepkg != file://* ]]; then | ||||
|                 msg2 "Downloading current versions" | ||||
|                 chroot-run "$copydir" pacman --noconfirm -Swdd "${pkgnames[@]}" | ||||
|                 mapfile -t remotepkgs < <(pacman --config "$copydir"/etc/pacman.conf \ | ||||
|                     --dbpath "$copydir"/var/lib/pacman \ | ||||
|                     -Sddp "${pkgnames[@]}") | ||||
|                 break | ||||
|             fi | ||||
|         done | ||||
|         msg2 "Checking packages" | ||||
|         sudo -u "$makepkg_user" checkpkg --rmdir --warn | ||||
|         sudo -u "$makepkg_user" checkpkg --rmdir --warn "${remotepkgs[@]/#file:\/\//}" | ||||
|     fi | ||||
|     true | ||||
| fi | ||||
|   | ||||
| @@ -14,6 +14,8 @@ | ||||
| #         packages | ||||
| #         community | ||||
| #         packages-kernel | ||||
| #         packages-net | ||||
| #         packages-gfx | ||||
| #         packages-openrc | ||||
| #         packages-runit | ||||
| #         packages-s6 | ||||
| @@ -32,6 +34,7 @@ | ||||
| #         packages-mate | ||||
| #         packages-kde | ||||
| #         packages-xfce | ||||
| #         packages-wm | ||||
| # ) | ||||
|  | ||||
| # HOST_TREE_ARCH=git://git.archlinux.org/svntogit | ||||
|   | ||||
| @@ -27,16 +27,6 @@ create_repo() { | ||||
|     echo | ||||
| } | ||||
|  | ||||
| delete_repo() { | ||||
|     local pkg="$1" org="$2" | ||||
|     local gitname=$(get_compliant_name "$pkg") | ||||
|  | ||||
|     msg2 "Delete package repo [%s] in org (%s)" "${pkg}" "${org}" | ||||
|  | ||||
|     curl -s -X DELETE "${GIT_URL}/api/v1/repos/$org/$gitname?access_token=${GIT_TOKEN}" \ | ||||
|         -H  "accept: application/json" | ||||
| } | ||||
|  | ||||
| get_team_id() { | ||||
|     local org="$1" team="$2" | ||||
|     local id=$(curl -s -X GET "${GIT_URL}/api/v1/orgs/$org/teams/search?q=$team&access_token=${GIT_TOKEN}" \ | ||||
| @@ -44,13 +34,6 @@ get_team_id() { | ||||
|     echo $id | ||||
| } | ||||
|  | ||||
| list_team_repos() { | ||||
|     local id="$1" | ||||
|     local result=$(curl -X GET "${GIT_URL}/api/v1/teams/$id/repos?access_token=${GIT_TOKEN}" \ | ||||
|         -H  "accept: application/json" | jq '.[]' | jq -r '.name') | ||||
|     echo ${result[@]} | ||||
| } | ||||
|  | ||||
| add_repo_to_team() { | ||||
|     local pkg="$1" org="$2" team="$3" | ||||
|     local id=$(get_team_id "$org" "$team") | ||||
| @@ -72,40 +55,3 @@ remove_repo_from_team() { | ||||
|     curl -s -X DELETE "${GIT_URL}/api/v1/teams/$id/repos/$org/$gitname?access_token=${GIT_TOKEN}" \ | ||||
|         -H  "accept: application/json" | ||||
| } | ||||
|  | ||||
| add_user_to_team() { | ||||
|     local org="$1" team="$2" user="$3" | ||||
|     local id=$(get_team_id "$org" "$team") | ||||
|  | ||||
|     msg2 "Adding [%s] to team (%s) in org (%s)" "$user" "$team" "$org" | ||||
|  | ||||
|     curl -X PUT "${GIT_URL}/api/v1/teams/$id/members/$user?access_token=${GIT_TOKEN}" \ | ||||
|         -H  "accept: application/json" | ||||
| } | ||||
|  | ||||
| remove_user_from_team() { | ||||
|     local org="$1" team="$2" user="$3" | ||||
|     local id=$(get_team_id "$org" "$team") | ||||
|  | ||||
|     msg2 "Removing [%s] from team (%s) in org (%s)" "$user" "$team" "$org" | ||||
|  | ||||
|     curl -X DELETE "${GIT_URL}/api/v1/teams/$id/members/$user?access_token=${GIT_TOKEN}" \ | ||||
|         -H  "accept: application/json" | ||||
| } | ||||
|  | ||||
| create_team() { | ||||
|     local org="$1" name="$2" | ||||
|     local json="{  \"can_create_org_repo\": true,  \"description\": \"\",  \"includes_all_repositories\": false,  \"name\": \"$name\",  \"permission\": \"write\",  \"units\": [    \"repo.code\",    \"repo.issues\",    \"repo.ext_issues\",    \"repo.wiki\",    \"repo.pulls\",    \"repo.releases\",    \"repo.ext_wiki\"  ]}" | ||||
|  | ||||
|     curl -X POST "${GIT_URL}/api/v1/orgs/$org/teams?access_token=${GIT_TOKEN}" \ | ||||
|         -H  "accept: application/json" \ | ||||
|         -H  "Content-Type: application/json" \ | ||||
|         -d "$json" | ||||
| } | ||||
|  | ||||
| delete_team() { | ||||
|     local org="$1" team="$2" | ||||
|     local id=$(get_team_id "$org" "$team") | ||||
|     curl -X DELETE "${GIT_URL}/api/v1/teams/$id?access_token=${GIT_TOKEN}" \ | ||||
|         -H  "accept: application/json" | ||||
| } | ||||
|   | ||||
| @@ -14,21 +14,6 @@ | ||||
|  | ||||
| shopt -s extglob | ||||
|  | ||||
| declare -A REPOS=( | ||||
|     [core]=system | ||||
|     [extra]=world | ||||
|     [community]=galaxy | ||||
|     [multilib]=lib32 | ||||
|     [testing]=gremlins | ||||
|     [staging]=goblins | ||||
|     [community-testing]=galaxy-gremlins | ||||
|     [community-staging]=galaxy-goblins | ||||
|     [multilib-testing]=lib32-gremlins | ||||
|     [multilib-staging]=lib32-goblins | ||||
|     [kde-unstable]=kde-wobble | ||||
|     [gnome-unstable]=gnome-wobble | ||||
| ) | ||||
|  | ||||
| get_compliant_name(){ | ||||
|     local gitname="$1" | ||||
|     case $gitname in | ||||
| @@ -37,63 +22,18 @@ get_compliant_name(){ | ||||
|     echo $gitname | ||||
| } | ||||
|  | ||||
| get_group_packages(){ | ||||
|     local pkglist="${SYSCONFDIR}/pkglist.d/$1.list" | ||||
| set_arch_repos(){ | ||||
|     local x="$1" y="$2" z="$3" | ||||
|     ARCH_REPOS=(core extra community multilib) | ||||
|  | ||||
|     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 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 ;; | ||||
|         *) tree=$fallback ;; | ||||
|     esac" | ||||
|     echo $tree | ||||
| } | ||||
|  | ||||
| arch_repos(){ | ||||
|     local testing="$1" staging="$2" unstable="$3" | ||||
|     local repos=(core extra community multilib) | ||||
|  | ||||
|     $testing && repos=(core extra testing community community-testing multilib multilib-testing) | ||||
|     $staging && repos+=(staging community-staging multilib-staging) | ||||
|     $unstable && repos+=(gnome-unstable kde-unstable) | ||||
|  | ||||
|     echo ${repos[@]} | ||||
|     $x && ARCH_REPOS+=(testing community-testing multilib-testing) | ||||
|     $y && ARCH_REPOS+=(staging community-staging multilib-staging) | ||||
|     $z && ARCH_REPOS+=(gnome-unstable kde-unstable) | ||||
| } | ||||
|  | ||||
| find_repo(){ | ||||
|     local pkg="$1" testing="$2" staging="$3" unstable="$4" repo= | ||||
|  | ||||
|     for r in $(arch_repos "$testing" "$staging" "$unstable");do | ||||
|     local pkg="$1" repo= | ||||
|     for r in ${ARCH_REPOS[@]};do | ||||
|         [[ -f $pkg/repos/$r-${ARCH}/PKGBUILD ]] && repo=$r-${ARCH} | ||||
|         [[ -f $pkg/repos/$r-any/PKGBUILD ]] && repo=$r-any | ||||
|     done | ||||
| @@ -106,17 +46,6 @@ find_pkg(){ | ||||
|     echo $result | ||||
| } | ||||
|  | ||||
| is_valid_repo(){ | ||||
|     local src="$1" cases= | ||||
|     for r in $(arch_repos true true true);do | ||||
|         cases=${cases:-}${cases:+|}${r} | ||||
|     done | ||||
|     eval "case $src in | ||||
|         ${cases}|trunk) return 0 ;; | ||||
|         *) return 1 ;; | ||||
|     esac" | ||||
| } | ||||
|  | ||||
| pkgver_equal() { | ||||
|     if [[ $1 = *-* && $2 = *-* ]]; then | ||||
|         # if both versions have a pkgrel, then they must be an exact match | ||||
|   | ||||
| @@ -41,6 +41,8 @@ load_pkg_config(){ | ||||
|             packages | ||||
|             community | ||||
|             packages-kernel | ||||
|             packages-net | ||||
|             packages-gfx | ||||
|             packages-openrc | ||||
|             packages-runit | ||||
|             packages-s6 | ||||
| @@ -58,6 +60,7 @@ load_pkg_config(){ | ||||
|             packages-mate | ||||
|             packages-kde | ||||
|             packages-xfce | ||||
|             packages-wm | ||||
| #             packages-haskell | ||||
|     ) | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user