]> git.sesse.net Git - plocate/log
plocate
21 months agoRemove dependency on non-POSIX header error.h.
Steinar H. Gunderson [Wed, 13 Jul 2022 20:31:54 +0000 (22:31 +0200)]
Remove dependency on non-POSIX header error.h.

This helps compatibility with certain configurations of musl libc.
Note that the output format on updatedb.conf errors will change somewhat,
and only the first one will be reported followed by immediate exit
(unlike earlier, where all updatedb.conf errors would be output before exit).

Based on a patch by Alfred Persson Forsberg.

22 months agoAdd a missing #include.
Steinar H. Gunderson [Sat, 25 Jun 2022 08:01:49 +0000 (10:01 +0200)]
Add a missing #include.

Taken from the Alpine Linux packaging; seems to be for statx()
(presumably on musl libc).

22 months agoBump version number.
Steinar H. Gunderson [Sat, 25 Jun 2022 08:01:35 +0000 (10:01 +0200)]
Bump version number.

22 months agoRelease plocate 1.1.16. 1.1.16
Steinar H. Gunderson [Sat, 4 Jun 2022 13:17:11 +0000 (15:17 +0200)]
Release plocate 1.1.16.

23 months agoFix an issue where updatedb would stop on certain CIFS filesystems.
Steinar H. Gunderson [Sun, 29 May 2022 09:11:10 +0000 (11:11 +0200)]
Fix an issue where updatedb would stop on certain CIFS filesystems.

Reported by rollopack.

2 years agoCorrect a comment.
Steinar H. Gunderson [Wed, 23 Feb 2022 23:43:38 +0000 (00:43 +0100)]
Correct a comment.

2 years agoBump version number.
Steinar H. Gunderson [Tue, 22 Feb 2022 23:01:47 +0000 (00:01 +0100)]
Bump version number.

2 years agoRelease plocate 1.1.15. 1.1.15
Steinar H. Gunderson [Mon, 31 Jan 2022 20:29:10 +0000 (21:29 +0100)]
Release plocate 1.1.15.

2 years agoIf stat() on a directory check, see if it's an excluded filesystem.
Steinar H. Gunderson [Sun, 30 Jan 2022 20:13:57 +0000 (21:13 +0100)]
If stat() on a directory check, see if it's an excluded filesystem.

Fixes an issues where a networked filesystem on the exclude list being down
causes updatedb to abort entirely. Reported by Kevin Locke.

2 years agoWhen stat() in updatedb fails, report the path instead of just the parent directory.
Steinar H. Gunderson [Sun, 30 Jan 2022 19:10:34 +0000 (20:10 +0100)]
When stat() in updatedb fails, report the path instead of just the parent directory.

Reported by Kevin Locke.

2 years agoMake entire path for plocate database configurable
Eirik Nygaard [Thu, 27 Jan 2022 14:53:18 +0000 (15:53 +0100)]
Make entire path for plocate database configurable

2 years agoRevert "Make entire path for plocate database configurable"
Steinar H. Gunderson [Thu, 27 Jan 2022 13:00:16 +0000 (14:00 +0100)]
Revert "Make entire path for plocate database configurable"

Breaks configure.

This reverts commit d45acc377040e80dc517dbdcbf3cfcb06eab8c09.

2 years agoMake entire path for plocate database configurable
Eirik Nygaard [Sun, 23 Jan 2022 11:05:01 +0000 (12:05 +0100)]
Make entire path for plocate database configurable

2 years agoFix a comment in db.h.
Steinar H. Gunderson [Tue, 28 Dec 2021 13:20:04 +0000 (14:20 +0100)]
Fix a comment in db.h.

2 years agoRemove unneeded error.h include.
Steinar H. Gunderson [Tue, 28 Dec 2021 09:12:52 +0000 (10:12 +0100)]
Remove unneeded error.h include.

This improves compatibility with musl libc. Reported by Andrew Pirie.

2 years agoBump version number.
Steinar H. Gunderson [Tue, 28 Dec 2021 09:12:45 +0000 (10:12 +0100)]
Bump version number.

2 years agoRelease plocate 1.1.14. 1.1.14
Steinar H. Gunderson [Mon, 27 Dec 2021 10:10:12 +0000 (11:10 +0100)]
Release plocate 1.1.14.

