2 Commits

7 changed files with 247 additions and 5 deletions

View File

@@ -0,0 +1,11 @@
--- libsolv-0.6.19/bindings/python/CMakeLists.txt.orig 2016-02-19 22:55:50.640253346 +0100
+++ libsolv-0.6.19/bindings/python/CMakeLists.txt 2016-02-19 23:16:50.826867127 +0100
@@ -2,7 +2,7 @@
FIND_PACKAGE (PythonLibs REQUIRED)
FIND_PACKAGE (PythonInterp ${PYTHONLIBS_VERSION_STRING} REQUIRED)
-EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from distutils import sysconfig; stdout.write(sysconfig.get_python_lib(True))" OUTPUT_VARIABLE PYTHON_INSTALL_DIR)
+EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from distutils import sysconfig; stdout.write(sysconfig.get_python_lib(plat_specific=True, prefix='/usr'))" OUTPUT_VARIABLE PYTHON_INSTALL_DIR)
IF (NOT DEFINED PYTHON_VERSION_MAJOR)
SET (PYTHON_VERSION_MAJOR 2)

View File

@@ -0,0 +1,30 @@
Only in libsolv-0.6.34.patched: build
diff -ru libsolv-0.6.34/ext/repo_pubkey.c libsolv-0.6.34.patched/ext/repo_pubkey.c
--- libsolv-0.6.34/ext/repo_pubkey.c 2018-05-17 00:43:25.000000000 +0200
+++ libsolv-0.6.34.patched/ext/repo_pubkey.c 2019-06-01 10:15:43.608634150 +0200
@@ -28,6 +28,7 @@
#ifndef RPM5
#include <rpm/header.h>
#endif
+#include <rpm/rpm46compat.h>
#include <rpm/rpmdb.h>
#include "pool.h"
@@ -757,7 +758,7 @@
#ifndef RPM5
dig = pgpNewDig();
#else
- dig = pgpDigNew(RPMVSF_DEFAULT, 0);
+ dig = pgpDigNew(RPMVSF_DEFAULT);
#endif
(void) pgpPrtPkts(pkts, pktsl, dig, 0);
#ifdef HAVE_PGPDIGGETPARAMS
@@ -782,7 +783,7 @@
#ifndef RPM5
(void)pgpFreeDig(dig);
#else
- (void)pgpDigFree(dig);
+ (void)pgpDigFree(dig, 0);
#endif
}

View File

@@ -0,0 +1,11 @@
--- libsolv-0.6.34/bindings/solv.i.orig 2019-06-01 10:55:51.388501920 +0200
+++ libsolv-0.6.34/bindings/solv.i 2019-06-01 10:56:02.810556652 +0200
@@ -573,7 +573,7 @@
#if defined(SWIGRUBY)
SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Pool, SWIG_POINTER_DISOWN | 0 );
#elif defined(SWIGPYTHON)
- SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Pool, SWIG_POINTER_DISOWN | 0 );
+ SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Pool, SWIG_POINTER_DISOWN | 0 );
#elif defined(SWIGPERL)
SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Pool, SWIG_POINTER_DISOWN | 0 );
#elif defined(SWIGTCL)

View File

