Package: libsolv
Version: 0.6.30-1

This patch:
  - fixes how libsolv installs its FindLibSolv.cmake files, which has been
    broken before - no, this is not a version file!
  - fixes various meta errors (dependencies, typo in patch file name that is
    supposed to fix typos, symbols file cleanup, ...)
  - enables some optional features previously disabled and
  - patches libsolv's RPMDB handling to be compatible with the patched rpm
    package version that uses ~/.rpmdb instead of the system-level /var/lib/rpm
    dbpath.

I will probably have to push the latter patch upstream as well.

This patch also opens the way for DNF on Debian.



Mihai
diff -Nru libsolv-0.6.30/debian/changelog libsolv-0.6.30/debian/changelog
--- libsolv-0.6.30/debian/changelog	2017-11-03 09:02:08.000000000 +0100
+++ libsolv-0.6.30/debian/changelog	2018-02-02 14:33:28.000000000 +0100
@@ -1,3 +1,34 @@
+libsolv (0.6.30-2) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * debian/patches:
+    + Drop 1004_cmake-module-path-fix.patch. Breaks package, since Find*
+      modules should actually be installed in the modules directory and this
+      file does NOT provide version information.
+    + Add 1005_install-cmake-module-into-libdir.patch. Installs
+      FindLibSolv.cmake into ${libdir}/cmake/libsolv/.
+    + Rename 1006_various-types.patch to 1006_various-typos.patch.
+    + Add 3000_ext-repo_rpmdb.c_src_pool.h_c_debian-style-home-dir-rpmdb.patch
+      for RPMDB handling in home directories, compatible with Debian's rpm
+      package.
+    + Add 3010_src-libsolv.ver_add-new-pool-homedir-functions.patch for binary
+      compatibility and exporting the newly inserted symbols.
+    + Add 3020_bindings-solv.i_add-new-pool-homedir-functions.patch, providing
+      perl bindings for the new functions.
+    + Add 3030_doc-misc_add-new-pool-homedir-functions.patch documenting the
+      new functions.
+  * debian/rules:
+    + Enable complex (i.e., rich) dependencies support.
+    * Enable Fedora comps support.
+  * debian/libsolv0.symbols:
+    + Remove symbols related to libsolvext0.
+  * debian/libsolvext0.symbols:
+    + Update.
+  * debian/control:
+    + Add BD: dh-python.
+
+ -- Mihai Moldovan <[email protected]>  Fri, 02 Feb 2018 14:33:28 +0100
+
 libsolv (0.6.30-1) unstable; urgency=medium
 
   [ Héctor Orón Martínez ]
diff -Nru libsolv-0.6.30/debian/control libsolv-0.6.30/debian/control
--- libsolv-0.6.30/debian/control	2017-11-03 09:00:30.000000000 +0100
+++ libsolv-0.6.30/debian/control	2018-02-02 14:33:28.000000000 +0100
@@ -1,11 +1,12 @@
 Source: libsolv
 Section: admin
 Priority: optional
 Maintainer: Mike Gabriel <[email protected]> 
 Build-Depends:
  debhelper (>= 9),
  dpkg-dev (>= 1.16.1.1),
  cdbs,
+ dh-python,
  cmake, 
  libexpat1-dev,
  zlib1g-dev,
diff -Nru libsolv-0.6.30/debian/libsolv0-dev.install libsolv-0.6.30/debian/libsolv0-dev.install
--- libsolv-0.6.30/debian/libsolv0-dev.install	2016-06-29 16:25:10.000000000 +0200
+++ libsolv-0.6.30/debian/libsolv0-dev.install	2018-01-28 11:07:05.000000000 +0100
@@ -26,5 +26,5 @@
 usr/include/*/solv/transaction.h
 usr/include/*/solv/util.h
 usr/lib/*/libsolv.so
-usr/lib/*/cmake/
+usr/lib/*/cmake/libsolv/FindLibSolv.cmake
 usr/lib/*/pkgconfig/libsolv.pc
diff -Nru libsolv-0.6.30/debian/libsolv0.symbols libsolv-0.6.30/debian/libsolv0.symbols
--- libsolv-0.6.30/debian/libsolv0.symbols	2017-11-03 09:00:30.000000000 +0100
+++ libsolv-0.6.30/debian/libsolv0.symbols	2018-02-02 14:33:28.000000000 +0100
@@ -72,6 +72,7 @@
  pool_freewhatprovides@SOLV_1.0 0.6.5
  pool_get_flag@SOLV_1.0 0.6.5
  pool_get_rootdir@SOLV_1.0 0.6.5
+ pool_get_use_homedir@SOLV_1.1 0.6.30-2~
  pool_id2evr@SOLV_1.0 0.6.5
  pool_id2langid@SOLV_1.0 0.6.5
  pool_id2rel@SOLV_1.0 0.6.5
@@ -102,6 +103,7 @@
  pool_set_installed@SOLV_1.0 0.6.5
  pool_set_languages@SOLV_1.0 0.6.5
  pool_set_rootdir@SOLV_1.0 0.6.5
+ pool_set_use_homedir@SOLV_1.1 0.6.30-2~
  pool_setarch@SOLV_1.0 0.6.5
  pool_setarchpolicy@SOLV_1.0 0.6.5
  pool_setdebugcallback@SOLV_1.0 0.6.5
@@ -422,67 +424,3 @@
  transaction_order_get_cycleids@SOLV_1.0 0.6.21
  transaction_print@SOLV_1.0 0.6.5
  transaction_type@SOLV_1.0 0.6.5
