From 24c1aab4c368fe755114a6fbb1ef72b999376a2d Mon Sep 17 00:00:00 2001 From: Toshaan Bharvani Date: Mon, 23 May 2022 18:29:13 +0200 Subject: [PATCH] initial package build Signed-off-by: Toshaan Bharvani --- SOURCES/lmdb-make.patch | 76 ++++++++++ SOURCES/lmdb-s390-check.patch | 14 ++ SOURCES/lmdb.pc.in | 11 ++ SPECS/lmdb.spec | 260 ++++++++++++++++++++++++++++++++++ 4 files changed, 361 insertions(+) create mode 100644 SOURCES/lmdb-make.patch create mode 100644 SOURCES/lmdb-s390-check.patch create mode 100644 SOURCES/lmdb.pc.in create mode 100644 SPECS/lmdb.spec diff --git a/SOURCES/lmdb-make.patch b/SOURCES/lmdb-make.patch new file mode 100644 index 0000000..eca03ef --- /dev/null +++ b/SOURCES/lmdb-make.patch @@ -0,0 +1,76 @@ +diff -up lmdb-LMDB_0.9.19/libraries/liblmdb/Makefile.orig lmdb-LMDB_0.9.19/libraries/liblmdb/Makefile +--- lmdb-LMDB_0.9.19/libraries/liblmdb/Makefile.orig 2017-01-04 12:14:24.303344915 +0100 ++++ lmdb-LMDB_0.9.19/libraries/liblmdb/Makefile 2017-01-04 12:19:20.190295319 +0100 +@@ -26,6 +26,7 @@ OPT = -O2 -g + CFLAGS = $(THREADS) $(OPT) $(W) $(XCFLAGS) + LDLIBS = + SOLIBS = ++SOVERSION = 0.0.0 + SOEXT = .so + prefix = /usr/local + exec_prefix = $(prefix) +@@ -38,7 +39,7 @@ mandir = $(datarootdir)/man + ######################################################################## + + IHDRS = lmdb.h +-ILIBS = liblmdb.a liblmdb$(SOEXT) ++ILIBS = liblmdb$(SOEXT) liblmdb$(SOEXT).$(SOVERSION) + IPROGS = mdb_stat mdb_copy mdb_dump mdb_load + IDOCS = mdb_stat.1 mdb_copy.1 mdb_dump.1 mdb_load.1 + PROGS = $(IPROGS) mtest mtest2 mtest3 mtest4 mtest5 +@@ -49,13 +50,13 @@ install: $(ILIBS) $(IPROGS) $(IHDRS) + mkdir -p $(DESTDIR)$(libdir) + mkdir -p $(DESTDIR)$(includedir) + mkdir -p $(DESTDIR)$(mandir)/man1 +- for f in $(IPROGS); do cp $$f $(DESTDIR)$(bindir); done +- for f in $(ILIBS); do cp $$f $(DESTDIR)$(libdir); done +- for f in $(IHDRS); do cp $$f $(DESTDIR)$(includedir); done +- for f in $(IDOCS); do cp $$f $(DESTDIR)$(mandir)/man1; done ++ for f in $(IPROGS); do cp -a $$f $(DESTDIR)$(bindir); done ++ for f in $(ILIBS); do cp -a $$f $(DESTDIR)$(libdir); done ++ for f in $(IHDRS); do cp -a $$f $(DESTDIR)$(includedir); done ++ for f in $(IDOCS); do cp -a $$f $(DESTDIR)$(mandir)/man1; done + + clean: +- rm -rf $(PROGS) *.[ao] *.[ls]o *~ testdb ++ rm -rf $(PROGS) *.[ao] *.[ls]o* *~ testdb + + test: all + rm -rf testdb && mkdir testdb +@@ -64,20 +65,24 @@ test: all + liblmdb.a: mdb.o midl.o + $(AR) rs $@ mdb.o midl.o + +-liblmdb$(SOEXT): mdb.lo midl.lo ++liblmdb$(SOEXT): liblmdb$(SOEXT).$(SOVERSION) ++ rm -f $@ ++ ln -s $< $@ ++ ++liblmdb$(SOEXT).$(SOVERSION): mdb.lo midl.lo + # $(CC) $(LDFLAGS) -pthread -shared -Wl,-Bsymbolic -o $@ mdb.o midl.o $(SOLIBS) +- $(CC) $(LDFLAGS) -pthread -shared -o $@ mdb.lo midl.lo $(SOLIBS) ++ $(CC) $(LDFLAGS) -pthread -shared -Wl,-soname,$@ -o $@ mdb.lo midl.lo $(SOLIBS) + +-mdb_stat: mdb_stat.o liblmdb.a +-mdb_copy: mdb_copy.o liblmdb.a +-mdb_dump: mdb_dump.o liblmdb.a +-mdb_load: mdb_load.o liblmdb.a +-mtest: mtest.o liblmdb.a +-mtest2: mtest2.o liblmdb.a +-mtest3: mtest3.o liblmdb.a +-mtest4: mtest4.o liblmdb.a +-mtest5: mtest5.o liblmdb.a +-mtest6: mtest6.o liblmdb.a ++mdb_stat: mdb_stat.o liblmdb.so ++mdb_copy: mdb_copy.o liblmdb.so ++mdb_dump: mdb_dump.o liblmdb.so ++mdb_load: mdb_load.o liblmdb.so ++mtest: mtest.o liblmdb.so ++mtest2: mtest2.o liblmdb.so ++mtest3: mtest3.o liblmdb.so ++mtest4: mtest4.o liblmdb.so ++mtest5: mtest5.o liblmdb.so ++mtest6: mtest6.o liblmdb.so + + mdb.o: mdb.c lmdb.h midl.h + $(CC) $(CFLAGS) $(CPPFLAGS) -c mdb.c diff --git a/SOURCES/lmdb-s390-check.patch b/SOURCES/lmdb-s390-check.patch new file mode 100644 index 0000000..2922ec6 --- /dev/null +++ b/SOURCES/lmdb-s390-check.patch @@ -0,0 +1,14 @@ +# The s390 architecture needs a pause before accessing the test DB. + +diff -up lmdb-LMDB_0.9.17/libraries/liblmdb/Makefile.orig lmdb-LMDB_0.9.17/libraries/liblmdb/Makefile +--- lmdb-LMDB_0.9.17/libraries/liblmdb/Makefile.orig 2015-12-03 09:21:35.621480706 +0100 ++++ lmdb-LMDB_0.9.17/libraries/liblmdb/Makefile 2015-12-03 09:22:10.069644210 +0100 +@@ -57,7 +57,7 @@ clean: + + test: all + rm -rf testdb && mkdir testdb +- ./mtest && ./mdb_stat testdb ++ ./mtest && sleep 1 && ./mdb_stat testdb + + liblmdb.a: mdb.o midl.o + $(AR) rs $@ mdb.o midl.o diff --git a/SOURCES/lmdb.pc.in b/SOURCES/lmdb.pc.in new file mode 100644 index 0000000..b26cf70 --- /dev/null +++ b/SOURCES/lmdb.pc.in @@ -0,0 +1,11 @@ +prefix=@PREFIX@ +exec_prefix=@EXEC_PREFIX@ +libdir=@LIBDIR@ +includedir=@INCLUDEDIR@ + +Name: liblmdb +Description: Lightning Memory-mapped key-value database +URL: http://symas.com/mdb/ +Version: @PACKAGE_VERSION@ +Libs: -L${libdir} -llmdb +Cflags: -I${includedir} diff --git a/SPECS/lmdb.spec b/SPECS/lmdb.spec new file mode 100644 index 0000000..caf661c --- /dev/null +++ b/SPECS/lmdb.spec @@ -0,0 +1,260 @@ +Name: lmdb +Version: 0.9.29 +Release: 3%{?dist} +Summary: Memory-mapped key-value database +License: OpenLDAP +URL: http://symas.com/mdb + +# Main source is retrieved from OpenLDAP GitLab +%global forgeurl https://git.openldap.org/openldap/openldap +%global tag LMDB_%{version} +# Tag checkout includes commit in archive name +%global commit 8ad7be2510414b9506ec9f9e24f24d04d9b04a1a +# The files themselves are in several subdirectories and need to be prefixed wit this. +%global archive_path libraries/lib%{name} + +Source0: %{forgeurl}/-/archive/%{tag}.tar.gz +Source1: lmdb.pc.in +# Patch description in the corresponding file +Patch0: lmdb-make.patch +Patch1: lmdb-s390-check.patch + +BuildRequires: make +BuildRequires: gcc +BuildRequires: doxygen + +%description +LMDB is an ultra-fast, ultra-compact key-value embedded data +store developed by Symas for the OpenLDAP Project. By using memory-mapped files, +it provides the read performance of a pure in-memory database while still +offering the persistence of standard disk-based databases, and is only limited +to the size of the virtual address space. + +%package libs +Summary: Shared libraries for %{name} + +%description libs +The %{name}-libs package contains shared libraries necessary for running +applications that use %{name}. + +%package devel +Summary: Development files for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +The %{name}-devel package contains libraries and header files for +developing applications that use %{name}. + +%package doc +Summary: Documentation files for %{name} +BuildArch: noarch + +%description doc +The %{name}-doc package contains automatically generated documentation for %{name}. + + +%prep +%autosetup -p1 -n openldap-%{tag}-%{commit} + + +%build +pushd %{archive_path} +%set_build_flags +%make_build XCFLAGS="%{build_cflags}" +# Build doxygen documentation +doxygen +# remove unpackaged files +rm -f Doxyfile +rm -rf man # Doxygen generated manpages +popd + +%install +pushd %{archive_path} +# make install expects existing directory tree +mkdir -m 0755 -p %{buildroot}{%{_bindir},%{_includedir}} +mkdir -m 0755 -p %{buildroot}{%{_libdir}/pkgconfig,%{_mandir}/man1} +%make_install prefix=%{_prefix} libdir=%{_libdir} mandir=%{_mandir} +popd + +# Install pkgconfig file +sed -e 's:@PREFIX@:%{_prefix}:g' \ + -e 's:@EXEC_PREFIX@:%{_exec_prefix}:g' \ + -e 's:@LIBDIR@:%{_libdir}:g' \ + -e 's:@INCLUDEDIR@:%{_includedir}:g' \ + -e 's:@PACKAGE_VERSION@:%{version}:g' \ + %{SOURCE1} >lmdb.pc +install -Dpm 0644 -t %{buildroot}%{_libdir}/pkgconfig lmdb.pc + +%check +%if 0%{?rhel} == 6 && "%{_arch}" == "ppc64" + # rhel6 ppc64: skip unit tests + exit 0 +%endif + +pushd %{archive_path} +rm -rf testdb +LD_LIBRARY_PATH=$PWD make test +popd + +%ldconfig_scriptlets libs + + +%files +%{_bindir}/* +%{_mandir}/man1/* + +%files libs +%doc %{archive_path}/COPYRIGHT +%doc %{archive_path}/CHANGES +%license %{archive_path}/LICENSE +%{_libdir}/*.so.* + +%files devel +%{_includedir}/* +%{_libdir}/*.so +%{_libdir}/pkgconfig/*.pc + +%files doc +%doc %{archive_path}/html +%doc %{archive_path}/COPYRIGHT +%doc %{archive_path}/CHANGES +%license %{archive_path}/LICENSE + + +%changelog +* Mon Aug 09 2021 Mohan Boddu - 0.9.29-3 +- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags + Related: rhbz#1991688 + +* Fri Apr 16 2021 Mohan Boddu - 0.9.29-2 +- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 + +* Wed Mar 17 2021 Jan Staněk - 0.9.29-1 +- Upgrade to version 0.9.29 + +* Mon Feb 08 2021 Jan Staněk - 0.9.28-1 +- Upgrade to version 0.9.28 +- Specfile refactoring + +* Tue Jan 26 2021 Fedora Release Engineering - 0.9.27-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Tue Oct 27 2020 Jan Staněk - 0.9.27-1 +- Upgrade to version 0.9.27 + +* Wed Aug 12 2020 Jan Staněk - 0.9.26-1 +- Upgrade to version 0.9.26 + +* Tue Jul 28 2020 Fedora Release Engineering - 0.9.25-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 13 2020 Tom Stellard - 0.9.25-2 +- Use make macros +- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro + +* Tue Jul 07 2020 Jan Staněk - 0.9.25-1 +- Upgrade to version 0.9.25 +- Use OpenLDAP git directly in place of GitHub mirror + +* Mon Jun 15 2020 Jan Staněk - 0.9.24-3 +- Properly %%set_build_flags + +* Thu Apr 02 2020 Björn Esser - 0.9.24-2 +- Fix string quoting for rpm >= 4.16 + +* Tue Mar 24 2020 Jan Staněk - 0.9.24-1 +- Upgrade to version 0.9.24 + +* Thu Jan 30 2020 Tom Stellard - 0.9.23-5 +- Use make_build macro + +* Wed Jan 29 2020 Fedora Release Engineering - 0.9.23-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Jul 25 2019 Fedora Release Engineering - 0.9.23-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri Feb 01 2019 Fedora Release Engineering - 0.9.23-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Wed Jan 09 2019 Tomas Krizek - 0.9.23-1 +- Updated to 0.9.23 + +* Mon Nov 05 2018 Jan Staněk - 0.9.22-4 +- Import upstream fix for rhbz#1645114 + +* Fri Jul 13 2018 Fedora Release Engineering - 0.9.22-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Mon Apr 23 2018 Florin Asavoaie - 0.9.22-2 +- Fixed Build Dependencies +- Made build work on CentOS 7 for EPEL + +* Tue Apr 10 2018 Jan Staněk - 0.9.22-1 +- Updated to 0.9.22 + +* Thu Feb 08 2018 Fedora Release Engineering - 0.9.21-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Aug 03 2017 Fedora Release Engineering - 0.9.21-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 0.9.21-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Jun 02 2017 Jan Stanek - 0.9.21-1 +- Update to 0.9.21 + +* Mon Mar 20 2017 Jan Stanek - 0.9.20-3 +- Add pkgconfig file to devel subpackage + +* Fri Feb 10 2017 Fedora Release Engineering - 0.9.20-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Thu Jan 12 2017 Jan Stanek - 0.9.20-1 +- Update to 0.9.20 + +* Wed Jan 04 2017 Jan Stanek - 0.9.19-1 +- Update to 0.9.19 + +* Wed Feb 10 2016 Jan Stanek - 0.9.18-1 +- Update to 0.9.18 + +* Thu Feb 04 2016 Fedora Release Engineering - 0.9.17-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Mon Dec 28 2015 Jan Vcelak 0.9.17-2 +- Make liblmdb.so a symbolic link to (not a copy of) the versioned DSO + +* Thu Dec 03 2015 Jan Staněk - 0.9.17-1 +- Update to 0.9.17 + +* Wed Nov 25 2015 Jan Staněk - 0.9.16-2 +- Return the name 'Symas' into description + +* Fri Aug 14 2015 Jan Staněk - 0.9.16-1 +- Updated to 0.9.16 + +* Wed Jun 17 2015 Fedora Release Engineering - 0.9.14-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Thu Dec 11 2014 Jan Staněk - 0.9.14-1 +- Updated to 0.9.14 + +* Sun Aug 17 2014 Fedora Release Engineering - 0.9.13-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Fri Jul 18 2014 Jan Stanek - 0.9.13-1 +- Updated to 0.9.13 + +* Mon Jul 14 2014 Jan Stanek - 0.9.11-4 +- Changed install instruction to be compatible with older coreutils (#1119084) + +* Thu Jun 26 2014 Jan Stanek - 0.9.11-3 +- Added delay in testing which was needed on s390* arches (#1104232) + +* Sat Jun 07 2014 Fedora Release Engineering - 0.9.11-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Tue May 27 2014 Jan Stanek - 0.9.11-1 +- Initial Package