2 years agoDocument interactions with Btrfs subvolume mounts better.
Steinar H. Gunderson [Mon, 27 Dec 2021 10:09:29 +0000 (11:09 +0100)]
Document interactions with Btrfs subvolume mounts better.

2 years agoCorrect plocate.1; the mlocate parameter is -A, not -a.
Steinar H. Gunderson [Mon, 20 Dec 2021 22:21:18 +0000 (23:21 +0100)]
Correct plocate.1; the mlocate parameter is -A, not -a.

2 years agoCorrect plocate.1; we have a native updatedb now.
Steinar H. Gunderson [Mon, 20 Dec 2021 22:21:09 +0000 (23:21 +0100)]
Correct plocate.1; we have a native updatedb now.

2 years agoRevert "Delete unused file."
Steinar H. Gunderson [Thu, 9 Dec 2021 15:20:27 +0000 (16:20 +0100)]
Revert "Delete unused file."

This reverts commit 2a8c3e471aef17b6841451d471a84b0937dcf8bf.

lib.cpp was not unused at all. Thanks to Manpreet Singh for noticing.

2 years agoCorrect the man page.
Steinar H. Gunderson [Tue, 30 Nov 2021 14:48:53 +0000 (15:48 +0100)]
Correct the man page.

updatedb.conf shares format between plocate and mlocate, but the
database file does not.

2 years agoDelete unused file.
Steinar H. Gunderson [Tue, 30 Nov 2021 10:26:23 +0000 (11:26 +0100)]
Delete unused file.

2 years agoDocument --add-single-prunepath in the man page.
Steinar H. Gunderson [Sat, 13 Nov 2021 09:37:11 +0000 (10:37 +0100)]
Document --add-single-prunepath in the man page.

2 years agoAdd an option --add-single-prunepath.
Steinar H. Gunderson [Fri, 12 Nov 2021 21:14:53 +0000 (22:14 +0100)]
Add an option --add-single-prunepath.

This makes it possible to prune a path with spaces in the file name,
which was previously impossible.

2 years agoFix a typo.
Steinar H. Gunderson [Fri, 12 Nov 2021 20:17:50 +0000 (21:17 +0100)]
Fix a typo.

2 years agoAdd ignored -A / --all parameter, for better mlocate compatibility.
Steinar H. Gunderson [Fri, 12 Nov 2021 19:14:00 +0000 (20:14 +0100)]
Add ignored -A / --all parameter, for better mlocate compatibility.

2 years agoBump version number.
Steinar H. Gunderson [Fri, 12 Nov 2021 19:11:04 +0000 (20:11 +0100)]
Bump version number.

2 years agoRelease plocate 1.1.13. 1.1.13
Steinar H. Gunderson [Sat, 6 Nov 2021 17:18:05 +0000 (18:18 +0100)]
Release plocate 1.1.13.

2 years agoFix an issue where non-ASCII characters would be wrongly escaped.
Steinar H. Gunderson [Fri, 29 Oct 2021 22:42:16 +0000 (00:42 +0200)]
Fix an issue where non-ASCII characters would be wrongly escaped.

This only happens on platforms with signed char. Reported by
COLIN Stéphane.

2 years agoOn wrong plocate.db header or version, output the filename in the error message.
Steinar H. Gunderson [Mon, 18 Oct 2021 07:42:00 +0000 (09:42 +0200)]
On wrong plocate.db header or version, output the filename in the error message.

