commit 276665f4a6364a1a41633bd430625fc042a99aa4 Author: MSVSphere Packaging Team Date: Tue Nov 26 15:28:58 2024 +0300 import Judy-1.0.5-37.el10 diff --git a/.Judy.metadata b/.Judy.metadata new file mode 100644 index 0000000..634056f --- /dev/null +++ b/.Judy.metadata @@ -0,0 +1 @@ +3540f003509acac3b1260424380ddf97914f7745 SOURCES/Judy-1.0.5.tar.gz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e0b489a --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/Judy-1.0.5.tar.gz diff --git a/SOURCES/04_fix_undefined_behavior_during_aggressive_loop_optimizations.patch b/SOURCES/04_fix_undefined_behavior_during_aggressive_loop_optimizations.patch new file mode 100644 index 0000000..6a74df4 --- /dev/null +++ b/SOURCES/04_fix_undefined_behavior_during_aggressive_loop_optimizations.patch @@ -0,0 +1,82 @@ +Original author Doug Baskins: http://sourceforge.net/p/judy/patches/5/#ba53 + +Andrey Gursky: removed trailing whitespaces and the doubled code line + +--- + src/JudyCommon/JudyPrivateBranch.h | 33 +++++++++++++++++++++------------ + 1 file changed, 21 insertions(+), 12 deletions(-) + +Index: b/src/JudyCommon/JudyPrivateBranch.h +=================================================================== +--- a/src/JudyCommon/JudyPrivateBranch.h ++++ b/src/JudyCommon/JudyPrivateBranch.h +@@ -19,7 +19,7 @@ + // Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + // _________________ + +-// @(#) $Revision: 4.57 $ $Source: /judy/src/JudyCommon/JudyPrivateBranch.h $ ++// @(#) $Revision: 1.2 $ $Source: /home/doug/judy-1.0.5_min/test/../src/JudyCommon/RCS/JudyPrivateBranch.h,v $ + // + // Header file for all Judy sources, for global but private (non-exported) + // declarations specific to branch support. +@@ -55,7 +55,7 @@ typedef struct J_UDY_POINTER_OTHERS + { + Word_t j_po_Addr; // first word: Pjp_t, Word_t, etc. + union { +-// Word_t j_po_DcdPop0:cJU_BITSPERWORD-cJU_BITSPERBYTE; ++ Word_t j_po_Addr1; + uint8_t j_po_DcdP0[sizeof(Word_t) - 1]; + uint8_t j_po_Bytes[sizeof(Word_t)]; // last byte = jp_Type. + } jpo_u; +@@ -78,13 +78,18 @@ typedef struct J_UDY_POINTER_OTHERS + // TBD: Revise this structure to not overload j_po_DcdPopO this way? The + // current arrangement works, its just confusing. + +-typedef struct _JUDY_POINTER_IMMED // JPI. ++typedef struct _JUDY_POINTER_IMMEDL + { +- uint8_t j_pi_1Index[sizeof(Word_t)]; // see above. +- uint8_t j_pi_LIndex[sizeof(Word_t) - 1]; // see above. +- uint8_t j_pi_Type; // JP type, 1 of cJ*_JPIMMED*. +- } jpi_t; ++ Word_t j_pL_Addr; ++ uint8_t j_pL_LIndex[sizeof(Word_t) - 1]; // see above. ++ uint8_t j_pL_Type; ++ } jpL_t; + ++typedef struct _JUDY_POINTER_IMMED1 ++ { ++ uint8_t j_p1_1Index[(2 * sizeof(Word_t)) - 1]; ++ uint8_t j_p1_Type; ++ } jp1_t; + + // UNION OF JP TYPES: + // +@@ -96,18 +101,22 @@ typedef struct _JUDY_POINTER_IMMED + typedef union J_UDY_POINTER // JP. + { + jpo_t j_po; // other than immediate indexes. +- jpi_t j_pi; // immediate indexes. ++ jpL_t j_pL; // immediate indexes. ++ jp1_t j_p1; // immediate indexes. + } jp_t, *Pjp_t; + + // For coding convenience: + // +-// Note, jp_Type has the same bits in jpo_t and jpi_t. ++// Note, jp_Type has the same bits in jpo_t jpL_t and jp1_t. + +-#define jp_1Index j_pi.j_pi_1Index // for storing Indexes in first word. +-#define jp_LIndex j_pi.j_pi_LIndex // for storing Indexes in second word. ++#define jp_1Index j_p1.j_p1_1Index // for storing Indexes in first word. ++#define jp_LIndex j_pL.j_pL_LIndex // for storing Indexes in second word. + #define jp_Addr j_po.j_po_Addr ++#define jp_Addr1 j_po.jpo_u.j_po_Addr1 + //#define jp_DcdPop0 j_po.jpo_u.j_po_DcdPop0 +-#define jp_Type j_po.jpo_u.j_po_Bytes[sizeof(Word_t) - 1] ++#define jp_Addr1 j_po.jpo_u.j_po_Addr1 ++//#define jp_Type j_po.jpo_u.j_po_Bytes[sizeof(Word_t) - 1] ++#define jp_Type j_p1.j_p1_Type + #define jp_DcdP0 j_po.jpo_u.j_po_DcdP0 + + diff --git a/SOURCES/Judy-1.0.4-fix-Judy1-mans.patch b/SOURCES/Judy-1.0.4-fix-Judy1-mans.patch new file mode 100644 index 0000000..06ab742 --- /dev/null +++ b/SOURCES/Judy-1.0.4-fix-Judy1-mans.patch @@ -0,0 +1,80 @@ +diff -up Judy-1.0.4/doc/Makefile.am.fix-Judy1-mans Judy-1.0.4/doc/Makefile.am +--- Judy-1.0.4/doc/Makefile.am.fix-Judy1-mans 2006-01-18 16:56:43.000000000 -0500 ++++ Judy-1.0.4/doc/Makefile.am 2008-11-27 14:08:53.000000000 -0500 +@@ -100,21 +100,21 @@ man/man3/Judy: + + man/man3/Judy1: + ../tool/jhton ext/Judy1_3.htm | grep -v '^[ ]*$$' | sed -e 's/\.C//' > man/man3/Judy1 +- cd man/man3; ln -s Judy J1T +- cd man/man3; ln -s Judy J1S +- cd man/man3; ln -s Judy J1U +- cd man/man3; ln -s Judy J1F +- cd man/man3; ln -s Judy J1N +- cd man/man3; ln -s Judy J1L +- cd man/man3; ln -s Judy J1P +- cd man/man3; ln -s Judy J1FE +- cd man/man3; ln -s Judy J1NE +- cd man/man3; ln -s Judy J1LE +- cd man/man3; ln -s Judy J1PE +- cd man/man3; ln -s Judy J1C +- cd man/man3; ln -s Judy J1BC +- cd man/man3; ln -s Judy J1FA +- cd man/man3; ln -s Judy J1MU ++ cd man/man3; ln -s Judy1 J1T ++ cd man/man3; ln -s Judy1 J1S ++ cd man/man3; ln -s Judy1 J1U ++ cd man/man3; ln -s Judy1 J1F ++ cd man/man3; ln -s Judy1 J1N ++ cd man/man3; ln -s Judy1 J1L ++ cd man/man3; ln -s Judy1 J1P ++ cd man/man3; ln -s Judy1 J1FE ++ cd man/man3; ln -s Judy1 J1NE ++ cd man/man3; ln -s Judy1 J1LE ++ cd man/man3; ln -s Judy1 J1PE ++ cd man/man3; ln -s Judy1 J1C ++ cd man/man3; ln -s Judy1 J1BC ++ cd man/man3; ln -s Judy1 J1FA ++ cd man/man3; ln -s Judy1 J1MU + + man/man3/Judy1_funcs: + ../tool/jhton ext/Judy1_funcs_3.htm | grep -v '^[ ]*$$' | sed -e 's/\.C//' > man/man3/Judy1_funcs +diff -up Judy-1.0.4/doc/Makefile.in.fix-Judy1-mans Judy-1.0.4/doc/Makefile.in +--- Judy-1.0.4/doc/Makefile.in.fix-Judy1-mans 2007-05-14 17:10:55.000000000 -0400 ++++ Judy-1.0.4/doc/Makefile.in 2008-12-13 12:55:14.000000000 -0500 +@@ -471,21 +479,21 @@ man/man3/Judy: + + man/man3/Judy1: + ../tool/jhton ext/Judy1_3.htm | grep -v '^[ ]*$$' | sed -e 's/\.C//' > man/man3/Judy1 +- cd man/man3; ln -s Judy J1T +- cd man/man3; ln -s Judy J1S +- cd man/man3; ln -s Judy J1U +- cd man/man3; ln -s Judy J1F +- cd man/man3; ln -s Judy J1N +- cd man/man3; ln -s Judy J1L +- cd man/man3; ln -s Judy J1P +- cd man/man3; ln -s Judy J1FE +- cd man/man3; ln -s Judy J1NE +- cd man/man3; ln -s Judy J1LE +- cd man/man3; ln -s Judy J1PE +- cd man/man3; ln -s Judy J1C +- cd man/man3; ln -s Judy J1BC +- cd man/man3; ln -s Judy J1FA +- cd man/man3; ln -s Judy J1MU ++ cd man/man3; ln -s Judy1 J1T ++ cd man/man3; ln -s Judy1 J1S ++ cd man/man3; ln -s Judy1 J1U ++ cd man/man3; ln -s Judy1 J1F ++ cd man/man3; ln -s Judy1 J1N ++ cd man/man3; ln -s Judy1 J1L ++ cd man/man3; ln -s Judy1 J1P ++ cd man/man3; ln -s Judy1 J1FE ++ cd man/man3; ln -s Judy1 J1NE ++ cd man/man3; ln -s Judy1 J1LE ++ cd man/man3; ln -s Judy1 J1PE ++ cd man/man3; ln -s Judy1 J1C ++ cd man/man3; ln -s Judy1 J1BC ++ cd man/man3; ln -s Judy1 J1FA ++ cd man/man3; ln -s Judy1 J1MU + + man/man3/Judy1_funcs: + ../tool/jhton ext/Judy1_funcs_3.htm | grep -v '^[ ]*$$' | sed -e 's/\.C//' > man/man3/Judy1_funcs diff --git a/SOURCES/Judy-1.0.4-test-shared.patch b/SOURCES/Judy-1.0.4-test-shared.patch new file mode 100644 index 0000000..28d8a59 --- /dev/null +++ b/SOURCES/Judy-1.0.4-test-shared.patch @@ -0,0 +1,14 @@ +diff -up Judy-1.0.4/test/Checkit.test-shared Judy-1.0.4/test/Checkit +--- Judy-1.0.4/test/Checkit.test-shared 2007-05-14 13:02:16.000000000 -0400 ++++ Judy-1.0.4/test/Checkit 2008-11-27 12:56:28.000000000 -0500 +@@ -4,8 +4,9 @@ CC=${CC:-cc} + echo + echo "=== +++++++++ This test runs in 15 seconds on a PIII 750Mhz +++++++" + +-LIBJUDY=`find ../ -name libJudy.a` ++LIBJUDY=`find ../ -name libJudy.so` + JUDY_H=`find ../ -name Judy.h` ++export LD_LIBRARY_PATH=`dirname $LIBJUDY` + + echo "$CC -O SLcompare.c -DHASHMETHOD -o SL_Hash" + $CC -O SLcompare.c -DHASHMETHOD -o SL_Hash diff --git a/SOURCES/README.Fedora b/SOURCES/README.Fedora new file mode 100644 index 0000000..1397bfb --- /dev/null +++ b/SOURCES/README.Fedora @@ -0,0 +1,23 @@ +Regarding the license, upstream has confirmed that the current license is LGPL +v2.1 or later. Also, the source code is really the final say on this, and it +says "GNU Lesser General Public License as published by the Free Software +Foundation; either version 2 of the License, or (at your option) any later +version." Either way, Fedora spec files don't distinguish between v2.1 and v2, +so this is specified as LGPLv2+ for the spec file. + +"From dougbaskins@yahoo.com Thu Nov 27 21:45:54 2008 +From: Doug Baskins +To: Chuck Anderson +Cc: judy-devel@lists.sourceforge.net +Date: Thu, 27 Nov 2008 18:45:47 -0800 (PST) +Subject: Re: Judy license confusion - (LGPL v2.1 or later applies) +Reply-To: Doug Baskins + +Chuck: + +I did not know a new version of LGPL existed. You are correct, +the COPYING file is correct (LGPL v2.1 or later applies). I will +change the README file to reflect that in the next release of Judy. +..." + +- Chuck Anderson diff --git a/SPECS/Judy.spec b/SPECS/Judy.spec new file mode 100644 index 0000000..54a7e24 --- /dev/null +++ b/SPECS/Judy.spec @@ -0,0 +1,256 @@ +Name: Judy +Version: 1.0.5 +Release: 37%{?dist} +Summary: General purpose dynamic array +License: LGPL-2.0-or-later +URL: http://sourceforge.net/projects/judy/ +Source0: http://downloads.sf.net/judy/Judy-%{version}.tar.gz +Source1: README.Fedora +Patch0: Judy-1.0.4-test-shared.patch +Patch1: Judy-1.0.4-fix-Judy1-mans.patch +Patch2: 04_fix_undefined_behavior_during_aggressive_loop_optimizations.patch +BuildRequires: coreutils +BuildRequires: gawk +BuildRequires: gcc >= 4.1 +BuildRequires: hardlink +BuildRequires: make +BuildRequires: sed + +%description +Judy is a C library that provides a state-of-the-art core technology that +implements a sparse dynamic array. Judy arrays are declared simply with a null +pointer. A Judy array consumes memory only when it is populated, yet can grow +to take advantage of all available memory if desired. Judy's key benefits are +scalability, high performance, and memory efficiency. A Judy array is +extensible and can scale up to a very large number of elements, bounded only by +machine memory. Since Judy is designed as an unbounded array, the size of a +Judy array is not pre-allocated but grows and shrinks dynamically with the +array population. + +%package devel +Summary: Development libraries and headers for Judy +Requires: %{name} = %{version}-%{release} + +%description devel +This package contains the development libraries and header files +for developing applications that use the Judy library. + +%prep +%setup -q -n judy-%{version} + +# Make tests use shared instead of static libJudy +%patch -P 0 -p1 -b .test-shared + +# The J1* man pages were incorrectly being symlinked to Judy, rather than Judy1 +# This patch corrects that; submitted upstream 2008/11/27 +%patch -P 1 -p1 -b .fix-Judy1-mans + +# Fix some code with undefined behavior, commented on and removed by gcc +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=782841 +%patch -P 2 -p1 -b .behavior + +# README.Fedora +cp -p %{SOURCE1} . + +%build +export CFLAGS="%{optflags} -fno-strict-aliasing" +%configure --disable-static +make +#%{?_smp_mflags} +# fails to compile properly with parallel make: +# https://sourceforge.net/p/judy/bugs/22/ + +%install +%make_install + +# get rid of static libs and libtool archives +rm -f %{buildroot}%{_libdir}/*.{a,la} + +# clean out zero length and generated files from doc tree +rm -rf doc/man +rm -f doc/Makefile* doc/ext/README_deliver +[ -s doc/ext/COPYRIGHT ] || rm -f doc/ext/COPYRIGHT +[ -s doc/ext/LICENSE ] || rm -f doc/ext/LICENSE + +# hardlink identical manpages together +hardlink -cv %{buildroot}%{_mandir}/man3/J*.3* + +%check +cd test +./Checkit +cd - + +%files +%license COPYING README.Fedora +%doc AUTHORS ChangeLog README examples/ +%{_libdir}/libJudy.so.1 +%{_libdir}/libJudy.so.1.* + +%files devel +%doc doc +%{_includedir}/Judy.h +%{_libdir}/libJudy.so +%{_mandir}/man3/J*.3* + +%changelog +* Tue Nov 26 2024 MSVSphere Packaging Team - 1.0.5-37 +- Rebuilt for MSVSphere 10 + +* Mon Jun 24 2024 Troy Dawson - 1.0.5-37 +- Bump release for June 2024 mass rebuild + +* Tue Jan 23 2024 Paul Howarth - 1.0.5-36 +- Hard link manpages to avoid duplication + +* Mon Jan 22 2024 Fedora Release Engineering - 1.0.5-35 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 1.0.5-34 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Thu Jan 18 2024 Fedora Release Engineering - 1.0.5-33 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Jul 19 2023 Fedora Release Engineering - 1.0.5-32 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu Jan 19 2023 Paul Howarth - 1.0.5-31 +- Use SPDX-format license tag + +* Wed Jan 18 2023 Fedora Release Engineering - 1.0.5-30 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Wed Jul 20 2022 Fedora Release Engineering - 1.0.5-29 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Wed Jan 19 2022 Fedora Release Engineering - 1.0.5-28 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Jul 21 2021 Fedora Release Engineering - 1.0.5-27 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Fri Jun 4 2021 Paul Howarth - 1.0.5-26 +- Replace undefined behaviour patch with one from upstream author, as used + in debian since 2015 + (https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=782841) +- Drop gcc optimization flags as we can now use the distribution default + flags again + +* Mon Jan 25 2021 Fedora Release Engineering - 1.0.5-25 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 1.0.5-24 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Mar 25 2020 Paul Howarth - 1.0.5-23 +- Don't pass gcc-only compiler flags to other compilers, e.g. clang + (based on https://src.fedoraproject.org/rpms/Judy/pull-request/3 from + Timm Baeder) + +* Tue Jan 28 2020 Fedora Release Engineering - 1.0.5-22 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Jul 24 2019 Fedora Release Engineering - 1.0.5-21 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Mon Jul 22 2019 Paul Howarth - 1.0.5-20 +- Modernize spec + - Use %%make_install + - Use %%set_build_flags + - Drop conditionals for building with old distributions + - Re-format %%description to 80 columns + - Comment patch applications in %%prep section + +* Thu Jan 31 2019 Fedora Release Engineering - 1.0.5-19 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Thu Jul 12 2018 Fedora Release Engineering - 1.0.5-18 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Thu Feb 8 2018 Paul Howarth - 1.0.5-17 +- ldconfig scriptlets replaced by RPM File Triggers from Fedora 28 +- Drop legacy BuildRoot: and Group: tags +- Drop redundant explicit buildroot cleaning +- Specify all explicitly-used build requirements +- Use %%license where possible +- Drop %%defattr, redundant since rpm 4.4 + +* Wed Feb 07 2018 Fedora Release Engineering - 1.0.5-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Wed Aug 02 2017 Fedora Release Engineering - 1.0.5-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 1.0.5-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Feb 10 2017 Fedora Release Engineering - 1.0.5-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Wed Feb 03 2016 Fedora Release Engineering - 1.0.5-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Tue Jun 16 2015 Fedora Release Engineering - 1.0.5-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Fri Aug 15 2014 Fedora Release Engineering - 1.0.5-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Fri Jun 06 2014 Fedora Release Engineering - 1.0.5-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Tue Feb 18 2014 Paul Howarth - 1.0.5-8 +- Fix some code with undefined behavior +- Build with -fno-strict-aliasing +- Disable various compiler tree optimizations that trigger reproducible + crashes in gtkwave without generating compiler warnings (#1064090) + +* Fri Aug 02 2013 Fedora Release Engineering - 1.0.5-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Wed Feb 13 2013 Fedora Release Engineering - 1.0.5-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Wed Jul 18 2012 Fedora Release Engineering - 1.0.5-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Thu Jan 12 2012 Fedora Release Engineering - 1.0.5-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Fri Jan 6 2012 Paul Howarth - 1.0.5-3 +- Rebuilt for gcc 4.7 + +* Mon Feb 7 2011 Fedora Release Engineering - 1.0.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Sun Jul 18 2010 Paul Howarth - 1.0.5-1 +- Update to 1.0.5 + - Added proper clean targets to enable multiple builds + - Added examples directory + - Correctly detects 32/64-bit build environment + - Allow explicit configure for 32/64-bit environment +- Cosmetic spec file clean-ups + +* Fri Jul 24 2009 Fedora Release Engineering - 1.0.4-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Mon Feb 23 2009 Fedora Release Engineering - 1.0.4-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Sat Dec 13 2008 Charles R. Anderson - 1.0.4-4 +- For Judy1 man page fix, patch Makefile.{am,in} instead of + relying on autotools to regenerate the latter +- Add README.Fedora with upstream's license explanation + +* Sun Nov 30 2008 Charles R. Anderson - 1.0.4-3 +- Fix Judy1 man page symlinks +- Use valid tag License: LGPLv2+ confirmed with upstream +- Use version macro in Source0 +- Remove Makefiles from installed doc tree + +* Thu Nov 27 2008 Charles R. Anderson - 1.0.4-2 +- Patch tests to run with shared library +- Run tests in check section + +* Sun Oct 05 2008 Charles R. Anderson - 1.0.4-1 +- Initial package for Fedora