Empty out dead project.

And leave a janitorial OWNERS to prevent necromancy.

Test: treehugger
Change-Id: I33f5f419909f6c48d56449f7daebd80f9561bc2e
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index e723211..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,28 +0,0 @@
-compile
-*~
-*.tar.gz
-config.rpath
-Makefile
-Makefile.in
-*.lo
-*.la
-*.o
-.deps/
-.libs/
-*.cache
-stamp-*
-README
-aclocal.m4
-config.guess
-config.h.in
-config.log
-config.status
-config.sub
-configure
-depcomp
-install-sh
-libdaemon.spec
-libtool
-ltmain.sh
-missing
-*.pc
diff --git a/Android.bp b/Android.bp
deleted file mode 100644
index 452fd2a..0000000
--- a/Android.bp
+++ /dev/null
@@ -1,23 +0,0 @@
-cc_library_shared {
-    name: "libdaemon",
-
-    srcs: [
-        "libdaemon/dexec.c",
-        "libdaemon/dfork.c",
-        "libdaemon/dlog.c",
-        "libdaemon/dnonblock.c",
-        "libdaemon/dpid.c",
-        "libdaemon/dsignal.c",
-    ],
-
-    export_include_dirs: ["."],
-
-    cflags: [
-        "-Wall",
-        "-Werror",
-        "-Wno-error=user-defined-warnings",
-        "-Wno-unused-parameter",
-        "-DHAVE_CONFIG_H",
-        "-DLOCALSTATEDIR=\"/var\"",
-    ],
-}
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index 9fefbba..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (C) 2003-2008 Lennart Poettering
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is furnished to do
-so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/MODULE_LICENSE_MIT b/MODULE_LICENSE_MIT
deleted file mode 100644
index e69de29..0000000
--- a/MODULE_LICENSE_MIT
+++ /dev/null
diff --git a/Makefile.am b/Makefile.am
deleted file mode 100644
index ef13592..0000000
--- a/Makefile.am
+++ /dev/null
@@ -1,59 +0,0 @@
-# This file is part of libdaemon.
-#
-# Copyright 2003-2008 Lennart Poettering
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-
-ACLOCAL_AMFLAGS = -I m4
-
-EXTRA_DIST=bootstrap.sh LICENSE
-SUBDIRS=libdaemon doc
-
-if EXAMPLES
-SUBDIRS += examples
-endif
-
-pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = pkgconfig/libdaemon.pc
-
-dist_noinst_DATA =
-MAINTAINERCLEANFILES=
-
-if USE_LYNX
-dist_noinst_DATA += README
-MAINTAINERCLEANFILES += README
-
-README:
-	rm -f README
-	$(MAKE) -C doc README
-	ln -s doc/README README
-endif
-
-doxygen:
-	$(MAKE) -C doc doxygen
-
-homepage: dist doxygen
-	test -d $$HOME/homepage/private
-	mkdir -p $$HOME/homepage/private/projects/libdaemon
-	cp libdaemon-@PACKAGE_VERSION@.tar.gz $$HOME/homepage/private/projects/libdaemon
-	cp doc/README.html doc/style.css $$HOME/homepage/private/projects/libdaemon
-	ln -sf README.html $$HOME/homepage/private/projects/libdaemon/index.html
-	cp -av doc/reference/ $$HOME/homepage/private/projects/libdaemon/
-
-.PHONY: homepage doxygen
diff --git a/OWNERS b/OWNERS
new file mode 100644
index 0000000..7529cb9
--- /dev/null
+++ b/OWNERS
@@ -0,0 +1 @@
+include platform/system/core:/janitors/OWNERS
diff --git a/bootstrap.sh b/bootstrap.sh
deleted file mode 100755
index 381f31c..0000000
--- a/bootstrap.sh
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/bin/sh
-
-# This file is part of libdaemon.
-#
-# Copyright 2003-2008 Lennart Poettering
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-
-VERSION=1.9
-
-run_versioned() {
-    local P
-    local V
-
-    V=$(echo "$2" | sed -e 's,\.,,g')
-
-    if [ -e "`which $1$V 2> /dev/null`" ] ; then
-        P="$1$V"
-    else
-	if [ -e "`which $1-$2 2> /dev/null`" ] ; then
-            P="$1-$2"
-	else
-	    P="$1"
-	fi
-    fi
-
-    shift 2
-    "$P" "$@"
-}
-
-set -ex
-
-if [ "x$1" = "xam" ] ; then
-    run_versioned automake "$VERSION" -a -c --foreign
-    ./config.status
-else
-    rm -rf autom4te.cache
-    rm -f config.cache
-
-    touch config.rpath
-    test "x$LIBTOOLIZE" = "x" && LIBTOOLIZE=libtoolize
-
-    mkdir -p common
-
-    "$LIBTOOLIZE" -c --force
-    run_versioned aclocal "$VERSION" -I m4
-    run_versioned autoconf 2.59 -Wall
-    run_versioned autoheader 2.59
-    run_versioned automake "$VERSION" -a -c --foreign
-
-    if test "x$NOCONFIGURE" = "x"; then
-        CFLAGS="-g -O0" ./configure --sysconfdir=/etc --localstatedir=/var "$@"
-        make clean
-    fi
-fi
diff --git a/config.h b/config.h
deleted file mode 100644
index f3aede4..0000000
--- a/config.h
+++ /dev/null
@@ -1,209 +0,0 @@
-/* config.h.  Generated from config.h.in by configure.  */
-/* config.h.in.  Generated from configure.ac by autoheader.  */
-
-/* Define to 1 if you have the `asprintf' function. */
-#define HAVE_ASPRINTF 1
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#define HAVE_DLFCN_H 1
-
-/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
-/* #undef HAVE_DOPRNT */
-
-/* Define to 1 if you have the `dup2' function. */
-#define HAVE_DUP2 1
-
-/* Define to 1 if you have the <fcntl.h> header file. */
-#define HAVE_FCNTL_H 1
-
-/* Define to 1 if you have the `fork' function. */
-#define HAVE_FORK 1
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#define HAVE_INTTYPES_H 1
-
-/* Define to 1 if you have the <limits.h> header file. */
-#define HAVE_LIMITS_H 1
-
-/* Define to 1 if you have the <memory.h> header file. */
-#define HAVE_MEMORY_H 1
-
-/* Define to 1 if you have the `memset' function. */
-#define HAVE_MEMSET 1
-
-/* Define to 1 if you have the `select' function. */
-#define HAVE_SELECT 1
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#define HAVE_STDINT_H 1
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#define HAVE_STDLIB_H 1
-
-/* Define to 1 if you have the `strerror' function. */
-#define HAVE_STRERROR 1
-
-/* Define to 1 if you have the <strings.h> header file. */
-#define HAVE_STRINGS_H 1
-
-/* Define to 1 if you have the <string.h> header file. */
-#define HAVE_STRING_H 1
-
-/* Define to 1 if you have the `strrchr' function. */
-#define HAVE_STRRCHR 1
-
-/* Define to 1 if you have the <syslog.h> header file. */
-#define HAVE_SYSLOG_H 1
-
-/* Define to 1 if you have the <sys/ioctl.h> header file. */
-#define HAVE_SYS_IOCTL_H 1
-
-/* Define to 1 if you have the <sys/select.h> header file. */
-#define HAVE_SYS_SELECT_H 1
-
-/* Define to 1 if you have the <sys/socket.h> header file. */
-#define HAVE_SYS_SOCKET_H 1
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#define HAVE_SYS_STAT_H 1
-
-/* Define to 1 if you have the <sys/time.h> header file. */
-#define HAVE_SYS_TIME_H 1
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#define HAVE_SYS_TYPES_H 1
-
-/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
-#define HAVE_SYS_WAIT_H 1
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#define HAVE_UNISTD_H 1
-
-/* Define to 1 if you have the `vfork' function. */
-#define HAVE_VFORK 1
-
-/* Define to 1 if you have the <vfork.h> header file. */
-/* #undef HAVE_VFORK_H */
-
-/* Define to 1 if you have the `vprintf' function. */
-#define HAVE_VPRINTF 1
-
-/* Define to 1 if `fork' works. */
-#define HAVE_WORKING_FORK 1
-
-/* Define to 1 if `vfork' works. */
-#define HAVE_WORKING_VFORK 1
-
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
-   */
-#define LT_OBJDIR ".libs/"
-
-/* Define to 1 if assertions should be disabled. */
-/* #undef NDEBUG */
-
-/* Name of package */
-#define PACKAGE "libdaemon"
-
-/* Define to the address where bug reports for this package should be sent. */
-#define PACKAGE_BUGREPORT "mzqnrzba (at) 0pointer (dot) de"
-
-/* Define to the full name of this package. */
-#define PACKAGE_NAME "libdaemon"
-
-/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "libdaemon 0.14"
-
-/* Define to the one symbol short name of this package. */
-#define PACKAGE_TARNAME "libdaemon"
-
-/* Define to the home page for this package. */
-#define PACKAGE_URL ""
-
-/* Define to the version of this package. */
-#define PACKAGE_VERSION "0.14"
-
-/* Define as the return type of signal handlers (`int' or `void'). */
-#define RETSIGTYPE void
-
-/* Define to the type of arg 1 for `select'. */
-#define SELECT_TYPE_ARG1 int
-
-/* Define to the type of args 2, 3 and 4 for `select'. */
-#define SELECT_TYPE_ARG234 (fd_set *)
-
-/* Define to the type of arg 5 for `select'. */
-#define SELECT_TYPE_ARG5 (struct timeval *)
-
-/* Define to 1 if the `setpgrp' function takes no argument. */
-#define SETPGRP_VOID 1
-
-/* Define to 1 if you have the ANSI C header files. */
-#define STDC_HEADERS 1
-
-/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
-#define TIME_WITH_SYS_TIME 1
-
-/* Enable extensions on AIX 3, Interix.  */
-#ifndef _ALL_SOURCE
-# define _ALL_SOURCE 1
-#endif
-/* Enable GNU extensions on systems that have them.  */
-#ifndef _GNU_SOURCE
-# define _GNU_SOURCE 1
-#endif
-/* Enable threading extensions on Solaris.  */
-#ifndef _POSIX_PTHREAD_SEMANTICS
-# define _POSIX_PTHREAD_SEMANTICS 1
-#endif
-/* Enable extensions on HP NonStop.  */
-#ifndef _TANDEM_SOURCE
-# define _TANDEM_SOURCE 1
-#endif
-/* Enable general extensions on Solaris.  */
-#ifndef __EXTENSIONS__
-# define __EXTENSIONS__ 1
-#endif
-
-
-/* Version number of package */
-#define VERSION "0.14"
-
-/* Enable large inode numbers on Mac OS X 10.5.  */
-#ifndef _DARWIN_USE_64_BIT_INODE
-# define _DARWIN_USE_64_BIT_INODE 1
-#endif
-
-/* Number of bits in a file offset, on hosts where this is settable. */
-/* #undef _FILE_OFFSET_BITS */
-
-/* Define for large files, on AIX-style hosts. */
-/* #undef _LARGE_FILES */
-
-/* Define to 1 if on MINIX. */
-/* #undef _MINIX */
-
-/* Define to 2 if the system does not provide POSIX.1 features except with
-   this defined. */
-/* #undef _POSIX_1_SOURCE */
-
-/* Define to 1 if you need to in order for `stat' and other things to work. */
-/* #undef _POSIX_SOURCE */
-
-/* Define to empty if `const' does not conform to ANSI C. */
-/* #undef const */
-
-/* Define to `int' if <sys/types.h> does not define. */
-/* #undef mode_t */
-
-/* Define to `int' if <sys/types.h> does not define. */
-/* #undef pid_t */
-
-/* Define to `unsigned int' if <sys/types.h> does not define. */
-/* #undef size_t */
-
-/* Define as `fork' if `vfork' does not work. */
-/* #undef vfork */
-
-/* Define to empty if the keyword `volatile' does not work. Warning: valid
-   code using `volatile' can become incorrect without. Disable with care. */
-/* #undef volatile */
diff --git a/configure.ac b/configure.ac
deleted file mode 100644
index c659e37..0000000
--- a/configure.ac
+++ /dev/null
@@ -1,94 +0,0 @@
-# -*- Autoconf -*-
-# Process this file with autoconf to produce a configure script.
-
-# This file is part of libdaemon.
-#
-# Copyright 2003-2008 Lennart Poettering
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-
-AC_PREREQ(2.63)
-
-AC_INIT([libdaemon],[0.14],[mzqnrzba (at) 0pointer (dot) de])
-AC_CONFIG_SRCDIR([libdaemon/dfork.c])
-AC_CONFIG_HEADERS([config.h])
-AC_CONFIG_MACRO_DIR([m4])
-
-AM_INIT_AUTOMAKE([foreign 1.10 -Wall])
-
-AC_SUBST(PACKAGE_URL, [http://0pointer.de/lennart/projects/libdaemon/])
-
-AC_SUBST(LIBDAEMON_VERSION_INFO, [5:0:5])
-
-if type -p stow > /dev/null && test -d /usr/local/stow ; then
-   AC_MSG_NOTICE([*** Found /usr/local/stow: default install prefix set to /usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION} ***])
-   ac_default_prefix="/usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION}"
-fi
-
-m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
-
-# Checks for programs.
-AC_PROG_CC
-AC_PROG_CC_C99 dnl This enable gnu99 if present
-AM_PROG_CC_C_O
-
-AC_USE_SYSTEM_EXTENSIONS
-
-AC_PROG_INSTALL
-AC_PROG_LN_S
-AC_PROG_MAKE_SET
-AC_PROG_LIBTOOL
-
-CC_CHECK_CFLAGS_APPEND([-pipe -Wall -W -Wextra -pedantic -Wformat -Wold-style-definition -Wdeclaration-after-statement -Wfloat-equal -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-noreturn -Wshadow -Wendif-labels -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Winline -Wno-unused-parameter -Wstrict-aliasing])
-
-# Checks for header files.
-AC_HEADER_ASSERT
-AC_HEADER_STDC
-AC_CHECK_HEADERS([fcntl.h limits.h stdlib.h string.h syslog.h unistd.h sys/ioctl.h sys/time.h])
-AC_HEADER_SYS_WAIT
-
-# Checks for typedefs, structures, and compiler characteristics.
-AC_C_CONST
-AC_TYPE_PID_T
-AC_HEADER_TIME
-AC_C_VOLATILE
-
-# Checks for library functions.
-AC_FUNC_FORK
-AC_FUNC_SELECT_ARGTYPES
-AC_FUNC_VPRINTF
-AC_CHECK_FUNCS([select strerror dup2 memset strrchr asprintf])
-AC_TYPE_MODE_T
-AC_FUNC_SETPGRP
-AC_TYPE_SIGNAL
-AC_TYPE_SIZE_T
-
-AC_SYS_LARGEFILE
-
-CC_NOUNDEFINED
-
-ZP_LYNX_DOC
-
-AC_ARG_ENABLE(examples,
-       AS_HELP_STRING([--disable-examples], [Don't build examples during make]),,
-       enable_examples="yes")
-AM_CONDITIONAL(EXAMPLES, [test "$enable_examples" = "yes"])
-
-AC_CONFIG_FILES([libdaemon/Makefile Makefile doc/Makefile doc/README.html doc/doxygen.conf examples/Makefile pkgconfig/libdaemon.pc pkgconfig/libdaemon-uninstalled.pc])
-AC_OUTPUT
diff --git a/doc/.gitignore b/doc/.gitignore
deleted file mode 100644
index 54af4f6..0000000
--- a/doc/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-reference
-README
-README.html
-doxygen.conf
-
diff --git a/doc/Makefile.am b/doc/Makefile.am
deleted file mode 100644
index 140ad1a..0000000
--- a/doc/Makefile.am
+++ /dev/null
@@ -1,47 +0,0 @@
-# This file is part of libdaemon.
-#
-# Copyright 2003-2008 Lennart Poettering
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-
-dist_html_DATA = README.html style.css
-EXTRA_DIST = README.html.in
-
-MAINTAINERCLEANFILES = README.html
-CLEANFILES =
-
-doxygen: doxygen.conf
-	doxygen doxygen.conf
-
-maintainer-clean-local:
-	rm -rf reference
-
-if USE_LYNX
-dist_doc_DATA = README
-MAINTAINERCLEANFILES += README
-README: README.html
-	lynx --dump $^ | sed 's,file://localhost/.*/doc/README.html,README,' | sed 's,file://localhost/.*/doc/reference/,reference/,' > $@
-
-CLEANFILES += README
-endif
-
-tidy: README.html
-	tidy -e < README.html
-
-.PHONY: doxygen tidy
diff --git a/doc/README.html.in b/doc/README.html.in
deleted file mode 100644
index 2c2cccd..0000000
--- a/doc/README.html.in
+++ /dev/null
@@ -1,177 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-15"?> <!-- -*-html-helper-*- -->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-
-<head>
-<title>libdaemon @PACKAGE_VERSION@</title>
-<link rel="stylesheet" type="text/css" href="style.css" />
-</head>
-
-<body>
-<h1><a name="top">libdaemon @PACKAGE_VERSION@</a></h1>
-
-<p><i>Copyright 2003-2009 Lennart Poettering &lt;@PACKAGE_BUGREPORT@&gt;</i></p>
-
-<ul class="toc">
-    <li><a href="#license">License</a></li>
-    <li><a href="#news">News</a></li>
-    <li><a href="#overview">Overview</a></li>
-    <li><a href="#status">Current Status</a></li>
-    <li><a href="#documentation">Documentation</a></li>
-    <li><a href="#requirements">Requirements</a></li>
-    <li><a href="#installation">Installation</a></li>
-    <li><a href="#acks">Acknowledgements</a></li>
-    <li><a href="#download">Download</a></li>
-</ul>
-
-<h2><a name="license">License</a></h2>
-
-<p>Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is furnished to do
-so, subject to the following conditions:</p>
-
-<p>The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.</p>
-
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.</p>
-
-<h2><a name="news">News</a></h2>
-
-<div class="news-date">Sun Aug 29 2012: </div>
-<p class="news-text"><a href="@PACKAGE_URL@libdaemon-0.14.tar.gz">Version 0.15</a> license change from LGPL to MIT</p>
-
-<div class="news-date">Sun Oct 18 2009: </div>
-<p class="news-text"><a href="@PACKAGE_URL@libdaemon-0.14.tar.gz">Version 0.14</a> released; changes include: add <tt>daemon_set_verbosity()</tt> call; numerous updates</p>
-
-<div class="news-date">Tue Jul 29 2008: </div>
-<p class="news-text"><a href="@PACKAGE_URL@libdaemon-0.13.tar.gz">Version 0.13</a> released; changes include: add <tt>daemon_reset_sigs()</tt> and <tt>daemon_unblock_sigs()</tt> calls for resetting signal handlers to sensible states; improve error handling.</p>
-
-<div class="news-date">Tue Jul 10 2007: </div>
-<p class="news-text"><a href="@PACKAGE_URL@libdaemon-0.12.tar.gz">Version 0.12</a> released; changes include: make <tt>daemon_close_all()</tt> actually work properly.</p>
-
-<div class="news-date">Fri Jun 22 2007: </div>
-<p class="news-text"><a href="@PACKAGE_URL@libdaemon-0.11.tar.gz">Version 0.11</a> released; changes include: automatically detect whether lynx is installed; properly set <tt>errno</tt> on every error condition; add new function <tt>daemon_close_all()</tt> to close all open file descriptors except a given set; add <tt>daemon_logv()</tt>, which is identical to <tt>daemon_log()</tt>, but takes a <tt>va_list</tt> argument; add <tt>daemon_execv()</tt> in similar style; other fixes</p>
-
-<div class="news-date">Thu Nov 24 2005: </div>
-<p class="news-text"><a href="@PACKAGE_URL@libdaemon-0.10.tar.gz">Version 0.10</a> released; changes include: make logging compatible with daemons running in a <tt>chroot()</tt> environment</p>
-
-<div class="news-date">Fri Nov 18 2005: </div>
-<p class="news-text"><a href="@PACKAGE_URL@libdaemon-0.9.tar.gz">Version 0.9</a> released; changes include: portability (FreeBSD, NetBSD, OpenBSD, Darwin, Solaris, Cygwin); some minor header file cleanups; fix access mode of PID files; other cleanups; license change from GPL to LGPL</p>
-
-<div class="news-date">Sat Jun 4 2005: </div>
-<p class="news-text"><a href="@PACKAGE_URL@libdaemon-0.8.tar.gz">Version 0.8</a> released; changes include: proper PID file locking</p>
-
-<div class="news-date">Sat Dec 18 2004: </div>
-<p class="news-text"><a href="@PACKAGE_URL@libdaemon-0.7.tar.gz">Version 0.7</a> released; changes include: minor cleanups; C++ compatibility; gcc 2.95 compatiblity</p>
-
-<div class="news-date">Wed Apr 7 2004: </div>
-<p class="news-text"><a href="@PACKAGE_URL@libdaemon-0.6.tar.gz">Version 0.6</a> released; changes include: backgrounding fixes, minor other stuff</p>
-
-<div class="news-date">Tue Feb 10 2004: </div>
-<p class="news-text"><a href="@PACKAGE_URL@libdaemon-0.5.tar.gz">Version 0.5</a> released; changes include: signal handling fix, forking fix</p>
-
-<div class="news-date">Sat Jan 10 2004: </div>
-<p class="news-text"><a href="@PACKAGE_URL@libdaemon-0.4.tar.gz">Version 0.4</a> released; changes include: new module <tt>dexec.c</tt>; added <tt>pkg-config</tt> support.</p>
-
-<div class="news-date">Mon Oct 20 2003: </div>
-<p class="news-text"><a href="@PACKAGE_URL@libdaemon-0.3.tar.gz">Version 0.3</a> released; changes include: documentation update, build fixes, RPM spec file added, added new function int <tt>daemon_pid_file_kill_wait()</tt>.</p>
-
-<div class="news-date">Thu July 10 2003: </div>
-<p class="news-text"><a href="@PACKAGE_URL@libdaemon-0.2.tar.gz">Version 0.2</a> released; changes include: ugly umask error fix, documentation update</p>
-
-<div class="news-date">Mon July 7 2003: </div>
-<p class="news-text"><a href="@PACKAGE_URL@libdaemon-0.1.tar.gz">Version 0.1</a> released</p>
-
-<h2><a name="overview">Overview</a></h2>
-
-<p><tt>libdaemon</tt> is a lightweight C library that eases the writing of UNIX
-daemons. It consists of the following parts:</p>
-
-<ul>
-  <li>A wrapper around <tt>fork()</tt> which does the correct
-  daemonization procedure of a process</li>
-
-  <li>A wrapper around <tt>syslog()</tt> for simpler and compatible
-  log output to Syslog or STDERR</li>
-
-  <li>An API for writing PID files</li>
-
-  <li>An API for serializing UNIX signals into a pipe for
-  usage with <tt>select()</tt> or <tt>poll()</tt></li>
-
-  <li>An API for running subprocesses with STDOUT and STDERR redirected to syslog.</li>
-</ul>
-
-<p>APIs like these are used in most daemon software
-available. It is not that simple to get it done right and code
-duplication is not a goal.</p>
-
-<p><tt>libdaemon</tt> is currently used by <a
-href="http://0pointer.de/lennart/projects/ifplugd/"><tt>ifplugd</tt></a>,
-<a
-href="http://freedesktop.org/Software/Avahi">Avahi</a>,
-<a
-href="http://0pointer.de/lennart/projects/ivam2/"><tt>ivam2</tt></a>,
-<a href="http://gentoo.ovibes.net/nautilus-share/mediawiki-1.4.4/index.php/Accueil">Nautilus-Share</a>
-and <a
-href="http://0pointer.de/lennart/projects/aeswepd/"><tt>aeswepd</tt></a>.</p>
-
-<h2><a name="status">Current Status</a></h2>
-
-<p>Version @PACKAGE_VERSION@ is feature complete.</p>
-
-<h2><a name="documentation">Documentation</a></h2>
-
-<p>An extensive API reference is <a
-href="reference/html/index.html">available</a></p>
-
-<h2><a name="requirements">Requirements</a></h2>
-
-<p><tt>libdaemon</tt> was developed and tested on Debian GNU/Linux
-"testing" from July 2003, it should work on most other Linux
-distributions (and some Unix versions) since it uses GNU Autoconf and
-GNU libtool for source code configuration and shared library
-management.</p>
-
-<p><tt>libdaemon</tt> is known to work on modern Linux systems, FreeBSD, NetBSD, OpenBSD, Darwin, Solaris and Windows/Cygwin.</p>
-
-<h2><a name="installation">Installation</a></h2>
-
-<p>As this package is made with the GNU autotools you should run
-<tt>./configure</tt> inside the distribution directory for configuring
-the source tree. After that you should run <tt>make</tt> for
-compilation and <tt>make install</tt> (as root) for installation of
-<tt>libdaemon</tt>.</p>
-
-<p>Please use <tt>gmake</tt> instead of traditional <tt>make</tt> for compilation on non-Linux systems.</p>
-
-<h2><a name="acks">Acknowledgements</a></h2>
-
-<p>Sebastien Estienne, for a lot of portability work.</p>
-
-<h2><a name="download">Download</a></h2>
-
-<p>The newest release is always available from <a href="@PACKAGE_URL@">@PACKAGE_URL@</a></p>
-
-<p>Get <tt>libdaemon</tt>'s development sources from the <a href="http://git.or.cz/">GIT</a> <a href="git://git.0pointer.de/libdaemon">repository</a> (<a href="http://git.0pointer.de/?p=libdaemon.git">gitweb</a>): </p>
-
-<pre>git clone git://git.0pointer.de/libdaemon</pre>
-
-<p>You may find an up to date Debian package of <tt>libdaemon</tt> on the <a href="http://packages.debian.org/libdaemon0">Debian package repository</a>.</p>
-
-<p>If you want to be notified whenever I release a new version of this software use the subscription feature of <a href="http://freshmeat.net/projects/libdaemon/">Freshmeat</a>.</p>
-
-<hr/>
-<address class="grey">Lennart Poettering &lt;@PACKAGE_BUGREPORT@&gt;, October 2009</address>
-
-</body>
-</html>
diff --git a/doc/doxygen.conf.in b/doc/doxygen.conf.in
deleted file mode 100644
index cace988..0000000
--- a/doc/doxygen.conf.in
+++ /dev/null
@@ -1,1161 +0,0 @@
-# Doxyfile 1.3.9.1
-
-# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project
-#
-# All text after a hash (#) is considered a comment and will be ignored
-# The format is:
-#       TAG = value [value, ...]
-# For lists items can also be appended using:
-#       TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (" ")
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
-# by quotes) that should identify the project.
-
-PROJECT_NAME           = @PACKAGE_NAME@
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number. 
-# This could be handy for archiving the generated documentation or 
-# if some version control system is used.
-
-PROJECT_NUMBER         = @PACKAGE_VERSION@
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
-# base path where the generated documentation will be put. 
-# If a relative path is entered, it will be relative to the location 
-# where doxygen was started. If left blank the current directory will be used.
-
-OUTPUT_DIRECTORY       = reference
-
-# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 
-# 4096 sub-directories (in 2 levels) under the output directory of each output 
-# format and will distribute the generated files over these directories. 
-# Enabling this option can be useful when feeding doxygen a huge amount of source 
-# files, where putting all generated files in the same directory would otherwise 
-# cause performance problems for the file system.
-
-CREATE_SUBDIRS         = NO
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all 
-# documentation generated by doxygen is written. Doxygen will use this 
-# information to generate all constant output in the proper language. 
-# The default language is English, other supported languages are: 
-# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, 
-# Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese, 
-# Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian, 
-# Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, 
-# Swedish, and Ukrainian.
-
-OUTPUT_LANGUAGE        = English
-
-# This tag can be used to specify the encoding used in the generated output. 
-# The encoding is not always determined by the language that is chosen, 
-# but also whether or not the output is meant for Windows or non-Windows users. 
-# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES 
-# forces the Windows encoding (this is the default for the Windows binary), 
-# whereas setting the tag to NO uses a Unix-style encoding (the default for 
-# all platforms other than Windows).
-
-USE_WINDOWS_ENCODING   = NO
-
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
-# include brief member descriptions after the members that are listed in 
-# the file and class documentation (similar to JavaDoc). 
-# Set to NO to disable this.
-
-BRIEF_MEMBER_DESC      = YES
-
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
-# the brief description of a member or function before the detailed description. 
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
-# brief descriptions will be completely suppressed.
-
-REPEAT_BRIEF           = YES
-
-# This tag implements a quasi-intelligent brief description abbreviator 
-# that is used to form the text in various listings. Each string 
-# in this list, if found as the leading text of the brief description, will be 
-# stripped from the text and the result after processing the whole list, is used 
-# as the annotated text. Otherwise, the brief description is used as-is. If left 
-# blank, the following values are used ("$name" is automatically replaced with the 
-# name of the entity): "The $name class" "The $name widget" "The $name file" 
-# "is" "provides" "specifies" "contains" "represents" "a" "an" "the"
-
-ABBREVIATE_BRIEF       = 
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
-# Doxygen will generate a detailed section even if there is only a brief 
-# description.
-
-ALWAYS_DETAILED_SEC    = NO
-
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited 
-# members of a class in the documentation of that class as if those members were 
-# ordinary class members. Constructors, destructors and assignment operators of 
-# the base classes will not be shown.
-
-INLINE_INHERITED_MEMB  = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
-# path before files name in the file list and in the header files. If set 
-# to NO the shortest path that makes the file name unique will be used.
-
-FULL_PATH_NAMES        = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
-# can be used to strip a user-defined part of the path. Stripping is 
-# only done if one of the specified strings matches the left-hand part of 
-# the path. The tag can be used to show relative paths in the file list. 
-# If left blank the directory from which doxygen is run is used as the 
-# path to strip.
-
-STRIP_FROM_PATH        = 
-
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of 
-# the path mentioned in the documentation of a class, which tells 
-# the reader which header file to include in order to use a class. 
-# If left blank only the name of the header file containing the class 
-# definition is used. Otherwise one should specify the include paths that 
-# are normally passed to the compiler using the -I flag.
-
-STRIP_FROM_INC_PATH    = 
-
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 
-# (but less readable) file names. This can be useful is your file systems 
-# doesn't support long names like on DOS, Mac, or CD-ROM.
-
-SHORT_NAMES            = NO
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
-# will interpret the first line (until the first dot) of a JavaDoc-style 
-# comment as the brief description. If set to NO, the JavaDoc 
-# comments will behave just like the Qt-style comments (thus requiring an 
-# explicit @brief command for a brief description.
-
-JAVADOC_AUTOBRIEF      = YES
-
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen 
-# treat a multi-line C++ special comment block (i.e. a block of //! or /// 
-# comments) as a brief description. This used to be the default behaviour. 
-# The new default is to treat a multi-line C++ comment block as a detailed 
-# description. Set this tag to YES if you prefer the old behaviour instead.
-
-MULTILINE_CPP_IS_BRIEF = NO
-
-# If the DETAILS_AT_TOP tag is set to YES then Doxygen 
-# will output the detailed description near the top, like JavaDoc.
-# If set to NO, the detailed description appears after the member 
-# documentation.
-
-DETAILS_AT_TOP         = NO
-
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
-# member inherits the documentation from any documented member that it 
-# re-implements.
-
-INHERIT_DOCS           = YES
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
-# tag is set to YES, then doxygen will reuse the documentation of the first 
-# member in the group (if any) for the other members of the group. By default 
-# all members of a group must be documented explicitly.
-
-DISTRIBUTE_GROUP_DOC   = NO
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab. 
-# Doxygen uses this value to replace tabs by spaces in code fragments.
-
-TAB_SIZE               = 4
-
-# This tag can be used to specify a number of aliases that acts 
-# as commands in the documentation. An alias has the form "name=value". 
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to 
-# put the command \sideeffect (or @sideeffect) in the documentation, which 
-# will result in a user-defined paragraph with heading "Side Effects:". 
-# You can put \n's in the value part of an alias to insert newlines.
-
-ALIASES                = 
-
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources 
-# only. Doxygen will then generate output that is more tailored for C. 
-# For instance, some of the names that are used will be different. The list 
-# of all members will be omitted, etc.
-
-OPTIMIZE_OUTPUT_FOR_C  = YES
-
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources 
-# only. Doxygen will then generate output that is more tailored for Java. 
-# For instance, namespaces will be presented as packages, qualified scopes 
-# will look different, etc.
-
-OPTIMIZE_OUTPUT_JAVA   = NO
-
-# Set the SUBGROUPING tag to YES (the default) to allow class member groups of 
-# the same type (for instance a group of public functions) to be put as a 
-# subgroup of that type (e.g. under the Public Functions section). Set it to 
-# NO to prevent subgrouping. Alternatively, this can be done per class using 
-# the \nosubgrouping command.
-
-SUBGROUPING            = YES
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
-# documentation are documented, even if no documentation was available. 
-# Private class members and static file members will be hidden unless 
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-
-EXTRACT_ALL            = YES
-
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
-# will be included in the documentation.
-
-EXTRACT_PRIVATE        = NO
-
-# If the EXTRACT_STATIC tag is set to YES all static members of a file 
-# will be included in the documentation.
-
-EXTRACT_STATIC         = NO
-
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 
-# defined locally in source files will be included in the documentation. 
-# If set to NO only classes defined in header files are included.
-
-EXTRACT_LOCAL_CLASSES  = NO
-
-# This flag is only useful for Objective-C code. When set to YES local 
-# methods, which are defined in the implementation section but not in 
-# the interface are included in the documentation. 
-# If set to NO (the default) only methods in the interface are included.
-
-EXTRACT_LOCAL_METHODS  = NO
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
-# undocumented members of documented classes, files or namespaces. 
-# If set to NO (the default) these members will be included in the 
-# various overviews, but no documentation section is generated. 
-# This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_MEMBERS     = YES
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
-# undocumented classes that are normally visible in the class hierarchy. 
-# If set to NO (the default) these classes will be included in the various 
-# overviews. This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_CLASSES     = YES
-
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all 
-# friend (class|struct|union) declarations. 
-# If set to NO (the default) these declarations will be included in the 
-# documentation.
-
-HIDE_FRIEND_COMPOUNDS  = NO
-
-# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any 
-# documentation blocks found inside the body of a function. 
-# If set to NO (the default) these blocks will be appended to the 
-# function's detailed documentation block.
-
-HIDE_IN_BODY_DOCS      = NO
-
-# The INTERNAL_DOCS tag determines if documentation 
-# that is typed after a \internal command is included. If the tag is set 
-# to NO (the default) then the documentation will be excluded. 
-# Set it to YES to include the internal documentation.
-
-INTERNAL_DOCS          = NO
-
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
-# file names in lower-case letters. If set to YES upper-case letters are also 
-# allowed. This is useful if you have classes or files whose names only differ 
-# in case and if your file system supports case sensitive file names. Windows 
-# and Mac users are advised to set this option to NO.
-
-CASE_SENSE_NAMES       = YES
-
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
-# will show members with their full class and namespace scopes in the 
-# documentation. If set to YES the scope will be hidden.
-
-HIDE_SCOPE_NAMES       = NO
-
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
-# will put a list of the files that are included by a file in the documentation 
-# of that file.
-
-SHOW_INCLUDE_FILES     = YES
-
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
-# is inserted in the documentation for inline members.
-
-INLINE_INFO            = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 
-# will sort the (detailed) documentation of file and class members 
-# alphabetically by member name. If set to NO the members will appear in 
-# declaration order.
-
-SORT_MEMBER_DOCS       = YES
-
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the 
-# brief documentation of file, namespace and class members alphabetically 
-# by member name. If set to NO (the default) the members will appear in 
-# declaration order.
-
-SORT_BRIEF_DOCS        = NO
-
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be 
-# sorted by fully-qualified names, including namespaces. If set to 
-# NO (the default), the class list will be sorted only by class name, 
-# not including the namespace part. 
-# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the 
-# alphabetical list.
-
-SORT_BY_SCOPE_NAME     = NO
-
-# The GENERATE_TODOLIST tag can be used to enable (YES) or 
-# disable (NO) the todo list. This list is created by putting \todo 
-# commands in the documentation.
-
-GENERATE_TODOLIST      = NO
-
-# The GENERATE_TESTLIST tag can be used to enable (YES) or 
-# disable (NO) the test list. This list is created by putting \test 
-# commands in the documentation.
-
-GENERATE_TESTLIST      = NO
-
-# The GENERATE_BUGLIST tag can be used to enable (YES) or 
-# disable (NO) the bug list. This list is created by putting \bug 
-# commands in the documentation.
-
-GENERATE_BUGLIST       = NO
-
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or 
-# disable (NO) the deprecated list. This list is created by putting 
-# \deprecated commands in the documentation.
-
-GENERATE_DEPRECATEDLIST= YES
-
-# The ENABLED_SECTIONS tag can be used to enable conditional 
-# documentation sections, marked by \if sectionname ... \endif.
-
-ENABLED_SECTIONS       = 
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
-# the initial value of a variable or define consists of for it to appear in 
-# the documentation. If the initializer consists of more lines than specified 
-# here it will be hidden. Use a value of 0 to hide initializers completely. 
-# The appearance of the initializer of individual variables and defines in the 
-# documentation can be controlled using \showinitializer or \hideinitializer 
-# command in the documentation regardless of this setting.
-
-MAX_INITIALIZER_LINES  = 30
-
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated 
-# at the bottom of the documentation of classes and structs. If set to YES the 
-# list will mention the files that were used to generate the documentation.
-
-SHOW_USED_FILES        = YES
-
-# If the sources in your project are distributed over multiple directories 
-# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy 
-# in the documentation.
-
-SHOW_DIRECTORIES       = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated 
-# by doxygen. Possible values are YES and NO. If left blank NO is used.
-
-QUIET                  = NO
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are 
-# generated by doxygen. Possible values are YES and NO. If left blank 
-# NO is used.
-
-WARNINGS               = YES
-
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
-# automatically be disabled.
-
-WARN_IF_UNDOCUMENTED   = YES
-
-# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for 
-# potential errors in the documentation, such as not documenting some 
-# parameters in a documented function, or documenting parameters that 
-# don't exist or using markup commands wrongly.
-
-WARN_IF_DOC_ERROR      = YES
-
-# The WARN_FORMAT tag determines the format of the warning messages that 
-# doxygen can produce. The string should contain the $file, $line, and $text 
-# tags, which will be replaced by the file and line number from which the 
-# warning originated and the warning text.
-
-WARN_FORMAT            = "$file:$line: $text"
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning 
-# and error messages should be written. If left blank the output is written 
-# to stderr.
-
-WARN_LOGFILE           = 
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag can be used to specify the files and/or directories that contain 
-# documented source files. You may enter file names like "myfile.cpp" or 
-# directories like "/usr/src/myproject". Separate the files or directories 
-# with spaces.
-
-INPUT                  = ../libdaemon/
-
-# If the value of the INPUT tag contains directories, you can use the 
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
-# and *.h) to filter out the source-files in the directories. If left 
-# blank the following patterns are tested: 
-# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp 
-# *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm
-
-FILE_PATTERNS          = *.h
-
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories 
-# should be searched for input files as well. Possible values are YES and NO. 
-# If left blank NO is used.
-
-RECURSIVE              = NO
-
-# The EXCLUDE tag can be used to specify files and/or directories that should 
-# excluded from the INPUT source files. This way you can easily exclude a 
-# subdirectory from a directory tree whose root is specified with the INPUT tag.
-
-EXCLUDE                = 
-
-# The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories 
-# that are symbolic links (a Unix filesystem feature) are excluded from the input.
-
-EXCLUDE_SYMLINKS       = NO
-
-# If the value of the INPUT tag contains directories, you can use the 
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
-# certain files from those directories.
-
-EXCLUDE_PATTERNS       = 
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or 
-# directories that contain example code fragments that are included (see 
-# the \include command).
-
-EXAMPLE_PATH           = ../examples/
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the 
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
-# and *.h) to filter out the source-files in the directories. If left 
-# blank all files are included.
-
-EXAMPLE_PATTERNS       = *.c
-
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 
-# searched for input files to be used with the \include or \dontinclude 
-# commands irrespective of the value of the RECURSIVE tag. 
-# Possible values are YES and NO. If left blank NO is used.
-
-EXAMPLE_RECURSIVE      = NO
-
-# The IMAGE_PATH tag can be used to specify one or more files or 
-# directories that contain image that are included in the documentation (see 
-# the \image command).
-
-IMAGE_PATH             = 
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should 
-# invoke to filter for each input file. Doxygen will invoke the filter program 
-# by executing (via popen()) the command <filter> <input-file>, where <filter> 
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
-# input file. Doxygen will then use the output that the filter program writes 
-# to standard output.  If FILTER_PATTERNS is specified, this tag will be 
-# ignored.
-
-INPUT_FILTER           = 
-
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern 
-# basis.  Doxygen will compare the file name with each pattern and apply the 
-# filter if there is a match.  The filters are a list of the form: 
-# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further 
-# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER 
-# is applied to all files.
-
-FILTER_PATTERNS        = 
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
-# INPUT_FILTER) will be used to filter the input files when producing source 
-# files to browse (i.e. when SOURCE_BROWSER is set to YES).
-
-FILTER_SOURCE_FILES    = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will 
-# be generated. Documented entities will be cross-referenced with these sources. 
-# Note: To get rid of all source code in the generated output, make sure also 
-# VERBATIM_HEADERS is set to NO.
-
-SOURCE_BROWSER         = YES
-
-# Setting the INLINE_SOURCES tag to YES will include the body 
-# of functions and classes directly in the documentation.
-
-INLINE_SOURCES         = NO
-
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 
-# doxygen to hide any special comment blocks from generated source code 
-# fragments. Normal C and C++ comments will always remain visible.
-
-STRIP_CODE_COMMENTS    = YES
-
-# If the REFERENCED_BY_RELATION tag is set to YES (the default) 
-# then for each documented function all documented 
-# functions referencing it will be listed.
-
-REFERENCED_BY_RELATION = YES
-
-# If the REFERENCES_RELATION tag is set to YES (the default) 
-# then for each documented function all documented entities 
-# called/used by that function will be listed.
-
-REFERENCES_RELATION    = YES
-
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
-# will generate a verbatim copy of the header file for each class for 
-# which an include is specified. Set to NO to disable this.
-
-VERBATIM_HEADERS       = YES
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 
-# of all compounds will be generated. Enable this if the project 
-# contains a lot of classes, structs, unions or interfaces.
-
-ALPHABETICAL_INDEX     = NO
-
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
-# in which this list will be split (can be a number in the range [1..20])
-
-COLS_IN_ALPHA_INDEX    = 5
-
-# In case all classes in a project start with a common prefix, all 
-# classes will be put under the same header in the alphabetical index. 
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
-# should be ignored while generating the index headers.
-
-IGNORE_PREFIX          = 
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
-# generate HTML output.
-
-GENERATE_HTML          = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `html' will be used as the default path.
-
-HTML_OUTPUT            = html
-
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for 
-# each generated HTML page (for example: .htm,.php,.asp). If it is left blank 
-# doxygen will generate files with .html extension.
-
-HTML_FILE_EXTENSION    = .html
-
-# The HTML_HEADER tag can be used to specify a personal HTML header for 
-# each generated HTML page. If it is left blank doxygen will generate a 
-# standard header.
-
-HTML_HEADER            = 
-
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for 
-# each generated HTML page. If it is left blank doxygen will generate a 
-# standard footer.
-
-HTML_FOOTER            = 
-
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading 
-# style sheet that is used by each HTML page. It can be used to 
-# fine-tune the look of the HTML output. If the tag is left blank doxygen 
-# will generate a default style sheet. Note that doxygen will try to copy 
-# the style sheet file to the HTML output directory, so don't put your own 
-# stylesheet in the HTML output directory as well, or it will be erased!
-
-HTML_STYLESHEET        = 
-
-# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 
-# files or namespaces will be aligned in HTML using tables. If set to 
-# NO a bullet list will be used.
-
-HTML_ALIGN_MEMBERS     = YES
-
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files 
-# will be generated that can be used as input for tools like the 
-# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) 
-# of the generated HTML documentation.
-
-GENERATE_HTMLHELP      = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can 
-# be used to specify the file name of the resulting .chm file. You 
-# can add a path in front of the file if the result should not be 
-# written to the html output directory.
-
-CHM_FILE               = 
-
-# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can 
-# be used to specify the location (absolute path including file name) of 
-# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run 
-# the HTML help compiler on the generated index.hhp.
-
-HHC_LOCATION           = 
-
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 
-# controls if a separate .chi index file is generated (YES) or that 
-# it should be included in the master .chm file (NO).
-
-GENERATE_CHI           = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 
-# controls whether a binary table of contents is generated (YES) or a 
-# normal table of contents (NO) in the .chm file.
-
-BINARY_TOC             = NO
-
-# The TOC_EXPAND flag can be set to YES to add extra items for group members 
-# to the contents of the HTML help documentation and to the tree view.
-
-TOC_EXPAND             = NO
-
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index at 
-# top of each HTML page. The value NO (the default) enables the index and 
-# the value YES disables it.
-
-DISABLE_INDEX          = NO
-
-# This tag can be used to set the number of enum values (range [1..20]) 
-# that doxygen will group on one line in the generated HTML documentation.
-
-ENUM_VALUES_PER_LINE   = 4
-
-# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
-# generated containing a tree-like index structure (just like the one that 
-# is generated for HTML Help). For this to work a browser that supports 
-# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, 
-# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are 
-# probably better off using the HTML help feature.
-
-GENERATE_TREEVIEW      = YES
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
-# used to set the initial width (in pixels) of the frame in which the tree 
-# is shown.
-
-TREEVIEW_WIDTH         = 250
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
-# generate Latex output.
-
-GENERATE_LATEX         = NO
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `latex' will be used as the default path.
-
-LATEX_OUTPUT           = latex
-
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be 
-# invoked. If left blank `latex' will be used as the default command name.
-
-LATEX_CMD_NAME         = latex
-
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to 
-# generate index for LaTeX. If left blank `makeindex' will be used as the 
-# default command name.
-
-MAKEINDEX_CMD_NAME     = makeindex
-
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 
-# LaTeX documents. This may be useful for small projects and may help to 
-# save some trees in general.
-
-COMPACT_LATEX          = NO
-
-# The PAPER_TYPE tag can be used to set the paper type that is used 
-# by the printer. Possible values are: a4, a4wide, letter, legal and 
-# executive. If left blank a4wide will be used.
-
-PAPER_TYPE             = a4wide
-
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 
-# packages that should be included in the LaTeX output.
-
-EXTRA_PACKAGES         = 
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
-# the generated latex document. The header should contain everything until 
-# the first chapter. If it is left blank doxygen will generate a 
-# standard header. Notice: only use this tag if you know what you are doing!
-
-LATEX_HEADER           = 
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will 
-# contain links (just like the HTML output) instead of page references 
-# This makes the output suitable for online browsing using a pdf viewer.
-
-PDF_HYPERLINKS         = NO
-
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 
-# plain latex in the generated Makefile. Set this option to YES to get a 
-# higher quality PDF documentation.
-
-USE_PDFLATEX           = NO
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 
-# command to the generated LaTeX files. This will instruct LaTeX to keep 
-# running if errors occur, instead of asking the user for help. 
-# This option is also used when generating formulas in HTML.
-
-LATEX_BATCHMODE        = NO
-
-# If LATEX_HIDE_INDICES is set to YES then doxygen will not 
-# include the index chapters (such as File Index, Compound Index, etc.) 
-# in the output.
-
-LATEX_HIDE_INDICES     = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 
-# The RTF output is optimized for Word 97 and may not look very pretty with 
-# other RTF readers or editors.
-
-GENERATE_RTF           = NO
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `rtf' will be used as the default path.
-
-RTF_OUTPUT             = rtf
-
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact 
-# RTF documents. This may be useful for small projects and may help to 
-# save some trees in general.
-
-COMPACT_RTF            = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 
-# will contain hyperlink fields. The RTF file will 
-# contain links (just like the HTML output) instead of page references. 
-# This makes the output suitable for online browsing using WORD or other 
-# programs which support those fields. 
-# Note: wordpad (write) and others do not support links.
-
-RTF_HYPERLINKS         = NO
-
-# Load stylesheet definitions from file. Syntax is similar to doxygen's 
-# config file, i.e. a series of assignments. You only have to provide 
-# replacements, missing definitions are set to their default value.
-
-RTF_STYLESHEET_FILE    = 
-
-# Set optional variables used in the generation of an rtf document. 
-# Syntax is similar to doxygen's config file.
-
-RTF_EXTENSIONS_FILE    = 
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
-# generate man pages
-
-GENERATE_MAN           = YES
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `man' will be used as the default path.
-
-MAN_OUTPUT             = man
-
-# The MAN_EXTENSION tag determines the extension that is added to 
-# the generated man pages (default is the subroutine's section .3)
-
-MAN_EXTENSION          = .3
-
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output, 
-# then it will generate one additional man file for each entity 
-# documented in the real man page(s). These additional files 
-# only source the real man page, but without them the man command 
-# would be unable to find the correct page. The default is NO.
-
-MAN_LINKS              = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_XML tag is set to YES Doxygen will 
-# generate an XML file that captures the structure of 
-# the code including all documentation.
-
-GENERATE_XML           = NO
-
-# The XML_OUTPUT tag is used to specify where the XML pages will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `xml' will be used as the default path.
-
-XML_OUTPUT             = xml
-
-# The XML_SCHEMA tag can be used to specify an XML schema, 
-# which can be used by a validating XML parser to check the 
-# syntax of the XML files.
-
-XML_SCHEMA             = 
-
-# The XML_DTD tag can be used to specify an XML DTD, 
-# which can be used by a validating XML parser to check the 
-# syntax of the XML files.
-
-XML_DTD                = 
-
-# If the XML_PROGRAMLISTING tag is set to YES Doxygen will 
-# dump the program listings (including syntax highlighting 
-# and cross-referencing information) to the XML output. Note that 
-# enabling this will significantly increase the size of the XML output.
-
-XML_PROGRAMLISTING     = YES
-
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will 
-# generate an AutoGen Definitions (see autogen.sf.net) file 
-# that captures the structure of the code including all 
-# documentation. Note that this feature is still experimental 
-# and incomplete at the moment.
-
-GENERATE_AUTOGEN_DEF   = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_PERLMOD tag is set to YES Doxygen will 
-# generate a Perl module file that captures the structure of 
-# the code including all documentation. Note that this 
-# feature is still experimental and incomplete at the 
-# moment.
-
-GENERATE_PERLMOD       = NO
-
-# If the PERLMOD_LATEX tag is set to YES Doxygen will generate 
-# the necessary Makefile rules, Perl scripts and LaTeX code to be able 
-# to generate PDF and DVI output from the Perl module output.
-
-PERLMOD_LATEX          = NO
-
-# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be 
-# nicely formatted so it can be parsed by a human reader.  This is useful 
-# if you want to understand what is going on.  On the other hand, if this 
-# tag is set to NO the size of the Perl module output will be much smaller 
-# and Perl will parse it just the same.
-
-PERLMOD_PRETTY         = YES
-
-# The names of the make variables in the generated doxyrules.make file 
-# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. 
-# This is useful so different doxyrules.make files included by the same 
-# Makefile don't overwrite each other's variables.
-
-PERLMOD_MAKEVAR_PREFIX = 
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor   
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
-# evaluate all C-preprocessor directives found in the sources and include 
-# files.
-
-ENABLE_PREPROCESSING   = YES
-
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
-# names in the source code. If set to NO (the default) only conditional 
-# compilation will be performed. Macro expansion can be done in a controlled 
-# way by setting EXPAND_ONLY_PREDEF to YES.
-
-MACRO_EXPANSION        = NO
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
-# then the macro expansion is limited to the macros specified with the 
-# PREDEFINED and EXPAND_AS_PREDEFINED tags.
-
-EXPAND_ONLY_PREDEF     = NO
-
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 
-# in the INCLUDE_PATH (see below) will be search if a #include is found.
-
-SEARCH_INCLUDES        = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that 
-# contain include files that are not input files but should be processed by 
-# the preprocessor.
-
-INCLUDE_PATH           = 
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
-# patterns (like *.h and *.hpp) to filter out the header-files in the 
-# directories. If left blank, the patterns specified with FILE_PATTERNS will 
-# be used.
-
-INCLUDE_FILE_PATTERNS  = 
-
-# The PREDEFINED tag can be used to specify one or more macro names that 
-# are defined before the preprocessor is started (similar to the -D option of 
-# gcc). The argument of the tag is a list of macros of the form: name 
-# or name=definition (no spaces). If the definition and the = are 
-# omitted =1 is assumed. To prevent a macro definition from being 
-# undefined via #undef or recursively expanded use the := operator 
-# instead of the = operator.
-
-PREDEFINED             = 
-
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 
-# this tag can be used to specify a list of macro names that should be expanded. 
-# The macro definition that is found in the sources will be used. 
-# Use the PREDEFINED tag if you want to use a different macro definition.
-
-EXPAND_AS_DEFINED      = 
-
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 
-# doxygen's preprocessor will remove all function-like macros that are alone 
-# on a line, have an all uppercase name, and do not end with a semicolon. Such 
-# function macros are typically used for boiler-plate code, and will confuse the 
-# parser if not removed.
-
-SKIP_FUNCTION_MACROS   = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references   
-#---------------------------------------------------------------------------
-
-# The TAGFILES option can be used to specify one or more tagfiles. 
-# Optionally an initial location of the external documentation 
-# can be added for each tagfile. The format of a tag file without 
-# this location is as follows: 
-#   TAGFILES = file1 file2 ... 
-# Adding location for the tag files is done as follows: 
-#   TAGFILES = file1=loc1 "file2 = loc2" ... 
-# where "loc1" and "loc2" can be relative or absolute paths or 
-# URLs. If a location is present for each tag, the installdox tool 
-# does not have to be run to correct the links.
-# Note that each tag file must have a unique name
-# (where the name does NOT include the path)
-# If a tag file is not located in the directory in which doxygen 
-# is run, you must also specify the path to the tagfile here.
-
-TAGFILES               = 
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create 
-# a tag file that is based on the input files it reads.
-
-GENERATE_TAGFILE       = 
-
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed 
-# in the class index. If set to NO only the inherited external classes 
-# will be listed.
-
-ALLEXTERNALS           = NO
-
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed 
-# in the modules index. If set to NO, only the current project's groups will 
-# be listed.
-
-EXTERNAL_GROUPS        = YES
-
-# The PERL_PATH should be the absolute path and name of the perl script 
-# interpreter (i.e. the result of `which perl').
-
-PERL_PATH              = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool   
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
-# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base or 
-# super classes. Setting the tag to NO turns the diagrams off. Note that this 
-# option is superseded by the HAVE_DOT option below. This is only a fallback. It is 
-# recommended to install and use dot, since it yields more powerful graphs.
-
-CLASS_DIAGRAMS         = YES
-
-# If set to YES, the inheritance and collaboration graphs will hide 
-# inheritance and usage relations if the target is undocumented 
-# or is not a class.
-
-HIDE_UNDOC_RELATIONS   = YES
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 
-# available from the path. This tool is part of Graphviz, a graph visualization 
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section 
-# have no effect if this option is set to NO (the default)
-
-HAVE_DOT               = NO
-
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 
-# will generate a graph for each documented class showing the direct and 
-# indirect inheritance relations. Setting this tag to YES will force the 
-# the CLASS_DIAGRAMS tag to NO.
-
-CLASS_GRAPH            = YES
-
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 
-# will generate a graph for each documented class showing the direct and 
-# indirect implementation dependencies (inheritance, containment, and 
-# class references variables) of the class with other documented classes.
-
-COLLABORATION_GRAPH    = YES
-
-# If the UML_LOOK tag is set to YES doxygen will generate inheritance and 
-# collaboration diagrams in a style similar to the OMG's Unified Modeling 
-# Language.
-
-UML_LOOK               = NO
-
-# If set to YES, the inheritance and collaboration graphs will show the 
-# relations between templates and their instances.
-
-TEMPLATE_RELATIONS     = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT 
-# tags are set to YES then doxygen will generate a graph for each documented 
-# file showing the direct and indirect include dependencies of the file with 
-# other documented files.
-
-INCLUDE_GRAPH          = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and 
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each 
-# documented header file showing the documented files that directly or 
-# indirectly include this file.
-
-INCLUDED_BY_GRAPH      = YES
-
-# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will 
-# generate a call dependency graph for every global function or class method. 
-# Note that enabling this option will significantly increase the time of a run. 
-# So in most cases it will be better to enable call graphs for selected 
-# functions only using the \callgraph command.
-
-CALL_GRAPH             = NO
-
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 
-# will graphical hierarchy of all classes instead of a textual one.
-
-GRAPHICAL_HIERARCHY    = YES
-
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images 
-# generated by dot. Possible values are png, jpg, or gif
-# If left blank png will be used.
-
-DOT_IMAGE_FORMAT       = png
-
-# The tag DOT_PATH can be used to specify the path where the dot tool can be 
-# found. If left blank, it is assumed the dot tool can be found on the path.
-
-DOT_PATH               = 
-
-# The DOTFILE_DIRS tag can be used to specify one or more directories that 
-# contain dot files that are included in the documentation (see the 
-# \dotfile command).
-
-DOTFILE_DIRS           = 
-
-# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width 
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
-# this value, doxygen will try to truncate the graph, so that it fits within 
-# the specified constraint. Beware that most browsers cannot cope with very 
-# large images.
-
-MAX_DOT_GRAPH_WIDTH    = 1024
-
-# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height 
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
-# this value, doxygen will try to truncate the graph, so that it fits within 
-# the specified constraint. Beware that most browsers cannot cope with very 
-# large images.
-
-MAX_DOT_GRAPH_HEIGHT   = 1024
-
-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the 
-# graphs generated by dot. A depth value of 3 means that only nodes reachable 
-# from the root by following a path via at most 3 edges will be shown. Nodes that 
-# lay further from the root node will be omitted. Note that setting this option to 
-# 1 or 2 may greatly reduce the computation time needed for large code bases. Also 
-# note that a graph may be further truncated if the graph's image dimensions are 
-# not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH and MAX_DOT_GRAPH_HEIGHT). 
-# If 0 is used for the depth value (the default), the graph is not depth-constrained.
-
-MAX_DOT_GRAPH_DEPTH    = 0
-
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
-# generate a legend page explaining the meaning of the various boxes and 
-# arrows in the dot generated graphs.
-
-GENERATE_LEGEND        = YES
-
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 
-# remove the intermediate dot files that are used to generate 
-# the various graphs.
-
-DOT_CLEANUP            = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to the search engine   
-#---------------------------------------------------------------------------
-
-# The SEARCHENGINE tag specifies whether or not a search engine should be 
-# used. If set to NO the values of all tags below this one will be ignored.
-
-SEARCHENGINE           = NO
diff --git a/doc/style.css b/doc/style.css
deleted file mode 100644
index 15efaec..0000000
--- a/doc/style.css
+++ /dev/null
@@ -1,30 +0,0 @@
-/***
-  This file is part of libdaemon.
-
-  Copyright 2003-2008 Lennart Poettering
-
-  Permission is hereby granted, free of charge, to any person obtaining a copy
-  of this software and associated documentation files (the "Software"), to deal
-  in the Software without restriction, including without limitation the rights
-  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-  copies of the Software, and to permit persons to whom the Software is
-  furnished to do so, subject to the following conditions:
-
-  The above copyright notice and this permission notice shall be included in
-  all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-  SOFTWARE.
-
-***/
-
-body { color: black; background-color: white; } 
-a:link, a:visited { color: #900000; }       
-div.news-date { font-size: 80%; font-style: italic; } 
-pre { background-color: #f0f0f0; padding: 0.4cm; }
-.grey { color: #8f8f8f; font-size: 80%; }
diff --git a/examples/.gitignore b/examples/.gitignore
deleted file mode 100644
index db50de7..0000000
--- a/examples/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-testd
-
diff --git a/examples/Makefile.am b/examples/Makefile.am
deleted file mode 100644
index 930c3bf..0000000
--- a/examples/Makefile.am
+++ /dev/null
@@ -1,28 +0,0 @@
-# This file is part of libdaemon.
-#
-# Copyright 2003-2008 Lennart Poettering
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-
-noinst_PROGRAMS = testd
-
-AM_CPPFLAGS=-I$(top_srcdir)
-
-testd_SOURCES=testd.c
-testd_LDADD=../libdaemon/libdaemon.la
diff --git a/examples/testd.c b/examples/testd.c
deleted file mode 100644
index 9154f7b..0000000
--- a/examples/testd.c
+++ /dev/null
@@ -1,194 +0,0 @@
-/***
-  This file is part of libdaemon.
-
-  Copyright 2003-2008 Lennart Poettering
-
-  Permission is hereby granted, free of charge, to any person obtaining a copy
-  of this software and associated documentation files (the "Software"), to deal
-  in the Software without restriction, including without limitation the rights
-  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-  copies of the Software, and to permit persons to whom the Software is
-  furnished to do so, subject to the following conditions:
-
-  The above copyright notice and this permission notice shall be included in
-  all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-  SOFTWARE.
-
-***/
-
-#include <signal.h>
-#include <errno.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/time.h>
-#include <sys/unistd.h>
-#include <sys/select.h>
-
-#include <libdaemon/dfork.h>
-#include <libdaemon/dsignal.h>
-#include <libdaemon/dlog.h>
-#include <libdaemon/dpid.h>
-#include <libdaemon/dexec.h>
-
-int main(int argc, char *argv[]) {
-    pid_t pid;
-
-    /* Reset signal handlers */
-    if (daemon_reset_sigs(-1) < 0) {
-        daemon_log(LOG_ERR, "Failed to reset all signal handlers: %s", strerror(errno));
-        return 1;
-    }
-
-    /* Unblock signals */
-    if (daemon_unblock_sigs(-1) < 0) {
-        daemon_log(LOG_ERR, "Failed to unblock all signals: %s", strerror(errno));
-        return 1;
-    }
-
-    /* Set indetification string for the daemon for both syslog and PID file */
-    daemon_pid_file_ident = daemon_log_ident = daemon_ident_from_argv0(argv[0]);
-
-    /* Check if we are called with -k parameter */
-    if (argc >= 2 && !strcmp(argv[1], "-k")) {
-        int ret;
-
-        /* Kill daemon with SIGTERM */
-
-        /* Check if the new function daemon_pid_file_kill_wait() is available, if it is, use it. */
-        if ((ret = daemon_pid_file_kill_wait(SIGTERM, 5)) < 0)
-            daemon_log(LOG_WARNING, "Failed to kill daemon: %s", strerror(errno));
-
-        return ret < 0 ? 1 : 0;
-    }
-
-    /* Check that the daemon is not rung twice a the same time */
-    if ((pid = daemon_pid_file_is_running()) >= 0) {
-        daemon_log(LOG_ERR, "Daemon already running on PID file %u", pid);
-        return 1;
-    }
-
-    /* Prepare for return value passing from the initialization procedure of the daemon process */
-    if (daemon_retval_init() < 0) {
-        daemon_log(LOG_ERR, "Failed to create pipe.");
-        return 1;
-    }
-
-    /* Do the fork */
-    if ((pid = daemon_fork()) < 0) {
-
-        /* Exit on error */
-        daemon_retval_done();
-        return 1;
-
-    } else if (pid) { /* The parent */
-        int ret;
-
-        /* Wait for 20 seconds for the return value passed from the daemon process */
-        if ((ret = daemon_retval_wait(20)) < 0) {
-            daemon_log(LOG_ERR, "Could not recieve return value from daemon process: %s", strerror(errno));
-            return 255;
-        }
-
-        daemon_log(ret != 0 ? LOG_ERR : LOG_INFO, "Daemon returned %i as return value.", ret);
-        return ret;
-
-    } else { /* The daemon */
-        int fd, quit = 0;
-        fd_set fds;
-
-        /* Close FDs */
-        if (daemon_close_all(-1) < 0) {
-            daemon_log(LOG_ERR, "Failed to close all file descriptors: %s", strerror(errno));
-
-            /* Send the error condition to the parent process */
-            daemon_retval_send(1);
-            goto finish;
-        }
-
-        /* Create the PID file */
-        if (daemon_pid_file_create() < 0) {
-            daemon_log(LOG_ERR, "Could not create PID file (%s).", strerror(errno));
-            daemon_retval_send(2);
-            goto finish;
-        }
-
-        /* Initialize signal handling */
-        if (daemon_signal_init(SIGINT, SIGTERM, SIGQUIT, SIGHUP, 0) < 0) {
-            daemon_log(LOG_ERR, "Could not register signal handlers (%s).", strerror(errno));
-            daemon_retval_send(3);
-            goto finish;
-        }
-
-        /*... do some further init work here */
-
-
-        /* Send OK to parent process */
-        daemon_retval_send(0);
-
-        daemon_log(LOG_INFO, "Sucessfully started");
-
-        /* Prepare for select() on the signal fd */
-        FD_ZERO(&fds);
-        fd = daemon_signal_fd();
-        FD_SET(fd, &fds);
-
-        while (!quit) {
-            fd_set fds2 = fds;
-
-            /* Wait for an incoming signal */
-            if (select(FD_SETSIZE, &fds2, 0, 0, 0) < 0) {
-
-                /* If we've been interrupted by an incoming signal, continue */
-                if (errno == EINTR)
-                    continue;
-
-                daemon_log(LOG_ERR, "select(): %s", strerror(errno));
-                break;
-            }
-
-            /* Check if a signal has been recieved */
-            if (FD_ISSET(fd, &fds2)) {
-                int sig;
-
-                /* Get signal */
-                if ((sig = daemon_signal_next()) <= 0) {
-                    daemon_log(LOG_ERR, "daemon_signal_next() failed: %s", strerror(errno));
-                    break;
-                }
-
-                /* Dispatch signal */
-                switch (sig) {
-
-                    case SIGINT:
-                    case SIGQUIT:
-                    case SIGTERM:
-                        daemon_log(LOG_WARNING, "Got SIGINT, SIGQUIT or SIGTERM.");
-                        quit = 1;
-                        break;
-
-                    case SIGHUP:
-                        daemon_log(LOG_INFO, "Got a HUP");
-                        daemon_exec("/", NULL, "/bin/ls", "ls", (char*) NULL);
-                        break;
-
-                }
-            }
-        }
-
-        /* Do a cleanup */
-finish:
-        daemon_log(LOG_INFO, "Exiting...");
-        daemon_retval_send(255);
-        daemon_signal_done();
-        daemon_pid_file_remove();
-
-        return 0;
-    }
-}
diff --git a/libdaemon/Makefile.am b/libdaemon/Makefile.am
deleted file mode 100644
index 9c56611..0000000
--- a/libdaemon/Makefile.am
+++ /dev/null
@@ -1,47 +0,0 @@
-# This file is part of libdaemon.
-#
-# Copyright 2003-2008 Lennart Poettering
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-#
-
-AM_CPPFLAGS='-DLOCALSTATEDIR="$(localstatedir)"'
-
-pkginclude_HEADERS = \
-	dlog.h \
-	dfork.h \
-	dsignal.h \
-	dnonblock.h \
-	dpid.h \
-	dexec.h \
-	daemon.h
-
-lib_LTLIBRARIES = libdaemon.la
-
-libdaemon_la_SOURCES = \
-	dlog.c \
-	dfork.c \
-	dsignal.c \
-	dnonblock.c \
-	dpid.c \
-	dexec.c \
-	daemon.h \
-	$(pkg_include_HEADERS)
-
-libdaemon_la_LDFLAGS = -version-info $(LIBDAEMON_VERSION_INFO) $(LDFLAGS_NOUNDEFINED)
diff --git a/libdaemon/daemon.h b/libdaemon/daemon.h
deleted file mode 100644
index 3d3573a..0000000
--- a/libdaemon/daemon.h
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef foodaemonhfoo
-#define foodaemonhfoo
-
-/***
-  This file is part of libdaemon.
-
-  Copyright 2003-2008 Lennart Poettering
-
-  Permission is hereby granted, free of charge, to any person obtaining a copy
-  of this software and associated documentation files (the "Software"), to deal
-  in the Software without restriction, including without limitation the rights
-  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-  copies of the Software, and to permit persons to whom the Software is
-  furnished to do so, subject to the following conditions:
-
-  The above copyright notice and this permission notice shall be included in
-  all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-  SOFTWARE.
-
-***/
-
-/** \file
- *
- * A header file including all other header files part of libdaemon
- */
-
-#include <libdaemon/dfork.h>
-#include <libdaemon/dlog.h>
-#include <libdaemon/dpid.h>
-#include <libdaemon/dsignal.h>
-#include <libdaemon/dexec.h>
-#include <libdaemon/dnonblock.h>
-
-#endif
diff --git a/libdaemon/dexec.c b/libdaemon/dexec.c
deleted file mode 100644
index 7a89b62..0000000
--- a/libdaemon/dexec.c
+++ /dev/null
@@ -1,232 +0,0 @@
-/***
-  This file is part of libdaemon.
-
-  Copyright 2003-2008 Lennart Poettering
-
-  Permission is hereby granted, free of charge, to any person obtaining a copy
-  of this software and associated documentation files (the "Software"), to deal
-  in the Software without restriction, including without limitation the rights
-  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-  copies of the Software, and to permit persons to whom the Software is
-  furnished to do so, subject to the following conditions:
-
-  The above copyright notice and this permission notice shall be included in
-  all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-  SOFTWARE.
-
-***/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <sys/types.h>
-#include <unistd.h>
-#include <string.h>
-#include <errno.h>
-#include <sys/stat.h>
-#include <stdlib.h>
-#include <signal.h>
-#include <sys/wait.h>
-#include <limits.h>
-#include <fcntl.h>
-#include <stdio.h>
-#include <stdarg.h>
-#include <assert.h>
-
-#include "dlog.h"
-#include "dsignal.h"
-#include "dfork.h"
-#include "dexec.h"
-
-#define MAX_ARGS 64
-
-int daemon_execv(const char *dir, int *ret, const char *prog, va_list ap) {
-    pid_t pid;
-    int p[2];
-    unsigned n = 0;
-    static char buf[256];
-    int sigfd, r;
-    fd_set fds;
-    int saved_errno;
-
-    assert(daemon_signal_fd() >= 0);
-
-    if (pipe(p) < 0) {
-        daemon_log(LOG_ERR, "pipe() failed: %s", strerror(errno));
-        return -1;
-    }
-
-    if ((pid = fork()) < 0) {
-        daemon_log(LOG_ERR, "fork() failed: %s", strerror(errno));
-
-        saved_errno = errno;
-        close(p[0]);
-        close(p[1]);
-        errno = saved_errno;
-
-        return -1;
-
-    } else if (pid == 0) {
-        char *args[MAX_ARGS];
-        int i;
-
-        if (p[1] != 1)
-            if (dup2(p[1], 1) < 0) {
-                daemon_log(LOG_ERR, "dup2: %s", strerror(errno));
-                goto fail;
-            }
-
-        if (p[1] != 2)
-            if (dup2(p[1], 2) < 0) {
-                daemon_log(LOG_ERR, "dup2: %s", strerror(errno));
-                goto fail;
-            }
-
-
-        if (p[0] > 2)
-            close(p[0]);
-
-        if (p[1] > 2)
-            close(p[1]);
-
-        close(0);
-
-        if (open("/dev/null", O_RDONLY) != 0) {
-            daemon_log(LOG_ERR, "Unable to open /dev/null as STDIN");
-            goto fail;
-        }
-
-        daemon_close_all(-1);
-        daemon_reset_sigs(-1);
-        daemon_unblock_sigs(-1);
-
-        umask(0022); /* Set up a sane umask */
-
-        if (dir && chdir(dir) < 0) {
-            daemon_log(LOG_WARNING, "Failed to change to directory '%s'", dir);
-            chdir("/");
-        }
-
-        for (i = 0; i < MAX_ARGS-1; i++)
-            if (!(args[i] = va_arg(ap, char*)))
-                break;
-        args[i] = NULL;
-
-        execv(prog, args);
-
-        daemon_log(LOG_ERR, "execv(%s) failed: %s", prog, strerror(errno));
-
-    fail:
-
-        _exit(EXIT_FAILURE);
-    }
-
-    close(p[1]);
-
-    FD_ZERO(&fds);
-    FD_SET(p[0], &fds);
-    sigfd = daemon_signal_fd();
-    FD_SET(sigfd, &fds);
-
-    n = 0;
-
-    for (;;) {
-        fd_set qfds = fds;
-
-        if (select(FD_SETSIZE, &qfds, NULL, NULL, NULL) < 0) {
-
-            if (errno == EINTR)
-                continue;
-
-            daemon_log(LOG_ERR, "select() failed: %s", strerror(errno));
-
-            saved_errno = errno;
-            close(p[0]);
-            errno = saved_errno;
-            return -1;
-        }
-
-        if (FD_ISSET(p[0], &qfds)) {
-            char c;
-
-            if (read(p[0], &c, 1) != 1)
-                break;
-
-            buf[n] = c;
-
-            if (c == '\n' || n >= sizeof(buf) - 2) {
-                if (c != '\n') n++;
-                buf[n] = 0;
-
-                if (buf[0])
-                    daemon_log(LOG_INFO, "client: %s", buf);
-
-                n = 0;
-            } else
-                n++;
-        }
-
-        if (FD_ISSET(sigfd, &qfds)) {
-            int sig;
-
-            if ((sig = daemon_signal_next()) < 0) {
-                saved_errno = errno;
-                close(p[0]);
-                errno = saved_errno;
-                return -1;
-            }
-
-            if (sig != SIGCHLD) {
-                daemon_log(LOG_WARNING, "Killing child.");
-                kill(pid, SIGTERM);
-            }
-        }
-    }
-
-    if (n > 0) {
-        buf[n] = 0;
-        daemon_log(LOG_WARNING, "client: %s", buf);
-    }
-
-    close(p[0]);
-
-    for (;;) {
-        if (waitpid(pid, &r, 0) < 0) {
-
-            if (errno == EINTR)
-                continue;
-
-            daemon_log(LOG_ERR, "waitpid(): %s", strerror(errno));
-            return -1;
-        } else {
-            if (!WIFEXITED(r)) {
-                errno = ECANCELED;
-                return -1;
-            }
-
-            if (ret)
-                *ret = WEXITSTATUS(r);
-
-            return 0;
-        }
-    }
-}
-
-int daemon_exec(const char *dir, int *ret, const char *prog, ...) {
-    va_list ap;
-    int r;
-
-    va_start(ap, prog);
-    r = daemon_execv(dir, ret, prog, ap);
-    va_end(ap);
-
-    return r;
-}
diff --git a/libdaemon/dexec.h b/libdaemon/dexec.h
deleted file mode 100644
index 7c03017..0000000
--- a/libdaemon/dexec.h
+++ /dev/null
@@ -1,84 +0,0 @@
-#ifndef foodexechfoo
-#define foodexechfoo
-
-/***
-  This file is part of libdaemon.
-
-  Copyright 2003-2008 Lennart Poettering
-
-  Permission is hereby granted, free of charge, to any person obtaining a copy
-  of this software and associated documentation files (the "Software"), to deal
-  in the Software without restriction, including without limitation the rights
-  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-  copies of the Software, and to permit persons to whom the Software is
-  furnished to do so, subject to the following conditions:
-
-  The above copyright notice and this permission notice shall be included in
-  all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-  SOFTWARE.
-
-***/
-
-#include <stdarg.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** \file
- *
- * Contains a robust API for running sub processes with STDOUT and
- * STDERR redirected to syslog
- */
-
-/** This variable is defined to 1 iff daemon_exec() is supported.
- * @since 0.4
- * @see daemon_exec() */
-#define DAEMON_EXEC_AVAILABLE 1
-
-#if defined(__GNUC__) && ! defined(DAEMON_GCC_SENTINEL)
-#define DAEMON_GCC_SENTINEL __attribute__ ((sentinel))
-#else
-/** A macro for making use of GCCs printf compilation warnings */
-#define DAEMON_GCC_SENTINEL
-#endif
-
-/** Run the specified executable with the specified arguments in the
- * specified directory and return the return value of the program in
- * the specified pointer. The calling process is blocked until the
- * child finishes and all child output (either STDOUT or STDIN) has
- * been written to syslog. Running this function requires that
- * daemon_signal() has been called with SIGCHLD as argument.
- *
- * @param dir Working directory for the process.
- * @param ret A pointer to an integer to write the return value of the program to.
- * @param prog The path to the executable
- * @param ... The arguments to be passed to the program, followed by a (char *) NULL
- * @return Nonzero on failure, zero on success
- * @since 0.4
- * @see DAEMON_EXEC_AVAILABLE
- */
-int daemon_exec(const char *dir, int *ret, const char *prog, ...) DAEMON_GCC_SENTINEL;
-
-/** This variable is defined to 1 iff daemon_execv() is supported.
- * @since 0.11
- * @see daemon_execv() */
-#define DAEMON_EXECV_AVAILABLE 1
-
-/** The same as daemon_exec, but without variadic arguments
- * @since 0.11
- * @see DAEMON_EXECV_AVAILABLE */
-int daemon_execv(const char *dir, int *ret, const char *prog, va_list ap);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/libdaemon/dfork.c b/libdaemon/dfork.c
deleted file mode 100644
index 783033f..0000000
--- a/libdaemon/dfork.c
+++ /dev/null
@@ -1,730 +0,0 @@
-/***
-  This file is part of libdaemon.
-
-  Copyright 2003-2008 Lennart Poettering
-
-  Permission is hereby granted, free of charge, to any person obtaining a copy
-  of this software and associated documentation files (the "Software"), to deal
-  in the Software without restriction, including without limitation the rights
-  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-  copies of the Software, and to permit persons to whom the Software is
-  furnished to do so, subject to the following conditions:
-
-  The above copyright notice and this permission notice shall be included in
-  all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-  SOFTWARE.
-
-***/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <sys/types.h>
-#include <unistd.h>
-#include <errno.h>
-#include <string.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/wait.h>
-#include <assert.h>
-#include <sys/ioctl.h>
-#include <signal.h>
-#include <sys/time.h>
-#include <sys/resource.h>
-#include <dirent.h>
-
-#include "dfork.h"
-#include "dnonblock.h"
-#include "dlog.h"
-
-#if defined(_NSIG) /* On glibc NSIG does not count RT signals */
-# define SIGNAL_UPPER_BOUND _NSIG
-#elif defined(NSIG) /* Solaris defines just this */
-# define SIGNAL_UPPER_BOUND NSIG
-#else
-# error "Unknown upper bound for signals"
-#endif
-
-static int _daemon_retval_pipe[2] = { -1, -1 };
-
-static int _null_open(int f, int fd) {
-    int fd2;
-
-    if ((fd2 = open("/dev/null", f)) < 0)
-        return -1;
-
-    if (fd2 == fd)
-        return fd;
-
-    if (dup2(fd2, fd) < 0)
-        return -1;
-
-    close(fd2);
-    return fd;
-}
-
-static ssize_t atomic_read(int fd, void *d, size_t l) {
-    ssize_t t = 0;
-
-    while (l > 0) {
-        ssize_t r;
-
-        if ((r = read(fd, d, l)) <= 0) {
-
-            if (r < 0)
-                return t > 0 ? t : -1;
-            else
-                return t;
-        }
-
-        t += r;
-        d = (char*) d + r;
-        l -= r;
-    }
-
-    return t;
-}
-
-static ssize_t atomic_write(int fd, const void *d, size_t l) {
-    ssize_t t = 0;
-
-    while (l > 0) {
-        ssize_t r;
-
-        if ((r = write(fd, d, l)) <= 0) {
-
-            if (r < 0)
-                return t > 0 ? t : -1;
-            else
-                return t;
-        }
-
-        t += r;
-        d = (const char*) d + r;
-        l -= r;
-    }
-
-    return t;
-}
-
-static int move_fd_up(int *fd) {
-    assert(fd);
-
-    while (*fd <= 2) {
-        if ((*fd = dup(*fd)) < 0) {
-            daemon_log(LOG_ERR, "dup(): %s", strerror(errno));
-            return -1;
-        }
-    }
-
-    return 0;
-}
-
-static void sigchld(int s) {
-}
-
-pid_t daemon_fork(void) {
-    pid_t pid;
-    int pipe_fds[2] = {-1, -1};
-    struct sigaction sa_old, sa_new;
-    sigset_t ss_old, ss_new;
-    int saved_errno;
-
-    memset(&sa_new, 0, sizeof(sa_new));
-    sa_new.sa_handler = sigchld;
-    sa_new.sa_flags = SA_RESTART;
-
-    if (sigemptyset(&ss_new) < 0) {
-        daemon_log(LOG_ERR, "sigemptyset() failed: %s", strerror(errno));
-        return (pid_t) -1;
-    }
-
-    if (sigaddset(&ss_new, SIGCHLD) < 0) {
-        daemon_log(LOG_ERR, "sigaddset() failed: %s", strerror(errno));
-        return (pid_t) -1;
-    }
-
-    if (sigaction(SIGCHLD, &sa_new, &sa_old) < 0) {
-        daemon_log(LOG_ERR, "sigaction() failed: %s", strerror(errno));
-        return (pid_t) -1;
-    }
-
-    if (sigprocmask(SIG_UNBLOCK, &ss_new, &ss_old) < 0) {
-        daemon_log(LOG_ERR, "sigprocmask() failed: %s", strerror(errno));
-
-        saved_errno = errno;
-        sigaction(SIGCHLD, &sa_old, NULL);
-        errno = saved_errno;
-
-        return (pid_t) -1;
-    }
-
-    if (pipe(pipe_fds) < 0) {
-        daemon_log(LOG_ERR, "pipe() failed: %s", strerror(errno));
-
-        saved_errno = errno;
-        sigaction(SIGCHLD, &sa_old, NULL);
-        sigprocmask(SIG_SETMASK, &ss_old, NULL);
-        errno = saved_errno;
-
-        return (pid_t) -1;
-    }
-
-    if ((pid = fork()) < 0) { /* First fork */
-        daemon_log(LOG_ERR, "First fork() failed: %s", strerror(errno));
-
-        saved_errno = errno;
-        close(pipe_fds[0]);
-        close(pipe_fds[1]);
-        sigaction(SIGCHLD, &sa_old, NULL);
-        sigprocmask(SIG_SETMASK, &ss_old, NULL);
-        errno = saved_errno;
-
-        return (pid_t) -1;
-
-    } else if (pid == 0) {
-        pid_t dpid;
-
-        /* First child. Now we are sure not to be a session leader or
-         * process group leader anymore, i.e. we know that setsid()
-         * will succeed. */
-
-        if (daemon_log_use & DAEMON_LOG_AUTO)
-            daemon_log_use = DAEMON_LOG_SYSLOG;
-
-        if (close(pipe_fds[0]) < 0) {
-            daemon_log(LOG_ERR, "close() failed: %s", strerror(errno));
-            goto fail;
-        }
-
-        /* Move file descriptors up*/
-        if (move_fd_up(&pipe_fds[1]) < 0)
-            goto fail;
-
-        if (_daemon_retval_pipe[0] >= 0 && move_fd_up(&_daemon_retval_pipe[0]) < 0)
-            goto fail;
-        if (_daemon_retval_pipe[1] >= 0 && move_fd_up(&_daemon_retval_pipe[1]) < 0)
-            goto fail;
-
-        if (_null_open(O_RDONLY, 0) < 0) {
-            daemon_log(LOG_ERR, "Failed to open /dev/null for STDIN: %s", strerror(errno));
-            goto fail;
-        }
-
-        if (_null_open(O_WRONLY, 1) < 0) {
-            daemon_log(LOG_ERR, "Failed to open /dev/null for STDOUT: %s", strerror(errno));
-            goto fail;
-        }
-
-        if (_null_open(O_WRONLY, 2) < 0) {
-            daemon_log(LOG_ERR, "Failed to open /dev/null for STDERR: %s", strerror(errno));
-            goto fail;
-        }
-
-        /* Create a new session. This will create a new session and a
-         * new process group for us and we will be the ledaer of
-         * both. This should always succeed because we cannot be the
-         * process group leader because we just forked. */
-        if (setsid() < 0) {
-            daemon_log(LOG_ERR, "setsid() failed: %s", strerror(errno));
-            goto fail;
-        }
-
-        umask(0077);
-
-        if (chdir("/") < 0) {
-            daemon_log(LOG_ERR, "chdir() failed: %s", strerror(errno));
-            goto fail;
-        }
-
-        if ((pid = fork()) < 0) { /* Second fork */
-            daemon_log(LOG_ERR, "Second fork() failed: %s", strerror(errno));
-            goto fail;
-
-        } else if (pid == 0) {
-            /* Second child. Our father will exit right-away. That way
-             * we can be sure that we are a child of init now, even if
-             * the process which spawned us stays around for a longer
-             * time. Also, since we are no session leader anymore we
-             * can be sure that we will never acquire a controlling
-             * TTY. */
-
-            if (sigaction(SIGCHLD, &sa_old, NULL) < 0) {
-                daemon_log(LOG_ERR, "close() failed: %s", strerror(errno));
-                goto fail;
-            }
-
-            if (sigprocmask(SIG_SETMASK, &ss_old, NULL) < 0) {
-                daemon_log(LOG_ERR, "sigprocmask() failed: %s", strerror(errno));
-                goto fail;
-            }
-
-            if (signal(SIGTTOU, SIG_IGN) == SIG_ERR) {
-                daemon_log(LOG_ERR, "signal(SIGTTOU, SIG_IGN) failed: %s", strerror(errno));
-                goto fail;
-            }
-
-            if (signal(SIGTTIN, SIG_IGN) == SIG_ERR) {
-                daemon_log(LOG_ERR, "signal(SIGTTIN, SIG_IGN) failed: %s", strerror(errno));
-                goto fail;
-            }
-
-            if (signal(SIGTSTP, SIG_IGN) == SIG_ERR) {
-                daemon_log(LOG_ERR, "signal(SIGTSTP, SIG_IGN) failed: %s", strerror(errno));
-                goto fail;
-            }
-
-            dpid = getpid();
-            if (atomic_write(pipe_fds[1], &dpid, sizeof(dpid)) != sizeof(dpid)) {
-                daemon_log(LOG_ERR, "write() failed: %s", strerror(errno));
-                goto fail;
-            }
-
-            if (close(pipe_fds[1]) < 0) {
-                daemon_log(LOG_ERR, "close() failed: %s", strerror(errno));
-                goto fail;
-            }
-
-            return 0;
-
-        } else {
-            /* Second father */
-            close(pipe_fds[1]);
-            _exit(0);
-        }
-
-    fail:
-        dpid = (pid_t) -1;
-
-        if (atomic_write(pipe_fds[1], &dpid, sizeof(dpid)) != sizeof(dpid))
-            daemon_log(LOG_ERR, "Failed to write error PID: %s", strerror(errno));
-
-        close(pipe_fds[1]);
-        _exit(0);
-
-    } else {
-        /* First father */
-        pid_t dpid;
-
-        close(pipe_fds[1]);
-
-        if (waitpid(pid, NULL, WUNTRACED) < 0) {
-            saved_errno = errno;
-            close(pipe_fds[0]);
-            sigaction(SIGCHLD, &sa_old, NULL);
-            sigprocmask(SIG_SETMASK, &ss_old, NULL);
-            errno = saved_errno;
-            return -1;
-        }
-
-        sigprocmask(SIG_SETMASK, &ss_old, NULL);
-        sigaction(SIGCHLD, &sa_old, NULL);
-
-        if (atomic_read(pipe_fds[0], &dpid, sizeof(dpid)) != sizeof(dpid)) {
-            daemon_log(LOG_ERR, "Failed to read daemon PID.");
-            dpid = (pid_t) -1;
-            errno = EINVAL;
-        } else if (dpid == (pid_t) -1)
-            errno = EIO;
-
-        saved_errno = errno;
-        close(pipe_fds[0]);
-        errno = saved_errno;
-
-        return dpid;
-    }
-}
-
-int daemon_retval_init(void) {
-
-    if (_daemon_retval_pipe[0] < 0 || _daemon_retval_pipe[1] < 0) {
-
-        if (pipe(_daemon_retval_pipe) < 0) {
-            daemon_log(LOG_ERR, "pipe(): %s", strerror(errno));
-            return -1;
-        }
-    }
-
-    return 0;
-}
-
-void daemon_retval_done(void) {
-    int saved_errno = errno;
-
-    if (_daemon_retval_pipe[0] >= 0)
-        close(_daemon_retval_pipe[0]);
-
-    if (_daemon_retval_pipe[1] >= 0)
-        close(_daemon_retval_pipe[1]);
-
-    _daemon_retval_pipe[0] = _daemon_retval_pipe[1] = -1;
-
-    errno = saved_errno;
-}
-
-int daemon_retval_send(int i) {
-    ssize_t r;
-
-    if (_daemon_retval_pipe[1] < 0) {
-        errno = EINVAL;
-        return -1;
-    }
-
-    r = atomic_write(_daemon_retval_pipe[1], &i, sizeof(i));
-
-    daemon_retval_done();
-
-    if (r != sizeof(i)) {
-
-        if (r < 0)
-            daemon_log(LOG_ERR, "write() failed while writing return value to pipe: %s", strerror(errno));
-        else {
-            daemon_log(LOG_ERR, "write() too short while writing return value from pipe");
-            errno = EINVAL;
-        }
-
-        return -1;
-    }
-
-    return 0;
-}
-
-int daemon_retval_wait(int timeout) {
-    ssize_t r;
-    int i;
-
-    if (timeout > 0) {
-        struct timeval tv;
-        int s;
-        fd_set fds;
-
-        tv.tv_sec = timeout;
-        tv.tv_usec = 0;
-
-        FD_ZERO(&fds);
-        FD_SET(_daemon_retval_pipe[0], &fds);
-
-        if ((s = select(FD_SETSIZE, &fds, 0, 0, &tv)) != 1) {
-
-            if (s < 0)
-                daemon_log(LOG_ERR, "select() failed while waiting for return value: %s", strerror(errno));
-            else {
-                errno = ETIMEDOUT;
-                daemon_log(LOG_ERR, "Timeout reached while wating for return value");
-            }
-
-            return -1;
-        }
-    }
-
-    if ((r = atomic_read(_daemon_retval_pipe[0], &i, sizeof(i))) != sizeof(i)) {
-
-        if (r < 0)
-            daemon_log(LOG_ERR, "read() failed while reading return value from pipe: %s", strerror(errno));
-        else if (r == 0) {
-            daemon_log(LOG_ERR, "read() failed with EOF while reading return value from pipe.");
-            errno = EINVAL;
-        } else if (r > 0) {
-            daemon_log(LOG_ERR, "read() too short while reading return value from pipe.");
-            errno = EINVAL;
-        }
-
-        return -1;
-    }
-
-    daemon_retval_done();
-
-    return i;
-}
-
-int daemon_close_all(int except_fd, ...) {
-    va_list ap;
-    int n = 0, i, r;
-    int *p;
-    int saved_errno;
-
-    va_start(ap, except_fd);
-
-    if (except_fd >= 0)
-        for (n = 1; va_arg(ap, int) >= 0; n++)
-            ;
-
-    va_end(ap);
-
-    if (!(p = malloc(sizeof(int) * (n+1))))
-        return -1;
-
-    va_start(ap, except_fd);
-
-    i = 0;
-    if (except_fd >= 0) {
-        int fd;
-        p[i++] = except_fd;
-
-        while ((fd = va_arg(ap, int)) >= 0)
-            p[i++] = fd;
-    }
-    p[i] = -1;
-
-    va_end(ap);
-
-    r = daemon_close_allv(p);
-
-    saved_errno = errno;
-    free(p);
-    errno = saved_errno;
-
-    return r;
-}
-
-/** Same as daemon_close_all but takes an array of fds, terminated by -1 */
-int daemon_close_allv(const int except_fds[]) {
-    struct rlimit rl;
-    int fd, maxfd;
-
-#ifdef __linux__
-    int saved_errno;
-
-    DIR *d;
-
-    if ((d = opendir("/proc/self/fd"))) {
-
-        struct dirent *de;
-
-        while ((de = readdir(d))) {
-            int found;
-            long l;
-            char *e = NULL;
-            int i;
-
-            if (de->d_name[0] == '.')
-                continue;
-
-            errno = 0;
-            l = strtol(de->d_name, &e, 10);
-            if (errno != 0 || !e || *e) {
-                closedir(d);
-                errno = EINVAL;
-                return -1;
-            }
-
-            fd = (int) l;
-
-            if ((long) fd != l) {
-                closedir(d);
-                errno = EINVAL;
-                return -1;
-            }
-
-            if (fd < 3)
-                continue;
-
-            if (fd == dirfd(d))
-                continue;
-
-            if (fd == _daemon_retval_pipe[1])
-                continue;
-
-            found = 0;
-            for (i = 0; except_fds[i] >= 0; i++)
-                if (except_fds[i] == fd) {
-                    found = 1;
-                    break;
-                }
-
-            if (found)
-                continue;
-
-            if (close(fd) < 0) {
-                saved_errno = errno;
-                closedir(d);
-                errno = saved_errno;
-
-                return -1;
-            }
-
-            if (fd == _daemon_retval_pipe[0])
-                _daemon_retval_pipe[0] = -1;    /* mark as closed */
-        }
-
-        closedir(d);
-        return 0;
-    }
-
-#endif
-
-    if (getrlimit(RLIMIT_NOFILE, &rl) > 0)
-        maxfd = (int) rl.rlim_max;
-    else
-        maxfd = sysconf(_SC_OPEN_MAX);
-
-    for (fd = 3; fd < maxfd; fd++) {
-        int i, found;
-
-        if (fd == _daemon_retval_pipe[1])
-            continue;
-
-        found = 0;
-        for (i = 0; except_fds[i] >= 0; i++)
-            if (except_fds[i] == fd) {
-                found = 1;
-                break;
-            }
-
-        if (found)
-            continue;
-
-        if (close(fd) < 0 && errno != EBADF)
-            return -1;
-
-        if (fd == _daemon_retval_pipe[0])
-            _daemon_retval_pipe[0] = -1;        /* mark as closed */
-    }
-
-    return 0;
-}
-
-int daemon_unblock_sigs(int except, ...) {
-    va_list ap;
-    int n = 0, i, r;
-    int *p;
-    int saved_errno;
-
-    va_start(ap, except);
-
-    if (except >= 1)
-        for (n = 1; va_arg(ap, int) >= 0; n++)
-            ;
-
-    va_end(ap);
-
-    if (!(p = malloc(sizeof(int) * (n+1))))
-        return -1;
-
-    va_start(ap, except);
-
-    i = 0;
-    if (except >= 1) {
-        int sig;
-        p[i++] = except;
-
-        while ((sig = va_arg(ap, int)) >= 0)
-            p[i++] = sig;
-    }
-    p[i] = -1;
-
-    va_end(ap);
-
-    r = daemon_unblock_sigsv(p);
-
-    saved_errno = errno;
-    free(p);
-    errno = saved_errno;
-
-    return r;
-}
-
-int daemon_unblock_sigsv(const int except[]) {
-    int i;
-    sigset_t ss;
-
-    if (sigemptyset(&ss) < 0)
-        return -1;
-
-    for (i = 0; except[i] > 0; i++)
-        if (sigaddset(&ss, except[i]) < 0)
-            return -1;
-
-    return sigprocmask(SIG_SETMASK, &ss, NULL);
-}
-
-int daemon_reset_sigs(int except, ...) {
-    va_list ap;
-    int n = 0, i, r;
-    int *p;
-    int saved_errno;
-
-    va_start(ap, except);
-
-    if (except >= 1)
-        for (n = 1; va_arg(ap, int) >= 0; n++)
-            ;
-
-    va_end(ap);
-
-    if (!(p = malloc(sizeof(int) * (n+1))))
-        return -1;
-
-    va_start(ap, except);
-
-    i = 0;
-    if (except >= 1) {
-        int sig;
-        p[i++] = except;
-
-        while ((sig = va_arg(ap, int)) >= 0)
-            p[i++] = sig;
-    }
-    p[i] = -1;
-
-    va_end(ap);
-
-    r = daemon_reset_sigsv(p);
-
-    saved_errno = errno;
-    free(p);
-    errno = saved_errno;
-
-    return r;
-}
-
-int daemon_reset_sigsv(const int except[]) {
-    int sig;
-
-    for (sig = 1; sig < SIGNAL_UPPER_BOUND; sig++) {
-        int reset = 1;
-
-        switch (sig) {
-            case SIGKILL:
-            case SIGSTOP:
-                reset = 0;
-                break;
-
-            default: {
-                int i;
-
-                for (i = 0; except[i] > 0; i++) {
-                    if (sig == except[i]) {
-                        reset = 0;
-                        break;
-                    }
-                }
-            }
-        }
-
-        if (reset) {
-            struct sigaction sa;
-
-            memset(&sa, 0, sizeof(sa));
-            sa.sa_handler = SIG_DFL;
-
-            /* On Linux the first two RT signals are reserved by
-             * glibc, and sigaction() will return EINVAL for them. */
-            if ((sigaction(sig, &sa, NULL) < 0))
-                if (errno != EINVAL)
-                    return -1;
-        }
-    }
-
-    return 0;
-}
diff --git a/libdaemon/dfork.h b/libdaemon/dfork.h
deleted file mode 100644
index 47b1630..0000000
--- a/libdaemon/dfork.h
+++ /dev/null
@@ -1,165 +0,0 @@
-#ifndef foodaemonforkhfoo
-#define foodaemonforkhfoo
-
-/***
-  This file is part of libdaemon.
-
-  Copyright 2003-2008 Lennart Poettering
-
-  Permission is hereby granted, free of charge, to any person obtaining a copy
-  of this software and associated documentation files (the "Software"), to deal
-  in the Software without restriction, including without limitation the rights
-  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-  copies of the Software, and to permit persons to whom the Software is
-  furnished to do so, subject to the following conditions:
-
-  The above copyright notice and this permission notice shall be included in
-  all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-  SOFTWARE.
-
-***/
-
-#include <sys/types.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** \mainpage libdaemon
- *
- * libdaemon
- *
- * For a brief explanation of libdaemons's purpose, have a look on the
- * README file. Thank you!
- *
- */
-
-/** \example testd.c
- * This is an example for the usage of libdaemon
- */
-
-/** \file
- *
- * Contains an API for doing a daemonizing fork().
- *
- * You may daemonize by calling daemon_fork(), a function similar to
- * the plain fork(). If you want to return a return value of the
- * initialization procedure of the child from the parent, you may use
- * the daemon_retval_xxx() functions.
- */
-
-/** Does a daemonizing fork(). For the new daemon process STDIN,
- * STDOUT, STDERR are connected to /dev/null, the process is a session
- * leader, the current directory is changed to /, the umask is set to
- * 777.
- * @return On success, the PID of the child process is returned in the
- * parent's thread of execution, and a 0 is returned in the child's
- * thread of execution. On failure, -1 will be returned in the
- * parent's context, no child process will be created, and errno will
- * be set appropriately.
- */
-pid_t daemon_fork(void);
-
-/** Allocate and initialize resources required by the
- * daemon_retval_xxx() functions. These functions allow the child to
- * send a value to the parent after completing its initialisation.
- * Call this in the parent before forking.
- * @return zero on success, nonzero on failure.
- */
-int daemon_retval_init(void);
-
-/** Frees the resources allocated by daemon_retval_init(). This should
- * be called if neither daemon_retval_wait() nor daemon_retval_send()
- * is called in the current process. The resources allocated by
- * daemon_retval_init() should be freed in both parent and daemon
- * process. This may be achieved by using daemon_retval_wait()
- * resp. daemon_retval_send(), or by using daemon_retval_done().
- */
-void daemon_retval_done(void);
-
-/** Return the value sent by the child via the daemon_retval_send()
- * function, but wait only the specified number of seconds before
- * timing out and returning a negative number. Should be called just
- * once from the parent process only. A subsequent call to
- * daemon_retval_done() in the parent is ignored.
- *
- * @param timeout Thetimeout in seconds
- * @return The integer passed daemon_retval_send() in the daemon process, or -1 on failure.
- */
-int daemon_retval_wait(int timeout);
-
-/** Send the specified integer to the parent process. Do not send -1
- * because this signifies a library error. Should be called just once
- * from the daemon process only. A subsequent call to
- * daemon_retval_done() in the daemon is ignored.  @param s The
- * integer to pass to daemon_retval_wait() in the parent process
- * @return Zero on success, nonzero on failure.
- */
-int daemon_retval_send(int s);
-
-/** This variable is defined to 1 iff daemon_close_all() and
- * daemon_close_allv() are supported.
- * @since 0.11
- * @see daemon_close_all(), daemon_close_allv() */
-#define DAEMON_CLOSE_ALL_AVAILABLE 1
-
-/** Close all file descriptors except those passed. List needs to be
- * terminated by -1. FDs 0, 1, 2 will be kept open anyway.
- * @since 0.11
- * @see DAEMON_CLOSE_ALL_AVAILABLE */
-int daemon_close_all(int except_fd, ...);
-
-/** Same as daemon_close_all but takes an array of fds, terminated by
- * -1
- * @since 0.11
- * @see DAEMON_CLOSE_ALL_AVAILABLE */
-int daemon_close_allv(const int except_fds[]);
-
-/** This variable is defined to 1 iff daemon_unblock_sigs() and
- * daemon_unblock_sigsv() are supported.
- * @since 0.13
- * @see daemon_unblock_sigs(), daemon_unblock_sigsv()*/
-#define DAEMON_UNBLOCK_SIGS_AVAILABLE 1
-
-/** Unblock all signals except those passed. List needs to be
- * terminated by -1.
- * @since 0.13
- * @see DAEMON_UNBLOCK_SIGS_AVAILABLE */
-int daemon_unblock_sigs(int except, ...);
-
-/** Same as daemon_unblock_sigs() but takes an array of signals,
- * terminated by -1
- * @since 0.13
- * @see DAEMON_UNBLOCK_SIGS_AVAILABLE */
-int daemon_unblock_sigsv(const int except[]);
-
-/** This variable is defined to 1 iff daemon_reset_sigs() and
- * daemon_reset_sigsv() are supported.
- * @since 0.13
- * @see daemon_reset_sigs(), daemon_reset_sigsv() */
-#define DAEMON_RESET_SIGS_AVAILABLE 1
-
-/** Reset all signal handlers except those passed. List needs to be
- * terminated by -1.
- * @since 0.13
- * @see DAEMON_RESET_SIGS_AVAILABLE */
-int daemon_reset_sigs(int except, ...);
-
-/** Same as daemon_reset_sigs() but takes an array of signals,
- * terminated by -1
- * @since 0.13
- * @see DAEMON_RESET_SIGS_AVAILABLE */
-int daemon_reset_sigsv(const int except[]);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/libdaemon/dlog.c b/libdaemon/dlog.c
deleted file mode 100644
index 1cc0566..0000000
--- a/libdaemon/dlog.c
+++ /dev/null
@@ -1,93 +0,0 @@
-/***
-  This file is part of libdaemon.
-
-  Copyright 2003-2008 Lennart Poettering
-
-  Permission is hereby granted, free of charge, to any person obtaining a copy
-  of this software and associated documentation files (the "Software"), to deal
-  in the Software without restriction, including without limitation the rights
-  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-  copies of the Software, and to permit persons to whom the Software is
-  furnished to do so, subject to the following conditions:
-
-  The above copyright notice and this permission notice shall be included in
-  all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-  SOFTWARE.
-
-***/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdarg.h>
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-
-#include "dlog.h"
-
-enum daemon_log_flags daemon_log_use = DAEMON_LOG_AUTO|DAEMON_LOG_STDERR;
-const char* daemon_log_ident = NULL;
-
-static int daemon_verbosity_level = LOG_INFO;
-
-void daemon_set_verbosity(int verbosity_prio) {
-
-    /* Allow using negative verbosity levels to hide _all_ messages */
-    if (verbosity_prio > 0 && (verbosity_prio & LOG_PRIMASK) != LOG_PRIMASK)
-        daemon_log(LOG_ERR, "The value %d is not a valid priority value", verbosity_prio);
-
-    daemon_verbosity_level = verbosity_prio & LOG_PRIMASK;
-}
-
-void daemon_logv(int prio, const char* template, va_list arglist) {
-    int saved_errno;
-
-    saved_errno = errno;
-
-    if (daemon_log_use & DAEMON_LOG_SYSLOG) {
-        openlog(daemon_log_ident ? daemon_log_ident : "UNKNOWN", LOG_PID, LOG_DAEMON);
-        vsyslog(prio | LOG_DAEMON, template, arglist);
-    }
-
-    if (prio > daemon_verbosity_level)
-        goto end_daemon_logv;
-
-    if (daemon_log_use & DAEMON_LOG_STDERR) {
-        vfprintf(stderr, template, arglist);
-        fprintf(stderr, "\n");
-    }
-
-    if (daemon_log_use & DAEMON_LOG_STDOUT) {
-        vfprintf(stdout, template, arglist);
-        fprintf(stdout, "\n");
-    }
-
- end_daemon_logv:
-    errno = saved_errno;
-}
-
-void daemon_log(int prio, const char* template, ...) {
-    va_list arglist;
-
-    va_start(arglist, template);
-    daemon_logv(prio, template, arglist);
-    va_end(arglist);
-}
-
-char *daemon_ident_from_argv0(char *argv0) {
-    char *p;
-
-    if ((p = strrchr(argv0, '/')))
-        return p+1;
-
-    return argv0;
-}
diff --git a/libdaemon/dlog.h b/libdaemon/dlog.h
deleted file mode 100644
index deea520..0000000
--- a/libdaemon/dlog.h
+++ /dev/null
@@ -1,119 +0,0 @@
-#ifndef foodaemonloghfoo
-#define foodaemonloghfoo
-
-/***
-  This file is part of libdaemon.
-
-  Copyright 2003-2008 Lennart Poettering
-
-  Permission is hereby granted, free of charge, to any person obtaining a copy
-  of this software and associated documentation files (the "Software"), to deal
-  in the Software without restriction, including without limitation the rights
-  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-  copies of the Software, and to permit persons to whom the Software is
-  furnished to do so, subject to the following conditions:
-
-  The above copyright notice and this permission notice shall be included in
-  all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-  SOFTWARE.
-
-***/
-
-#include <syslog.h>
-#include <stdarg.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** \file
- *
- * Contains a robust API for logging messages
- */
-
-/** Specifies where to send the log messages to. The global variable daemon_log_use takes values of this type.
- */
-enum daemon_log_flags {
-    DAEMON_LOG_SYSLOG = 1,   /**< Log messages are written to syslog */
-    DAEMON_LOG_STDERR = 2,   /**< Log messages are written to STDERR */
-    DAEMON_LOG_STDOUT = 4,   /**< Log messages are written to STDOUT */
-    DAEMON_LOG_AUTO = 8      /**< If this is set a daemon_fork() will
-                                  change this to DAEMON_LOG_SYSLOG in
-                                  the daemon process. */
-};
-
-/** This variable is used to specify the log target(s) to
- * use. Defaults to DAEMON_LOG_STDERR|DAEMON_LOG_AUTO */
-extern enum daemon_log_flags daemon_log_use;
-
-/** Specifies the syslog identification, use daemon_ident_from_argv0()
- * to set this to a sensible value or generate your own. */
-extern const char* daemon_log_ident;
-
-#if defined(__GNUC__) && ! defined(DAEMON_GCC_PRINTF_ATTR)
-#define DAEMON_GCC_PRINTF_ATTR(a,b) __attribute__ ((format (printf, a, b)))
-#else
-/** A macro for making use of GCCs printf compilation warnings */
-#define DAEMON_GCC_PRINTF_ATTR(a,b)
-#endif
-
-/** Log a message using printf format strings using the specified syslog priority
- * @param prio The syslog priority (PRIO_xxx constants)
- * @param t,... The text message to log
- */
-void daemon_log(int prio, const char* t, ...) DAEMON_GCC_PRINTF_ATTR(2,3);
-
-/** This variable is defined to 1 iff daemon_logv() is supported.
- * @since 0.11
- * @see daemon_logv()
- */
-#define DAEMON_LOGV_AVAILABLE 1
-
-/** Same as daemon_log(), but without variadic arguments
- * @since 0.11
- * @see DAEMON_LOGV_AVAILABLE
- */
-void daemon_logv(int prio, const char* t, va_list ap);
-
-/** Return a sensible syslog identification for daemon_log_ident
- * generated from argv[0]. This will return a pointer to the file name
- * of argv[0], i.e. strrchr(argv[0], '\')+1
- * @param argv0 argv[0] as passed to main()
- * @return The identification string
- */
-char *daemon_ident_from_argv0(char *argv0);
-
-/** This variable is defined to 1 iff daemon_set_verbosity() is available.
- * @since 0.14
- * @see daemon_set_verbosity()
- */
-#define DAEMON_SET_VERBOSITY_AVAILABLE 1
-
-/** Setter for the verbosity level of standard output.
- *
- * @param verbosity_prio Minimum priority level for messages to output
- * on standard output/error
- *
- * Allows to decide which messages to output on standard output/error
- * streams. All messages are logged to syslog and this setting does
- * not influence that.
- *
- * The default value is LOG_WARNING.
- *
- * @since 0.14
- * @see DAEMON_SET_VERBOSITY_AVAILABLE
- */
-void daemon_set_verbosity(int verbosity_prio);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/libdaemon/dnonblock.c b/libdaemon/dnonblock.c
deleted file mode 100644
index 003514e..0000000
--- a/libdaemon/dnonblock.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/***
-  This file is part of libdaemon.
-
-  Copyright 2003-2008 Lennart Poettering
-
-  Permission is hereby granted, free of charge, to any person obtaining a copy
-  of this software and associated documentation files (the "Software"), to deal
-  in the Software without restriction, including without limitation the rights
-  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-  copies of the Software, and to permit persons to whom the Software is
-  furnished to do so, subject to the following conditions:
-
-  The above copyright notice and this permission notice shall be included in
-  all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-  SOFTWARE.
-
-***/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <fcntl.h>
-
-#include "dnonblock.h"
-
-int daemon_nonblock(int fd, int b) {
-    int a, c;
-
-    if ((a = fcntl(fd, F_GETFL)) < 0)
-        return -1;
-
-    if (b)
-        c = a | O_NONBLOCK;
-    else
-        c = a & ~O_NONBLOCK;
-
-    if (c == a)
-        return 0;
-
-    return fcntl(fd, F_SETFL, c);
-}
diff --git a/libdaemon/dnonblock.h b/libdaemon/dnonblock.h
deleted file mode 100644
index e39da4e..0000000
--- a/libdaemon/dnonblock.h
+++ /dev/null
@@ -1,52 +0,0 @@
-#ifndef foodaemonnonblockhfoo
-#define foodaemonnonblockhfoo
-
-/***
-  This file is part of libdaemon.
-
-  Copyright 2003-2008 Lennart Poettering
-
-  Permission is hereby granted, free of charge, to any person obtaining a copy
-  of this software and associated documentation files (the "Software"), to deal
-  in the Software without restriction, including without limitation the rights
-  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-  copies of the Software, and to permit persons to whom the Software is
-  furnished to do so, subject to the following conditions:
-
-  The above copyright notice and this permission notice shall be included in
-  all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-  SOFTWARE.
-
-***/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** \file
- *
- * Contains a single function used to change a file descriptor to
- * non-blocking mode using fcntl().
- */
-
-/** Change the passed file descriptor to non-blocking or blocking
- * mode, depending on b.
- * @param fd The file descriptor to manipulation
- * @param b TRUE if non-blocking mode should be enabled, FALSE if it
- * should be disabled
- * @return Zero on success, nonzero on failure.
- */
-int daemon_nonblock(int fd, int b);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/libdaemon/dpid.c b/libdaemon/dpid.c
deleted file mode 100644
index 7f66d0b..0000000
--- a/libdaemon/dpid.c
+++ /dev/null
@@ -1,281 +0,0 @@
-/***
-  This file is part of libdaemon.
-
-  Copyright 2003-2008 Lennart Poettering
-
-  Permission is hereby granted, free of charge, to any person obtaining a copy
-  of this software and associated documentation files (the "Software"), to deal
-  in the Software without restriction, including without limitation the rights
-  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-  copies of the Software, and to permit persons to whom the Software is
-  furnished to do so, subject to the following conditions:
-
-  The above copyright notice and this permission notice shall be included in
-  all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-  SOFTWARE.
-
-***/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <limits.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <signal.h>
-#include <string.h>
-#include <unistd.h>
-#include <errno.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <time.h>
-#include <sys/select.h>
-#include <fcntl.h>
-#include <stddef.h>
-#include <sys/time.h>
-
-#include "dpid.h"
-#include "dlog.h"
-
-#ifndef ETIME
-#define ETIME ETIMEDOUT /* For FreeBSD */
-#endif
-
-#ifndef PATH_MAX
-#define PATH_MAX 512
-#endif
-
-#define VARRUN LOCALSTATEDIR "/run"
-
-const char *daemon_pid_file_ident = NULL;
-daemon_pid_file_proc_t daemon_pid_file_proc = daemon_pid_file_proc_default;
-
-const char *daemon_pid_file_proc_default(void) {
-#ifdef HAVE_ASPRINTF
-    static char *fn = NULL;
-    free(fn);
-    asprintf(&fn,  "%s/%s.pid", VARRUN, daemon_pid_file_ident ? daemon_pid_file_ident : "unknown");
-#else
-    static char fn[PATH_MAX];
-    snprintf(fn, sizeof(fn), "%s/%s.pid", VARRUN, daemon_pid_file_ident ? daemon_pid_file_ident : "unknown");
-#endif
-
-    return fn;
-}
-
-static int lock_file(int fd, int enable) {
-    struct flock f;
-
-    memset(&f, 0, sizeof(f));
-    f.l_type = enable ? F_WRLCK : F_UNLCK;
-    f.l_whence = SEEK_SET;
-    f.l_start = 0;
-    f.l_len = 0;
-
-    if (fcntl(fd, F_SETLKW, &f) < 0) {
-
-        if (enable && errno == EBADF) {
-            f.l_type = F_RDLCK;
-
-            if (fcntl(fd, F_SETLKW, &f) >= 0)
-                return 0;
-        }
-
-        daemon_log(LOG_WARNING, "fcntl(F_SETLKW) failed: %s", strerror(errno));
-        return -1;
-    }
-
-    return 0;
-}
-
-pid_t daemon_pid_file_is_running(void) {
-    const char *fn;
-    static char txt[256];
-    int fd = -1, locked = -1;
-    pid_t ret = (pid_t) -1, pid;
-    ssize_t l;
-    long lpid;
-    char *e = NULL;
-
-    if (!(fn = daemon_pid_file_proc())) {
-        errno = EINVAL;
-        goto finish;
-    }
-
-    if ((fd = open(fn, O_RDWR, 0644)) < 0) {
-        if ((fd = open(fn, O_RDONLY, 0644)) < 0) {
-            if (errno != ENOENT)
-                daemon_log(LOG_WARNING, "Failed to open PID file: %s", strerror(errno));
-
-            goto finish;
-        }
-    }
-
-    if ((locked = lock_file(fd, 1)) < 0)
-        goto finish;
-
-    if ((l = read(fd, txt, sizeof(txt)-1)) < 0) {
-        int saved_errno = errno;
-        daemon_log(LOG_WARNING, "read(): %s", strerror(errno));
-        unlink(fn);
-        errno = saved_errno;
-        goto finish;
-    }
-
-    txt[l] = 0;
-    txt[strcspn(txt, "\r\n")] = 0;
-
-    errno = 0;
-    lpid = strtol(txt, &e, 10);
-    pid = (pid_t) lpid;
-
-    if (errno != 0 || !e || *e || (long) pid != lpid) {
-        daemon_log(LOG_WARNING, "PID file corrupt, removing. (%s)", fn);
-        unlink(fn);
-        errno = EINVAL;
-        goto finish;
-    }
-
-    if (kill(pid, 0) != 0 && errno != EPERM) {
-        int saved_errno = errno;
-        daemon_log(LOG_WARNING, "Process %lu died: %s; trying to remove PID file. (%s)", (unsigned long) pid, strerror(errno), fn);
-        unlink(fn);
-        errno = saved_errno;
-        goto finish;
-    }
-
-    ret = pid;
-
-finish:
-
-    if (fd >= 0) {
-        int saved_errno = errno;
-        if (locked >= 0)
-            lock_file(fd, 0);
-        close(fd);
-        errno = saved_errno;
-    }
-
-    return ret;
-}
-
-int daemon_pid_file_kill(int s) {
-    pid_t pid;
-
-    if ((pid = daemon_pid_file_is_running()) == (pid_t) -1)
-        return -1;
-
-    if (kill(pid, s) < 0)
-        return -1;
-
-    return 0;
-}
-
-int daemon_pid_file_kill_wait(int s, int m) {
-    pid_t pid;
-    time_t t;
-
-    if ((pid = daemon_pid_file_is_running()) < 0)
-        return -1;
-
-    if (kill(pid, s) < 0)
-        return -1;
-
-    t = time(NULL) + m;
-
-    for (;;) {
-        int r;
-        struct timeval tv = { 0, 100000 };
-
-        if (time(NULL) > t) {
-            errno = ETIME;
-            return -1;
-        }
-
-        if ((r = kill(pid, 0)) < 0 && errno != ESRCH)
-            return -1;
-
-        if (r)
-            return 0;
-
-        if (select(0, NULL, NULL, NULL, &tv) < 0)
-            return -1;
-    }
-}
-
-int daemon_pid_file_create(void) {
-    const char *fn;
-    int fd = -1;
-    int ret = -1;
-    int locked = -1;
-    char t[64];
-    ssize_t l;
-    mode_t u;
-
-    u = umask(022);
-
-    if (!(fn = daemon_pid_file_proc())) {
-        errno = EINVAL;
-        goto finish;
-    }
-
-    if ((fd = open(fn, O_CREAT|O_RDWR|O_EXCL, 0644)) < 0) {
-        daemon_log(LOG_ERR, "open(%s): %s", fn, strerror(errno));
-        goto finish;
-    }
-
-    if ((locked = lock_file(fd, 1)) < 0) {
-        int saved_errno = errno;
-        unlink(fn);
-        errno = saved_errno;
-        goto finish;
-    }
-
-    snprintf(t, sizeof(t), "%lu\n", (unsigned long) getpid());
-
-    l = strlen(t);
-    if (write(fd, t, l) != l) {
-        int saved_errno = errno;
-        daemon_log(LOG_WARNING, "write(): %s", strerror(errno));
-        unlink(fn);
-        errno = saved_errno;
-        goto finish;
-    }
-
-    ret = 0;
-
-finish:
-
-    if (fd >= 0) {
-        int saved_errno = errno;
-
-        if (locked >= 0)
-            lock_file(fd, 0);
-
-        close(fd);
-        errno = saved_errno;
-    }
-
-    umask(u);
-
-    return ret;
-}
-
-int daemon_pid_file_remove(void) {
-    const char *fn;
-
-    if (!(fn = daemon_pid_file_proc())) {
-        errno = EINVAL;
-        return -1;
-    }
-
-    return unlink(fn);
-}
diff --git a/libdaemon/dpid.h b/libdaemon/dpid.h
deleted file mode 100644
index 66cdbb1..0000000
--- a/libdaemon/dpid.h
+++ /dev/null
@@ -1,106 +0,0 @@
-#ifndef foodaemonpidhfoo
-#define foodaemonpidhfoo
-
-/***
-  This file is part of libdaemon.
-
-  Copyright 2003-2008 Lennart Poettering
-
-  Permission is hereby granted, free of charge, to any person obtaining a copy
-  of this software and associated documentation files (the "Software"), to deal
-  in the Software without restriction, including without limitation the rights
-  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-  copies of the Software, and to permit persons to whom the Software is
-  furnished to do so, subject to the following conditions:
-
-  The above copyright notice and this permission notice shall be included in
-  all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-  SOFTWARE.
-
-***/
-
-#include <sys/types.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** \file
- *
- * Contains an API for manipulating PID files.
- */
-
-/** Prototype of a function for generating the name of a PID file.
- */
-typedef const char* (*daemon_pid_file_proc_t)(void);
-
-/** Identification string for the PID file name, only used when
- * daemon_pid_file_proc is set to daemon_pid_file_proc_default(). Use
- * daemon_ident_from_argv0() to generate an identification string from
- * argv[0]
- */
-extern const char *daemon_pid_file_ident;
-
-/** A function pointer which is used to generate the name of the PID
- * file to manipulate. Points to daemon_pid_file_proc_default() by
- * default.
- */
-extern daemon_pid_file_proc_t daemon_pid_file_proc;
-
-/** A function for creating a pid file name from
- * daemon_pid_file_ident
- * @return The PID file path
- */
-const char *daemon_pid_file_proc_default(void);
-
-/** Creates PID pid file for the current process
- * @return zero on success, nonzero on failure
- */
-int daemon_pid_file_create(void);
-
-/** Removes the PID file of the current process
- * @return zero on success, nonzero on failure
- */
-int daemon_pid_file_remove(void);
-
-/** Returns the PID file of a running daemon, if available
- * @return The PID or negative on failure
- */
-pid_t daemon_pid_file_is_running(void);
-
-/** Kills a running daemon, if available
- * @param s The signal to send
- * @return zero on success, nonzero on failure
- */
-int daemon_pid_file_kill(int s);
-
-/** This variable is defined to 1 iff daemon_pid_file_kill_wait() is supported.
- * @since 0.3
- * @see daemon_pid_file_kill_wait() */
-#define DAEMON_PID_FILE_KILL_WAIT_AVAILABLE 1
-
-/** Similar to daemon_pid_file_kill() but waits until the process
- * died.  This functions is new in libdaemon 0.3. The macro
- * DAEMON_PID_FILE_KILL_WAIT_AVAILABLE is defined iff libdaemon
- * supports this function.
- *
- * @param s The signal to send
- * @param m Seconds to wait at maximum
- * @return zero on success, nonzero on failure (timeout condition is considered a failure)
- * @since 0.3
- * @see DAEMON_PID_FILE_KILL_WAIT_AVAILABLE
- */
-int daemon_pid_file_kill_wait(int s, int m);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/libdaemon/dsignal.c b/libdaemon/dsignal.c
deleted file mode 100644
index e60fb38..0000000
--- a/libdaemon/dsignal.c
+++ /dev/null
@@ -1,160 +0,0 @@
-/***
-  This file is part of libdaemon.
-
-  Copyright 2003-2008 Lennart Poettering
-
-  Permission is hereby granted, free of charge, to any person obtaining a copy
-  of this software and associated documentation files (the "Software"), to deal
-  in the Software without restriction, including without limitation the rights
-  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-  copies of the Software, and to permit persons to whom the Software is
-  furnished to do so, subject to the following conditions:
-
-  The above copyright notice and this permission notice shall be included in
-  all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-  SOFTWARE.
-
-***/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <fcntl.h>
-#include <unistd.h>
-#include <errno.h>
-#include <string.h>
-#include <stdarg.h>
-#include <signal.h>
-
-#include "dsignal.h"
-#include "dlog.h"
-#include "dnonblock.h"
-
-static int _signal_pipe[2] = { -1, -1 };
-
-static void _sigfunc(int s) {
-    int saved_errno = errno;
-    write(_signal_pipe[1], &s, sizeof(s));
-    errno = saved_errno;
-}
-
-static int _init(void) {
-
-    if (_signal_pipe[0] < 0 || _signal_pipe[1] < 0) {
-        if (pipe(_signal_pipe) < 0) {
-            daemon_log(LOG_ERR, "pipe(): %s", strerror(errno));
-            return -1;
-        }
-
-        if (daemon_nonblock(_signal_pipe[0], 1) < 0 || daemon_nonblock(_signal_pipe[1], 1) < 0) {
-            daemon_signal_done();
-            return -1;
-        }
-    }
-
-    return 0;
-}
-
-int daemon_signal_install(int s){
-    sigset_t ss;
-    struct sigaction sa;
-
-    if (_init() < 0)
-        return -1;
-
-    if (sigemptyset(&ss) < 0) {
-        daemon_log(LOG_ERR, "sigemptyset(): %s", strerror(errno));
-        return -1;
-    }
-
-    if (sigaddset(&ss, s) < 0) {
-        daemon_log(LOG_ERR, "sigaddset(): %s", strerror(errno));
-        return -1;
-    }
-
-    if (sigprocmask(SIG_UNBLOCK, &ss, NULL) < 0) {
-        daemon_log(LOG_ERR, "sigprocmask(): %s", strerror(errno));
-        return -1;
-    }
-
-    memset(&sa, 0, sizeof(sa));
-    sa.sa_handler = _sigfunc;
-    sigemptyset(&sa.sa_mask);
-    sa.sa_flags = SA_RESTART;
-
-    if (sigaction(s, &sa, NULL) < 0) {
-        daemon_log(LOG_ERR, "sigaction(%s, ...) failed: %s", strsignal(s), strerror(errno));
-        return -1;
-    }
-
-    return 0;
-}
-
-int daemon_signal_init(int s, ...) {
-    int sig, r = 0;
-    va_list ap;
-
-    if (_init() < 0)
-        return -1;
-
-    va_start(ap, s);
-
-    sig = s;
-    while (sig > 0) {
-        if ((r = daemon_signal_install(sig)) < 0)
-            break;
-
-        sig = va_arg(ap, int);
-    }
-
-    va_end(ap);
-
-    return r;
-}
-
-void daemon_signal_done(void) {
-    int saved_errno = errno;
-
-    if (_signal_pipe[0] != -1)
-        close(_signal_pipe[0]);
-
-    if (_signal_pipe[1] != -1)
-        close(_signal_pipe[1]);
-
-    _signal_pipe[0] = _signal_pipe[1] = -1;
-
-    errno = saved_errno;
-}
-
-int daemon_signal_next(void) {
-    int s;
-    ssize_t r;
-
-    if ((r = read(_signal_pipe[0], &s, sizeof(s))) == sizeof(s))
-        return s;
-
-    if (r < 0) {
-
-        if (errno == EAGAIN)
-            return 0;
-        else {
-            daemon_log(LOG_ERR, "read(signal_pipe[0], ...): %s", strerror(errno));
-            return -1;
-        }
-    }
-
-    daemon_log(LOG_ERR, "Short read() on signal pipe.");
-    return -1;
-}
-
-int daemon_signal_fd(void) {
-    return _signal_pipe[0];
-}
diff --git a/libdaemon/dsignal.h b/libdaemon/dsignal.h
deleted file mode 100644
index 1edfdcc..0000000
--- a/libdaemon/dsignal.h
+++ /dev/null
@@ -1,80 +0,0 @@
-#ifndef foodaemonsignalhfoo
-#define foodaemonsignalhfoo
-
-/***
-  This file is part of libdaemon.
-
-  Copyright 2003-2008 Lennart Poettering
-
-  Permission is hereby granted, free of charge, to any person obtaining a copy
-  of this software and associated documentation files (the "Software"), to deal
-  in the Software without restriction, including without limitation the rights
-  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-  copies of the Software, and to permit persons to whom the Software is
-  furnished to do so, subject to the following conditions:
-
-  The above copyright notice and this permission notice shall be included in
-  all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-  SOFTWARE.
-
-***/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** \file
- *
- * Contains the API for serializing signals to a pipe for
- * usage with select() or poll().
- *
- * You should register all signals you
- * wish to handle with select() in your main loop with
- * daemon_signal_init() or daemon_signal_install(). After that you
- * should sleep on the file descriptor returned by daemon_signal_fd()
- * and get the next signal recieved with daemon_signal_next(). You
- * should call daemon_signal_done() before exiting.
- */
-
-/** Installs signal handlers for the specified signals
- * @param s, ... The signals to install handlers for. The list should be terminated by 0
- * @return zero on success, nonzero on failure
- */
-int daemon_signal_init(int s, ...);
-
-/** Install a  signal handler for the specified signal
- * @param s The signalto install handler for
- * @return zero onsuccess,nonzero on failure
- */
-int daemon_signal_install(int s);
-
-/** Free resources of signal handling, should be called before daemon exit
- */
-void daemon_signal_done(void);
-
-/** Return the next signal recieved. This function will not
- * block. Instead it returns 0 if no signal is queued.
- * @return The next queued signal if one is queued, zero if none is
- * queued, negative on failure.
- */
-int daemon_signal_next(void);
-
-/** Return the file descriptor the daemon should select() on for
- * reading. Whenever the descriptor is ready you should call
- * daemon_signal_next() to get the next signal queued.
- * @return The file descriptor or negative on failure
- */
-int daemon_signal_fd(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/m4/.gitignore b/m4/.gitignore
deleted file mode 100644
index 464ba5c..0000000
--- a/m4/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-libtool.m4
-lt~obsolete.m4
-ltoptions.m4
-ltsugar.m4
-ltversion.m4
diff --git a/m4/attributes.m4 b/m4/attributes.m4
deleted file mode 100644
index e86456a..0000000
--- a/m4/attributes.m4
+++ /dev/null
@@ -1,311 +0,0 @@
-dnl Macros to check the presence of generic (non-typed) symbols.
-dnl Copyright (c) 2006-2007 Diego Pettenò <flameeyes@gmail.com>
-dnl Copyright (c) 2006-2007 xine project
-dnl
-dnl This program is free software; you can redistribute it and/or modify
-dnl it under the terms of the GNU General Public License as published by
-dnl the Free Software Foundation; either version 2, or (at your option)
-dnl any later version.
-dnl
-dnl This program is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-dnl GNU General Public License for more details.
-dnl
-dnl You should have received a copy of the GNU General Public License
-dnl along with this program; if not, write to the Free Software
-dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-dnl 02110-1301, USA.
-dnl
-dnl As a special exception, the copyright owners of the
-dnl macro gives unlimited permission to copy, distribute and modify the
-dnl configure scripts that are the output of Autoconf when processing the
-dnl Macro. You need not follow the terms of the GNU General Public
-dnl License when using or distributing such scripts, even though portions
-dnl of the text of the Macro appear in them. The GNU General Public
-dnl License (GPL) does govern all other use of the material that
-dnl constitutes the Autoconf Macro.
-dnl 
-dnl This special exception to the GPL applies to versions of the
-dnl Autoconf Macro released by this project. When you make and
-dnl distribute a modified version of the Autoconf Macro, you may extend
-dnl this special exception to the GPL to apply to your modified version as
-dnl well.
-
-dnl Check if the flag is supported by compiler
-dnl CC_CHECK_CFLAGS_SILENT([FLAG], [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND])
-
-AC_DEFUN([CC_CHECK_CFLAGS_SILENT], [
-  AC_CACHE_VAL(AS_TR_SH([cc_cv_cflags_$1]),
-    [ac_save_CFLAGS="$CFLAGS"
-     CFLAGS="$CFLAGS $1"
-     AC_COMPILE_IFELSE([int a;],
-       [eval "AS_TR_SH([cc_cv_cflags_$1])='yes'"],
-       [eval "AS_TR_SH([cc_cv_cflags_$1])='no'"])
-     CFLAGS="$ac_save_CFLAGS"
-    ])
-
-  AS_IF([eval test x$]AS_TR_SH([cc_cv_cflags_$1])[ = xyes],
-    [$2], [$3])
-])
-
-dnl Check if the flag is supported by compiler (cacheable)
-dnl CC_CHECK_CFLAGS([FLAG], [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND])
-
-AC_DEFUN([CC_CHECK_CFLAGS], [
-  AC_CACHE_CHECK([if $CC supports $1 flag],
-    AS_TR_SH([cc_cv_cflags_$1]),
-    CC_CHECK_CFLAGS_SILENT([$1]) dnl Don't execute actions here!
-  )
-
-  AS_IF([eval test x$]AS_TR_SH([cc_cv_cflags_$1])[ = xyes],
-    [$2], [$3])
-])
-
-dnl CC_CHECK_CFLAG_APPEND(FLAG, [action-if-found], [action-if-not-found])
-dnl Check for CFLAG and appends them to CFLAGS if supported
-AC_DEFUN([CC_CHECK_CFLAG_APPEND], [
-  AC_CACHE_CHECK([if $CC supports $1 flag],
-    AS_TR_SH([cc_cv_cflags_$1]),
-    CC_CHECK_CFLAGS_SILENT([$1]) dnl Don't execute actions here!
-  )
-
-  AS_IF([eval test x$]AS_TR_SH([cc_cv_cflags_$1])[ = xyes],
-    [CFLAGS="$CFLAGS $1"; $2], [$3])
-])
-
-dnl CC_CHECK_CFLAGS_APPEND([FLAG1 FLAG2], [action-if-found], [action-if-not])
-AC_DEFUN([CC_CHECK_CFLAGS_APPEND], [
-  for flag in $1; do
-    CC_CHECK_CFLAG_APPEND($flag, [$2], [$3])
-  done
-])
-
-dnl Check if the flag is supported by linker (cacheable)
-dnl CC_CHECK_LDFLAGS([FLAG], [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND])
-
-AC_DEFUN([CC_CHECK_LDFLAGS], [
-  AC_CACHE_CHECK([if $CC supports $1 flag],
-    AS_TR_SH([cc_cv_ldflags_$1]),
-    [ac_save_LDFLAGS="$LDFLAGS"
-     LDFLAGS="$LDFLAGS $1"
-     AC_LINK_IFELSE([int main() { return 1; }],
-       [eval "AS_TR_SH([cc_cv_ldflags_$1])='yes'"],
-       [eval "AS_TR_SH([cc_cv_ldflags_$1])="])
-     LDFLAGS="$ac_save_LDFLAGS"
-    ])
-
-  AS_IF([eval test x$]AS_TR_SH([cc_cv_ldflags_$1])[ = xyes],
-    [$2], [$3])
-])
-
-dnl define the LDFLAGS_NOUNDEFINED variable with the correct value for
-dnl the current linker to avoid undefined references in a shared object.
-AC_DEFUN([CC_NOUNDEFINED], [
-  dnl We check $host for which systems to enable this for.
-  AC_REQUIRE([AC_CANONICAL_HOST])
-
-  case $host in
-     dnl FreeBSD (et al.) does not complete linking for shared objects when pthreads
-     dnl are requested, as different implementations are present; to avoid problems
-     dnl use -Wl,-z,defs only for those platform not behaving this way.
-     *-freebsd*) ;;
-     *)
-        dnl First of all check for the --no-undefined variant of GNU ld. This allows
-        dnl for a much more readable commandline, so that people can understand what
-        dnl it does without going to look for what the heck -z defs does.
-   	for possible_flags in "-Wl,--no-undefined" "-Wl,-z,defs"; do
-          CC_CHECK_LDFLAGS([$possible_flags], [LDFLAGS_NOUNDEFINED="$possible_flags"])
-	  break
-        done
-	;;
-  esac
-
-  AC_SUBST([LDFLAGS_NOUNDEFINED])
-])
-
-dnl Check for a -Werror flag or equivalent. -Werror is the GCC
-dnl and ICC flag that tells the compiler to treat all the warnings
-dnl as fatal. We usually need this option to make sure that some
-dnl constructs (like attributes) are not simply ignored.
-dnl
-dnl Other compilers don't support -Werror per se, but they support
-dnl an equivalent flag:
-dnl  - Sun Studio compiler supports -errwarn=%all
-AC_DEFUN([CC_CHECK_WERROR], [
-  AC_CACHE_CHECK(
-    [for $CC way to treat warnings as errors],
-    [cc_cv_werror],
-    [CC_CHECK_CFLAGS_SILENT([-Werror], [cc_cv_werror=-Werror],
-      [CC_CHECK_CFLAGS_SILENT([-errwarn=%all], [cc_cv_werror=-errwarn=%all])])
-    ])
-])
-
-AC_DEFUN([CC_CHECK_ATTRIBUTE], [
-  AC_REQUIRE([CC_CHECK_WERROR])
-  AC_CACHE_CHECK([if $CC supports __attribute__(( ifelse([$2], , [$1], [$2]) ))],
-    AS_TR_SH([cc_cv_attribute_$1]),
-    [ac_save_CFLAGS="$CFLAGS"
-     CFLAGS="$CFLAGS $cc_cv_werror"
-     AC_COMPILE_IFELSE([$3],
-       [eval "AS_TR_SH([cc_cv_attribute_$1])='yes'"],
-       [eval "AS_TR_SH([cc_cv_attribute_$1])='no'"])
-     CFLAGS="$ac_save_CFLAGS"
-    ])
-
-  AS_IF([eval test x$]AS_TR_SH([cc_cv_attribute_$1])[ = xyes],
-    [AC_DEFINE(
-       AS_TR_CPP([SUPPORT_ATTRIBUTE_$1]), 1,
-         [Define this if the compiler supports __attribute__(( ifelse([$2], , [$1], [$2]) ))]
-         )
-     $4],
-    [$5])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_CONSTRUCTOR], [
-  CC_CHECK_ATTRIBUTE(
-    [constructor],,
-    [void __attribute__((constructor)) ctor() { int a; }],
-    [$1], [$2])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_FORMAT], [
-  CC_CHECK_ATTRIBUTE(
-    [format], [format(printf, n, n)],
-    [void __attribute__((format(printf, 1, 2))) printflike(const char *fmt, ...) { fmt = (void *)0; }],
-    [$1], [$2])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_FORMAT_ARG], [
-  CC_CHECK_ATTRIBUTE(
-    [format_arg], [format_arg(printf)],
-    [char *__attribute__((format_arg(1))) gettextlike(const char *fmt) { fmt = (void *)0; }],
-    [$1], [$2])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_VISIBILITY], [
-  CC_CHECK_ATTRIBUTE(
-    [visibility_$1], [visibility("$1")],
-    [void __attribute__((visibility("$1"))) $1_function() { }],
-    [$2], [$3])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_NONNULL], [
-  CC_CHECK_ATTRIBUTE(
-    [nonnull], [nonnull()],
-    [void __attribute__((nonnull())) some_function(void *foo, void *bar) { foo = (void*)0; bar = (void*)0; }],
-    [$1], [$2])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_UNUSED], [
-  CC_CHECK_ATTRIBUTE(
-    [unused], ,
-    [void some_function(void *foo, __attribute__((unused)) void *bar);],
-    [$1], [$2])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_SENTINEL], [
-  CC_CHECK_ATTRIBUTE(
-    [sentinel], ,
-    [void some_function(void *foo, ...) __attribute__((sentinel));],
-    [$1], [$2])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_DEPRECATED], [
-  CC_CHECK_ATTRIBUTE(
-    [deprecated], ,
-    [void some_function(void *foo, ...) __attribute__((deprecated));],
-    [$1], [$2])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_ALIAS], [
-  CC_CHECK_ATTRIBUTE(
-    [alias], [weak, alias],
-    [void other_function(void *foo) { }
-     void some_function(void *foo) __attribute__((weak, alias("other_function")));],
-    [$1], [$2])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_MALLOC], [
-  CC_CHECK_ATTRIBUTE(
-    [malloc], ,
-    [void * __attribute__((malloc)) my_alloc(int n);],
-    [$1], [$2])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_PACKED], [
-  CC_CHECK_ATTRIBUTE(
-    [packed], ,
-    [struct astructure { char a; int b; long c; void *d; } __attribute__((packed));],
-    [$1], [$2])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_CONST], [
-  CC_CHECK_ATTRIBUTE(
-    [const], ,
-    [int __attribute__((const)) twopow(int n) { return 1 << n; } ],
-    [$1], [$2])
-])
-
-AC_DEFUN([CC_FLAG_VISIBILITY], [
-  AC_REQUIRE([CC_CHECK_WERROR])
-  AC_CACHE_CHECK([if $CC supports -fvisibility=hidden],
-    [cc_cv_flag_visibility],
-    [cc_flag_visibility_save_CFLAGS="$CFLAGS"
-     CFLAGS="$CFLAGS $cc_cv_werror"
-     CC_CHECK_CFLAGS_SILENT([-fvisibility=hidden],
-	cc_cv_flag_visibility='yes',
-	cc_cv_flag_visibility='no')
-     CFLAGS="$cc_flag_visibility_save_CFLAGS"])
-  
-  AS_IF([test "x$cc_cv_flag_visibility" = "xyes"],
-    [AC_DEFINE([SUPPORT_FLAG_VISIBILITY], 1,
-       [Define this if the compiler supports the -fvisibility flag])
-     $1],
-    [$2])
-])
-
-AC_DEFUN([CC_FUNC_EXPECT], [
-  AC_REQUIRE([CC_CHECK_WERROR])
-  AC_CACHE_CHECK([if compiler has __builtin_expect function],
-    [cc_cv_func_expect],
-    [ac_save_CFLAGS="$CFLAGS"
-     CFLAGS="$CFLAGS $cc_cv_werror"
-     AC_COMPILE_IFELSE(
-       [int some_function() {
-        int a = 3;
-        return (int)__builtin_expect(a, 3);
-	}],
-       [cc_cv_func_expect=yes],
-       [cc_cv_func_expect=no])
-     CFLAGS="$ac_save_CFLAGS"
-    ])
-
-  AS_IF([test "x$cc_cv_func_expect" = "xyes"],
-    [AC_DEFINE([SUPPORT__BUILTIN_EXPECT], 1,
-     [Define this if the compiler supports __builtin_expect() function])
-     $1],
-    [$2])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_ALIGNED], [
-  AC_REQUIRE([CC_CHECK_WERROR])
-  AC_CACHE_CHECK([highest __attribute__ ((aligned ())) supported],
-    [cc_cv_attribute_aligned],
-    [ac_save_CFLAGS="$CFLAGS"
-     CFLAGS="$CFLAGS $cc_cv_werror"
-     for cc_attribute_align_try in 64 32 16 8 4 2; do
-        AC_COMPILE_IFELSE([
-          int main() {
-            static char c __attribute__ ((aligned($cc_attribute_align_try))) = 0;
-            return c;
-          }], [cc_cv_attribute_aligned=$cc_attribute_align_try; break])
-     done
-     CFLAGS="$ac_save_CFLAGS"
-  ])
-
-  if test "x$cc_cv_attribute_aligned" != "x"; then
-     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX], [$cc_cv_attribute_aligned],
-       [Define the highest alignment supported])
-  fi
-])
diff --git a/m4/zp_lynx_doc.m4 b/m4/zp_lynx_doc.m4
deleted file mode 100644
index 955a6ca..0000000
--- a/m4/zp_lynx_doc.m4
+++ /dev/null
@@ -1,24 +0,0 @@
-dnl Macro for enabling LYNX-based documentation generation
-
-AC_DEFUN([ZP_LYNX_DOC], [
-  AC_ARG_ENABLE(lynx,
-     AS_HELP_STRING([--disable-lynx],
-        [Turn off lynx usage for documentation generation]),,
-     [enable_lynx=yes])
-
-  case "${enable_lynx}" in
-    yes)
-      AC_CHECK_PROG(have_lynx, lynx, yes, no)
-
-      if test x$have_lynx = xno ; then
-         AC_MSG_WARN([*** lynx not found, plain text README will not be built ***])
-      fi
-      ;;
-    no)
-      have_lynx=no ;;
-    *)
-      AC_MSG_ERROR(bad value ${enableval} for --disable-lynx) ;;
-  esac
-
-  AM_CONDITIONAL([USE_LYNX], [test "x$have_lynx" = xyes])
-])
diff --git a/pkgconfig/libdaemon-uninstalled.pc.in b/pkgconfig/libdaemon-uninstalled.pc.in
deleted file mode 100644
index 3ceb71b..0000000
--- a/pkgconfig/libdaemon-uninstalled.pc.in
+++ /dev/null
@@ -1,8 +0,0 @@
-libdir=@abs_top_builddir@/libdaemon/.libs
-includedir=@abs_top_srcdir@
-
-Name: libdaemon
-Description: a lightweight C library that eases the writing of UNIX daemons
-Version: @PACKAGE_VERSION@
-Libs: -L${libdir} -R${libdir} -ldaemon
-Cflags: -D_REENTRANT -I${includedir}
diff --git a/pkgconfig/libdaemon.pc.in b/pkgconfig/libdaemon.pc.in
deleted file mode 100644
index 835dcf1..0000000
--- a/pkgconfig/libdaemon.pc.in
+++ /dev/null
@@ -1,10 +0,0 @@
-prefix=@prefix@
-exec_prefix=${prefix}
-libdir=@libdir@
-includedir=${prefix}/include
-
-Name: libdaemon
-Description: a lightweight C library that eases the writing of UNIX daemons
-Version: @PACKAGE_VERSION@
-Libs: -L${libdir} -ldaemon
-Cflags: -D_REENTRANT -I${includedir}