@@ -0,0 +1,27 @@
(partial, not finished: rpmdbIndex* and headerImport APIs are used)
--- libsolv-0.6.34/ext/repo_rpmdb_librpm.h.orig 2018-03-23 12:04:14.000000000 +0100
+++ libsolv-0.6.34/ext/repo_rpmdb_librpm.h 2018-05-10 20:28:01.213443653 +0200
@@ -15,6 +15,12 @@
#include <rpm/rpmts.h>
#include <rpm/rpmmacro.h>
+#ifdef RPM5
+#define _RPMVSF_NOSIGNATURES (RPMVSF_NODSAHEADER | RPMVSF_NORSAHEADER | RPMVSF_NODSA | RPMVSF_NORSA)
+#define _RPMVSF_NODIGESTS (RPMVSF_NOSHA1HEADER | RPMVSF_NOMD5HEADER | RPMVSF_NOSHA1 | RPMVSF_NOMD5)
+#define _RPMVSF_NOHEADER (RPMVSF_NOSHA1HEADER | RPMVSF_NOMD5HEADER | RPMVSF_NODSAHEADER | RPMVSF_NORSAHEADER)
+#endif
+
struct rpmdbstate {
Pool *pool;
char *rootdir;
--- libsolv-0.6.35/ext/repo_rpmdb.c.orig 2019-06-04 17:32:58.000000000 +0200
+++ libsolv-0.6.35/ext/repo_rpmdb.c 2019-06-04 17:33:15.457951815 +0200
@@ -30,6 +30,8 @@
#include <rpm/rpmpgp.h>
#ifndef RPM5
#include <rpm/header.h>
+#else
+#include <rpm/rpm46compat.h>
#endif
#include <rpm/rpmdb.h>

View File

@@ -0,0 +1,50 @@
From 68d72a88d5dc983aff2ff5dce65581de0ee42b6d Mon Sep 17 00:00:00 2001
From: Michael Schroeder <mls@suse.de>
Date: Wed, 5 Jun 2019 15:58:55 +0200
Subject: [PATCH] Make libsolv work with rpm 5.2
Version 5.2 still used native endian encoding for the database ids.
---
ext/repo_rpmdb_bdb.h | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/ext/repo_rpmdb_bdb.h b/ext/repo_rpmdb_bdb.h
index ed82a69c..d0053f71 100644
--- a/ext/repo_rpmdb_bdb.h
+++ b/ext/repo_rpmdb_bdb.h
@@ -27,6 +27,13 @@
# define RPM_INDEX_SIZE 8 /* rpmdbid + array index */
#endif
+#ifdef RPM5
+# include <rpm/rpmversion.h>
+# if RPMLIB_VERSION_GE(5,3,_,0,0,_)
+# define RPM5_BIG_ENDIAN_ID
+# endif
+#endif
+
/******************************************************************/
/* Rpm Database stuff
@@ -66,11 +73,10 @@ stat_database(struct rpmdbstate *state, char *dbname, struct stat *statbuf, int
return 0;
}
-
static inline Id
db2rpmdbid(unsigned char *db, int byteswapped)
{
-#ifdef RPM5
+#ifdef RPM5_BIG_ENDIAN_ID
return db[0] << 24 | db[1] << 16 | db[2] << 8 | db[3];
#else
# if defined(WORDS_BIGENDIAN)
@@ -87,7 +93,7 @@ db2rpmdbid(unsigned char *db, int byteswapped)
static inline void
rpmdbid2db(unsigned char *db, Id id, int byteswapped)
{
-#ifdef RPM5
+#ifdef RPM5_BIG_ENDIAN_ID
db[0] = id >> 24, db[1] = id >> 16, db[2] = id >> 8, db[3] = id;
#else
# if defined(WORDS_BIGENDIAN)

View File

@@ -0,0 +1,38 @@
From 841287dfb7a5992b374aa5326e776cd7d54fc0da Mon Sep 17 00:00:00 2001
From: Michael Schroeder <mls@suse.de>
Date: Wed, 5 Jun 2019 16:16:09 +0200
Subject: [PATCH] rpm-5.2 still had an array index
---
ext/repo_rpmdb_bdb.h | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/ext/repo_rpmdb_bdb.h b/ext/repo_rpmdb_bdb.h
index d0053f71..c680da6b 100644
--- a/ext/repo_rpmdb_bdb.h
+++ b/ext/repo_rpmdb_bdb.h
@@ -21,17 +21,16 @@
# endif
#endif
-#ifdef RPM5
-# define RPM_INDEX_SIZE 4 /* just the rpmdbid */
-#else
-# define RPM_INDEX_SIZE 8 /* rpmdbid + array index */
-#endif
-
#ifdef RPM5
# include <rpm/rpmversion.h>
-# if RPMLIB_VERSION_GE(5,3,_,0,0,_)
+# if RPMLIB_VERSION < RPMLIB_VERSION_ENCODE(5,3,_,0,0,_)
+# define RPM_INDEX_SIZE 8 /* rpmdbid + array index */
+# else
+# define RPM_INDEX_SIZE 4 /* just the rpmdbid */
# define RPM5_BIG_ENDIAN_ID
-# endif
+#endif
+#else
+# define RPM_INDEX_SIZE 8 /* rpmdbid + array index */
#endif

View File

@@ -1,6 +1,6 @@
Name: libsolv
Version: 0.6.34
Release: 1mamba
Version: 0.7.4
Release: 3mamba
Summary: Library for solving packages and reading repositories
Group: System/Libraries
Vendor: openmamba
@@ -8,10 +8,24 @@ Distribution: openmamba
Packager: Silvan Calarco <silvan.calarco@mambasoft.it>
URL: http://en.opensuse.org/openSUSE:Libzypp_satsolver
Source: https://github.com/openSUSE/libsolv.git/%{version}/libsolv-%{version}.tar.bz2
Patch0: libsolv-0.6.35-rpm-5.patch
Patch1: libsolv-0.6.34-rpm-5.2.patch
Patch2: libsolv-0.6.34-python.patch
Patch3: libsolv-0.6.34-swig-4.0.0.patch
Patch4: libsolv-0.7.4-rpm5-5.2-endianess-fix.patch
Patch5: libsolv-0.7.4-rpm5.2-still-has-array-index.patch
License: BSD
## AUTOBUILDREQ-BEGIN
BuildRequires: glibc-devel
BuildRequires: libbzip2-devel
BuildRequires: libexpat-devel
BuildRequires: liblzma-devel
BuildRequires: libperl
BuildRequires: libpython-devel
BuildRequires: libtcl-devel
BuildRequires: libz-devel
BuildRequires: perl-devel
BuildRequires: rpm-devel
## AUTOBUILDREQ-END
BuildRequires: cmake
BuildRoot: %{_tmppath}/%{name}-%{version}-root
@@ -40,9 +54,34 @@ This package contains utility applications for %{name}.
%prep
%setup -q
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%build
%cmake -d build
%cmake -d build \
-DENABLE_APPDATA=ON \
-DENABLE_BZIP2_COMPRESSION=ON \
-DENABLE_COMPLEX_DEPS=ON \
-DENABLE_LZMA_COMPRESSION=ON \
-DENABLE_ZCHUNK_COMPRESSION=ON \
-DENABLE_RPMDB=ON \
-DENABLE_RPMPKG=ON \
-DENABLE_RPMMD=ON \
-DWITH_LIBXML2=ON \
-DRPM5=ON \
-DENABLE_PERL=ON \
-DENABLE_PYTHON=ON \
-DENABLE_RUBY=ON \
-DENABLE_TCL=ON \
-DPythonLibs_FIND_VERSION=2 \
-DPythonLibs_FIND_VERSION_MAJOR=2 \
-DUSE_VENDORDIRS=ON \
-DCMAKE_C_FLAGS="%{optflags} -Doff64_t=__off64_t"
%make
%install
@@ -61,6 +100,11 @@ cp ext/*.h %{buildroot}%{_includedir}/solv/
%defattr(-,root,root)
%{_libdir}/libsolv.so.*
%{_libdir}/libsolvext.so.*
%{perl_vendorarch}/solv.*
%{_libdir}/ruby/vendor_ruby/*/*-linux-gnu*/solv.so
%{_prefix}/lib/tcl8/*/solv-%{version}.*
%{python27_sitearch}/_solv.so
%{python27_sitearch}/solv.py
%doc CREDITS
%files devel
@@ -77,20 +121,51 @@ cp ext/*.h %{buildroot}%{_includedir}/solv/
%{_mandir}/man3/libsolv-history.3*
%{_mandir}/man3/libsolv-pool.3*
%{_mandir}/man3/libsolv.3*
%doc BUGS NEWS README
%doc NEWS README
%files tools
%defattr(-,root,root)
%{_bindir}/appdata2solv
%{_bindir}/deltainfoxml2solv
%{_bindir}/dumpsolv
%{_bindir}/installcheck
%{_bindir}/mergesolv
%{_bindir}/repo2solv.sh
%{_bindir}/repo2solv
%{_bindir}/testsolv
%{_bindir}/repomdxml2solv
%{_bindir}/rpmdb2solv
%{_bindir}/rpmmd2solv
%{_bindir}/rpms2solv
%{_bindir}/updateinfoxml2solv
%{_mandir}/man1/appdata2solv.1*
%{_mandir}/man1/deltainfoxml2solv.1*
%{_mandir}/man1/dumpsolv.1*
%{_mandir}/man1/installcheck.1*
%{_mandir}/man1/mergesolv.1*
%{_mandir}/man1/repo2solv.1*
%{_mandir}/man1/solv.1*
%{_mandir}/man1/testsolv.1*
%{_mandir}/man1/repomdxml2solv.1*
%{_mandir}/man1/rpmdb2solv.1*
%{_mandir}/man1/rpmmd2solv.1*
%{_mandir}/man1/rpms2solv.1*
%{_mandir}/man1/updateinfoxml2solv.1*
%changelog
* Wed Jun 05 2019 Silvan Calarco <silvan.calarco@mambasoft.it> 0.7.4-3mamba
- added upstream patch to fix endianess with rpm 5.2
* Tue Jun 04 2019 Silvan Calarco <silvan.calarco@mambasoft.it> 0.7.4-2mamba
- rebuilt with ENABLE_RPMMD=ON for fedora like repository (yum)
* Tue Jun 04 2019 Silvan Calarco <silvan.calarco@mambasoft.it> 0.7.4-1mamba
- update to 0.7.4
* Tue Jun 04 2019 Silvan Calarco <silvan.calarco@mambasoft.it> 0.6.35-1mamba
- update to 0.6.35
* Sat Jun 01 2019 Silvan Calarco <silvan.calarco@mambasoft.it> 0.6.34-2mamba
- rebuilt with rpm5 patch and build options from pld
* Thu May 17 2018 Silvan Calarco <silvan.calarco@mambasoft.it> 0.6.34-1mamba
- package created using the webbuild interface