blob: 0eff4652bc056e9724f944e3496a4a4203a03393 (
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
# Maintainer: Vitalii Kuzhdin <vitaliikuzhdin@gmail.com>
_builders=(
"slsa-builder-docker"
"slsa-builder-go"
)
_generators=(
"slsa-generator-container"
"slsa-generator-generic"
)
_binname=(
"${_builders[@]}"
"${_generators[@]}"
)
pkgbase="slsa-github-generator"
pkgname=(
"${pkgbase}"
"${pkgbase}-common"
"${_binname[@]}"
)
pkgver=2.1.0
pkgrel=3
pkgdesc="Language-agnostic SLSA provenance generation for Github Actions"
arch=('x86_64')
url="https://github.com/slsa-framework/${pkgbase}"
license=('Apache-2.0')
makedepends=(
'git'
'go'
)
_pkgsrc="${pkgbase}"
source=("${_pkgsrc}::git+${url}.git#tag=v${pkgver}")
sha256sums=('6a6c6b33364e6bd0ff8af4887e4a79a9a8aeef67fdf6850fa862b16658dcaef7')
prepare() {
export GOMODCACHE="${srcdir}/go-mod-cache"
cd "${srcdir}/${_pkgsrc}"
go mod download -x
chmod -R ug+Xwr "${GOMODCACHE}"
mkdir -p "build" "completions"
}
build() {
export CGO_CPPFLAGS="${CPPFLAGS}"
export CGO_CFLAGS="${CFLAGS}"
export CGO_CXXFLAGS="${CXXFLAGS}"
export CGO_LDFLAGS="${LDFLAGS}"
export GOCACHE="${srcdir}/go-cache"
export GOMODCACHE="${srcdir}/go-mod-cache"
export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw"
cd "${srcdir}/${_pkgsrc}"
for _builder in "${_builders[@]}"; do
go build -v -o ./"build/${_builder}" -ldflags "\
-X ${url#https://}/version.Version=${pkgver}" \
./"internal/builders/${_builder#slsa-builder-}"
done
for _generator in "${_generators[@]}"; do
go build -v -o ./"build/${_generator}" -ldflags "\
-X ${url#https://}/version.Version=${pkgver}" \
./"internal/builders/${_generator#slsa-generator-}"
done
for _name in "${_binname[@]}"; do
if [[ $_name != "slsa-builder-go" ]]; then
for _sh in bash fish powershell zsh; do
./"build/${_name}" completion "${_sh}" > "completions/${_name}.${_sh}"
done
fi
done
}
check() {
cd "${srcdir}/${_pkgsrc}"
go test ./...
}
package_slsa-github-generator() {
pkgdesc+=" (meta)"
arch=('any')
depends=(
"${_binname[@]/%/"=${pkgver}-${pkgrel}"}"
)
}
package_slsa-github-generator-common() {
pkgdesc+=" (common files)"
arch=('any')
cd "${srcdir}/${_pkgsrc}"
install -vDm644 "CHANGELOG.md" "${pkgdir}/usr/share/doc/${pkgbase}/CHANGELOG.md"
install -vDm644 "README.md" "${pkgdir}/usr/share/doc/${pkgbase}/README.md"
install -vDm644 "LICENSE" "${pkgdir}/usr/share/licenses/${pkgbase}/LICENSE"
}
for _name in "${_binname[@]}"; do
eval "
package_${_name}() {
pkgdesc+=' (${_name##*-} target)'
url+='/tree/main/internal/builders/${_name##*-}'
depends+=(
'${pkgbase}-common=${pkgver}-${pkgrel}'
'glibc'
)
cd \"\${srcdir}/${_pkgsrc}\"
install -vDm755 'build/${_name}' \"\${pkgdir}/usr/bin/${_name}\"
if [[ '${_name}' != 'slsa-builder-go' ]]; then
cd 'completions'
install -vDm644 '${_name}.bash' \"\${pkgdir}/usr/share/bash-completion/completions/${_name}\"
install -vDm644 '${_name}.fish' \"\${pkgdir}/usr/share/fish/vendor_completions.d/${_name}.fish\"
install -vDm644 '${_name}.powershell' \"\${pkgdir}/usr/share/powershell/Completions/${_name}.ps1\"
install -vDm644 '${_name}.zsh' \"\${pkgdir}/usr/share/zsh/site-functions/_${_name}\"
fi
}"
done
|