Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/src/lib/util/makepkg.sh
blob: d7ec74cb8e055a03259635a859e51cb31f4576d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/hint/bash
#
# SPDX-License-Identifier: GPL-3.0-or-later

[[ -z ${DEVTOOLS_INCLUDE_UTIL_MAKEPKG_SH:-} ]] || return 0
DEVTOOLS_INCLUDE_UTIL_MAKEPKG_SH=1

_DEVTOOLS_LIBRARY_DIR=${_DEVTOOLS_LIBRARY_DIR:-@pkgdatadir@}
# shellcheck source=src/lib/common.sh
source "${_DEVTOOLS_LIBRARY_DIR}"/lib/common.sh
# shellcheck source=src/lib/util/srcinfo.sh
source "${_DEVTOOLS_LIBRARY_DIR}"/lib/util/srcinfo.sh


set -e

makepkg_source_package() {
	if (( EUID != 0 )); then
		[[ -z ${WORKDIR:-} ]] && setup_workdir
		export WORKDIR DEVTOOLS_INCLUDE_COMMON_SH
		fakeroot -- bash -$- -c "source '${BASH_SOURCE[0]}' && ${FUNCNAME[0]}"
		return
	fi
	(
		# shellcheck disable=SC2030 disable=SC2031
		export LIBMAKEPKG_LINT_PKGBUILD_SH=1
		lint_pkgbuild() { :; }

		# shellcheck disable=SC2030 disable=SC2031
		export LIBMAKEPKG_SRCINFO_SH=1
		write_srcinfo() { print_srcinfo; }

		# explicitly instruct makepkg to not sign the source package, even when
		# the BUILDENV array in makepkg.conf contains 'sign'
		set +e -- -F --source --nosign
		# shellcheck source=/usr/bin/makepkg
		source "$(command -v makepkg)"
	)
}

makepkg_generate_integrity() {
	if [[ -z ${DEVTOOLS_GENERATE_INTEGRITY} ]]; then
		[[ -z ${WORKDIR:-} ]] && setup_workdir
		export WORKDIR DEVTOOLS_INCLUDE_COMMON_SH
		bash -$- -c "DEVTOOLS_GENERATE_INTEGRITY=1; source '${BASH_SOURCE[0]}' && ${FUNCNAME[0]}"
		return
	fi
	(
		# shellcheck disable=SC2030 disable=SC2031
		export LIBMAKEPKG_LINT_PKGBUILD_SH=1
		lint_pkgbuild() { :; }

		set +e -- --geninteg
		# shellcheck source=/usr/bin/makepkg
		source "$(command -v makepkg)"
	)
}