1 ###############################################################################
2 ###############################################################################
4 ## Copyright (C) 2012-2017 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
29 %@runautogen@ runautogen
35 %global buildcryptonss
1
38 %global buildcryptoopenssl
1
41 %global buildcompresszlib
1
44 %global buildcompresslz4
1
47 %global buildcompresslzo2
1
50 %global buildcompresslzma
1
53 %global buildcompressbzip2
1
58 %if %{with kronosnetd}
60 %global buildkronosnetd
1
62 %if %{with runautogen}
63 %global buildautogen
1
66 # main (empty) package
67 # http://www.rpm.org/max-rpm/s1-rpm-subpack-spec-file-changes.html
70 Summary: Multipoint
-to
-Multipoint VPN daemon
72 Release: 1%{?numcomm:.%{numcomm}}%{?alphatag:.%{alphatag}}%{?dirty:.%{dirty}}%{?dist}
73 License: GPLv2
+ and LGPLv2
+
74 Group: System Environment
/Base
75 URL: https
://github.com
/fabbione
/kronosnet
/
76 Source0: https
://github.com
/fabbione
/kronosnet
/archive
/%{name}-%{version}%{?numcomm:.%{numcomm}}%{?alphatag:-%{alphatag}}%{?dirty:-%{dirty}}.tar.gz
80 BuildRoot: %
(mktemp
-ud
%{_tmppath}/%{name}-%{version}-%{release}-XXXXXX
)
84 %if %{defined buildsctp}
85 BuildRequires
: lksctp
-tools
-devel
87 %if %{defined buildcryptonss}
88 BuildRequires
: /usr
/include
/nss3
/nss.h
/usr
/include
/nspr4
/nspr.h
90 %if %{defined buildcryptoopenssl}
91 BuildRequires
: /usr
/include
/openssl
/conf.h
93 %if %{defined buildcompresszlib}
94 BuildRequires
: zlib
-devel
96 %if %{defined buildcompresslz4}
97 BuildRequires
: /usr
/include
/lz4hc.h
99 %if %{defined buildcompresslzo2}
100 BuildRequires
: lzo
-devel
102 %if %{defined buildcompresslzma}
103 BuildRequires
: xz
-devel
105 %if %{defined buildcompressbzip2}
106 BuildRequires
: /usr
/include
/bzlib.h
108 %if %{defined buildkronosnetd}
109 BuildRequires
: libqb
-devel pam
-devel
111 %if %{defined buildautogen}
112 BuildRequires
: autoconf
113 BuildRequires
: automake
114 BuildRequires
: libtool
118 %setup -q
-n
%{name}-%{version}%{?numcomm:.%{numcomm}}%{?alphatag:-%{alphatag}}%{?dirty:-%{dirty}}
121 %if %{with runautogen}
126 %if %{defined buildsctp}
127 --enable-libknet
-sctp \
129 --disable
-libknet
-sctp \
131 %if %{defined buildcryptonss}
132 --enable-crypto
-nss \
134 --disable
-crypto
-nss \
136 %if %{defined buildcryptoopenssl}
137 --enable-crypto
-openssl \
139 --disable
-crypto
-openssl \
141 %if %{defined buildcompresszlib}
142 --enable-compress
-zlib \
144 --disable
-compress
-zlib \
146 %if %{defined buildcompresslz4}
147 --enable-compress
-lz4 \
149 --disable
-compress
-lz4 \
151 %if %{defined buildcompresslzo2}
152 --enable-compress
-lzo2 \
154 --disable
-compress
-lzo2 \
156 %if %{defined buildcompresslzma}
157 --enable-compress
-lzma \
159 --disable
-compress
-lzma \
161 %if %{defined buildcompressbzip2}
162 --enable-compress
-bzip2 \
164 --disable
-compress
-bzip2 \
166 %if %{defined buildkronosnetd}
167 --enable-kronosnetd \
169 %if %{defined buildlibtap}
172 --with
-initdefaultdir
=%{_sysconfdir}/sysconfig
/ \
173 %if %{defined _unitdir}
174 --with
-systemddir
=%{_unitdir}
176 --with
-initddir
=%{_sysconfdir}/rc.d
/init.d
/
183 make install DESTDIR
=%{buildroot}
186 # remove static libraries
187 find
%{buildroot} -name "*.a" -exec rm {} \
;
188 # remove libtools leftovers
189 find
%{buildroot} -name "*.la" -exec rm {} \
;
191 # handle systemd vs init script
192 %if %{defined _unitdir}
193 # remove init scripts
194 rm -rf
%{buildroot}/etc
/init.d
196 # remove systemd specific bits
197 find
%{buildroot} -name "*.service" -exec rm {} \
;
201 rm -rf
%{buildroot}/usr
/share
/doc
/kronosnet
210 %if %{defined buildkronosnetd}
211 ## Runtime and subpackages section
212 %package -n kronosnetd
213 Group: System Environment
/Base
214 Summary: Multipoint
-to
-Multipoint VPN daemon
215 %if %{defined _unitdir}
216 # Needed for systemd unit
217 Requires(post
): systemd
-sysv
218 Requires(post
): systemd
-units
219 Requires(preun
): systemd
-units
220 Requires(postun
): systemd
-units
222 Requires(post
): chkconfig
223 Requires(preun
): chkconfig
, initscripts
225 Requires(post
): shadow
-utils
226 Requires(preun
): shadow
-utils
227 Requires: pam
, /etc
/pam.d
/passwd
229 %description -n kronosnetd
230 The kronosnet daemon is a bridge between kronosnet switching engine
231 and kernel network tap devices
, to create and administer a
232 distributed LAN over multipoint
-to
-multipoint VPNs.
233 The daemon does a poor attempt to provide a configure UI similar
234 to other known network devices
/tools
(Cisco
, quagga
).
235 Beside looking horrific
, it allows runtime changes and
236 reconfiguration of the kronosnet
(s
) without daemon reload
237 or service disruption.
240 %if %{defined _unitdir}
241 %if 0%{?systemd_post:1}
242 %systemd_post kronosnetd.service
244 /bin
/systemctl daemon
-reload
>/dev
/null
2>&1 ||
:
247 /sbin
/chkconfig
--add kronosnetd
249 /usr
/sbin
/groupadd
--force
--system @defaultadmgroup@
252 %if %{defined _unitdir}
253 %if 0%{?systemd_preun:1}
254 %systemd_preun kronosnetd.service
256 if [ "$
1"
-eq
0 ]; then
257 /bin
/systemctl
--no
-reload disable kronosnetd.service
258 /bin
/systemctl stop kronosnetd.service
>/dev
/null
2>&1
262 if [ "$
1"
= 0 ]; then
263 /sbin
/service kronosnetd stop
>/dev
/null
2>&1
264 /sbin
/chkconfig
--del kronosnetd
269 %defattr(-,root
,root
,-)
270 %doc COPYING.
* COPYRIGHT
271 %dir %{_sysconfdir}/kronosnet
272 %dir %{_sysconfdir}/kronosnet
/*
273 %config(noreplace
) %{_sysconfdir}/sysconfig
/kronosnetd
274 %config(noreplace
) %{_sysconfdir}/pam.d
/kronosnetd
275 %config(noreplace
) %{_sysconfdir}/logrotate.d
/kronosnetd
276 %if %{defined _unitdir}
277 %{_unitdir}/kronosnetd.service
279 %config(noreplace
) %{_sysconfdir}/rc.d
/init.d
/kronosnetd
285 %if %{defined buildlibtap}
287 Group: System Environment
/Libraries
288 Summary: Simple userland wrapper around kernel tap devices
290 %description -n libtap1
291 This is an over
-engineered commodity library to manage a pool
292 of tap devices and provides the basic
293 pre
-up.d
/up.d
/down.d
/post
-down.d infrastructure.
296 %defattr(-,root
,root
,-)
297 %doc COPYING.
* COPYRIGHT
298 %{_libdir}/libtap.so.
*
300 %post -n libtap1
-p
/sbin
/ldconfig
302 %postun -n libtap1
-p
/sbin
/ldconfig
304 %package -n libtap1
-devel
305 Group: Development
/Libraries
306 Summary: Simple userland wrapper around kernel tap devices
(developer files
)
307 Requires: libtap1
= %{version}-%{release}
310 %description -n libtap1
-devel
311 This is an over
-engineered commodity library to manage a pool
312 of tap devices and provides the basic
313 pre
-up.d
/up.d
/down.d
/post
-down.d infrastructure.
315 %files -n libtap1
-devel
316 %defattr(-,root
,root
,-)
317 %doc COPYING.
* COPYRIGHT
319 %{_includedir}/libtap.h
320 %{_libdir}/pkgconfig
/libtap.pc
324 Group: System Environment
/Libraries
325 Summary: Kronosnet core switching implementation
327 %description -n libknet1
328 The whole kronosnet core is implemented
in this library.
329 Please refer to the not
-yet
-existing documentation
for further
333 %defattr(-,root
,root
,-)
334 %doc COPYING.
* COPYRIGHT
335 %{_libdir}/libknet.so.
*
336 %dir %{_libdir}/kronosnet
338 %post -n libknet1
-p
/sbin
/ldconfig
340 %postun -n libknet1
-p
/sbin
/ldconfig
342 %package -n libknet1
-devel
343 Group: Development
/Libraries
344 Summary: Kronosnet core switching implementation
(developer files
)
345 Requires: libknet1
= %{version}-%{release}
348 %description -n libknet1
-devel
349 The whole kronosnet core is implemented
in this library.
350 Please refer to the not
-yet
-existing documentation
for further
353 %files -n libknet1
-devel
354 %defattr(-,root
,root
,-)
355 %doc COPYING.
* COPYRIGHT
356 %{_libdir}/libknet.so
357 %{_includedir}/libknet.h
358 %{_libdir}/pkgconfig
/libknet.pc
359 %{_mandir}/man3
/*.3.gz
361 %if %{defined buildcryptonss}
362 %package -n libknet1
-crypto
-nss
-plugin
363 Group: System Environment
/Libraries
364 Summary: libknet1 nss support
365 Requires: libknet1
= %{version}-%{release}
367 %description -n libknet1
-crypto
-nss
-plugin
368 NSS crypto support
for libknet1.
370 %files -n libknet1
-crypto
-nss
-plugin
371 %defattr(-,root
,root
,-)
372 %{_libdir}/kronosnet
/crypto_nss.so
375 %if %{defined buildcryptoopenssl}
376 %package -n libknet1
-crypto
-openssl
-plugin
377 Group: System Environment
/Libraries
378 Summary: libknet1 openssl support
379 Requires: libknet1
= %{version}-%{release}
381 %description -n libknet1
-crypto
-openssl
-plugin
382 OpenSSL crypto support
for libknet1.
384 %files -n libknet1
-crypto
-openssl
-plugin
385 %defattr(-,root
,root
,-)
386 %{_libdir}/kronosnet
/crypto_openssl.so
389 %if %{defined buildcompresszlib}
390 %package -n libknet1
-compress
-zlib
-plugin
391 Group: System Environment
/Libraries
392 Summary: libknet1 zlib support
393 Requires: libknet1
= %{version}-%{release}
395 %description -n libknet1
-compress
-zlib
-plugin
396 zlib compression support
for libknet1.
398 %files -n libknet1
-compress
-zlib
-plugin
399 %defattr(-,root
,root
,-)
400 %{_libdir}/kronosnet
/compress_zlib.so
402 %if %{defined buildcompresslz4}
403 %package -n libknet1
-compress
-lz4
-plugin
404 Group: System Environment
/Libraries
405 Summary: libknet1 lz4 and lz4hc support
406 Requires: libknet1
= %{version}-%{release}
408 %description -n libknet1
-compress
-lz4
-plugin
409 lz4 and lz4hc compression support
for libknet1.
411 %files -n libknet1
-compress
-lz4
-plugin
412 %defattr(-,root
,root
,-)
413 %{_libdir}/kronosnet
/compress_lz4.so
414 %{_libdir}/kronosnet
/compress_lz4hc.so
417 %if %{defined buildcompresslzo2}
418 %package -n libknet1
-compress
-lzo2
-plugin
419 Group: System Environment
/Libraries
420 Summary: libknet1 lzo2 support
421 Requires: libknet1
= %{version}-%{release}
423 %description -n libknet1
-compress
-lzo2
-plugin
424 lzo2 compression support
for libknet1.
426 %files -n libknet1
-compress
-lzo2
-plugin
427 %defattr(-,root
,root
,-)
428 %{_libdir}/kronosnet
/compress_lzo2.so
431 %if %{defined buildcompresslzma}
432 %package -n libknet1
-compress
-lzma
-plugin
433 Group: System Environment
/Libraries
434 Summary: libknet1 lzma support
435 Requires: libknet1
= %{version}-%{release}
437 %description -n libknet1
-compress
-lzma
-plugin
438 lzma compression support
for libknet1.
440 %files -n libknet1
-compress
-lzma
-plugin
441 %defattr(-,root
,root
,-)
442 %{_libdir}/kronosnet
/compress_lzma.so
445 %if %{defined buildcompressbzip2}
446 %package -n libknet1
-compress
-bzip2
-plugin
447 Group: System Environment
/Libraries
448 Summary: libknet1 bzip2 support
449 Requires: libknet1
= %{version}-%{release}
451 %description -n libknet1
-compress
-bzip2
-plugin
452 bzip2 compression support
for libknet1.
454 %files -n libknet1
-compress
-bzip2
-plugin
455 %defattr(-,root
,root
,-)
456 %{_libdir}/kronosnet
/compress_bzip2.so
459 %package -n libknet1
-crypto
-plugins
-all
460 Group: System Environment
/Libraries
461 Summary: libknet1 crypto plugins meta package
462 %if %{defined buildcryptonss}
463 Requires: libknet1
-crypto
-nss
-plugin
465 %if %{defined buildcryptoopenssl}
466 Requires: libknet1
-crypto
-openssl
-plugin
469 %description -n libknet1
-crypto
-plugins
-all
470 meta package to
install all of libknet1 crypto plugins
472 %files -n libknet1
-crypto
-plugins
-all
474 %package -n libknet1
-compress
-plugins
-all
475 Group: System Environment
/Libraries
476 Summary: libknet1 compress plugins meta package
477 %if %{defined buildcompresszlib}
478 Requires: libknet1
-compress
-zlib
-plugin
480 %if %{defined buildcompresslz4}
481 Requires: libknet1
-compress
-lz4
-plugin
483 %if %{defined buildcompresslzo2}
484 Requires: libknet1
-compress
-lzo2
-plugin
486 %if %{defined buildcompresslzma}
487 Requires: libknet1
-compress
-lzma
-plugin
489 %if %{defined buildcompressbzip2}
490 Requires: libknet1
-compress
-bzip2
-plugin
493 %description -n libknet1
-compress
-plugins
-all
494 meta package to
install all of libknet1 compress plugins
496 %files -n libknet1
-compress
-plugins
-all
498 %package -n libknet1
-plugins
-all
499 Group: System Environment
/Libraries
500 Summary: libknet1 plugins meta package
501 Requires: libknet1
-compress
-plugins
-all
502 Requires: libknet1
-crypto
-plugins
-all
504 %description -n libknet1
-plugins
-all
505 meta package to
install all of libknet1 plugins
507 %files -n libknet1
-plugins
-all
510 * @date@ Autotools generated version
<nobody@nowhere.org
> - @version@
-1-@numcomm@.@alphatag@.@dirty@
511 - These aren't the droids you're looking
for.