Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package entr for openSUSE:Factory checked in at 2021-07-05 22:22:46 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/entr (Old) and /work/SRC/openSUSE:Factory/.entr.new.2625 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "entr" Mon Jul 5 22:22:46 2021 rev:10 rq:903985 version:5.0 Changes: -------- --- /work/SRC/openSUSE:Factory/entr/entr.changes 2021-03-02 12:45:30.148357892 +0100 +++ /work/SRC/openSUSE:Factory/.entr.new.2625/entr.changes 2021-07-05 22:23:05.561669614 +0200 @@ -1,0 +2,12 @@ +Sun Jul 4 11:56:13 UTC 2021 - Martin Hauke <[email protected]> + +- Update to version 5.0 + * Eliminate memory management warnings on Linux. + * EV_TRACE prints file mode and file name. +- Update to version 4.8 + * EV_TRACE also prints file/notify descriptor limit. + * Set 2^16 watches if inotify limits cannot be read. + * Raise an error and suggest '-n' if terminal attributes cannot + be read. + +------------------------------------------------------------------- Old: ---- entr-4.8.tar.gz entr-4.8.tar.gz.sig New: ---- entr-5.0.tar.gz entr-5.0.tar.gz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ entr.spec ++++++ --- /var/tmp/diff_new_pack.LDkLJG/_old 2021-07-05 22:23:06.001666209 +0200 +++ /var/tmp/diff_new_pack.LDkLJG/_new 2021-07-05 22:23:06.005666178 +0200 @@ -18,7 +18,7 @@ Name: entr -Version: 4.8 +Version: 5.0 Release: 0 Summary: A utility for running arbitrary commands when files change License: ISC ++++++ entr-4.8.tar.gz -> entr-5.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/entr-4.8/Makefile.bsd new/entr-5.0/Makefile.bsd --- old/entr-4.8/Makefile.bsd 2021-02-26 21:02:29.000000000 +0100 +++ new/entr-5.0/Makefile.bsd 2021-07-02 16:50:26.000000000 +0200 @@ -1,6 +1,6 @@ PREFIX ?= /usr/local MANPREFIX ?= ${PREFIX}/man -RELEASE = 4.8 +RELEASE = 5.0 CPPFLAGS += -DRELEASE=\"${RELEASE}\" all: versioncheck entr @@ -17,10 +17,10 @@ @./system_test.sh entr: entr.c ${EXTRA_SRC} - ${CC} ${CFLAGS} ${CPPFLAGS} ${EXTRA_SRC} entr.c -o $@ ${LDFLAGS} + ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} ${EXTRA_SRC} entr.c -o $@ entr_spec: entr_spec.c entr.c ${EXTRA_SRC} - ${CC} ${CFLAGS} ${CPPFLAGS} ${EXTRA_SRC} entr_spec.c -o $@ ${LDFLAGS} + ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} ${EXTRA_SRC} entr_spec.c -o $@ clean: rm -f entr entr_spec *.o diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/entr-4.8/NEWS new/entr-5.0/NEWS --- old/entr-4.8/NEWS 2021-02-26 21:02:29.000000000 +0100 +++ new/entr-5.0/NEWS 2021-07-02 16:50:26.000000000 +0200 @@ -1,5 +1,19 @@ = Release History +== 5.0: July 2, 2021 + + - 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 + == 4.8: February 26, 2021 - Set a maximum of 2^19 watches to guard against absurd file open limits on @@ -28,7 +42,7 @@ - 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 + - Set the environment variable 'ENTR_INOTIFY_WORKAROUND' to enable a compatibility mode for platforms with deformed inotify support == 4.3: September 25, 2019 @@ -109,7 +123,7 @@ - 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. + majority of use cases - Remove kFreeBSD as a target platform == 3.1: March 4, 2015 @@ -132,7 +146,6 @@ == 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 @@ -140,7 +153,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. + used to track the addition of new files == 2.8: March 15, 2014 @@ -148,20 +161,18 @@ - 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 + completed + - Regression tests 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. + 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 + - Renamed regress.sh to system_test.sh, and drop dependency on ksh == 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 + - Add 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 @@ -177,13 +188,13 @@ - 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. + 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. + - 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 @@ -216,7 +227,7 @@ - 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. + files are provided as input == 2.1: July 01, 2013 @@ -238,7 +249,7 @@ == 1.9: April 13, 2013 - - New auto-reload option ('-r'). Thanks for Kevin Cox for the idea + - New auto-reload option ('-r') - Add a simple configure script, BSD is the default - Do not install directories...they should already exist - Man page installation path can be set with MANPATH. MacOS expects it to be @@ -273,8 +284,8 @@ == 1.3: May 17, 2012 - - Added FIFO support. Thanks to James K. Lowden for the idea - - Use min(OPEN_MAX, rl.rlim_max) to be more compatible of Mac OS. + - Added FIFO support + - Use min(OPEN_MAX, rl.rlim_max) to be more compatible of Mac OS - More correct use of fgets(3) when reading STDIN == 1.2: April 26, 2012 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/entr-4.8/README.md new/entr-5.0/README.md --- old/entr-4.8/README.md 2021-02-26 21:02:29.000000000 +0100 +++ new/entr-5.0/README.md 2021-07-02 16:50:26.000000000 +0200 @@ -36,19 +36,19 @@ Launch and auto-reload a node.js server: - $ find . -name '*.js' | entr -r node app.js + $ ls *.js | entr -r node app.js Clear the screen and run a query after the SQL script is updated: - $ echo my.sql | entr -p psql -f /_ + $ echo my.sql | entr -cp psql -f /_ Rebuild project if a source file is modified or added to the src/ directory: - $ while sleep 0.1; do find src -name '*.rb' | entr -d make; done + $ while sleep 0.1; do ls src/*.rb | entr -d make; done -Self-terminate after a file is updated +Auto-reload a web server, or terminate if the server exits - $ find . -type f | entr -p 'kill $PPID' + $ ls * | entr -rz ./httpd News ---- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/entr-4.8/entr.1 new/entr-5.0/entr.1 --- old/entr-4.8/entr.1 2021-02-26 21:02:29.000000000 +0100 +++ new/entr-5.0/entr.1 2021-07-02 16:50:26.000000000 +0200 @@ -13,7 +13,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd February 18, 2021 +.Dd July 2, 2021 .Dt ENTR 1 .Os .Sh NAME @@ -124,21 +124,22 @@ .Aq Cm control-C . .El .Sh ENVIRONMENT -If -.Ev PAGER -is undefined, -.Nm -will assign +.Bl -tag -width "ENTR_ENVIRON" +.It Ev PAGER +Set to .Pa /bin/cat +by default to prevent interactive utilities from waiting for keyboard input if output does not fit on the screen. -.Pp -If -.Ev SHELL -is undefined, -.Nm entr -will use +.It Ev SHELL +Specify the shell to use with the +.Fl s +flag. +The default is .Pa /bin/sh . +.It Ev EV_TRACE +Print file system event messages. +.El .Sh EXIT STATUS If the .Fl z diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/entr-4.8/entr.c new/entr-5.0/entr.c --- old/entr-4.8/entr.c 2021-02-26 21:02:29.000000000 +0100 +++ new/entr-5.0/entr.c 2021-07-02 16:50:26.000000000 +0200 @@ -106,7 +106,6 @@ int main(int argc, char *argv[]) { struct rlimit rl; - rlim_t max_watches; int kq; struct sigaction act; int ttyfd; @@ -114,7 +113,7 @@ int n_files; int i; struct kevent evSet; - long open_max; + unsigned open_max; if ((*test_runner_main)) return(test_runner_main(argc, argv)); @@ -159,28 +158,29 @@ if (sigaction(SIGCHLD, &act, NULL) != 0) err(1, "Failed to set SIGCHLD handler"); - getrlimit(RLIMIT_NOFILE, &rl); - #if defined(_LINUX_PORT) - max_watches = (rlim_t)fs_sysctl(INOTIFY_MAX_USER_WATCHES); - if(max_watches > 0) { - rl.rlim_cur = max_watches; - open_max = max_watches; - goto rlim_set; - } -#endif - /* raise soft limit */ - open_max = min(sysconf(_SC_OPEN_MAX), (long)rl.rlim_max); - if (open_max == -1) - err(1, "_SC_OPEN_MAX"); - - open_max = min(524288, open_max); /* guard against unrealistic replies */ - + /* attempt to read inotify limits */ + open_max = (unsigned)fs_sysctl(INOTIFY_MAX_USER_WATCHES); + if (open_max == 0) + open_max = 65536; +#elif defined(_MACOS_PORT) + if (getrlimit(RLIMIT_NOFILE, &rl) == -1) + err(1, "getrlimit"); + /* guard against unrealistic replies */ + open_max = min(65536, (unsigned)rl.rlim_cur); + if (open_max == 0) + open_max = 65536; +#else /* BSD */ + if (getrlimit(RLIMIT_NOFILE, &rl) == -1) + err(1, "getrlimit"); + open_max = (unsigned)rl.rlim_max; rl.rlim_cur = (rlim_t)open_max; if (setrlimit(RLIMIT_NOFILE, &rl) != 0) - err(1, "setrlimit cannot set rlim_cur to %ld", open_max); + err(1, "setrlimit cannot set rlim_cur to %u", open_max); +#endif -rlim_set: + if (getenv("EV_TRACE")) + fprintf(stderr, "open_max: %d\n", open_max); /* prevent interactive utilities from paging output */ setenv("PAGER", "/bin/cat", 0); @@ -204,7 +204,7 @@ errx(1, "No regular files to watch"); if (n_files == -1) errx(1, "Too many files listed; the hard limit for your login" - " class is %ld. Please consult" + " class is %u. Please consult" " http://eradman.com/entrproject/limits.html", open_max); for (i=0; i<n_files; i++) watch_file(kq, files[i]); @@ -219,7 +219,8 @@ } /* remember terminal settings */ - tcgetattr(STDIN_FILENO, &canonical_tty); + if (tcgetattr(STDIN_FILENO, &canonical_tty) == -1) + errx(1, "unable to get terminal attributes, use '-n' to run non-interactively"); /* Use keyboard input as a trigger */ EV_SET(&evSet, STDIN_FILENO, EVFILT_READ, EV_ADD, NOTE_LOWAT, 1, NULL); @@ -261,7 +262,7 @@ void handle_exit(int sig) { if (!noninteractive_opt) - xtcsetattr(0, TCSADRAIN, &canonical_tty); + xtcsetattr(STDIN_FILENO, TCSADRAIN, &canonical_tty); terminate_utility(); if ((sig == SIGINT || sig == SIGHUP)) exit(0); @@ -417,7 +418,7 @@ char **new_argv; char *p, *arg_buf; int argc; - int stdin_pipe[2]; + int stdin_pipe[2] = {0, 0}; if (restart_opt == 1) { terminate_utility(); @@ -587,7 +588,6 @@ struct stat sb; char c; struct termios character_tty; - char *trace_message; leading_edge = files[0]; /* default */ if (postpone_opt == 0) @@ -601,7 +601,7 @@ main: if (!noninteractive_opt) - xtcsetattr(0, TCSADRAIN, &character_tty); + xtcsetattr(STDIN_FILENO, TCSADRAIN, &character_tty); if ((reopen_only == 1) || (collate_only == 1)) { nev = xkevent(kq, NULL, 0, evList, 32, &evTimeout); } @@ -640,7 +640,7 @@ dir_modified += compare_dir_contents(file); } if (!noninteractive_opt) - xtcsetattr(0, TCSADRAIN, &canonical_tty); + xtcsetattr(STDIN_FILENO, TCSADRAIN, &canonical_tty); collate_only = 0; for (i=0; i<nev; i++) { @@ -668,7 +668,6 @@ } for (i=0; i<nev && reopen_only == 0; i++) { - trace_message = ""; if (evList[i].filter != EVFILT_VNODE) continue; @@ -690,27 +689,30 @@ if (file->mode != sb.st_mode) { do_exec = 1; file->mode = sb.st_mode; - trace_message = "mode changed"; } /* Possible on Linux when a running binary is unlinked */ if (file->ino != sb.st_ino) { do_exec = 1; file->ino = sb.st_ino; - trace_message = "inode changed"; } } else if (evList[i].fflags & NOTE_ATTRIB) continue; - if ((file->is_dir == 0) && (leading_edge_set == 0)) { + if ((leading_edge_set == 0) && + (file->is_dir == 0) && + (do_exec == 1)) { leading_edge = file; leading_edge_set = 1; } if (getenv("EV_TRACE")) { - fprintf(stderr, "EVFILT_VNODE: %d/%d: " - "fflags: 0x%x %s\n", i, nev, evList[i].fflags, - trace_message); + fprintf(stderr, "%d/%d: fflags: 0x%x %s %o %s\n", + i, nev, + evList[i].fflags, + file->is_dir ? "d" : "r", + file->mode, + file->fn); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/entr-4.8/missing/kqueue_inotify.c new/entr-5.0/missing/kqueue_inotify.c --- old/entr-4.8/missing/kqueue_inotify.c 2021-02-26 21:02:29.000000000 +0100 +++ new/entr-5.0/missing/kqueue_inotify.c 2021-07-02 16:50:26.000000000 +0200 @@ -57,7 +57,7 @@ fs_sysctl(const int name) { FILE *file; char line[8]; - int value; + int value = 0; switch(name) { case INOTIFY_MAX_USER_WATCHES: @@ -114,18 +114,17 @@ struct inotify_event *iev; u_int fflags; const struct kevent *kev; - int ignored; - struct pollfd *pfd; int nfds; - pfd = calloc(2, sizeof(struct pollfd)); + int ignored = 0; + struct pollfd pfd[2]; + pfd[0].fd = kq; pfd[0].events = POLLIN; pfd[1].fd = STDIN_FILENO; pfd[1].events = POLLIN; if (nchanges > 0) { - ignored = 0; for (n=0; n<nchanges; n++) { kev = changelist + (sizeof(struct kevent)*n); file = (WatchFile *)kev->udata; @@ -230,6 +229,5 @@ } while ((poll(pfd, nfds, 50) > 0)); - free(pfd); return n; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/entr-4.8/system_test.sh new/entr-5.0/system_test.sh --- old/entr-4.8/system_test.sh 2021-02-26 21:02:29.000000000 +0100 +++ new/entr-5.0/system_test.sh 2021-07-02 16:50:26.000000000 +0200 @@ -221,25 +221,29 @@ fi try "exec single utility when an entire stash of files is reverted" - setup - cp /usr/include/*.h $tmp/ - cd $tmp - git init -q - git add *.h - git commit -m "initial checkin" -q - for f in `ls *.h | head`; do - chmod 644 $f - echo "" >> $f - done - cd - > /dev/null ; zz - ls $tmp/*.h | ./entr -p echo "changed" > $tmp/exec.out & - bgpid=$! ; zz - cd $tmp - git checkout *.h -q - cd - > /dev/null ; zz - kill -INT $bgpid - wait $bgpid || assert "$?" "130" - assert "$(cat $tmp/exec.out)" "changed" + if [ ! -d /usr/include ]; then + skip "Operating system does not include files in a standard location" + else + setup + cp /usr/include/*.h $tmp/ + cd $tmp + git init -q + git add *.h + git commit -m "initial checkin" -q + for f in `ls *.h | head`; do + chmod 644 $f + echo "" >> $f + done + cd - > /dev/null ; zz + ls $tmp/*.h | ./entr -p echo "changed" > $tmp/exec.out & + bgpid=$! ; zz + cd $tmp + git checkout *.h -q + cd - > /dev/null ; zz + kill -INT $bgpid + wait $bgpid || assert "$?" "130" + assert "$(cat $tmp/exec.out)" "changed" + fi try "exec utility when a file is written by Vim" setup
