about summary refs log tree commit diff
path: root/pkgs/tools/misc/plocate
diff options
context:
space:
mode:
authorEirik Nygaard <eirik@ngrd.no>2022-01-24 00:36:51 +0100
committerGitHub <noreply@github.com>2022-01-24 00:36:51 +0100
commitd53ef8b8229336b0f7dcb5b8fbeba217a0bf2033 (patch)
tree8d683289fee1531718f2178b772a97c157becf4a /pkgs/tools/misc/plocate
parent0354c3a913bebc23d0a8ff62d6e0ff0449e71821 (diff)
nixos/locate Add support for plocate (#156185)
Diffstat (limited to 'pkgs/tools/misc/plocate')
-rw-r--r--pkgs/tools/misc/plocate/dbfile.patch29
-rw-r--r--pkgs/tools/misc/plocate/default.nix13
2 files changed, 38 insertions, 4 deletions
diff --git a/pkgs/tools/misc/plocate/dbfile.patch b/pkgs/tools/misc/plocate/dbfile.patch
new file mode 100644
index 0000000000000..4e0278ae286d5
--- /dev/null
+++ b/pkgs/tools/misc/plocate/dbfile.patch
@@ -0,0 +1,29 @@
+commit 26e7bf8bcb2823819c87115e07932c0d2ba88170 (HEAD -> configurable-dbfile-path)
+Author: Eirik Nygaard <eirik@ngrd.no>
+Date:   Sun Jan 23 12:05:01 2022 +0100
+
+    Make entire path for plocate database configurable
+
+diff --git a/meson.build b/meson.build
+index 435cd0a..8dc2393 100644
+--- a/meson.build
++++ b/meson.build
+@@ -2,8 +2,7 @@ project('plocate', 'cpp', default_options: ['buildtype=debugoptimized','cpp_std=
+
+ add_project_arguments('-DGROUPNAME="' + get_option('locategroup') + '"', language: 'cpp')
+ add_project_arguments('-DUPDATEDB_CONF="/etc/updatedb.conf"', language: 'cpp')
+-dbdir = join_paths(get_option('sharedstatedir'), 'plocate')
+-dbfile = join_paths(dbdir, 'plocate.db')
++dbfile = join_paths(get_option('sharedstatedir'), get_option('dbpath'))
+ add_project_arguments('-DDBFILE="' + dbfile + '"', language: 'cpp')
+ add_project_arguments('-DPACKAGE_NAME="plocate"', language: 'cpp')
+ add_project_arguments('-DPACKAGE_VERSION="' + meson.project_version() + '"', language: 'cpp')
+diff --git a/meson_options.txt b/meson_options.txt
+index 8ac13c5..a9f3358 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -3,3 +3,4 @@ option('install_systemd', type: 'boolean', value: true, description: 'Install sy
+ option('systemunitdir', type: 'string', description: 'Where to install systemd units to (default: autodetect)')
+ option('locategroup', type: 'string', value: 'plocate', description: 'Group that the install script will use for the .db file')
+ option('updatedb_progname', type: 'string', value: 'updatedb', description: 'Binary name of updatedb')
++option('dbpath', type: 'string', value: 'plocate/plocate.db', description: 'Path to plocate database relative to "sharedstatedir"')
diff --git a/pkgs/tools/misc/plocate/default.nix b/pkgs/tools/misc/plocate/default.nix
index 31309e91911c7..ff10019ed9070 100644
--- a/pkgs/tools/misc/plocate/default.nix
+++ b/pkgs/tools/misc/plocate/default.nix
@@ -1,4 +1,5 @@
-{ stdenv
+{ config
+, stdenv
 , lib
 , fetchgit
 , pkg-config
@@ -8,8 +9,9 @@
 , liburing
 , zstd
 }:
-
-stdenv.mkDerivation rec {
+let
+  dbfile = lib.attrByPath [ "locate" "dbfile" ] "/var/cache/locatedb" config;
+in stdenv.mkDerivation rec {
   pname = "plocate";
   version = "1.1.14";
 
@@ -19,6 +21,8 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-SgvCy03H5aKolbkI1dg/0G5VwT3TdSGenn2h9H4gfTY=";
   };
 
+  patches = [ ./dbfile.patch ];
+
   postPatch = ''
     sed -i meson.build \
       -e '/mkdir\.sh/d'
@@ -30,7 +34,8 @@ stdenv.mkDerivation rec {
 
   mesonFlags = [
     "-Dsystemunitdir=${placeholder "out"}/etc/systemd/system"
-    "-Dsharedstatedir=/var/lib"
+    "-Dsharedstatedir=${builtins.dirOf dbfile}"
+    "-Ddbpath=${builtins.baseNameOf dbfile}"
   ];
 
   meta = with lib; {