diff --git a/redhat/Makefile.am b/redhat/Makefile.am
index 4e99855..fadfe64 100644
--- a/redhat/Makefile.am
+++ b/redhat/Makefile.am
@@ -3,4 +3,6 @@
 	isisd.service ospf6d.init ospf6d.service ospfd.init ospfd.service \
 	quagga.logrotate quagga.pam quagga.spec \
 	quagga.sysconfig ripd.init ripd.service ripngd.init ripngd.service \
-	watchquagga.init pimd.init pimd.service zebra.init zebra.service
+	watchquagga.init pimd.init pimd.service zebra.init zebra.service \
+	README.rpm_build.md
+
diff --git a/redhat/README.rpm_build.md b/redhat/README.rpm_build.md
new file mode 100644
index 0000000..3e8fa05
--- /dev/null
+++ b/redhat/README.rpm_build.md
@@ -0,0 +1,128 @@
+Building your own Quagga RPM
+============================
+(Tested on CentOS 6, CentOS 7 and Fedora 22.)
+
+1. Install the following packages to build the RPMs:
+
+		yum install git autoconf automake libtool make gawk readline-devel \
+		texinfo dejagnu net-snmp-devel groff rpm-build net-snmp-devel \
+		libcap-devel texi2html
+
+	(use `dnf install` on new Fedora instead of `yum install	`)
+	
+2. Checkout Quagga under a **unpriviledged** user account
+
+		git clone git://git.savannah.nongnu.org/quagga.git quagga
+
+3. Run Bootstrap and make distribution tar.gz
+
+		cd quagga
+		./bootstrap.sh
+		./configure --with-pkg-extra-version=-MyRPMVersion
+		make dist
+			
+	Note: configure parameters are not important for the RPM building - except the
+	`with-pkg-extra-version` if you want to give the RPM a specific name to
+	mark your own unoffical build
+
+4. Create RPM directory structure and populate with sources
+
+		mkdir rpmbuild
+		mkdir rpmbuild/SOURCES
+		mkdir rpmbuild/SPECS
+		cp redhat/*.spec rpmbuild/SPECS/
+		cp quagga*.tar.gz rpmbuild/SOURCES/
+
+5. Edit rpm/SPECS/quagga.spec with configuration as needed
+	Look at the beginning of the file and adjust the following parameters to enable
+	or disable features as required:
+	
+		################# Quagga configure options ####################
+		# with-feature options
+        %{!?with_snmp:         %global  with_snmp       1 }
+        %{!?with_vtysh:        %global  with_vtysh      1 }
+        %{!?with_ospf_te:      %global  with_ospf_te    1 }
+		%{!?with_opaque_lsa:   %global  with_opaque_lsa 1 }
+		%{!?with_tcp_zebra:	   %global  with_tcp_zebra  0 }
+		%{!?with_vtysh:        %global  with_vtysh      1 }
+		%{!?with_pam:          %global  with_pam        1 }
+        %{!?with_ospfclient:   %global  with_ospfclient 1 }
+		%{!?with_ospfapi:      %global  with_ospfapi    1 }
+		%{!?with_irdp:         %global  with_irdp       1 }
+		%{!?with_rtadv:        %global  with_rtadv      1 }
+		%{!?with_isisd:        %global  with_isisd      1 }
+		%{!?with_pimd:         %global  with_pimd       1 }
+		%{!?with_shared:       %global  with_shared     1 }
+		%{!?with_multipath:    %global  with_multipath  64 }
+		%{!?quagga_user:       %global  quagga_user     quagga }
+		%{!?vty_group:         %global  vty_group       quaggavt }
+		%{!?with_fpm:          %global  with_fpm        0 }
+		%{!?with_watchquagga:  %global  with_watchquagga 1 }
+
+6. Build the RPM
+
+		rpmbuild --define "_topdir `pwd`/rpmbuild" -ba rpmbuild/SPECS/quagga.spec
+
+DONE.
+
+If all works correctly, then you should end up with the RPMs under `rpmbuild/RPMS`
+and the Source RPM under `rpmbuild/SRPMS`
+
+
+Enabling daemons after installation of the package:
+---------------------------------------------------
+
+### init.d based systems (ie CentOS 6):
+
+1. Enable the daemons as needed to run after boot (Zebra is mandatory)
+	
+		chkconfig zebra on
+		chkconfig ospfd on
+		chkconfig ospf6d on
+		chkconfig bgpd on
+		... etc
+
+2. If you want to run `watchquagga`, then configure `/etc/sysconfig/quagga` 
+   and uncomment the line with the daemons for `watchquagga` to monitor,
+   then enable watchquagga
+
+		chkconfig watchquagga on
+
+3. Check your firewall / IPtables to make sure the routing protocols are
+allowed.
+		
+4. Start the daemons (or reboot)
+
+		service zebra start
+		service bgpd start
+		service ospfd start
+		... etc
+			
+Configuration is stored in `/etc/quagga/*.conf` files.
+
+
+### systemd based systems (ie CentOS 7, Fedora 22)
+
+1. Enable the daemons as needed to run after boot (Zebra is mandatory)
+	
+		systemctl enable zebra
+		systemctl enable ospfd
+		systemctl enable ospf6d
+		systemctl enable bgpd
+		... etc
+
+	Note: There is no watchquagga on systemd based systems. Systemd contains
+	the functionality of monitoring and restarting daemons.
+
+2. Check your firewall / IPtables to make sure the routing protocols are
+allowed.
+		
+3. Start the daemons (or reboot)
+
+		systemctl start zebra
+		systemctl start bgpd
+		systemctl start ospfd
+		... etc
+			
+Configuration is stored in `/etc/quagga/*.conf` files.
+
diff --git a/redhat/quagga.spec.in b/redhat/quagga.spec.in
index b156475..a1263d1 100644
--- a/redhat/quagga.spec.in
+++ b/redhat/quagga.spec.in
@@ -2,6 +2,7 @@
 #
 # Some can be overriden on rpmbuild commandline with:
 # rpmbuild --define 'variable value'
+#   (use any value, ie 1 for flag "with_XXXX" definitions)
 #
 # E.g. rpmbuild --define 'release_rev 02' may be useful if building
 # rpms again and again on the same day, so the newer rpms can be installed.
@@ -9,107 +10,141 @@
 
 ####################### Quagga configure options #########################
 # with-feature options
-%{!?with_snmp:		%define with_snmp	1 }
-%{!?with_vtysh:		%define	with_vtysh	1 }
-%{!?with_ospf_te:	%define	with_ospf_te	1 }
-%{!?with_nssa:		%define	with_nssa	1 }
-%{!?with_opaque_lsa:	%define	with_opaque_lsa 1 }
-%{!?with_tcp_zebra:	%define	with_tcp_zebra	0 }
-%{!?with_vtysh:		%define	with_vtysh	1 }
-%{!?with_pam:		%define	with_pam	1 }
-%{!?with_ospfclient:	%define	with_ospfclient 1 }
-%{!?with_ospfapi:	%define	with_ospfapi	1 }
-%{!?with_irdp:		%define	with_irdp	1 }
-%{!?with_rtadv:		%define	with_rtadv	1 }
-%{!?with_isisd:		%define	with_isisd	1 }
-%{!?with_pimd:		%define	with_pimd	1 }
-%{!?with_shared:	%define	with_shared	1 }
-%{!?with_multipath:	%define	with_multipath	64 }
-%{!?quagga_user:	%define	quagga_user	quagga }
-%{!?vty_group:		%define	vty_group	quaggavty }
+%{!?with_snmp:			%global with_snmp		1 }
+%{!?with_vtysh:			%global	with_vtysh		1 }
+%{!?with_tcp_zebra:		%global	with_tcp_zebra		0 }
+%{!?with_vtysh:			%global	with_vtysh		1 }
+%{!?with_pam:			%global	with_pam		1 }
+%{!?with_ospfclient:		%global	with_ospfclient 	1 }
+%{!?with_ospfapi:		%global	with_ospfapi		1 }
+%{!?with_irdp:			%global	with_irdp		1 }
+%{!?with_rtadv:			%global	with_rtadv		1 }
+%{!?with_isisd:			%global	with_isisd		1 }
+%{!?with_pimd:			%global	with_pimd		1 }
+%{!?with_shared:		%global	with_shared		1 }
+%{!?with_multipath:		%global	with_multipath		64 }
+%{!?quagga_user:		%global	quagga_user		quagga }
+%{!?vty_group:			%global	vty_group		quaggavt }
+%{!?with_fpm:			%global	with_fpm 		0 }
+%{!?with_watchquagga:		%global	with_watchquagga 	1 }
 
 # path defines
 %define		_sysconfdir	/etc/quagga
-%define		zeb_src		%{_builddir}/%{name}-%{version}
+%define		zeb_src		%{_builddir}/%{name}-%{quaggaversion}
 %define		zeb_rh_src	%{zeb_src}/redhat
 %define		zeb_docs	%{zeb_src}/doc
 
 # defines for configure
-%define		_libexecdir	%{_exec_prefix}/libexec/quagga
-%define		_libdir		%{_exec_prefix}/%{_lib}/quagga
-%define		_includedir	%{_prefix}/include
 %define		_localstatedir	/var/run/quagga
 ############################################################################
 
-####################### distro specific tweaks #############################
-# default distro. Override with rpmbuild -D "dist XXX" 
-%{expand: %%define default_dist %(rpm -q --qf 'fc%%{VERSION}' fedora-release | grep -v 'not installed')}
-%{!?dist:		%define		dist	%{default_dist}}
+#### Version String tweak
+# Remove invalid characters form version string and replace with _
+%{expand: %%define rpmversion %(echo '@VERSION@' | tr [:blank:]- _ )}
+%define         quaggaversion   @VERSION@
 
-# as distros change packages we depend on, our Requires have to change, sadly.
-%define quagga_buildreqs texi2html texinfo autoconf pam-devel
-%define quagga_buildreqs %{expand:%{quagga_buildreqs}} patch libcap-devel
+#### Check version of texi2html 
+# Old versions don't support "--number-footnotes" option.
+%{expand: %%global texi2htmlversion %(rpm -q --qf '%%{VERSION}' texi2html | cut -d. -f1 )}
 
-# FC4 and 5 split texi2html out of tetex package.
-%define quagga_buildreqs %{expand:%{quagga_buildreqs}} texi2html
+#### Check for systemd or init.d (upstart)
+# Check for init.d (upstart) as used in CentOS 6 or systemd (ie CentOS 7)
+%{expand: %%global initsystem %(if [[ `/sbin/init --version 2> /dev/null` =~ upstart ]]; then echo upstart; elif [[ `systemctl` =~ -\.mount ]]; then echo systemd; fi)}
+#
+# If init system is systemd, then always disable watchquagga
+#
+%if "%{initsystem}" == "systemd"
+	# Note: For systems with systemd, watchquagga will NOT be built. Systemd
+	# takes over the role of restarting crashed processes. Value will
+	# be overwritten with 0 below for systemd independent on the setting here
+	%global	with_watchquagga 0
+%endif
 
-# man page probably needs groff for groff_ms macros
-%define  quagga_buildreqs %{expand:%{quagga_buildreqs}} groff
-
-############################################################################
+# if FPM is enabled, then enable tcp_zebra as well
+#
+%if %{with_fpm}
+	%global	with_tcp_zebra	1
+%endif
 
 # misc internal defines
 %{!?quagga_uid:		%define         quagga_uid      92 }
 %{!?quagga_gid:		%define         quagga_gid      92 }
+%{!?vty_gid:		%define		vty_gid		85 }
+
 %define		daemon_list	zebra ripd ospfd bgpd
 
 %define		daemonv6_list	ripngd ospf6d
 
 %if %{with_isisd}
-%define		daemon_other	isisd
+%define		daemon_isisd	isisd
 %else
-%define		daemon_other	""
+%define		daemon_isisd	""
 %endif
 
-%define		all_daemons	%{daemon_list} %{daemonv6_list} %{daemon_other} watchquagga
+%if %{with_pimd}
+%define         daemon_pimd	pimd
+%else
+%define		daemon_pimd	""
+%endif
+
+%if %{with_watchquagga}
+%define         daemon_watchquagga	watchquagga
+%else
+%define		daemon_watchquagga	""
+%endif
+
+%define		all_daemons	%{daemon_list} %{daemonv6_list} %{daemon_isisd} %{daemon_pimd} %{daemon_watchquagga}
 
 # allow build dir to be kept
-%{!?keep_build:		%define		keep_build	0 }
+%{!?keep_build:		%global		keep_build	0 }
 
 #release sub-revision (the two digits after the CONFDATE)
 %{!?release_rev:	%define		release_rev	01 }
 
 Summary: Routing daemon
-Name:		quagga
-Version:	@VERSION@
-Release:	@CONFDATE@%{release_rev}
-License:	GPL
-Group: System Environment/Daemons
-Source0:	http://www.quagga.net/snapshots/cvs/%{name}-%{version}.tar.gz
-URL:		http://www.quagga.net
+Name:			quagga
+Version:		%{rpmversion}
+Release:		@CONFDATE@%{release_rev}%{?dist}
+License:		GPLv2+
+Group:			System Environment/Daemons
+Source0:		http://download.savannah.gnu.org/releases/quagga/%{name}-%{quaggaversion}.tar.gz
+URL:			http://www.quagga.net
+Requires:		ncurses
+Requires(pre):	/sbin/install-info
+Requires(preun): /sbin/install-info
+Requires(post):	/sbin/install-info
+BuildRequires:	texi2html texinfo autoconf patch libcap-devel groff
 %if %{with_snmp}
 BuildRequires:	net-snmp-devel
-Requires(pre):		net-snmp
+Requires:		net-snmp
 %endif
 %if %{with_vtysh}
 BuildRequires:	readline readline-devel ncurses ncurses-devel
-Requires(pre):		ncurses
+Requires:		ncurses
 %endif
-BuildRequires:	%{quagga_buildreqs}
+%if %{with_pam}
+BuildRequires:	pam-devel
+Requires:		pam
+%endif
+%if "%{initsystem}" == "systemd"
+BuildRequires:		systemd
+Requires(post):		systemd
+Requires(preun):	systemd
+Requires(postun):	systemd
+%else
 # Initscripts > 5.60 is required for IPv6 support
 Requires(pre):		initscripts >= 5.60
-Requires(pre):		ncurses pam
-Requires(pre):		/sbin/install-info
-Provides:	routingdaemon
-BuildRoot:	%{_tmppath}/%{name}-%{version}-root
-Obsoletes:	bird gated mrt zebra
+%endif
+Provides:			routingdaemon = %{version}-%{release}
+BuildRoot:			%{_tmppath}/%{name}-%{version}-root
+Obsoletes:			bird gated mrt zebra quagga-sysvinit
 
 %description
 Quagga is a free software that manages TCP/IP based routing
 protocol. It takes multi-server and multi-thread approach to resolve
 the current complexity of the Internet.
 
-Quagga supports BGP4, BGP4+, OSPFv2, OSPFv3, RIPv1, RIPv2, and RIPng.
+Quagga supports BGP4, OSPFv2, OSPFv3, ISIS, RIP, RIPng and PIM.
 
 Quagga is intended to be used as a Route Server and a Route Reflector. It is
 not a toolkit, it provides full routing power under a new architecture.
@@ -127,13 +162,14 @@
 %package devel
 Summary: Header and object files for quagga development
 Group: System Environment/Daemons
+Requires: %{name} = %{version}-%{release}
 
 %description devel
 The quagga-devel package contains the header and object files neccessary for
 developing OSPF-API and quagga applications.
 
 %prep
-%setup  -q
+%setup  -q -n quagga-%{quaggaversion}
 
 %build
 
@@ -148,6 +184,11 @@
 #CFLAGS="${CFLAGS} -Wpacked -Wpadded"
 
 %configure \
+    --sysconfdir=%{_sysconfdir} \
+    --libdir=%{_libdir} \
+    --libexecdir=%{_libexecdir} \
+    --localstatedir=%{_localstatedir} \
+	--disable-werror \
 %if !%{with_shared}
 	--disable-shared \
 %endif
@@ -160,15 +201,6 @@
 %if %{with_tcp_zebra}
 	--enable-tcp-zebra \
 %endif
-%if %{with_nssa}
-	--enable-nssa \
-%endif
-%if %{with_opaque_lsa}
-	--enable-opaque-lsa \
-%endif
-%if %{with_ospf_te}
-	--enable-ospf-te \
-%endif
 %if %{with_vtysh}
 	--enable-vtysh \
 %endif
@@ -200,57 +232,79 @@
 %if %{with_pam}
 	--with-libpam \
 %endif
-%if %quagga_user
+%if 0%{?quagga_user:1}
 	--enable-user=%quagga_user \
 	--enable-group=%quagga_user \
 %endif
-%if %vty_group
+%if 0%{?vty_group:1}
 	--enable-vty-group=%vty_group \
 %endif
---enable-netlink --enable-gcc-rdynamic
+%if %{with_fpm}
+	--enable-fpm \
+%else
+	--disable-fpm \
+%endif
+%if %{with_watchquagga}
+	--enable-watchquagga \
+%else
+	--disable-watchquagga \
+%endif
+	--enable-gcc-rdynamic
 
 make %{?_smp_mflags} MAKEINFO="makeinfo --no-split"
 
 pushd doc
+%if %{texi2htmlversion} < 5
+texi2html --number-sections quagga.texi
+%else
 texi2html --number-footnotes  --number-sections quagga.texi
+%endif
 popd
 
 %install
-rm -rf $RPM_BUILD_ROOT
-
-install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig,logrotate.d,pam.d} \
-	$RPM_BUILD_ROOT/var/log/quagga $RPM_BUILD_ROOT%{_infodir}
-
-make install \
-	DESTDIR=$RPM_BUILD_ROOT
+mkdir -p %{buildroot}/etc/{quagga,sysconfig,logrotate.d,pam.d} \
+         %{buildroot}/var/log/quagga %{buildroot}%{_infodir}
+make DESTDIR=%{buildroot} INSTALL="install -p" CP="cp -p" install
 
 # Remove this file, as it is uninstalled and causes errors when building on RH9
-rm -rf $RPM_BUILD_ROOT/usr/share/info/dir
+rm -rf %{buildroot}/usr/share/info/dir
 
-# install etc sources
+# install /etc sources
+%if "%{initsystem}" == "systemd"
+mkdir -p %{buildroot}%{_unitdir}
+for daemon in %{all_daemons} ; do
+	if [ x"${daemon}" != x"" ] ; then
+		install %{zeb_rh_src}/${daemon}.service \
+			%{buildroot}%{_unitdir}/${daemon}.service
+	fi
+done
+%else
+mkdir -p %{buildroot}/etc/rc.d/init.d
 for daemon in %{all_daemons} ; do
 	if [ x"${daemon}" != x"" ] ; then
 		install %{zeb_rh_src}/${daemon}.init \
-			$RPM_BUILD_ROOT/etc/rc.d/init.d/${daemon}
+			%{buildroot}/etc/rc.d/init.d/${daemon}
 	fi
 done
+%endif
+
 install -m644 %{zeb_rh_src}/quagga.pam \
-	$RPM_BUILD_ROOT/etc/pam.d/quagga
+	%{buildroot}/etc/pam.d/quagga
 install -m644 %{zeb_rh_src}/quagga.logrotate \
-	$RPM_BUILD_ROOT/etc/logrotate.d/quagga
+	%{buildroot}/etc/logrotate.d/quagga
 install -m644 %{zeb_rh_src}/quagga.sysconfig \
-	$RPM_BUILD_ROOT/etc/sysconfig/quagga
-install -d -m750  $RPM_BUILD_ROOT/var/run/quagga
+	%{buildroot}/etc/sysconfig/quagga
+install -d -m750  %{buildroot}/var/run/quagga
 
 %pre
 # add vty_group
-%if %vty_group
+%if 0%{?vty_group:1}
 if getent group %vty_group > /dev/null ; then : ; else \
- /usr/sbin/groupadd -r %vty_group > /dev/null || : ; fi
+ /usr/sbin/groupadd -r -g %vty_gid %vty_group > /dev/null || : ; fi
 %endif
 
 # add quagga user and group
-%if %quagga_user
+%if 0%{?quagga_user:1}
 # Ensure that quagga_gid gets correctly allocated
 if getent group %quagga_user >/dev/null; then : ; else \
  /usr/sbin/groupadd -g %quagga_gid %quagga_user > /dev/null || : ; \
@@ -292,77 +346,145 @@
 zebra_spec_add_service pimd     2611/tcp "PIMd vty"
 %endif
 
-for daemon in %daemon_list ; do
+%if "%{initsystem}" == "systemd"
+for daemon in %all_daemons ; do
+	%systemd_post ${daemon}.service
+done
+%else
+for daemon in %all_daemons ; do
 	/sbin/chkconfig --add ${daemon}
 done
+%endif
 
 /sbin/install-info %{_infodir}/quagga.info.gz %{_infodir}/dir
 
 # Create dummy files if they don't exist so basic functions can be used.
 if [ ! -e %{_sysconfdir}/zebra.conf ]; then
 	echo "hostname `hostname`" > %{_sysconfdir}/zebra.conf
-%if %{quagga_user}
-	chown %quagga_user:%quagga_user %{_sysconfdir}/zebra.conf
+%if 0%{?quagga_user:1}
+	chown %quagga_user:%quagga_user %{_sysconfdir}/zebra.conf*
 %endif
 	chmod 640 %{_sysconfdir}/zebra.conf
 fi
+for daemon in %{all_daemons} ; do
+	if [ ! -e %{_sysconfdir}/${daemon}.conf ]; then
+		touch %{_sysconfdir}/${daemon}.conf
+		%if 0%{?quagga_user:1}
+			chown %quagga_user:%quagga_user %{_sysconfdir}/${daemon}.conf*
+		%endif
+	fi
+done
+%if %{with_watchquagga}
+	# No config for watchquagga - this is part of /etc/sysconfig/quagga
+	rm -f %{_sysconfdir}/watchquagga.*
+%endif
+
 if [ ! -e %{_sysconfdir}/vtysh.conf ]; then
 	touch %{_sysconfdir}/vtysh.conf
 	chmod 640 %{_sysconfdir}/vtysh.conf
+%if 0%{?vty_group:1}
+    chown quagga:%{vty_group} %{_sysconfdir}/vtysh.conf*
+%endif
 fi
 
 %postun
 if [ "$1" -ge 1 ]; then
 	# Find out which daemons need to be restarted.
 	for daemon in %all_daemons ; do
-		if [ -f /var/lock/subsys/$daemon ]; then
-			eval restart_$daemon=yes
+		if [ -f /var/lock/subsys/${daemon} ]; then
+			eval restart_${daemon}=yes
 		else
-			eval restart_$daemon=no
+			eval restart_${daemon}=no
 		fi
 	done
 	# Rename restart flags for daemons handled specially.
 	running_zebra="$restart_zebra"
 	restart_zebra=no
-	running_watchquagga="$restart_watchquagga"
-	restart_watchquagga=no
-	# Stop watchquagga first.
-	[ "$running_watchquagga" = yes ] && \
-		/etc/rc.d/init.d/watchquagga stop >/dev/null 2>&1
-	# Stop all daemons other than zebra and watchquagga.
-	for daemon in %all_daemons ; do
-		eval restart=\$restart_${daemon}
-		[ "$restart" = yes ] && \
-			/etc/rc.d/init.d/$daemon stop >/dev/null 2>&1
-	done
-	# Restart zebra.
-	[ "$running_zebra" = yes ] && \
-		/etc/rc.d/init.d/zebra restart >/dev/null 2>&1
-	# Start all daemons other than zebra and watchquagga.
-	for daemon in %all_daemons ; do
-		eval restart=\$restart_${daemon}
-		[ "$restart" = yes ] && \
-			/etc/rc.d/init.d/$daemon start >/dev/null 2>&1
-	done
-	# Start watchquagga last.
-	# Avoid postun scriptlet error if watchquagga is not running. 
-	[ "$running_watchquagga" = yes ] && \
-		/etc/rc.d/init.d/watchquagga start >/dev/null 2>&1 || :
+	%if %{with_watchquagga}
+		running_watchquagga="$restart_watchquagga"
+		restart_watchquagga=no
+	%endif
+	
+	%if "%{initsystem}" == "systemd"
+		##
+		## Systemd Version
+		##
+		# No watchquagga for systemd version
+		#
+		# Stop all daemons other than zebra.
+		for daemon in %all_daemons ; do
+			eval restart=\$restart_${daemon}
+			[ "$restart" = yes ] && \
+				%systemd_postun ${daemon}.service
+		done
+		# Restart zebra.
+		[ "$running_zebra" = yes ] && \
+			%systemd_postun_with_restart $daemon.service
+		# Start all daemons other than zebra.
+		for daemon in %all_daemons ; do
+			eval restart=\$restart_${daemon}
+			[ "$restart" = yes ] && \
+				%systemd_post ${daemon}.service
+		done
+	%else
+		##
+		## init.d Version
+		##
+		%if %{with_watchquagga}
+			# Stop watchquagga first.
+			[ "$running_watchquagga" = yes ] && \
+				/etc/rc.d/init.d/watchquagga stop >/dev/null 2>&1
+		%endif
+		# Stop all daemons other than zebra and watchquagga.
+		for daemon in %all_daemons ; do
+			eval restart=\$restart_${daemon}
+			[ "$restart" = yes ] && \
+				/etc/rc.d/init.d/${daemon} stop >/dev/null 2>&1
+		done
+		# Restart zebra.
+		[ "$running_zebra" = yes ] && \
+			/etc/rc.d/init.d/zebra restart >/dev/null 2>&1
+		# Start all daemons other than zebra and watchquagga.
+		for daemon in %all_daemons ; do
+			eval restart=\$restart_${daemon}
+			[ "$restart" = yes ] && \
+				/etc/rc.d/init.d/${daemon} start >/dev/null 2>&1
+		done
+		%if %{with_watchquagga}
+			# Start watchquagga last.
+			# Avoid postun scriptlet error if watchquagga is not running. 
+			[ "$running_watchquagga" = yes ] && \
+				/etc/rc.d/init.d/watchquagga start >/dev/null 2>&1 || :
+		%endif	
+	%endif
 fi
-/sbin/install-info --delete %{_infodir}/quagga.info.gz %{_infodir}/dir
 
 %preun
-if [ "$1" = "0" ]; then
-	for daemon in %all_daemons ; do
-		/etc/rc.d/init.d/${daemon} stop  >/dev/null 2>&1
-		/sbin/chkconfig --del ${daemon}
-	done
-	/sbin/install-info --delete %{_infodir}/quagga.info.gz %{_infodir}/dir
-fi
+%if "%{initsystem}" == "systemd"
+	##
+	## Systemd Version
+	##
+	if [ "$1" = "0" ]; then
+		for daemon in %all_daemons ; do
+			%systemd_preun ${daemon}.service
+		done
+	fi
+%else
+	##
+	## init.d Version
+	##
+	if [ "$1" = "0" ]; then
+		for daemon in %all_daemons ; do
+			/etc/rc.d/init.d/${daemon} stop  >/dev/null 2>&1
+			/sbin/chkconfig --del ${daemon}
+		done
+	fi
+%endif
+/sbin/install-info --delete %{_infodir}/quagga.info.gz %{_infodir}/dir
 
 %clean
-%if !%{keep_build}
-rm -rf $RPM_BUILD_ROOT
+%if !0%{?keep_build:1}
+rm -rf %{buildroot}
 %endif
 
 %files
@@ -371,26 +493,27 @@
 %doc doc/quagga.html
 %doc doc/mpls
 %doc ChangeLog INSTALL NEWS README REPORTING-BUGS SERVICES TODO
-%if %{quagga_user}
+%if 0%{?quagga_user:1}
 %dir %attr(751,%quagga_user,%quagga_user) %{_sysconfdir}
 %dir %attr(750,%quagga_user,%quagga_user) /var/log/quagga 
 %dir %attr(751,%quagga_user,%quagga_user) /var/run/quagga
 %else
 %dir %attr(750,root,root) %{_sysconfdir}
 %dir %attr(750,root,root) /var/log/quagga
-%dir %attr(755,root,root) /usr/share/info
 %dir %attr(750,root,root) /var/run/quagga
 %endif
-%if %{vty_group}
+%if 0%{?vty_group:1}
 %attr(750,%quagga_user,%vty_group) %{_sysconfdir}/vtysh.conf.sample
 %endif
-%{_infodir}/*info*
+%{_infodir}/quagga.info.gz
 %{_mandir}/man*/*
 %{_sbindir}/zebra
 %{_sbindir}/ospfd
 %{_sbindir}/ripd
 %{_sbindir}/bgpd
