summaryrefslogtreecommitdiff
path: root/src/chroot-tools/hooks-check.sh
blob: 730abc52f211f6a3dba9964a21de5ddab4f6e7c3 (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
#!/hint/bash -euE -o pipefail
# Copyright (C) 2013, 2017 Luke Shumaker <lukeshu@parabola.nu>
# Copyright (C) 2020 bill-auger <bill-auger@programmer.net>
#
# License: GNU GPLv2+
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.


source "$(librelib blacklist)"

hook_check_pkgbuild+=("check_pkgbuild_nonfree")
check_pkgbuild_nonfree() {
	local retval=0

	sudo -EH -u "$LIBREUSER" pkgbuild-check-nonfree -f || retval=$?
	pkgbuild-summarize-nonfree -w $retval

	if (( $retval & ($_E_DEP_NONFREE | $_E_PKG_NONFREE) ))
	then
		# this may fail when a blacklist entry exists for this package,
		#   but no libre replacement was published before the next repo sync
		# in such cases, blacklist.sh::blacklist-get-rep() will not find
		#   it in the repos, and will treat it as a non-free package, aborting the build
		# perhaps that logic could be adapted to silently allow this case to pass,
		#         but it's probably bestjto ask the user, instead
		warning "Are you making a libre replacement for this package? [y/N]"
		read -N 1 -s < /dev/tty ; echo ;
		[[ $REPLY =~ ^[Yy]$ ]] && retval=0
	fi

	return $retval
}

#hook_check_pkgbuild+=("check_pkgbuild_namcap")
check_pkgbuild_namcap() {
	sudo -EH -u "$LIBREUSER" namcap PKGBUILD
}

#hook_check_pkg+=("check_pkg")
check_pkg() {
	# TODO
	:
}