blob: 718839c2c9d84530f768b9195fea243c65744781 (
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
|
# Maintainer: Fabian Leditzky <spookfish@ldsoft.dev>
# Parts of this PKGBUILD are based on the PKGBUILD for extra/salt
# NOTES:
# - Set env var SALT_ADDITIONAL_PIP_PACKAGES for additional onedir pip packages.
# Example: SALT_ADDITIONAL_PIP_PACKAGES='gitpython pynacl' makepkg
# The additional packages are listed in the package description.
# - makepkg will complain about packaging issues because the .pyc files (python bytecode)
# contain the absolute path of the resource during the build, meaning $srcdir references
# are found in the final build. This does not appear to cause any real issues.
#
pkgname=salt-onedir
provides=('salt')
pkgver=3007.5
pkgrel=1
pkgdesc="Central system and configuration manager (onedir installation +[${SALT_ADDITIONAL_PIP_PACKAGES}])"
arch=('x86_64' 'aarch64')
url='http://saltstack.org/'
license=('Apache-2.0')
replaces=('salt-zmq' 'salt-raet')
conflicts=('salt-zmq' 'salt-raet' 'salt')
depends=()
makedepends=('rsync')
optdepends=('dmidecode: decode SMBIOS/DMI tables')
backup=('etc/logrotate.d/salt'
'etc/salt/master'
'etc/salt/minion')
# The source tarball is downloaded because we need various files from pkg/common that are not included in the onedir tarball
source=("https://packages.broadcom.com/artifactory/saltproject-generic/onedir/${pkgver}/salt-${pkgver}-onedir-linux-x86_64.tar.xz"
"https://github.com/saltstack/salt/releases/download/v${pkgver}/salt-${pkgver}.tar.gz"
salt.logrotate
0000-services.patch)
sha256sums=('d20759d2970ec8daeff7c9a5866cf874a08fdd65190f7c9b26d8e942204f7e8a'
'7f572e039059f1a597ba10a9bdc81dcc2375a49c49106581988f506039b3dda5'
'abecc3c1be124c4afffaaeb3ba32b60dfee8ba6dc32189edfa2ad154ecb7a215'
'6eb7d8840c40da7070167d3c742e7337c45f80d639fb7ef72f196fcaa2843469')
prepare() {
# Extracted salt source tarball
saltsrc="${srcdir}/salt-${pkgver}"
cd "${saltsrc}"
# patch services to run /opt/salt/bin/* binaries directly
# not strictly required as we symlink into /usr/bin
patch -Np1 -i ../0000-services.patch
}
build() {
# Extracted salt-onedir tarball
onedir="${srcdir}/salt"
# Add additional python deps for Salt
if [[ -n ${SALT_ADDITIONAL_PIP_PACKAGES} ]]; then
"${onedir}"/bin/pip3 install ${SALT_ADDITIONAL_PIP_PACKAGES}
fi
}
package() {
# Extracted salt-onedir tarball
onedir="${srcdir}/salt"
# Extracted salt source tarball
saltsrc="${srcdir}/salt-${pkgver}"
# Copy over our onedir package
mkdir "${pkgdir}"/opt
rsync -a "${onedir}/" "${pkgdir}"/opt/salt
# Create relative symlinks in /usr/bin for all relevant binaries
# These will link into the /opt/salt/bin directory
mkdir "${pkgdir}"/usr/bin -p
for bin in "${pkgdir}"/opt/salt/{salt,spm}*; do
ln -sr "${bin}" "${pkgdir}"/usr/bin
done
install -Dm644 salt.logrotate "$pkgdir"/etc/logrotate.d/salt
# Install various files from the source tarball into the package
cd "${saltsrc}"
# default config
install -v -Dm644 conf/master "$pkgdir/etc/salt/master"
install -v -Dm644 conf/minion "$pkgdir/etc/salt/minion"
# systemd services
for _svc in salt-master.service salt-syndic.service salt-minion.service salt-api.service; do
install -v -Dm644 pkg/common/$_svc "$pkgdir/usr/lib/systemd/system/$_svc"
done
# completions
# For some reason there is no more pkg/common/salt.bash
# The rpm one has the same content.
install -v -Dm644 pkg/rpm/salt.bash "$pkgdir/usr/share/bash-completion/completions/salt"
install -v -Dm644 pkg/common/salt.zsh "$pkgdir/usr/share/zsh/site-functions/_salt"
install -v -Dm644 -t "$pkgdir/usr/share/fish/vendor_completions.d" pkg/common/fish-completions/*
}
# vim:set ts=2 sw=2 et:
|