Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package plocate for openSUSE:Factory checked 
in at 2026-02-12 17:30:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/plocate (Old)
 and      /work/SRC/openSUSE:Factory/.plocate.new.1977 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "plocate"

Thu Feb 12 17:30:31 2026 rev:6 rq:1332712 version:1.1.24

Changes:
--------
--- /work/SRC/openSUSE:Factory/plocate/plocate.changes  2025-02-28 
17:41:56.515153329 +0100
+++ /work/SRC/openSUSE:Factory/.plocate.new.1977/plocate.changes        
2026-02-12 17:30:35.595498882 +0100
@@ -1,0 +2,13 @@
+Sun Jan 25 17:12:44 UTC 2026 - Manfred Schwarb <[email protected]>
+
+- spec file: add %attr statement to %ghost declaration to placate rpmlint
+- remove patch disable-visibility.patch and provide the same functionality
+  by invoking updatedb with "--require-visibility 0" and subsequent
+  invocation of "chmod 644" to gain flexibility for different usage patterns
+  Additionally, database is now owned by root, as nobody should not own any 
files.
+- update to version 1.1.24:
+  * Improve error handling on synchronous reads
+  * Remove ConditionACPower=true from the systemd unit file
+  * Add a new option --config-file for changing the path of updatedb.conf
+
+-------------------------------------------------------------------

Old:
----
  disable-visibility.patch
  plocate-1.1.23.tar.gz

New:
----
  plocate-1.1.24.tar.gz

----------(Old B)----------
  Old:- spec file: add %attr statement to %ghost declaration to placate rpmlint
- remove patch disable-visibility.patch and provide the same functionality
  by invoking updatedb with "--require-visibility 0" and subsequent
----------(Old E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ plocate.spec ++++++
--- /var/tmp/diff_new_pack.kqlXfQ/_old  2026-02-12 17:30:36.835551424 +0100
+++ /var/tmp/diff_new_pack.kqlXfQ/_new  2026-02-12 17:30:36.839551593 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package plocate
 #
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
 %bcond_without  apparmor
 
 Name:           plocate
-Version:        1.1.23
+Version:        1.1.24
 Release:        0
 Summary:        A much faster locate(1)
 License:        GPL-2.0-only
@@ -33,7 +33,6 @@
 Source5:        usr.bin.plocate
 Source6:        usr.sbin.updatedb
 %endif
-Patch0:         disable-visibility.patch
 BuildRequires:  gcc-c++
 BuildRequires:  meson
 BuildRequires:  pkgconfig
@@ -126,7 +125,7 @@
 %{_fillupdir}/sysconfig.locate
 %dir %{_sharedstatedir}/%{name}/
 %{_sharedstatedir}/%{name}/CACHEDIR.TAG
-%ghost %{_sharedstatedir}/%{name}/%{name}.db
+%ghost %attr(0644,root,root) %{_sharedstatedir}/%{name}/%{name}.db
 %config(noreplace) %{_sysconfdir}/updatedb.conf
 
 %if %{with apparmor}

++++++ plocate-1.1.23.tar.gz -> plocate-1.1.24.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/plocate-1.1.23/NEWS new/plocate-1.1.24/NEWS
--- old/plocate-1.1.23/NEWS     2024-11-24 23:14:30.000000000 +0100
+++ new/plocate-1.1.24/NEWS     2026-01-13 23:48:22.000000000 +0100
@@ -1,3 +1,16 @@
+plocate 1.1.24, January 13th, 2026
+
+  - Improve error handling on synchronous reads. Reported by
+    Björn Försterling.
+
+  - Remove ConditionACPower=true from the systemd unit file,
+    to fix an issue where certain charging patterns prevent
+    updatedb from ever running on laptops. Patch by Manfred Schwarb.
+
+  - Add a new option --config-file for changing the path of
+    updatedb.conf. Patch by Yehuda Bernáth.
+
+
 plocate 1.1.23, November 24th, 2024
 
   - Various improvements, in particular to the systemd unit file.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/plocate-1.1.23/complete_pread.cpp 
new/plocate-1.1.24/complete_pread.cpp
--- old/plocate-1.1.23/complete_pread.cpp       2024-11-24 23:14:30.000000000 
+0100
+++ new/plocate-1.1.24/complete_pread.cpp       2026-01-13 23:48:22.000000000 
+0100
@@ -10,6 +10,10 @@
                if (ret == -1 && errno == EINTR) {
                        continue;
                }
+               if (ret == 0) {
+                       errno = 0;
+                       return false;
+               }
                if (ret <= 0) {
                        return false;
                }
@@ -20,13 +24,13 @@
        return true;
 }
 