-%{_sbindir}/watchquagga
+%if %{with_watchquagga}
+	%{_sbindir}/watchquagga
+%endif
 %{_sbindir}/ripngd
 %{_sbindir}/ospf6d
 %if %{with_pimd}
@@ -399,17 +522,33 @@
 %if %{with_isisd}
 %{_sbindir}/isisd
 %endif
-%dir %attr(755,root,root) %{_libdir}
 %if %{with_shared}
-%dir %{_libdir}
-%{_libdir}/lib*.so
-%{_libdir}/lib*.so.*
+%attr(755,root,root) %{_libdir}/lib*.so
+%attr(755,root,root) %{_libdir}/lib*.so.*
 %endif
 %if %{with_vtysh}
 %{_bindir}/*
 %endif
 %config /etc/quagga/[!v]*
-%config /etc/rc.d/init.d/*
+%if "%{initsystem}" == "systemd"
+	%config %{_unitdir}/*.service
+%else
+	%config /etc/rc.d/init.d/zebra
+	%if %{with_watchquagga}
+		%config /etc/rc.d/init.d/watchquagga
+	%endif
+	%config /etc/rc.d/init.d/ripd
+	%config /etc/rc.d/init.d/ospfd
+	%config /etc/rc.d/init.d/bgpd
+	%config /etc/rc.d/init.d/ripngd
+	%config /etc/rc.d/init.d/ospf6d
+	%if %{with_isisd}
+		%config /etc/rc.d/init.d/isisd
+	%endif
+	%if %{with_pimd}
+		%config /etc/rc.d/init.d/pimd
+	%endif
+%endif
 %config(noreplace) /etc/sysconfig/quagga
 %config(noreplace) /etc/pam.d/quagga
 %config(noreplace) %attr(640,root,root) /etc/logrotate.d/*
@@ -435,17 +574,27 @@
 %endif
 
 %changelog
-* Fri Sep 4 2015 Paul Jakma <paul@jakma.org> - %{version}
-- package the pimd binary
+* Thu Feb 11 2016 Paul Jakma <paul@jakma.org> - %{version}
 - remove with_ipv6 conditionals, always build v6
 - Fix UTF-8 char in spec changelog
 - remove quagga.pam.stack, long deprecated.
 
-* Fri Sep 4 2015 Paul Jakma <paul@jakma.org> - %{version}
+* Thu Oct 22 2015 Martin Winter <mwinter@opensourcerouting.org>
+- Cleanup configure: remove --enable-ipv6 (default now), --enable-nssa,
+    --enable-netlink
+- Remove support for old fedora 4/5
+- Fix for package nameing
+- Fix Weekdays of previous changelogs (bogus dates)
+- Add conditional logic to only build tex footnotes with supported texi2html 
+- Added pimd to files section and fix double listing of /var/lib*/quagga
+- Numerous fixes to unify upstart/systemd startup into same spec file
+- Only allow use of watchquagga for non-systemd systems. no need with systemd
+
+* Fri Sep  4 2015 Paul Jakma <paul@jakma.org>
 - buildreq updates
 - add a default define for with_pimd
 
-* Thu Sep 12 2005 Paul Jakma <paul@dishone.st>
+* Mon Sep 12 2005 Paul Jakma <paul@dishone.st>
 - Steal some changes from Fedora spec file:
 - Add with_rtadv variable
 - Test for groups/users with getent before group/user adding
@@ -498,7 +647,7 @@
 - add user with fixed UID/GID (RH)
 - create user with shell /sbin/nologin rather than /bin/false (RH)
 - stop daemons on uninstall (RH)
-- delete info file on %preun, not %postun to avoid deletion on upgrade. (RH)
+- delete info file on preun, not postun to avoid deletion on upgrade. (RH)
 - isisd added
 - cleanup tasks carried out for every daemon
 
@@ -510,10 +659,10 @@
 - Renamed to Quagga
 - Sync to Quagga release 0.96
 
-* Tue Mar 20 2003 Paul Jakma <paul@dishone.st>
+* Thu Mar 20 2003 Paul Jakma <paul@dishone.st>
 - zebra privileges support
 
-* Mon Mar 18 2003 Paul Jakma <paul@dishone.st>
+* Tue Mar 18 2003 Paul Jakma <paul@dishone.st>
 - Fix mem leak in 'show thread cpu'
 - Ralph Keller's OSPF-API
 - Amir: Fix configure.ac for net-snmp
@@ -537,7 +686,7 @@
 - Added conditionals for building with(out) IPv6, vtysh, RIP, BGP
 - Fixed up some build requirements (patch)
 - Added conditional build requirements for vtysh / snmp
-- Added conditional to %files for %_bindir depending on vtysh
+- Added conditional to files for _bindir depending on vtysh
 
 * Mon Nov 11 2002 Paul Jakma <paulj@alphyra.ie>
 - update to latest CVS
@@ -577,7 +726,7 @@
 * Thu Aug 09 2001 Elliot Lee <sopwith@redhat.com> 0.91a-6
 - Fix bug #51336
 
-* Wed Aug  1 2001 Trond Eivind Glomsrød  <teg@redhat.com> 0.91a-5
+* Wed Aug  1 2001 Trond Eivind Glomsrød <teg@redhat.com> 0.91a-5
 - Use generic initscript strings instead of initscript specific
   ( "Starting foo: " -> "Starting $prog:" )
 
