Skip to content

Releases: tavianator/bfs

Version 4.1

11 Aug 23:32
4.1
Compare
Choose a tag to compare

New features

  • Added support for the $LSCOLORS variable used by FreeBSD and macOS (#54, #157)

Changes

  • Switched from C17 to C23 by default. C17 is still supported as a fallback as long as your compiler supports some common extensions.

Full Changelog: 4.0.8...4.1

4.0.8

20 Jun 14:09
4.0.8
Compare
Choose a tag to compare

Bug fixes

  • Fixed an invalid optimization that transformed

    $ bfs -user you -or -user me
    

    into just

    $ bfs -user you
    

    The bug was originally introduced in bfs 2.0 (October 14, 2020). (#155)

Full Changelog: 4.0.7...4.0.8

4.0.7

15 Jun 17:57
4.0.7
Compare
Choose a tag to compare

Changes

  • bfs now takes CPU affinity into account when picking how many threads to use (a36774b)

  • -execdir /bin/... is now allowed even with a relative path in $PATH (cb40f51)

  • Expect is no longer a test suite dependency (7102fec)

Bug fixes

  • Only the last -files0-from argument now has any effect, to match GNU find (a662fda)

  • Fixed -execdir {}, which was inadvertently broken in bfs 4.0 (def4a83)

4.0.6

27 Feb 14:37
4.0.6
Compare
Choose a tag to compare

Bug fixes

  • Fixed -fstype with btrfs subvolumes (requires Linux 5.8+) (0dccdae)

  • Fixed -ls with timestamps very far in the future (dd5df1f)

  • Fixed the posix/exec_sigmask test on mips64el Linux (532dec0)

  • Fixed time-related tests with mawk 1.3.4 20250131 (#152)

Full Changelog: 4.0.5...4.0.6

4.0.5

18 Jan 20:38
4.0.5
Compare
Choose a tag to compare

Bug fixes

  • Fixed a bug that could cause child processes (e.g. from -exec) to run with all signals blocked. The bug was introduced in version 3.3. (af207e7)

Changes

  • Fixed the build against old liburing versions (#147)

  • Async I/O performance optimizations

Full Changelog: 4.0.4...4.0.5

Version 4.0.4

31 Oct 19:40
4.0.4
Compare
Choose a tag to compare

Bug fixes

  • Fixed a man page typo (#144)

  • Fixed the build on PowerPC macOS (#145)

  • Fixed a bug introduced in bfs 4.0.3 that colorized every file as if it had capabilities on non-Linux systems (#146)

New Contributors

Full Changelog: 4.0.3...4.0.4

Version 4.0.3

22 Oct 22:26
4.0.3
Compare
Choose a tag to compare

Bug fixes

  • Fixed an assertion failure when $LS_COLORS contained escaped NUL bytes like *\0.gz= (f5eaadb9)

  • Fixed a use-after-free bug introduced in bfs 4.0 when unregistering and re-registering signal hooks. This could be reproduced with bfs -nocolor by repeatedly sending SIGINFO/SIGUSR1 to toggle the status bar. (39ff273)

  • Fixed a hang present since bfs 3.0 colorizing paths like notdir/file, where notdir is a symlink pointing to a non-directory file. (b89f22cb)

Version 4.0.2

17 Sep 19:54
4.0.2
Compare
Choose a tag to compare

New features

  • Implemented ./configure --version=X.Y.Z, mainly for packagers to override the version number (4a278d3)

Changes

  • Minor refactoring of the build system

Bug fixes

  • Fixed ./configure --help, which was broken since bfs 4.0 (07ae989)

  • Fixed compiler flag auto-detection on systems with non-GNU sed. This fixes a potential race condition on FreeBSD since bfs 4.0 due to the switch to _Fork() without passing -z now to the linker. (34e6081)

  • Fixed $MAKE distcheck when $MAKE is not make, e.g. gmake distcheck on BSD (2135b00)

  • Fixed some roff syntax issues in the bfs manpage (812ecd1)

  • Fixed an assertion failure optimizing expressions like bfs -not \( -prune , -type f \) since bfs 3.1. Release builds were not affected, since their assertions are disabled and the behaviour was otherwise correct. (b1a9998)

Version 4.0.1

19 Aug 17:07
4.0.1
Compare
Choose a tag to compare

Bug fixes

  • bfs no longer prints a "suppressed errors" warning unless -noerror is actually suppressing errors 5d03c9d

Version 4.0

16 Aug 14:29
4.0
Compare
Choose a tag to compare

New features

  • To match BSD find (and the POSIX Utility Syntax Guidelines), multiple flags can now be given in a single argument like -LEXO2. Previously, you would have had to write -L -E -X -O2. (c0fd33a)

  • Explicit timestamps can now be written as @SECONDS_SINCE_EPOCH. For example, bfs -newermt @946684800 will print files modified since January 1, 2000 (UTC). (c6bb003)

  • The new -noerror option suppresses all error messages during traversal. (#142)

Changes

  • -mount now excludes mount points entirely, to comply with the recently published POSIX 2024 standard. Use -xdev to include the mount point itself, but not its contents. bfs has been warning about this change since version 1.5.1 (September 2019). (33b85e1)

  • -perm now takes the current file creation mask into account when parsing a symbolic mode like +rw, as clarified by POSIX defect 1392. This matches the behaviour of BSD find, contrary to the behaviour of GNU find. (6290ce4)

Bug fixes

  • Fixed commands like ./configure CC=clang --enable-release that set variables before other options (49a5d48)

  • Fixed the build on RISC-V with GCC versions older than 14 (e93a1dc)

  • Fixed running bfs under Valgrind (a01cfac)

  • Fixed the exit code when failing to execute a non-existent command with -exec/-ok on some platforms including OpenBSD and HPPA (8c130ca)

  • Fixed $LS_COLORS case-sensitivity to match GNU ls more closely when the same extension is specified multiple times (08030ae)

  • Fixed the -status bar on Solaris/Illumos

New Contributors

Full Changelog: 3.3.1...4.0