diff --git a/SOURCES/71.patch b/SOURCES/71.patch new file mode 100644 index 0000000..5653f4a --- /dev/null +++ b/SOURCES/71.patch @@ -0,0 +1,26 @@ +From 1cb55c72f3a7c52832ef7684dba8b12fd835bf06 Mon Sep 17 00:00:00 2001 +From: "Benjamin A. Beasley" +Date: Wed, 18 Jan 2023 10:36:15 -0500 +Subject: [PATCH] Fix warning from libinstpatch-scan.c (gtkdoc) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Fixes warning ”implicit declaration of function ‘ipatch_init’” +--- + docs/reference/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/docs/reference/CMakeLists.txt b/docs/reference/CMakeLists.txt +index c9ea3f6..3097736 100644 +--- a/docs/reference/CMakeLists.txt ++++ b/docs/reference/CMakeLists.txt +@@ -36,7 +36,7 @@ if (GTKDOC_FOUND) + IGNOREHEADERS ${ignore_headers} + SCANOPTS ${CMAKE_CURRENT_BINARY_DIR}/../../libinstpatch/version.h + SCANOBJOPTS --type-init-func=ipatch_init\(\) +- CFLAGS -I${CMAKE_SOURCE_DIR} ++ CFLAGS -I${CMAKE_SOURCE_DIR} -include libinstpatch/misc.h + LDFLAGS -L${CMAKE_CURRENT_BINARY_DIR}/../../libinstpatch -linstpatch-1.0 + LDPATH ${CMAKE_CURRENT_BINARY_DIR}/../../libinstpatch + DEPENDS instpatch-1.0 diff --git a/SOURCES/libinstpatch.rpmlintrc b/SOURCES/libinstpatch.rpmlintrc index f16d870..625b04f 100644 --- a/SOURCES/libinstpatch.rpmlintrc +++ b/SOURCES/libinstpatch.rpmlintrc @@ -1,2 +1,4 @@ # These are not real spelling errors... -addFilter(r'spelling-error .*(\(en_US\)| en_US) (wavetable) ') +addFilter(r" spelling-error \('([Ww]avetable)s?',") +# This copylib has no versioning +addFilter(r" unversioned-explicit-provides bundled(md5-plumb)" diff --git a/SPECS/libinstpatch.spec b/SPECS/libinstpatch.spec index 803f386..a55d614 100644 --- a/SPECS/libinstpatch.spec +++ b/SPECS/libinstpatch.spec @@ -1,10 +1,11 @@ ## START: Set by rpmautospec -## (rpmautospec version 0.2.5) -%define autorelease(e:s:pb:) %{?-p:0.}%{lua: - release_number = 7; +## (rpmautospec version 0.6.5) +## RPMAUTOSPEC: autorelease, autochangelog +%define autorelease(e:s:pb:n) %{?-p:0.}%{lua: + release_number = 20; base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); print(release_number + base_release_number - 1); -}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{?dist} +}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} ## END: Set by rpmautospec # https://github.com/swami/libinstpatch/issues/34 @@ -12,15 +13,6 @@ # Since this has never worked, we do not have %%files entries for the result. %bcond_with introspection -# Fails with -# CMake Error: Error required internal CMake variable not set, cmake may not be -# built correctly. -# Missing variable is: -# CMAKE_FIND_LIBRARY_PREFIXES -# -# When/if this is fixed, we will probably want a -doc subpackage. -%bcond_with gtkdoc - Name: libinstpatch Version: 1.1.6 %global api_version 1.0 @@ -29,20 +21,36 @@ Release: %autorelease Summary: Instrument file software library URL: http://www.swamiproject.org/ -# The entire source is LGPLv2 except: -# -# Public Domain: -# libinstpatch/md5.{c,h} -# examples/* +# The entire source is LGPL-2.1-only, except: +# • The following are LicenseRef-Fedora-Public-Domain: +# - libinstpatch/md5.{c,h} +# The algorithm is due to Ron Rivest. This code was +# written by Colin Plumb in 1993, no copyright is claimed. +# This code is in the public domain; do with it what you wish. +# - examples/create_sf2.c +# Use this example as you please (public domain) +# - examples/split_sfont.c +# Public domain use as you please +# Texts were added to public-domain-text.txt in fedora-license-data: +# https://gitlab.com/fedora/legal/fedora-license-data/-/merge_requests/228 # -# The resulting effective license is LGPLv2. -License: LGPLv2 # Additionally, the following unused files are removed in %%prep: +# • The following are GPL-2.0-only: +# - utils/ipatch_convert.c # -# GPLv2: -# utils/ipatch_convert.c -%global forgeurl https://github.com/swami/%{name}/ -Source0: %{forgeurl}/archive/v%{version}/%{name}-%{version}.tar.gz +# …and the following files are used only for build-time testing and do not +# contribute to the licenses of the binary RPMs: +# • The following are LicenseRef-Fedora-Public-Domain: +# - tests/*.py +# License: Public Domain +License: LGPL-2.1-only AND LicenseRef-Fedora-Public-Domain + +%global forgeurl https://github.com/swami/libinstpatch +Source0: %{forgeurl}/archive/v%{version}/libinstpatch-%{version}.tar.gz + +# Fix warning from libinstpatch-scan.c (gtkdoc) +# https://github.com/swami/libinstpatch/pull/71 +Patch0: %{forgeurl}/pull/71.patch BuildRequires: cmake BuildRequires: gcc @@ -52,10 +60,8 @@ BuildRequires: pkgconfig(gobject-2.0) BuildRequires: pkgconfig(glib-2.0) BuildRequires: pkgconfig(gthread-2.0) BuildRequires: pkgconfig(sndfile) -%if %{with gtkdoc} # GTKDOC_ENABLED BuildRequires: pkgconfig(gtk-doc) -%endif %if %{with introspection} # INTROSPECTION_ENABLED BuildRequires: pkgconfig(gobject-introspection-1.0) @@ -78,68 +84,98 @@ patch files into, which can then be edited, converted, compressed and saved. %package devel -Summary: Development files for %{name} -Requires: %{name}%{?_isa} = %{version}-%{release} +Summary: Development files for libinstpatch +# The entire source is LGPL-2.1-only, except: +# • The following are LicenseRef-Fedora-Public-Domain: +# - libinstpatch/md5.{c,h} +# - examples/create_sf2.c +# - examples/split_sfont.c +# See the comment above the License field for the base package for full +# details. +# None of the LicenseRef-Fedora-Public-Domain files are included in this +# subpackage. +License: LGPL-2.1-only + +Requires: libinstpatch%{?_isa} = %{version}-%{release} Requires: glib2-devel%{?_isa} Requires: libsndfile-devel%{?_isa} %description devel -The %{name}-devel package contains libraries and header files for -developing applications that use %{name}. +The libinstpatch-devel package contains libraries and header files for +developing applications that use libinstpatch. -%if %{with gtkdoc} %package doc -Summary: Documentation and examples for %{name} +Summary: Documentation and examples for libinstpatch BuildArch: noarch +# The entire source is LGPL-2.1-only, except: +# • The following are LicenseRef-Fedora-Public-Domain: +# - libinstpatch/md5.{c,h} +# - examples/create_sf2.c +# - examples/split_sfont.c +# See the comment above the License field for the base package for full +# details. +# +# The examples are included in this subpackage. The License is implicitly the +# same as the base package. %description doc -The %{name}-doc package contains documentation and examples for -%{name}. -%endif +The libinstpatch-doc package contains documentation and examples for +libinstpatch. %prep -%autosetup +%autosetup -p1 # Remove example for nonexistent Python bindings find examples -type f -name '*.py' -print -delete %build +# We cannot reliably build gtkdoc documentation at the same time as the +# library. It appears that gtkdoc-scangobj attempts to link the library before +# it is built. +# +# The best fix would be to find the missing dependency relationship or other +# problem in the CMake build scripts, but this is not quite obvious. +# +# Historically this could be worked around by setting _smp_ncpus_max to 1, but +# this has stopped working. +# +# Instead, we build with gtkdoc documentation disabled to get the library, then +# enable the gtkdoc documentation and rebuild. This guarantees the library is +# ready when gtkdoc-scangobj runs. +# +# See: 1.1.6: build with GTKDOC_ENABLED=ON fails +# https://github.com/swami/libinstpatch/issues/65 + %cmake \ - -DGTKDOC_ENABLED:BOOL=%{?with_gtkdoc:ON}%{!?with_gtkdoc:OFF} \ + -DGTKDOC_ENABLED:BOOL=OFF \ -DINTROSPECTION_ENABLED:BOOL=\ %{?with_introspection:ON}%{!?with_introspection:OFF} \ -GNinja %cmake_build +# Enable the GTK docs and build again. +%{__cmake} %{_vpath_builddir} -DGTKDOC_ENABLED:BOOL=ON +%cmake_build + + %install %cmake_install %files %license COPYING -%if %{without gtkdoc} -%doc ABOUT-NLS -%doc AUTHORS -%doc ChangeLog -%doc README.md -%doc TODO.tasks -%endif -%{_libdir}/%{name}-%{api_version}.so.%{so_version} -%{_libdir}/%{name}-%{api_version}.so.%{so_version}.* +%{_libdir}/libinstpatch-%{api_version}.so.%{so_version}{,.*} %files devel -%if %{without gtkdoc} -%doc examples -%endif -%{_includedir}/%{name}-%{so_version} -%{_libdir}/%{name}-%{api_version}.so -%{_libdir}/pkgconfig/%{name}-%{api_version}.pc +%{_includedir}/libinstpatch-%{so_version}/ +%{_libdir}/libinstpatch-%{api_version}.so +%{_libdir}/pkgconfig/libinstpatch-%{api_version}.pc + -%if %{with gtkdoc} %files doc %license COPYING %doc ABOUT-NLS @@ -147,22 +183,56 @@ find examples -type f -name '*.py' -print -delete %doc ChangeLog %doc README.md %doc TODO.tasks -%doc examples -# TODO: built gtkdoc documentation -%endif +%doc examples/ +# gtkdoc +%doc %{_vpath_builddir}/docs/reference/html/ %changelog +## START: Generated by rpmautospec +* Sat Aug 10 2024 Benjamin A. Beasley - 1.1.6-19 +- Use a more reliable workaround for gtkdoc dependency bug + +* Sat Aug 10 2024 Benjamin A. Beasley - 1.1.6-16 +- Safer enforcement of serial build +- Override _smp_ncpus_max instead of _smp_build_ncpus + +* Sat Aug 10 2024 Benjamin A. Beasley - 1.1.6-15 +- Set _smp_build_ncpus instead of using %%constrain_build +- Works around RHBZ#2210347 + +* Sat Aug 10 2024 Benjamin A. Beasley - 1.1.6-14 +- Note that public-domain texts were added to license data (close + RHBZ#2177295) + +* Sat Aug 10 2024 Benjamin A. Beasley - 1.1.6-13 +- Fix warning from libinstpatch-scan.c (gtkdoc) + +* Sat Aug 10 2024 Benjamin A. Beasley - 1.1.6-12 +- Use constrain_build instead of setting _smp_build_ncpus + +* Sat Aug 10 2024 Benjamin A. Beasley - 1.1.6-11 +- Indicate dirs. in files list with trailing slashes + +* Sat Aug 10 2024 Benjamin A. Beasley - 1.1.6-10 +- Trivially simplify one files list + +* Sat Aug 10 2024 Benjamin A. Beasley - 1.1.6-9 +- Enable gtkdoc documentation; build a -doc subpackage + +* Sat Aug 10 2024 Benjamin A. Beasley - 1.1.6-8 +- Update License to SPDX + * Mon Jul 24 2023 Arkady L. Shane - 1.1.6-7 - Rebuilt for MSVSphere 9.2 -* Mon Dec 06 2021 Benjamin A. Beasley 1.1.6-7 +* Mon Dec 06 2021 Benjamin A. Beasley - 1.1.6-7 - Drop EPEL7 workarounds -* Mon Aug 02 2021 Benjamin A. Beasley 1.1.6-6 +* Mon Aug 02 2021 Benjamin A. Beasley - 1.1.6-6 - Clean up gtkdoc build conditional -* Thu Jul 22 2021 Fedora Release Engineering 1.1.6-5 +* Thu Jul 22 2021 Fedora Release Engineering - 1.1.6-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild * Fri Jul 09 2021 Benjamin A. Beasley - 1.1.6-3 @@ -264,3 +334,4 @@ find examples -type f -name '*.py' -print -delete * Thu Mar 26 2009 Orcan Ogetbil - 1.0.0-0.1.297svn - Initial Fedora build +## END: Generated by rpmautospec