void-packages/srcpkgs/runit/template
Érico Rolim 7b29471bd8 srcpkgs: don't append CFLAGS outside of funtions.
Package templates are sourced multiple times during the build process,
which can lead to issues when defining variables like CFLAGS using
`CFLAGS+=`, since the contents will be added multiple times. This can
lead to a build command with `-static -static`, for example. Adding to
CFLAGS inside functions is safe, since functions are run only once.
2020-08-22 04:33:45 +00:00

53 lines
1.4 KiB
Bash

# Template file for 'runit'
pkgname=runit
version=2.1.2
revision=11
build_style="gnu-makefile"
wrksrc="admin"
build_wrksrc="${pkgname}-${version}/src"
short_desc="A UNIX init scheme with service supervision"
maintainer="Orphaned <orphan@voidlinux.org>"
license="BSD-3-Clause"
homepage="http://smarden.org/runit/"
distfiles="http://smarden.org/runit/runit-$version.tar.gz"
checksum=6fd0160cb0cf1207de4e66754b6d39750cff14bb0aa66ab49490992c0c47ba18
build_options="static"
if [ "$build_option_static" ]; then
CFLAGS="-static"
LDFLAGS="-static"
fi
pre_build() {
sed -e 's,sbin/runit,usr/bin/runit,g' -i runit.h
echo "$CC -D_GNU_SOURCE $CFLAGS" >conf-cc
echo "$CC $LDFLAGS -Wl,-z -Wl,noexecstack" >conf-ld
# set default service path to /var/service
sed -i -e 's:^char \*varservice ="/service/";$:char \*varservice ="/var/service/";:' sv.c
# change type short to gid_t for getgroups(2) and setgroups(2)
sed -i -e 's:short x\[4\];$:gid_t x[4];:' chkshsgr.c
}
do_install() {
vlicense ../package/COPYING
# default services
vmkdir var
ln -s ../run/runit/runsvdir/current ${DESTDIR}/var/service
local f
for f in chpst runit runit-init runsv runsvchdir runsvdir \
sv svlogd utmpset; do
vbin $f
done
cd ..
for f in man/*; do
vman $f
done
vinstall ${FILESDIR}/_sv 644 usr/share/zsh/site-functions
vinstall ${FILESDIR}/sv 644 usr/share/bash-completion/completions
}