1 ###############################################################################
2 ###############################################################################
4 ## Copyright (C) 2012-2018 Red Hat, Inc. All rights reserved.
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
10 ###############################################################################
11 ###############################################################################
13 # keep around ready for later user
14 %global alphatag @alphatag@
15 %global numcomm @numcomm@
18 # set defaults from ./configure invokation
27 %@kronosnetd@ kronosnetd
28 %@libnozzle@ libnozzle
29 %@runautogen@ runautogen
30 %@rpmdebuginfo@ rpmdebuginfo
31 %@overriderpmdebuginfo@ overriderpmdebuginfo
33 %@installtests@ installtests
35 %if %{with overriderpmdebuginfo}
36 %undefine _enable_debug_packages
43 %global buildcryptonss
1
46 %global buildcryptoopenssl
1
49 %global buildcompresszlib
1
52 %global buildcompresslz4
1
55 %global buildcompresslzo2
1
58 %global buildcompresslzma
1
61 %global buildcompressbzip2
1
64 %global buildlibnozzle
1
66 %if %{with kronosnetd}
67 %global buildlibnozzle
1
68 %global buildkronosnetd
1
70 %if %{with runautogen}
71 %global buildautogen
1
74 %global buildmanpages
1
76 %if %{with installtests}
77 %global installtestsuite
1
80 # main (empty) package
81 # http://www.rpm.org/max-rpm/s1-rpm-subpack-spec-file-changes.html
84 Summary: Multipoint
-to
-Multipoint VPN daemon
86 Release: 1%{?numcomm:.%{numcomm}}%{?alphatag:.%{alphatag}}%{?dirty:.%{dirty}}%{?dist}
87 License: GPLv2
+ and LGPLv2
+
88 Group: System Environment
/Base
89 URL: https
://github.com
/kronosnet
/kronosnet
/
90 Source0: https
://github.com
/kronosnet
/kronosnet
/archive
/%{name}-%{version}%{?numcomm:.%{numcomm}}%{?alphatag:-%{alphatag}}%{?dirty:-%{dirty}}.tar.gz
94 BuildRoot: %
(mktemp
-ud
%{_tmppath}/%{name}-%{version}-%{release}-XXXXXX
)
98 # required to build man pages
99 %if %{defined buildmanpages}
100 BuildRequires
: libqb
-devel libxml2
-devel doxygen
102 %if %{defined buildsctp}
103 BuildRequires
: lksctp
-tools
-devel
105 %if %{defined buildcryptonss}
106 BuildRequires
: /usr
/include
/nss3
/nss.h
/usr
/include
/nspr4
/nspr.h
108 %if %{defined buildcryptoopenssl}
109 BuildRequires
: /usr
/include
/openssl
/conf.h
111 %if %{defined buildcompresszlib}
112 BuildRequires
: zlib
-devel
114 %if %{defined buildcompresslz4}
115 BuildRequires
: /usr
/include
/lz4hc.h
117 %if %{defined buildcompresslzo2}
118 BuildRequires
: lzo
-devel
120 %if %{defined buildcompresslzma}
121 BuildRequires
: xz
-devel
123 %if %{defined buildcompressbzip2}
124 BuildRequires
: /usr
/include
/bzlib.h
126 %if %{defined buildkronosnetd}
127 BuildRequires
: pam
-devel
129 %if %{defined buildlibnozzle}
130 BuildRequires
: libnl3
-devel
132 %if %{defined buildautogen}
133 BuildRequires
: autoconf
134 BuildRequires
: automake
135 BuildRequires
: libtool
139 %setup -q
-n
%{name}-%{version}%{?numcomm:.%{numcomm}}%{?alphatag:-%{alphatag}}%{?dirty:-%{dirty}}
142 %if %{with runautogen}
147 %if %{defined installtestsuite}
148 --enable-install-tests \
150 --disable
-install-tests \
152 %if %{defined buildmanpages}
157 %if %{defined buildsctp}
158 --enable-libknet
-sctp \
160 --disable
-libknet
-sctp \
162 %if %{defined buildcryptonss}
163 --enable-crypto
-nss \
165 --disable
-crypto
-nss \
167 %if %{defined buildcryptoopenssl}
168 --enable-crypto
-openssl \
170 --disable
-crypto
-openssl \
172 %if %{defined buildcompresszlib}
173 --enable-compress
-zlib \
175 --disable
-compress
-zlib \
177 %if %{defined buildcompresslz4}
178 --enable-compress
-lz4 \
180 --disable
-compress
-lz4 \
182 %if %{defined buildcompresslzo2}
183 --enable-compress
-lzo2 \
185 --disable
-compress
-lzo2 \
187 %if %{defined buildcompresslzma}
188 --enable-compress
-lzma \
190 --disable
-compress
-lzma \
192 %if %{defined buildcompressbzip2}
193 --enable-compress
-bzip2 \
195 --disable
-compress
-bzip2 \
197 %if %{defined buildkronosnetd}
198 --enable-kronosnetd \
200 %if %{defined buildlibnozzle}
203 --with
-initdefaultdir
=%{_sysconfdir}/sysconfig
/ \
204 %if %{defined _unitdir}
205 --with
-systemddir
=%{_unitdir}
207 --with
-initddir
=%{_sysconfdir}/rc.d
/init.d
/
214 make install DESTDIR
=%{buildroot}
217 # remove static libraries
218 find
%{buildroot} -name "*.a" -exec rm {} \
;
219 # remove libtools leftovers
220 find
%{buildroot} -name "*.la" -exec rm {} \
;
222 # handle systemd vs init script
223 %if %{defined _unitdir}
224 # remove init scripts
225 rm -rf
%{buildroot}/etc
/init.d
227 # remove systemd specific bits
228 find
%{buildroot} -name "*.service" -exec rm {} \
;
232 rm -rf
%{buildroot}/usr
/share
/doc
/kronosnet
241 %if %{defined buildkronosnetd}
242 ## Runtime and subpackages section
243 %package -n kronosnetd
244 Group: System Environment
/Base
245 Summary: Multipoint
-to
-Multipoint VPN daemon
246 %if %{defined _unitdir}
247 # Needed for systemd unit
248 Requires(post
): systemd
-sysv
249 Requires(post
): systemd
-units
250 Requires(preun
): systemd
-units
251 Requires(postun
): systemd
-units
253 Requires(post
): chkconfig
254 Requires(preun
): chkconfig
, initscripts
256 Requires(post
): shadow
-utils
257 Requires(preun
): shadow
-utils
258 Requires: pam
, /etc
/pam.d
/passwd
260 %description -n kronosnetd
261 The kronosnet daemon is a bridge between kronosnet switching engine
262 and kernel network tap devices
, to create and administer a
263 distributed LAN over multipoint
-to
-multipoint VPNs.
264 The daemon does a poor attempt to provide a configure UI similar
265 to other known network devices
/tools
(Cisco
, quagga
).
266 Beside looking horrific
, it allows runtime changes and
267 reconfiguration of the kronosnet
(s
) without daemon reload
268 or service disruption.
271 %if %{defined _unitdir}
272 %if 0%{?systemd_post:1}
273 %systemd_post kronosnetd.service
275 /bin
/systemctl daemon
-reload
>/dev
/null
2>&1 ||
:
278 /sbin
/chkconfig
--add kronosnetd
280 /usr
/sbin
/groupadd
--force
--system @defaultadmgroup@
283 %if %{defined _unitdir}
284 %if 0%{?systemd_preun:1}
285 %systemd_preun kronosnetd.service
287 if [ "$
1"
-eq
0 ]; then
288 /bin
/systemctl
--no
-reload disable kronosnetd.service
289 /bin
/systemctl stop kronosnetd.service
>/dev
/null
2>&1
293 if [ "$
1"
= 0 ]; then
294 /sbin
/service kronosnetd stop
>/dev
/null
2>&1
295 /sbin
/chkconfig
--del kronosnetd
300 %defattr(-,root
,root
,-)
301 %doc COPYING.
* COPYRIGHT
302 %dir %{_sysconfdir}/kronosnet
303 %dir %{_sysconfdir}/kronosnet
/*
304 %config(noreplace
) %{_sysconfdir}/sysconfig
/kronosnetd
305 %config(noreplace
) %{_sysconfdir}/pam.d
/kronosnetd
306 %config(noreplace
) %{_sysconfdir}/logrotate.d
/kronosnetd
307 %if %{defined _unitdir}
308 %{_unitdir}/kronosnetd.service
310 %config(noreplace
) %{_sysconfdir}/rc.d
/init.d
/kronosnetd
316 %if %{defined buildlibnozzle}
317 %package -n libnozzle1
318 Group: System Environment
/Libraries
319 Summary: Simple userland wrapper around kernel tap devices
321 %description -n libnozzle1
322 This is an over
-engineered commodity library to manage a pool
323 of tap devices and provides the basic
324 pre
-up.d
/up.d
/down.d
/post
-down.d infrastructure.
327 %defattr(-,root
,root
,-)
328 %doc COPYING.
* COPYRIGHT
329 %{_libdir}/libnozzle.so.
*
331 %post -n libnozzle1
-p
/sbin
/ldconfig
333 %postun -n libnozzle1
-p
/sbin
/ldconfig
335 %package -n libnozzle1
-devel
336 Group: Development
/Libraries
337 Summary: Simple userland wrapper around kernel tap devices
(developer files
)
338 Requires: libnozzle1
= %{version}-%{release}
341 %description -n libnozzle1
-devel
342 This is an over
-engineered commodity library to manage a pool
343 of tap devices and provides the basic
344 pre
-up.d
/up.d
/down.d
/post
-down.d infrastructure.
346 %files -n libnozzle1
-devel
347 %defattr(-,root
,root
,-)
348 %doc COPYING.
* COPYRIGHT
349 %{_libdir}/libnozzle.so
350 %{_includedir}/libnozzle.h
351 %{_libdir}/pkgconfig
/libnozzle.pc
352 %{_mandir}/man3
/nozzle
*.3.gz
356 Group: System Environment
/Libraries
357 Summary: Kronosnet core switching implementation
359 %description -n libknet1
360 The whole kronosnet core is implemented
in this library.
361 Please refer to the not
-yet
-existing documentation
for further
365 %defattr(-,root
,root
,-)
366 %doc COPYING.
* COPYRIGHT
367 %{_libdir}/libknet.so.
*
368 %dir %{_libdir}/kronosnet
370 %post -n libknet1
-p
/sbin
/ldconfig
372 %postun -n libknet1
-p
/sbin
/ldconfig
374 %package -n libknet1
-devel
375 Group: Development
/Libraries
376 Summary: Kronosnet core switching implementation
(developer files
)
377 Requires: libknet1
= %{version}-%{release}
380 %description -n libknet1
-devel
381 The whole kronosnet core is implemented
in this library.
382 Please refer to the not
-yet
-existing documentation
for further
385 %files -n libknet1
-devel
386 %defattr(-,root
,root
,-)
387 %doc COPYING.
* COPYRIGHT
388 %{_libdir}/libknet.so
389 %{_includedir}/libknet.h
390 %{_libdir}/pkgconfig
/libknet.pc
391 %if %{defined buildmanpages}
392 %{_mandir}/man3
/knet
*.3.gz
395 %if %{defined buildcryptonss}
396 %package -n libknet1
-crypto
-nss
-plugin
397 Group: System Environment
/Libraries
398 Summary: libknet1 nss support
399 Requires: libknet1
= %{version}-%{release}
401 %description -n libknet1
-crypto
-nss
-plugin
402 NSS crypto support
for libknet1.
404 %files -n libknet1
-crypto
-nss
-plugin
405 %defattr(-,root
,root
,-)
406 %{_libdir}/kronosnet
/crypto_nss.so
409 %if %{defined buildcryptoopenssl}
410 %package -n libknet1
-crypto
-openssl
-plugin
411 Group: System Environment
/Libraries
412 Summary: libknet1 openssl support
413 Requires: libknet1
= %{version}-%{release}
415 %description -n libknet1
-crypto
-openssl
-plugin
416 OpenSSL crypto support
for libknet1.
418 %files -n libknet1
-crypto
-openssl
-plugin
419 %defattr(-,root
,root
,-)
420 %{_libdir}/kronosnet
/crypto_openssl.so
423 %if %{defined buildcompresszlib}
424 %package -n libknet1
-compress
-zlib
-plugin
425 Group: System Environment
/Libraries
426 Summary: libknet1 zlib support
427 Requires: libknet1
= %{version}-%{release}
429 %description -n libknet1
-compress
-zlib
-plugin
430 zlib compression support
for libknet1.
432 %files -n libknet1
-compress
-zlib
-plugin
433 %defattr(-,root
,root
,-)
434 %{_libdir}/kronosnet
/compress_zlib.so
436 %if %{defined buildcompresslz4}
437 %package -n libknet1
-compress
-lz4
-plugin
438 Group: System Environment
/Libraries
439 Summary: libknet1 lz4 and lz4hc support
440 Requires: libknet1
= %{version}-%{release}
442 %description -n libknet1
-compress
-lz4
-plugin
443 lz4 and lz4hc compression support
for libknet1.
445 %files -n libknet1
-compress
-lz4
-plugin
446 %defattr(-,root
,root
,-)
447 %{_libdir}/kronosnet
/compress_lz4.so
448 %{_libdir}/kronosnet
/compress_lz4hc.so
451 %if %{defined buildcompresslzo2}
452 %package -n libknet1
-compress
-lzo2
-plugin
453 Group: System Environment
/Libraries
454 Summary: libknet1 lzo2 support
455 Requires: libknet1
= %{version}-%{release}
457 %description -n libknet1
-compress
-lzo2
-plugin
458 lzo2 compression support
for libknet1.
460 %files -n libknet1
-compress
-lzo2
-plugin
461 %defattr(-,root
,root
,-)
462 %{_libdir}/kronosnet
/compress_lzo2.so
465 %if %{defined buildcompresslzma}
466 %package -n libknet1
-compress
-lzma
-plugin
467 Group: System Environment
/Libraries
468 Summary: libknet1 lzma support
469 Requires: libknet1
= %{version}-%{release}
471 %description -n libknet1
-compress
-lzma
-plugin
472 lzma compression support
for libknet1.
474 %files -n libknet1
-compress
-lzma
-plugin
475 %defattr(-,root
,root
,-)
476 %{_libdir}/kronosnet
/compress_lzma.so
479 %if %{defined buildcompressbzip2}
480 %package -n libknet1
-compress
-bzip2
-plugin
481 Group: System Environment
/Libraries
482 Summary: libknet1 bzip2 support
483 Requires: libknet1
= %{version}-%{release}
485 %description -n libknet1
-compress
-bzip2
-plugin
486 bzip2 compression support
for libknet1.
488 %files -n libknet1
-compress
-bzip2
-plugin
489 %defattr(-,root
,root
,-)
490 %{_libdir}/kronosnet
/compress_bzip2.so
493 %package -n libknet1
-crypto
-plugins
-all
494 Group: System Environment
/Libraries
495 Summary: libknet1 crypto plugins meta package
496 %if %{defined buildcryptonss}
497 Requires: libknet1
-crypto
-nss
-plugin
499 %if %{defined buildcryptoopenssl}
500 Requires: libknet1
-crypto
-openssl
-plugin
503 %description -n libknet1
-crypto
-plugins
-all
504 meta package to
install all of libknet1 crypto plugins
506 %files -n libknet1
-crypto
-plugins
-all
508 %package -n libknet1
-compress
-plugins
-all
509 Group: System Environment
/Libraries
510 Summary: libknet1 compress plugins meta package
511 %if %{defined buildcompresszlib}
512 Requires: libknet1
-compress
-zlib
-plugin
514 %if %{defined buildcompresslz4}
515 Requires: libknet1
-compress
-lz4
-plugin
517 %if %{defined buildcompresslzo2}
518 Requires: libknet1
-compress
-lzo2
-plugin
520 %if %{defined buildcompresslzma}
521 Requires: libknet1
-compress
-lzma
-plugin
523 %if %{defined buildcompressbzip2}
524 Requires: libknet1
-compress
-bzip2
-plugin
527 %description -n libknet1
-compress
-plugins
-all
528 meta package to
install all of libknet1 compress plugins
530 %files -n libknet1
-compress
-plugins
-all
532 %package -n libknet1
-plugins
-all
533 Group: System Environment
/Libraries
534 Summary: libknet1 plugins meta package
535 Requires: libknet1
-compress
-plugins
-all
536 Requires: libknet1
-crypto
-plugins
-all
538 %description -n libknet1
-plugins
-all
539 meta package to
install all of libknet1 plugins
541 %files -n libknet1
-plugins
-all
543 %if %{with installtests}
544 %package -n kronosnet
-tests
545 Group: System Environment
/Libraries
546 Summary: kronosnet
test suite
547 Requires: libknet1
= %{version}-%{release}
549 %description -n kronosnet
-tests
550 this package contains all the libknet and libnozzle
test suite
552 %files -n kronosnet
-tests
553 %defattr(-,root
,root
,-)
554 %{_libdir}/kronosnet
/tests
/*
557 %if %{with rpmdebuginfo}
562 * @date@ Autotools generated version
<nobody@nowhere.org
> - @version@
-1-@numcomm@.@alphatag@.@dirty@
563 - These aren't the droids you're looking
for.