-void complete_pread(int fd, void *ptr, size_t len, off_t offset)
+void complete_pread(int fd, void *ptr, size_t len, off_t offset, const char 
*filename_for_errors)
 {
        if (!try_complete_pread(fd, ptr, len, offset)) {
                if (errno == 0) {
-                       fprintf(stderr, "pread: Short read (file 
corrupted?)\n");
+                       fprintf(stderr, "%s: Short read (file corrupted?)\n", 
filename_for_errors);
                } else {
-                       perror("pread");
+                       perror(filename_for_errors);
                }
                exit(1);
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/plocate-1.1.23/complete_pread.h 
new/plocate-1.1.24/complete_pread.h
--- old/plocate-1.1.23/complete_pread.h 2024-11-24 23:14:30.000000000 +0100
+++ new/plocate-1.1.24/complete_pread.h 2026-01-13 23:48:22.000000000 +0100
@@ -8,6 +8,6 @@
 bool try_complete_pread(int fd, void *ptr, size_t len, off_t offset);
 
 // Same, but exit on failure, so never returns a short read.
-void complete_pread(int fd, void *ptr, size_t len, off_t offset);
+void complete_pread(int fd, void *ptr, size_t len, off_t offset, const char 
*filename_for_errors);
 
 #endif  // !defined(COMPLETE_PREAD_H)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/plocate-1.1.23/conf.cpp new/plocate-1.1.24/conf.cpp
--- old/plocate-1.1.23/conf.cpp 2024-11-24 23:14:30.000000000 +0100
+++ new/plocate-1.1.24/conf.cpp 2026-01-13 23:48:22.000000000 +0100
@@ -68,6 +68,9 @@
 /* Configuration representation for the database configuration block */
 string conf_block;
 
+/* Custom configuration file path, or NULL to use default */
+const char *conf_config_file = NULL;
+
 int conf_block_size = 32;
 bool use_debug = false;
 
@@ -117,10 +120,12 @@
        list->erase(new_end, list->end());
 }
 
-/* UPDATEDB_CONF parsing */
+/* Configuration file parsing */
 
-/* UPDATEDB_CONF (locked) */
+/* Configuration file (locked) */
 static FILE *uc_file;
+/* Configuration file path */
+static const char *uc_file_path;
 /* Line number at token start; type matches error_at_line () */
 static unsigned uc_line;
 /* Current line number; type matches error_at_line () */
@@ -175,7 +180,7 @@
                while ((c = getc_unlocked(uc_file)) != '"') {
                        if (c == EOF || c == '\n') {
                                fprintf(stderr, "%s:%u: missing closing `\"'\n",
-                                       UPDATEDB_CONF, uc_line);
+                                       uc_file_path, uc_line);
                                exit(EXIT_FAILURE);
                        }
                        uc_lex_buf.push_back(c);
@@ -204,18 +209,19 @@
        }
 }
 
