Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package entr for openSUSE:Factory checked in at 2023-09-10 13:11:17 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/entr (Old) and /work/SRC/openSUSE:Factory/.entr.new.1766 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "entr" Sun Sep 10 13:11:17 2023 rev:14 rq:1110017 version:5.4 Changes: -------- --- /work/SRC/openSUSE:Factory/entr/entr.changes 2023-01-23 18:32:06.344119210 +0100 +++ /work/SRC/openSUSE:Factory/.entr.new.1766/entr.changes 2023-09-10 13:12:34.727588812 +0200 @@ -1,0 +2,12 @@ +Fri Sep 8 09:23:42 UTC 2023 - Andrea Manzini <andrea.manz...@suse.com> + +- Update to version 5.4 + * 'make test' runs a quick smoketest, 'make check' runs regressions + * Set IN_CLOEXEC only for inotify_init, kqueue uses similar setting by default + * Unconditionally try to set soft file limit to 2^16 on MacOS + * Use non-reentrant calls sparingly in signal handlers + * configure: use TARGET_OS to override the output of uname(1) + +- added only basic smoke test + +------------------------------------------------------------------- Old: ---- entr-5.3.tar.gz entr-5.3.tar.gz.sig New: ---- entr-5.4.tar.gz entr-5.4.tar.gz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ entr.spec ++++++ --- /var/tmp/diff_new_pack.4WDHkn/_old 2023-09-10 13:12:35.819627827 +0200 +++ /var/tmp/diff_new_pack.4WDHkn/_new 2023-09-10 13:12:35.819627827 +0200 @@ -18,7 +18,7 @@ Name: entr -Version: 5.3 +Version: 5.4 Release: 0 Summary: A utility for running arbitrary commands when files change License: ISC @@ -46,6 +46,9 @@ export MANPREFIX=%{_mandir} %make_install +%check +make test + %files %license LICENSE %doc NEWS README.md ++++++ entr-5.3.tar.gz -> entr-5.4.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/entr-5.3/Makefile.bsd new/entr-5.4/Makefile.bsd --- old/entr-5.3/Makefile.bsd 2023-01-20 18:36:23.000000000 +0100 +++ new/entr-5.4/Makefile.bsd 2023-08-01 21:48:53.000000000 +0200 @@ -1,21 +1,21 @@ PREFIX ?= /usr/local MANPREFIX ?= ${PREFIX}/man -RELEASE = 5.3 +RELEASE = 5.4 CPPFLAGS += -DRELEASE=\"${RELEASE}\" all: versioncheck entr test: entr + ls entr.1 | ./entr -zns 'wc $$0' + +check: entr ./system_test.sh entr: entr.c ${EXTRA_SRC} ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} ${EXTRA_SRC} entr.c -o $@ -entr_spec: entr_spec.c entr.c ${EXTRA_SRC} - ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} ${EXTRA_SRC} entr_spec.c -o $@ - clean: - rm -f entr entr_spec *.o + rm -f entr distclean: clean rm -f Makefile @@ -33,4 +33,4 @@ versioncheck: @head -n3 NEWS | egrep -q "^= Next Release: ${RELEASE}|^== ${RELEASE}: " -.PHONY: all test gcc-lint regress clean distclean install uninstall versioncheck +.PHONY: all test check clean distclean install uninstall versioncheck diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/entr-5.3/NEWS new/entr-5.4/NEWS --- old/entr-5.3/NEWS 2023-01-20 18:36:23.000000000 +0100 +++ new/entr-5.4/NEWS 2023-08-01 21:48:53.000000000 +0200 @@ -1,5 +1,13 @@ = Release History +== 5.4: August 1, 2023 + + - 'make test' runs a quick smoketest, 'make check' runs regressions + - Set IN_CLOEXEC only for inotify_init, kqueue uses similar setting by default + - Unconditionally try to set soft file limit to 2^16 on MacOS + - Use non-reentrant calls sparingly in signal handlers + - configure: use TARGET_OS to override the output of uname(1) + == 5.3: January 20, 2023 - Symlink changes detected on Linux by setting 'ENTR_INOTIFY_SYMLINK' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/entr-5.3/README.md new/entr-5.4/README.md --- old/entr-5.3/README.md 2023-01-20 18:36:23.000000000 +0100 +++ new/entr-5.4/README.md 2023-08-01 21:48:53.000000000 +0200 @@ -1,9 +1,9 @@ Event Notify Test Runner ======================== -A utility for running arbitrary commands when files change. Uses [kqueue(2)] or -[inotify(7)] to avoid polling. `entr` was written to make rapid feedback and -automated testing natural and completely ordinary. +A utility for running arbitrary commands when files change. Uses kqueue(2) or +inotify(7) to avoid polling. `entr` was written to facilitate rapid feedback +on the command line. Source Installation - BSD, Mac OS, and Linux -------------------------------------------- @@ -17,9 +17,9 @@ Docker and WSL -------------- -Incomplete inotify support on Windows Subsystem for Linux and Docker for Mac can -cause `entr` to respond inconsistently. Setting the environment variable -`ENTR_INOTIFY_WORKAROUND` will enable `entr` to operate in these environments. +Incomplete inotify support on _Windows Subsystem for Linux_ and _Docker for Mac_ +may cause `entr` to respond incorrectly. Setting the environment variable +`ENTR_INOTIFY_WORKAROUND` enables `entr` to operate in these environments. Linux Features -------------- @@ -32,7 +32,7 @@ Rebuild a project if source files change, limiting output to the first 20 lines: - $ find src/ | entr sh -c 'make | head -n 20' + $ find src/ | entr -s 'make | head -n 20' Launch and auto-reload a node.js server: @@ -55,6 +55,3 @@ A release history as well as features in the upcoming release are covered in the [NEWS](NEWS) file. - -[kqueue(2)]: http://man.openbsd.org/kqueue.2 -[inotify(7)]: http://man.he.net/?section=all&topic=inotify diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/entr-5.3/configure new/entr-5.4/configure --- old/entr-5.3/configure 2023-01-20 18:36:23.000000000 +0100 +++ new/entr-5.4/configure 2023-08-01 21:48:53.000000000 +0200 @@ -1,28 +1,32 @@ #!/bin/sh copy_mk() { - cmd="cp Makefile.$1 Makefile" - echo "$cmd"; $cmd + cmd="cp Makefile.$1 Makefile" + echo "+ $cmd"; $cmd } -case `uname` in - Darwin) copy_mk macos ;; - Linux) copy_mk linux ;; - *) copy_mk bsd ;; -esac - -[ $# = 0 ] && exit 0 - -cat <<HELP -Adjust build options by setting the following environment variables: - -`make env` - -Example: build a static binary and install to your home directory - -./configure -CFLAGS="-static" make -PREFIX=\$HOME/local make install +usage() { + cat <<-HELP + Usage: configure [-h] + Example: build a static binary and install to your home directory + + ./configure + CFLAGS="-static" make + PREFIX=\$HOME/local make install + HELP + exit 1 +} -HELP -exit 1 +while [ $# -gt 0 ]; do + case $1 in + -h) usage ;; + *) echo "configure: unused argument: $1" ;; + esac + shift +done + +case "${TARGET_OS:-`uname`}" in + Darwin) copy_mk macos ;; + Linux) copy_mk linux ;; + *) copy_mk bsd ;; +esac diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/entr-5.3/entr.1 new/entr-5.4/entr.1 --- old/entr-5.3/entr.1 2023-01-20 18:36:23.000000000 +0100 +++ new/entr-5.4/entr.1 2023-08-01 21:48:53.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 January 20, 2023 +.Dd August 1, 2023 .Dt ENTR 1 .Os .Sh NAME @@ -165,7 +165,7 @@ .Sh EXAMPLES Rebuild a project if source files change, limiting output to the first 20 lines: .Pp -.Dl $ find src/ | entr -s 'make | sed 20q' +.Dl $ find src/ | entr -s 'make | head -n 20' .Pp Launch and auto-reload a node.js server: .Pp diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/entr-5.3/entr.c new/entr-5.4/entr.c --- old/entr-5.3/entr.c 2023-01-20 18:36:23.000000000 +0100 +++ new/entr-5.4/entr.c 2023-08-01 21:48:53.000000000 +0200 @@ -69,6 +69,8 @@ int termios_set; struct termios canonical_tty; +static char *shell, *shell_base; + /* forwards */ static void usage(); @@ -135,8 +137,12 @@ err(1, "getrlimit"); /* guard against unrealistic replies */ open_max = min(65536, (unsigned)rl.rlim_cur); - if (open_max == 0) - open_max = 65536; + /* maxfiles is ulimited on modern MacOS */ + if (open_max < 65536) { + rl.rlim_cur = (rlim_t)65536; + if (setrlimit(RLIMIT_NOFILE, &rl) == 0 || open_max == 0) + open_max = 65536; + } #else /* BSD */ if (getrlimit(RLIMIT_NOFILE, &rl) == -1) err(1, "getrlimit"); @@ -155,15 +161,18 @@ /* ensure a shell is available to use */ setenv("SHELL", "/bin/sh", 0); + shell = getenv("SHELL"); + shell_base = strdup(shell); + if (shell_base == NULL) + err(1, "cannot duplicate string"); + shell_base = basename(shell_base); + /* sequential scan may depend on a 0 at the end */ files = calloc(open_max+1, sizeof(WatchFile *)); if ((kq = kqueue()) == -1) err(1, "cannot create kqueue"); - if (fcntl(kq, F_SETFD, FD_CLOEXEC) == -1) - warn("failed to set FD_CLOEXEC to kqueue descriptor"); - /* expect file list from a pipe */ if (isatty(fileno(stdin))) usage(); @@ -236,7 +245,7 @@ terminate_utility(); if ((sig == SIGINT || sig == SIGHUP)) - exit(0); + _exit(0); else raise(sig); } @@ -244,6 +253,7 @@ void proc_exit(int sig) { int status; + int saved_errno = errno; if ((!noninteractive_opt) && (termios_set)) tcsetattr(STDIN_FILENO, TCSADRAIN, &canonical_tty); @@ -256,20 +266,26 @@ print_child_status(child_status); if WIFSIGNALED(child_status) - exit(128 + WTERMSIG(child_status)); + _exit(128 + WTERMSIG(child_status)); else - exit(WEXITSTATUS(child_status)); + _exit(WEXITSTATUS(child_status)); } + /* restore errno so that the resuming code is unimpacted. */ + errno = saved_errno; } void print_child_status(int status) { + int len; + char buf[2048]; + if WIFSIGNALED(status) - fprintf(stdout, "%s terminated by signal %d\n", - basename(getenv("SHELL")), WTERMSIG(status)); + len = snprintf(buf, sizeof(buf), "%s terminated by signal %d\n", + shell_base, WTERMSIG(status)); else - fprintf(stdout, "%s returned exit code %d\n", - basename(getenv("SHELL")), WEXITSTATUS(status)); + len = snprintf(buf, sizeof(buf), "%s returned exit code %d\n", + shell_base, WEXITSTATUS(status)); + write(STDOUT_FILENO, buf, len); } /* @@ -414,7 +430,7 @@ arg_buf = malloc(ARG_MAX); new_argv = calloc(argc+1, sizeof(char *)); realpath(leading_edge->fn, arg_buf); - new_argv[0] = getenv("SHELL"); + new_argv[0] = shell; new_argv[1] = "-c"; new_argv[2] = argv[0]; new_argv[3] = arg_buf; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/entr-5.3/missing/kqueue_inotify.c new/entr-5.4/missing/kqueue_inotify.c --- old/entr-5.3/missing/kqueue_inotify.c 2023-01-20 18:36:23.000000000 +0100 +++ new/entr-5.4/missing/kqueue_inotify.c 2023-08-01 21:48:53.000000000 +0200 @@ -91,7 +91,7 @@ static int inotify_queue; if (inotify_queue == 0) - inotify_queue = inotify_init(); + inotify_queue = inotify_init1(IN_CLOEXEC); if (getenv("ENTR_INOTIFY_WORKAROUND")) warnx("broken inotify workaround enabled"); else if (getenv("ENTR_INOTIFY_SYMLINK")) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/entr-5.3/system_test.sh new/entr-5.4/system_test.sh --- old/entr-5.3/system_test.sh 2023-01-20 18:36:23.000000000 +0100 +++ new/entr-5.4/system_test.sh 2023-08-01 21:48:53.000000000 +0200 @@ -35,12 +35,13 @@ clear_tmux='tmux kill-session -t $tsession 2>/dev/null || true' clear_tmp='rm -rf $tmp' trap "$clear_tty; $clear_tmux; $clear_tmp" EXIT +trap 'printf "\nTerminated by SIGINT at line $LINENO\n"; exit 1' INT # required utilities utils="file pgrep git vim tmux" for util in $utils; do - p=$(which $util 2> /dev/null) || { + p=$(command -pv $util) || { echo "ERROR: could not locate the '$util' utility" >&2 echo "System tests depend on the following: $utils" >&2 exit 1 @@ -250,6 +251,7 @@ cp /usr/include/*.h $tmp/ cd $tmp git init -q + git config --local user.email entr.t...@example.com git add *.h git commit -m "initial checkin" -q for f in `ls *.h | head`; do