Changes:
5.1
---
- Detect files moved to or from directories on Linux
- Allow detection of directory entries beginning with '.' by specifying '-d' twice
- Only reset terminal settings in exit handler if settings were changed
Changes:
5.0
---
- Add missing call to getrlimit(3) on MacOS
- Eliminate memory management warnings on Linux
- EV_TRACE prints file mode and file name
- Ignore asynchronous attribute changes on MacOS 11
== 4.9: May 3, 2021
- EV_TRACE also prints file/notify descriptor limit
- Don't raise rlim_cur on MacOS
- Set 2^16 watches if inotify limits cannot be read
- Raise an error and suggest '-n' if terminal attributes cannot be read
Changes:
4.8
---
- Set a maximum of 2^19 watches to guard against absurd file open limits on
MacOS
- Use control sequences to clear the display and specify '-c' twice to erase
the scrollback buffer
4.7
---
- Use system file descriptor limits when max_user_watches is not accessible
- Return the exit status of the child process when the '-z' option is used
- Handle SIGHUP so child process are terminated when a terminal is closed
- More accurately return shell exit code using '-s' option
pkgsrc changes:
- Remove patch-entr.c that was shared and applied upstream
Changes:
4.6
---
- Always call waitpid(2) to avoid dead processes
- Duplicate STDIN file descriptor before closing; for the '-r' option
system_test.sh has several other bash-isms and we already needed bash
for testing, but, the way it was required triggered the portability
checks. Remove patch-system__test.sh accordingly.
Changes:
4.4
---
- Use a single inotify queue on Linux, limited by
/proc/sys/fs/inotify/max_user_watches
- Set the environment variable `ENTR_INOTIFY_WORKAROUND` to enable a
compatibility mode for platforms with deformed inotify support
pkgsrc changes:
- Update HOMEPAGE and MASTER_SITES to current ones
Changes:
== 4.3: September 25, 2019
- Move hosting from bitbucket.org to github.com
- Rename tag names from entr-X.Y to X.Y
- Replace hg with git as a dependency for system-test.sh
== 4.2: March 28, 2019
- Use pledge(2) on OpenBSD
- New '-a' option enables response to events that occur while the utility is
running
- Error messages direct users to http://eradman.com/entrproject/limits.html
- Correctly report error when a file cannot be reopened
- New '-n' non-interactive option disables keyboard input
- EV_TRACE environment variable enables file system event tracing
- Track changes to the inode number as a workaround for missing delete
events on the Linux kernel
- Warn instead of error if kqueue fails to register on STDIN
- Close STDIN before running the utility when the restart option is used
- Restore terminal settings if terminated by a signal
Changes:
== 3.7: February 27, 2017
- Terminate subprocess in restart mode if a file under watch disappears
- Allow NOTE_ATTRIB to set '/_' only if file mode changes
- New '-s' option executes commands using $SHELL -c
- Print usage and exit if input is from a terminal instead of a pipe
Makefile.{linux,macos} MAKE_FILEs will set their MANPREFIX differently to the
one defined in Makefile.bsd)
No functional changes intended for Makefile.bsd MAKE_FILE OPSYSs
(and so no PKGREVISION bump).
pkgsrc changes:
- Fix minor pkglint warnings (bad indentation)
- Take MAINTAINERship
Changes:
== 3.6: July 01, 2016
- Do not print warning if _TTY_PATH cannot be opened (for chroot, docker, ...)
- Non-existent input files produce a warning instead of an error
- Trigger run when permissions change on regular files
-----------------------------
== 3.5: April 01, 2016
- Removed contrib/*
- Detect new subdirectories on Linux
- Direct users to http://entrproject.org/limits.html if inotify hits a kernel
limit
pkgsrc changes:
- Add a LICENSE (isc, but there are also some third parties code used by entr
that are under a 2-clause-bsd)
- Do not disturb the provided configure script (that just copy the
Makefile.platform to Makefile) and just include the proper MAKE_FILE
depending on OPSYS. (thanks to jperkin@ and tnn@ for misc suggestions)
This will hopefully fix build problems for operating systems where entr
previously failed to build.
- Add a TEST_TARGET in order to run the unit test provided
- Delete patches/patch-Makefile.bsd, imported upstream
Changes:
== 3.4: December 12, 2015
- Terminate the child process before exiting when the reload option is combined
with the directory watch option
- Direct users to http://entrproject.org/limits.html if the maximum number of
open files is exceeded
== 3.3: October 23, 2015
- Substitute '/_' only with regular files when using the directory watch option
- Bugfix when tracking the first file to change
- Display release number along with usage
== 3.2: April 9, 2015
- Execute the utility immediately after registering watch events. Old behavior
is restored using new postpone option ('-p')
- Relocated 'reload-browser' to http://entrproject.org/scripts/reload-browser
- Drop FIFO support to further simply code and documentation. FIFO mode was
conceptually good, but EXEC mode is intelligent hand easily handles the vast
majority of use cases.
- Remove kFreeBSD as a target platform
== 3.1: March 4, 2015
- Return error code indicating exit reason after handling signals
- Restart mode sets process group to ensure that wrapper scripts do not prevent
signals from reaching child processes
- Removed DEBUG printf statements
== 3.0: December 19, 2014
- Man page highlights the flexibility of executing a commands using a shell
- 'reload-browser', a cross-platform script for reloading the current tab in
one or more browsers
- system_test.sh auto-upgrades to bash if the default shell does not support
the ERR trap
- Workaround implemented for Linux using fstat(2) to detect if a binary was
removed if inotify issues IN_ATTRIB but not IN_DELETE_SELF
- Use calloc(3) to take advantage of overflow detection
== 2.9: June 10, 2014
- RPM package by @funollet
- Moved alternate Makefiles to contrib/
- Trigger actions when a file is truncated on BSD
- Improved format of DEBUG messages
- Added missing extern for missing/fmemopen.c to avoid warning on MacOS 10.7+
- No longer register NOTE_EXTEND; this event is not always merged with
NOTE_WRITE on MacOS
- New directory-watch option ('-d'). In this mode a shell while-loop can be
used to track the addition of new files.
== 2.8: March 15, 2014
- Iteratively check for new file system events using a 1ms timeout after a file
has been renamed or removed in order to prevent the utility from being
executed before successive changes from a version control system have
completed.
- Regression tests are now system tests that depend on and use Vim and
Mercurial
- Timing on regression tests has been tightened to only support real hardware;
they are not expected to pass in emulated environments.
- More correctly identify the first file to trigger a file change notification
- Regression tests no longer require ksh
- Renamed regress.sh to system_test.sh
== 2.7: February 12, 2014
- Changed function pointer prefixes from '_' to 'x' to avoid runtime symbol
collisions in libc. Required to build on DragonFlyBSD
- Added this NEWS file to provide detailed release history for port maintainers
- Subsitute '/_' argument with the first file that changed
- Man page formatted with more semantically correct markup
- Multiple events on the same file are merged on Linux to prevent duplicate
writes to a named pipe
== 2.6: January 23, 2014
- Added -c option to clear the screen before calling execvp(3)
- Changed command line option '{}' to '/_'
- Renamed Makefile.linux-lbsd to Makefile.debian
- Include CPPFLAGS since some build systems (namely Debian) use it to specify
hardening options
- Raise ARG_MAX from 4K to 2MB on Linux, since _SC_ARG_MAX returns an incorrect
value on Linux
- Handle RENAME events that are not followed by DELETE. This enables us to cope
with the backup option in Vim.
== 2.5: December 30, 2013
- Restore full 50ms period for consolidating events on Linux. Required for the
Geany editor
- Remove use of setproctitle(3), no plans to implement this on Linux and MacOS.
This also eliminates use of the 3-clause license
- New feature: the first occurrence of '{}' on the command line will be
replaced with the name of the first file under watch
- Set PAGER to an absolute path (/bin/cat)
- Prevent interactive utilities from paging output
== 2.4: December 18, 2013
- Reintroduce ${DESTDIR} for STAGEDIR installation on FreeBSD and pkgsrc
- License file describes the copyright holders for the compatibility libraries
== 2.3: December 12, 2013
- Wait for processes to terminate in restart mode
- Set process title for blocking events
- Correct multiple bugs in the inotify->kqueue translation layer
- Print out detailed instructions if the user provides configure arguments
- Remove ${DESTDIR} from Makefile which appears to interfere with OpenBSD ports
- The handler for SIGSEGV prints file name and line number if a unit test fails
- Reduce the number of attempts to re-open files to 10 (total of 1 second)
- Define architecture in Makefile instead of testing for __linux or __APPLE__
== 2.2: August 07, 2013
- Process every delete or rename event to ensure files remain tracked
- Always process DELETE or RENAME events to prevent a files from escaping watch
- inotify(7) events are consolidated for a duration of 50ms as a workaround for
an apparent bug in glib/gio where a file is written and then removed
- Execute mode can run a file under watch by retrying if text file is busy
- Exit non-zero if list of regular files exceeds the hard limit set by the
current login class
- Ignore directories and special files; exit with error code 1 if no regular
files are provided as input.
== 2.1: July 01, 2013
- Zero-dependency build on Linux using built-in compatibility layer
- Add poll with optional timeout in order to prevent change events from
accumulating while running a command
- Invalidate file->fd after inotify event is closed. Do not respond to
IN_MOVE_SELF since this event only occurs on Linux NFS mounts
- Optional build on GNU/Linux using external compatibility libraries libkqueue
and libbsd
- Fix bug in finding the correct filename to write to a FIFO
- Correct build on MacOS
== 2.0: June 17, 2013
- Support for old architectures without C99 support
- More aggressively remove duplicate events
- install/uninstall uses DESTDIR to be compatible with pkgsrc
Problems found with existing digests:
Package memconf distfile memconf-2.16/memconf.gz
b6f4b736cac388dddc5070670351cf7262aba048 [recorded]
95748686a5ad8144232f4d4abc9bf052721a196f [calculated]
Problems found locating distfiles:
Package dc-tools: missing distfile dc-tools/abs0-dc-burn-netbsd-1.5-0-gae55ec9
Package ipw-firmware: missing distfile ipw2100-fw-1.2.tgz
Package iwi-firmware: missing distfile ipw2200-fw-2.3.tgz
Package nvnet: missing distfile nvnet-netbsd-src-20050620.tgz
Package syslog-ng: missing distfile syslog-ng-3.7.2.tar.gz
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.