Received: by mail.netbsd.org (Postfix, from userid 605) id 586C584D4A; Thu, 17 Nov 2022 23:51:36 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by mail.netbsd.org (Postfix) with ESMTP id 8778184E19 for ; Thu, 17 Nov 2022 23:51:35 +0000 (UTC) X-Virus-Scanned: amavisd-new at netbsd.org Received: from mail.netbsd.org ([127.0.0.1]) by localhost (mail.netbsd.org [127.0.0.1]) (amavisd-new, port 10025) with ESMTP id u1B3OCPd1Q0n for ; Thu, 17 Nov 2022 23:51:34 +0000 (UTC) Received: from cvs.NetBSD.org (ivanova.netbsd.org [199.233.217.197]) by mail.netbsd.org (Postfix) with ESMTP id 0ACC584D4A for ; Thu, 17 Nov 2022 23:51:34 +0000 (UTC) Received: by cvs.NetBSD.org (Postfix, from userid 500) id C810EFA90; Thu, 17 Nov 2022 23:51:33 +0000 (UTC) Content-Transfer-Encoding: 7bit Content-Type: multipart/mixed; boundary="_----------=_1668729093169930" MIME-Version: 1.0 Date: Thu, 17 Nov 2022 23:51:33 +0000 From: "Thomas Klausner" Subject: CVS commit: pkgsrc/devel/gmake To: pkgsrc-changes@NetBSD.org Reply-To: wiz@netbsd.org X-Mailer: log_accum Message-Id: <20221117235133.C810EFA90@cvs.NetBSD.org> Sender: pkgsrc-changes-owner@NetBSD.org List-Id: Precedence: bulk List-Unsubscribe: This is a multi-part message in MIME format. --_----------=_1668729093169930 Content-Disposition: inline Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII" Module Name: pkgsrc Committed By: wiz Date: Thu Nov 17 23:51:33 UTC 2022 Modified Files: pkgsrc/devel/gmake: Makefile PLIST distinfo pkgsrc/devel/gmake/patches: patch-src_job.c Log Message: gmake: update to 4.4. Tested by jperkin in a bulk build with no obvious issues. Version 4.4 (31 Oct 2022) A complete list of bugs fixed in this version is available here: https://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=109&set=custom * WARNING: Deprecation! The following systems are deprecated in this release: - OS/2 (EMX) - AmigaOS - Xenix - Cray In the NEXT release of GNU Make, support for these systems will be removed. If you want to see them continue to be supported, contact . * 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, below: if any target of the rule is needed by the build, the recipe will be invoked if any target of the rule is missing or out of date. During testing some makefiles were found to contain pattern rules that do not build all targets; this can cause issues so we are delaying this change for one release cycle to allow these makefiles to be updated. GNU Make shows a warning if it detects this situation: "pattern recipe did not update peer target". * WARNING: Backward-incompatibility! GNU Make now uses temporary files in more situations than previous releases. If your build system sets TMPDIR (or TMP or TEMP on Windows) and deletes the contents during the build, or uses restrictive permissions, this may cause problems. You can choose an alternative temporary directory only for use by GNU Make by setting the new MAKE_TMPDIR environment variable before invoking make. Note that this value CANNOT be set inside the makefile, since make needs to find its temporary directory before the makefiles are parsed. * 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. This feature is available in some other versions of make, and it will be required by an upcoming version of the POSIX standard for make. Different patches were made by Alexey Neyman (2005) and Steffen Nurpmeso (2020) that were useful but the result is a different implementation (closer to Alexey's idea). * 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. Implementation provided by Dmitry Goncharov * 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. Implementation provided by Jouke Witteveen * New feature: The $(intcmp ...) function This function allows conditional evaluation controlled by a numerical comparison. Implementation provided by Jouke Witteveen * 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. Implementation provided by Sven C. Dack * 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. Implementation provided by Sergei Trofimovich * New feature: The --jobserver-style command line option and named pipes A new jobserver method is used on systems where mkfifo(3) is supported. This solves a number of obscure issues related to using the jobserver and recursive invocations of GNU Make. This change means that sub-makes will connect to the jobserver even if they are not marked as recursive. It also means that other tools that want to participate in the jobserver will need to be enhanced as described in the GNU Make manual. You can force GNU Make to use the simple pipe-based jobserver (perhaps if you are integrating with other tools or older versions of GNU Make) by adding the '--jobserver-style=pipe' option to the command line of the top-level invocation of GNU Make, or via MAKEFLAGS or GNUMAKEFLAGS. To detect this change search for 'jobserver-fifo' in the .FEATURES variable. * Some POSIX systems (*BSD) do not allow locks to be taken on pipes, which caused the output sync feature to not work properly there. Also multiple invocations of make redirecting to the same output file (e.g., /dev/null) would cause hangs. Instead of locking stdout (which does have some useful performance characteristics, but is not portable) create a temporary file and lock that. Windows continues to use a mutex as before. * 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". Implementation provided by Dmitry Goncharov * 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. Implementation provided by Dmitry Goncharov * If the MAKEFLAGS variable is modified in a makefile, it will be re-parsed immediately rather than after all makefiles have been read. Note that although all options are parsed immediately, some special effects won't appear until after all makefiles are read. * The -I option accepts an argument "-" (e.g., "-I-") which means "reset the list of search directories to empty". Among other things this can be used to prevent GNU Make from searching in its default list of directories. * 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). Implementation provided by David Boyce * 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. This prevents sub-processes that invoke make from accidentally using other open file descriptors as jobserver pipes. For more information see https://savannah.gnu.org/bugs/?57242 and https://savannah.gnu.org/bugs/?62397 * 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. * GNU Make can now be built for MS-Windows using the Tiny C tcc compiler. Port provided by Christian Jullien To generate a diff of this commit: cvs rdiff -u -r1.120 -r1.121 pkgsrc/devel/gmake/Makefile cvs rdiff -u -r1.16 -r1.17 pkgsrc/devel/gmake/PLIST cvs rdiff -u -r1.43 -r1.44 pkgsrc/devel/gmake/distinfo cvs rdiff -u -r1.1 -r1.2 pkgsrc/devel/gmake/patches/patch-src_job.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. --_----------=_1668729093169930 Content-Disposition: inline Content-Length: 3792 Content-Transfer-Encoding: binary Content-Type: text/x-diff; charset=us-ascii Modified files: Index: pkgsrc/devel/gmake/Makefile diff -u pkgsrc/devel/gmake/Makefile:1.120 pkgsrc/devel/gmake/Makefile:1.121 --- pkgsrc/devel/gmake/Makefile:1.120 Tue Jun 28 11:31:44 2022 +++ pkgsrc/devel/gmake/Makefile Thu Nov 17 23:51:33 2022 @@ -1,8 +1,7 @@ -# $NetBSD: Makefile,v 1.120 2022/06/28 11:31:44 wiz Exp $ +# $NetBSD: Makefile,v 1.121 2022/11/17 23:51:33 wiz Exp $ -DISTNAME= make-4.3 +DISTNAME= make-4.4 PKGNAME= g${DISTNAME} -PKGREVISION= 4 CATEGORIES= devel MASTER_SITES= ${MASTER_SITE_GNU:=make/} Index: pkgsrc/devel/gmake/PLIST diff -u pkgsrc/devel/gmake/PLIST:1.16 pkgsrc/devel/gmake/PLIST:1.17 --- pkgsrc/devel/gmake/PLIST:1.16 Sun May 2 19:03:52 2021 +++ pkgsrc/devel/gmake/PLIST Thu Nov 17 23:51:33 2022 @@ -1,4 +1,4 @@ -@comment $NetBSD: PLIST,v 1.16 2021/05/02 19:03:52 wiz Exp $ +@comment $NetBSD: PLIST,v 1.17 2022/11/17 23:51:33 wiz Exp $ bin/gmake gnu/bin/make gnu/man/man1/make.1 @@ -26,6 +26,7 @@ ${PLIST.nls}share/locale/nl/LC_MESSAGES/ ${PLIST.nls}share/locale/pl/LC_MESSAGES/make.mo ${PLIST.nls}share/locale/pt/LC_MESSAGES/make.mo ${PLIST.nls}share/locale/pt_BR/LC_MESSAGES/make.mo +${PLIST.nls}share/locale/ro/LC_MESSAGES/make.mo ${PLIST.nls}share/locale/ru/LC_MESSAGES/make.mo ${PLIST.nls}share/locale/sr/LC_MESSAGES/make.mo ${PLIST.nls}share/locale/sv/LC_MESSAGES/make.mo Index: pkgsrc/devel/gmake/distinfo diff -u pkgsrc/devel/gmake/distinfo:1.43 pkgsrc/devel/gmake/distinfo:1.44 --- pkgsrc/devel/gmake/distinfo:1.43 Tue Dec 7 12:06:16 2021 +++ pkgsrc/devel/gmake/distinfo Thu Nov 17 23:51:33 2022 @@ -1,8 +1,8 @@ -$NetBSD: distinfo,v 1.43 2021/12/07 12:06:16 jperkin Exp $ +$NetBSD: distinfo,v 1.44 2022/11/17 23:51:33 wiz Exp $ -BLAKE2s (make-4.3.tar.gz) = 09e086f44defc3367ab2d167711675cf77ea82c79f134b3133c191f8d7ac58ae -SHA512 (make-4.3.tar.gz) = 9a1185cc468368f4ec06478b1cfa343bf90b5cd7c92c0536567db0315b0ee909af53ecce3d44cfd93dd137dbca1ed13af5713e8663590c4fdd21ea635d78496b -Size (make-4.3.tar.gz) = 2317073 bytes +BLAKE2s (make-4.4.tar.gz) = 3ce5b80e72ec1cb49f9a0cf3fb35f11612de00d0f24bd9b166bf8b9af166c4e4 +SHA512 (make-4.4.tar.gz) = 4be73f494295dcfa10034531b0d920cfdb5438bc20625f863f5c878549c140e1e67195162580c53060c3c11c67a2c739c09051f02cdd283e5aa9ebcd68975a1f +Size (make-4.4.tar.gz) = 2307891 bytes SHA1 (patch-af) = 8ff060ecba9d664044eabd98741253881d8c9bbe SHA1 (patch-src_hash.c) = 755de04a4f9a63f5bfc2520026344d6dc8654992 -SHA1 (patch-src_job.c) = 3514e409af0d704cb657409721e0819109251051 +SHA1 (patch-src_job.c) = 848eaafc6dfc5086a3d46f9dae387b39d5c514c6 Index: pkgsrc/devel/gmake/patches/patch-src_job.c diff -u pkgsrc/devel/gmake/patches/patch-src_job.c:1.1 pkgsrc/devel/gmake/patches/patch-src_job.c:1.2 --- pkgsrc/devel/gmake/patches/patch-src_job.c:1.1 Tue Dec 7 12:06:16 2021 +++ pkgsrc/devel/gmake/patches/patch-src_job.c Thu Nov 17 23:51:33 2022 @@ -1,13 +1,13 @@ -$NetBSD: patch-src_job.c,v 1.1 2021/12/07 12:06:16 jperkin Exp $ +$NetBSD: patch-src_job.c,v 1.2 2022/11/17 23:51:33 wiz Exp $ If we bootstrap pkgsrc with a different shell, use it. Add our bootstrap shells to the POSIX-compatible list, required for correct operation of .ONESHELL mode. ---- src/job.c.orig 2020-01-19 20:32:59.000000000 +0000 +--- src/job.c.orig 2022-10-31 06:23:04.000000000 +0000 +++ src/job.c -@@ -77,7 +77,11 @@ char * vms_strsignal (int status); +@@ -79,7 +79,11 @@ char * vms_strsignal (int status); #else @@ -19,12 +19,12 @@ operation of .ONESHELL mode. int batch_mode_shell = 0; #endif -@@ -433,6 +437,8 @@ is_bourne_compatible_shell (const char * - "zsh", - "ash", +@@ -441,6 +445,8 @@ is_bourne_compatible_shell (const char * + "bash", "dash", + "ksh", + "mksh", + "pdksh", - NULL - }; - const char **s; + "rksh", + "zsh", + "ash", --_----------=_1668729093169930--