]> arthur.barton.de Git - netatalk.git/commitdiff
systemd service file use PIDFile and ExecReload
authorRalph Boehme <sloowfranklin@gmail.com>
Thu, 7 Feb 2013 11:25:13 +0000 (12:25 +0100)
committerRalph Boehme <sloowfranklin@gmail.com>
Mon, 11 Feb 2013 13:51:51 +0000 (14:51 +0100)
Add --with-lockfile=PATH configure option for specifying an
alternative path for the netatalk lockfile.

Implements FR #70.

NEWS
configure.ac
distrib/initscripts/Makefile.am
distrib/initscripts/service.systemd.tmpl
etc/netatalk/netatalk.c
include/atalk/paths.h
macros/netatalk.m4
macros/summary.m4

diff --git a/NEWS b/NEWS
index 41aac88cfad0138844b1be44b164bce56b21b8bd..75a922918f94977e15215c7702a58d69566db08c 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,10 @@ Changes in 3.0.3
 ================
 * UPD: afpd: Increase default DSI server quantum to 1 MB
 * UPD: bundled libevent2 is now static
+* NEW: --with-lockfile=PATH configure option for specifying an
+       alternative path for the netatalk lockfile.
+* UPD: systemd service file use PIDFile and ExecReload.
+       From FR #70.
 
 Changes in 3.0.2
 ================
index bfb578cae8108a7aa947a18cd395f2efad5384e1..3c8843d15bea9f3336cdfec0c42f6745b3ca0284 100644 (file)
@@ -180,10 +180,14 @@ AC_NETATALK_SENDFILE
 dnl Check whether bundled libevent shall not be used
 AC_NETATALK_LIBEVENT
 
+dnl libatalk API checks
+AC_DEVELOPER
+
 dnl FHS stuff has to be done last because it overrides other defaults
 AC_NETATALK_FHS
 
-AC_DEVELOPER
+dnl netatalk lockfile path, must come after AC_NETATALK_FHS
+AC_NETATALK_LOCKFILE
 
 CFLAGS="-I\$(top_srcdir)/include -I\$(top_srcdir)/sys $CFLAGS"
 UAMS_PATH="${uams_path}"
index 5bdf95103016fb7796cfcdffc838bab4a56405ca..2d1cb3ab566b63d8fc30e744faa794c1a6d5a210 100644 (file)
@@ -13,6 +13,7 @@ pkgconfdir = @PKGCONFDIR@
            -e s@:SBINDIR:@${sbindir}@ \
            -e s@:ETCDIR:@${pkgconfdir}@ \
            -e s@:NETATALK_VERSION:@${NETATALK_VERSION}@ \
+           -e s@:PATH_NETATALK_LOCK:@${PATH_NETATALK_LOCK}@ \
            <$< >$@
 
 GENERATED_FILES = \
index d21dde924f75c02d658b7d6b0d5bddf00886bfe4..670f1445c8c10c105c9e5ba297ad70c61ea19dec 100644 (file)
@@ -10,6 +10,8 @@ After=syslog.target network.target avahi-daemon.service
 Type=forking
 GuessMainPID=no
 ExecStart=:SBINDIR:/netatalk
+PIDFile=:PATH_NETATALK_LOCK:
+ExecReload=/bin/kill -HUP $MAINPID
 Restart=always
 RestartSec=1
 
index 9ac72c5ad5d4cc8ebc5530f3f090d1305fd24c11..1a31a3a9a5b595026adf3ae08525ce47b0a6540a 100644 (file)
@@ -209,7 +209,7 @@ static void kill_childs(int sig, ...)
 /* this get called when error conditions are met that require us to exit gracefully */
 static void netatalk_exit(int ret)
 {
-    server_unlock(_PATH_NETATALK_LOCK);
+    server_unlock(PATH_NETATALK_LOCK);
     exit(ret);
 }
 
@@ -270,13 +270,13 @@ int main(int argc, char **argv)
         }
     }
 
-    if (check_lockfile("netatalk", _PATH_NETATALK_LOCK) != 0)
+    if (check_lockfile("netatalk", PATH_NETATALK_LOCK) != 0)
         exit(EXITERR_SYS);
 
     if (!debug && daemonize(0, 0) != 0)
         exit(EXITERR_SYS);
 
-    if (create_lockfile("netatalk", _PATH_NETATALK_LOCK) != 0)
+    if (create_lockfile("netatalk", PATH_NETATALK_LOCK) != 0)
         exit(EXITERR_SYS);
 
     sigfillset(&blocksigs);
