kronosnet/kronosnet.spec

512 lines
13 KiB
RPMSpec
Raw Normal View History

2018-03-20 22:07:32 +00:00
###############################################################################
###############################################################################
##
2019-04-04 04:57:15 +00:00
## Copyright (C) 2012-2019 Red Hat, Inc. All rights reserved.
2018-03-20 22:07:32 +00:00
##
## This copyrighted material is made available to anyone wishing to use,
## modify, copy, or redistribute it subject to the terms and conditions
## of the GNU General Public License v.2 or higher
##
###############################################################################
###############################################################################
2019-04-04 04:57:15 +00:00
# set defaults from ./configure invocation
2018-03-20 22:07:32 +00:00
%bcond_without sctp
%bcond_without nss
%bcond_without openssl
%bcond_without zlib
%bcond_without lz4
%bcond_without lzo2
%bcond_without lzma
%bcond_without bzip2
%bcond_with kronosnetd
2019-04-04 04:57:15 +00:00
%bcond_without libnozzle
2018-03-20 22:07:32 +00:00
%bcond_with runautogen
%bcond_with rpmdebuginfo
%bcond_with overriderpmdebuginfo
2018-11-27 21:50:24 +00:00
%bcond_without buildman
2019-04-04 04:57:15 +00:00
%bcond_with installtests
2018-03-20 22:07:32 +00:00
%if %{with overriderpmdebuginfo}
%undefine _enable_debug_packages
%endif
%if %{with sctp}
%global buildsctp 1
%endif
%if %{with nss}
%global buildcryptonss 1
%endif
%if %{with openssl}
%global buildcryptoopenssl 1
%endif
%if %{with zlib}
%global buildcompresszlib 1
%endif
%if %{with lz4}
%global buildcompresslz4 1
%endif
%if %{with lzo2}
%global buildcompresslzo2 1
%endif
%if %{with lzma}
%global buildcompresslzma 1
%endif
%if %{with bzip2}
%global buildcompressbzip2 1
%endif
2019-04-04 04:57:15 +00:00
%if %{with libnozzle}
%global buildlibnozzle 1
2018-03-20 22:07:32 +00:00
%endif
%if %{with kronosnetd}
2019-04-04 04:57:15 +00:00
%global buildlibnozzle 1
2018-03-20 22:07:32 +00:00
%global buildkronosnetd 1
%endif
%if %{with runautogen}
%global buildautogen 1
%endif
2018-11-27 21:50:24 +00:00
%if %{with buildman}
%global buildmanpages 1
%endif
2019-04-04 04:57:15 +00:00
%if %{with installtests}
%global installtestsuite 1
%endif
2018-03-20 22:07:32 +00:00
# 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.9
Release: 1%{?dist}
2018-03-20 22:07:32 +00:00
License: GPLv2+ and LGPLv2+
URL: http://www.kronosnet.org
Source0: http://www.kronosnet.org/releases/kronosnet-%{version}.tar.xz
2018-03-20 22:07:32 +00:00
2018-11-27 21:50:24 +00:00
2018-03-20 22:07:32 +00:00
# Build dependencies
BuildRequires: gcc
# required to build man pages
2018-11-27 21:50:24 +00:00
%if %{defined buildmanpages}
BuildRequires: libqb-devel libxml2-devel doxygen
%endif
2018-03-20 22:07:32 +00:00
%if %{defined buildsctp}
BuildRequires: lksctp-tools-devel
%endif
%if %{defined buildcryptonss}
2019-04-04 04:57:15 +00:00
BuildRequires: nss-devel
2018-03-20 22:07:32 +00:00
%endif
%if %{defined buildcryptoopenssl}
BuildRequires: openssl-devel
%endif
%if %{defined buildcompresszlib}
BuildRequires: zlib-devel
%endif
%if %{defined buildcompresslz4}
BuildRequires: lz4-devel
%endif
%if %{defined buildcompresslzo2}
BuildRequires: lzo-devel
%endif
%if %{defined buildcompresslzma}
BuildRequires: xz-devel
%endif
%if %{defined buildcompressbzip2}
BuildRequires: bzip2-devel
%endif
%if %{defined buildkronosnetd}
BuildRequires: pam-devel
%endif
2019-04-04 04:57:15 +00:00
%if %{defined buildlibnozzle}
BuildRequires: libnl3-devel
%endif
2018-03-20 22:07:32 +00:00
%if %{defined buildautogen}
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: libtool
%endif
%prep
%setup -q -n %{name}-%{version}
%build
%if %{with runautogen}
./autogen.sh
%endif
%{configure} \
2019-04-04 04:57:15 +00:00
%if %{defined installtestsuite}
--enable-install-tests \
%else
--disable-install-tests \
%endif
2018-11-27 21:50:24 +00:00
%if %{defined buildmanpages}
2019-04-04 04:57:15 +00:00
--enable-man \
2018-11-27 21:50:24 +00:00
%else
2019-04-04 04:57:15 +00:00
--disable-man \
2018-11-27 21:50:24 +00:00
%endif
2018-03-20 22:07:32 +00:00
%if %{defined buildsctp}
2019-04-04 04:57:15 +00:00
--enable-libknet-sctp \
2018-03-20 22:07:32 +00:00
%else
2019-04-04 04:57:15 +00:00
--disable-libknet-sctp \
2018-03-20 22:07:32 +00:00
%endif
%if %{defined buildcryptonss}
2019-04-04 04:57:15 +00:00
--enable-crypto-nss \
2018-03-20 22:07:32 +00:00
%else
2019-04-04 04:57:15 +00:00
--disable-crypto-nss \
2018-03-20 22:07:32 +00:00
%endif
%if %{defined buildcryptoopenssl}
2019-04-04 04:57:15 +00:00
--enable-crypto-openssl \
2018-03-20 22:07:32 +00:00
%else
2019-04-04 04:57:15 +00:00
--disable-crypto-openssl \
2018-03-20 22:07:32 +00:00
%endif
%if %{defined buildcompresszlib}
2019-04-04 04:57:15 +00:00
--enable-compress-zlib \
2018-03-20 22:07:32 +00:00
%else
2019-04-04 04:57:15 +00:00
--disable-compress-zlib \
2018-03-20 22:07:32 +00:00
%endif
%if %{defined buildcompresslz4}
2019-04-04 04:57:15 +00:00
--enable-compress-lz4 \
2018-03-20 22:07:32 +00:00
%else
2019-04-04 04:57:15 +00:00
--disable-compress-lz4 \
2018-03-20 22:07:32 +00:00
%endif
%if %{defined buildcompresslzo2}
2019-04-04 04:57:15 +00:00
--enable-compress-lzo2 \
2018-03-20 22:07:32 +00:00
%else
2019-04-04 04:57:15 +00:00
--disable-compress-lzo2 \
2018-03-20 22:07:32 +00:00
%endif
%if %{defined buildcompresslzma}
2019-04-04 04:57:15 +00:00
--enable-compress-lzma \
2018-03-20 22:07:32 +00:00
%else
2019-04-04 04:57:15 +00:00
--disable-compress-lzma \
2018-03-20 22:07:32 +00:00
%endif
%if %{defined buildcompressbzip2}
2019-04-04 04:57:15 +00:00
--enable-compress-bzip2 \
2018-03-20 22:07:32 +00:00
%else
2019-04-04 04:57:15 +00:00
--disable-compress-bzip2 \
2018-03-20 22:07:32 +00:00
%endif
%if %{defined buildkronosnetd}
2019-04-04 04:57:15 +00:00
--enable-kronosnetd \
%endif
%if %{defined buildlibnozzle}
--enable-libnozzle \
2018-03-20 22:07:32 +00:00
%endif
2019-04-04 04:57:15 +00:00
--with-initdefaultdir=%{_sysconfdir}/sysconfig/ \
%if %{defined _unitdir}
--with-systemddir=%{_unitdir}
%else
--with-initddir=%{_sysconfdir}/rc.d/init.d/
2018-03-20 22:07:32 +00:00
%endif
make %{_smp_mflags}
%install
2018-11-27 21:50:24 +00:00
rm -rf %{buildroot}
2018-03-20 22:07:32 +00:00
make install DESTDIR=%{buildroot}
# tree cleanup
# remove static libraries
find %{buildroot} -name "*.a" -exec rm {} \;
# remove libtools leftovers
find %{buildroot} -name "*.la" -exec rm {} \;
2019-04-04 04:57:15 +00:00
# handle systemd vs init script
%if %{defined _unitdir}
# remove init scripts
rm -rf %{buildroot}/etc/init.d
%else
2018-11-27 21:50:24 +00:00
# remove systemd specific bits
find %{buildroot} -name "*.service" -exec rm {} \;
2019-04-04 04:57:15 +00:00
%endif
2018-03-20 22:07:32 +00:00
# remove docs
rm -rf %{buildroot}/usr/share/doc/kronosnet
# main empty package
%description
2019-04-04 04:57:15 +00:00
The kronosnet source
2018-03-20 22:07:32 +00:00
%if %{defined buildkronosnetd}
## Runtime and subpackages section
%package -n kronosnetd
Summary: Multipoint-to-Multipoint VPN daemon
2018-11-27 21:50:24 +00:00
# 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
2018-03-20 22:07:32 +00:00
Requires: pam, /etc/pam.d/passwd
%description -n kronosnetd
2018-11-27 21:50:24 +00:00
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.
2018-03-20 22:07:32 +00:00
%post -n kronosnetd
2019-04-04 04:57:15 +00:00
%systemd_post kronosnetd.service
getent group kronosnetadm >/dev/null || groupadd --force kronosnetadm
2018-03-20 22:07:32 +00:00
%preun -n kronosnetd
2019-04-04 04:57:15 +00:00
%systemd_preun kronosnetd.service
2018-03-20 22:07:32 +00:00
%files -n kronosnetd
2018-11-27 21:50:24 +00:00
%license COPYING.* COPYRIGHT
2018-03-20 22:07:32 +00:00
%dir %{_sysconfdir}/kronosnet
%dir %{_sysconfdir}/kronosnet/*
%config(noreplace) %{_sysconfdir}/sysconfig/kronosnetd
%config(noreplace) %{_sysconfdir}/pam.d/kronosnetd
%config(noreplace) %{_sysconfdir}/logrotate.d/kronosnetd
%{_unitdir}/kronosnetd.service
%{_sbindir}/*
%{_mandir}/man8/*
%endif
2019-04-04 04:57:15 +00:00
%if %{defined buildlibnozzle}
%package -n libnozzle1
2018-03-20 22:07:32 +00:00
Summary: Simple userland wrapper around kernel tap devices
License: LGPLv2+
2019-04-04 04:57:15 +00:00
%description -n libnozzle1
2018-11-27 21:50:24 +00:00
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.
2018-03-20 22:07:32 +00:00
2019-04-04 04:57:15 +00:00
%files -n libnozzle1
2018-03-20 22:07:32 +00:00
%license COPYING.* COPYRIGHT
2019-04-04 04:57:15 +00:00
%{_libdir}/libnozzle.so.*
%ldconfig_scriptlets -n libnozzle1
2018-03-20 22:07:32 +00:00
2019-04-04 04:57:15 +00:00
%package -n libnozzle1-devel
2018-03-20 22:07:32 +00:00
Summary: Simple userland wrapper around kernel tap devices (developer files)
License: LGPLv2+
2019-04-04 04:57:15 +00:00
Requires: libnozzle1 = %{version}-%{release}
2018-03-20 22:07:32 +00:00
Requires: pkgconfig
2019-04-04 04:57:15 +00:00
%description -n libnozzle1-devel
2018-11-27 21:50:24 +00:00
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.
2018-03-20 22:07:32 +00:00
2019-04-04 04:57:15 +00:00
%files -n libnozzle1-devel
2018-03-20 22:07:32 +00:00
%license COPYING.* COPYRIGHT
2019-04-04 04:57:15 +00:00
%{_libdir}/libnozzle.so
%{_includedir}/libnozzle.h
%{_libdir}/pkgconfig/libnozzle.pc
%{_mandir}/man3/nozzle*.3.gz
2018-03-20 22:07:32 +00:00
%endif
%package -n libknet1
2018-11-27 21:50:24 +00:00
Summary: Kronosnet core switching implementation
2018-03-20 22:07:32 +00:00
License: LGPLv2+
%description -n libknet1
2018-11-27 21:50:24 +00:00
The whole kronosnet core is implemented in this library.
Please refer to the not-yet-existing documentation for further
information.
2018-03-20 22:07:32 +00:00
%files -n libknet1
%license COPYING.* COPYRIGHT
%{_libdir}/libknet.so.*
%dir %{_libdir}/kronosnet
%ldconfig_scriptlets -n libknet1
2018-03-20 22:07:32 +00:00
%package -n libknet1-devel
Summary: Kronosnet core switching implementation (developer files)
License: LGPLv2+
Requires: libknet1%{_isa} = %{version}-%{release}
Requires: pkgconfig
%description -n libknet1-devel
2018-11-27 21:50:24 +00:00
The whole kronosnet core is implemented in this library.
Please refer to the not-yet-existing documentation for further
information.
2018-03-20 22:07:32 +00:00
%files -n libknet1-devel
2019-04-04 04:57:15 +00:00
%license COPYING.* COPYRIGHT
2018-03-20 22:07:32 +00:00
%{_libdir}/libknet.so
%{_includedir}/libknet.h
%{_libdir}/pkgconfig/libknet.pc
2018-11-27 21:50:24 +00:00
%if %{defined buildmanpages}
%{_mandir}/man3/knet*.3.gz
%endif
2018-03-20 22:07:32 +00:00
%if %{defined buildcryptonss}
%package -n libknet1-crypto-nss-plugin
2019-04-04 04:57:15 +00:00
Summary: Provides libknet1 nss support
2018-03-20 22:07:32 +00:00
License: LGPLv2+
Requires: libknet1%{_isa} = %{version}-%{release}
%description -n libknet1-crypto-nss-plugin
2019-04-04 04:57:15 +00:00
Provides NSS crypto support for libknet1.
2018-03-20 22:07:32 +00:00
%files -n libknet1-crypto-nss-plugin
%{_libdir}/kronosnet/crypto_nss.so
%endif
%if %{defined buildcryptoopenssl}
%package -n libknet1-crypto-openssl-plugin
2019-04-04 04:57:15 +00:00
Summary: Provides libknet1 openssl support
2018-03-20 22:07:32 +00:00
License: LGPLv2+
Requires: libknet1%{_isa} = %{version}-%{release}
%description -n libknet1-crypto-openssl-plugin
2019-04-04 04:57:15 +00:00
Provides OpenSSL crypto support for libknet1.
2018-03-20 22:07:32 +00:00
%files -n libknet1-crypto-openssl-plugin
%{_libdir}/kronosnet/crypto_openssl.so
%endif
%if %{defined buildcompresszlib}
%package -n libknet1-compress-zlib-plugin
2019-04-04 04:57:15 +00:00
Summary: Provides libknet1 zlib support
2018-03-20 22:07:32 +00:00
License: LGPLv2+
Requires: libknet1%{_isa} = %{version}-%{release}
%description -n libknet1-compress-zlib-plugin
2019-04-04 04:57:15 +00:00
Provides zlib compression support for libknet1.
2018-03-20 22:07:32 +00:00
%files -n libknet1-compress-zlib-plugin
%{_libdir}/kronosnet/compress_zlib.so
%endif
%if %{defined buildcompresslz4}
%package -n libknet1-compress-lz4-plugin
2019-04-04 04:57:15 +00:00
Summary: Provides libknet1 lz4 and lz4hc support
2018-03-20 22:07:32 +00:00
License: LGPLv2+
Requires: libknet1%{_isa} = %{version}-%{release}
%description -n libknet1-compress-lz4-plugin
2019-04-04 04:57:15 +00:00
Provides lz4 and lz4hc compression support for libknet1.
2018-03-20 22:07:32 +00:00
%files -n libknet1-compress-lz4-plugin
%{_libdir}/kronosnet/compress_lz4.so
%{_libdir}/kronosnet/compress_lz4hc.so
%endif
%if %{defined buildcompresslzo2}
%package -n libknet1-compress-lzo2-plugin
2019-04-04 04:57:15 +00:00
Summary: Provides libknet1 lzo2 support
2018-03-20 22:07:32 +00:00
License: LGPLv2+
Requires: libknet1%{_isa} = %{version}-%{release}
%description -n libknet1-compress-lzo2-plugin
2019-04-04 04:57:15 +00:00
Provides lzo2 compression support for libknet1.
2018-03-20 22:07:32 +00:00
%files -n libknet1-compress-lzo2-plugin
%{_libdir}/kronosnet/compress_lzo2.so
%endif
%if %{defined buildcompresslzma}
%package -n libknet1-compress-lzma-plugin
2019-04-04 04:57:15 +00:00
Summary: Provides libknet1 lzma support
2018-03-20 22:07:32 +00:00
License: LGPLv2+
Requires: libknet1%{_isa} = %{version}-%{release}
%description -n libknet1-compress-lzma-plugin
2019-04-04 04:57:15 +00:00
Provides lzma compression support for libknet1.
2018-03-20 22:07:32 +00:00
%files -n libknet1-compress-lzma-plugin
%{_libdir}/kronosnet/compress_lzma.so
%endif
%if %{defined buildcompressbzip2}
%package -n libknet1-compress-bzip2-plugin
2019-04-04 04:57:15 +00:00
Summary: Provides libknet1 bzip2 support
2018-03-20 22:07:32 +00:00
License: LGPLv2+
Requires: libknet1%{_isa} = %{version}-%{release}
%description -n libknet1-compress-bzip2-plugin
2019-04-04 04:57:15 +00:00
Provides bzip2 compression support for libknet1.
2018-03-20 22:07:32 +00:00
%files -n libknet1-compress-bzip2-plugin
%{_libdir}/kronosnet/compress_bzip2.so
%endif
%package -n libknet1-crypto-plugins-all
2019-04-04 04:57:15 +00:00
Summary: Provides libknet1 crypto plugins meta package
2018-03-20 22:07:32 +00:00
License: LGPLv2+
%if %{defined buildcryptonss}
Requires: libknet1-crypto-nss-plugin%{_isa} = %{version}-%{release}
%endif
%if %{defined buildcryptoopenssl}
Requires: libknet1-crypto-openssl-plugin%{_isa} = %{version}-%{release}
%endif
%description -n libknet1-crypto-plugins-all
2019-04-04 04:57:15 +00:00
Provides meta package to install all of libknet1 crypto plugins
2018-03-20 22:07:32 +00:00
%files -n libknet1-crypto-plugins-all
%package -n libknet1-compress-plugins-all
2019-04-04 04:57:15 +00:00
Summary: Provides libknet1 compress plugins meta package
2018-03-20 22:07:32 +00:00
License: LGPLv2+
%if %{defined buildcompresszlib}
Requires: libknet1-compress-zlib-plugin%{_isa} = %{version}-%{release}
%endif
%if %{defined buildcompresslz4}
Requires: libknet1-compress-lz4-plugin%{_isa} = %{version}-%{release}
%endif
%if %{defined buildcompresslzo2}
Requires: libknet1-compress-lzo2-plugin%{_isa} = %{version}-%{release}
%endif
%if %{defined buildcompresslzma}
Requires: libknet1-compress-lzma-plugin%{_isa} = %{version}-%{release}
%endif
%if %{defined buildcompressbzip2}
Requires: libknet1-compress-bzip2-plugin%{_isa} = %{version}-%{release}
%endif
%description -n libknet1-compress-plugins-all
2019-04-04 04:57:15 +00:00
Meta package to install all of libknet1 compress plugins
2018-03-20 22:07:32 +00:00
%files -n libknet1-compress-plugins-all
%package -n libknet1-plugins-all
2019-04-04 04:57:15 +00:00
Summary: Provides libknet1 plugins meta package
2018-03-20 22:07:32 +00:00
License: LGPLv2+
Requires: libknet1-compress-plugins-all%{_isa} = %{version}-%{release}
Requires: libknet1-crypto-plugins-all%{_isa} = %{version}-%{release}
%description -n libknet1-plugins-all
2019-04-04 04:57:15 +00:00
Meta package to install all of libknet1 plugins
2018-03-20 22:07:32 +00:00
%files -n libknet1-plugins-all
2019-04-04 04:57:15 +00:00
%if %{with installtests}
%package -n kronosnet-tests
Group: System Environment/Libraries
Summary: Provides kronosnet test suite
Requires: libknet1 = %{version}-%{release}
%description -n kronosnet-tests
This package contains all the libknet and libnozzle test suite
%files -n kronosnet-tests
%defattr(-,root,root,-)
%{_libdir}/kronosnet/tests/*
%endif
2018-03-20 22:07:32 +00:00
%if %{with rpmdebuginfo}
%debug_package
%endif
%changelog
* Thu May 09 2019 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.9-1
- New upstream release
* Wed May 08 2019 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.8-2
- Fix ldconfig scriptlet (Resolves rhbz#1699074)
- Cleanup .gitignore (Resolves rhbz#1699093)
2019-04-04 04:57:15 +00:00
* Wed Apr 03 2019 Madison Kelly <mkelly@alteeve.ca> - 1.8-1
- Updated to upstream release v1.8.
2018-03-20 22:07:32 +00:00