Commit 2587acda authored by Jouke Witteveen's avatar Jouke Witteveen
Browse files

Use pkg-config to obtain the systemd system unit directory

This ensures the units are installed correctly if systemd is installed
in an alternate location like /lib/systemd. Idem for the location of
profile-based units.

Based on a proposal by: Mike Gilbert <floppym@gentoo.org>
parent 11f6a8ce
export VERSION = 1.0
PKG_CONFIG ?= pkg-config
sd_var = $(shell $(PKG_CONFIG) --variable=systemd$(1) systemd)
systemdsystemconfdir = $(call sd_var,systemconfdir)
systemdsystemunitdir = $(call sd_var,systemunitdir)
.PHONY: install tarball pkgbuild clean
install:
......@@ -15,35 +21,38 @@ install:
install -m755 src/lib/{auto.action,network} $(DESTDIR)/usr/lib/network/
# Scripts
install -d $(DESTDIR)/usr/bin
sed -e "s|@systemdsystemconfdir@|$(systemdsystemconfdir)|g" \
-e "s|@systemdsystemunitdir@|$(systemdsystemunitdir)|g" \
src/netctl.in > $(DESTDIR)/usr/bin/netctl
chmod 755 $(DESTDIR)/usr/bin/netctl
install -m755 \
src/netctl \
src/netctl-auto \
src/wifi-menu \
$(DESTDIR)/usr/bin/
install -Dm755 src/ifplugd.action $(DESTDIR)/etc/ifplugd/netctl.action
# Services
install -d $(DESTDIR)/usr/lib/systemd/system
install -m644 services/*.service $(DESTDIR)/usr/lib/systemd/system/
install -d $(DESTDIR)$(systemdsystemunitdir)
install -m644 services/*.service $(DESTDIR)$(systemdsystemunitdir)/
tarball: netctl-$(VERSION).tar.xz
netctl-$(VERSION).tar.xz:
$(MAKE) -B -C docs
cp src/netctl{,.orig}
sed -i "s/NETCTL_VERSION=.*/NETCTL_VERSION=$(VERSION)/" src/netctl
cp src/netctl.in{,.orig}
sed -i "s|NETCTL_VERSION=.*|NETCTL_VERSION=$(VERSION)|" src/netctl.in
git stash save -q
git archive -o netctl-$(VERSION).tar --prefix=netctl-$(VERSION)/ stash
git stash pop -q
mv src/netctl{.orig,}
tar --exclude-vcs --transform "s%^%netctl-$(VERSION)/%" --owner=root --group=root --mtime=./netctl-$(VERSION).tar -rf netctl-$(VERSION).tar docs/*.[1-8]
mv src/netctl.in{.orig,}
tar --exclude-vcs --transform "s|^|netctl-$(VERSION)/|" --owner=root --group=root --mtime=./netctl-$(VERSION).tar -rf netctl-$(VERSION).tar docs/*.[1-8]
xz netctl-$(VERSION).tar
gpg --detach-sign $@
pkgbuild: PKGBUILD
PKGBUILD: netctl-$(VERSION).tar.xz
sed -e "s/%pkgver%/$(VERSION)/g" \
-e "s/%md5sum%/$(shell md5sum $< | cut -d ' ' -f 1)/" \
-e "s/%md5sum.sig%/$(shell md5sum $<.sig | cut -d ' ' -f 1)/" \
contrib/PKGBUILD > $@
PKGBUILD: netctl-$(VERSION).tar.xz contrib/PKGBUILD.in
sed -e "s|@pkgver@|$(VERSION)|g" \
-e "s|@md5sum@|$(shell md5sum $< | cut -d ' ' -f 1)|" \
-e "s|@md5sum.sig@|$(shell md5sum $<.sig | cut -d ' ' -f 1)|" \
$(lastword $^) > $@
upload: netctl-$(VERSION).tar.xz
scp $< $<.sig nymeria.archlinux.org:/srv/ftp/other/packages/netctl
......
# Maintainer: Jouke Witteveen <j.witteveen@gmail.com>
pkgname=netctl
pkgver=%pkgver%
pkgver=@pkgver@
pkgrel=1
pkgdesc='Profile based systemd network management'
url='http://projects.archlinux.org/netctl.git/'
license=('GPL')
groups=('base')
depends=('coreutils' 'iproute2' 'openresolv')
#makedepends=('asciidoc') # The source tarball includes pre-built documentation.
# The source tarball includes pre-built (using asciidoc) documentation.
makedepends=('pkg-config')
optdepends=('dialog: for the menu based wifi assistant'
'dhclient: for DHCP support (or dhcpcd)'
'dhcpcd: for DHCP support (or dhclient)'
......@@ -21,8 +22,8 @@ optdepends=('dialog: for the menu based wifi assistant'
)
source=(ftp://ftp.archlinux.org/other/packages/netctl/netctl-${pkgver}.tar.xz{,.sig})
arch=('any')
md5sums=('%md5sum%'
'%md5sum.sig%')
md5sums=('@md5sum@'
'@md5sum.sig@')
package() {
cd "$srcdir/netctl-${pkgver}"
......
......@@ -100,13 +100,13 @@ switch_to() {
}
unit_enable() {
local unit="/etc/systemd/system/netctl@$(sd_escape "$1").service"
local unit="@systemdsystemconfdir@/netctl@$(sd_escape "$1").service"
if [[ -e $unit ]]; then
report_error "A unit file for profile '$1' already exists"
return 1
fi
load_profile "$1"
echo ".include /usr/lib/systemd/system/netctl@.service" > "$unit"
echo ".include @systemdsystemunitdir@/netctl@.service" > "$unit"
echo -e "\n[Unit]" >> "$unit"
[[ -n $Description ]] && echo "Description=$Description" >> "$unit"
if [[ -n ${BindsToInterfaces=$Interface} ]]; then
......@@ -126,7 +126,7 @@ unit_enable() {
}
unit_disable() {
local unit="/etc/systemd/system/netctl@$(sd_escape "$1").service"
local unit="@systemdsystemconfdir@/netctl@$(sd_escape "$1").service"
if sd_call "is-enabled --quiet" "$1" &> /dev/null; then
sd_call disable "$1"
fi
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment