diff --git a/.gitignore b/.gitignore index 0e1780a..4fb71a0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /kronosnet-1.1.tar.gz /kronosnet-1.3.tar.gz /kronosnet-1.4.tar.gz +/kronosnet-1.5.tar.gz diff --git a/kronosnet-1.5.tar.gz b/kronosnet-1.5.tar.gz new file mode 100644 index 0000000..2968ce2 Binary files /dev/null and b/kronosnet-1.5.tar.gz differ diff --git a/kronosnet.spec b/kronosnet.spec index f1ab295..c19e5e0 100644 --- a/kronosnet.spec +++ b/kronosnet.spec @@ -24,6 +24,7 @@ %bcond_with runautogen %bcond_with rpmdebuginfo %bcond_with overriderpmdebuginfo +%bcond_without buildman %if %{with overriderpmdebuginfo} %undefine _enable_debug_packages @@ -63,23 +64,28 @@ %if %{with runautogen} %global buildautogen 1 %endif +%if %{with buildman} +%global buildmanpages 1 +%endif # main (empty) package # http://www.rpm.org/max-rpm/s1-rpm-subpack-spec-file-changes.html Name: kronosnet Summary: Multipoint-to-Multipoint VPN daemon -Version: 1.4 +Version: 1.5 Release: 1%{?dist} License: GPLv2+ and LGPLv2+ URL: http://www.kronosnet.org Source0: http://www.kronosnet.org/releases/kronosnet-%{version}.tar.gz + # Build dependencies BuildRequires: gcc # required to build man pages -BuildRequires: libxml2-devel doxygen -BuildRequires: libqb-devel +%if %{defined buildmanpages} +BuildRequires: libqb-devel libxml2-devel doxygen +%endif %if %{defined buildsctp} BuildRequires: lksctp-tools-devel %endif @@ -105,7 +111,6 @@ BuildRequires: xz-devel BuildRequires: bzip2-devel %endif %if %{defined buildkronosnetd} -BuildRequires: systemd BuildRequires: pam-devel %endif %if %{defined buildautogen} @@ -123,6 +128,11 @@ BuildRequires: libtool %endif %{configure} \ +%if %{defined buildmanpages} + --enable-man \ +%else + --disable-man \ +%endif %if %{defined buildsctp} --enable-libknet-sctp \ %else @@ -169,12 +179,12 @@ BuildRequires: libtool %if %{defined buildlibtap} --enable-libtap \ %endif - --with-initdefaultdir=%{_sysconfdir}/sysconfig/ \ --with-systemddir=%{_unitdir} make %{_smp_mflags} %install +rm -rf %{buildroot} make install DESTDIR=%{buildroot} # tree cleanup @@ -183,9 +193,8 @@ find %{buildroot} -name "*.a" -exec rm {} \; # remove libtools leftovers find %{buildroot} -name "*.la" -exec rm {} \; -# handle systemd vs init script -# remove init scripts -rm -rf %{buildroot}/etc/init.d +# remove systemd specific bits +find %{buildroot} -name "*.service" -exec rm {} \; # remove docs rm -rf %{buildroot}/usr/share/doc/kronosnet @@ -205,34 +214,45 @@ kronosnet source ## Runtime and subpackages section %package -n kronosnetd Summary: Multipoint-to-Multipoint VPN daemon -License: GPLv2+ -Requires(post): shadow-utils +# Needed for systemd unit +Requires(post): systemd-sysv +Requires(post): systemd-units +Requires(preun): systemd-units +Requires(postun): systemd-units +Requires(post): shadow-utils +Requires(preun): shadow-utils Requires: pam, /etc/pam.d/passwd -%{?systemd_requires} %description -n kronosnetd -The kronosnet daemon is a bridge between kronosnet switching engine -and kernel network tap devices, to create and administer a -distributed LAN over multipoint-to-multipoint VPNs. - -The daemon does a poor attempt to provide a configure UI similar -to other known network devices/tools (Cisco, quagga). -Beside looking horrific, it allows runtime changes and -reconfiguration of the kronosnet(s) without daemon reload -or service disruption. + The kronosnet daemon is a bridge between kronosnet switching engine + and kernel network tap devices, to create and administer a + distributed LAN over multipoint-to-multipoint VPNs. + The daemon does a poor attempt to provide a configure UI similar + to other known network devices/tools (Cisco, quagga). + Beside looking horrific, it allows runtime changes and + reconfiguration of the kronosnet(s) without daemon reload + or service disruption. %post -n kronosnetd -%systemd_post kronosnetd.service -getent group kronosnetadm >/dev/null || groupadd --force kronosnetadm - -%postun -n kronosnetd -%systemd_postun kronosnetd.service +%if 0%{?systemd_post:1} + %systemd_post kronosnetd.service +%else + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +%endif +/usr/sbin/groupadd --force --system kronosnetadm %preun -n kronosnetd -%systemd_preun kronosnetd.service +%if 0%{?systemd_preun:1} + %systemd_preun kronosnetd.service +%else +if [ "$1" -eq 0 ]; then + /bin/systemctl --no-reload disable kronosnetd.service + /bin/systemctl stop kronosnetd.service >/dev/null 2>&1 +fi +%endif %files -n kronosnetd -%license COPYING.* COPYRIGHT +%license COPYING.* COPYRIGHT %dir %{_sysconfdir}/kronosnet %dir %{_sysconfdir}/kronosnet/* %config(noreplace) %{_sysconfdir}/sysconfig/kronosnetd @@ -249,15 +269,17 @@ Summary: Simple userland wrapper around kernel tap devices License: LGPLv2+ %description -n libtap1 -This is an over-engineered commodity library to manage a pool -of tap devices and provides the basic -pre-up.d/up.d/down.d/post-down.d infrastructure. + This is an over-engineered commodity library to manage a pool + of tap devices and provides the basic + pre-up.d/up.d/down.d/post-down.d infrastructure. %files -n libtap1 %license COPYING.* COPYRIGHT %{_libdir}/libtap.so.* -%ldconfig_scriptlets -n libtap1 +%post -n libtap1 -p /sbin/ldconfig + +%postun -n libtap1 -p /sbin/ldconfig %package -n libtap1-devel Summary: Simple userland wrapper around kernel tap devices (developer files) @@ -266,9 +288,9 @@ Requires: libtap1%{_isa} = %{version}-%{release} Requires: pkgconfig %description -n libtap1-devel -This is an over-engineered commodity library to manage a pool -of tap devices and provides the basic -pre-up.d/up.d/down.d/post-down.d infrastructure. + This is an over-engineered commodity library to manage a pool + of tap devices and provides the basic + pre-up.d/up.d/down.d/post-down.d infrastructure. %files -n libtap1-devel %license COPYING.* COPYRIGHT @@ -278,26 +300,22 @@ pre-up.d/up.d/down.d/post-down.d infrastructure. %endif %package -n libknet1 -Summary: Kronosnet core switching implementation (protocol v1) +Summary: Kronosnet core switching implementation License: LGPLv2+ -BuildRequires: libqb-devel -BuildRequires: doxygen %description -n libknet1 -Kronosnet, often referred to as knet, is a network abstraction layer -designed for High Availability use cases, where redundancy, security, -fault tolerance and fast fail-over are the core requirements of your -application. - -The whole kronosnet core is implemented in this library. -Please refer to https://kronosnet.org/ for further information. + The whole kronosnet core is implemented in this library. + Please refer to the not-yet-existing documentation for further + information. %files -n libknet1 %license COPYING.* COPYRIGHT %{_libdir}/libknet.so.* %dir %{_libdir}/kronosnet -%ldconfig_scriptlets -n libknet1 +%post -n libknet1 -p /sbin/ldconfig + +%postun -n libknet1 -p /sbin/ldconfig %package -n libknet1-devel Summary: Kronosnet core switching implementation (developer files) @@ -306,31 +324,26 @@ Requires: libknet1%{_isa} = %{version}-%{release} Requires: pkgconfig %description -n libknet1-devel -The whole kronosnet core is implemented in this library. -Please refer to the not-yet-existing documentation for further -information. + The whole kronosnet core is implemented in this library. + Please refer to the not-yet-existing documentation for further + information. -# libknet.pc leading to pkgconfig(libknet) automatic virtual provides, -# like other files, is not explicitly versioned in the name like the -# subpackages are -- intention of doing so for subpackage names is -# to ease the cross-checking the compatibility of the remote clients -# interchanging data using this network communication library, as -# the number denotes the protocol version (providing multiple -# protocol versions in parallel is not planned). %files -n libknet1-devel %{_libdir}/libknet.so %{_includedir}/libknet.h %{_libdir}/pkgconfig/libknet.pc -%{_mandir}/man3/*.3.gz +%if %{defined buildmanpages} +%{_mandir}/man3/knet*.3.gz +%endif %if %{defined buildcryptonss} %package -n libknet1-crypto-nss-plugin -Summary: Libknet1 nss support +Summary: libknet1 nss support License: LGPLv2+ Requires: libknet1%{_isa} = %{version}-%{release} %description -n libknet1-crypto-nss-plugin -NSS crypto support for libknet1. + NSS crypto support for libknet1. %files -n libknet1-crypto-nss-plugin %{_libdir}/kronosnet/crypto_nss.so @@ -338,12 +351,12 @@ NSS crypto support for libknet1. %if %{defined buildcryptoopenssl} %package -n libknet1-crypto-openssl-plugin -Summary: Libknet1 openssl support +Summary: libknet1 openssl support License: LGPLv2+ Requires: libknet1%{_isa} = %{version}-%{release} %description -n libknet1-crypto-openssl-plugin -OpenSSL crypto support for libknet1. + OpenSSL crypto support for libknet1. %files -n libknet1-crypto-openssl-plugin %{_libdir}/kronosnet/crypto_openssl.so @@ -351,24 +364,24 @@ OpenSSL crypto support for libknet1. %if %{defined buildcompresszlib} %package -n libknet1-compress-zlib-plugin -Summary: Libknet1 zlib support +Summary: libknet1 zlib support License: LGPLv2+ Requires: libknet1%{_isa} = %{version}-%{release} %description -n libknet1-compress-zlib-plugin -zlib compression support for libknet1. + zlib compression support for libknet1. %files -n libknet1-compress-zlib-plugin %{_libdir}/kronosnet/compress_zlib.so %endif %if %{defined buildcompresslz4} %package -n libknet1-compress-lz4-plugin -Summary: Libknet1 lz4 and lz4hc support +Summary: libknet1 lz4 and lz4hc support License: LGPLv2+ Requires: libknet1%{_isa} = %{version}-%{release} %description -n libknet1-compress-lz4-plugin -lz4 and lz4hc compression support for libknet1. + lz4 and lz4hc compression support for libknet1. %files -n libknet1-compress-lz4-plugin %{_libdir}/kronosnet/compress_lz4.so @@ -377,12 +390,12 @@ lz4 and lz4hc compression support for libknet1. %if %{defined buildcompresslzo2} %package -n libknet1-compress-lzo2-plugin -Summary: Libknet1 lzo2 support +Summary: libknet1 lzo2 support License: LGPLv2+ Requires: libknet1%{_isa} = %{version}-%{release} %description -n libknet1-compress-lzo2-plugin -lzo2 compression support for libknet1. + lzo2 compression support for libknet1. %files -n libknet1-compress-lzo2-plugin %{_libdir}/kronosnet/compress_lzo2.so @@ -390,12 +403,12 @@ lzo2 compression support for libknet1. %if %{defined buildcompresslzma} %package -n libknet1-compress-lzma-plugin -Summary: Libknet1 lzma support +Summary: libknet1 lzma support License: LGPLv2+ Requires: libknet1%{_isa} = %{version}-%{release} %description -n libknet1-compress-lzma-plugin -lzma compression support for libknet1. + lzma compression support for libknet1. %files -n libknet1-compress-lzma-plugin %{_libdir}/kronosnet/compress_lzma.so @@ -403,19 +416,19 @@ lzma compression support for libknet1. %if %{defined buildcompressbzip2} %package -n libknet1-compress-bzip2-plugin -Summary: Libknet1 bzip2 support +Summary: libknet1 bzip2 support License: LGPLv2+ Requires: libknet1%{_isa} = %{version}-%{release} %description -n libknet1-compress-bzip2-plugin -bzip2 compression support for libknet1. + bzip2 compression support for libknet1. %files -n libknet1-compress-bzip2-plugin %{_libdir}/kronosnet/compress_bzip2.so %endif %package -n libknet1-crypto-plugins-all -Summary: Libknet1 crypto plugins meta package +Summary: libknet1 crypto plugins meta package License: LGPLv2+ %if %{defined buildcryptonss} Requires: libknet1-crypto-nss-plugin%{_isa} = %{version}-%{release} @@ -425,12 +438,12 @@ Requires: libknet1-crypto-openssl-plugin%{_isa} = %{version}-%{release} %endif %description -n libknet1-crypto-plugins-all -meta package to install all of libknet1 crypto plugins + meta package to install all of libknet1 crypto plugins %files -n libknet1-crypto-plugins-all %package -n libknet1-compress-plugins-all -Summary: Libknet1 compress plugins meta package +Summary: libknet1 compress plugins meta package License: LGPLv2+ %if %{defined buildcompresszlib} Requires: libknet1-compress-zlib-plugin%{_isa} = %{version}-%{release} @@ -449,18 +462,18 @@ Requires: libknet1-compress-bzip2-plugin%{_isa} = %{version}-%{release} %endif %description -n libknet1-compress-plugins-all -meta package to install all of libknet1 compress plugins + meta package to install all of libknet1 compress plugins %files -n libknet1-compress-plugins-all %package -n libknet1-plugins-all -Summary: Libknet1 plugins meta package +Summary: libknet1 plugins meta package License: LGPLv2+ Requires: libknet1-compress-plugins-all%{_isa} = %{version}-%{release} Requires: libknet1-crypto-plugins-all%{_isa} = %{version}-%{release} %description -n libknet1-plugins-all -meta package to install all of libknet1 plugins + meta package to install all of libknet1 plugins %files -n libknet1-plugins-all @@ -470,45 +483,6 @@ meta package to install all of libknet1 plugins %endif %changelog -* Tue Aug 14 2018 Madison Kelly - 1.4-1 -- Updated to upstream release v1.4. - -* Mon Apr 23 2018 Madison Kelly - 1.3-1 -- Updated to upstream release v1.3. - -* Fri Mar 09 2018 Madison Kelly - 1.1-8 -- Changed pkgconfig() to normal package names to help avoid the wrong - package being pulled in to satisfy dependencies. - -* Wed Mar 07 2018 Madison Kelly - 1.1-7 -- Moved the comment back above '%%files -n libknet1-devel'. -- Added comment to '%%debug_package'. - -* Wed Mar 07 2018 Madison Kelly - 1.1-6 -- Added a version requirement to lz4 to deal with koji pulling in the - wrong package. - -* Tue Mar 06 2018 Madison Kelly - 1.1-5 -- Updated ldconfig scriptlet calls. -- Moved the debug_package leading comment. - -* Sun Mar 04 2018 Madison Kelly - 1.1-4 -- Removed leading spaces from descriptions. -- Added the (commented out) %%check tests. -- Updated the changelog macro references to have two percent signs. -- Dropped the redundant libknet1-devel license files. -- Changed 'GPLv2+ + LGPLv2+' to 'GPLv2+ and LGPLv2+'. -- Updated %%ldconfig_scriptlets call. -- Clarified the kronosnet protocol version in the summary. - -* Mon Feb 26 2018 Madison Kelly - 1.1-3 -- Fixed the changelog to not have the full macro names. - -* Sun Feb 25 2018 Madison Kelly - 1.1-2 -- Moved the 'BuildRequires: systemd' to be conditional with kronostnetd. - -* Sun Feb 25 2018 Madison Kelly - 1.1-1 -- Rerolled for 1.1 upstream release. -- Removed the (no longer needed) gcc8-fixes.patch -- Added the new doxygen and libqb-devel buildrequires for libknetd. +* Mon Nov 26 2018 Madison Kelly - 1.5-1 +- Updated to upstream release v1.5. diff --git a/sources b/sources index 1167d72..7c78e9d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (kronosnet-1.4.tar.gz) = 3d7b884f2940d8e1c75685b2843e747bd0ab48249763030ca47d529272685f0c3bdcb129d3bcd574be3aeaea31090badfbea3ad5c50faa9a0d3275831d280f99 +SHA512 (kronosnet-1.5.tar.gz) = 27cb525acc5daed0610967d62af764208461dcfb600d1f0c552639a76945552aef5235d8b950e4d3629b26082c3a722d399e09388939541a245b0de97ed87a60