]> git.proxmox.com Git - mirror_kronosnet.git/blame - kronosnet.spec.in
Merge pull request #250 from jfriesse/musl_fix
[mirror_kronosnet.git] / kronosnet.spec.in
CommitLineData
88add834
FDN
1###############################################################################
2###############################################################################
3##
ec84794b 4## Copyright (C) 2012-2019 Red Hat, Inc. All rights reserved.
88add834
FDN
5##
6## This copyrighted material is made available to anyone wishing to use,
7## modify, copy, or redistribute it subject to the terms and conditions
8## of the GNU General Public License v.2 or higher
9##
10###############################################################################
11###############################################################################
12
13# keep around ready for later user
07072a06
FDN
14%global alphatag @alphatag@
15%global numcomm @numcomm@
16%global dirty @dirty@
45ede404
FDN
17
18# set defaults from ./configure invokation
20f9cc1e
FDN
19%@sctp@ sctp
20%@nss@ nss
62c0a9f9 21%@openssl@ openssl
20f9cc1e
FDN
22%@zlib@ zlib
23%@lz4@ lz4
24%@lzo2@ lzo2
25%@lzma@ lzma
26%@bzip2@ bzip2
2754268f 27%@zstd@ zstd
45ede404 28%@kronosnetd@ kronosnetd
de3d1e09 29%@libnozzle@ libnozzle
8f8384a0 30%@runautogen@ runautogen
73677ca3
BL
31%@rpmdebuginfo@ rpmdebuginfo
32%@overriderpmdebuginfo@ overriderpmdebuginfo
2414bd86 33%@buildman@ buildman
ccf9dee1 34%@installtests@ installtests
73677ca3
BL
35
36%if %{with overriderpmdebuginfo}
37%undefine _enable_debug_packages
38%endif
45ede404 39
923728d3
FDN
40# main (empty) package
41# http://www.rpm.org/max-rpm/s1-rpm-subpack-spec-file-changes.html
42
43Name: kronosnet
44Summary: Multipoint-to-Multipoint VPN daemon
07072a06
FDN
45Version: @version@
46Release: 1%{?numcomm:.%{numcomm}}%{?alphatag:.%{alphatag}}%{?dirty:.%{dirty}}%{?dist}
88add834 47License: GPLv2+ and LGPLv2+
5b8a04ea
FDN
48URL: https://kronosnet.org
49Source0: https://kronosnet.org/releases/%{name}-%{version}%{?numcomm:.%{numcomm}}%{?alphatag:-%{alphatag}}%{?dirty:-%{dirty}}.tar.gz
88add834 50
88add834 51# Build dependencies
dc8bbd6e 52BuildRequires: gcc
bcd6b8a5 53# required to build man pages
9f7c07fc 54%if %{with buildman}
28a1117e 55BuildRequires: libqb-devel libxml2-devel doxygen
2414bd86 56%endif
9f7c07fc 57%if %{with sctp}
20f9cc1e
FDN
58BuildRequires: lksctp-tools-devel
59%endif
9f7c07fc 60%if %{with nss}
cdc6fa42
FDN
61%if 0%{?suse_version}
62BuildRequires: mozilla-nss-devel
63%else
64BuildRequires: nss-devel
65%endif
20f9cc1e 66%endif
9f7c07fc 67%if %{with openssl}
cdc6fa42
FDN
68%if 0%{?suse_version}
69BuildRequires: libopenssl-devel
70%else
71BuildRequires: openssl-devel
72%endif
62c0a9f9 73%endif
9f7c07fc 74%if %{with zlib}
20f9cc1e
FDN
75BuildRequires: zlib-devel
76%endif
9f7c07fc 77%if %{with lz4}
cdc6fa42
FDN
78%if 0%{?suse_version}
79BuildRequires: liblz4-devel
80%else
81BuildRequires: lz4-devel
82%endif
20f9cc1e 83%endif
9f7c07fc 84%if %{with lzo2}
20f9cc1e
FDN
85BuildRequires: lzo-devel
86%endif
9f7c07fc 87%if %{with lzma}
20f9cc1e
FDN
88BuildRequires: xz-devel
89%endif
9f7c07fc 90%if %{with bzip2}
cdc6fa42
FDN
91%if 0%{?suse_version}
92BuildRequires: libbz2-devel
93%else
94BuildRequires: bzip2-devel
95%endif
20f9cc1e 96%endif
9f7c07fc 97%if %{with zstd}
2754268f
FDN
98BuildRequires: libzstd-devel
99%endif
9f7c07fc 100%if %{with kronosnetd}
bcd6b8a5 101BuildRequires: pam-devel
b01d08ab 102%endif
9f7c07fc 103%if %{with libnozzle}
504b0aa7
FDN
104BuildRequires: libnl3-devel
105%endif
9f7c07fc
FDN
106%if %{with runautogen}
107BuildRequires: autoconf automake libtool
8f8384a0 108%endif
88add834
FDN
109
110%prep
07072a06 111%setup -q -n %{name}-%{version}%{?numcomm:.%{numcomm}}%{?alphatag:-%{alphatag}}%{?dirty:-%{dirty}}
88add834
FDN
112
113%build
8f8384a0 114%if %{with runautogen}
a030ec4a 115./autogen.sh
8f8384a0
BL
116%endif
117
89c58e91 118%{configure} \
9f7c07fc 119%if %{with installtests}
ccf9dee1
FDN
120 --enable-install-tests \
121%else
122 --disable-install-tests \
123%endif
9f7c07fc 124%if %{with buildman}
2414bd86
FDN
125 --enable-man \
126%else
127 --disable-man \
128%endif
9f7c07fc 129%if %{with sctp}
20f9cc1e
FDN
130 --enable-libknet-sctp \
131%else
132 --disable-libknet-sctp \
133%endif
9f7c07fc 134%if %{with nss}
20f9cc1e
FDN
135 --enable-crypto-nss \
136%else
137 --disable-crypto-nss \
138%endif
9f7c07fc 139%if %{with openssl}
62c0a9f9
FDN
140 --enable-crypto-openssl \
141%else
142 --disable-crypto-openssl \
143%endif
9f7c07fc 144%if %{with zlib}
20f9cc1e
FDN
145 --enable-compress-zlib \
146%else
147 --disable-compress-zlib \
148%endif
9f7c07fc 149%if %{with lz4}
20f9cc1e
FDN
150 --enable-compress-lz4 \
151%else
152 --disable-compress-lz4 \
153%endif
9f7c07fc 154%if %{with lzo2}
20f9cc1e
FDN
155 --enable-compress-lzo2 \
156%else
157 --disable-compress-lzo2 \
158%endif
9f7c07fc 159%if %{with lzma}
20f9cc1e
FDN
160 --enable-compress-lzma \
161%else
162 --disable-compress-lzma \
163%endif
9f7c07fc 164%if %{with bzip2}
20f9cc1e
FDN
165 --enable-compress-bzip2 \
166%else
167 --disable-compress-bzip2 \
168%endif
9f7c07fc 169%if %{with zstd}
2754268f
FDN
170 --enable-compress-zstd \
171%else
172 --disable-compress-zstd \
173%endif
9f7c07fc 174%if %{with kronosnetd}
b01d08ab 175 --enable-kronosnetd \
9f7c07fc
FDN
176%else
177 --disable-kronosnetd \
b01d08ab 178%endif
9f7c07fc 179%if %{with libnozzle}
de3d1e09 180 --enable-libnozzle \
9f7c07fc
FDN
181%else
182 --disable-libnozzle \
b01d08ab 183%endif
2e687dd8 184 --with-initdefaultdir=%{_sysconfdir}/sysconfig/ \
2e687dd8 185 --with-systemddir=%{_unitdir}
88add834
FDN
186
187make %{_smp_mflags}
188
189%install
190rm -rf %{buildroot}
191make install DESTDIR=%{buildroot}
192
193# tree cleanup
194# remove static libraries
195find %{buildroot} -name "*.a" -exec rm {} \;
196# remove libtools leftovers
197find %{buildroot} -name "*.la" -exec rm {} \;
88b2c2ca 198
88b2c2ca
FDN
199# remove init scripts
200rm -rf %{buildroot}/etc/init.d
88b2c2ca 201
88add834 202# remove docs
923728d3 203rm -rf %{buildroot}/usr/share/doc/kronosnet
88add834 204
923728d3
FDN
205# main empty package
206%description
a030ec4a 207 The kronosnet source
923728d3 208
9f7c07fc 209%if %{with kronosnetd}
88add834 210## Runtime and subpackages section
923728d3 211%package -n kronosnetd
923728d3 212Summary: Multipoint-to-Multipoint VPN daemon
a030ec4a 213License: GPLv2+
88b2c2ca
FDN
214Requires(post): systemd-sysv
215Requires(post): systemd-units
216Requires(preun): systemd-units
217Requires(postun): systemd-units
a030ec4a
FDN
218Requires(post): shadow-utils
219Requires(preun): shadow-utils
3ab91219 220Requires: pam, /etc/pam.d/passwd
923728d3 221
88add834
FDN
222%description -n kronosnetd
223 The kronosnet daemon is a bridge between kronosnet switching engine
224 and kernel network tap devices, to create and administer a
225 distributed LAN over multipoint-to-multipoint VPNs.
226 The daemon does a poor attempt to provide a configure UI similar
227 to other known network devices/tools (Cisco, quagga).
228 Beside looking horrific, it allows runtime changes and
229 reconfiguration of the kronosnet(s) without daemon reload
230 or service disruption.
231
232%post -n kronosnetd
3e54f908 233%systemd_post kronosnetd.service
a030ec4a 234getent group @defaultadmgroup@ >/dev/null || groupadd --force --system @defaultadmgroup@
88add834
FDN
235
236%preun -n kronosnetd
3e54f908 237%systemd_preun kronosnetd.service
88add834
FDN
238
239%files -n kronosnetd
a030ec4a 240%license COPYING.* COPYRIGHT
88add834
FDN
241%dir %{_sysconfdir}/kronosnet
242%dir %{_sysconfdir}/kronosnet/*
2e687dd8 243%config(noreplace) %{_sysconfdir}/sysconfig/kronosnetd
3ab91219
FDN
244%config(noreplace) %{_sysconfdir}/pam.d/kronosnetd
245%config(noreplace) %{_sysconfdir}/logrotate.d/kronosnetd
88b2c2ca 246%{_unitdir}/kronosnetd.service
88add834
FDN
247%{_sbindir}/*
248%{_mandir}/man8/*
b01d08ab 249%endif
88add834 250
9f7c07fc 251%if %{with libnozzle}
de3d1e09 252%package -n libnozzle1
88add834 253Summary: Simple userland wrapper around kernel tap devices
a030ec4a 254License: LGPLv2+
88add834 255
de3d1e09 256%description -n libnozzle1
88add834
FDN
257 This is an over-engineered commodity library to manage a pool
258 of tap devices and provides the basic
259 pre-up.d/up.d/down.d/post-down.d infrastructure.
260
de3d1e09 261%files -n libnozzle1
a030ec4a 262%license COPYING.* COPYRIGHT
de3d1e09 263%{_libdir}/libnozzle.so.*
88add834 264
5ccbd016 265%if 0%{?ldconfig_scriptlets}
a030ec4a 266%ldconfig_scriptlets -n libnozzle1
5ccbd016
FDN
267%else
268%post -n libnozzle1 -p /sbin/ldconfig
269%postun -n libnozzle1 -p /sbin/ldconfig
270%endif
88add834 271
de3d1e09 272%package -n libnozzle1-devel
88add834 273Summary: Simple userland wrapper around kernel tap devices (developer files)
a030ec4a 274License: LGPLv2+
5b42103c 275Requires: libnozzle1%{_isa} = %{version}-%{release}
88add834
FDN
276Requires: pkgconfig
277
de3d1e09 278%description -n libnozzle1-devel
88add834
FDN
279 This is an over-engineered commodity library to manage a pool
280 of tap devices and provides the basic
281 pre-up.d/up.d/down.d/post-down.d infrastructure.
282
de3d1e09 283%files -n libnozzle1-devel
a030ec4a 284%license COPYING.* COPYRIGHT
de3d1e09
FDN
285%{_libdir}/libnozzle.so
286%{_includedir}/libnozzle.h
287%{_libdir}/pkgconfig/libnozzle.pc
9f7c07fc 288%if %{with buildman}
8b61069e 289%{_mandir}/man3/nozzle*.3.gz
b01d08ab 290%endif
9f7c07fc 291%endif
88add834 292
96365a53 293%package -n libknet1
88add834 294Summary: Kronosnet core switching implementation
a030ec4a 295License: LGPLv2+
88add834 296
96365a53 297%description -n libknet1
88add834
FDN
298 The whole kronosnet core is implemented in this library.
299 Please refer to the not-yet-existing documentation for further
300 information.
301
96365a53 302%files -n libknet1
a030ec4a 303%license COPYING.* COPYRIGHT
88add834 304%{_libdir}/libknet.so.*
f746849f 305%dir %{_libdir}/kronosnet
ecae1984 306
5ccbd016 307%if 0%{?ldconfig_scriptlets}
a030ec4a 308%ldconfig_scriptlets -n libknet1
5ccbd016
FDN
309%else
310%post -n libknet1 -p /sbin/ldconfig
311%postun -n libknet1 -p /sbin/ldconfig
312%endif
88add834 313
96365a53 314%package -n libknet1-devel
88add834 315Summary: Kronosnet core switching implementation (developer files)
a030ec4a 316License: LGPLv2+
5b42103c 317Requires: libknet1%{_isa} = %{version}-%{release}
88add834
FDN
318Requires: pkgconfig
319
96365a53 320%description -n libknet1-devel
88add834
FDN
321 The whole kronosnet core is implemented in this library.
322 Please refer to the not-yet-existing documentation for further
323 information.
324
96365a53 325%files -n libknet1-devel
a030ec4a 326%license COPYING.* COPYRIGHT
88add834
FDN
327%{_libdir}/libknet.so
328%{_includedir}/libknet.h
329%{_libdir}/pkgconfig/libknet.pc
9f7c07fc 330%if %{with buildman}
31945b18 331%{_mandir}/man3/knet*.3.gz
2414bd86 332%endif
88add834 333
9f7c07fc 334%if %{with nss}
a88e5922 335%package -n libknet1-crypto-nss-plugin
a030ec4a
FDN
336Summary: Provides libknet1 nss support
337License: LGPLv2+
5b42103c 338Requires: libknet1%{_isa} = %{version}-%{release}
a88e5922
FDN
339
340%description -n libknet1-crypto-nss-plugin
a030ec4a 341 Provides NSS crypto support for libknet1.
a88e5922
FDN
342
343%files -n libknet1-crypto-nss-plugin
a88e5922
FDN
344%{_libdir}/kronosnet/crypto_nss.so
345%endif
346
9f7c07fc 347%if %{with openssl}
a88e5922 348%package -n libknet1-crypto-openssl-plugin
a030ec4a
FDN
349Summary: Provides libknet1 openssl support
350License: LGPLv2+
5b42103c 351Requires: libknet1%{_isa} = %{version}-%{release}
a88e5922
FDN
352
353%description -n libknet1-crypto-openssl-plugin
a030ec4a 354 Provides OpenSSL crypto support for libknet1.
a88e5922
FDN
355
356%files -n libknet1-crypto-openssl-plugin
a88e5922
FDN
357%{_libdir}/kronosnet/crypto_openssl.so
358%endif
359
9f7c07fc 360%if %{with zlib}
a88e5922 361%package -n libknet1-compress-zlib-plugin
a030ec4a
FDN
362Summary: Provides libknet1 zlib support
363License: LGPLv2+
5b42103c 364Requires: libknet1%{_isa} = %{version}-%{release}
a88e5922
FDN
365
366%description -n libknet1-compress-zlib-plugin
a030ec4a 367 Provides zlib compression support for libknet1.
a88e5922
FDN
368
369%files -n libknet1-compress-zlib-plugin
a88e5922
FDN
370%{_libdir}/kronosnet/compress_zlib.so
371%endif
a030ec4a 372
9f7c07fc 373%if %{with lz4}
a88e5922 374%package -n libknet1-compress-lz4-plugin
a030ec4a
FDN
375Summary: Provides libknet1 lz4 and lz4hc support
376License: LGPLv2+
5b42103c 377Requires: libknet1%{_isa} = %{version}-%{release}
a88e5922
FDN
378
379%description -n libknet1-compress-lz4-plugin
a030ec4a 380 Provides lz4 and lz4hc compression support for libknet1.
a88e5922
FDN
381
382%files -n libknet1-compress-lz4-plugin
a88e5922
FDN
383%{_libdir}/kronosnet/compress_lz4.so
384%{_libdir}/kronosnet/compress_lz4hc.so
385%endif
386
9f7c07fc 387%if %{with lzo2}
a88e5922 388%package -n libknet1-compress-lzo2-plugin
a030ec4a
FDN
389Summary: Provides libknet1 lzo2 support
390License: LGPLv2+
5b42103c 391Requires: libknet1%{_isa} = %{version}-%{release}
a88e5922
FDN
392
393%description -n libknet1-compress-lzo2-plugin
a030ec4a 394 Provides lzo2 compression support for libknet1.
a88e5922
FDN
395
396%files -n libknet1-compress-lzo2-plugin
a88e5922
FDN
397%{_libdir}/kronosnet/compress_lzo2.so
398%endif
399
9f7c07fc 400%if %{with lzma}
a88e5922 401%package -n libknet1-compress-lzma-plugin
a030ec4a
FDN
402Summary: Provides libknet1 lzma support
403License: LGPLv2+
5b42103c 404Requires: libknet1%{_isa} = %{version}-%{release}
a88e5922
FDN
405
406%description -n libknet1-compress-lzma-plugin
a030ec4a 407 Provides lzma compression support for libknet1.
a88e5922
FDN
408
409%files -n libknet1-compress-lzma-plugin
a88e5922
FDN
410%{_libdir}/kronosnet/compress_lzma.so
411%endif
412
9f7c07fc 413%if %{with bzip2}
a88e5922 414%package -n libknet1-compress-bzip2-plugin
a030ec4a
FDN
415Summary: Provides libknet1 bzip2 support
416License: LGPLv2+
5b42103c 417Requires: libknet1%{_isa} = %{version}-%{release}
a88e5922
FDN
418
419%description -n libknet1-compress-bzip2-plugin
a030ec4a 420 Provides bzip2 compression support for libknet1.
a88e5922
FDN
421
422%files -n libknet1-compress-bzip2-plugin
a88e5922
FDN
423%{_libdir}/kronosnet/compress_bzip2.so
424%endif
425
9f7c07fc 426%if %{with zstd}
2754268f 427%package -n libknet1-compress-zstd-plugin
a030ec4a
FDN
428Summary: Provides libknet1 zstd support
429License: LGPLv2+
5b42103c 430Requires: libknet1%{_isa} = %{version}-%{release}
2754268f
FDN
431
432%description -n libknet1-compress-zstd-plugin
a030ec4a 433 Provides zstd compression support for libknet1.
2754268f
FDN
434
435%files -n libknet1-compress-zstd-plugin
2754268f
FDN
436%{_libdir}/kronosnet/compress_zstd.so
437%endif
438
a88e5922 439%package -n libknet1-crypto-plugins-all
a030ec4a
FDN
440Summary: Provides libknet1 crypto plugins meta package
441License: LGPLv2+
9f7c07fc 442%if %{with nss}
5b42103c 443Requires: libknet1-crypto-nss-plugin%{_isa} = %{version}-%{release}
a88e5922 444%endif
9f7c07fc 445%if %{with openssl}
5b42103c 446Requires: libknet1-crypto-openssl-plugin%{_isa} = %{version}-%{release}
a88e5922
FDN
447%endif
448
449%description -n libknet1-crypto-plugins-all
a030ec4a 450 Provides meta package to install all of libknet1 crypto plugins
a88e5922
FDN
451
452%files -n libknet1-crypto-plugins-all
453
454%package -n libknet1-compress-plugins-all
a030ec4a
FDN
455Summary: Provides libknet1 compress plugins meta package
456License: LGPLv2+
9f7c07fc 457%if %{with zlib}
5b42103c 458Requires: libknet1-compress-zlib-plugin%{_isa} = %{version}-%{release}
a88e5922 459%endif
9f7c07fc 460%if %{with lz4}
5b42103c 461Requires: libknet1-compress-lz4-plugin%{_isa} = %{version}-%{release}
a88e5922 462%endif
9f7c07fc 463%if %{with lzo2}
5b42103c 464Requires: libknet1-compress-lzo2-plugin%{_isa} = %{version}-%{release}
a88e5922 465%endif
9f7c07fc 466%if %{with lzma}
5b42103c 467Requires: libknet1-compress-lzma-plugin%{_isa} = %{version}-%{release}
a88e5922 468%endif
9f7c07fc 469%if %{with bzip2}
5b42103c 470Requires: libknet1-compress-bzip2-plugin%{_isa} = %{version}-%{release}
a88e5922 471%endif
9f7c07fc 472%if %{with zstd}
5b42103c 473Requires: libknet1-compress-zstd-plugin%{_isa} = %{version}-%{release}
2754268f 474%endif
a88e5922
FDN
475
476%description -n libknet1-compress-plugins-all
ecae1984 477 Meta package to install all of libknet1 compress plugins
a88e5922
FDN
478
479%files -n libknet1-compress-plugins-all
480
481%package -n libknet1-plugins-all
ecae1984 482Summary: Provides libknet1 plugins meta package
a030ec4a 483License: LGPLv2+
5b42103c
FDN
484Requires: libknet1-compress-plugins-all%{_isa} = %{version}-%{release}
485Requires: libknet1-crypto-plugins-all%{_isa} = %{version}-%{release}
a88e5922
FDN
486
487%description -n libknet1-plugins-all
ecae1984 488 Meta package to install all of libknet1 plugins
a88e5922
FDN
489
490%files -n libknet1-plugins-all
491
ccf9dee1
FDN
492%if %{with installtests}
493%package -n kronosnet-tests
ecae1984 494Summary: Provides kronosnet test suite
a030ec4a 495License: GPLv2+
5b42103c 496Requires: libknet1%{_isa} = %{version}-%{release}
ccf9dee1
FDN
497
498%description -n kronosnet-tests
a030ec4a 499 This package contains all the libknet and libnozzle test suite.
ccf9dee1
FDN
500
501%files -n kronosnet-tests
ccf9dee1
FDN
502%{_libdir}/kronosnet/tests/*
503%endif
504
73677ca3
BL
505%if %{with rpmdebuginfo}
506%debug_package
507%endif
508
88add834 509%changelog
07072a06 510* @date@ Autotools generated version <nobody@nowhere.org> - @version@-1-@numcomm@.@alphatag@.@dirty@
87e9f224 511- These aren't the droids you're looking for.
88add834 512