mirror of
				https://gitlab.archlinux.org/archlinux/devtools.git
				synced 2025-11-04 01:34:42 +01:00 
			
		
		
		
	Compare commits
	
		
			6 Commits
		
	
	
		
			mr-origin-
			...
			eb6601c6e1
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					eb6601c6e1 | ||
| 
						 | 
					3f0ebbc6d2 | ||
| 
						 | 
					fc56ebedf3 | ||
| 
						 | 
					01757e6904 | ||
| 
						 | 
					c5fe8ff3e6 | ||
| 
						 | 
					f77b767971 | 
@@ -150,6 +150,7 @@ _pkgctl_cmds=(
 | 
			
		||||
	db
 | 
			
		||||
	diff
 | 
			
		||||
	issue
 | 
			
		||||
	license
 | 
			
		||||
	release
 | 
			
		||||
	repo
 | 
			
		||||
	search
 | 
			
		||||
 
 | 
			
		||||
@@ -7,6 +7,8 @@ _DEVTOOLS_LIBRARY_DIR=${_DEVTOOLS_LIBRARY_DIR:-@pkgdatadir@}
 | 
			
		||||
source "${_DEVTOOLS_LIBRARY_DIR}"/lib/common.sh
 | 
			
		||||
# shellcheck source=src/lib/util/srcinfo.sh
 | 
			
		||||
source "${_DEVTOOLS_LIBRARY_DIR}"/lib/util/srcinfo.sh
 | 
			
		||||
# shellcheck source=src/lib/state.sh
 | 
			
		||||
source "${_DEVTOOLS_LIBRARY_DIR}"/lib/state.sh
 | 
			
		||||
 | 
			
		||||
source /usr/share/makepkg/util/util.sh
 | 
			
		||||
 | 
			
		||||
@@ -155,7 +157,7 @@ if (( ${#needsversioning[*]} )); then
 | 
			
		||||
		if [[ ! -f "${file}" ]]; then
 | 
			
		||||
			continue
 | 
			
		||||
		fi
 | 
			
		||||
		if ! git ls-files --error-unmatch "$file"; then
 | 
			
		||||
		if ! git ls-files --error-unmatch "$file" >/dev/null; then
 | 
			
		||||
			die "%s is not under version control" "$file"
 | 
			
		||||
		fi
 | 
			
		||||
	done
 | 
			
		||||
@@ -246,6 +248,9 @@ declare -a uploads
 | 
			
		||||
declare -a commit_arches
 | 
			
		||||
declare -a skip_arches
 | 
			
		||||
 | 
			
		||||
BUILD_STATE_DIR=$(get_state_folder "build-state")
 | 
			
		||||
state_file=
 | 
			
		||||
 | 
			
		||||
for _arch in "${arch[@]}"; do
 | 
			
		||||
	if [[ -n $commit_arch && ${_arch} != "$commit_arch" ]]; then
 | 
			
		||||
		skip_arches+=("$_arch")
 | 
			
		||||
@@ -259,6 +264,12 @@ for _arch in "${arch[@]}"; do
 | 
			
		||||
			skip_arches+=("$_arch")
 | 
			
		||||
			continue 2
 | 
			
		||||
		fi
 | 
			
		||||
 | 
			
		||||
		state_file="${BUILD_STATE_DIR}/$(basename "${pkgfile}").txt"
 | 
			
		||||
		if [[ -f "${state_file}" ]] && [[ $(cat "${state_file}") != "${repo}" ]]; then
 | 
			
		||||
			error "%s was not built against '%s', aborting" "${pkgfile}" "${repo}"
 | 
			
		||||
			exit 1
 | 
			
		||||
		fi
 | 
			
		||||
		uploads+=("$pkgfile")
 | 
			
		||||
	done
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -12,6 +12,8 @@ source "${_DEVTOOLS_LIBRARY_DIR}"/lib/common.sh
 | 
			
		||||
source "${_DEVTOOLS_LIBRARY_DIR}"/lib/db/update.sh
 | 
			
		||||
# shellcheck source=src/lib/release.sh
 | 
			
		||||
source "${_DEVTOOLS_LIBRARY_DIR}"/lib/release.sh
 | 
			
		||||
# shellcheck source=src/lib/state.sh
 | 
			
		||||
source "${_DEVTOOLS_LIBRARY_DIR}"/lib/state.sh
 | 
			
		||||
# shellcheck source=src/lib/util/git.sh
 | 
			
		||||
source "${_DEVTOOLS_LIBRARY_DIR}"/lib/util/git.sh
 | 
			
		||||
# shellcheck source=src/lib/util/srcinfo.sh
 | 
			
		||||
@@ -129,6 +131,7 @@ pkgctl_build() {
 | 
			
		||||
	local PKGVER=
 | 
			
		||||
	local PKGREL=
 | 
			
		||||
	local MESSAGE=
 | 
			
		||||
	local BUILD_STATE_DIR=
 | 
			
		||||
 | 
			
		||||
	local paths=()
 | 
			
		||||
	local BUILD_ARCH=()
 | 
			
		||||
@@ -304,6 +307,8 @@ pkgctl_build() {
 | 
			
		||||
		fi
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	BUILD_STATE_DIR=$(get_state_folder "build-state")
 | 
			
		||||
 | 
			
		||||
	# assign default worker slot
 | 
			
		||||
	if [[ -z ${WORKER_SLOT} ]] && ! WORKER_SLOT="$(tty | sed 's|/dev/pts/||')"; then
 | 
			
		||||
		WORKER_SLOT=$(( RANDOM % $(nproc) + 1 ))
 | 
			
		||||
@@ -481,25 +486,26 @@ pkgctl_build() {
 | 
			
		||||
		# shellcheck disable=SC2119
 | 
			
		||||
		write_srcinfo_file
 | 
			
		||||
 | 
			
		||||
		# test-install (some of) the produced packages
 | 
			
		||||
		if [[ ${INSTALL_TO_HOST} == auto ]] || [[ ${INSTALL_TO_HOST} == all ]]; then
 | 
			
		||||
			# shellcheck disable=2119
 | 
			
		||||
			load_makepkg_config
 | 
			
		||||
		# shellcheck disable=2119
 | 
			
		||||
		load_makepkg_config
 | 
			
		||||
 | 
			
		||||
			# this is inspired by print_all_package_names from libmakepkg
 | 
			
		||||
			local version pkg_architecture pkg pkgfile
 | 
			
		||||
			version=$(get_full_version)
 | 
			
		||||
		# this is inspired by print_all_package_names from libmakepkg
 | 
			
		||||
		local version pkg_architecture pkg pkgfile
 | 
			
		||||
		version=$(get_full_version)
 | 
			
		||||
 | 
			
		||||
			for pkg in "${pkgname[@]}"; do
 | 
			
		||||
				pkg_architecture=$(get_pkg_arch "$pkg")
 | 
			
		||||
				pkgfile=$(realpath "$(printf "%s/%s-%s-%s%s\n" "${PKGDEST:-.}" "$pkg" "$version" "$pkg_architecture" "$PKGEXT")")
 | 
			
		||||
		for pkg in "${pkgname[@]}"; do
 | 
			
		||||
			pkg_architecture=$(get_pkg_arch "$pkg")
 | 
			
		||||
			pkgpath=$(realpath "$(printf "%s\n" "${PKGDEST:-.}")")
 | 
			
		||||
			pkgfile=$(printf "%s-%s-%s%s\n" "$pkg" "$version" "$pkg_architecture" "$PKGEXT")
 | 
			
		||||
 | 
			
		||||
				# check if we install all packages or if the (split-)package is already installed
 | 
			
		||||
				if [[ ${INSTALL_TO_HOST} == all ]] || ( [[ ${INSTALL_TO_HOST} == auto ]] && pacman -Qq -- "$pkg" &>/dev/null ); then
 | 
			
		||||
					INSTALL_HOST_PACKAGES+=("$pkgfile")
 | 
			
		||||
				fi
 | 
			
		||||
			done
 | 
			
		||||
		fi
 | 
			
		||||
			# check if we install all packages or if the (split-)package is already installed
 | 
			
		||||
			if [[ ${INSTALL_TO_HOST} == all ]] || ( [[ ${INSTALL_TO_HOST} == auto ]] && pacman -Qq -- "$pkg" &>/dev/null ); then
 | 
			
		||||
				INSTALL_HOST_PACKAGES+=("${pkgpath}/${pkgfile}")
 | 
			
		||||
			fi
 | 
			
		||||
 | 
			
		||||
			# save against which repo we have built the package
 | 
			
		||||
			printf "%s" "${pkgrepo}" > "${BUILD_STATE_DIR}/${pkgfile}.txt"
 | 
			
		||||
		done
 | 
			
		||||
 | 
			
		||||
		# release the build
 | 
			
		||||
		if (( RELEASE )); then
 | 
			
		||||
 
 | 
			
		||||
@@ -188,10 +188,13 @@ path = [
 | 
			
		||||
    "README.md",
 | 
			
		||||
    "keys/**",
 | 
			
		||||
    ".SRCINFO",
 | 
			
		||||
    ".gitignore",
 | 
			
		||||
    ".nvchecker.toml",
 | 
			
		||||
    "*.install",
 | 
			
		||||
    "*.sysusers",
 | 
			
		||||
    "*sysusers.conf",
 | 
			
		||||
    "*.tmpfiles",
 | 
			
		||||
    "*tmpfiles.conf",
 | 
			
		||||
    "*.logrotate",
 | 
			
		||||
    "*.pam",
 | 
			
		||||
    "*.service",
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										18
									
								
								src/lib/state.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								src/lib/state.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
#!/hint/bash
 | 
			
		||||
#
 | 
			
		||||
# SPDX-License-Identifier: GPL-3.0-or-later
 | 
			
		||||
 | 
			
		||||
[[ -z ${DEVTOOLS_INCLUDE_STATE_SH:-} ]] || return 0
 | 
			
		||||
DEVTOOLS_INCLUDE_STATE_SH=1
 | 
			
		||||
 | 
			
		||||
set -e
 | 
			
		||||
 | 
			
		||||
readonly XDG_DEVTOOLS_STATE_DIR="${XDG_STATE_HOME:-$HOME/.local/state}/devtools"
 | 
			
		||||
 | 
			
		||||
get_state_folder() {
 | 
			
		||||
	local foldername=$1
 | 
			
		||||
	local path="${XDG_DEVTOOLS_STATE_DIR}/${foldername}"
 | 
			
		||||
 | 
			
		||||
	mkdir --parents -- "$path"
 | 
			
		||||
	printf '%s' "${path}"
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user