## START: Set by rpmautospec ## (rpmautospec version 0.8.4) ## RPMAUTOSPEC: autorelease, autochangelog %define autorelease(e:s:pb:n) %{?-p:0.}%{lua: release_number = 1; base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); print(release_number + base_release_number - 1); }%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} ## END: Set by rpmautospec Name: libmodsecurity Version: 3.0.17 Release: 1.mikhaelos%{?dist} Summary: A library that loads/interprets rules written in the ModSecurity SecRules License: Apache-2.0 URL: https://github.com/owasp-modsecurity/ModSecurity Source0: https://github.com/owasp-modsecurity/ModSecurity/releases/download/v%{version}/modsecurity-v%{version}.tar.gz Source1: https://github.com/owasp-modsecurity/ModSecurity/releases/download/v%{version}/modsecurity-v%{version}.tar.gz.asc # Key 0B2BA1924065B44691202A2AD286E022149F0F6E Source2: https://keys.openpgp.org/vks/v1/by-fingerprint/0B2BA1924065B44691202A2AD286E022149F0F6E#/OWASP_ModSecurity.asc Source3: https://github.com/lloyd/yajl/archive/refs/tags/2.1.0.tar.gz#/yajl-2.1.0.tar.gz BuildRequires: bison BuildRequires: cmake BuildRequires: flex BuildRequires: gcc-c++ BuildRequires: git-core # for gpg verification BuildRequires: gnupg2 BuildRequires: make BuildRequires: pkgconfig(libcurl) %if 0%{?fedora} || 0%{?rhel} >= 9 BuildRequires: pkgconfig(libmaxminddb) %else BuildRequires: pkgconfig(geoip) %endif BuildRequires: pkgconfig(libpcre2-8) BuildRequires: pkgconfig(libxml-2.0) BuildRequires: pkgconfig(lmdb) BuildRequires: ssdeep-devel # libinjection is supposed to be bundled (same as with mod_security 2.x) # See: https://github.com/client9/libinjection#embedding Provides: bundled(libinjection) = 3.9.2 %description Libmodsecurity is one component of the ModSecurity v3 project. The library codebase serves as an interface to ModSecurity Connectors taking in web traffic and applying traditional ModSecurity processing. In general, it provides the capability to load/interpret rules written in the ModSecurity SecRules format and apply them to HTTP content provided by your application via Connectors. %package devel Summary: Development files for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} %description devel The %{name}-devel package contains libraries and header files for developing applications that use %{name}. %package static Summary: Development files for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} %description static The %{name}-static package contains static libraries for developing applications that use %{name}. %package -n yajl Summary: Yet Another JSON Library License: ISC %description -n yajl YAJL is a small event-driven JSON parser written in ANSI C. %package -n yajl-devel Summary: Development files for YAJL License: ISC Requires: yajl%{?_isa} = 2.1.0-%{release} %description -n yajl-devel The yajl-devel package contains libraries and header files for developing applications that use YAJL. %prep %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' %setup -q -n modsecurity-v%{version} -a 3 %build %set_build_flags cmake -S yajl-2.1.0 -B yajl-build \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_C_FLAGS="$CFLAGS" \ -DCMAKE_EXE_LINKER_FLAGS="$LDFLAGS" \ -DCMAKE_SHARED_LINKER_FLAGS="$LDFLAGS" \ -DCMAKE_INSTALL_PREFIX="$PWD/yajl-root%{_prefix}" \ -DLIB_SUFFIX=64 cmake --build yajl-build --parallel %{?_smp_build_ncpus} cmake --install yajl-build export PKG_CONFIG_PATH="$PWD/yajl-root%{_datarootdir}/pkgconfig" export LD_LIBRARY_PATH="$PWD/yajl-root%{_libdir}" %configure --libdir=%{_libdir} --with-lmdb --with-pcre2 --without-pcre %make_build %install mkdir -p %{buildroot}%{_prefix} cp -a yajl-root%{_prefix}/. %{buildroot}%{_prefix}/ %make_install sed -i 's|^prefix=.*|prefix=%{_prefix}|' %{buildroot}%{_datarootdir}/pkgconfig/yajl.pc # Clean out files that should not be part of the rpm. find %{buildroot} -name '*.la' -delete %ldconfig_scriptlets %files %doc README.md AUTHORS %{_libdir}/*.so.* %{_bindir}/* %license LICENSE %files devel %doc README.md AUTHORS %{_includedir}/modsecurity %{_libdir}/libmodsecurity.so %{_libdir}/pkgconfig/libmodsecurity.pc %license LICENSE %files static %{_libdir}/libmodsecurity.a %files -n yajl %license yajl-2.1.0/COPYING %{_libdir}/libyajl.so.2* %files -n yajl-devel %{_includedir}/yajl %{_libdir}/libyajl.so %{_libdir}/libyajl_s.a %{_datarootdir}/pkgconfig/yajl.pc