]> git.sesse.net Git - plocate/log
plocate
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).

3 years agoTurn off ProtectSystem=full.
Steinar H. Gunderson [Mon, 7 Dec 2020 09:22:52 +0000 (10:22 +0100)]
Turn off ProtectSystem=full.

It turns out this works by bind mounts, which we ignore by default,
causing /usr to be ignored in the database.

3 years agoFix an issue where the database was too small to create a proper zstd dictionary.
Steinar H. Gunderson [Mon, 7 Dec 2020 09:22:39 +0000 (10:22 +0100)]
Fix an issue where the database was too small to create a proper zstd dictionary.

3 years agoRelease plocate 1.1.1. 1.1.1
Steinar H. Gunderson [Sat, 5 Dec 2020 09:51:52 +0000 (10:51 +0100)]
Release plocate 1.1.1.

3 years agoFix an issue where the database could be built with the wrong check_visibility flag.
Steinar H. Gunderson [Sat, 5 Dec 2020 09:49:55 +0000 (10:49 +0100)]
Fix an issue where the database could be built with the wrong check_visibility flag.

The check_visibility flag would never be set in the header, and thus be set to some
random variable instead of what the user wanted.

3 years agoRelease plocate 1.1.0. 1.1.0
Steinar H. Gunderson [Wed, 2 Dec 2020 22:39:49 +0000 (23:39 +0100)]
Release plocate 1.1.0.

3 years agoAdd missing man page .in files.
Steinar H. Gunderson [Wed, 2 Dec 2020 22:51:55 +0000 (23:51 +0100)]
Add missing man page .in files.

3 years agoImport the updatedb and updatedb.conf man pages from mlocate.
Steinar H. Gunderson [Tue, 1 Dec 2020 23:34:16 +0000 (00:34 +0100)]
Import the updatedb and updatedb.conf man pages from mlocate.