diff --git a/.gitignore b/.gitignore index b772d1c..c787020 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,4 @@ -/uthash-*.tar.gz +/v1.9.8.tar.gz +/uthash-1.9.9.tar.gz +/uthash-2.0.1.tar.gz +/uthash-2.0.2.tar.gz diff --git a/sources b/sources index b640b01..6c5bb11 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (uthash-2.3.0.tar.gz) = 3b01f1074790fb242900411cb16eb82c1a9afcf58e3196a0f4611d9d7ef94690ad38c0a500e7783d3efa20328aa8d6ab14f246be63b3b3d385502ba2b6b2a294 +SHA512 (uthash-2.0.2.tar.gz) = 0c2e686eb5a1d6a03a6fa1d42e803fca4e9b60b2d965c635a5a33d487c8d115f1f8155ff99a0e1874b69f6b66c04ea7d8866472a39abe5d1a23ae73f6fa956d7 diff --git a/uthash-2.0.2_fix-asciidoc.patch b/uthash-2.0.2_fix-asciidoc.patch new file mode 100644 index 0000000..3180e5a --- /dev/null +++ b/uthash-2.0.2_fix-asciidoc.patch @@ -0,0 +1,14 @@ + doc/userguide.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/doc/userguide.txt b/doc/userguide.txt +--- a/doc/userguide.txt ++++ b/doc/userguide.txt +@@ -1,6 +1,6 @@ + uthash User Guide + ================= +-Troy D. Hanson, Arthur O'Dwyer ++Hanson, O'Dwyer + v2.0.2, March 2017 + + To download uthash, follow this link back to the diff --git a/uthash.spec b/uthash.spec index 7bf0b2a..3b1fcbb 100644 --- a/uthash.spec +++ b/uthash.spec @@ -1,180 +1,152 @@ -Name: uthash -Version: 2.3.0 -Release: 12%{?dist} -Summary: A hash table for C structures +%global sover 0 +%global git_url https://github.com/troydhanson/%{name} -License: BSD-1-Clause -URL: http://troydhanson.github.io/%{name} -Source0: https://github.com/troydhanson/%{name}/archive/v%{version}/%{name}-%{version}.tar.gz +%global common_desc \ +Any C structure can be stored in a hash table using uthash. Just \ +add a UT_hash_handle to the structure and choose one or more fields \ +in your structure to act as the key. Then use these macros to store, \ +retrieve or delete items from the hash table. -BuildRequires: asciidoc -BuildRequires: gcc -BuildRequires: make -BuildRequires: perl-interpreter -BuildRequires: perl(strict) -BuildRequires: perl(warnings) +# Setup _pkgdocdir if not defined already +%{!?_pkgdocdir:%global _pkgdocdir %{_docdir}/%{name}-%{version}} + + +Name: uthash +Version: 2.0.2 +Release: 1%{?dist} +Summary: A hash table for C structures + +License: BSD +URL: http://troydhanson.github.io/%{name} +Source0: %{git_url}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz + +%if (0%{?rhel} && 0%{?rhel} <= 6) +# Downstream patch for asciidoc generation. +Patch1000: %{name}-%{version}_fix-asciidoc.patch +%endif # (0#{?rhel} && 0#{?rhel} <= 6) + +BuildRequires: asciidoc +BuildRequires: perl %description -Any C structure can be stored in a hash table using uthash. Just -add a UT_hash_handle to the structure and choose one or more fields -in your structure to act as the key. Then use these macros to store, -retrieve or delete items from the hash table. +%{common_desc} -%package devel -Summary: A hash table for C structures (headers only) +%package devel +Summary: A hash table for C structures (headers only) -# c-compiled libraries have been dropped upstream. -Obsoletes: libut < 2.3.0 -Obsoletes: libut-devel < 2.3.0 +Provides: %{name}-static == %{version}-%{release} -Provides: %{name} = %{version}-%{release} -Provides: %{name}-static = %{version}-%{release} -Provides: libut = %{version}-%{release} -Provides: libut-devel = %{version}-%{release} +BuildArch: noarch -BuildArch: noarch - -%description devel -Any C structure can be stored in a hash table using uthash. Just -add a UT_hash_handle to the structure and choose one or more fields -in your structure to act as the key. Then use these macros to store, -retrieve or delete items from the hash table. - - -%package tools -Summary: Command-line utilities for %{name} -Requires: %{name} = %{version}-%{release} - -%description tools -This package provides the hashscan and keystats utility programs -for %{name}. - -The hashscan program examines a running process and reports on the -uthash tables that it finds in that program’s memory. It can also -save the keys from each table in a format that can be fed into keystats. - -The keystats program is able to analyze which hash function has the best -characteristics on the set of keys reported by the hashscan program. +%description devel +%{common_desc} %package doc -Summary: Documentation-files for %{name} -BuildArch: noarch -Requires: %{name} = %{version}-%{release} +Summary: Documentation-files for %{name}. +BuildArch: noarch %description doc This package contains the documentation-files for %{name}. +%package -n libut +Summary: Library-implementation of utvector + +%description -n libut +The utvector is an alternative to utarray. It is a bit more +efficient. It's object code, not just a header. + + +%package -n libut-devel +Summary: Development-files for libut + +Requires: %{name}-devel == %{version}-%{release} +Requires: libut%{?_isa} == %{version}-%{release} + +%description -n libut-devel +Development-files for libut. + + %prep -%autosetup -p1 +%autosetup -p 1 %build -%set_build_flags +%configure || : +export CFLAGS="-fPIC ${CFLAGS}" +%make_build -C libut +%{__cc} -shared ${CFLAGS} ${LDFLAGS} \ + -Wl,-soname,libut.so.%{sover} \ + -o libut/libut.so.%{sover} libut/*.o %make_build -C doc -%make_build -C tests -%make_build -C tests/threads %install -mkdir -p %{buildroot}{%{_bindir},%{_includedir},%{_pkgdocdir}/html} -install -pm 0755 tests/{hashscan,keystats} %{buildroot}%{_bindir} -install -pm 0644 src/*.h %{buildroot}%{_includedir} +%{__mkdir} -p html \ + %{buildroot}%{_includedir} \ + %{buildroot}%{_libdir} \ + %{buildroot}%{_pkgdocdir}/{html,libut} +%{__install} -pm 0644 src/*.h %{buildroot}%{_includedir} +%{__install} -pm 0755 libut/libut.so.0 %{buildroot}%{_libdir} +/bin/ln -s %{_libdir}/libut.so.0 %{buildroot}%{_libdir}/libut.so + # Install doc. -install -pm 0644 doc/*.txt tests/example.c %{buildroot}%{_pkgdocdir} -install -pm 0644 doc/*.html doc/*.css doc/*.png %{buildroot}%{_pkgdocdir}/html -rm -f %{buildroot}%{_pkgdocdir}/html/google*.html +%{__install} -pm 0644 doc/*.txt %{buildroot}%{_pkgdocdir} +%{__install} -pm 0644 doc/*.html doc/*.css doc/*.png %{buildroot}%{_pkgdocdir}/html +%{__install} -pm 0644 libut/README.md %{buildroot}%{_pkgdocdir}/libut +%if (0%{?rhel} && 0%{?rhel} <= 6) +%{__install} -pm 0644 LICENSE %{buildroot}%{_pkgdocdir} +%endif # (0#{?rhel} && 0#{?rhel} <= 6) + + +%check +%configure || : +%make_build -C tests +%make_build -C tests/threads +%make_build -C libut/tests + + +%post -n libut -p /sbin/ldconfig +%postun -n libut -p /sbin/ldconfig %files devel +%if !(0%{?rhel} && 0%{?rhel} <= 6) %license LICENSE +%else # !(0%{?rhel} && 0%{?rhel} <= 6) +%doc %{_pkgdocdir}/LICENSE +%endif # !(0%{?rhel} && 0%{?rhel} <= 6) %doc %dir %{_pkgdocdir} -%doc %{_pkgdocdir}/ChangeLog.txt -%{_includedir}/*.h - - -%files tools -%{_bindir}/* - +%exclude %{_includedir}/utvector.h +%{_includedir}/ut*.h %files doc +%if !(0%{?rhel} && 0%{?rhel} <= 6) +%license %{_datadir}/licenses/%{name}* +%endif # !(0%{?rhel} && 0%{?rhel} <= 6) %doc %{_pkgdocdir} +%files -n libut +%if !(0%{?rhel} && 0%{?rhel} <= 6) +%license %{_datadir}/licenses/%{name}* +%else # !(0%{?rhel} && 0%{?rhel} <= 6) +%doc %{_pkgdocdir}/LICENSE +%endif # !(0%{?rhel} && 0%{?rhel} <= 6) +%doc %dir %{_pkgdocdir} +%{_libdir}/libut.so.%{sover} + +%files -n libut-devel +%doc %dir %{_pkgdocdir} +%doc %{_pkgdocdir}/libut +%{_includedir}/libut.h +%{_includedir}/ringbuf.h +%{_includedir}/utvector.h +%{_libdir}/libut.so + %changelog -* Fri Jul 17 2026 Fedora Release Engineering - 2.3.0-12 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild - -* Tue Jan 20 2026 Fedora Release Engineering - 2.3.0-11 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild - -* Fri Jul 25 2025 Fedora Release Engineering - 2.3.0-10 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Sun Jan 19 2025 Fedora Release Engineering - 2.3.0-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Sat Jul 20 2024 Fedora Release Engineering - 2.3.0-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Sat Jan 27 2024 Fedora Release Engineering - 2.3.0-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Sat Jul 22 2023 Fedora Release Engineering - 2.3.0-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Tue Jun 27 2023 Björn Esser - 2.3.0-5 -- Add tools package -- Add explicit perl BRs -- Add example program to doc package -- Drop google site-verification file from doc package -- Require main package in doc package to avoid file conflicts - -* Sat Jan 21 2023 Fedora Release Engineering - 2.3.0-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Sat Jul 23 2022 Fedora Release Engineering - 2.3.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Sat Jan 22 2022 Fedora Release Engineering - 2.3.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Thu Dec 23 2021 Björn Esser - 2.3.0-1 -- Update to 2.3.0 -- Obsolete libut as it has been dropped upstream - -* Fri Jul 23 2021 Fedora Release Engineering - 2.0.2-11 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Wed Jan 27 2021 Fedora Release Engineering - 2.0.2-10 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Wed Jul 29 2020 Fedora Release Engineering - 2.0.2-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Fri Jan 31 2020 Fedora Release Engineering - 2.0.2-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Sat Jul 27 2019 Fedora Release Engineering - 2.0.2-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Sun Feb 03 2019 Fedora Release Engineering - 2.0.2-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Sat Jul 14 2018 Fedora Release Engineering - 2.0.2-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Fri Feb 09 2018 Fedora Release Engineering - 2.0.2-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Thu Aug 03 2017 Fedora Release Engineering - 2.0.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Thu Jul 27 2017 Fedora Release Engineering - 2.0.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - * Sat Mar 04 2017 Björn Esser - 2.0.2-1 - New upstream release (rhbz#1429106)