Skip to content

Commit f659317

Browse files
author
Pavel Siska
committed
CMake: introduce rpm-msec and rpm-nemea target
1 parent 246a6b4 commit f659317

File tree

7 files changed

+303
-31
lines changed

7 files changed

+303
-31
lines changed

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ include(cmake/installation.cmake)
1212

1313
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules)
1414

15-
option(ENABLE_INPUT_PCAP "Enable build of input PCAP plugin" ON)
15+
option(ENABLE_INPUT_PCAP "Enable build of input PCAP plugin" OFF)
1616
option(ENABLE_INPUT_DPDK "Enable build of input DPDK plugin" OFF)
1717
option(ENABLE_INPUT_NFB "Enable build of input NFB plugin" OFF)
1818
option(ENABLE_OUTPUT_UNIREC "Enable build of output UNIREC plugin" OFF)

pkg/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ if (NOT RELEASE)
33
endif()
44

55
set(TGZ_FILE "${CMAKE_CURRENT_BINARY_DIR}/ipfixprobe-${VERSION}-${RELEASE}.tar.gz")
6+
set(TGZ_FILE_MSEC "${CMAKE_CURRENT_BINARY_DIR}/ipfixprobe-msec-${VERSION}-${RELEASE}.tar.gz")
7+
set(TGZ_FILE_NEMEA "${CMAKE_CURRENT_BINARY_DIR}/ipfixprobe-nemea-${VERSION}-${RELEASE}.tar.gz")
68

79
add_subdirectory(tgz)
810

pkg/rpm/CMakeLists.txt

Lines changed: 60 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,6 @@ if (ENABLE_INPUT_NFB)
3030
list(APPEND RPMBUILD_ARGS "--with" "input_nfb")
3131
endif()
3232

33-
if (ENABLE_OUTPUT_UNIREC)
34-
list(APPEND RPMBUILD_ARGS "--with" "output_unirec")
35-
endif()
36-
3733
if (ENABLE_PROCESS_EXPERIMENTAL)
3834
list(APPEND RPMBUILD_ARGS "--with" "process_experimental")
3935
endif()
@@ -48,12 +44,72 @@ add_custom_target(rpm
4844
COMMAND "${RPMBUILD_EXECUTABLE}" ${RPMBUILD_ARGS}
4945
)
5046

47+
set(SOURCE_TGZ_MSEC "ipfixprobe-msec-${VERSION}.tar.gz")
48+
set(SPEC_FILE_IN_MSEC "${CMAKE_CURRENT_SOURCE_DIR}/ipfixprobe-msec.spec.in")
49+
set(SPEC_FILE_MSEC "${RPMBUILD_DIR}/SPECS/ipfixprobe-msec.spec")
50+
set(RPMBUILD_ARGS_MSEC
51+
"-ba" "${SPEC_FILE_MSEC}"
52+
"--define" "_topdir ${RPMBUILD_DIR}/"
53+
)
54+
55+
configure_file("${SPEC_FILE_IN_MSEC}" "${SPEC_FILE_MSEC}" @ONLY)
56+
57+
add_custom_target(rpm-msec
58+
COMMENT "Generating SRPM and RPM packages for ipfixprobe-msec..."
59+
WORKING_DIRECTORY "${RPMBUILD_DIR}"
60+
61+
COMMAND "${CMAKE_COMMAND}" "-E" "copy" "${TGZ_FILE_MSEC}" "SOURCES/${SOURCE_TGZ_MSEC}"
62+
COMMAND "${RPMBUILD_EXECUTABLE}" ${RPMBUILD_ARGS_MSEC}
63+
)
64+
65+
set(SOURCE_TGZ_NEMEA "ipfixprobe-nemea-${VERSION}.tar.gz")
66+
set(SPEC_FILE_IN_NEMEA "${CMAKE_CURRENT_SOURCE_DIR}/ipfixprobe-nemea.spec.in")
67+
set(SPEC_FILE_NEMEA "${RPMBUILD_DIR}/SPECS/ipfixprobe-nemea.spec")
68+
set(RPMBUILD_ARGS_NEMEA
69+
"-ba" "${SPEC_FILE_NEMEA}"
70+
"--define" "_topdir ${RPMBUILD_DIR}/"
71+
)
72+
73+
if (ENABLE_OUTPUT_UNIREC)
74+
list(APPEND RPMBUILD_ARGS_NEMEA "--with" "output_unirec")
75+
endif()
76+
77+
configure_file("${SPEC_FILE_IN_NEMEA}" "${SPEC_FILE_NEMEA}" @ONLY)
78+
79+
add_custom_target(rpm-nemea
80+
COMMENT "Generating SRPM and RPM packages for ipfixprobe-nemea..."
81+
WORKING_DIRECTORY "${RPMBUILD_DIR}"
82+
83+
COMMAND "${CMAKE_COMMAND}" "-E" "copy" "${TGZ_FILE_NEMEA}" "SOURCES/${SOURCE_TGZ_NEMEA}"
84+
COMMAND "${RPMBUILD_EXECUTABLE}" ${RPMBUILD_ARGS_NEMEA}
85+
)
86+
5187
add_dependencies(
5288
rpm
5389
tgz
5490
)
5591

