Releases: tavianator/bfs
Version 4.0.4
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
- @ryandesign made their first contribution in #144
- @jody-frankowski made their first contribution in #146
Full Changelog: 4.0.3...4.0.4
Version 4.0.3
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 sendingSIGINFO
/SIGUSR1
to toggle the status bar. (39ff273
) -
Fixed a hang present since bfs 3.0 colorizing paths like
notdir/file
, wherenotdir
is a symlink pointing to a non-directory file. (b89f22cb
)
Version 4.0.2
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 sincebfs
4.0 (07ae989
) -
Fixed compiler flag auto-detection on systems with non-GNU
sed
. This fixes a potential race condition on FreeBSD sincebfs
4.0 due to the switch to_Fork()
without passing-z now
to the linker. (34e6081
) -
Fixed
$MAKE distcheck
when$MAKE
is notmake
, 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 \)
sincebfs
3.1. Release builds were not affected, since their assertions are disabled and the behaviour was otherwise correct. (b1a9998
)
Version 4.0.1
Bug fixes
bfs
no longer prints a "suppressed errors" warning unless-noerror
is actually suppressing errors5d03c9d
Version 4.0
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 BSDfind
, contrary to the behaviour of GNUfind
. (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
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 likebfs
prior to 3.3 and otherfind
implementations, as required by POSIX.
Version 3.3
New features
-
The
-status
bar can now be toggled bySIGINFO
(Ctrl+T) on systems that support it, andSIGUSR1
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
-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 frompkg-config
during configuration
Version 3.2
New features
-
New
-limit N
action that quits immediately afterN
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
- Implemented
Bug fixes
- Fixed some rarely-used code paths that clean up after allocation failures
Version 3.1.3
Bug fixes
- On Linux, the
io_uring
feature probing introduced inbfs
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
Bug fixes
-
On Linux, we now check for supported
io_uring
operations before using them, which should fixbfs
on 5.X series kernels that supportio_uring
but not all ofopenat()
/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
)