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 \
signature.asc
Description: OpenPGP digital signature

