Skip to content

Releases: tavianator/bfs

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

Version 3.3.1

03 Jun 22:37
3.3.1
Compare
Choose a tag to compare

Bug fixes

  • Reduced the scope of the symbolic link loop change in version 3.3. -xtype l remains true for symbolic link loops, matching a change in GNU findutils 4.10.0. However, -L will report an error, just like bfs prior to 3.3 and other find implementations, as required by POSIX.

Version 3.3

28 May 21:09
3.3
Compare
Choose a tag to compare

New features

  • The -status bar can now be toggled by SIGINFO (Ctrl+T) on systems that support it, and SIGUSR1 on other systems

  • -regextype now supports all regex types from GNU find (#21)

  • File birth times are now supported on OpenBSD

Changes

  • Symbolic link loops are now treated like other broken links, rather than an error

  • ./configure now expects --with-libacl, --without-libcap, etc. rather than --enable-/--disable-

  • The (space) flag is now restricted to numeric -printf specifiers

Bug fixes

  • -regextype emacs now supports shy (non-capturing) groups

  • Fixed -status bar visual corruption when the terminal is resized

  • bfs now prints a reset escape sequence when terminated by a signal in the middle of colored output (#138)

  • ./configure CFLAGS=... no longer overrides flags from pkg-config during configuration

Version 3.2

02 May 17:20
3.2
Compare
Choose a tag to compare

New features

  • New -limit N action that quits immediately after N results

  • Implemented -context (from GNU find) for matching SELinux contexts (#27)

  • Implemented -printf %Z for printing SELinux contexts

Changes

  • The build system has been rewritten, and there is now a configure step:

    $ ./configure
    $ make
    

    See ./configure --help or docs/BUILDING.md for more details.

  • Improved platform support

    • Implemented -acl on Solaris/Illumos
    • Implemented -xattr on DragonFly BSD

Bug fixes

  • Fixed some rarely-used code paths that clean up after allocation failures

Version 3.1.3

07 Mar 00:21
3.1.3
Compare
Choose a tag to compare

Bug fixes

  • On Linux, the io_uring feature probing introduced in bfs 3.1.2 only applied to one thread, causing all other threads to avoid using io_uring entirely. The probe results are now copied to all threads correctly. (f64f76b)

Version 3.1.2

29 Feb 19:21
3.1.2
Compare
Choose a tag to compare

Bug fixes

  • On Linux, we now check for supported io_uring operations before using them, which should fix bfs on 5.X series kernels that support io_uring but not all of openat()/close()/statx() (8bc72d6)

  • Fixed a test failure triggered by certain filesystem types for /tmp (#131)

  • Fixed parsing and interpretation of timezone offsets for explicit reference times used in -*since and -newerXt (a9f3cde)

  • Fixed the build on m68k (c749c11)