-/* Parse /etc/updatedb.conf.  Exit on I/O or syntax error. */
+/* Parse configuration file.  Exit on I/O or syntax error. */
 static void
 parse_updatedb_conf(void)
 {
        bool had_prune_bind_mounts, had_prunefs, had_prunenames, had_prunepaths;
 
-       uc_file = fopen(UPDATEDB_CONF, "r");
+       uc_file_path = conf_config_file ? conf_config_file : UPDATEDB_CONF;
+       uc_file = fopen(uc_file_path, "r");
        if (uc_file == NULL) {
-               if (errno != ENOENT) {
-                       perror(UPDATEDB_CONF);
+               if (errno != ENOENT || conf_config_file != NULL) {
+                       perror(uc_file_path);
                        exit(EXIT_FAILURE);
-               }
+               }
                return;
        }
        flockfile(uc_file);
@@ -254,17 +260,17 @@
 
                case UCT_IDENTIFIER:
                        fprintf(stderr, "%s:%u: unknown variable: `%s'\n",
-                               UPDATEDB_CONF, uc_line, uc_lex_buf.c_str());
+                               uc_file_path, uc_line, uc_lex_buf.c_str());
                        exit(EXIT_FAILURE);
 
                default:
                        fprintf(stderr, "%s:%u: variable name expected\n",
-                               UPDATEDB_CONF, uc_line);
+                               uc_file_path, uc_line);
                        exit(EXIT_FAILURE);
                }
                if (*had_var != false) {
                        fprintf(stderr, "%s:%u: variable `%s' was already 
defined\n",
-                               UPDATEDB_CONF, uc_line, uc_lex_buf.c_str());
+                               uc_file_path, uc_line, uc_lex_buf.c_str());
                        exit(EXIT_FAILURE);
                }
                *had_var = true;
@@ -272,19 +278,19 @@
                token = uc_lex();
                if (token != UCT_EQUAL) {
                        fprintf(stderr, "%s:%u: `=' expected after variable 
name\n",
-                               UPDATEDB_CONF, uc_line);
+                               uc_file_path, uc_line);
                        exit(EXIT_FAILURE);
                }
                token = uc_lex();
                if (token != UCT_QUOTED) {
                        fprintf(stderr, "%s:%u: value in quotes expected after 
`='\n",
-                               UPDATEDB_CONF, uc_line);
+                               uc_file_path, uc_line);
                        exit(EXIT_FAILURE);
                }
                if (var_token == UCT_PRUNE_BIND_MOUNTS) {
                        if (parse_bool(&conf_prune_bind_mounts, 
uc_lex_buf.c_str()) != 0) {
                                fprintf(stderr, "%s:%u: invalid value `%s' of 
PRUNE_BIND_MOUNTS\n",
-                                       UPDATEDB_CONF, uc_line, 
uc_lex_buf.c_str());
+                                       uc_file_path, uc_line, 
uc_lex_buf.c_str());
                                exit(EXIT_FAILURE);
                        }
                } else if (var_token == UCT_PRUNEFS)
@@ -298,7 +304,7 @@
                token = uc_lex();
                if (token != UCT_EOL && token != UCT_EOF) {
                        fprintf(stderr, "%s:%u: unexpected data after variable 
value\n",
-                               UPDATEDB_CONF, uc_line);
+                               uc_file_path, uc_line);
                        exit(EXIT_FAILURE);
                }
                /* Fall through */
@@ -310,7 +316,7 @@
        }
 eof:
        if (ferror(uc_file)) {
-               perror(UPDATEDB_CONF);
+               perror(uc_file_path);
                exit(EXIT_FAILURE);
        }
        funlockfile(uc_file);
@@ -337,6 +343,7 @@
                 "                                 `%s')\n"
                 "  -b, --block-size SIZE          number of filenames to 
store\n"
                 "                                 in each block (default 32)\n"
