509 lines
13 KiB
RPMSpec
509 lines
13 KiB
RPMSpec
###############################################################################
|
|
###############################################################################
|
|
##
|
|
## Copyright (C) 2012-2019 Red Hat, Inc. All rights reserved.
|
|
##
|
|
## 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
|
|
##
|
|
###############################################################################
|
|
###############################################################################
|
|
|
|
# set defaults from ./configure invocation
|
|
%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
|
|
%bcond_without libnozzle
|
|
%bcond_with runautogen
|
|
%bcond_with rpmdebuginfo
|
|
%bcond_with overriderpmdebuginfo
|
|
%bcond_without buildman
|
|
%bcond_with installtests
|
|
|
|
%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
|
|
%if %{with libnozzle}
|
|
%global buildlibnozzle 1
|
|
%endif
|
|
%if %{with kronosnetd}
|
|
%global buildlibnozzle 1
|
|
%global buildkronosnetd 1
|
|
%endif
|
|
%if %{with runautogen}
|
|
%global buildautogen 1
|
|
%endif
|
|
%if %{with buildman}
|
|
%global buildmanpages 1
|
|
%endif
|
|
%if %{with installtests}
|
|
%global installtestsuite 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.8
|
|
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
|
|
%if %{defined buildmanpages}
|
|
BuildRequires: libqb-devel libxml2-devel doxygen
|
|
%endif
|
|
%if %{defined buildsctp}
|
|
BuildRequires: lksctp-tools-devel
|
|
%endif
|
|
%if %{defined buildcryptonss}
|
|
BuildRequires: nss-devel
|
|
%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
|
|
%if %{defined buildlibnozzle}
|
|
BuildRequires: libnl3-devel
|
|
%endif
|
|
%if %{defined buildautogen}
|
|
BuildRequires: autoconf
|
|
BuildRequires: automake
|
|
BuildRequires: libtool
|
|
%endif
|
|
|
|
%prep
|
|
%setup -q -n %{name}-%{version}
|
|
|
|
%build
|
|
%if %{with runautogen}
|
|
./autogen.sh
|
|
%endif
|
|
|
|
%{configure} \
|
|
%if %{defined installtestsuite}
|
|
--enable-install-tests \
|
|
%else
|
|
--disable-install-tests \
|
|
%endif
|
|
%if %{defined buildmanpages}
|
|
--enable-man \
|
|
%else
|
|
--disable-man \
|
|
%endif
|
|
%if %{defined buildsctp}
|
|
--enable-libknet-sctp \
|
|
%else
|
|
--disable-libknet-sctp \
|
|
%endif
|
|
%if %{defined buildcryptonss}
|
|
--enable-crypto-nss \
|
|
%else
|
|
--disable-crypto-nss \
|
|
%endif
|
|
%if %{defined buildcryptoopenssl}
|
|
--enable-crypto-openssl \
|
|
%else
|
|
--disable-crypto-openssl \
|
|
%endif
|
|
%if %{defined buildcompresszlib}
|
|
--enable-compress-zlib \
|
|
%else
|
|
--disable-compress-zlib \
|
|
%endif
|
|
%if %{defined buildcompresslz4}
|
|
--enable-compress-lz4 \
|
|
%else
|
|
--disable-compress-lz4 \
|
|
%endif
|
|
%if %{defined buildcompresslzo2}
|
|
--enable-compress-lzo2 \
|
|
%else
|
|
--disable-compress-lzo2 \
|
|
%endif
|
|
%if %{defined buildcompresslzma}
|
|
--enable-compress-lzma \
|
|
%else
|
|
--disable-compress-lzma \
|
|
%endif
|
|
%if %{defined buildcompressbzip2}
|
|
--enable-compress-bzip2 \
|
|
%else
|
|
--disable-compress-bzip2 \
|
|
%endif
|
|
%if %{defined buildkronosnetd}
|
|
--enable-kronosnetd \
|
|
%endif
|
|
%if %{defined buildlibnozzle}
|
|
--enable-libnozzle \
|
|
%endif
|
|
--with-initdefaultdir=%{_sysconfdir}/sysconfig/ \
|
|
%if %{defined _unitdir}
|
|
--with-systemddir=%{_unitdir}
|
|
%else
|
|
--with-initddir=%{_sysconfdir}/rc.d/init.d/
|
|
%endif
|
|
|
|
make %{_smp_mflags}
|
|
|
|
%install
|
|
rm -rf %{buildroot}
|
|
make install DESTDIR=%{buildroot}
|
|
|
|
# tree cleanup
|
|
# remove static libraries
|
|
find %{buildroot} -name "*.a" -exec rm {} \;
|
|
# remove libtools leftovers
|
|
find %{buildroot} -name "*.la" -exec rm {} \;
|
|
|
|
# handle systemd vs init script
|
|
%if %{defined _unitdir}
|
|
# remove init scripts
|
|
rm -rf %{buildroot}/etc/init.d
|
|
%else
|
|
# remove systemd specific bits
|
|
find %{buildroot} -name "*.service" -exec rm {} \;
|
|
%endif
|
|
|
|
# remove docs
|
|
rm -rf %{buildroot}/usr/share/doc/kronosnet
|
|
|
|
# main empty package
|
|
%description
|
|
The kronosnet source
|
|
|
|
%if %{defined buildkronosnetd}
|
|
## Runtime and subpackages section
|
|
%package -n kronosnetd
|
|
Summary: Multipoint-to-Multipoint VPN daemon
|
|
# 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
|
|
|
|
%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.
|
|
|
|
%post -n kronosnetd
|
|
%systemd_post kronosnetd.service
|
|
getent group kronosnetadm >/dev/null || groupadd --force kronosnetadm
|
|
|
|
%preun -n kronosnetd
|
|
%systemd_preun kronosnetd.service
|
|
|
|
%files -n kronosnetd
|
|
%license COPYING.* COPYRIGHT
|
|
%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
|
|
|
|
%if %{defined buildlibnozzle}
|
|
%package -n libnozzle1
|
|
Summary: Simple userland wrapper around kernel tap devices
|
|
License: LGPLv2+
|
|
|
|
%description -n libnozzle1
|
|
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 libnozzle1
|
|
%license COPYING.* COPYRIGHT
|
|
%{_libdir}/libnozzle.so.*
|
|
|
|
%post -n libnozzle1 -p /sbin/ldconfig
|
|
|
|
%postun -n libnozzle1 -p /sbin/ldconfig
|
|
|
|
%package -n libnozzle1-devel
|
|
Summary: Simple userland wrapper around kernel tap devices (developer files)
|
|
License: LGPLv2+
|
|
Requires: libnozzle1 = %{version}-%{release}
|
|
Requires: pkgconfig
|
|
|
|
%description -n libnozzle1-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.
|
|
|
|
%files -n libnozzle1-devel
|
|
%license COPYING.* COPYRIGHT
|
|
%{_libdir}/libnozzle.so
|
|
%{_includedir}/libnozzle.h
|
|
%{_libdir}/pkgconfig/libnozzle.pc
|
|
%{_mandir}/man3/nozzle*.3.gz
|
|
%endif
|
|
|
|
%package -n libknet1
|
|
Summary: Kronosnet core switching implementation
|
|
License: LGPLv2+
|
|
|
|
%description -n libknet1
|
|
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
|
|
|
|
%post -n libknet1 -p /sbin/ldconfig
|
|
|
|
%postun -n libknet1 -p /sbin/ldconfig
|
|
|
|
%package -n libknet1-devel
|
|
Summary: Kronosnet core switching implementation (developer files)
|
|
License: LGPLv2+
|
|
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.
|
|
|
|
%files -n libknet1-devel
|
|
%license COPYING.* COPYRIGHT
|
|
%{_libdir}/libknet.so
|
|
%{_includedir}/libknet.h
|
|
%{_libdir}/pkgconfig/libknet.pc
|
|
%if %{defined buildmanpages}
|
|
%{_mandir}/man3/knet*.3.gz
|
|
%endif
|
|
|
|
%if %{defined buildcryptonss}
|
|
%package -n libknet1-crypto-nss-plugin
|
|
Summary: Provides libknet1 nss support
|
|
License: LGPLv2+
|
|
Requires: libknet1%{_isa} = %{version}-%{release}
|
|
|
|
%description -n libknet1-crypto-nss-plugin
|
|
Provides NSS crypto support for libknet1.
|
|
|
|
%files -n libknet1-crypto-nss-plugin
|
|
%{_libdir}/kronosnet/crypto_nss.so
|
|
%endif
|
|
|
|
%if %{defined buildcryptoopenssl}
|
|
%package -n libknet1-crypto-openssl-plugin
|
|
Summary: Provides libknet1 openssl support
|
|
License: LGPLv2+
|
|
Requires: libknet1%{_isa} = %{version}-%{release}
|
|
|
|
%description -n libknet1-crypto-openssl-plugin
|
|
Provides OpenSSL crypto support for libknet1.
|
|
|
|
%files -n libknet1-crypto-openssl-plugin
|
|
%{_libdir}/kronosnet/crypto_openssl.so
|
|
%endif
|
|
|
|
%if %{defined buildcompresszlib}
|
|
%package -n libknet1-compress-zlib-plugin
|
|
Summary: Provides libknet1 zlib support
|
|
License: LGPLv2+
|
|
Requires: libknet1%{_isa} = %{version}-%{release}
|
|
|
|
%description -n libknet1-compress-zlib-plugin
|
|
Provides 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: Provides libknet1 lz4 and lz4hc support
|
|
License: LGPLv2+
|
|
Requires: libknet1%{_isa} = %{version}-%{release}
|
|
|
|
%description -n libknet1-compress-lz4-plugin
|
|
Provides lz4 and lz4hc compression support for libknet1.
|
|
|
|
%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
|
|
Summary: Provides libknet1 lzo2 support
|
|
License: LGPLv2+
|
|
Requires: libknet1%{_isa} = %{version}-%{release}
|
|
|
|
%description -n libknet1-compress-lzo2-plugin
|
|
Provides lzo2 compression support for libknet1.
|
|
|
|
%files -n libknet1-compress-lzo2-plugin
|
|
%{_libdir}/kronosnet/compress_lzo2.so
|
|
%endif
|
|
|
|
%if %{defined buildcompresslzma}
|
|
%package -n libknet1-compress-lzma-plugin
|
|
Summary: Provides libknet1 lzma support
|
|
License: LGPLv2+
|
|
Requires: libknet1%{_isa} = %{version}-%{release}
|
|
|
|
%description -n libknet1-compress-lzma-plugin
|
|
Provides lzma compression support for libknet1.
|
|
|
|
%files -n libknet1-compress-lzma-plugin
|
|
%{_libdir}/kronosnet/compress_lzma.so
|
|
%endif
|
|
|
|
%if %{defined buildcompressbzip2}
|
|
%package -n libknet1-compress-bzip2-plugin
|
|
Summary: Provides libknet1 bzip2 support
|
|
License: LGPLv2+
|
|
Requires: libknet1%{_isa} = %{version}-%{release}
|
|
|
|
%description -n libknet1-compress-bzip2-plugin
|
|
Provides bzip2 compression support for libknet1.
|
|
|
|
%files -n libknet1-compress-bzip2-plugin
|
|
%{_libdir}/kronosnet/compress_bzip2.so
|
|
%endif
|
|
|
|
%package -n libknet1-crypto-plugins-all
|
|
Summary: Provides libknet1 crypto plugins meta package
|
|
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
|
|
Provides meta package to install all of libknet1 crypto plugins
|
|
|
|
%files -n libknet1-crypto-plugins-all
|
|
|
|
%package -n libknet1-compress-plugins-all
|
|
Summary: Provides libknet1 compress plugins meta package
|
|
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
|
|
Meta package to install all of libknet1 compress plugins
|
|
|
|
%files -n libknet1-compress-plugins-all
|
|
|
|
%package -n libknet1-plugins-all
|
|
Summary: Provides 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
|
|
|
|
%files -n libknet1-plugins-all
|
|
|
|
%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
|
|
|
|
%if %{with rpmdebuginfo}
|
|
%debug_package
|
|
%endif
|
|
|
|
%changelog
|
|
* Wed Apr 03 2019 Madison Kelly <mkelly@alteeve.ca> - 1.8-1
|
|
- Updated to upstream release v1.8.
|
|
|