Skip to content

Commit 919269d

Browse files
author
Pavel Siska
committed
CMake: introduce rpm-msec and rpm-nemea target
1 parent 98463b4 commit 919269d

File tree

7 files changed

+293
-13
lines changed

7 files changed

+293
-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: 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: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
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+
Source0: %{name}-%{version}.tar.gz
14+
15+
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}
16+
BuildRequires: (gcc >= 10 or gcc-toolset-13-gcc)
17+
BuildRequires: (gcc-c++ >= 10 or gcc-toolset-13-gcc-c++)
18+
BuildRequires: make
19+
BuildRequires: cmake >= 3.12
20+
BuildRequires: libunwind-devel
21+
BuildRequires: gcc-toolset-14-libatomic-devel
22+
BuildRequires: pkgconfig
23+
BuildRequires: lz4-devel
24+
BuildRequires: openssl-devel
25+
26+
Requires: libatomic
27+
Requires: fuse3
28+
Requires: telemetry
29+
Requires: lz4
30+
Requires: openssl
31+
32+
# Make sure that build is always performed out-of-source
33+
%undefine __cmake_in_source_build
34+
35+
%description
36+
The package contains tools, configuration files and traffic samples
37+
that make up the main components of the test environment.
38+
39+
%prep
40+
%autosetup
41+
42+
%build
43+
%cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_MILISECONDS_TIMESTAMP=ON
44+
%cmake_build
45+
46+
%install
47+
%cmake_install
48+
49+
%files
50+
%license LICENSE
51+
%{_bindir}/ipfixprobe
52+
%{_bindir}/ipfixprobed
53+
54+
%{_libdir}/ipfixprobe/input/libipfixprobe-input-raw.so
55+
56+
%{_libdir}/ipfixprobe/output/libipfixprobe-output-ipfix.so
57+
%{_libdir}/ipfixprobe/output/libipfixprobe-output-text.so
58+
59+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-basicplus.so
60+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-bstats.so
61+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-dns.so
62+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-dnssd.so
63+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-flowhash.so
64+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-http.so
65+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-icmp.so
66+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-pstats.so
67+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-phists.so
68+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-ovpn.so
69+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-vlan.so
70+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-osquery.so
71+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-netbios.so
72+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-tls.so
73+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-wg.so
74+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-smtp.so
75+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-quic.so
76+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-idpcontent.so
77+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-mqtt.so
78+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-passivedns.so
79+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-ssadetector.so
80+
%{_libdir}/ipfixprobe/process/libipfixprobe-process-ssdp.so
81+
82+
%{_libdir}/ipfixprobe/storage/libipfixprobe-storage-cache.so
83+
84+
%{_sysconfdir}/ipfixprobe/link0.conf.example
85+
%{_sysconfdir}/ipfixprobe/dpdk_direct.conf.example
86+
%{_sysconfdir}/ipfixprobe/dpdk_mring.conf.example
87+
88+
%{_unitdir}/ipfixprobe-monitoring.target
89+
%{_unitdir}/[email protected]
90+
91+
%changelog

pkg/rpm/ipfixprobe-nemea.spec.in

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

pkg/rpm/ipfixprobe.spec.in

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -72,22 +72,21 @@ Experimental process plugins.
7272
%endif
7373

7474
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}
75-
BuildRequires: gcc >= 8
76-
BuildRequires: gcc-c++ >= 8
75+
BuildRequires: (gcc >= 10 or gcc-toolset-13-gcc)
76+
BuildRequires: (gcc-c++ >= 10 or gcc-toolset-13-gcc-c++)
7777
BuildRequires: make
7878
BuildRequires: cmake >= 3.12
7979
BuildRequires: libunwind-devel
80-
BuildRequires: libatomic-devel
81-
BuildRequires: pthread
80+
BuildRequires: gcc-toolset-14-libatomic-devel
81+
BuildRequires: pkgconfig
82+
BuildRequires: lz4-devel
83+
BuildRequires: openssl-devel
84+
8285
Requires: libatomic
8386
Requires: fuse3
8487
Requires: telemetry
8588
Requires: lz4
8689
Requires: openssl
87-
BuildRequires: doxygen
88-
BuildRequires: pkgconfig
89-
BuildRequires: lz4-devel
90-
BuildRequires: openssl-devel
9190

9291
# Make sure that build is always performed out-of-source
9392
%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)