diff --git a/0.20.1.tar.gz b/0.20.1.tar.gz deleted file mode 100644 index 8aafd64620d94635f5bbb6b0d7daabca3bfd3b7e..0000000000000000000000000000000000000000 Binary files a/0.20.1.tar.gz and /dev/null differ diff --git a/0001-Fix-a-file-descriptor-and-memory-leak-in-an-error-pa.patch b/0001-Fix-a-file-descriptor-and-memory-leak-in-an-error-pa.patch new file mode 100644 index 0000000000000000000000000000000000000000..6b8553016c6fccd1605f91bcafa8f7d55638ed97 --- /dev/null +++ b/0001-Fix-a-file-descriptor-and-memory-leak-in-an-error-pa.patch @@ -0,0 +1,43 @@ +From 424616d851d6fe58e89ae9b1b318853f8a899195 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= +Date: Mon, 1 Jul 2024 15:30:31 +0200 +Subject: [PATCH] Fix a file descriptor and memory leak in an error path of + cr_detect_compression() +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Covscan reported: + + createrepo_c-1.1.2/src/compression_wrapper.c:197: error[resourceLeak]: Resource leak: file + +It's a real bug and this patch fixes it. + +Resolves: https://issues.redhat.com/browse/RHEL-45645 +Signed-off-by: Petr Písař +--- + src/compression_wrapper.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/compression_wrapper.c b/src/compression_wrapper.c +index 60e8cbd..bcaa661 100644 +--- a/src/compression_wrapper.c ++++ b/src/compression_wrapper.c +@@ -190,13 +190,13 @@ cr_detect_compression(const char *filename, GError **err) + } + + size_t bytesRead = fread(magic, 1, sizeof(magic), file); ++ fclose(file); + if (bytesRead != sizeof(magic)) { + // Assume that if there's less than 5 bytes in the file, it's uncompressed + g_debug("%s: Unable to read bytes from file for magic number detection, assuming uncompressed (%s)", + __func__, filename); + return CR_CW_NO_COMPRESSION; + } +- fclose(file); + + if (!memcmp(magic, "\x1F\x8B", 2)) { + return CR_CW_GZ_COMPRESSION; +-- +2.45.2 + diff --git a/createrepo_c-1.1.2.tar.gz b/createrepo_c-1.1.2.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..2d0aca1114710f46fa5796cd6d8d9392ea3914bc Binary files /dev/null and b/createrepo_c-1.1.2.tar.gz differ diff --git a/createrepo_c.spec b/createrepo_c.spec index a462210d441c06d296e3ba82585cdb1cd6a8224d..516096038a5449f2537b9594b1b6cc9ddbf8b671 100644 --- a/createrepo_c.spec +++ b/createrepo_c.spec @@ -1,4 +1,4 @@ -%define anolis_release 2 +%define anolis_release 1 %global libmodulemd_version 2.3.0 %define __cmake_in_source_build 1 @@ -13,29 +13,32 @@ %bcond_with legacy_hashes +%bcond_with sanitizers + Summary: Creates a common metadata repository Name: createrepo_c -Version: 0.20.1 +Version: 1.1.2 Release: %{anolis_release}%{?dist} -License: GPLv2+ +License: GPL-2.0-or-later URL: https://github.com/rpm-software-management/createrepo_c -Source0: https://github.com/rpm-software-management/createrepo_c/archive/%{version}/%{version}.tar.gz +Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz +Patch0: 0001-Fix-a-file-descriptor-and-memory-leak-in-an-error-pa.patch + +%global epoch_dep %{?epoch:%{epoch}:} BuildRequires: cmake BuildRequires: gcc BuildRequires: bzip2-devel BuildRequires: doxygen -BuildRequires: file-devel BuildRequires: glib2-devel >= 2.22.0 BuildRequires: libcurl-devel BuildRequires: libxml2-devel BuildRequires: openssl-devel -BuildRequires: rpm-devel >= 4.8.0 -BuildRequires: sqlite-devel +BuildRequires: rpm-devel >= 4.8.0-28 +BuildRequires: sqlite-devel >= 3.6.18 BuildRequires: xz BuildRequires: xz-devel BuildRequires: zlib-devel -BuildRequires: python3-setuptools %if %{with zchunk} BuildRequires: pkgconfig(zck) >= 0.9.11 BuildRequires: zchunk @@ -45,15 +48,22 @@ BuildRequires: pkgconfig(modulemd-2.0) >= %{libmodulemd_version} BuildRequires: libmodulemd Requires: libmodulemd%{?_isa} >= %{libmodulemd_version} %endif -Requires: %{name}-libs = %{version}-%{release} +Requires: %{name}-libs = %{epoch_dep}%{version}-%{release} BuildRequires: bash-completion Requires: rpm >= 4.9.0 %if %{with drpm} BuildRequires: drpm-devel >= 0.4.0 %endif +BuildRequires: pkgconfig(libzstd) + +%if %{with sanitizers} +BuildRequires: libasan +BuildRequires: liblsan +BuildRequires: libubsan +%endif Obsoletes: createrepo < 0.11.0 -Provides: createrepo = %{version}-%{release} +Provides: createrepo = %{epoch_dep}%{version}-%{release} %description C implementation of Createrepo. @@ -70,7 +80,7 @@ for easy manipulation with a repodata. %package devel Summary: Library for repodata manipulation -Requires: %{name}-libs%{?_isa} = %{version}-%{release} +Requires: %{name}-libs%{?_isa} = %{epoch_dep}%{version}-%{release} %description devel This package contains the createrepo_c C library and header files. @@ -80,8 +90,9 @@ These development files are for easy manipulation with a repodata. Summary: Python 3 bindings for the createrepo_c library %{?python_provide:%python_provide python3-%{name}} BuildRequires: python3-devel +BuildRequires: python3-setuptools BuildRequires: python3-sphinx -Requires: %{name}-libs = %{version}-%{release} +Requires: %{name}-libs = %{epoch_dep}%{version}-%{release} %description -n python3-%{name} Python 3 bindings for the createrepo_c library. @@ -96,7 +107,7 @@ The %{name}-doc package contains documentation files for %{name}. %prep %autosetup -p1 - +%py3_shebang_fix examples/python mkdir build-py3 %build @@ -106,7 +117,8 @@ pushd build-py3 -DWITH_ZCHUNK=%{?with_zchunk:ON}%{!?with_zchunk:OFF} \ -DWITH_LIBMODULEMD=%{?with_libmodulemd:ON}%{!?with_libmodulemd:OFF} \ -DWITH_LEGACY_HASHES=%{?with_legacy_hashes:ON}%{!?with_legacy_hashes:OFF} \ - -DENABLE_DRPM=%{?with_drpm:ON}%{!?with_drpm:OFF} + -DENABLE_DRPM=%{?with_drpm:ON}%{!?with_drpm:OFF} \ + -DWITH_SANITIZERS=%{?with_sanitizers:ON}%{!?with_sanitizers:OFF} make %{?_smp_mflags} RPM_OPT_FLAGS="%{optflags}" # Build C documentation make doc-c @@ -131,8 +143,8 @@ popd ln -sr %{buildroot}%{_bindir}/createrepo_c %{buildroot}%{_bindir}/createrepo ln -sr %{buildroot}%{_bindir}/mergerepo_c %{buildroot}%{_bindir}/mergerepo ln -sr %{buildroot}%{_bindir}/modifyrepo_c %{buildroot}%{_bindir}/modifyrepo -%ldconfig_scriptlets libs +%ldconfig_scriptlets libs %generate_compatibility_deps %files @@ -168,6 +180,7 @@ ln -sr %{buildroot}%{_bindir}/modifyrepo_c %{buildroot}%{_bindir}/modifyrepo %{_includedir}/%{name}/ %files -n python3-%{name} +%doc examples/python/* %{python3_sitearch}/%{name}/ %{abidir}/_%{name}.dump %{python3_sitearch}/%{name}-%{version}-py%{python3_version}.egg-info @@ -176,6 +189,10 @@ ln -sr %{buildroot}%{_bindir}/modifyrepo_c %{buildroot}%{_bindir}/modifyrepo %doc README.md AUTHORS %changelog +* Fri Feb 28 2025 Zhao Hang - 1.1.2-1 +- Refer to CentOS Stream createrepo_c-1.1.2-4 (tdawson@redhat.com) +- Add abi and doc sub package + * Mon Mar 11 2024 Bo Ren - 0.20.1-2 - Rebuild with python3.11 - Add BuildRequires python3-setuptools