92+
add_dependencies(
93+
rpm-msec
94+
tgz-msec
95+
)
96+
97+
add_dependencies(
98+
rpm-nemea
99+
tgz-nemea
100+
)
101+
56102
add_custom_command(TARGET rpm POST_BUILD
57103
COMMENT "SRPM and RPM packages are located in ${RPMBUILD_DIR}/"
58104
COMMAND ;
59105
)
106+
107+
add_custom_command(TARGET rpm-msec POST_BUILD
108+
COMMENT "SRPM and RPM packages are located in ${RPMBUILD_DIR}/"
109+
COMMAND ;
110+
)
111+
112+
add_custom_command(TARGET rpm-nemea POST_BUILD
113+
COMMENT "SRPM and RPM packages are located in ${RPMBUILD_DIR}/"
114+
COMMAND ;
115+
)

pkg/rpm/ipfixprobe-msec.spec.in

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
%global _unitdir %{_prefix}/lib/systemd/system
2+
3+
Name: ipfixprobe-msec
4+
Version: @VERSION@
5+
Release: @RELEASE@%{?dist}
6+
Summary: IPFIX flow exporter with various extending IPFIX elements exported by plugins.
7+
URL: https://github.com/CESNET/ipfixprobe
8+
Group: Liberouter
9+
License: BSD
10+
Vendor: CESNET, z.s.p.o.
11+
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}
12+
Provides: ipfixprobe-msec
13+
Obsoletes: ipfixprobe-ndp < 5.0.0
14+
Obsoletes: ipfixprobe-dpdk < 5.0.0
15+
Conflicts: ipfixprobe-nemea, ipfixprobe
16+
Source0: %{name}-%{version}.tar.gz
17+
18+
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}
19+
BuildRequires: (gcc >= 10 or gcc-toolset-13-gcc)
20+
BuildRequires: (gcc-c++ >= 10 or gcc-toolset-13-gcc-c++)
21+
BuildRequires: make
22+
BuildRequires: cmake >= 3.12
23+
BuildRequires: libunwind-devel
24+
BuildRequires: gcc-toolset-14-libatomic-devel
25+
BuildRequires: pkgconfig
26+
BuildRequires: lz4-devel
27+
BuildRequires: openssl-devel
28+
29+
Requires: libatomic
30+
Requires: fuse3
31+
Requires: telemetry
32+
Requires: lz4
33+
Requires: openssl
34+
35+
# Make sure that build is always performed out-of-source
36+
%undefine __cmake_in_source_build
37+
38+
%description
39+
The package contains tools, configuration files and traffic samples
40+
that make up the main components of the test environment.
41+
42+
%prep
43+
%autosetup
44+
45+
%build
46+
%cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_MILISECONDS_TIMESTAMP=ON
47+
%cmake_build
48+
49+
%install
50+
%cmake_install
51+
52+
%files
53+
%license LICENSE
54+
%{_bindir}/ipfixprobe
55+
%{_bindir}/ipfixprobed
56+
57+
%{_libdir}/ipfixprobe/input/libipfixprobe-input-raw.so
58+
59+
%{_libdir}/ipfixprobe/output/libipfixprobe-output-ipfix.so
60+
%{_libdir}/ipfixprobe/output/libipfixprobe-output-text.so
61+
62+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-basicplus.so
63+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-bstats.so
64+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-dns.so
65+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-dnssd.so
66+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-flowhash.so
67+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-http.so
68+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-icmp.so
69+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-pstats.so
70+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-phists.so
71+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-ovpn.so
72+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-vlan.so
73+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-osquery.so
74+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-netbios.so
75+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-tls.so
76+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-wg.so
77+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-smtp.so
78+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-quic.so
79+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-idpcontent.so
80+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-mqtt.so
81+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-passivedns.so
82+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-ssadetector.so
83+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-ssdp.so
84+
85+
%{_libdir}/ipfixprobe/storage/libipfixprobe-storage-cache.so
86+
87+
%{_sysconfdir}/ipfixprobe/link0.conf.example
88+
%{_sysconfdir}/ipfixprobe/dpdk_direct.conf.example
89+
%{_sysconfdir}/ipfixprobe/dpdk_mring.conf.example
90+
91+
%{_unitdir}/ipfixprobe-monitoring.target
92+
%{_unitdir}/[email protected]
93+
94+
%changelog