-libsolvext.so.0 libsolv0 #MINVER#
- SOLV_1.0@SOLV_1.0 0.6.30
- pool_deb_get_autoinstalled@SOLV_1.0 0.6.30
- pool_findfileconflicts@SOLV_1.0 0.6.30
- repo_add_arch_local@SOLV_1.0 0.6.30
- repo_add_arch_pkg@SOLV_1.0 0.6.30
- repo_add_arch_repo@SOLV_1.0 0.6.30
- repo_add_code11_products@SOLV_1.0 0.6.30
- repo_add_content@SOLV_1.0 0.6.30
- repo_add_cudf@SOLV_1.0 0.6.30
- repo_add_deb@SOLV_1.0 0.6.30
- repo_add_debdb@SOLV_1.0 0.6.30
- repo_add_debpackages@SOLV_1.0 0.6.30
- repo_add_deltainfoxml@SOLV_1.0 0.6.30
- repo_add_helix@SOLV_1.0 0.6.30
- repo_add_keydir@SOLV_1.0 0.6.30
- repo_add_keyring@SOLV_1.0 0.6.30
- repo_add_mdk@SOLV_1.0 0.6.30
- repo_add_mdk_info@SOLV_1.0 0.6.30
- repo_add_products@SOLV_1.0 0.6.30
- repo_add_pubkey@SOLV_1.0 0.6.30
- repo_add_releasefile_products@SOLV_1.0 0.6.30
- repo_add_repomdxml@SOLV_1.0 0.6.30
- repo_add_rpm@SOLV_1.0 0.6.30
- repo_add_rpm_handle@SOLV_1.0 0.6.30
- repo_add_rpmdb@SOLV_1.0 0.6.30
- repo_add_rpmdb_pubkeys@SOLV_1.0 0.6.30
- repo_add_rpmdb_reffp@SOLV_1.0 0.6.30
- repo_add_rpmmd@SOLV_1.0 0.6.30
- repo_add_susetags@SOLV_1.0 0.6.30
- repo_add_updateinfoxml@SOLV_1.0 0.6.30
- repo_add_zyppdb_products@SOLV_1.0 0.6.30
- repo_find_all_pubkeys@SOLV_1.0 0.6.30
- repo_find_pubkey@SOLV_1.0 0.6.30
- repo_verify_sigdata@SOLV_1.0 0.6.30
- rpm_byfp@SOLV_1.0 0.6.30
- rpm_byrpmdbid@SOLV_1.0 0.6.30
- rpm_byrpmh@SOLV_1.0 0.6.30
- rpm_installedrpmdbids@SOLV_1.0 0.6.30
- rpm_iterate_filelist@SOLV_1.0 0.6.30
- rpm_query@SOLV_1.0 0.6.30
- rpm_query_num@SOLV_1.0 0.6.30
- rpm_state_create@SOLV_1.0 0.6.30
- rpm_state_free@SOLV_1.0 0.6.30
- solv_xfopen@SOLV_1.0 0.6.30
- solv_xfopen_buf@SOLV_1.0 0.6.30
- solv_xfopen_fd@SOLV_1.0 0.6.30
- solv_xfopen_iscompressed@SOLV_1.0 0.6.30
- solvsig_create@SOLV_1.0 0.6.30
- solvsig_free@SOLV_1.0 0.6.30
- solvsig_verify@SOLV_1.0 0.6.30
- testcase_add_testtags@SOLV_1.0 0.6.30
- testcase_dep2str@SOLV_1.0 0.6.30
- testcase_job2str@SOLV_1.0 0.6.30
- testcase_read@SOLV_1.0 0.6.30
- testcase_resultdiff@SOLV_1.0 0.6.30
- testcase_solverresult@SOLV_1.0 0.6.30
- testcase_solvid2str@SOLV_1.0 0.6.30
- testcase_str2dep@SOLV_1.0 0.6.30
- testcase_str2job@SOLV_1.0 0.6.30
- testcase_str2repo@SOLV_1.0 0.6.30
- testcase_str2solvid@SOLV_1.0 0.6.30
- testcase_write@SOLV_1.0 0.6.30
- testcase_write_testtags@SOLV_1.0 0.6.30
diff -Nru libsolv-0.6.30/debian/libsolvext0.symbols libsolv-0.6.30/debian/libsolvext0.symbols
--- libsolv-0.6.30/debian/libsolvext0.symbols	2017-02-01 11:36:54.000000000 +0100
+++ libsolv-0.6.30/debian/libsolvext0.symbols	2018-02-02 14:33:28.000000000 +0100
@@ -1,12 +1,14 @@
 libsolvext.so.0 libsolvext0 #MINVER#
  SOLV_1.0@SOLV_1.0 0.6.5
  pool_findfileconflicts@SOLV_1.0 0.6.5
+ pool_parserpmrichdep@SOLV_1.0 0.6.30
  pool_deb_get_autoinstalled@SOLV_1.0 0.6.10
  repo_add_arch_local@SOLV_1.0 0.6.5
  repo_add_arch_pkg@SOLV_1.0 0.6.5
  repo_add_arch_repo@SOLV_1.0 0.6.5
 #MISSING: 0.6.24-1# repo_add_autopattern@SOLV_1.0 0.6.5
  repo_add_code11_products@SOLV_1.0 0.6.5
+ repo_add_comps@SOLV_1.0 0.6.30-2~
  repo_add_content@SOLV_1.0 0.6.5
  repo_add_cudf@SOLV_1.0 0.6.5
  repo_add_deb@SOLV_1.0 0.6.5
