forked from artix/artools
		
	Compare commits
	
		
			12 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| f59c773dbc | |||
| 2ce4494050 | |||
| 6593fe7908 | |||
| 00c6458305 | |||
| d659e70b55 | |||
| e7b9ad928d | |||
| b612484aff | |||
| d46b663ce2 | |||
| 5972016672 | |||
| eb78a8d641 | |||
| 6787d5fafb | |||
| 2a0c08e34b | 
							
								
								
									
										23
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								Makefile
									
									
									
									
									
								
							| @@ -1,4 +1,7 @@ | ||||
| V=0.30 | ||||
| CV=0.11 | ||||
| BUILDTOOLVER ?= $(V) | ||||
| CHROOTVER ?= $(CV) | ||||
|  | ||||
| TOOLS = artools | ||||
| PREFIX ?= /usr | ||||
| @@ -74,15 +77,9 @@ PKG_LIB_GIT =\ | ||||
| PKG_LIB_REPO =\ | ||||
| 	$(wildcard lib/pkg/repo/*.sh) | ||||
|  | ||||
| # PKG_DATA = \ | ||||
| # 	data/valid-names.conf | ||||
|  | ||||
| MAKEPKG_CONF = \ | ||||
| 	data/makepkg/x86_64.conf \ | ||||
|  | ||||
| PATCHES = \ | ||||
| 	$(wildcard data/patches/*.patch) | ||||
|  | ||||
| ISO_CONF = \ | ||||
| 	data/conf/artools-iso.conf | ||||
|  | ||||
| @@ -101,17 +98,22 @@ FILEMODE = -m0644 | ||||
| MODE =  -m0755 | ||||
| LN = ln -sf | ||||
| RM = rm -f | ||||
| M4 = m4 -P --define=m4_artools_pkg_version=$V | ||||
| M4 = m4 -P | ||||
| CHMODAW = chmod a-w | ||||
| CHMODX = chmod +x | ||||
|  | ||||
| BIN = $(BASE_BIN) $(PKG_BIN) $(ISO_BIN) | ||||
|  | ||||
| all: $(BIN) | ||||
|  | ||||
| all: bin | ||||
| bin: $(BIN) | ||||
|  | ||||
| EDIT = sed -e "s|@datadir[@]|$(DATADIR)|g" \ | ||||
| 	-e "s|@libdir[@]|$(LIBDIR)|g" \ | ||||
| 	-e "s|@sysconfdir[@]|$(SYSCONFDIR)|g" | ||||
| 	-e "s|@sysconfdir[@]|$(SYSCONFDIR)|g" \ | ||||
| 	-e "s|@buildtool[@]|$(TOOLS)|g" \ | ||||
| 	-e "s|@buildtoolver[@]|$(BUILDTOOLVER)|g" \ | ||||
| 	-e "s|@chrootver[@]|$(CHROOTVER)|g" | ||||
|  | ||||
| %: %.in Makefile | ||||
| 	@echo "GEN $@" | ||||
| @@ -168,9 +170,6 @@ install_pkg: | ||||
|  | ||||
| 	for l in $(LN_BUILDPKG); do $(LN) buildpkg $(DESTDIR)$(BINDIR)/$$l; done | ||||
|  | ||||
| # 	install $(DIRMODE) $(DESTDIR)$(DATADIR)/$(TOOLS) | ||||
| # 	install $(FILEMODE) $(PKG_DATA) $(DESTDIR)$(DATADIR)/$(TOOLS) | ||||
|  | ||||
| 	install $(DIRMODE) $(DESTDIR)$(DATADIR)/$(TOOLS)/makepkg.conf.d | ||||
| 	install $(FILEMODE) $(MAKEPKG_CONF) $(DESTDIR)$(DATADIR)/$(TOOLS)/makepkg.conf.d | ||||
|  | ||||
|   | ||||
| @@ -30,6 +30,8 @@ usage() { | ||||
|     exit "$1" | ||||
| } | ||||
|  | ||||
| orig_args=("$@") | ||||
|  | ||||
| opts=':h' | ||||
|  | ||||
| while getopts ${opts} arg; do | ||||
| @@ -39,7 +41,7 @@ while getopts ${opts} arg; do | ||||
| done | ||||
| shift $(( OPTIND - 1 )) | ||||
|  | ||||
| check_root | ||||
| check_root "" "${BASH_SOURCE[0]}" "${orig_args[@]}" | ||||
|  | ||||
| chrootdir=$1 | ||||
| shift | ||||
|   | ||||
| @@ -73,6 +73,8 @@ usage() { | ||||
|     exit "$1" | ||||
| } | ||||
|  | ||||
| orig_args=("$@") | ||||
|  | ||||
| opts=':C:cGiMU' | ||||
|  | ||||
| while getopts ${opts} arg; do | ||||
| @@ -88,7 +90,7 @@ while getopts ${opts} arg; do | ||||
| done | ||||
| shift $(( OPTIND - 1 )) | ||||
|  | ||||
| check_root | ||||
| check_root "" "${BASH_SOURCE[0]}" "${orig_args[@]}" | ||||
|  | ||||
| (( $# )) || die "No root directory specified" | ||||
| newroot=$1; shift | ||||
|   | ||||
| @@ -17,7 +17,8 @@ LIBDIR=${LIBDIR:-'@libdir@/artools'} | ||||
| source "${LIBDIR}"/base/message.sh | ||||
| source "${LIBDIR}"/base/mount.sh | ||||
| source "${LIBDIR}"/base/chroot.sh | ||||
| source "${LIBDIR}"/base/chroot-version.sh | ||||
|  | ||||
| CHROOTVERSION=@chrootver@ | ||||
|  | ||||
| # $1: chroot | ||||
| kill_chroot_process(){ | ||||
| @@ -62,6 +63,8 @@ usage() { | ||||
|     exit 1 | ||||
| } | ||||
|  | ||||
| orig_args=("$@") | ||||
|  | ||||
| opts='hC:M:c:b:f:s' | ||||
|  | ||||
| while getopts ${opts} arg; do | ||||
| @@ -79,7 +82,7 @@ shift $(( OPTIND - 1 )) | ||||
|  | ||||
| (( $# < 1 )) && die 'You must specify a directory.' | ||||
|  | ||||
| check_root | ||||
| check_root "" "${BASH_SOURCE[0]}" "${orig_args[@]}" | ||||
|  | ||||
| working_dir=$(readlink -f "$1") | ||||
| shift 1 | ||||
|   | ||||
| @@ -16,7 +16,8 @@ LIBDIR=${LIBDIR:-'@libdir@/artools'} | ||||
|  | ||||
| source "${LIBDIR}"/base/message.sh | ||||
| source "${LIBDIR}"/base/chroot.sh | ||||
| source "${LIBDIR}"/base/chroot-version.sh | ||||
|  | ||||
| CHROOTVERSION=@chrootver@ | ||||
|  | ||||
| working_dir='' | ||||
| umode='' | ||||
| @@ -37,6 +38,8 @@ usage() { | ||||
|     exit 1 | ||||
| } | ||||
|  | ||||
| orig_args=("$@") | ||||
|  | ||||
| opts='hUC:M:c:f:s' | ||||
|  | ||||
| while getopts ${opts} arg; do | ||||
| @@ -58,7 +61,7 @@ shift $(( OPTIND - 1 )) | ||||
|  | ||||
| (( $# < 2 )) && die 'You must specify a directory and one or more packages.' | ||||
|  | ||||
| check_root | ||||
| check_root "" "${BASH_SOURCE[0]}" "${orig_args[@]}" | ||||
|  | ||||
| working_dir="$(readlink -f "$1")" | ||||
| shift 1 | ||||
|   | ||||
| @@ -354,6 +354,8 @@ usage() { | ||||
|     exit "$1" | ||||
| } | ||||
|  | ||||
| orig_args=("$@") | ||||
|  | ||||
| opts='p:r:t:i:g:czsbxmdqh' | ||||
|  | ||||
| while getopts "${opts}" arg; do | ||||
| @@ -381,7 +383,7 @@ prepare_build | ||||
|  | ||||
| ${pretend} && display_settings && exit 1 | ||||
|  | ||||
| check_root | ||||
| check_root "" "${BASH_SOURCE[0]}" "${orig_args[@]}" | ||||
|  | ||||
| prepare_dir "${mnt_dir}" | ||||
| prepare_dir "${iso_dir}" | ||||
|   | ||||
| @@ -97,7 +97,7 @@ fi | ||||
| #     fi | ||||
| # done | ||||
|  | ||||
| check_root SOURCE_DATE_EPOCH,SRCDEST,SRCPKGDEST,PKGDEST,LOGDEST,MAKEFLAGS,PACKAGER,GNUPGHOME | ||||
| check_root SOURCE_DATE_EPOCH,SRCDEST,SRCPKGDEST,PKGDEST,LOGDEST,MAKEFLAGS,PACKAGER,GNUPGHOME "${BASH_SOURCE[0]}" "$@" | ||||
|  | ||||
| mkchrootpkg_args+=("${@:$OPTIND}") | ||||
|  | ||||
|   | ||||
| @@ -121,6 +121,8 @@ usage() { | ||||
| __EOF__ | ||||
| } | ||||
|  | ||||
| orig_args=("$@") | ||||
|  | ||||
| while getopts 'dM:c:l:h' arg; do | ||||
|     case "$arg" in | ||||
|         d) diffoscope=1 ;; | ||||
| @@ -133,7 +135,7 @@ while getopts 'dM:c:l:h' arg; do | ||||
| done | ||||
| shift $((OPTIND - 1)) | ||||
|  | ||||
| check_root | ||||
| check_root "" "${BASH_SOURCE[0]}" "${orig_args[@]}" | ||||
|  | ||||
| [[ -f PKGBUILD ]] || { error "No PKGBUILD in current directory."; exit 1; } | ||||
|  | ||||
|   | ||||
| @@ -17,8 +17,8 @@ LIBDIR=${LIBDIR:-'@libdir@/artools'} | ||||
| source "${LIBDIR}"/base/message.sh | ||||
| source "${LIBDIR}"/base/chroot.sh | ||||
|  | ||||
| export BUILDTOOL=artools-pkg | ||||
| export BUILDTOOLVER=m4_artools_pkg_version | ||||
| export BUILDTOOL=@buildtool@ | ||||
| export BUILDTOOLVER=@buildtoolver@ | ||||
|  | ||||
| shopt -s nullglob | ||||
|  | ||||
| @@ -199,7 +199,7 @@ EOF | ||||
|         declare -f _chrootbuild | ||||
|         declare -p SOURCE_DATE_EPOCH 2>/dev/null || true | ||||
|         declare -p BUILDTOOL 2>/dev/null | ||||
| 		declare -p BUILDTOOLVER 2>/dev/null | ||||
|         declare -p BUILDTOOLVER 2>/dev/null | ||||
|         printf '_chrootbuild "$@" || exit\n' | ||||
|  | ||||
|         if (( run_namcap )); then | ||||
| @@ -226,8 +226,8 @@ _chrootbuild() { | ||||
|     # ${1} is OK, but $foo or $1 isn't. | ||||
|     # https://bugzilla.sudo.ws/show_bug.cgi?id=765 | ||||
|     sudo --preserve-env=SOURCE_DATE_EPOCH \ | ||||
|         -preserve-env=BUILDTOOL \ | ||||
| 		--preserve-env=BUILDTOOLVER \ | ||||
|         --preserve-env=BUILDTOOL \ | ||||
|         --preserve-env=BUILDTOOLVER \ | ||||
|         -iu builduser bash -c 'cd /startdir; makepkg "$@"' -bash "$@" | ||||
|     ret=$? | ||||
|     case $ret in | ||||
| @@ -315,7 +315,7 @@ done | ||||
| [[ -n $makepkg_user && -z $(id -u "$makepkg_user") ]] && die 'Invalid makepkg user.' | ||||
| makepkg_user=${makepkg_user:-${SUDO_USER:-$USER}} | ||||
|  | ||||
| check_root SOURCE_DATE_EPOCH,BUILDTOOL,BUILDTOOLVER,GNUPGHOME,SRCDEST,SRCPKGDEST,PKGDEST,LOGDEST,MAKEFLAGS,PACKAGER | ||||
| check_root SOURCE_DATE_EPOCH,BUILDTOOL,BUILDTOOLVER,GNUPGHOME,SRCDEST,SRCPKGDEST,PKGDEST,LOGDEST,MAKEFLAGS,PACKAGER "${BASH_SOURCE[0]}" "$@" | ||||
|  | ||||
| # Canonicalize chrootdir, getting rid of trailing / | ||||
| chrootdir=$(readlink -e "$passeddir") | ||||
|   | ||||
| @@ -1,3 +0,0 @@ | ||||
| #!/hint/bash | ||||
|  | ||||
| CHROOTVERSION=0.11 | ||||
| @@ -2,20 +2,20 @@ | ||||
|  | ||||
| #{{{ chroot | ||||
|  | ||||
| orig_argv=("$0" "$@") | ||||
| check_root() { | ||||
|     local keepenv="$1" | ||||
|     local keepenv=$1 | ||||
|     shift | ||||
|     local orig_argv=("$@") | ||||
|  | ||||
|     (( EUID == 0 )) && return | ||||
|     if type -P sudo >/dev/null; then | ||||
|         # shellcheck disable=2154 | ||||
|         exec sudo --preserve-env="$keepenv" -- "${orig_argv[@]}" | ||||
|         exec sudo --preserve-env="${keepenv}" -- "${orig_argv[@]}" | ||||
|     else | ||||
|         # shellcheck disable=2154 | ||||
|         exec su root -c "$(printf ' %q' "${orig_argv[@]}")" | ||||
|     fi | ||||
| } | ||||
|  | ||||
|  | ||||
| is_btrfs() { | ||||
|     [[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs ]] | ||||
| } | ||||
|   | ||||
| @@ -160,7 +160,7 @@ remove_topic() { | ||||
| search_topic() { | ||||
|     local search="$1" | ||||
|     local url | ||||
|     url="${GIT_URL}/api/v1/repos/search?q=${search}&topic=true&includeDesc=false&private=false&is_private=false&template=false&archived=false&order=asc" | ||||
|     url="${GIT_URL}/api/v1/repos/search?q=${search}&topic=true&includeDesc=false&private=false&is_private=false&template=false&archived=false&order=asc&limit=10000" | ||||
|  | ||||
|     stat_busy "Query for topic (${search})" | ||||
|     api_get "$url" \ | ||||
|   | ||||
| @@ -66,6 +66,14 @@ artixpkg_git() { | ||||
|             artixpkg_git_create "$@" | ||||
|             exit 0 | ||||
|         ;; | ||||
|         pull) | ||||
|             _ARTOOLS_COMMAND+=" $1" | ||||
|             shift | ||||
|             # shellcheck source=lib/git/pull.sh | ||||
|             source "${LIBDIR}"/pkg/git/pull.sh | ||||
|             artixpkg_git_pull "$@" | ||||
|             exit 0 | ||||
|         ;; | ||||
|         -*) | ||||
|             die "invalid argument: %s" "$1" | ||||
|         ;; | ||||
|   | ||||
| @@ -22,9 +22,9 @@ artixpkg_git_config_usage() { | ||||
|         -h, --help         Show this help text | ||||
|  | ||||
|     EXAMPLES | ||||
|         $ ${COMMAND} config -t libfoo | ||||
|         $ ${COMMAND} config -u libfoo | ||||
|         $ ${COMMAND} config * | ||||
|         $ ${COMMAND} -t libfoo | ||||
|         $ ${COMMAND} -u libfoo | ||||
|         $ ${COMMAND} * | ||||
| _EOF_ | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -7,7 +7,7 @@ ARTOOLS_INCLUDE_GIT_CREATE_SH=1 | ||||
|  | ||||
| source "${LIBDIR}"/pkg/git/clone.sh | ||||
| source "${LIBDIR}"/pkg/git/config.sh | ||||
| source "${LIBDIR}"/pkg/git/ci/jenkins.sh | ||||
| source "${LIBDIR}"/pkg/ci/jenkins.sh | ||||
|  | ||||
| set -e | ||||
|  | ||||
| @@ -33,7 +33,7 @@ artixpkg_git_create() { | ||||
|     local pkgbase | ||||
|     local clone=0 | ||||
|     local config=0 | ||||
|     local TEAM='extra' | ||||
|     local TEAM='world' | ||||
|  | ||||
|     # variables | ||||
|     local path | ||||
|   | ||||
							
								
								
									
										158
									
								
								lib/pkg/git/pull.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										158
									
								
								lib/pkg/git/pull.sh
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,158 @@ | ||||
| #!/bin/bash | ||||
| # | ||||
| # SPDX-License-Identifier: GPL-3.0-or-later | ||||
|  | ||||
| [[ -z ${ARTOOLS_INCLUDE_GIT_PULL_SH:-} ]] || return 0 | ||||
| ARTOOLS_INCLUDE_GIT_PULL_SH=1 | ||||
|  | ||||
| source "${LIBDIR}"/pkg/git/config.sh | ||||
|  | ||||
| set -e | ||||
|  | ||||
|  | ||||
| artixpkg_git_pull_usage() { | ||||
|     local -r COMMAND=${_ARTOOLS_COMMAND:-${BASH_SOURCE[0]##*/}} | ||||
|     cat <<- _EOF_ | ||||
|     Usage: ${COMMAND} [OPTIONS] [PKGBASE]... | ||||
|  | ||||
|     OPTIONS | ||||
|         -m, --maintainer=NAME  Clone all packages of the named maintainer | ||||
|         -t, --topic=NAME       Clone all packages of the named topic | ||||
|         -j, --jobs N           Run up to N jobs in parallel (default: $(nproc)) | ||||
|         --universe             Clone all existing packages, useful for cache warming | ||||
|         --fetch                Fetch only | ||||
|         -h, --help             Show this help text | ||||
|  | ||||
|     EXAMPLES | ||||
|         $ ${COMMAND} libfoo linux libbar | ||||
|         $ ${COMMAND} --maintainer maintainer-mynickname | ||||
|         $ ${COMMAND} --topic myopic | ||||
|         $ ${COMMAND} -j 8 --topic myopic | ||||
| _EOF_ | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| artixpkg_git_pull() { | ||||
|     if (( $# < 1 )); then | ||||
|         artixpkg_git_pull_usage | ||||
|         exit 0 | ||||
|     fi | ||||
|  | ||||
|     # options | ||||
|     local PULL_ALL=0 | ||||
|     local FETCH=0 | ||||
|     local MAINTAINER= | ||||
|     local TOPIC= | ||||
|     local CONFIGURE_OPTIONS=() | ||||
|     local jobs= | ||||
|     jobs=$(nproc) | ||||
|  | ||||
|     local command=${_ARTOOLS_COMMAND:-${BASH_SOURCE[0]##*/}} | ||||
|  | ||||
|     while (( $# )); do | ||||
|         case $1 in | ||||
|             -h|--help) | ||||
|                 artixpkg_git_pull_usage | ||||
|                 exit 0 | ||||
|             ;; | ||||
|             -m|--maintainer) | ||||
|                 (( $# <= 1 )) && die "missing argument for %s" "$1" | ||||
|                 MAINTAINER="$2" | ||||
|                 shift 2 | ||||
|             ;; | ||||
|             --maintainer=*) | ||||
|                 MAINTAINER="${1#*=}" | ||||
|                 shift | ||||
|             ;; | ||||
|             -t|--topic) | ||||
|                 (( $# <= 1 )) && die "missing argument for %s" "$1" | ||||
|                 TOPIC="$2" | ||||
|                 shift 2 | ||||
|             ;; | ||||
|             --topic=*) | ||||
|                 TOPIC="${1#*=}" | ||||
|                 shift | ||||
|             ;; | ||||
|             --universe) | ||||
|                 PULL_ALL=1 | ||||
|                 shift | ||||
|             ;; | ||||
|             --fetch) | ||||
|                 FETCH=1 | ||||
|                 shift | ||||
|             ;; | ||||
|             -j|--jobs) | ||||
|                 (( $# <= 1 )) && die "missing argument for %s" "$1" | ||||
|                 jobs=$2 | ||||
|                 shift 2 | ||||
|             ;; | ||||
|             --) | ||||
|                 shift | ||||
|                 break | ||||
|             ;; | ||||
|             -*) | ||||
|                 die "invalid argument: %s" "$1" | ||||
|             ;; | ||||
|             *) | ||||
|                 pkgbases=("$@") | ||||
|                 break | ||||
|             ;; | ||||
|         esac | ||||
|     done | ||||
|  | ||||
|     # Query packages of a maintainer | ||||
|     if [[ -n ${MAINTAINER} ]]; then | ||||
|         stat_busy "Query mantainer packages" | ||||
|             local maint | ||||
|             maint="maintainer-${MAINTAINER}" | ||||
|             mapfile -t pkgbases < <(search_topic "${maint}" | jq -r '.data | .[].name' | sort) | ||||
|         stat_done | ||||
|     fi | ||||
|  | ||||
|     if [[ -n ${TOPIC} ]]; then | ||||
|         stat_busy "Query topic packages" | ||||
|             mapfile -t pkgbases < <(search_topic "${TOPIC}" | jq -r '.data | .[].name' | sort) | ||||
|         stat_done | ||||
|     fi | ||||
|  | ||||
|     # Query all released packages | ||||
|     if (( PULL_ALL )); then | ||||
|         stat_busy "Query all packages" | ||||
|             mapfile -t pkgbases < <(list_all_repos | jq -r '.[] | .name' | sort) | ||||
|         stat_done | ||||
|     fi | ||||
|  | ||||
|     # parallelization | ||||
|     if [[ ${jobs} != 1 ]] && (( ${#pkgbases[@]} > 1 )); then | ||||
|         # force colors in parallel if parent process is colorized | ||||
|         if [[ -n ${BOLD} ]]; then | ||||
|             export ARTOOLS_COLOR=always | ||||
|         fi | ||||
|         if ! parallel --bar --jobs "${jobs}" "${command}" ::: "${pkgbases[@]}"; then | ||||
|             die 'Failed to pull some packages, please check the output' | ||||
|             exit 1 | ||||
|         fi | ||||
|         exit 0 | ||||
|     fi | ||||
|  | ||||
|     for pkgbase in "${pkgbases[@]}"; do | ||||
|         if [[ -d ${pkgbase} ]]; then | ||||
|             ( cd ${pkgbase} || return | ||||
|                 if (( FETCH )); then | ||||
|                     msg "Fetching ${pkgbase} ..." | ||||
|                     if ! git fetch origin; then | ||||
|                         die 'failed to fetch %s' "${pkgbase}" | ||||
|                     fi | ||||
|                 else | ||||
|                     msg "Pulling ${pkgbase} ..." | ||||
|                     if ! git pull origin master; then | ||||
|                         die 'failed to pull %s' "${pkgbase}" | ||||
|                     fi | ||||
|                 fi | ||||
|             ) | ||||
|         else | ||||
|             warning "Skip pulling ${pkgbase}: Directory does not exist" | ||||
|         fi | ||||
|     done | ||||
| } | ||||
| @@ -69,6 +69,7 @@ artixpkg_repo_add() { | ||||
|     done | ||||
|  | ||||
|     DEST="$1" | ||||
|     shift | ||||
|     pkgbases+=("$@") | ||||
|  | ||||
|     if ! in_array "${DEST}" "${ARTIX_DB[@]}"; then | ||||
|   | ||||
| @@ -7,16 +7,48 @@ ARTOOLS_INCLUDE_REPO_IMPORT_SH=1 | ||||
|  | ||||
| set -e | ||||
|  | ||||
| patch_pkgbase(){ | ||||
|     local name="$1" | ||||
|     local pkgbuild | ||||
|     pkgbuild=trunk/PKGBUILD | ||||
|  | ||||
|     sed -e 's|arch-meson|artix-meson|' -i "${pkgbuild}" | ||||
|  | ||||
|     case "${name}" in | ||||
|         glibc) | ||||
|             msg "Patching %s" "${name}" | ||||
|             sed -e 's|{locale,systemd/system,tmpfiles.d}|{locale,tmpfiles.d}|' \ | ||||
|                 -e '/nscd.service/d' \ | ||||
|                 -i "${pkgbuild}" | ||||
|         ;; | ||||
|         linux|linux-lts|linux-zen|linux-hardened|linux-rt|linux-rt-lts) | ||||
|             msg "Patching %s" "${name}" | ||||
|             sed -e 's|KBUILD_BUILD_HOST=.*|KBUILD_BUILD_HOST=artixlinux|' -i "${pkgbuild}" | ||||
|             sed -e 's|CONFIG_DEFAULT_HOSTNAME=.*|CONFIG_DEFAULT_HOSTNAME="artixlinux"|' \ | ||||
|                 -i trunk/config | ||||
|         ;; | ||||
|         gstreamer|gst-plugins-*|licenses) | ||||
|             msg "Patching %s" "${name}" | ||||
|             sed -e 's|https://www.archlinux.org/|https://www.artixlinux.org/|' \ | ||||
|                 -e 's|(Arch Linux)|(Artix Linux)|' \ | ||||
|                 -i "${pkgbuild}" | ||||
|         ;; | ||||
|     esac | ||||
| } | ||||
|  | ||||
|  | ||||
| artixpkg_repo_import_usage() { | ||||
|     local -r COMMAND=${_ARTOOLS_COMMAND:-${BASH_SOURCE[0]##*/}} | ||||
|     cat <<- _EOF_ | ||||
|     Usage: ${COMMAND} [OPTIONS] [PKGBASE]... | ||||
|  | ||||
|     OPTIONS | ||||
|         --switch TAG       Switch the current trunk to a specified version tag | ||||
|         -h, --help         Show this help text | ||||
|  | ||||
|     EXAMPLES | ||||
|         $ ${COMMAND} libfoo | ||||
|         $ ${COMMAND} libfoo --switch TAG | ||||
| _EOF_ | ||||
| } | ||||
|  | ||||
| @@ -29,9 +61,18 @@ artixpkg_repo_import() { | ||||
|     # options | ||||
|     local pkgbases=() | ||||
|     local pkgbase | ||||
|     local upstream_url | ||||
|     upstream_url="https://gitlab.archlinux.org/archlinux/packaging/packages" | ||||
|     local TAG | ||||
|     local rsync_args=() | ||||
|     rsync_args+=(-aWxvci --progress --delete-before --no-R --no-implied-dirs --exclude '.git') | ||||
|  | ||||
|     while (( $# )); do | ||||
|         case $1 in | ||||
|         --switch=*) | ||||
|             TAG="${1#*=}" | ||||
|             shift | ||||
|         ;; | ||||
|         -h|--help) | ||||
|             artixpkg_repo_import_usage | ||||
|             exit 0 | ||||
| @@ -58,25 +99,34 @@ artixpkg_repo_import() { | ||||
|             ( cd "${pkgbase}" || return | ||||
|                 stat_busy "Checking for upstream url" | ||||
|                 if ! git config --local --get remote.upstream.url &>/dev/null; then | ||||
|                     git remote add upstream https://gitlab.archlinux.org/archlinux/packaging/packages/${pkgbase}.git | ||||
|                     git remote add upstream "${upstream_url}"/${pkgbase}.git | ||||
|                 fi | ||||
|                 stat_done | ||||
|  | ||||
|                 stat_busy "Fetching upstream tags" | ||||
|                 git fetch upstream --tags | ||||
|                 git fetch --tags upstream main | ||||
|                 stat_done | ||||
|  | ||||
|                 local latest | ||||
|                 local latest version | ||||
|                 latest=$(git describe --tags FETCH_HEAD) | ||||
|                 version="${latest}" | ||||
|                 if [[ -n "${TAG}" ]]; then | ||||
|                     version="${TAG}" | ||||
|                 fi | ||||
|  | ||||
|                 stat_busy "Importing upstream changeset for ${latest}" | ||||
|                 git checkout "${latest}" -b "${latest}" &>/dev/null | ||||
|                 stat_busy "Importing upstream changeset for ${version}" | ||||
|  | ||||
|                 git checkout "${version}" -b "${version}" &>/dev/null | ||||
|                 local temp | ||||
|                 temp=$(mktemp -d --tmpdir "${pkgbase}.XXXXXXXXXX") | ||||
|                 local rsync_args=(-aWxvci --progress --delete-before --no-R --no-implied-dirs --exclude '.git') | ||||
|  | ||||
|                 rsync "${rsync_args[@]}" "$(pwd)"/ "${temp}"/ &>/dev/null | ||||
|                 git checkout master &>/dev/null | ||||
|                 git branch -D "${latest}" &>/dev/null | ||||
|                 git branch -D "${version}" &>/dev/null | ||||
|                 rsync "${rsync_args[@]}" "${temp}"/ "$(pwd)"/trunk/ &>/dev/null | ||||
|  | ||||
|                 patch_pkgbase "${pkgbase}" | ||||
|  | ||||
|                 stat_done | ||||
|             ) | ||||
|         fi | ||||
|   | ||||
| @@ -64,13 +64,14 @@ artixpkg_repo_remove() { | ||||
|             die "invalid argument: %s" "$1" | ||||
|         ;; | ||||
|         *) | ||||
|             pkgbases=("$@") | ||||
|             break | ||||
|         ;; | ||||
|         esac | ||||
|     done | ||||
|  | ||||
|     DEST="$1" | ||||
|     shift | ||||
|     pkgbases=("$@") | ||||
|  | ||||
|     if ! in_array "${DEST}" "${ARTIX_DB[@]}"; then | ||||
|         die "${DEST} does not exist!" | ||||
| @@ -122,7 +123,8 @@ artixpkg_repo_remove() { | ||||
|                     if (( SET_TOPIC )); then | ||||
|                         # topics meta | ||||
|                         if [[ -n ${GIT_TOKEN} ]]; then | ||||
|                             local topic="${SRC}" | ||||
|                             local topic="${DEST}" | ||||
|                             local gitname=$(get_compliant_name "${pkgbase}") | ||||
|                             if ! remove_topic "${gitname}" "${topic}" >/dev/null; then | ||||
|                                 warning "failed to remove pacman repo topic: ${topic}" | ||||
|                             fi | ||||
|   | ||||
		Reference in New Issue
	
	Block a user