General packaging improvements

- Switch to GitHub release archive; as a result, we must now run autoreconf
- Patch additional allocation-related issues
- Switch BR’s to pkgconfig(…)
- Drop obsolete macros and workarounds
- General tidying
- Don’t glob over the .so version
This commit is contained in:
Benjamin A. Beasley 2022-01-12 12:30:52 -05:00
parent ebf7199f77
commit b77712bb23
4 changed files with 113 additions and 30 deletions

2
.gitignore vendored
View File

@ -1,3 +1,5 @@
libmetalink-0.0.3.tar.bz2
/libmetalink-0.1.2.tar.bz2
/libmetalink-0.1.3.tar.bz2
/libmetalink-0.1.3.tar.gz
/libmetalink-release-0.1.3.tar.gz

View File

@ -0,0 +1,54 @@
From 204c580643f7c52364520926b9df3a621fab6df7 Mon Sep 17 00:00:00 2001
From: Martin Sehnoutka <msehnout@redhat.com>
Date: Tue, 24 Jul 2018 15:10:40 +0200
Subject: [PATCH] fix covscan issues
---
lib/libexpat_metalink_parser.c | 3 +++
lib/metalink_pctrl.c | 2 ++
2 files changed, 5 insertions(+)
diff --git a/lib/libexpat_metalink_parser.c b/lib/libexpat_metalink_parser.c
index 4e73aef..79b091c 100644
--- a/lib/libexpat_metalink_parser.c
+++ b/lib/libexpat_metalink_parser.c
@@ -29,6 +29,7 @@
#include <string.h>
#include <unistd.h>
+#include <stdlib.h>
#include <errno.h>
#include <assert.h>
@@ -56,6 +57,8 @@ static void split_ns_name(const char** localname,
*localname = sep+1;
len = sep-src;
temp = malloc((len+1) * sizeof **ns_uri);
+ if (temp == NULL)
+ exit(EXIT_FAILURE);
memcpy(temp, src, len);
temp[len] = '\0';
*ns_uri = temp;
diff --git a/lib/metalink_pctrl.c b/lib/metalink_pctrl.c
index c25989b..e6fb8f8 100644
--- a/lib/metalink_pctrl.c
+++ b/lib/metalink_pctrl.c
@@ -469,6 +469,7 @@ metalink_error_t metalink_pctrl_file_set_language(metalink_pctrl_t* ctrl, const
l = strdup(language);
ctrl->languages = metalink_list_new();
if(!ctrl->languages || !l || metalink_list_append(ctrl->languages, l) != 0) {
+ if (l) free(l);
return METALINK_ERR_BAD_ALLOC;
}
@@ -486,6 +487,7 @@ metalink_error_t metalink_pctrl_file_set_os(metalink_pctrl_t* ctrl, const char*
o = strdup(os);
ctrl->oses = metalink_list_new();
if(!ctrl->oses || !o || metalink_list_append(ctrl->oses, o) != 0) {
+ if (o) free(o);
return METALINK_ERR_BAD_ALLOC;
}
--
2.17.1

View File

@ -1,66 +1,93 @@
Name: libmetalink
Version: 0.1.3
Release: 15%{?dist}
Summary: Metalink library written in C
License: MIT
URL: https://launchpad.net/libmetalink
Source0: https://launchpad.net/libmetalink/trunk/%{name}-%{version}/+download/%{name}-%{version}.tar.bz2
Name: libmetalink
Version: 0.1.3
%global so_version 3
Release: 16%{?dist}
Summary: Metalink library written in C
License: MIT
URL: https://github.com/metalink-dev/libmetalink
Source0: %{url}/archive/release-%{version}/libmetalink-release-%{version}.tar.gz
# NULL ptr deref in initial_state_start_fun
# https://bugs.launchpad.net/libmetalink/+bug/1888672
Patch0: libmetalink-0.1.3-ns_uri.patch
Patch0: https://bugs.launchpad.net/libmetalink/+bug/1888672/+attachment/5395227/+files/libmetalink-0.1.3-ns_uri.patch
# Fix few issues found by the Coverity static analysis tool
# https://bugs.launchpad.net/libmetalink/+bug/1784359
# https://github.com/metalink-dev/libmetalink/pull/2
Patch1: https://bugs.launchpad.net/libmetalink/+bug/1784359/+attachment/5169495/+files/0001-fix-covscan-issues.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: libtool
BuildRequires: gcc
BuildRequires: expat-devel
BuildRequires: CUnit-devel
BuildRequires: make
BuildRequires: make
BuildRequires: pkgconfig(expat)
BuildRequires: pkgconfig(cunit)
# Required for AM_PATH_XML2 m4 macro so we can “autoreconf”; however, expat is
# used preferentially where available.
BuildRequires: libxml2-devel
%description
libmetalink is a Metalink C library. It adds Metalink functionality such as
parsing Metalink XML files to programs written in C.
%package devel
Summary: Files needed for developing with %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
%description devel
%package devel
Summary: Files needed for developing with libmetalink
Requires: libmetalink%{?_isa} = %{version}-%{release}
%description devel
Files needed for building applications with libmetalink.
%prep
%autosetup -p1
%autosetup -p1 -n libmetalink-release-%{version}
%build
autoreconf --force --install --verbose
%configure --disable-static
%make_build
%check
make check
%make_build check
%install
rm -rf $RPM_BUILD_ROOT
%make_install
find $RPM_BUILD_ROOT -name *.la -exec rm {} \;
find '%{buildroot}' -type f -name '*la' -print -delete
%ldconfig_scriptlets
%files
%{!?_licensedir:%global license %%doc}
%license COPYING
%doc README
%{_libdir}/libmetalink.so.*
%{_libdir}/libmetalink.so.%{so_version}
%{_libdir}/libmetalink.so.%{so_version}.*
%files devel
%dir %{_includedir}/metalink/
%{_includedir}/metalink/metalink_error.h
%{_includedir}/metalink/metalink.h
%{_includedir}/metalink/metalink_parser.h
%{_includedir}/metalink/metalink_types.h
%{_includedir}/metalink/metalinkver.h
%{_includedir}/metalink/
%{_libdir}/libmetalink.so
%{_libdir}/pkgconfig/%{name}.pc
%{_mandir}/man3/*
%{_libdir}/pkgconfig/libmetalink.pc
%{_mandir}/man3/metalink*.3.*
%changelog
* Wed Jan 12 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 0.1.3-16
- Switch to GitHub release archive; as a result, we must now run autoreconf
- Patch additional allocation-related issues
- Switch BRs to pkgconfig(…)
- Drop obsolete macros and workarounds
- General tidying
- Dont glob over the .so version
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.3-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild

View File

@ -1 +1 @@
292f290d55ab76a68759483c10f0b110 libmetalink-0.1.3.tar.bz2
SHA512 (libmetalink-release-0.1.3.tar.gz) = 7985fb0e8a5defe683284065cc2081050bd2f5c0e474e4ec87a2384dec10069ef96c8229f0b5121551e51796e60d982c3c73d1317c85b595833b4320fcf1fc74