index ba4d2f23e3e78d62f973990b4998a498d427b8f7..f5f6486cfb634d0e585cef21923c7bd0c3e0928b 100644 (file)
 #define ATALKPATHCAT(a,b) a/**/b
 #endif
 
-
-/* lock file path. this should be re-organized a bit. */
-#if ! defined (_PATH_LOCKDIR)
-#  if defined (FHS_COMPATIBILITY) || defined (__NetBSD__) || defined (__OpenBSD__)
-#    define _PATH_LOCKDIR      "/var/run/"
-#  elif defined (BSD4_4)
-#    ifdef MACOSX_SERVER
-#      define _PATH_LOCKDIR    "/var/run/"
-#    else
-#      define _PATH_LOCKDIR    "/var/spool/lock/"
-#    endif
-#  elif defined (linux)
-#    define _PATH_LOCKDIR      "/var/lock/"
-#  else
-#    define _PATH_LOCKDIR      "/var/spool/locks/"
-#  endif
-#endif
-
-
-/*
- * netatalk paths
- */
-#define _PATH_AFPTKT           "/tmp/AFPtktXXXXXX"
-#if defined (FHS_COMPATIBILITY) || defined (__NetBSD__) || defined (__OpenBSD__)
-#  define _PATH_NETATALK_LOCK  ATALKPATHCAT(_PATH_LOCKDIR,"netatalk.pid")
-#else
-#  define _PATH_NETATALK_LOCK  ATALKPATHCAT(_PATH_LOCKDIR,"netatalk")
-#endif
-
 #endif /* atalk/paths.h */
 
index e77aac53ffdb1d3ed72b7bb762ac7093d7a1b218..72cbaebd091996929daafc23a95523114d0ba16f 100644 (file)
@@ -60,13 +60,47 @@ AC_ARG_ENABLE(fhs,
                use_pam_so=yes
                AC_DEFINE(FHS_COMPATIBILITY, 1, [Define if you want compatibily with the FHS])
                AC_MSG_RESULT([yes])
+        atalk_cv_fhs_compat=yes
        else
                AC_MSG_RESULT([no])
+        atalk_cv_fhs_compat=no
        fi
        ],[
                AC_MSG_RESULT([no])
-       ]
-)])
+        atalk_cv_fhs_compat=no
+])])
+
+dnl netatalk lockfile path
+AC_DEFUN([AC_NETATALK_LOCKFILE], [
+    AC_MSG_CHECKING([netatalk lockfile path])
+    AC_ARG_WITH(
+        lockfile,
+        [AS_HELP_STRING([--with-lockfile=PATH],[Path of netatalk lockfile])],
+        ac_cv_netatalk_lock=$withval,
+        ac_cv_netatalk_lock=""
+    )
+    if test -z "$ac_cv_netatalk_lock" ; then
+        ac_cv_netatalk_lock=/var/spool/locks/netatalk
+        if test x"$atalk_cv_fhs_compat" = x"yes" ; then
+            ac_cv_netatalk_lock=/var/run/netatalk.pid
+        else
+            case "$host_os" in
+            *freebsd*)
+                ac_cv_netatalk_lock=/var/spool/lock/netatalk
+                ;;
+            *netbsd*|*openbsd*)
+                ac_cv_netatalk_lock=/var/run/netatalk.pid
+                ;;
+            *linux*)
+                ac_cv_netatalk_lock=/var/lock/netatalk
+                ;;
+            esac
+        fi
+    fi
+    AC_DEFINE_UNQUOTED(PATH_NETATALK_LOCK, ["$ac_cv_netatalk_lock"], [netatalk lockfile path])
+    AC_SUBST(PATH_NETATALK_LOCK, ["$ac_cv_netatalk_lock"])
+    AC_MSG_RESULT([$ac_cv_netatalk_lock])
+])
 
 dnl 64bit platform check
 AC_DEFUN([AC_NETATALK_64BIT_LIBS], [
index 6c696fc2ee07bb0a9b79c41d257b8b21470476ad..f4d99863f2cc69d8904eb831b516a7e1867e0ba9 100644 (file)
@@ -9,6 +9,8 @@ AC_DEFUN([AC_NETATALK_CONFIG_SUMMARY], [
        else
                AC_MSG_RESULT([         none])
        fi
+       AC_MSG_RESULT([    Netatalk lockfile:])
+       AC_MSG_RESULT([         $ac_cv_netatalk_lock])
        AC_MSG_RESULT([    AFP:])
        AC_MSG_RESULT([         Extended Attributes: $neta_cv_eas])
        AC_MSG_RESULT([         ACL support: $with_acl_support])