Date: Tuesday, March 25, 2014 @ 03:20:56
  Author: thestinger
Revision: 108219

pdnsd: run as pdnsd user, not root

This also renames /etc/pdnsd.conf.sample to /etc/pdnsd.conf in order to
generate pacnew files. Otherwise, upgrades like this would cause silent
breakage.

Added:
  pdnsd/trunk/pdnsd.install
Modified:
  pdnsd/trunk/PKGBUILD

---------------+
 PKGBUILD      |   24 +++++++++++++++++-------
 pdnsd.install |   22 ++++++++++++++++++++++
 2 files changed, 39 insertions(+), 7 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD    2014-03-25 01:00:48 UTC (rev 108218)
+++ PKGBUILD    2014-03-25 02:20:56 UTC (rev 108219)
@@ -1,16 +1,19 @@
 # $Id$
 # Maintainer: Sergej Pupykin <[email protected]>
+# Contributor: Daniel Micay <[email protected]>
 # Contributor: Henrik Nymann Jensen <[email protected]>
 
 pkgname=pdnsd
 pkgver=1.2.9.a
 _pkgver=${pkgver/.a/a}
-pkgrel=4
+pkgrel=5
 pkgdesc="Proxy DNS server with permanent caching"
 arch=(i686 x86_64)
 url="http://members.home.nl/p.a.rombouts/pdnsd/";
 license=('GPL')
 depends=('glibc')
+backup=(etc/pdnsd.conf)
+install=${pkgname}.install
 
source=(http://members.home.nl/p.a.rombouts/pdnsd/releases/pdnsd-$_pkgver-par.tar.gz
        service)
 md5sums=('2f3e705d59a0f9308ad9504b24400769'
@@ -17,13 +20,20 @@
          '4f86bdbd8495b53341070d5720491996')
 
 build() {
-       cd $srcdir/$pkgname-${_pkgver}
-       ./configure --prefix=/usr --sysconfdir=/etc --sbindir=/usr/bin 
--enable-ipv6
-       make
+  cd "$srcdir/$pkgname-$_pkgver"
+  ./configure --prefix=/usr --sysconfdir=/etc --sbindir=/usr/bin --enable-ipv6
+  make
 }
 
 package() {
-       cd $srcdir/$pkgname-${_pkgver}
-       make DESTDIR=$pkgdir install
-       install -Dm0644 $srcdir/service 
$pkgdir/usr/lib/systemd/system/pdnsd.service
+  cd "$srcdir/$pkgname-$_pkgver"
+  make DESTDIR="$pkgdir" install
+  install -Dm0644 ../service "$pkgdir/usr/lib/systemd/system/pdnsd.service"
+
+  # Rename the configuration file, so users get pacnew files.
+  mv "$pkgdir/etc/pdnsd.conf.sample" "$pkgdir/etc/pdnsd.conf"
+
+  sed -i 's/"nobody"/"pdnsd"/' "$pkgdir/etc/pdnsd.conf"
+
+  chown 184:184 "$pkgdir/var/cache/pdnsd"
 }

Added: pdnsd.install
===================================================================
--- pdnsd.install                               (rev 0)
+++ pdnsd.install       2014-03-25 02:20:56 UTC (rev 108219)
@@ -0,0 +1,22 @@
+post_install() {
+  getent group pdnsd &>/dev/null || groupadd -g 184 pdnsd >/dev/null
+  getent passwd pdnsd &>/dev/null || useradd -u 184 -g pdnsd -d /var/lib/pdnsd 
-c 'Proxy DNS server' -s /bin/nologin pdnsd >/dev/null
+  true
+}
+
+post_upgrade() {
+  if [[ $(vercmp $2 1.2.9.a-5) -le 0 ]]; then
+    # in case the user/group were already created as recommended by the wiki
+    userdel pdnsd &>/dev/null
+    groupdel pdnsd &>/dev/null
+
+    post_install
+    chown -R 184:184 /var/cache/pdnsd
+  fi
+}
+
+post_remove() {
+  getent passwd pdnsd &>/dev/null && userdel pdnsd >/dev/null
+  getent group pdnsd &>/dev/null && groupdel pdnsd >/dev/null
+  true
+}

Reply via email to