+                "      --config-file FILE         configuration file (default 
`%s')\n"
                 "      --prune-bind-mounts FLAG   omit bind mounts (default "
                 "\"no\")\n"
                 "      --prunefs FS               filesystems to omit from "
@@ -351,9 +358,9 @@
                 "are found\n"
                 "  -V, --version                  print version information\n"
                 "\n"
-                "The configuration defaults to values read from\n"
-                "`%s'.\n",
-              DBFILE, UPDATEDB_CONF);
+                "The configuration defaults to values read from `%s',\n"
+                "or from a file specified with --config-file.\n",
+              DBFILE, UPDATEDB_CONF, UPDATEDB_CONF);
        printf("\n"
               "Report bugs to %s.\n",
               PACKAGE_BUGREPORT);
@@ -379,34 +386,74 @@
        return buf + '/' + path;
 }
 
-/* Parse ARGC, ARGV.  Exit on error or --help, --version. */
+/* Command line options definitions, shared by parse_initial_arguments and 
parse_arguments */
+enum { OPT_DEBUG_PRUNING = CHAR_MAX + 1,
+       OPT_ADD_SINGLE_PRUNEPATH = CHAR_MAX + 2,
+       OPT_CONFIG_FILE = CHAR_MAX + 3 };
+
+static const struct option options[] = {
+       { "add-prunefs", required_argument, NULL, 'f' },
+       { "add-prunenames", required_argument, NULL, 'n' },
+       { "add-prunepaths", required_argument, NULL, 'e' },
+       { "add-single-prunepath", required_argument, NULL, 
OPT_ADD_SINGLE_PRUNEPATH },
+       { "config-file", required_argument, NULL, OPT_CONFIG_FILE },
+       { "database-root", required_argument, NULL, 'U' },
+       { "debug-pruning", no_argument, NULL, OPT_DEBUG_PRUNING },
+       { "help", no_argument, NULL, 'h' },
+       { "output", required_argument, NULL, 'o' },
+       { "prune-bind-mounts", required_argument, NULL, 'B' },
+       { "prunefs", required_argument, NULL, 'F' },
+       { "prunenames", required_argument, NULL, 'N' },
+       { "prunepaths", required_argument, NULL, 'P' },
+       { "require-visibility", required_argument, NULL, 'l' },
+       { "verbose", no_argument, NULL, 'v' },
+       { "version", no_argument, NULL, 'V' },
+       { "block-size", required_argument, 0, 'b' },
+       { "debug", no_argument, 0, 'D' },  // Not documented.
+       { NULL, 0, NULL, 0 }
+};
+
+static auto short_options = "U:Ve:f:hl:n:o:vb:D";
+
+/* Parse ARGC, ARGV for options that need to be processed before config file 
parsing. */
 static void
