Skip to content

Commit 690a124

Browse files
author
Pavel Siska
committed
CMake: introduce rpm-msec and rpm-nemea target
1 parent 0fea3b3 commit 690a124

File tree

7 files changed

+307
-13
lines changed

7 files changed

+307
-13
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: 64 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,14 @@ 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()
4036

37+
if (ENABLE_OUTPUT_UNIREC)
38+
list(APPEND RPMBUILD_ARGS "--with" "output_unirec")
39+
endif()
40+
4141
configure_file("${SPEC_FILE_IN}" "${SPEC_FILE}" @ONLY)
4242

4343
add_custom_target(rpm
@@ -48,12 +48,72 @@ add_custom_target(rpm
4848
COMMAND "${RPMBUILD_EXECUTABLE}" ${RPMBUILD_ARGS}
4949
)
5050

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

96+
add_dependencies(
97+
rpm-msec
98+
tgz-msec
99+
)
100+
101+
add_dependencies(
102+
rpm-nemea
103+
tgz-nemea
104+
)
105+
56106
add_custom_command(TARGET rpm POST_BUILD
57107
COMMENT "SRPM and RPM packages are located in ${RPMBUILD_DIR}/"
58108
COMMAND ;
59109
)
110+
111+
add_custom_command(TARGET rpm-msec POST_BUILD
112+
COMMENT "SRPM and RPM packages are located in ${RPMBUILD_DIR}/"
113+
COMMAND ;
114+
)
115+
116+
add_custom_command(TARGET rpm-nemea POST_BUILD
117+
COMMENT "SRPM and RPM packages are located in ${RPMBUILD_DIR}/"
118+
COMMAND ;
119+
)

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
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 & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ License: BSD
1616
Vendor: CESNET, z.s.p.o.
1717
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}
1818
Provides: ipfixprobe
19+
Obsoletes: ipfixprobe-ndp < 5.0.0
20+
Obsoletes: ipfixprobe-dpdk < 5.0.0
21+
Conflicts: ipfixprobe-nemea, ipfixprobe-msec
1922
Source0: %{name}-%{version}.tar.gz
2023

2124
%if %{with input_pcap}
@@ -60,6 +63,7 @@ Output plugin for unirec.
6063

6164
BuildRequires: unirec
6265
Requires: unirec
66+
Requires: ipfixprobe-nemea
6367
%endif
6468

6569
%if %{with process_experimental}
@@ -72,22 +76,21 @@ Experimental process plugins.
7276
%endif
7377

7478
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}
75-
BuildRequires: gcc >= 8
76-
BuildRequires: gcc-c++ >= 8
79+
BuildRequires: (gcc >= 10 or gcc-toolset-13-gcc)
80+
BuildRequires: (gcc-c++ >= 10 or gcc-toolset-13-gcc-c++)
7781
BuildRequires: make
7882
BuildRequires: cmake >= 3.12
7983
BuildRequires: libunwind-devel
80-
BuildRequires: libatomic-devel
81-
BuildRequires: pthread
84+
BuildRequires: gcc-toolset-14-libatomic-devel
85+
BuildRequires: pkgconfig
86+
BuildRequires: lz4-devel
87+
BuildRequires: openssl-devel
88+
8289
Requires: libatomic
8390
Requires: fuse3
8491
Requires: telemetry
8592
Requires: lz4
8693
Requires: openssl
87-
BuildRequires: doxygen
88-
BuildRequires: pkgconfig
89-
BuildRequires: lz4-devel
90-
BuildRequires: openssl-devel
9194

9295
# Make sure that build is always performed out-of-source
9396
%undefine __cmake_in_source_build

pkg/tgz/CMakeLists.txt

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,23 @@ add_custom_target(tgz
99
"--output=${TGZ_FILE}"
1010
"HEAD"
1111
)
12+
13+
add_custom_target(tgz-msec
14+
COMMENT "Generating tar.gz package..."
15+
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
16+
COMMAND
17+
"${GIT_EXECUTABLE}" "archive"
18+
"--prefix=ipfixprobe-msec-${VERSION}/"
19+
"--output=${TGZ_FILE_MSEC}"
20+
"HEAD"
21+
)
22+
23+
add_custom_target(tgz-nemea
24+
COMMENT "Generating tar.gz package..."
25+
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
26+
COMMAND
27+
"${GIT_EXECUTABLE}" "archive"
28+
"--prefix=ipfixprobe-nemea-${VERSION}/"
29+
"--output=${TGZ_FILE_NEMEA}"
30+
"HEAD"
31+
)

0 commit comments

Comments
 (0)