Hello community, here is the log from the commit of package libcryptopp for openSUSE:Factory checked in at 2017-03-10 20:47:44 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libcryptopp (Old) and /work/SRC/openSUSE:Factory/.libcryptopp.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libcryptopp" Fri Mar 10 20:47:44 2017 rev:28 rq:477070 version:5.6.5 Changes: -------- --- /work/SRC/openSUSE:Factory/libcryptopp/libcryptopp.changes 2017-02-26 17:03:45.493939918 +0100 +++ /work/SRC/openSUSE:Factory/.libcryptopp.new/libcryptopp.changes 2017-03-10 20:47:49.827634068 +0100 @@ -1,0 +2,11 @@ +Fri Mar 3 05:58:37 UTC 2017 - [email protected] + +- Added patch field to soname due to library not following proper + API/ABI versioning to fix boo#1027192. +- Removed crypto.pc and generate it in the spec file to ensure + proper version and directories. +- Changed libcryptopp-shared.patch. +- Renamed library package and obsoleted old name. +- added precheckin_baselibs.sh and updated baselibs.conf + +------------------------------------------------------------------- Old: ---- cryptopp.pc New: ---- precheckin_baselibs.sh ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libcryptopp.spec ++++++ --- /var/tmp/diff_new_pack.dNh3pr/_old 2017-03-10 20:47:51.563388043 +0100 +++ /var/tmp/diff_new_pack.dNh3pr/_new 2017-03-10 20:47:51.567387476 +0100 @@ -19,22 +19,23 @@ %define major 5 %define minor 6 %define patch 5 +%define pkg_version %{major}%{minor}%{patch} Name: libcryptopp -# When updating, remember to update cryptopp.pc and baselibs.conf as well. +# WARNING: Execute "sh precheckin_baselibs.sh" to update baselibs.conf +# WARNING: uses source zip file name to create lib name. Version: %{major}.%{minor}.%{patch} Release: 0 -%define pkg_version %{major}%{minor}%{patch} # There is no upstream interface version information. -# Therefore we need unique basenames: -%define soname %{major}_%{minor} +# Therefore we need unique basenames (see boo#1027192): +%define sover %{major}_%{minor}_%{patch} Summary: Cryptographic library for C++ License: BSL-1.0 Group: Development/Libraries/C and C++ Url: http://www.cryptopp.com -Source: http://www.cryptopp.com/cryptopp%{pkg_version}.zip -Source1: baselibs.conf -Source2: cryptopp.pc +Source: http://www.cryptopp.com/cryptopp%{major}%{minor}%{patch}.zip +Source1: precheckin_baselibs.sh +Source2: baselibs.conf # PATCH-FEATURE-OPENSUSE libcryptopp-shared.patch -- improve shared library creation Patch1: libcryptopp-shared.patch # PATCH-BUILDFIX-OPENSUSE 0001-disable_os_rng_test.patch [email protected] -- disable OS Random Number Generator test @@ -46,12 +47,16 @@ %description The Crypto++ library is a C++ class library of cryptographic schemes. +Also contains: +pseudo random number generators (PRNG): ANSI X9.17 appendix C, +RandomPool, RDRAND, RDSEED, NIST Hash DRBG. -%package -n %{name}%{soname} +%package -n %{name}%{sover} Summary: Cryptographic Library for C++ Group: System/Libraries +Obsoletes: %{name}%{major}_%{minor} = %{version} -%description -n %{name}%{soname} +%description -n %{name}%{sover} The Crypto++ library provides authenticated encryption, stream and block ciphers, block cipher operation modes, message authentication codes, hash functions, PKI crypto, key agreement schemes and elliptic @@ -60,42 +65,69 @@ %package -n %{name}-devel Summary: Development files for libcryptopp, a cryptographic library for C++ Group: Development/Libraries/C and C++ -Requires: %{name}%{soname} = %{version} +Requires: %{name}%{sover} = %{version} Obsoletes: %{name}-devel-static %description -n %{name}-devel -The Crypto++ library is a C++ class library of cryptographic schemes. +The Crypto++ library provides authenticated encryption, stream and +block ciphers, block cipher operation modes, message authentication +codes, hash functions, PKI crypto, key agreement schemes and elliptic +curve crypto. This package is used for crypto++ development. + %prep %setup -q -c "%{name}-%{version}" -%patch1 -p1 +%patch1 -p0 %patch4 -p1 +echo %{major}.%{minor}.%{patch} +echo %{pkg_version} #mv config.recommend config.h %build make %{?_smp_mflags} \ - CXXFLAGS="-DNDEBUG %{optflags} -fPIC -pthread -fopenmp" \ + CXXFLAGS="-DNDEBUG %{optflags} -fpic -fPIC -pthread -fopenmp" \ + DESTDIR="" \ + PREFIX="%{_prefix}" \ + LIB="%{_lib}" \ CXX="g++" \ - all + LIBSUFFIX="-%{version}" \ + LDFLAGS="-pthread" \ + all static %install make \ DESTDIR=%{buildroot} \ PREFIX="%{_prefix}" \ - LIBDIR="%{_libdir}" \ + LIB="%{_lib}" \ LIBSUFFIX="-%{version}" \ install rm -rf "%{buildroot}%{_bindir}" %{buildroot}%{_datadir}/cryptopp +rm -rf "%{buildroot}%{_bindir}" +rm %{buildroot}%{_libdir}/*.a +# Install .pc file with correct version field. mkdir %{buildroot}%{_libdir}/pkgconfig/ -cp %{SOURCE2} %{buildroot}%{_libdir}/pkgconfig/ +echo "prefix=%{_prefix}" >%{buildroot}%{_libdir}/pkgconfig/cryptopp.pc +echo "exec_prefix=\${prefix}" >>%{buildroot}%{_libdir}/pkgconfig/cryptopp.pc +echo "lib=%{_lib}" >>%{buildroot}%{_libdir}/pkgconfig/cryptopp.pc +echo "libdir=\${exec_prefix}/\${lib}" >>%{buildroot}%{_libdir}/pkgconfig/cryptopp.pc +echo "includedir=\${prefix}/include" >>%{buildroot}%{_libdir}/pkgconfig/cryptopp.pc +echo "" >>%{buildroot}%{_libdir}/pkgconfig/cryptopp.pc +echo "Name: libcrypto++" >>%{buildroot}%{_libdir}/pkgconfig/cryptopp.pc +echo "Description: General purpose cryptographic shared library" >>%{buildroot}%{_libdir}/pkgconfig/cryptopp.pc +echo "URL: http://www.cryptopp.com" >>%{buildroot}%{_libdir}/pkgconfig/cryptopp.pc +echo "Version: %{version}" >>%{buildroot}%{_libdir}/pkgconfig/cryptopp.pc +echo "Requires:" >>%{buildroot}%{_libdir}/pkgconfig/cryptopp.pc +echo "Libs: -lcryptopp" >>%{buildroot}%{_libdir}/pkgconfig/cryptopp.pc +echo "Cflags:" >>%{buildroot}%{_libdir}/pkgconfig/cryptopp.pc +echo "" >>%{buildroot}%{_libdir}/pkgconfig/cryptopp.pc %check LD_LIBRARY_PATH=%{buildroot}%{_libdir} make test -%post -n %{name}%{soname} -p /sbin/ldconfig -%postun -n %{name}%{soname} -p /sbin/ldconfig +%post -n %{name}%{sover} -p /sbin/ldconfig +%postun -n %{name}%{sover} -p /sbin/ldconfig -%files -n %{name}%{soname} +%files -n %{name}%{sover} %defattr(-,root,root) %{_libdir}/libcryptopp.so.%{major}.* ++++++ baselibs.conf ++++++ --- /var/tmp/diff_new_pack.dNh3pr/_old 2017-03-10 20:47:51.607381808 +0100 +++ /var/tmp/diff_new_pack.dNh3pr/_new 2017-03-10 20:47:51.611381241 +0100 @@ -1 +1,2 @@ -libcryptopp5_6 +libcryptopp5_6_5 + ++++++ libcryptopp-shared.patch ++++++ --- /var/tmp/diff_new_pack.dNh3pr/_old 2017-03-10 20:47:51.631378407 +0100 +++ /var/tmp/diff_new_pack.dNh3pr/_new 2017-03-10 20:47:51.631378407 +0100 @@ -1,7 +1,25 @@ -Index: libcryptopp-5.6.5/GNUmakefile +Index: GNUmakefile =================================================================== ---- libcryptopp-5.6.5.orig/GNUmakefile -+++ libcryptopp-5.6.5/GNUmakefile +--- GNUmakefile.orig 2016-10-11 01:49:54.000000000 +0200 ++++ GNUmakefile 2017-03-03 06:40:32.760437872 +0200 +@@ -74,7 +74,7 @@ ifeq ($(DATADIR),) + DATADIR := $(PREFIX)/share + endif + ifeq ($(LIBDIR),) +-LIBDIR := $(PREFIX)/lib ++LIBDIR := $(PREFIX)/$(LIB) + endif + ifeq ($(BINDIR),) + BINDIR := $(PREFIX)/bin +@@ -405,7 +405,7 @@ ifeq ($(HAS_SOLIB_VERSION),1) + SOLIB_VERSION_SUFFIX=.$(LIB_MAJOR).$(LIB_MINOR).$(LIB_PATCH) + # Different patchlevels are compatible, minor versions are not + SOLIB_COMPAT_SUFFIX=.$(LIB_MAJOR).$(LIB_MINOR) +-SOLIB_FLAGS=-Wl,-soname,libcryptopp.so$(SOLIB_COMPAT_SUFFIX) ++SOLIB_FLAGS=-Wl,-soname,libcryptopp.so$(SOLIB_VERSION_SUFFIX) + endif # HAS_SOLIB_VERSION + + ########################################################### @@ -640,8 +640,8 @@ endif libcryptopp.dylib: $(LIBOBJS) $(CXX) -dynamiclib -o $@ $(CXXFLAGS) -install_name "$@" -current_version "$(LIB_MAJOR).$(LIB_MINOR).$(LIB_PATCH)" -compatibility_version "$(LIB_MAJOR).$(LIB_MINOR)" -headerpad_max_install_names $(LDFLAGS) $(LIBOBJS) ++++++ precheckin_baselibs.sh ++++++ #!/bin/bash rm baselibs.conf echo "libcryptopp$(ls -1 *zip |cut -b 9)_$(ls -1 *zip |cut -b 10)_$(ls -1 *zip |cut -b 11)" > baselibs.conf echo "" >> baselibs.conf