pkg/rpm/ipfixprobe-nemea.spec.in

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
%bcond_with output_unirec
2+
3+
%global _unitdir %{_prefix}/lib/systemd/system
4+
5+
Name: ipfixprobe-nemea
6+
Version: @VERSION@
7+
Release: @RELEASE@%{?dist}
8+
Summary: IPFIX flow exporter with various extending IPFIX elements exported by plugins.
9+
URL: https://github.com/CESNET/ipfixprobe
10+
Group: Liberouter
11+
License: BSD
12+
Vendor: CESNET, z.s.p.o.
13+
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}
14+
Provides: ipfixprobe-nemea
15+
Obsoletes: ipfixprobe-ndp < 5.0.0
16+
Obsoletes: ipfixprobe-dpdk < 5.0.0
17+
Conflicts: ipfixprobe, ipfixprobe-msec, ipfixprobe-process-experimental
18+
Source0: %{name}-%{version}.tar.gz
19+
20+
%if %{with output_unirec}
21+
%package output-unirec
22+
Summary: Output plugin to export records in unirec format.
23+
24+
%description output-unirec
25+
Output plugin for unirec.
26+
27+
BuildRequires: unirec
28+
Requires: unirec
29+
Requires: ipfixprobe-nemea
30+
%endif
31+
32+
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}
33+
BuildRequires: (gcc >= 10 or gcc-toolset-13-gcc)
34+
BuildRequires: (gcc-c++ >= 10 or gcc-toolset-13-gcc-c++)
35+
BuildRequires: make
36+
BuildRequires: cmake >= 3.12
37+
BuildRequires: libunwind-devel
38+
BuildRequires: gcc-toolset-14-libatomic-devel
39+
BuildRequires: pkgconfig
40+
BuildRequires: lz4-devel
41+
BuildRequires: openssl-devel
42+
BuildRequires: nemea-framework-devel
43+
44+
Requires: libatomic
45+
Requires: fuse3
46+
Requires: telemetry
47+
Requires: lz4
48+
Requires: openssl
49+
50+
# Make sure that build is always performed out-of-source
51+
%undefine __cmake_in_source_build
52+
53+
%description
54+
The package contains tools, configuration files and traffic samples
55+
that make up the main components of the test environment.
56+
57+
%prep
58+
%autosetup
59+
60+
%build
61+
%cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_NEMEA=ON %{?with_output_unirec: -DENABLE_OUTPUT_UNIREC=ON}
62+
%cmake_build
63+
64+
%install
65+
%cmake_install
66+
67+
%files
68+
%license LICENSE
69+
%{_bindir}/ipfixprobe
70+
%{_bindir}/ipfixprobed
71+
72+
%{_libdir}/ipfixprobe/input/libipfixprobe-input-raw.so
73+
74+
%{_libdir}/ipfixprobe/output/libipfixprobe-output-ipfix.so
75+
%{_libdir}/ipfixprobe/output/libipfixprobe-output-text.so
76+
77+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-basicplus.so
78+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-bstats.so
79+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-dns.so
80+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-dnssd.so
81+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-flowhash.so
82+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-http.so
83+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-icmp.so
84+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-pstats.so
85+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-phists.so
86+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-ovpn.so
87+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-vlan.so
88+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-osquery.so
89+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-netbios.so
90+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-tls.so
91+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-wg.so
92+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-smtp.so
93+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-quic.so
94+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-idpcontent.so
95+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-mqtt.so
96+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-passivedns.so
97+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-ssadetector.so
98+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-ssdp.so
99+
100+
%{_libdir}/ipfixprobe/storage/libipfixprobe-storage-cache.so
101+
102+
%{_sysconfdir}/ipfixprobe/link0.conf.example
103+
%{_sysconfdir}/ipfixprobe/dpdk_direct.conf.example
104+
%{_sysconfdir}/ipfixprobe/dpdk_mring.conf.example
105+
106+
%{_unitdir}/ipfixprobe-monitoring.target
107+
%{_unitdir}/[email protected]
108+
109+
%if %{with output_unirec}
110+
%files output-unirec
111+
%{_libdir}/ipfixprobe/output/libipfixprobe-output-unirec.so
112+
%endif
113+
114+
115+
%changelog