Suggested by Trent W. Buck (Debian bug #996735).

2 years agoBump version number.
Steinar H. Gunderson [Mon, 18 Oct 2021 07:41:34 +0000 (09:41 +0200)]
Bump version number.

2 years agoRelease plocate 1.1.12. 1.1.12
Steinar H. Gunderson [Tue, 5 Oct 2021 21:05:55 +0000 (23:05 +0200)]
Release plocate 1.1.12.

2 years agoImplement the -N/--literal option.
Steinar H. Gunderson [Tue, 5 Oct 2021 21:02:09 +0000 (23:02 +0200)]
Implement the -N/--literal option.

This matches the GNU coreutils option to turn off the automatic
quoting of special characters when printing to a tty.

2 years agoSupport kernels that don't know about O_TMPFILE.
Steinar H. Gunderson [Thu, 23 Sep 2021 17:54:51 +0000 (19:54 +0200)]
Support kernels that don't know about O_TMPFILE.

Seemingly, this hit WSL1, making it impossible to run updatedb there.

2 years agoupdatedb is in section 8, not 1.
Steinar H. Gunderson [Thu, 16 Sep 2021 17:54:46 +0000 (19:54 +0200)]
updatedb is in section 8, not 1.

2 years agoUpdate the plocate-build man page to inform about the existence of the native updatedb.
Steinar H. Gunderson [Thu, 16 Sep 2021 17:02:42 +0000 (19:02 +0200)]
Update the plocate-build man page to inform about the existence of the native updatedb.

2 years agofix maybe-uninitialized warning in parse_trigrams
Arsen Arsenović [Mon, 23 Aug 2021 22:16:34 +0000 (00:16 +0200)]
fix maybe-uninitialized warning in parse_trigrams

2 years agoBump version number.
Steinar H. Gunderson [Sat, 4 Sep 2021 22:57:34 +0000 (00:57 +0200)]
Bump version number.

2 years agoRelease plocate 1.1.11. 1.1.11
Steinar H. Gunderson [Sat, 4 Sep 2021 22:50:01 +0000 (00:50 +0200)]
Release plocate 1.1.11.

2 years agoFix a crash on --existing and --regex together.
Steinar H. Gunderson [Sat, 4 Sep 2021 22:47:14 +0000 (00:47 +0200)]
Fix a crash on --existing and --regex together.

--regex (and other linear scans) would launch multiple threads,
but IOUringEngine isn't thread-safe. Since --existing is obscure,
and --regex is obscure, we solve this by simply making synchronous
stat() calls.

Reported by Michael Arndt.

2 years agoBump version number.
Steinar H. Gunderson [Mon, 23 Aug 2021 22:31:32 +0000 (00:31 +0200)]
Bump version number.

2 years agoRelease plocate 1.1.10. 1.1.10
Steinar H. Gunderson [Mon, 23 Aug 2021 20:02:36 +0000 (22:02 +0200)]
Release plocate 1.1.10.

2 years agoUse a more C++-standard way of suppressing the unused variable warning in submit_stat().
Steinar H. Gunderson [Mon, 23 Aug 2021 18:35:55 +0000 (20:35 +0200)]
Use a more C++-standard way of suppressing the unused variable warning in submit_stat().

2 years agoFix a warning with -Wvla (MB_CUR_MAX is not a compile-time constant).
Steinar H. Gunderson [Mon, 23 Aug 2021 18:29:23 +0000 (20:29 +0200)]
Fix a warning with -Wvla (MB_CUR_MAX is not a compile-time constant).

2 years agofix unused parameter warns in io_uring_engine.cpp
Arsen Arsenović [Mon, 23 Aug 2021 15:52:48 +0000 (17:52 +0200)]
fix unused parameter warns in io_uring_engine.cpp

2 years agoUnbreak compilation without systemd.
Steinar H. Gunderson [Mon, 23 Aug 2021 16:13:08 +0000 (18:13 +0200)]
Unbreak compilation without systemd.

2 years agoAdd missing unistd.h #include.
Steinar H. Gunderson [Mon, 23 Aug 2021 15:54:57 +0000 (17:54 +0200)]
Add missing unistd.h #include.

Adapted from the Void Linux repository, for musl compatibility.

2 years agoReplace canonicalize_file_name() with realpath().
Steinar H. Gunderson [Mon, 23 Aug 2021 15:53:34 +0000 (17:53 +0200)]
Replace canonicalize_file_name() with realpath().

canonicalize_file_name() is a GNU extension, while realpath() is POSIX.
Seemingly needed for musl. Adapted from the Void Linux repository.

2 years agoplocate: fix compilation without libiouring
Arsen Arsenović [Mon, 23 Aug 2021 08:07:01 +0000 (10:07 +0200)]
plocate: fix compilation without libiouring

2 years agoUnbreak the benchmark program.
Steinar H. Gunderson [Sat, 31 Jul 2021 13:37:54 +0000 (15:37 +0200)]
Unbreak the benchmark program.

2 years agoRelease plocate 1.1.9. 1.1.9
Steinar H. Gunderson [Wed, 18 Aug 2021 20:16:02 +0000 (22:16 +0200)]
Release plocate 1.1.9.

2 years agoRun clang-format.
Steinar H. Gunderson [Tue, 27 Jul 2021 20:16:01 +0000 (22:16 +0200)]
Run clang-format.

2 years agoSupport the -e (--existing) option from mlocate.
Steinar H. Gunderson [Tue, 27 Jul 2021 14:19:01 +0000 (16:19 +0200)]
Support the -e (--existing) option from mlocate.

This can be useful if recently having deleted some files,
and not wanting to do a database rebuild. Note that we don't
support the --nofollow option (--follow is the default),
since it's not clear what it would be useful for, and the mlocate
source code says it “looks like a historical accident”.

2 years agoSend the result value of the stat to the callback.
Steinar H. Gunderson [Tue, 27 Jul 2021 13:45:27 +0000 (15:45 +0200)]
Send the result value of the stat to the callback.

2 years agoMake it possible to set systemunitdir explicitly.
Steinar H. Gunderson [Mon, 21 Jun 2021 19:21:53 +0000 (21:21 +0200)]
Make it possible to set systemunitdir explicitly.

This allows a distributor to hard-code the systemd unit directory
instead of relying on systemd-dev. Based on a patch by
Zbigniew Jędrzejewski-Szmek.

2 years agoBump version number.
Steinar H. Gunderson [Mon, 21 Jun 2021 18:57:44 +0000 (20:57 +0200)]
Bump version number.

2 years agoRelease plocate 1.1.8. 1.1.8
Steinar H. Gunderson [Sat, 12 Jun 2021 12:27:21 +0000 (14:27 +0200)]
Release plocate 1.1.8.

2 years agoFix a printing issue when outputting to a block-buffered pipe from a forked child...
Steinar H. Gunderson [Sat, 5 Jun 2021 17:31:12 +0000 (19:31 +0200)]
Fix a printing issue when outputting to a block-buffered pipe from a forked child (ie., multiple databases).

3 years agoFix a typo in try_complete_pread().
Steinar H. Gunderson [Wed, 7 Apr 2021 20:04:49 +0000 (22:04 +0200)]
Fix a typo in try_complete_pread().

Pointed out by Taj Khattra.

3 years agoBump version number.
Steinar H. Gunderson [Wed, 7 Apr 2021 20:04:40 +0000 (22:04 +0200)]
Bump version number.

3 years agoRelease plocate 1.1.7. 1.1.7
Steinar H. Gunderson [Wed, 7 Apr 2021 07:34:46 +0000 (09:34 +0200)]
Release plocate 1.1.7.

3 years agoMove timer settings from .service to .timer file.
Steinar H. Gunderson [Wed, 7 Apr 2021 07:33:33 +0000 (09:33 +0200)]
Move timer settings from .service to .timer file.

Patch from Vladimir Lomov.

3 years agoBump version number.
Steinar H. Gunderson [Wed, 7 Apr 2021 07:33:10 +0000 (09:33 +0200)]
Bump version number.

3 years agoRelease plocate 1.1.6. 1.1.6
Steinar H. Gunderson [Fri, 2 Apr 2021 11:09:10 +0000 (13:09 +0200)]
Release plocate 1.1.6.

3 years agoRandomize updatedb systemd unit start time.
Steinar H. Gunderson [Fri, 2 Apr 2021 11:12:49 +0000 (13:12 +0200)]
Randomize updatedb systemd unit start time.

Suggested by Calum McConnell.

3 years agoSupport searching multiple databases in plocate.
Steinar H. Gunderson [Sat, 27 Mar 2021 23:19:49 +0000 (00:19 +0100)]
Support searching multiple databases in plocate.

We support multiple -d arguments, single -d arguments with multiple
databases (colon-separated), and LOCATE_PATH. The two latter should
be compatible with mlocate, although we support escaping colons in
file paths and I believe mlocate does not.

This is slightly trickier than one might expect due to security
considerations; we're not robust against malicious input, so we need to
make sure that if we process an attacker-supplied database, the process
has already dropped privileges and cannot subvert a privileged reader.

3 years agoMake updatedb understand DT_UNKNOWN.
Steinar H. Gunderson [Sun, 21 Mar 2021 14:48:55 +0000 (15:48 +0100)]
Make updatedb understand DT_UNKNOWN.

Some filesystems don't know from getdents() whether an entry is a file
or a directory without a stat(). I had assumed this was only an issue
for obscure operating systems, so I removed it (mlocate's updatedb
supported it), but evidently older versions of XFS has this issue, too,
so add back checking.

Reported by Marcel Partap.

3 years agoGive a slightly better error message on short read.
Steinar H. Gunderson [Sun, 21 Mar 2021 12:11:45 +0000 (13:11 +0100)]
Give a slightly better error message on short read.

3 years agoBump version number.
Steinar H. Gunderson [Sun, 21 Mar 2021 12:11:35 +0000 (13:11 +0100)]
Bump version number.

3 years agoRelease plocate 1.1.5. 1.1.5
Steinar H. Gunderson [Wed, 24 Feb 2021 18:14:11 +0000 (19:14 +0100)]
Release plocate 1.1.5.

3 years agoReduce the amount of lseek() syscalls; evidently, ftell() does not cache the position.
Steinar H. Gunderson [Fri, 19 Feb 2021 17:54:35 +0000 (18:54 +0100)]
Reduce the amount of lseek() syscalls; evidently, ftell() does not cache the position.

3 years agoSupport filesystems that do not support O_TMPFILE, even on Linux.
Steinar H. Gunderson [Fri, 19 Feb 2021 17:42:12 +0000 (18:42 +0100)]
Support filesystems that do not support O_TMPFILE, even on Linux.

Evidently, overlayfs does not support O_TMPFILE. Reported by Daniel Lewart.

3 years agoBump version number.
Steinar H. Gunderson [Fri, 19 Feb 2021 17:38:33 +0000 (18:38 +0100)]
Bump version number.

3 years agoRelease plocate 1.1.4. 1.1.4
Steinar H. Gunderson [Sun, 14 Feb 2021 09:56:16 +0000 (10:56 +0100)]
Release plocate 1.1.4.

3 years agoCall strlen() a bit less. Helps ~2% CPU.
Steinar H. Gunderson [Sat, 13 Feb 2021 10:06:44 +0000 (11:06 +0100)]
Call strlen() a bit less. Helps ~2% CPU.

3 years agoMicrooptimizations to docid counting.
Steinar H. Gunderson [Sat, 13 Feb 2021 00:58:31 +0000 (01:58 +0100)]
Microoptimizations to docid counting.

3 years agoTake an assert off the hot path.
Steinar H. Gunderson [Sat, 13 Feb 2021 00:41:04 +0000 (01:41 +0100)]
Take an assert off the hot path.

Seemingly, Meson doesn't include -DNDEBUG by default, and this assert
is pretty hot, to take it out to be sure.

3 years agoFix a typo.
Steinar H. Gunderson [Sat, 13 Feb 2021 00:30:27 +0000 (01:30 +0100)]
Fix a typo.

3 years agoSwitch to histogram-based estimation of PFOR varbyte sizes.
Steinar H. Gunderson [Sat, 13 Feb 2021 00:24:58 +0000 (01:24 +0100)]
Switch to histogram-based estimation of PFOR varbyte sizes.

This makes plocate.db ~0.1% larger, but reduces CPU usage by something
like 3%, so it's an OK tradeoff.

3 years agoOptimize trigram reading somewhat.
Steinar H. Gunderson [Fri, 12 Feb 2021 20:15:24 +0000 (21:15 +0100)]
Optimize trigram reading somewhat.

Helps 1–2% CPU.

3 years agoReplace std::string with std::vector<unsigned char> when encoding posting lists.
Steinar H. Gunderson [Thu, 11 Feb 2021 09:09:38 +0000 (10:09 +0100)]
Replace std::string with std::vector<unsigned char> when encoding posting lists.

This is a ~0.5–1% win since we never use the short-string optimization,
and the vector fits better in cache.

3 years agoStreamline the add_docid() path by removing a redundant comparison. Saves ~1% CPU.
Steinar H. Gunderson [Thu, 11 Feb 2021 08:45:30 +0000 (09:45 +0100)]
Streamline the add_docid() path by removing a redundant comparison. Saves ~1% CPU.

3 years agoRemove an unused member. Saves ~0.5% CPU due to better cache efficiency.
Steinar H. Gunderson [Thu, 11 Feb 2021 08:37:31 +0000 (09:37 +0100)]
Remove an unused member. Saves ~0.5% CPU due to better cache efficiency.

3 years agoInline EncodingCorpus::get_pl_builder(). Saves ~2% CPU.
Steinar H. Gunderson [Thu, 11 Feb 2021 08:35:17 +0000 (09:35 +0100)]
Inline EncodingCorpus::get_pl_builder(). Saves ~2% CPU.

3 years agoRename Corpus to EncodingCorpus, and make it private.
Steinar H. Gunderson [Thu, 11 Feb 2021 08:32:16 +0000 (09:32 +0100)]
Rename Corpus to EncodingCorpus, and make it private.

We don't really want two different classes named Corpus; that's pretty
confusing, even though they don't live in the same binary.

3 years agoInstall CACHEDIR.tag in /var/lib/plocate.
Steinar H. Gunderson [Wed, 10 Feb 2021 20:39:37 +0000 (21:39 +0100)]
Install CACHEDIR.tag in /var/lib/plocate.

This helps certain tools understand that everything in the directory
is autogenerated. Suggested by Marco d'Itri.

3 years agoupdatedb.8: fix typo.
Jakub Wilk [Wed, 10 Feb 2021 08:13:29 +0000 (09:13 +0100)]
updatedb.8: fix typo.

3 years agoplocate.1: remove spurious space after "(".
Jakub Wilk [Wed, 10 Feb 2021 08:13:28 +0000 (09:13 +0100)]
plocate.1: remove spurious space after "(".

3 years agoBump version number.
Steinar H. Gunderson [Wed, 10 Feb 2021 09:37:44 +0000 (10:37 +0100)]
Bump version number.

3 years agoRelease plocate 1.1.3. 1.1.3
Steinar H. Gunderson [Sat, 19 Dec 2020 00:17:59 +0000 (01:17 +0100)]
Release plocate 1.1.3.

3 years agoCompile on systems without O_TMPFILE.
Steinar H. Gunderson [Sat, 12 Dec 2020 11:56:46 +0000 (12:56 +0100)]
Compile on systems without O_TMPFILE.

This is a last-resort solution; we don't do unlink-on-signal or similar,
so if updatedb or plocate-build is aborted on such platforms, there
will be an orphan temporary file.

3 years agoCompile on platforms without O_NOATIME.
Steinar H. Gunderson [Sat, 12 Dec 2020 11:54:31 +0000 (12:54 +0100)]
Compile on platforms without O_NOATIME.

3 years agoFix a Clang warning.
Steinar H. Gunderson [Sat, 12 Dec 2020 11:43:28 +0000 (12:43 +0100)]
Fix a Clang warning.

3 years agoBump version number.
Steinar H. Gunderson [Sat, 12 Dec 2020 11:53:45 +0000 (12:53 +0100)]
Bump version number.

3 years agoRelease plocate 1.1.2. 1.1.2
Steinar H. Gunderson [Wed, 9 Dec 2020 23:40:03 +0000 (00:40 +0100)]
Release plocate 1.1.2.

3 years agoIncrease hard file limit if possible.
Steinar H. Gunderson [Wed, 9 Dec 2020 23:37:41 +0000 (00:37 +0100)]
Increase hard file limit if possible.

Fixes issues where updatedb was run with a too-low open file limit
(both soft and hard), but by root, so we could just raise both limits.

Reported by Gregor Herrmann.

3 years agoMake it possible to rename updatedb (e.g. to updatedb.plocate).
Steinar H. Gunderson [Wed, 9 Dec 2020 23:30:04 +0000 (00:30 +0100)]
Make it possible to rename updatedb (e.g. to updatedb.plocate).

3 years agoFix a typo in plocate(1).
Steinar H. Gunderson [Wed, 9 Dec 2020 23:24:42 +0000 (00:24 +0100)]
Fix a typo in plocate(1).

3 years agoMake updatedb(8) stop referring to mlocate (except in one deliberate place).
Steinar H. Gunderson [Wed, 9 Dec 2020 23:23:51 +0000 (00:23 +0100)]
Make updatedb(8) stop referring to mlocate (except in one deliberate place).