Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package make for openSUSE:Factory checked in at 2022-11-07 13:51:19 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/make (Old) and /work/SRC/openSUSE:Factory/.make.new.1597 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "make" Mon Nov 7 13:51:19 2022 rev:48 rq:1032930 version:4.4 Changes: -------- --- /work/SRC/openSUSE:Factory/make/make.changes 2022-08-31 18:08:23.499280793 +0200 +++ /work/SRC/openSUSE:Factory/.make.new.1597/make.changes 2022-11-07 13:51:20.683684605 +0100 @@ -1,0 +2,112 @@ +Wed Nov 2 15:39:46 UTC 2022 - Andreas Schwab <sch...@suse.de> + +- reset-sigpipe.patch: Reset SIGPIPE in children + +------------------------------------------------------------------- +Mon Oct 31 13:31:57 UTC 2022 - Andreas Schwab <sch...@suse.de> + +- Update to make 4.4 + * WARNING: Future backward-incompatibility! + In the NEXT release of GNU Make, pattern rules will implement the same + behavior change for multiple targets as explicit grouped targets + * WARNING: Backward-incompatibility! + GNU Make now uses temporary files in more situations than previous releases. + * WARNING: Backward-incompatibility! + Previously each target in a explicit grouped target rule was considered + individually: if the targets needed by the build were not out of date the + recipe was not run even if other targets in the group were out of date. Now + if any of the grouped targets are needed by the build, then if any of the + grouped targets are out of date the recipe is run and all targets in the + group are considered updated. + * WARNING: Backward-incompatibility! + Previously if --no-print-directory was seen anywhere in the environment or + command line it would take precedence over any --print-directory. Now, the + last setting of directory printing options seen will be used, so a command + line such as "--no-print-directory -w" _will_ show directory entry/exits. + * WARNING: Backward-incompatibility! + Previously the order in which makefiles were remade was not explicitly + stated, but it was (roughly) the inverse of the order in which they were + processed by make. In this release, the order in which makefiles are + rebuilt is the same order in which make processed them, and this is defined + to be true in the GNU Make manual. + * WARNING: Backward-incompatibility! + Previously only simple (one-letter) options were added to the MAKEFLAGS + variable that was visible while parsing makefiles. Now, all options are + available in MAKEFLAGS. If you want to check MAKEFLAGS for a one-letter + option, expanding "$(firstword -$(MAKEFLAGS))" is a reliable way to return + the set of one-letter options which can be examined via findstring, etc. + * WARNING: Backward-incompatibility! + Previously makefile variables marked as export were not exported to commands + started by the $(shell ...) function. Now, all exported variables are + exported to $(shell ...). If this leads to recursion during expansion, then + for backward-compatibility the value from the original environment is used. + To detect this change search for 'shell-export' in the .FEATURES variable. + * WARNING: New build requirement + GNU Make utilizes facilities from GNU Gnulib: Gnulib requires certain C99 + features in the C compiler and so these features are required by GNU Make: + https://www.gnu.org/software/gnulib/manual/html_node/C99-features-assumed.html + The configure script should verify the compiler has these features. + * New feature: The .WAIT special target + If the .WAIT target appears between two prerequisites of a target, then + GNU Make will wait for all of the targets to the left of .WAIT in the list + to complete before starting any of the targets to the right of .WAIT. + * New feature: .NOTPARALLEL accepts prerequisites + If the .NOTPARALLEL special target has prerequisites then all prerequisites + of those targets will be run serially (as if .WAIT was specified between + each prerequisite). + * New feature: The .NOTINTERMEDIATE special target + .NOTINTERMEDIATE disables intermediate behavior for specific files, for all + files built using a pattern, or for the entire makefile. + * New feature: The $(let ...) function + This function allows user-defined functions to define a set of local + variables: values can be assigned to these variables from within the + user-defined function and they will not impact global variable assignments. + * New feature: The $(intcmp ...) function + This function allows conditional evaluation controlled by a numerical + comparison. + * New feature: Improved support for -l / --load-average + On systems that provide /proc/loadavg (Linux), GNU Make will use it to + determine the number of runnable jobs and use this as the current load, + avoiding the need for heuristics. + * New feature: The --shuffle command line option + This option reorders goals and prerequisites to simulate non-determinism + that may be seen using parallel build. Shuffle mode allows a form of "fuzz + testing" of parallel builds to verify that all prerequisites are correctly + described in the makefile. + * New feature: The --jobserver-style command line option and named pipes + A new jobserver method is used on systems where mkfifo(3) is supported. + * GNU Make has sometimes chosen unexpected, and sub-optimal, chains of + implicit rules due to the definition of "ought to exist" in the implicit + rule search algorithm, which considered any prerequisite mentioned in the + makefile as "ought to exist". This algorithm has been modified to prefer + prerequisites mentioned explicitly in the target being built and only if + that results in no matching rule, will GNU Make consider prerequisites + mentioned in other targets as "ought to exist". + * GNU Make was performing secondary expansion of all targets, even targets + which didn't need to be considered during the build. In this release + only targets which are considered will be secondarily expanded. + * If the MAKEFLAGS variable is modified in a makefile, it will be re-parsed + immediately rather than after all makefiles have been read. + * The -I option accepts an argument "-" (e.g., "-I-") which means "reset the + list of search directories to empty". + * New debug option "print" will show the recipe to be run, even when silent + mode is set, and new debug option "why" will show why a target is rebuilt + (which prerequisites caused the target to be considered out of date). + * The existing --trace option is made equivalent to --debug=print,why + * Target-specific variables can now be marked "unexport". + * Exporting / unexporting target-specific variables is handled correctly, so + that the attribute of the most specific variable setting is used. + * Special targets like .POSIX are detected upon definition, ensuring that any + change in behavior takes effect immediately, before the next line is parsed. + * When the pipe-based jobserver is enabled and GNU Make decides it is invoking + a non-make sub-process and closes the jobserver pipes, it will now add a new + option to the MAKEFLAGS environment variable that disables the jobserver. + * A long-standing issue with the directory cache has been resolved: changes + made as a side-effect of some other target's recipe are now noticed as + expected. +- jobserver-noinherit.patch, jobserver-fifo.patch: Removed +- test-driver.patch: Removed +- fix-57962.patch: Removed +- make-testcases_timeout.diff: Removed + +------------------------------------------------------------------- Old: ---- fix-57962.patch jobserver-fifo.patch jobserver-noinherit.patch make-4.3.tar.gz make-4.3.tar.gz.sig make-testcases_timeout.diff test-driver.patch New: ---- make-4.4.tar.gz make-4.4.tar.gz.sig reset-sigpipe.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ make.spec ++++++ --- /var/tmp/diff_new_pack.zaGYwd/_old 2022-11-07 13:51:21.363688428 +0100 +++ /var/tmp/diff_new_pack.zaGYwd/_new 2022-11-07 13:51:21.371688473 +0100 @@ -17,7 +17,7 @@ Name: make -Version: 4.3 +Version: 4.4 Release: 0 Summary: GNU make License: GPL-2.0-or-later @@ -27,15 +27,8 @@ Source1: https://ftp.gnu.org/gnu/make/make-%{version}.tar.gz.sig # keyring downloaded from https://savannah.gnu.org/project/memberlist-gpgkeys.php?group=make&download=1 Source2: %{name}.keyring -Patch1: make-testcases_timeout.diff -Patch2: fix-57962.patch -Patch3: jobserver-noinherit.patch -Patch4: jobserver-fifo.patch -Patch5: test-driver.patch +Patch: reset-sigpipe.patch Patch64: make-library-search-path.diff -BuildRequires: autoconf -BuildRequires: automake -BuildRequires: makeinfo BuildRequires: pkgconfig Requires(post): %{install_info_prereq} Requires(preun):%{install_info_prereq} @@ -48,23 +41,17 @@ %prep %setup -q -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 +%patch -p1 if [ %{_lib} = lib64 ]; then %patch64 -p1 fi %build -autoreconf -fi -export CFLAGS="%{optflags}" %configure -make %{?_smp_mflags} +%make_build %check -make %{?_smp_mflags} check || { +%make_build check || { for f in tests/work/*/*.diff; do test -f "$f" || continue printf "++++++++++++++ %s ++++++++++++++\n" "${f##*/}" ++++++ make-4.3.tar.gz -> make-4.4.tar.gz ++++++ ++++ 172262 lines of diff (skipped) ++++++ reset-sigpipe.patch ++++++ >From 8a9e8592c9893385b5c4dd529f39333c7d7efab1 Mon Sep 17 00:00:00 2001 From: Andreas Schwab <sch...@suse.de> Date: Wed, 2 Nov 2022 15:50:52 +0100 Subject: [PATCH] [SV 63307] Reset SIGPIPE in spawned children * configure.ac: Check for posix_spawnattr_setsigdefault. * src/job.c (child_execute_job): Reset SIGPIPE in the child process. * src/job.h (sigpipe_ignored): Declare. * src/main.c (main): Remember if SIGPIPE was inherited as ignored. --- configure.ac | 2 +- src/job.c | 24 ++++++++++++++++++++++++ src/job.h | 2 ++ src/main.c | 2 +- 4 files changed, 28 insertions(+), 2 deletions(-) Index: make-4.4/src/job.c =================================================================== --- make-4.4.orig/src/job.c +++ make-4.4/src/job.c @@ -261,6 +261,10 @@ unsigned long job_counter = 0; /* Number of jobserver tokens this instance is currently using. */ unsigned int jobserver_tokens = 0; + +/* Whether SIGPIPE was ignored on entry. */ + +int sigpipe_ignored; #ifdef WINDOWS32 @@ -2305,6 +2309,12 @@ child_execute_job (struct childbase *chi /* We are the child. */ unblock_all_sigs (); + /* Unignore SIPIPE. */ +#ifdef SIGPIPE + if (!sigpipe_ignored) + bsd_signal (SIGPIPE, SIG_DFL); +#endif + #ifdef SET_STACK_SIZE /* Reset limits, if necessary. */ if (stack_limit.rlim_cur) @@ -2347,6 +2357,18 @@ child_execute_job (struct childbase *chi } #endif /* have posix_spawnattr_setsigmask() */ + /* Unignore SIGPIPE. */ + if (!sigpipe_ignored) + { + sigset_t mask; + sigemptyset (&mask); + sigaddset (&mask, SIGPIPE); + r = posix_spawnattr_setsigdefault (&attr, &mask); + if (r != 0) + goto cleanup; + flags |= POSIX_SPAWN_SETSIGDEF; + } + /* USEVFORK can give significant speedup on systems where it's available. */ #ifdef POSIX_SPAWN_USEVFORK flags |= POSIX_SPAWN_USEVFORK; Index: make-4.4/src/job.h =================================================================== --- make-4.4.orig/src/job.h +++ make-4.4/src/job.h @@ -88,5 +88,7 @@ pid_t exec_command (char **argv, char ** void unblock_all_sigs (void); +extern int sigpipe_ignored; + extern unsigned int job_slots_used; extern unsigned int jobserver_tokens; Index: make-4.4/src/main.c =================================================================== --- make-4.4.orig/src/main.c +++ make-4.4/src/main.c @@ -1184,7 +1184,7 @@ main (int argc, char **argv, char **envp /* Don't die if our stdout sends us SIGPIPE. */ #ifdef SIGPIPE - bsd_signal (SIGPIPE, SIG_IGN); + sigpipe_ignored = bsd_signal (SIGPIPE, SIG_IGN) == SIG_IGN; #endif #ifdef HAVE_ATEXIT