]> git.proxmox.com Git - mirror_kronosnet.git/blob - kronosnet.spec.in
[transports] fix usage after free of transport info memory
[mirror_kronosnet.git] / kronosnet.spec.in
1 ###############################################################################
2 ###############################################################################
3 ##
4 ## Copyright (C) 2012-2018 Red Hat, Inc. All rights reserved.
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
14 %global alphatag @alphatag@
15 %global numcomm @numcomm@
16 %global dirty @dirty@
17
18 # set defaults from ./configure invokation
19 %@sctp@ sctp
20 %@nss@ nss
21 %@openssl@ openssl
22 %@zlib@ zlib
23 %@lz4@ lz4
24 %@lzo2@ lzo2
25 %@lzma@ lzma
26 %@bzip2@ bzip2
27 %@kronosnetd@ kronosnetd
28 %@libnozzle@ libnozzle
29 %@runautogen@ runautogen
30 %@rpmdebuginfo@ rpmdebuginfo
31 %@overriderpmdebuginfo@ overriderpmdebuginfo
32 %@buildman@ buildman
33 %@installtests@ installtests
34
35 %if %{with overriderpmdebuginfo}
36 %undefine _enable_debug_packages
37 %endif
38
39 %if %{with sctp}
40 %global buildsctp 1
41 %endif
42 %if %{with nss}
43 %global buildcryptonss 1
44 %endif
45 %if %{with openssl}
46 %global buildcryptoopenssl 1
47 %endif
48 %if %{with zlib}
49 %global buildcompresszlib 1
50 %endif
51 %if %{with lz4}
52 %global buildcompresslz4 1
53 %endif
54 %if %{with lzo2}
55 %global buildcompresslzo2 1
56 %endif
57 %if %{with lzma}
58 %global buildcompresslzma 1
59 %endif
60 %if %{with bzip2}
61 %global buildcompressbzip2 1
62 %endif
63 %if %{with libnozzle}
64 %global buildlibnozzle 1
65 %endif
66 %if %{with kronosnetd}
67 %global buildlibnozzle 1
68 %global buildkronosnetd 1
69 %endif
70 %if %{with runautogen}
71 %global buildautogen 1
72 %endif
73 %if %{with buildman}
74 %global buildmanpages 1
75 %endif
76 %if %{with installtests}
77 %global installtestsuite 1
78 %endif
79
80 # main (empty) package
81 # http://www.rpm.org/max-rpm/s1-rpm-subpack-spec-file-changes.html
82
83 Name: kronosnet
84 Summary: Multipoint-to-Multipoint VPN daemon
85 Version: @version@
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
91
92 ## Setup/build bits
93
94 BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
95
96 # Build dependencies
97 BuildRequires: gcc
98 # required to build man pages
99 %if %{defined buildmanpages}
100 BuildRequires: libqb-devel libxml2-devel doxygen
101 %endif
102 %if %{defined buildsctp}
103 BuildRequires: lksctp-tools-devel
104 %endif
105 %if %{defined buildcryptonss}
106 BuildRequires: /usr/include/nss3/nss.h /usr/include/nspr4/nspr.h
107 %endif
108 %if %{defined buildcryptoopenssl}
109 BuildRequires: /usr/include/openssl/conf.h
110 %endif
111 %if %{defined buildcompresszlib}
112 BuildRequires: zlib-devel
113 %endif
114 %if %{defined buildcompresslz4}
115 BuildRequires: /usr/include/lz4hc.h
116 %endif
117 %if %{defined buildcompresslzo2}
118 BuildRequires: lzo-devel
119 %endif
120 %if %{defined buildcompresslzma}
121 BuildRequires: xz-devel
122 %endif
123 %if %{defined buildcompressbzip2}
124 BuildRequires: /usr/include/bzlib.h
125 %endif
126 %if %{defined buildkronosnetd}
127 BuildRequires: pam-devel
128 %endif
129 %if %{defined buildlibnozzle}
130 BuildRequires: libnl3-devel
131 %endif
132 %if %{defined buildautogen}
133 BuildRequires: autoconf
134 BuildRequires: automake
135 BuildRequires: libtool
136 %endif
137
138 %prep
139 %setup -q -n %{name}-%{version}%{?numcomm:.%{numcomm}}%{?alphatag:-%{alphatag}}%{?dirty:-%{dirty}}
140
141 %build
142 %if %{with runautogen}
143 ./autogen.sh
144 %endif
145
146 %{configure} \
147 %if %{defined installtestsuite}
148 --enable-install-tests \
149 %else
150 --disable-install-tests \
151 %endif
152 %if %{defined buildmanpages}
153 --enable-man \
154 %else
155 --disable-man \
156 %endif
157 %if %{defined buildsctp}
158 --enable-libknet-sctp \
159 %else
160 --disable-libknet-sctp \
161 %endif
162 %if %{defined buildcryptonss}
163 --enable-crypto-nss \
164 %else
165 --disable-crypto-nss \
166 %endif
167 %if %{defined buildcryptoopenssl}
168 --enable-crypto-openssl \
169 %else
170 --disable-crypto-openssl \
171 %endif
172 %if %{defined buildcompresszlib}
173 --enable-compress-zlib \
174 %else
175 --disable-compress-zlib \
176 %endif
177 %if %{defined buildcompresslz4}
178 --enable-compress-lz4 \
179 %else
180 --disable-compress-lz4 \
181 %endif
182 %if %{defined buildcompresslzo2}
183 --enable-compress-lzo2 \
184 %else
185 --disable-compress-lzo2 \
186 %endif
187 %if %{defined buildcompresslzma}
188 --enable-compress-lzma \
189 %else
190 --disable-compress-lzma \
191 %endif
192 %if %{defined buildcompressbzip2}
193 --enable-compress-bzip2 \
194 %else
195 --disable-compress-bzip2 \
196 %endif
197 %if %{defined buildkronosnetd}
198 --enable-kronosnetd \
199 %endif
200 %if %{defined buildlibnozzle}
201 --enable-libnozzle \
202 %endif
203 --with-initdefaultdir=%{_sysconfdir}/sysconfig/ \
204 %if %{defined _unitdir}
205 --with-systemddir=%{_unitdir}
206 %else
207 --with-initddir=%{_sysconfdir}/rc.d/init.d/
208 %endif
209
210 make %{_smp_mflags}
211
212 %install
213 rm -rf %{buildroot}
214 make install DESTDIR=%{buildroot}
215
216 # tree cleanup
217 # remove static libraries
218 find %{buildroot} -name "*.a" -exec rm {} \;
219 # remove libtools leftovers
220 find %{buildroot} -name "*.la" -exec rm {} \;
221
222 # handle systemd vs init script
223 %if %{defined _unitdir}
224 # remove init scripts
225 rm -rf %{buildroot}/etc/init.d
226 %else
227 # remove systemd specific bits
228 find %{buildroot} -name "*.service" -exec rm {} \;
229 %endif
230
231 # remove docs
232 rm -rf %{buildroot}/usr/share/doc/kronosnet
233
234 %clean
235 rm -rf %{buildroot}
236
237 # main empty package
238 %description
239 kronosnet source
240
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
252 %else
253 Requires(post): chkconfig
254 Requires(preun): chkconfig, initscripts
255 %endif
256 Requires(post): shadow-utils
257 Requires(preun): shadow-utils
258 Requires: pam, /etc/pam.d/passwd
259
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.
269
270 %post -n kronosnetd
271 %if %{defined _unitdir}
272 %if 0%{?systemd_post:1}
273 %systemd_post kronosnetd.service
274 %else
275 /bin/systemctl daemon-reload >/dev/null 2>&1 || :
276 %endif
277 %else
278 /sbin/chkconfig --add kronosnetd
279 %endif
280 /usr/sbin/groupadd --force --system @defaultadmgroup@
281
282 %preun -n kronosnetd
283 %if %{defined _unitdir}
284 %if 0%{?systemd_preun:1}
285 %systemd_preun kronosnetd.service
286 %else
287 if [ "$1" -eq 0 ]; then
288 /bin/systemctl --no-reload disable kronosnetd.service
289 /bin/systemctl stop kronosnetd.service >/dev/null 2>&1
290 fi
291 %endif
292 %else
293 if [ "$1" = 0 ]; then
294 /sbin/service kronosnetd stop >/dev/null 2>&1
295 /sbin/chkconfig --del kronosnetd
296 fi
297 %endif
298
299 %files -n 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
309 %else
310 %config(noreplace) %{_sysconfdir}/rc.d/init.d/kronosnetd
311 %endif
312 %{_sbindir}/*
313 %{_mandir}/man8/*
314 %endif
315
316 %if %{defined buildlibnozzle}
317 %package -n libnozzle1
318 Group: System Environment/Libraries
319 Summary: Simple userland wrapper around kernel tap devices
320
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.
325
326 %files -n libnozzle1
327 %defattr(-,root,root,-)
328 %doc COPYING.* COPYRIGHT
329 %{_libdir}/libnozzle.so.*
330
331 %post -n libnozzle1 -p /sbin/ldconfig
332
333 %postun -n libnozzle1 -p /sbin/ldconfig
334
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}
339 Requires: pkgconfig
340
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.
345
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
353 %endif
354
355 %package -n libknet1
356 Group: System Environment/Libraries
357 Summary: Kronosnet core switching implementation
358
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
362 information.
363
364 %files -n libknet1
365 %defattr(-,root,root,-)
366 %doc COPYING.* COPYRIGHT
367 %{_libdir}/libknet.so.*
368 %dir %{_libdir}/kronosnet
369
370 %post -n libknet1 -p /sbin/ldconfig
371
372 %postun -n libknet1 -p /sbin/ldconfig
373
374 %package -n libknet1-devel
375 Group: Development/Libraries
376 Summary: Kronosnet core switching implementation (developer files)
377 Requires: libknet1 = %{version}-%{release}
378 Requires: pkgconfig
379
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
383 information.
384
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
393 %endif
394
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}
400
401 %description -n libknet1-crypto-nss-plugin
402 NSS crypto support for libknet1.
403
404 %files -n libknet1-crypto-nss-plugin
405 %defattr(-,root,root,-)
406 %{_libdir}/kronosnet/crypto_nss.so
407 %endif
408
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}
414
415 %description -n libknet1-crypto-openssl-plugin
416 OpenSSL crypto support for libknet1.
417
418 %files -n libknet1-crypto-openssl-plugin
419 %defattr(-,root,root,-)
420 %{_libdir}/kronosnet/crypto_openssl.so
421 %endif
422
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}
428
429 %description -n libknet1-compress-zlib-plugin
430 zlib compression support for libknet1.
431
432 %files -n libknet1-compress-zlib-plugin
433 %defattr(-,root,root,-)
434 %{_libdir}/kronosnet/compress_zlib.so
435 %endif
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}
441
442 %description -n libknet1-compress-lz4-plugin
443 lz4 and lz4hc compression support for libknet1.
444
445 %files -n libknet1-compress-lz4-plugin
446 %defattr(-,root,root,-)
447 %{_libdir}/kronosnet/compress_lz4.so
448 %{_libdir}/kronosnet/compress_lz4hc.so
449 %endif
450
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}
456
457 %description -n libknet1-compress-lzo2-plugin
458 lzo2 compression support for libknet1.
459
460 %files -n libknet1-compress-lzo2-plugin
461 %defattr(-,root,root,-)
462 %{_libdir}/kronosnet/compress_lzo2.so
463 %endif
464
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}
470
471 %description -n libknet1-compress-lzma-plugin
472 lzma compression support for libknet1.
473
474 %files -n libknet1-compress-lzma-plugin
475 %defattr(-,root,root,-)
476 %{_libdir}/kronosnet/compress_lzma.so
477 %endif
478
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}
484
485 %description -n libknet1-compress-bzip2-plugin
486 bzip2 compression support for libknet1.
487
488 %files -n libknet1-compress-bzip2-plugin
489 %defattr(-,root,root,-)
490 %{_libdir}/kronosnet/compress_bzip2.so
491 %endif
492
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
498 %endif
499 %if %{defined buildcryptoopenssl}
500 Requires: libknet1-crypto-openssl-plugin
501 %endif
502
503 %description -n libknet1-crypto-plugins-all
504 meta package to install all of libknet1 crypto plugins
505
506 %files -n libknet1-crypto-plugins-all
507
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
513 %endif
514 %if %{defined buildcompresslz4}
515 Requires: libknet1-compress-lz4-plugin
516 %endif
517 %if %{defined buildcompresslzo2}
518 Requires: libknet1-compress-lzo2-plugin
519 %endif
520 %if %{defined buildcompresslzma}
521 Requires: libknet1-compress-lzma-plugin
522 %endif
523 %if %{defined buildcompressbzip2}
524 Requires: libknet1-compress-bzip2-plugin
525 %endif
526
527 %description -n libknet1-compress-plugins-all
528 meta package to install all of libknet1 compress plugins
529
530 %files -n libknet1-compress-plugins-all
531
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
537
538 %description -n libknet1-plugins-all
539 meta package to install all of libknet1 plugins
540
541 %files -n libknet1-plugins-all
542
543 %if %{with installtests}
544 %package -n kronosnet-tests
545 Group: System Environment/Libraries
546 Summary: kronosnet test suite
547 Requires: libknet1 = %{version}-%{release}
548
549 %description -n kronosnet-tests
550 this package contains all the libknet and libnozzle test suite
551
552 %files -n kronosnet-tests
553 %defattr(-,root,root,-)
554 %{_libdir}/kronosnet/tests/*
555 %endif
556
557 %if %{with rpmdebuginfo}
558 %debug_package
559 %endif
560
561 %changelog
562 * @date@ Autotools generated version <nobody@nowhere.org> - @version@-1-@numcomm@.@alphatag@.@dirty@
563 - These aren't the droids you're looking for.
564