-parse_arguments(int argc, char *argv[])
+parse_initial_arguments(int argc, char *argv[])
 {
-       enum { OPT_DEBUG_PRUNING = CHAR_MAX + 1,
-              OPT_ADD_SINGLE_PRUNEPATH = CHAR_MAX + 2 };
+       for (;;) {
+               int idx;
+               auto opt = getopt_long(argc, argv, short_options, options, 
&idx);
+               switch (opt) {
+                       case -1:
+                               goto options_done;
+
+                       case '?':
+                               exit(EXIT_FAILURE);
 
-       static const struct option options[] = {
-               { "add-prunefs", required_argument, NULL, 'f' },
-               { "add-prunenames", required_argument, NULL, 'n' },
-               { "add-prunepaths", required_argument, NULL, 'e' },
-               { "add-single-prunepath", required_argument, NULL, 
OPT_ADD_SINGLE_PRUNEPATH },
-               { "database-root", required_argument, NULL, 'U' },
-               { "debug-pruning", no_argument, NULL, OPT_DEBUG_PRUNING },
-               { "help", no_argument, NULL, 'h' },
-               { "output", required_argument, NULL, 'o' },
-               { "prune-bind-mounts", required_argument, NULL, 'B' },
-               { "prunefs", required_argument, NULL, 'F' },
-               { "prunenames", required_argument, NULL, 'N' },
-               { "prunepaths", required_argument, NULL, 'P' },
-               { "require-visibility", required_argument, NULL, 'l' },
-               { "verbose", no_argument, NULL, 'v' },
-               { "version", no_argument, NULL, 'V' },
-               { "block-size", required_argument, 0, 'b' },
-               { "debug", no_argument, 0, 'D' },  // Not documented.
-               { NULL, 0, NULL, 0 }
-       };
+                       case OPT_CONFIG_FILE:
+                               if (conf_config_file != NULL) {
+                                       fprintf(stderr, "%s: --%s specified 
twice\n",
+                                               program_invocation_name, 
"config-file");
+                                       exit(EXIT_FAILURE);
+                               }
+                               conf_config_file = optarg;
+                               break;
 
+                       default:
+                               break; // Ignore other options
+               }
+       }
+options_done:
+       if (optind != argc) {
+               fprintf(stderr, "%s: unexpected operand on command line",
+                       program_invocation_name);
+               exit(EXIT_FAILURE);
+       }
+}
+
+/* Parse ARGC, ARGV.  Exit on error or --help, --version. */
+static void
+parse_arguments(int argc, char *argv[])
+{
        bool prunefs_changed, prunenames_changed, prunepaths_changed;
        bool got_prune_bind_mounts, got_visibility;
 
@@ -415,10 +462,12 @@
        prunepaths_changed = false;
        got_prune_bind_mounts = false;
        got_visibility = false;
+
+       optind = 1; // Reset for second pass
        for (;;) {
                int opt, idx;
 
-               opt = getopt_long(argc, argv, "U:Ve:f:hl:n:o:vb:D", options, 
&idx);
+               opt = getopt_long(argc, argv, short_options, options, &idx);
                switch (opt) {
                case -1:
                        goto options_done;
@@ -560,6 +609,9 @@
                        conf_debug_pruning = true;
                        break;
 
+               case OPT_CONFIG_FILE:
+                       break; // Was handled in parse_initial_arguments
+
                default:
                        abort();
                }
@@ -621,6 +673,7 @@
    Exit on error or --help, --version. */
 void conf_prepare(int argc, char *argv[])
 {
+       parse_initial_arguments(argc, argv);
        parse_updatedb_conf();
        parse_arguments(argc, argv);
        for (string &str : conf_prunefs) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/plocate-1.1.23/conf.h new/plocate-1.1.24/conf.h
--- old/plocate-1.1.23/conf.h   2024-11-24 23:14:30.000000000 +0100
+++ new/plocate-1.1.24/conf.h   2026-01-13 23:48:22.000000000 +0100
@@ -58,6 +58,9 @@
 /* Configuration representation for the database configuration block */
 extern std::string conf_block;
 
+/* Custom configuration file path, or NULL to use default */
+extern const char *conf_config_file;
+
 /* Parse /etc/updatedb.conf and command-line arguments ARGC, ARGV.
    Exit on error or --help, --version. */
 extern void conf_prepare(int argc, char *argv[]);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/plocate-1.1.23/io_uring_engine.cpp 
new/plocate-1.1.24/io_uring_engine.cpp
--- old/plocate-1.1.23/io_uring_engine.cpp      2024-11-24 23:14:30.000000000 
+0100
+++ new/plocate-1.1.24/io_uring_engine.cpp      2026-01-13 23:48:22.000000000 
+0100
@@ -70,10 +70,11 @@
 void IOUringEngine::submit_read(int fd, size_t len, off_t offset, 
function<void(string_view)> cb)
 {
        if (!using_uring) {
-               // Synchronous read.
+               // Synchronous read. We don't bother trying to track
+               // filenames through errors here, since they should be rare.
                string s;
                s.resize(len + slop_bytes);
-               complete_pread(fd, &s[0], len, offset);
+               complete_pread(fd, &s[0], len, offset, "sync read failed");
                cb(string_view(s.data(), len));
                return;
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/plocate-1.1.23/meson.build 
new/plocate-1.1.24/meson.build
--- old/plocate-1.1.23/meson.build      2024-11-24 23:14:30.000000000 +0100
+++ new/plocate-1.1.24/meson.build      2026-01-13 23:48:22.000000000 +0100
@@ -1,4 +1,4 @@
-project('plocate', 'cpp', default_options: 
['buildtype=debugoptimized','cpp_std=c++17'], version: '1.1.23')
+project('plocate', 'cpp', default_options: 
['buildtype=debugoptimized','cpp_std=c++17'], version: '1.1.24')
 
 add_project_arguments('-DGROUPNAME="' + get_option('locategroup') + '"', 
language: 'cpp')
 add_project_arguments('-DUPDATEDB_CONF="/etc/updatedb.conf"', language: 'cpp')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/plocate-1.1.23/plocate-updatedb.service.in 
new/plocate-1.1.24/plocate-updatedb.service.in
--- old/plocate-1.1.23/plocate-updatedb.service.in      2024-11-24 
23:14:30.000000000 +0100
+++ new/plocate-1.1.24/plocate-updatedb.service.in      2026-01-13 
23:48:22.000000000 +0100
@@ -1,6 +1,5 @@
 [Unit]
 Description=Update the plocate database
-ConditionACPower=true
 
 [Service]
 Type=oneshot
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/plocate-1.1.23/plocate.cpp 
new/plocate-1.1.24/plocate.cpp
--- old/plocate-1.1.23/plocate.cpp      2024-11-24 23:14:30.000000000 +0100
+++ new/plocate-1.1.24/plocate.cpp      2026-01-13 23:48:22.000000000 +0100
@@ -97,7 +97,7 @@
                posix_fadvise(fd, 0, len, POSIX_FADV_DONTNEED);
        }
 
-       complete_pread(fd, &hdr, sizeof(hdr), /*offset=*/0);
+       complete_pread(fd, &hdr, sizeof(hdr), /*offset=*/0, 
filename_for_errors);
        if (memcmp(hdr.magic, "\0plocate", 8) != 0) {
                fprintf(stderr, "%s: database is corrupt or not a plocate 
database; please rebuild it.\n", filename_for_errors);
                exit(1);
@@ -325,14 +325,14 @@
 // we will primarily be CPU-bound, we'll be firing up one
 // worker thread for each spare core (the last one will
 // only be doing I/O). access() is still synchronous.
-uint64_t scan_all_docids(const vector<Needle> &needles, int fd, const Corpus 
&corpus)
+uint64_t scan_all_docids(const vector<Needle> &needles, int fd, const Corpus 
&corpus, const char *filename_for_errors)
 {
        {
                const Header &hdr = corpus.get_hdr();
                if (hdr.zstd_dictionary_length_bytes > 0) {
                        string dictionary;
                        dictionary.resize(hdr.zstd_dictionary_length_bytes);
-                       complete_pread(fd, &dictionary[0], 
hdr.zstd_dictionary_length_bytes, hdr.zstd_dictionary_offset_bytes);
+                       complete_pread(fd, &dictionary[0], 
hdr.zstd_dictionary_length_bytes, hdr.zstd_dictionary_offset_bytes, 
filename_for_errors);
                        ddict = ZSTD_createDDict(dictionary.data(), 
dictionary.size());
                }
        }
@@ -341,7 +341,7 @@
        Serializer serializer;
        uint32_t num_blocks = corpus.get_num_filename_blocks();
        unique_ptr<uint64_t[]> offsets(new uint64_t[num_blocks + 1]);
-       complete_pread(fd, offsets.get(), (num_blocks + 1) * sizeof(uint64_t), 
corpus.offset_for_block(0));
+       complete_pread(fd, offsets.get(), (num_blocks + 1) * sizeof(uint64_t), 
corpus.offset_for_block(0), filename_for_errors);
        atomic<uint64_t> matched{ 0 };
 
        mutex mu;
@@ -398,7 +398,7 @@
                if (compressed.size() < io_len) {
                        compressed.resize(io_len);
                }
-               complete_pread(fd, &compressed[0], io_len, offsets[io_docid]);
+               complete_pread(fd, &compressed[0], io_len, offsets[io_docid], 
filename_for_errors);
 
                {
                        unique_lock lock(mu);
@@ -532,7 +532,7 @@
                // (We could have searched through all trigrams that matched
                // the pattern and done a union of them, but that's a lot of
                // work for fairly unclear gain.)
-               uint64_t matched = scan_all_docids(needles, fd, corpus);
+               uint64_t matched = scan_all_docids(needles, fd, corpus, 
filename.c_str());
                dprintf("Done in %.1f ms, found %" PRId64 " matches.\n",
                        1e3 * duration<float>(steady_clock::now() - 
start).count(), matched);
                close(fd);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/plocate-1.1.23/updatedb.8.in 
new/plocate-1.1.24/updatedb.8.in
--- old/plocate-1.1.23/updatedb.8.in    2024-11-24 23:14:30.000000000 +0100
+++ new/plocate-1.1.24/updatedb.8.in    2026-01-13 23:48:22.000000000 +0100
@@ -94,6 +94,15 @@
 instead of using the default database.
 
 .TP
+\fB\-\-config-file\fR \fIFILE\fR
+Read configuration from \fIFILE\fR instead of the default configuration file.
+Command-line options still override settings from the file.
+
+See
+.BR updatedb.conf (5)
+for the configuration file format.
+
+.TP
 \fB\-\-prune\-bind\-mounts\fR \fIFLAG\fR
 Set
 .B PRUNE_BIND_MOUNTS
@@ -177,7 +186,7 @@
 .SH FILES
 .TP
 \fB@updatedb_conf@\fR
-A configuration file.  See
+The default configuration file.  See
 .BR updatedb.conf (5).
 Uses exactly the same format as the one used by
 .BR mlocate (1)'s

++++++ plocate-updatedb.service ++++++
--- /var/tmp/diff_new_pack.kqlXfQ/_old  2026-02-12 17:30:37.067561254 +0100
+++ /var/tmp/diff_new_pack.kqlXfQ/_new  2026-02-12 17:30:37.071561424 +0100
@@ -29,7 +29,10 @@
 Type=oneshot
 ExecStart=/bin/sh -c \
           "chown -R ${RUN_UPDATEDB_AS}:root /var/lib/plocate && \
-          su --shell=/bin/sh ${RUN_UPDATEDB_AS} -c 'umask 0022; 
/usr/sbin/updatedb'"
+           su --shell=/bin/sh ${RUN_UPDATEDB_AS} -c \
+             'umask 0022; /usr/sbin/updatedb --require-visibility 0'; \
+           chown -R root:root /var/lib/plocate; \
+           chmod 0644 /var/lib/plocate/plocate.db"
 
 # Unfortunately, the umask we set here is lost because we invoke updatedb
 # through 'su' to change to the user ${RUN_UPDATEDB_AS}. See bnc#941296 and

++++++ updatedb.conf ++++++
--- /var/tmp/diff_new_pack.kqlXfQ/_old  2026-02-12 17:30:37.131563966 +0100
+++ /var/tmp/diff_new_pack.kqlXfQ/_new  2026-02-12 17:30:37.135564136 +0100
@@ -10,7 +10,7 @@
 PRUNEPATHS="/tmp /var/tmp /var/cache /var/lock /var/run /var/spool /mnt /cdrom 
/usr/tmp /proc /media /sys /.snapshots /var/run/media"
 
 # Folder names that are pruned from updatedb database
-PRUNENAMES = ".git .hg .svn .bzr .arch-ids {arch} CVS"
+PRUNENAMES=".git .hg .svn .bzr .arch-ids {arch} CVS"
 
 # Skip bind mounts
 # DISABLED for bnc#994663 (probably still valid for plocate?)

Reply via email to