diff -Nru libsolv-0.6.30/debian/patches/1004_cmake-module-path-fix.patch libsolv-0.6.30/debian/patches/1004_cmake-module-path-fix.patch
--- libsolv-0.6.30/debian/patches/1004_cmake-module-path-fix.patch	2017-11-03 09:00:13.000000000 +0100
+++ libsolv-0.6.30/debian/patches/1004_cmake-module-path-fix.patch	1970-01-01 01:00:00.000000000 +0100
@@ -1,22 +0,0 @@
-Description: Rename FindLibSolv.cmake to LibSolvConfig.cmake after installation.
-Author: Mike Gabriel <[email protected]>
-
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -1,6 +1,6 @@
- PROJECT (libsolv)
- 
--CMAKE_MINIMUM_REQUIRED (VERSION 2.4)
-+CMAKE_MINIMUM_REQUIRED (VERSION 2.8)
- 
- OPTION (ENABLE_STATIC "Build a static version of the libraries?" OFF)
- OPTION (DISABLE_SHARED "Do not build a shared version of the libraries?" OFF)
-@@ -77,7 +77,7 @@
- 
- # where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked
- SET (CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules)
--INSTALL( FILES ${CMAKE_MODULE_PATH}/FindLibSolv.cmake DESTINATION ${CMAKE_INSTALL_PREFIX}/share/cmake/Modules )
-+INSTALL( FILES ${CMAKE_MODULE_PATH}/FindLibSolv.cmake RENAME LibSolvConfig.cmake DESTINATION ${LIB_INSTALL_DIR}/cmake/LibSolv/ )
- 
- INCLUDE (${CMAKE_SOURCE_DIR}/VERSION.cmake)
- 
diff -Nru libsolv-0.6.30/debian/patches/1005_install-cmake-module-into-libdir.patch libsolv-0.6.30/debian/patches/1005_install-cmake-module-into-libdir.patch
--- libsolv-0.6.30/debian/patches/1005_install-cmake-module-into-libdir.patch	1970-01-01 01:00:00.000000000 +0100
+++ libsolv-0.6.30/debian/patches/1005_install-cmake-module-into-libdir.patch	2018-01-28 10:48:55.000000000 +0100
@@ -0,0 +1,14 @@
+Description: Install FindLibSolv.cmake into ${libdir}/cmake/libsolv/.
+Author: Mihai Moldovan <[email protected]>
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -77,7 +77,7 @@ ENDIF (NOT PKGCONFIG_INSTALL_DIR)
+ 
+ # where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked
+ SET (CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules)
+-INSTALL( FILES ${CMAKE_MODULE_PATH}/FindLibSolv.cmake DESTINATION ${CMAKE_INSTALL_PREFIX}/share/cmake/Modules )
++INSTALL( FILES ${CMAKE_MODULE_PATH}/FindLibSolv.cmake DESTINATION ${LIB_INSTALL_DIR}/cmake/libsolv/ )
+ 
+ INCLUDE (${CMAKE_SOURCE_DIR}/VERSION.cmake)
+ 
diff -Nru libsolv-0.6.30/debian/patches/1006_various-types.patch libsolv-0.6.30/debian/patches/1006_various-types.patch
--- libsolv-0.6.30/debian/patches/1006_various-types.patch	2017-11-03 09:00:30.000000000 +0100
+++ libsolv-0.6.30/debian/patches/1006_various-types.patch	1970-01-01 01:00:00.000000000 +0100
@@ -1,144 +0,0 @@
-Description: Various typo and grammar fixes
-Author: Mike Gabriel <[email protected]>
-
-Index: libsolv-0.6.30/README
-===================================================================
---- libsolv-0.6.30.orig/README	2017-11-02 18:43:04.034633747 +0100
-+++ libsolv-0.6.30/README	2017-11-02 18:43:04.026633621 +0100
-@@ -10,7 +10,7 @@
-     resolving package dependencies.
- 
- The sat-solver code has been written to aim for the newest packages,
--record the decision tree to provide introspection, and also allows to
-+record the decision tree to provide introspection, and also allows one to
- provide the user with suggestions on how to deal with unsolvable
- problems. It also takes advantage of the repository storage to
- minimize memory usage.
-Index: libsolv-0.6.30/doc/gen/libsolv-bindings.3
-===================================================================
---- libsolv-0.6.30.orig/doc/gen/libsolv-bindings.3	2017-11-02 18:43:04.034633747 +0100
-+++ libsolv-0.6.30/doc/gen/libsolv-bindings.3	2017-11-02 18:43:04.026633621 +0100
-@@ -1928,7 +1928,7 @@
- .RE
- .\}
- .sp
--Add all pubkeys contained in the rpm database to the repository\&. Note that newer rpm versions also allow to store the pubkeys in some directory instead of the rpm database\&.
-+Add all pubkeys contained in the rpm database to the repository\&. Note that newer rpm versions also allow one to store the pubkeys in some directory instead of the rpm database\&.
- .sp
- .if n \{\
- .RS 4
-@@ -3248,7 +3248,7 @@
- .PP
- \fBSOLVER_WEAKENDEPS\fR
- .RS 4
--Allow to break the dependencies of the matching packages\&. Handle with care\&.
-+Allow one to break the dependencies of the matching packages\&. Handle with care\&.
- .RE
- .PP
- \fBSOLVER_MULTIVERSION\fR
-Index: libsolv-0.6.30/doc/libsolv-bindings.txt
-===================================================================
---- libsolv-0.6.30.orig/doc/libsolv-bindings.txt	2017-11-02 18:43:04.034633747 +0100
-+++ libsolv-0.6.30/doc/libsolv-bindings.txt	2017-11-02 18:43:04.026633621 +0100
-@@ -1092,7 +1092,7 @@
- 	repo.add_rpmdb_pubkeys()
- 
- Add all pubkeys contained in the rpm database to the repository. Note that
--newer rpm versions also allow to store the pubkeys in some directory instead
-+newer rpm versions also allow one to store the pubkeys in some directory instead
- of the rpm database.
- 
- 	Solvable add_pubkey(const char *keyfile, int flags = 0)
-@@ -1846,7 +1846,7 @@
- updates about more information.
-  
- *SOLVER_WEAKENDEPS*::
--Allow to break the dependencies of the matching packages. Handle with care.
-+Allow one to break the dependencies of the matching packages. Handle with care.
- 
- *SOLVER_MULTIVERSION*::
- Mark the matched packages for multiversion install. If they get to be
-Index: libsolv-0.6.30/doc/libsolv-pool.txt
-===================================================================
---- libsolv-0.6.30.orig/doc/libsolv-pool.txt	2017-11-02 18:43:04.034633747 +0100
-+++ libsolv-0.6.30/doc/libsolv-pool.txt	2017-11-02 18:43:04.026633621 +0100
-@@ -836,7 +836,7 @@
- 
- Boolean Dependencies
- --------------------
--Boolean Dependencies allow to build complex expressions from simple
-+Boolean Dependencies allow one to build complex expressions from simple
- dependencies. Note that depending on the package manager only a subset
- of those may be useful. For example, debian currently only allows
- an "OR" expression.
-Index: libsolv-0.6.30/doc/gen/testsolv.1
-===================================================================
---- libsolv-0.6.30.orig/doc/gen/testsolv.1	2017-11-02 18:43:04.034633747 +0100
-+++ libsolv-0.6.30/doc/gen/testsolv.1	2017-11-02 18:43:04.026633621 +0100
-@@ -45,7 +45,7 @@
- .RS 4
- Write the output in testcase format instead of human readable text\&. The output can then be used in the result section of the test case\&. If the
- \fB\-r\fR
--option is given twice, the output is formated for verbatim inclusion\&.
-+option is given twice, the output is formatted for verbatim inclusion\&.
- .RE
- .PP
- \fB\-l\fR \fIPKGSPEC\fR
-Index: libsolv-0.6.30/doc/testsolv.txt
-===================================================================
---- libsolv-0.6.30.orig/doc/testsolv.txt	2017-11-02 18:43:04.034633747 +0100
-+++ libsolv-0.6.30/doc/testsolv.txt	2017-11-02 18:43:04.026633621 +0100
-@@ -26,7 +26,7 @@
- *-r*::
- Write the output in testcase format instead of human readable text.
- The output can then be used in the result section of the test case.
--If the *-r* option is given twice, the output is formated for
-+If the *-r* option is given twice, the output is formatted for
- verbatim inclusion.
- 
- *-l* 'PKGSPEC'::
-Index: libsolv-0.6.30/src/rules.c
-===================================================================
---- libsolv-0.6.30.orig/src/rules.c	2017-11-02 18:43:04.034633747 +0100
-+++ libsolv-0.6.30/src/rules.c	2017-11-02 18:43:04.030633684 +0100
-@@ -1582,7 +1582,7 @@
- 
-       if (allowedarchs.count && pool->implicitobsoleteusescolors && installed && bestarch)
- 	{
--	  /* need an extra pass for lockstep checking: we only allow to keep an inferior arch
-+	  /* need an extra pass for lockstep checking: we only allow one to keep an inferior arch
- 	   * if the corresponding installed package is not lock-stepped */
- 	  queue_empty(&allowedarchs);
- 	  FOR_PROVIDES(p, pp, s->name)
-Index: libsolv-0.6.30/src/solver.h
-===================================================================
---- libsolv-0.6.30.orig/src/solver.h	2017-11-02 18:43:04.034633747 +0100
-+++ libsolv-0.6.30/src/solver.h	2017-11-02 18:43:04.030633684 +0100
-@@ -144,10 +144,10 @@
-    * Solver configuration
-    *-------------------------------------------------------------------------------------------------------------*/
- 
--  int allowdowngrade;			/* allow to downgrade installed solvable */
--  int allownamechange;			/* allow to change name of installed solvables */
--  int allowarchchange;			/* allow to change architecture of installed solvables */
--  int allowvendorchange;		/* allow to change vendor of installed solvables */
-+  int allowdowngrade;			/* allow one to downgrade installed solvable */
-+  int allownamechange;			/* allow one to change name of installed solvables */
-+  int allowarchchange;			/* allow one to change architecture of installed solvables */
-+  int allowvendorchange;		/* allow one to change vendor of installed solvables */
-   int allowuninstall;			/* allow removal of installed solvables */
-   int noupdateprovide;			/* true: update packages needs not to provide old package */
-   int needupdateprovide;		/* true: update packages must provide old package */
-Index: libsolv-0.6.30/doc/gen/libsolv-pool.3
-===================================================================
---- libsolv-0.6.30.orig/doc/gen/libsolv-pool.3	2017-11-02 18:43:04.034633747 +0100
-+++ libsolv-0.6.30/doc/gen/libsolv-pool.3	2017-11-02 18:43:04.030633684 +0100
-@@ -1266,7 +1266,7 @@
- You can turn off the architecture replacement checks with the Solver\(cqs SOLVER_FLAG_ALLOW_VENDORCHANGE flag\&.
- .SH "BOOLEAN DEPENDENCIES"
- .sp
--Boolean Dependencies allow to build complex expressions from simple dependencies\&. Note that depending on the package manager only a subset of those may be useful\&. For example, debian currently only allows an "OR" expression\&.
-+Boolean Dependencies allow one to build complex expressions from simple dependencies\&. Note that depending on the package manager only a subset of those may be useful\&. For example, debian currently only allows an "OR" expression\&.
- .PP
- \fBREL_OR\fR
- .RS 4
diff -Nru libsolv-0.6.30/debian/patches/1006_various-typos.patch libsolv-0.6.30/debian/patches/1006_various-typos.patch
--- libsolv-0.6.30/debian/patches/1006_various-typos.patch	1970-01-01 01:00:00.000000000 +0100
+++ libsolv-0.6.30/debian/patches/1006_various-typos.patch	2017-11-03 09:00:30.000000000 +0100
@@ -0,0 +1,144 @@
+Description: Various typo and grammar fixes
+Author: Mike Gabriel <[email protected]>
+
+Index: libsolv-0.6.30/README
+===================================================================
+--- libsolv-0.6.30.orig/README	2017-11-02 18:43:04.034633747 +0100
++++ libsolv-0.6.30/README	2017-11-02 18:43:04.026633621 +0100
+@@ -10,7 +10,7 @@
+     resolving package dependencies.
+ 
+ The sat-solver code has been written to aim for the newest packages,
+-record the decision tree to provide introspection, and also allows to
++record the decision tree to provide introspection, and also allows one to
+ provide the user with suggestions on how to deal with unsolvable
+ problems. It also takes advantage of the repository storage to
+ minimize memory usage.
+Index: libsolv-0.6.30/doc/gen/libsolv-bindings.3
+===================================================================
+--- libsolv-0.6.30.orig/doc/gen/libsolv-bindings.3	2017-11-02 18:43:04.034633747 +0100
++++ libsolv-0.6.30/doc/gen/libsolv-bindings.3	2017-11-02 18:43:04.026633621 +0100
+@@ -1928,7 +1928,7 @@
+ .RE
+ .\}
+ .sp
+-Add all pubkeys contained in the rpm database to the repository\&. Note that newer rpm versions also allow to store the pubkeys in some directory instead of the rpm database\&.
++Add all pubkeys contained in the rpm database to the repository\&. Note that newer rpm versions also allow one to store the pubkeys in some directory instead of the rpm database\&.
+ .sp
+ .if n \{\
+ .RS 4
+@@ -3248,7 +3248,7 @@
+ .PP
+ \fBSOLVER_WEAKENDEPS\fR
+ .RS 4
+-Allow to break the dependencies of the matching packages\&. Handle with care\&.
++Allow one to break the dependencies of the matching packages\&. Handle with care\&.
+ .RE
+ .PP
+ \fBSOLVER_MULTIVERSION\fR
+Index: libsolv-0.6.30/doc/libsolv-bindings.txt
+===================================================================
+--- libsolv-0.6.30.orig/doc/libsolv-bindings.txt	2017-11-02 18:43:04.034633747 +0100
++++ libsolv-0.6.30/doc/libsolv-bindings.txt	2017-11-02 18:43:04.026633621 +0100
+@@ -1092,7 +1092,7 @@
+ 	repo.add_rpmdb_pubkeys()
+ 
+ Add all pubkeys contained in the rpm database to the repository. Note that
+-newer rpm versions also allow to store the pubkeys in some directory instead
++newer rpm versions also allow one to store the pubkeys in some directory instead
+ of the rpm database.
+ 
+ 	Solvable add_pubkey(const char *keyfile, int flags = 0)
+@@ -1846,7 +1846,7 @@
+ updates about more information.
+  
+ *SOLVER_WEAKENDEPS*::
+-Allow to break the dependencies of the matching packages. Handle with care.
++Allow one to break the dependencies of the matching packages. Handle with care.
+ 
+ *SOLVER_MULTIVERSION*::
+ Mark the matched packages for multiversion install. If they get to be
+Index: libsolv-0.6.30/doc/libsolv-pool.txt
+===================================================================
+--- libsolv-0.6.30.orig/doc/libsolv-pool.txt	2017-11-02 18:43:04.034633747 +0100
++++ libsolv-0.6.30/doc/libsolv-pool.txt	2017-11-02 18:43:04.026633621 +0100
+@@ -836,7 +836,7 @@
+ 
+ Boolean Dependencies
+ --------------------
+-Boolean Dependencies allow to build complex expressions from simple
++Boolean Dependencies allow one to build complex expressions from simple
+ dependencies. Note that depending on the package manager only a subset
+ of those may be useful. For example, debian currently only allows
+ an "OR" expression.
+Index: libsolv-0.6.30/doc/gen/testsolv.1
+===================================================================
+--- libsolv-0.6.30.orig/doc/gen/testsolv.1	2017-11-02 18:43:04.034633747 +0100
++++ libsolv-0.6.30/doc/gen/testsolv.1	2017-11-02 18:43:04.026633621 +0100
+@@ -45,7 +45,7 @@
+ .RS 4
+ Write the output in testcase format instead of human readable text\&. The output can then be used in the result section of the test case\&. If the
+ \fB\-r\fR
+-option is given twice, the output is formated for verbatim inclusion\&.
++option is given twice, the output is formatted for verbatim inclusion\&.
+ .RE
+ .PP
+ \fB\-l\fR \fIPKGSPEC\fR
+Index: libsolv-0.6.30/doc/testsolv.txt
+===================================================================
+--- libsolv-0.6.30.orig/doc/testsolv.txt	2017-11-02 18:43:04.034633747 +0100
++++ libsolv-0.6.30/doc/testsolv.txt	2017-11-02 18:43:04.026633621 +0100
+@@ -26,7 +26,7 @@
+ *-r*::
+ Write the output in testcase format instead of human readable text.
+ The output can then be used in the result section of the test case.
+-If the *-r* option is given twice, the output is formated for
++If the *-r* option is given twice, the output is formatted for
+ verbatim inclusion.
+ 
+ *-l* 'PKGSPEC'::
+Index: libsolv-0.6.30/src/rules.c
+===================================================================
+--- libsolv-0.6.30.orig/src/rules.c	2017-11-02 18:43:04.034633747 +0100
++++ libsolv-0.6.30/src/rules.c	2017-11-02 18:43:04.030633684 +0100
+@@ -1582,7 +1582,7 @@
+ 
+       if (allowedarchs.count && pool->implicitobsoleteusescolors && installed && bestarch)
+ 	{
+-	  /* need an extra pass for lockstep checking: we only allow to keep an inferior arch
++	  /* need an extra pass for lockstep checking: we only allow one to keep an inferior arch
+ 	   * if the corresponding installed package is not lock-stepped */
+ 	  queue_empty(&allowedarchs);
+ 	  FOR_PROVIDES(p, pp, s->name)
+Index: libsolv-0.6.30/src/solver.h
+===================================================================
+--- libsolv-0.6.30.orig/src/solver.h	2017-11-02 18:43:04.034633747 +0100
++++ libsolv-0.6.30/src/solver.h	2017-11-02 18:43:04.030633684 +0100
+@@ -144,10 +144,10 @@
+    * Solver configuration
+    *-------------------------------------------------------------------------------------------------------------*/
+ 
+-  int allowdowngrade;			/* allow to downgrade installed solvable */
+-  int allownamechange;			/* allow to change name of installed solvables */
+-  int allowarchchange;			/* allow to change architecture of installed solvables */
+-  int allowvendorchange;		/* allow to change vendor of installed solvables */
++  int allowdowngrade;			/* allow one to downgrade installed solvable */
++  int allownamechange;			/* allow one to change name of installed solvables */
++  int allowarchchange;			/* allow one to change architecture of installed solvables */
++  int allowvendorchange;		/* allow one to change vendor of installed solvables */
+   int allowuninstall;			/* allow removal of installed solvables */
+   int noupdateprovide;			/* true: update packages needs not to provide old package */
+   int needupdateprovide;		/* true: update packages must provide old package */
+Index: libsolv-0.6.30/doc/gen/libsolv-pool.3
+===================================================================
+--- libsolv-0.6.30.orig/doc/gen/libsolv-pool.3	2017-11-02 18:43:04.034633747 +0100
++++ libsolv-0.6.30/doc/gen/libsolv-pool.3	2017-11-02 18:43:04.030633684 +0100
+@@ -1266,7 +1266,7 @@
+ You can turn off the architecture replacement checks with the Solver\(cqs SOLVER_FLAG_ALLOW_VENDORCHANGE flag\&.
+ .SH "BOOLEAN DEPENDENCIES"
+ .sp
+-Boolean Dependencies allow to build complex expressions from simple dependencies\&. Note that depending on the package manager only a subset of those may be useful\&. For example, debian currently only allows an "OR" expression\&.
++Boolean Dependencies allow one to build complex expressions from simple dependencies\&. Note that depending on the package manager only a subset of those may be useful\&. For example, debian currently only allows an "OR" expression\&.
+ .PP
+ \fBREL_OR\fR
+ .RS 4
diff -Nru libsolv-0.6.30/debian/patches/3000_ext-repo_rpmdb.c_src_pool.h_c_debian-style-home-dir-rpmdb.patch libsolv-0.6.30/debian/patches/3000_ext-repo_rpmdb.c_src_pool.h_c_debian-style-home-dir-rpmdb.patch
--- libsolv-0.6.30/debian/patches/3000_ext-repo_rpmdb.c_src_pool.h_c_debian-style-home-dir-rpmdb.patch	1970-01-01 01:00:00.000000000 +0100
+++ libsolv-0.6.30/debian/patches/3000_ext-repo_rpmdb.c_src_pool.h_c_debian-style-home-dir-rpmdb.patch	2018-02-02 14:32:56.000000000 +0100
@@ -0,0 +1,298 @@
+Description: Support rpmdb in home directory.
+Author: Mihai Moldovan <[email protected]>
+
+rpm on Debian is patched to not use the default system-wide rpm database.
+Instead, the dbpath is hardcoded to ~/.rpmdb.
+
+Since libsolv does not use librpm in all cases in order to open rpm database
+files, implement an override in RPMDB handling for databases in home
+directories.
+
+This patch is mostly only useful on Debian, but shouldn't break other distros
+and can thus be upstreamed.
+
+One difference from the Debian rpm behavior exists: if there is no rpmdb in the
+user's home directory, libsolv will fall back to the system-wide rpm database.
+
+To use this new functionality, call pool_set_use_homedir(pool, 1) in your
+applications for each pool that uses RPM and the RPMDB functionality of
+libsolv.
+
+--- a/ext/repo_rpmdb.c
++++ b/ext/repo_rpmdb.c
+@@ -23,6 +23,7 @@
+ #include <assert.h>
+ #include <stdint.h>
+ #include <errno.h>
++#include <pwd.h>
+ 
+ #ifdef ENABLE_RPMDB
+ 
+@@ -1121,6 +1122,54 @@ getu32(const unsigned char *dp)
+   return dp[0] << 24 | dp[1] << 16 | dp[2] << 8 | dp[3];
+ }
+ 
++static char *
++get_homedir(void)
++{
++  char *home_dir = NULL;
++
++  const char *home_env = getenv("HOME");
++
++  if (home_env)
++    {
++      home_dir = solv_strdup(home_env);
++    }
++  else
++    {
++      /* HOME unset, try password database. */
++      struct passwd pwd = { 0 };
++      struct passwd *pwd_res = NULL;
++      char *buf = NULL;
++      long buf_size = sysconf(_SC_GETPW_R_SIZE_MAX);
++
++      if (-1 == buf_size)
++        {
++          buf_size = 32768;
++        }
++
++      buf = solv_calloc(1, buf_size);
++
++      if (buf)
++        {
++          int ret = getpwuid_r(getuid(), &pwd, buf, buf_size, &pwd_res);
++
++          /*
++           * No pwd_res can either mean that the user ID is unknown
++           * to the system or some other type of error occurred.
++           * Whatever the case, we do not distinguish here, but just
++           * treat it as a common failure.
++           */
++          if ((pwd_res) && (pwd.pw_dir))
++            {
++              home_dir = solv_strdup(pwd.pw_dir);
++            }
++
++          solv_free(buf);
++          buf = NULL;
++        }
++    }
++
++  return home_dir;
++}
+ 
+ /******************************************************************/
+ /*  Rpm Database stuff
+@@ -1139,6 +1188,8 @@ struct rpmdbstate {
+   DB *db;		/* packages database */
+   int byteswapped;	/* endianess of packages database */
+   int is_ostree;	/* read-only db that lives in /usr/share/rpm */
++  int use_homedir;	/* force usage of private rpmdb in home dir */
++  int open_home_rpmdb;	/* internal; tracks rpmdb in homedir usage */
+ #endif
+ };
+ 
+@@ -1191,12 +1242,31 @@ rpmdbid2db(unsigned char *db, Id id, int
+ int
+ serialize_dbenv_ops(struct rpmdbstate *state)
+ {
+-  char *lpath;
++  char *lpath = NULL;
+   mode_t oldmask;
+   int fd;
+   struct flock fl;
+ 
+-  lpath = solv_dupjoin(state->rootdir, "/var/lib/rpm/.dbenv.lock", 0);
++  if (state->open_home_rpmdb)
++    {
++      char *home_dir = get_homedir();
++
++      if (home_dir)
++        {
++          lpath = solv_dupjoin(home_env, "/.rpmdb/.dbenv.lock", 0);
++
++          solv_free(home_dir);
++          home_dir = NULL;
++        }
++      else
++        {
++          return -1;
++        }
++    }
++  else
++    {
++      lpath = solv_dupjoin(state->rootdir, "/var/lib/rpm/.dbenv.lock", 0);
++    }
+   oldmask = umask(022);
+   fd = open(lpath, (O_RDWR|O_CREAT), 0644);
+   free(lpath);
+@@ -1223,7 +1293,7 @@ static int
+ opendbenv(struct rpmdbstate *state)
+ {
+   const char *rootdir = state->rootdir;
+-  char *dbpath;
++  char *dbpath = NULL;
+   DB_ENV *dbenv = 0;
+   int r;
+ 
+@@ -1232,7 +1302,44 @@ opendbenv(struct rpmdbstate *state)
+ #if (defined(FEDORA) || defined(MAGEIA)) && (DB_VERSION_MAJOR >= 5 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 5))
+   dbenv->set_thread_count(dbenv, 8);
+ #endif
+-  dbpath = solv_dupjoin(rootdir, "/var/lib/rpm", 0);
++  if (state->use_homedir)
++    {
++      char *home_dir = get_homedir();
++
++      if (home_dir)
++        {
++          char *tmp_path = NULL;
++
++          tmp_path = solv_dupjoin(rootdir, "/", home_dir);
++
++          solv_free(home_dir);
++          home_dir = NULL;
++
++          dbpath = solv_dupjoin(tmp_path, "/.rpmdb", 0);
++
++          solv_free(tmp_path);
++          tmp_path = NULL;
++        }
++    }
++
++  if (dbpath)
++    {
++      if (-1 == access(dbpath, W_OK))
++        {
++          free(dbpath);
++          dbpath = NULL;
++        }
++       else
++        {
++          state->open_home_rpmdb = 1;
++        }
++    }
++
++  if (!dbpath)
++    {
++      dbpath = solv_dupjoin(rootdir, "/var/lib/rpm", 0);
++    }
++
+   if (access(dbpath, W_OK) == -1)
+     {
+       free(dbpath);
+@@ -1295,8 +1402,43 @@ closedbenv(struct rpmdbstate *state)
+ static int
+ stat_database(struct rpmdbstate *state, char *dbname, struct stat *statbuf, int seterror)
+ {
+-  char *dbpath;
+-  dbpath = solv_dupjoin(state->rootdir, state->is_ostree ? "/usr/share/rpm/" : "/var/lib/rpm/", dbname);
++  char *dbpath = NULL;
++
++  if (state->open_home_rpmdb)
++    {
++      char *home_dir = get_homedir();
++
++      if (home_dir)
++        {
++          char *tmp_path = NULL;
++
++          tmp_path = solv_dupjoin(state->rootdir, "/", home_dir);
++
++          solv_free(home_dir);
++          home_dir = NULL;
++
++          dbpath = solv_dupjoin(tmp_path, "/.rpmdb/", 0);
++
++          solv_free(tmp_path);
++          tmp_path = NULL;
++        }
++      else
++        {
++          if (seterror)
++            pool_error(state->pool, -1, "internal state error: rpmdb in home directory opened, but unable to get home directory path.");
++          return -1;
++        }
++    }
++  else
++    {
++      /*
++       * Assume that if open_home_rpmdb is set, the rpmdb is known to exist.
++       * Do not fall back to the system directory in this case, but only
++       * if the system directory has been explicitly opened beforehand.
++       */
++      dbpath = solv_dupjoin(state->rootdir, state->is_ostree ? "/usr/share/rpm/" : "/var/lib/rpm/", dbname);
++    }
++
+   if (stat(dbpath, statbuf))
+     {
+       if (seterror)
+@@ -1335,6 +1477,8 @@ rpm_state_create(Pool *pool, const char
+   state->pool = pool;
+   if (rootdir)
+     state->rootdir = solv_strdup(rootdir);
++  state->use_homedir = pool_get_use_homedir(pool);
++  state->open_home_rpmdb = 0;
+   return state;
+ }
+ 
+@@ -1873,6 +2017,9 @@ repo_add_rpmdb(Repo *repo, Repo *ref, in
+   if (flags & REPO_USE_ROOTDIR)
+     state.rootdir = solv_strdup(pool_get_rootdir(pool));
+ 
++  state.use_homedir = pool_get_use_homedir(pool);
++  state.open_home_rpmdb = 0;
++
+   data = repo_add_repodata(repo, flags);
+ 
+   if (ref && !(ref->nsolvables && ref->rpmdbid && ref->pool == repo->pool))
+--- a/src/pool.c
++++ b/src/pool.c
+@@ -91,6 +91,8 @@ pool_create(void)
+   pool->obsoleteusesprovides = 1;
+   pool->implicitobsoleteusesprovides = 1;
+   pool->havedistepoch = 1;
++
++  pool->use_homedir = 0;
+ #endif
+   return pool;
+ }
+@@ -1965,6 +1967,18 @@ pool_get_rootdir(Pool *pool)
+   return pool->rootdir;
+ }
+ 
++void
++pool_set_use_homedir(Pool *pool, int use_homedir)
++{
++  pool->use_homedir = use_homedir;
++}
++
++int
++pool_get_use_homedir(Pool *pool)
++{
++  return pool->use_homedir;
++}
++
+ /* only used in libzypp */
+ void
+ pool_set_custom_vendorcheck(Pool *pool, int (*vendorcheck)(Pool *, Solvable *, Solvable *))
+--- a/src/pool.h
++++ b/src/pool.h
+@@ -166,6 +166,7 @@ struct _Pool {
+   Id *whatprovidesauxdata;
+   Offset whatprovidesauxdataoff;
+ 
++  int use_homedir;		/* force usage of private rpmdb in home dir */
+ #endif
+ };
+ 
+@@ -271,6 +272,9 @@ extern const char *pool_get_rootdir(Pool
+ extern char *pool_prepend_rootdir(Pool *pool, const char *dir);
+ extern const char *pool_prepend_rootdir_tmp(Pool *pool, const char *dir);
+ 
++extern void pool_set_use_homedir(Pool *pool, int use_homedir);
++extern int  pool_get_use_homedir(Pool *pool);
++
+ /**
+  * Solvable management
+  */
diff -Nru libsolv-0.6.30/debian/patches/3010_src-libsolv.ver_add-new-pool-homedir-functions.patch libsolv-0.6.30/debian/patches/3010_src-libsolv.ver_add-new-pool-homedir-functions.patch
--- libsolv-0.6.30/debian/patches/3010_src-libsolv.ver_add-new-pool-homedir-functions.patch	1970-01-01 01:00:00.000000000 +0100
+++ libsolv-0.6.30/debian/patches/3010_src-libsolv.ver_add-new-pool-homedir-functions.patch	2018-02-02 14:33:28.000000000 +0100
@@ -0,0 +1,13 @@
+Description: Support rpmdb in home directory. Add public symbols.
+Author: Mihai Moldovan <[email protected]>
+
+--- a/src/libsolv.ver
++++ b/src/libsolv.ver
+@@ -425,5 +425,7 @@ SOLV_1.0 {
+ 
+ SOLV_1.1 {
+ 		pool_best_solvables;
++		pool_get_use_homedir;
++		pool_set_use_homedir;
+ 		solver_get_cleandeps;
+ } SOLV_1.0;
diff -Nru libsolv-0.6.30/debian/patches/3020_bindings-solv.i_add-new-pool-homedir-functions.patch libsolv-0.6.30/debian/patches/3020_bindings-solv.i_add-new-pool-homedir-functions.patch
--- libsolv-0.6.30/debian/patches/3020_bindings-solv.i_add-new-pool-homedir-functions.patch	1970-01-01 01:00:00.000000000 +0100
+++ libsolv-0.6.30/debian/patches/3020_bindings-solv.i_add-new-pool-homedir-functions.patch	2018-02-02 14:33:28.000000000 +0100
@@ -0,0 +1,18 @@
+Description: Support rpmdb in home directory. Add bindings.
+Author: Mihai Moldovan <[email protected]>
+
+--- a/bindings/solv.i
++++ b/bindings/solv.i
+@@ -1507,6 +1507,12 @@ typedef struct {
+   const char *get_rootdir(int flag) {
+     return pool_get_rootdir($self);
+   }
++  void set_use_homedir(int use_homedir) {
++    return pool_set_use_homedir($self, use_homedir);
++  }
++  int get_use_homedir() {
++    return pool_get_use_homedir($self);
++  }
+ #if defined(SWIGPYTHON)
+   %{
+   SWIGINTERN int loadcallback(Pool *pool, Repodata *data, void *d) {
diff -Nru libsolv-0.6.30/debian/patches/3030_doc-misc_add-new-pool-homedir-functions.patch libsolv-0.6.30/debian/patches/3030_doc-misc_add-new-pool-homedir-functions.patch
--- libsolv-0.6.30/debian/patches/3030_doc-misc_add-new-pool-homedir-functions.patch	1970-01-01 01:00:00.000000000 +0100
+++ libsolv-0.6.30/debian/patches/3030_doc-misc_add-new-pool-homedir-functions.patch	2018-02-02 14:33:28.000000000 +0100
@@ -0,0 +1,149 @@
+Description: Support rpmdb in home directory. Add documentation.
+Author: Mihai Moldovan <[email protected]>
+
+--- a/doc/libsolv-bindings.txt
++++ b/doc/libsolv-bindings.txt
+@@ -410,6 +410,21 @@ to work only in some directory, for exam
+ jail. Note that the rootdir will only be prepended to file paths if the
+ *REPO_USE_ROOTDIR* flag is used.
+ 
++	void set_use_homedir(int use_homedir)
++	$pool->set_use_homedir(use_homedir);
++	pool.set_use_homedir(use_homedir)
++	pool.set_use_homedir(use_homedir)
++
++	int get_use_homedir()
++	my $use_homedir = $pool->get_use_homedir();
++	use_homedir = pool.get_use_homedir()
++	use_homedir = pool.get_use_homedir()
++
++Set/get whether to use an rpmdb in the user's home directory or in the
++system location. This is mostly interesting for Debian-based systems with
++a patched RPM version that defaults to the user's home directory for the
++RPM dbpath.
++
+ 	void setarch(const char *arch = 0)
+ 	$pool->setarch();
+ 	pool.setarch()
+--- a/doc/libsolv-pool.txt
++++ b/doc/libsolv-pool.txt
+@@ -292,6 +292,15 @@ tells the function to prepend the rootdi
+ 
+ Return the current value of the root directory.
+ 
++	void pool_set_use_homedir(Pool *pool, int use_homedir);
++
++Set usage of RPMDB in user's home directory. Mostly useful on Debian-based
++systems that patch rpm to place and use the rpmdb in a user's home directory.
++
++	int pool_get_use_homedir(Pool *pool);
++
++Returns the current value for RPMDB home directory usage.
++
+ 	char *pool_prepend_rootdir(Pool *pool, const char *dir);
+ 
+ Prepend the root directory to the _dir_ argument string. The returned
+--- a/doc/gen/libsolv-bindings.3
++++ b/doc/gen/libsolv-bindings.3
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: Libsolv-Bindings
+ .\"    Author: [see the "Author" section]
+-.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+-.\"      Date: 09/07/2017
++.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
++.\"      Date: 02/02/2018
+ .\"    Manual: LIBSOLV
+ .\"    Source: libsolv
+ .\"  Language: English
+ .\"
+-.TH "LIBSOLV\-BINDINGS" "3" "09/07/2017" "libsolv" "LIBSOLV"
++.TH "LIBSOLV\-BINDINGS" "3" "02/02/2018" "libsolv" "LIBSOLV"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+@@ -716,6 +716,34 @@ Set/get the rootdir to use\&. This is us
+ .sp
+ .if n \{\
+ .RS 4
++.\}
++.nf
++\fBvoid set_use_homedir(int\fR \fIuse_homedir\fR\fB)\fR
++\fI$pool\fR\fB\->set_use_homedir(\fR\fIuse_homedir\fR\fB)\fR;
++\fIpool\fR\fB\&.set_use_homedir(\fR\fIuse_homedir\fR\fB)\fR
++\fIpool\fR\fB\&.set_use_homedir(\fR\fIuse_homedir\fR\fB)\fR
++.fi
++.if n \{\
++.RE
++.\}
++.sp
++.if n \{\
++.RS 4
++.\}
++.nf
++\fBint get_use_homedir()\fR
++my \fI$use_homedir\fR \fB=\fR \fI$pool\fR\fB\->get_use_homedir()\fR;
++\fIuse_homedir\fR \fB=\fR \fIpool\fR\fB\&.get_use_homedir()\fR
++\fIuse_homedir\fR \fB=\fR \fIpool\fR\fB\&.get_use_homedir()\fR
++.fi
++.if n \{\
++.RE
++.\}
++.sp
++Set/get whether to use an rpmdb in the user\(cqs home directory or in the system location\&. This is mostly interesting for Debian\-based systems with a patched RPM version that defaults to the user\(cqs home directory for the RPM dbpath\&.
++.sp
++.if n \{\
++.RS 4
+ .\}
+ .nf
+ \fBvoid setarch(const char *\fR\fIarch\fR \fB= 0)\fR
+--- a/doc/gen/libsolv-pool.3
++++ b/doc/gen/libsolv-pool.3
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: Libsolv-Pool
+ .\"    Author: [see the "Author" section]
+-.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
+-.\"      Date: 09/04/2017
++.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
++.\"      Date: 02/02/2018
+ .\"    Manual: LIBSOLV
+ .\"    Source: libsolv
+ .\"  Language: English
+ .\"
+-.TH "LIBSOLV\-POOL" "3" "09/04/2017" "libsolv" "LIBSOLV"
++.TH "LIBSOLV\-POOL" "3" "02/02/2018" "libsolv" "LIBSOLV"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+@@ -421,6 +421,30 @@ Return the current value of the root dir
+ .sp
+ .if n \{\
+ .RS 4
++.\}
++.nf
++\fBvoid pool_set_use_homedir(Pool *\fR\fIpool\fR\fB, int\fR \fIuse_homedir\fR\fB)\fR;
++.fi
++.if n \{\
++.RE
++.\}
++.sp
++Set usage of RPMDB in user\(cqs home directory\&. Mostly useful on Debian\-based systems that patch rpm to place and use the rpmdb in a user\(cqs home directory\&.
++.sp
++.if n \{\
++.RS 4
++.\}
++.nf
++\fBint pool_get_use_homedir(Pool *\fR\fIpool\fR\fB)\fR;
++.fi
++.if n \{\
++.RE
++.\}
++.sp
++Returns the current value for RPMDB home directory usage\&.
++.sp
++.if n \{\
++.RS 4
+ .\}
+ .nf
+ \fBchar *pool_prepend_rootdir(Pool *\fR\fIpool\fR\fB, const char *\fR\fIdir\fR\fB)\fR;
diff -Nru libsolv-0.6.30/debian/patches/series libsolv-0.6.30/debian/patches/series
--- libsolv-0.6.30/debian/patches/series	2017-11-03 09:00:30.000000000 +0100
+++ libsolv-0.6.30/debian/patches/series	2018-02-02 14:33:28.000000000 +0100
@@ -1,3 +1,7 @@
-1004_cmake-module-path-fix.patch
-1006_various-types.patch
+1005_install-cmake-module-into-libdir.patch
+1006_various-typos.patch
 2001_build-for-SUSE-and-find-rpmdb.patch
+3000_ext-repo_rpmdb.c_src_pool.h_c_debian-style-home-dir-rpmdb.patch
+3010_src-libsolv.ver_add-new-pool-homedir-functions.patch
+3020_bindings-solv.i_add-new-pool-homedir-functions.patch
+3030_doc-misc_add-new-pool-homedir-functions.patch
diff -Nru libsolv-0.6.30/debian/rules libsolv-0.6.30/debian/rules
--- libsolv-0.6.30/debian/rules	2017-11-03 09:00:13.000000000 +0100
+++ libsolv-0.6.30/debian/rules	2018-01-29 13:57:27.000000000 +0100
@@ -33,8 +33,10 @@
                          -DUSE_VENDORDIRS=1 \
                          -DMULTI_SEMANTICS=1 \
                          -DDEBIAN=1 \
+                         -DENABLE_COMPLEX_DEPS:BOOL=ON \
                          -DENABLE_PUBKEY=1 \
                          -DENABLE_SUSEREPO=1 \
+                         -DENABLE_COMPS:BOOL=ON \
                          -DENABLE_RPMMD=1 \
                          -DENABLE_RPMDB=1 \
                          -DENABLE_RPMDB_BYRPMHEADER=1 \

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to