summaryrefslogtreecommitdiff
path: root/pcr/libreboot-utils/PKGBUILD
blob: d18125a1d22179a4e97380d9a92bb72b5369d604 (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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# Copyright (C) 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
# Copyright (C) 2022 Wael Karram <wael@waelk.tech>
# SPDX-License-Identifier: CC0-1.0
# Maintainers: Parabola hackers <dev@lists.parabola.nu>

pkgname=libreboot-utils
pkgrel=2
_upstream_ver=20211122
pkgver=4.15.libreboot${_upstream_ver}
pkgdesc="Misc. Coreboot/Libreboot utils (bucts, cbfstool, ECtool, nvramtool, superiotool)"
url="https://libreboot.org/"
arch=('x86_64' 'i686' 'armv7h')
license=('GPL2')
makedepends=('pciutils')

_mirror="https://mirrors.mit.edu/libreboot" # use a mirror per libreboot's request
source=(${_mirror}/testing/${_upstream_ver}/libreboot-${_upstream_ver}_src.tar.xz{,.sig})
sha256sums=('e8a610e51e668c34627a6d9c048c554592fd2c2ab4dbcad83c85c06d132e5ad1'
            '4442fc225383e1edf8f45e1aecba81868ae43db19978f15c17828389364c0434')
sha512sums=('3eac75b33bc6d2874c3ca1ad2392db7287992cf91d37879bb3244dbd6716bc7ffa3f8d31e15d821899e91a55b6fe665d918bea4e9da92e5e98345e9bcbe1bb95'
            '3a532ecef550ef27b723845544e91ff6b13ed6f2f1188d40fdeb7b3c416be619ff58103c3b01cd52ff88c28df6d419d2113b92d0b8ba36d1a74cfc16f70e0e63')
validpgpkeys=('98CCDDF8E56047F475C044BDD0C62464FA8B4856') # Leah Rowe

prepare() {
	# Replace sbin with bin in the makefiles.
	cd "$srcdir/libreboot-${_upstream_ver}_src/coreboot/default/util/bucts/"
	sed 's#/sbin#/bin#' -i Makefile
	cd "$srcdir/libreboot-${_upstream_ver}_src/coreboot/default/util/cbfstool/"
	sed 's#/sbin#/bin#' -i Makefile
	cd "$srcdir/libreboot-${_upstream_ver}_src/coreboot/default/util/ectool/"
	sed 's#/sbin#/bin#' -i Makefile
	cd "$srcdir/libreboot-${_upstream_ver}_src/coreboot/default/util/nvramtool/"
	sed 's#/sbin#/bin#' -i Makefile
	cd "$srcdir/libreboot-${_upstream_ver}_src/coreboot/default/util/superiotool/"
	sed 's#/sbin#/bin#' -i Makefile

	# Remove uneeded files.
	cd "$srcdir/libreboot-${_upstream_ver}_src/coreboot/default/"
	rm -rf tests
	rm -rf spd
	rm -rf payloads
	rm -rf Documentation
}

build() {
	# Get to the directory.
	cd "$srcdir/libreboot-${_upstream_ver}_src/coreboot/default/util/"

	# Bucts uses port-mapped I/O which doesn't exist on armv7h, so
	# it fails to compile when including sys/io.h. And it's only
	# useful for x86 computers anyway as it's supposed to run on
	# computers with an I945 chipset.
	#
	# Note that it could also be dangerous to use for people that
	# are not installing Libreboot or that don't know what they
	# are doing. In case it happens, removing the CMOS battery and
	# all other power sources should reset the BUC.TS register to
	# its default value and enable the computer to boot again.
	if [ "${CARCH}" = "i686" -o "${CARCH}" = "x86_64" ] ; then
		# Build bucts.
		make -C bucts
	fi

	# Build cbfstool.
	case "${CARCH}" in
		armv7h) make -C cbfstool;;
		#i686) make -C cbfstool;; #broken
		x86_64) make -C cbfstool;;
	esac
	# Build ECtool.
	make -C ectool
	# Build nvramtool.
	make -C nvramtool
	# Build superiotool.
	make -C superiotool
}

package() {
	# Get to the directory.
	cd "$srcdir/libreboot-${_upstream_ver}_src/coreboot/default/util/"

	# Set directories up.
	install -d "${pkgdir}"/usr/bin "${pkgdir}"/usr/share/man/man8
	# Install bucts.
	install -Dm755 bucts/bucts "${pkgdir}"/usr/bin/bucts
	# Install cbfstool.
	case "${CARCH}" in
		armv7h) install -Dm755 cbfstool/cbfstool "${pkgdir}"/usr/bin/cbfstool;;
		#i686) install -Dm755 cbfstool/cbfstool "${pkgdir}"/usr/bin/cbfstool;; #broken
		x86_64) install -Dm755 cbfstool/cbfstool "${pkgdir}"/usr/bin/cbfstool;;
	esac
	# Install ECtool.
	install -Dm755 ectool/ectool "${pkgdir}"/usr/bin/ectool
	# Install nvramtool.
	install -Dm755 nvramtool/nvramtool "${pkgdir}"/usr/bin/nvramtool
	install -m644 nvramtool/cli/nvramtool.8 "${pkgdir}"/usr/share/man/man8
	# Install superiotool.
	install -Dm755 superiotool/superiotool "${pkgdir}"/usr/bin/superiotool
	install -m644 superiotool/superiotool.8 "${pkgdir}"/usr/share/man/man8
}