]> git.ipfire.org Git - thirdparty/libsolv.git/commitdiff
detect_dbpath: also check for /usr/lib/sysimage/rpm
authorMichael Schroeder <mls@suse.de>
Tue, 3 Feb 2026 12:06:29 +0000 (13:06 +0100)
committerMichael Schroeder <mls@suse.de>
Tue, 3 Feb 2026 12:06:29 +0000 (13:06 +0100)
Because it's the right location nowadays. (Should not matter
much, as %_dbpath should be set in most cases.)

ext/repo_rpmdb_librpm.h

index 3f9798c2db3df6721da5abf0a78686b444288081..695025ca9a4d0bb7f47baf4f7f754d6796653a2b 100644 (file)
@@ -54,9 +54,20 @@ detect_dbpath(struct rpmdbstate *state)
       return;
     }
   solv_free((char *)state->dbpath);
-  state->dbpath = access_rootdir(state, "/var/lib/rpm", W_OK) == -1
-                  && (access_rootdir(state, "/usr/share/rpm/Packages", R_OK) == 0 || access_rootdir(state, "/usr/share/rpm/rpmdb.sqlite", R_OK) == 0)
-                  ? "/usr/share/rpm" : "/var/lib/rpm";
+  if (access_rootdir(state, "/var/lib/rpm", W_OK) == -1)
+    {
+      if (access_rootdir(state, "/usr/share/rpm/Packages", R_OK) == 0 || access_rootdir(state, "/usr/share/rpm/rpmdb.sqlite", R_OK))
+       {
+         state->dbpath = "/usr/share/rpm";
+         return;
+       }
+      if (access_rootdir(state, "/usr/lib/sysimage/rpm/Packages.db", R_OK) == 0 || access_rootdir(state, "/usr/lib/sysimage/rpm/rpmdb.sqlite", R_OK) || access_rootdir(state, "/usr/lib/sysimage/rpm/Packages", R_OK))
+       {
+         state->dbpath = "/usr/lib/sysimage/rpm";
+         return;
+       }
+    }
+  state->dbpath = "/var/lib/rpm";
 }
 
 static int