rebuild for 3.13, explicit python3-setuptools, cosmetics

This commit is contained in:
Michal Ambroz 2024-01-23 00:11:19 +01:00
parent 1405c42b50
commit e8beccd6cf
4 changed files with 213 additions and 28 deletions

View File

@ -1,12 +1,121 @@
diff -ru openscap-1.3.9/swig/perl/CMakeLists.txt openscap-1.3.9.new/swig/perl/CMakeLists.txt From f997cee6f74f4698aadc136b821bc0d5875c59de Mon Sep 17 00:00:00 2001
--- openscap-1.3.9/swig/perl/CMakeLists.txt 2023-09-06 16:04:46.000000000 +0200 From: Stephen L Arnold <sarnold@vctlabs.com>
+++ openscap-1.3.9.new/swig/perl/CMakeLists.txt 2023-11-23 23:55:45.662845801 +0100 Date: Tue, 11 Jul 2023 17:49:10 -0700
@@ -20,7 +20,7 @@ Subject: [PATCH 1/3] make default perl install path respect
CMAKE_INSTALL_PREFIX
Signed-off-by: Stephen L Arnold <sarnold@vctlabs.com>
---
swig/perl/CMakeLists.txt | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/swig/perl/CMakeLists.txt b/swig/perl/CMakeLists.txt
index 057b365bf7..5ce41e9fa8 100644
--- a/swig/perl/CMakeLists.txt
+++ b/swig/perl/CMakeLists.txt
@@ -1,6 +1,8 @@
include(UseSWIG)
include(FindPerlLibs)
+string(SUBSTRING "${PERL_VERSION_STRING}" 0 4 PERL_VERSION_MINOR)
+
set(CMAKE_SWIG_FLAGS "-module" "openscap_pm")
if (${CMAKE_VERSION} VERSION_LESS "3.8.0")
swig_add_module(openscap_pm perl5 ../openscap.i)
@@ -20,7 +22,7 @@ if (APPLE OR (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD"))
DESTINATION ${CMAKE_INSTALL_DATADIR}/perl5/vendor_perl) DESTINATION ${CMAKE_INSTALL_DATADIR}/perl5/vendor_perl)
else() else()
install(TARGETS ${SWIG_MODULE_openscap_pm_REAL_NAME} install(TARGETS ${SWIG_MODULE_openscap_pm_REAL_NAME}
- DESTINATION ${PERL_VENDORLIB}) - DESTINATION ${PERL_VENDORLIB})
+ DESTINATION ${PERL_VENDORARCH}) + DESTINATION ${CMAKE_INSTALL_LIBDIR}/perl5/${PERL_VERSION_MINOR})
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/openscap_pm.pm install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/openscap_pm.pm
DESTINATION ${PERL_VENDORARCH}) - DESTINATION ${PERL_VENDORARCH})
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/perl5/vendor_perl/${PERL_VERSION_MINOR})
endif() endif()
From 6549f7f3142fa071966a6b7c97cd1b85edece990 Mon Sep 17 00:00:00 2001
From: Stephen L Arnold <sarnold@vctlabs.com>
Date: Thu, 14 Dec 2023 16:06:34 -0800
Subject: [PATCH 2/3] chg: dev: use cmake vendor paths for perl install
defaults
* also display both vendor/non-vendor system paths in linux envs
Signed-off-by: Stephen L Arnold <sarnold@vctlabs.com>
---
CMakeLists.txt | 4 ++++
swig/perl/CMakeLists.txt | 10 ++++++++--
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6244980583..d43993bce5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -463,6 +463,10 @@ message(STATUS " ")
message(STATUS "Language bindings:")
message(STATUS "python3 bindings: ${ENABLE_PYTHON3}")
message(STATUS "perl bindings: ${ENABLE_PERL}")
+message(STATUS "perl vendorlib: ${PERL_VENDORLIB}")
+message(STATUS "perl vendorarch: ${PERL_VENDORARCH}")
+message(STATUS "perl privlib: ${PERL_PRIVLIB}")
+message(STATUS "perl archlib: ${PERL_ARCHLIB}")
message(STATUS " ")
message(STATUS "Utilities:")
diff --git a/swig/perl/CMakeLists.txt b/swig/perl/CMakeLists.txt
index 5ce41e9fa8..789394636c 100644
--- a/swig/perl/CMakeLists.txt
+++ b/swig/perl/CMakeLists.txt
@@ -3,6 +3,12 @@ include(FindPerlLibs)
string(SUBSTRING "${PERL_VERSION_STRING}" 0 4 PERL_VERSION_MINOR)
+# process cmake vendor paths to respect install prefix, use as Linux defaults below
+STRING(REGEX REPLACE "^/usr/" "${CMAKE_INSTALL_PREFIX}/" PERL_VENDORARCH "${PERL_VENDORARCH}")
+STRING(REGEX REPLACE "^/usr/" "${CMAKE_INSTALL_PREFIX}/" PERL_VENDORLIB "${PERL_VENDORLIB}")
+message(STATUS "perl install libdir: ${PERL_VENDORARCH}")
+message(STATUS "perl install archdir: ${PERL_VENDORLIB}")
+
set(CMAKE_SWIG_FLAGS "-module" "openscap_pm")
if (${CMAKE_VERSION} VERSION_LESS "3.8.0")
swig_add_module(openscap_pm perl5 ../openscap.i)
@@ -22,7 +28,7 @@ if (APPLE OR (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD"))
DESTINATION ${CMAKE_INSTALL_DATADIR}/perl5/vendor_perl)
else()
install(TARGETS ${SWIG_MODULE_openscap_pm_REAL_NAME}
- DESTINATION ${CMAKE_INSTALL_LIBDIR}/perl5/${PERL_VERSION_MINOR})
+ DESTINATION ${PERL_VENDORARCH}/auto/openscap_pm/)
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/openscap_pm.pm
- DESTINATION ${CMAKE_INSTALL_LIBDIR}/perl5/vendor_perl/${PERL_VERSION_MINOR})
+ DESTINATION ${PERL_VENDORARCH})
endif()
From f70f38ecaf659474e69c902454f3bfcfedc89cc0 Mon Sep 17 00:00:00 2001
From: Stephen L Arnold <sarnold@vctlabs.com>
Date: Fri, 15 Dec 2023 16:44:53 -0800
Subject: [PATCH 3/3] check for default prefix before (possibly) munging with
prefix string
Signed-off-by: Stephen L Arnold <sarnold@vctlabs.com>
---
swig/perl/CMakeLists.txt | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/swig/perl/CMakeLists.txt b/swig/perl/CMakeLists.txt
index 789394636c..ca4d2705e2 100644
--- a/swig/perl/CMakeLists.txt
+++ b/swig/perl/CMakeLists.txt
@@ -4,8 +4,11 @@ include(FindPerlLibs)
string(SUBSTRING "${PERL_VERSION_STRING}" 0 4 PERL_VERSION_MINOR)
# process cmake vendor paths to respect install prefix, use as Linux defaults below
-STRING(REGEX REPLACE "^/usr/" "${CMAKE_INSTALL_PREFIX}/" PERL_VENDORARCH "${PERL_VENDORARCH}")
-STRING(REGEX REPLACE "^/usr/" "${CMAKE_INSTALL_PREFIX}/" PERL_VENDORLIB "${PERL_VENDORLIB}")
+if (NOT CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
+ STRING(REGEX REPLACE "^/usr/" "${CMAKE_INSTALL_PREFIX}/" PERL_VENDORARCH "${PERL_VENDORARCH}")
+ STRING(REGEX REPLACE "^/usr/" "${CMAKE_INSTALL_PREFIX}/" PERL_VENDORLIB "${PERL_VENDORLIB}")
+endif()
+
message(STATUS "perl install libdir: ${PERL_VENDORARCH}")
message(STATUS "perl install archdir: ${PERL_VENDORLIB}")

View File

@ -8,24 +8,73 @@ URL: http://www.open-scap.org/
VCS: https://github.com/OpenSCAP/openscap VCS: https://github.com/OpenSCAP/openscap
Source0: https://github.com/OpenSCAP/%{name}/releases/download/%{version}/%{name}-%{version}.tar.gz Source0: https://github.com/OpenSCAP/%{name}/releases/download/%{version}/%{name}-%{version}.tar.gz
%global common_description %{expand:
OpenSCAP is a set of open source libraries providing an easier path
for integration of the SCAP line of standards. SCAP is a line of standards
managed by NIST with the goal of providing a standard language
for the expression of Computer Network Defense related information.}
# By default build with checks (time consuming)
%bcond_without check %bcond_without check
# By default fedora package is built with apt
%if 0%{?fedora}
%bcond_without apt
%else
# apt is missing in CentOS (ELN builds) and in EPEL available currently only in 9
%bcond_with apt
%endif
# By default fedora package is built with opendbx support
%if 0%{?fedora}
%bcond_without opendbx
%else
# opendbx is missing in RHEL (ELN builds) without rest of the EPEL packages
# conditional allows for example rebuild in COPR + EPEL
%bcond_with opendbx
%endif
# Fedora arched lib directories # Fedora arched lib directories
# https://github.com/OpenSCAP/openscap/pull/2056 # originally https://github.com/OpenSCAP/openscap/pull/2056
Patch1: openscap-1.3.9-perlpath.patch # accepted was https://github.com/OpenSCAP/openscap/pull/2054
Patch1: https://github.com/OpenSCAP/openscap/pull/2054.patch#/openscap-1.3.9-perlpath.patch
# Implicit declarations due to missing includes # Implicit declarations due to missing includes
# reported in #PR2060, #PR2061, #PR2062 # reported in #PR2060, #PR2061, #PR2062
# https://github.com/OpenSCAP/openscap/pull/2060
# https://github.com/OpenSCAP/openscap/pull/2061
# https://github.com/OpenSCAP/openscap/pull/2062
Patch2: openscap-1.3.9-includes.patch Patch2: openscap-1.3.9-includes.patch
# Fix test test_sysctl_probe_all.sh # Fix test test_sysctl_probe_all.sh
# https://github.com/OpenSCAP/openscap/commit/f8366b395b977392d724c6cc84c7295590c39ee8
Patch3: openscap-1.3.10-fix_sysctl_probe_tests-PR-2050.patch Patch3: openscap-1.3.10-fix_sysctl_probe_tests-PR-2050.patch
Patch4: openscap-c99.patch
Patch5: openscap-c99-2.patch # Fix type of libxml2 error callback function
# https://github.com/OpenSCAP/openscap/pull/2069
Patch4: openscap-1.3.9-c99-libxml2.patch
# Python bindings: Do not reuse $result for pointer conversion result
# https://github.com/OpenSCAP/openscap/pull/2069
Patch5: openscap-1.3.9-c99-python.patch
%if 0%{?rhel} && ! 0%{?eln}
BuildRequires: epel-rpm-macros
%endif
BuildRequires: systemd-rpm-macros
BuildRequires: make BuildRequires: make
%if 0%{?fedora} || 0%{?rhel} >= 8
BuildRequires: cmake >= 2.6 BuildRequires: cmake >= 2.6
BuildRequires: cmake-rpm-macros
%else
BuildRequires: cmake3
%endif
BuildRequires: gcc BuildRequires: gcc
BuildRequires: gcc-c++ BuildRequires: gcc-c++
BuildRequires: swig BuildRequires: swig
@ -47,22 +96,28 @@ BuildRequires: libyaml-devel
BuildRequires: xmlsec1-devel BuildRequires: xmlsec1-devel
BuildRequires: xmlsec1-openssl-devel BuildRequires: xmlsec1-openssl-devel
%if 0%{?fedora} # Fedora has procps-ng-devel, which provides procps-devel
BuildRequires: procps-devel
%if %{with apt}
# apt-libs missing on Centos # apt-libs missing on Centos
BuildRequires: apt-devel BuildRequires: apt-devel
%endif
%if %{with opendbx}
# opendbx is not available in RHEL # opendbx is not available in RHEL
BuildRequires: opendbx-devel BuildRequires: opendbx-devel
%endif %endif
# GConf2 not used on purpose as obsolete and blocking anaconda addon # GConf2 not used on purpose as obsolete and blocking anaconda addon
# BuildRequires: GConf2-devel # BuildRequires: GConf2-devel
BuildRequires: procps-ng-devel
%if %{with check} %if %{with check}
BuildRequires: perl-interpreter BuildRequires: perl-interpreter
BuildRequires: perl-XML-XPath BuildRequires: perl-XML-XPath
BuildRequires: bzip2 BuildRequires: bzip2
%endif %endif
BuildRequires: systemd-rpm-macros
Requires: bash Requires: bash
Requires: bzip2-libs Requires: bzip2-libs
@ -78,19 +133,14 @@ Requires: popt
Requires: procps Requires: procps
Requires: xmlsec1 xmlsec1-openssl Requires: xmlsec1 xmlsec1-openssl
%if %{with apt}
# apt-libs missing on Centos # apt-libs missing on Centos
%if 0%{?fedora}
Requires: apt-libs Requires: apt-libs
%endif %endif
%description %{common_description}
%description
OpenSCAP is a set of open source libraries providing an easier path
for integration of the SCAP line of standards. SCAP is a line of standards
managed by NIST with the goal of providing a standard language
for the expression of Computer Network Defense related information.
%package devel %package devel
Summary: Development files for %{name} Summary: Development files for %{name}
Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
@ -101,18 +151,22 @@ BuildRequires: doxygen
%description devel %description devel
The %{name}-devel package contains libraries and header files for The %{name}-devel package contains libraries and header files for
developing applications that use %{name}. developing applications that use %{name}.
%{common_description}
%package python3 %package python3
Summary: Python 3 bindings for %{name} Summary: Python 3 bindings for %{name}
Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
%{?python_provide:%python_provide python%{python3_pkgversion}-openscap } %{?python_provide:%python_provide python%{python3_pkgversion}-openscap }
BuildRequires: python%{python3_pkgversion}-devel BuildRequires: python%{python3_pkgversion}-devel
BuildRequires: python%{python3_pkgversion}-setuptools
%if 0%{?fedora}
BuildRequires: python-rpm-macros
%endif
%description python3 %description python3
The %{name}-python3 package contains the bindings so that %{name} The %{name}-python3 package contains the bindings so that %{name}
libraries can be used by python3. libraries can be used by python3.
%{common_description}
%package perl %package perl
Summary: Perl bindings for %{name} Summary: Perl bindings for %{name}
@ -128,7 +182,7 @@ BuildRequires: perl-XML-Parser
%description perl %description perl
The perl package contains the bindings so that %{name} The perl package contains the bindings so that %{name}
libraries can be used by perl. libraries can be used by perl.
%{common_description}
%package scanner %package scanner
Summary: OpenSCAP Scanner Tool (oscap) Summary: OpenSCAP Scanner Tool (oscap)
@ -140,6 +194,7 @@ BuildRequires: libcurl-devel >= 7.12.0
The %{name}-scanner package contains oscap command-line tool. The oscap The %{name}-scanner package contains oscap command-line tool. The oscap
is configuration and vulnerability scanner, capable of performing is configuration and vulnerability scanner, capable of performing
compliance checking using SCAP content. compliance checking using SCAP content.
%{common_description}
%package utils %package utils
Summary: OpenSCAP Utilities Summary: OpenSCAP Utilities
@ -151,6 +206,7 @@ Requires: %{name}-scanner%{?_isa} = %{epoch}:%{version}-%{release}
The %{name}-utils package contains command-line tools build on top The %{name}-utils package contains command-line tools build on top
of OpenSCAP library. Historically, openscap-utils included oscap of OpenSCAP library. Historically, openscap-utils included oscap
tool which is now separated to %{name}-scanner sub-package. tool which is now separated to %{name}-scanner sub-package.
%{common_description}
%package engine-sce %package engine-sce
Summary: Script Check Engine plug-in for OpenSCAP Summary: Script Check Engine plug-in for OpenSCAP
@ -160,6 +216,7 @@ Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
The Script Check Engine is non-standard extension to SCAP protocol. This The Script Check Engine is non-standard extension to SCAP protocol. This
engine allows content authors to avoid OVAL language and write their assessment engine allows content authors to avoid OVAL language and write their assessment
commands using a scripting language (Bash, Perl, Python, Ruby, ...). commands using a scripting language (Bash, Perl, Python, Ruby, ...).
%{common_description}
%package engine-sce-devel %package engine-sce-devel
Summary: Development files for %{name}-engine-sce Summary: Development files for %{name}-engine-sce
@ -170,6 +227,7 @@ Requires: pkgconfig
%description engine-sce-devel %description engine-sce-devel
The %{name}-engine-sce-devel package contains libraries and header files The %{name}-engine-sce-devel package contains libraries and header files
for developing applications that use %{name}-engine-sce. for developing applications that use %{name}-engine-sce.
%{common_description}
%package containers %package containers
Summary: Utils for scanning containers Summary: Utils for scanning containers
@ -179,11 +237,18 @@ BuildArch: noarch
%description containers %description containers
Tool for scanning Atomic containers. Tool for scanning Atomic containers.
%{common_description}
%prep %prep
%autosetup -p1 %autosetup -p1
%build %build
# definition controlling to use out-of-source build by default
# still needed for EPEL8 build
# more info - https://bugzilla.redhat.com/show_bug.cgi?id=1861329
%undefine __cmake_in_source_build
# gconf is a legacy system not used any more, and it blocks testing of oscap-anaconda-addon # gconf is a legacy system not used any more, and it blocks testing of oscap-anaconda-addon
# as gconf is no longer part of the installation medium # as gconf is no longer part of the installation medium
%cmake \ %cmake \
@ -205,13 +270,19 @@ ctest -V -E sce/test_sce_in_ds.sh
%install %install
%cmake_install %cmake_install
find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';' find %{buildroot} -name '*.la' -exec rm -f {} ';'
# fix python shebangs # fix python shebangs
%{__python3} %{_rpmconfigdir}/redhat/pathfix.py -i %{__python3} -p -n $RPM_BUILD_ROOT%{_bindir}/scap-as-rpm %if 0%{?fedora}
%{__python3} %{_rpmconfigdir}/redhat/pathfix.py -i %{__python3} -p -n %{buildroot}%{_bindir}/scap-as-rpm
%else
pathfix.py -i %{__python3} -p -n %{buildroot}%{_bindir}/scap-as-rpm
%endif
%ldconfig_scriptlets %ldconfig_scriptlets
%files %files
%doc AUTHORS NEWS README.md %doc AUTHORS NEWS README.md
%license COPYING %license COPYING
@ -232,7 +303,7 @@ find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
%files perl %files perl
%{perl_vendorarch}/openscap_pm.pm %{perl_vendorarch}/openscap_pm.pm
%{perl_vendorarch}/openscap_pm.so %{perl_vendorarch}/auto/openscap_pm/openscap_pm.so
%files devel %files devel
@ -277,6 +348,11 @@ find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
%{_mandir}/man8/oscap-podman.8* %{_mandir}/man8/oscap-podman.8*
%changelog %changelog
* Sun Jan 21 2024 Michal Ambroz <rebus _AT seznam.cz> - 1:1.3.9-7
- add conditionals to be able to rebuild with opendbx/apt even on EPEL+RHEL
- cosmetics: rename patches, add comments, use buildroot macro instead of env
- add explicit build requirement to python3-setuptools, needed for 3.13+
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1:1.3.9-6 * Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1:1.3.9-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
@ -448,10 +524,10 @@ find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
* Thu Jun 13 2019 Jan Černý <jcerny@redhat.com> - 1:1.3.1-1 * Thu Jun 13 2019 Jan Černý <jcerny@redhat.com> - 1:1.3.1-1
- upgrade to the latest upstream release - upgrade to the latest upstream release
* Mon Jun 10 22:13:21 CET 2019 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 1:1.3.0-7 * Mon Jun 10 2019 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 1:1.3.0-7
- Rebuild for RPM 4.15 - Rebuild for RPM 4.15
* Mon Jun 10 15:42:04 CET 2019 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 1:1.3.0-6 * Mon Jun 10 2019 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 1:1.3.0-6
- Rebuild for RPM 4.15 - Rebuild for RPM 4.15
* Sat Jun 01 2019 Jitka Plesnikova <jplesnik@redhat.com> - 1:1.3.0-5 * Sat Jun 01 2019 Jitka Plesnikova <jplesnik@redhat.com> - 1:1.3.0-5