pkg/rpm/ipfixprobe.spec.in

Lines changed: 11 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
%bcond_with input_pcap
22
%bcond_with input_dpdk
33
%bcond_with input_nfb
4-
%bcond_with output_unirec
54
%bcond_with process_experimental
65

76
%global _unitdir %{_prefix}/lib/systemd/system
@@ -16,6 +15,9 @@ License: BSD
1615
Vendor: CESNET, z.s.p.o.
1716
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}
1817
Provides: ipfixprobe
18+
Obsoletes: ipfixprobe-ndp < 5.0.0
19+
Obsoletes: ipfixprobe-dpdk < 5.0.0
20+
Conflicts: ipfixprobe-nemea, ipfixprobe-msec
1921
Source0: %{name}-%{version}.tar.gz
2022

2123
%if %{with input_pcap}
@@ -51,17 +53,6 @@ BuildRequires: nfb-framework
5153
Requires: nfb-framework
5254
%endif
5355

54-
%if %{with output_unirec}
55-
%package output-unirec
56-
Summary: Output plugin to export records in unirec format.
57-
58-
%description output-unirec
59-
Output plugin for unirec.
60-
61-
BuildRequires: unirec
62-
Requires: unirec
63-
%endif
64-
6556
%if %{with process_experimental}
6657
%package process-experimental
6758
Summary: Experimental process plugins.
@@ -72,22 +63,21 @@ Experimental process plugins.
7263
%endif
7364

7465
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}
75-
BuildRequires: gcc >= 8
76-
BuildRequires: gcc-c++ >= 8
66+
BuildRequires: (gcc >= 10 or gcc-toolset-13-gcc)
67+
BuildRequires: (gcc-c++ >= 10 or gcc-toolset-13-gcc-c++)
7768
BuildRequires: make
7869
BuildRequires: cmake >= 3.12
7970
BuildRequires: libunwind-devel
80-
BuildRequires: libatomic-devel
81-
BuildRequires: pthread
71+
BuildRequires: gcc-toolset-14-libatomic-devel
72+
BuildRequires: pkgconfig
73+
BuildRequires: lz4-devel
74+
BuildRequires: openssl-devel
75+
8276
Requires: libatomic
8377
Requires: fuse3
8478
Requires: telemetry
8579
Requires: lz4
8680
Requires: openssl
87-
BuildRequires: doxygen
88-
BuildRequires: pkgconfig
89-
BuildRequires: lz4-devel
90-
BuildRequires: openssl-devel
9181

9282
# Make sure that build is always performed out-of-source
9383
%undefine __cmake_in_source_build
@@ -100,7 +90,7 @@ that make up the main components of the test environment.
10090
%autosetup
10191

10292
%build
103-
%cmake -DCMAKE_BUILD_TYPE=Release %{?with_input_pcap:-DENABLE_INPUT_PCAP=ON} %{?with_input_dpdk:-DENABLE_INPUT_DPDK=ON} %{?with_input_nfb:-DENABLE_INPUT_NFB=ON} %{?with_output_unirec: -DENABLE_OUTPUT_UNIREC=ON} %{?with_process_experimental: -DENABLE_PROCESS_EXPERIMENTAL=ON}
93+
%cmake -DCMAKE_BUILD_TYPE=Release %{?with_input_pcap:-DENABLE_INPUT_PCAP=ON} %{?with_input_dpdk:-DENABLE_INPUT_DPDK=ON} %{?with_input_nfb:-DENABLE_INPUT_NFB=ON} %{?with_process_experimental: -DENABLE_PROCESS_EXPERIMENTAL=ON}
10494
%cmake_build
10595

10696
%install
@@ -163,11 +153,6 @@ that make up the main components of the test environment.
163153
%{_libdir}/ipfixprobe/input/libipfixprobe-input-dpdk.so
164154
%endif
165155

166-
%if %{with output_unirec}
167-
%files output-unirec
168-
%{_libdir}/ipfixprobe/output/libipfixprobe-output-unirec.so
169-
%endif
170-
171156
%if %{with process_experimental}
172157
%files process-experimental
173158
%{_libdir}/ipfixprobe/process/libipfixprobe-process-nettisa.so

0 commit comments

Comments
 (0)