Commit graph

150 commits

Author SHA1 Message Date
rillig
86d2bcee13 devel/gmake: add link to the 4.3 release notes 2020-09-12 05:58:40 +00:00
gdt
b5dec1cc48 devel/gmake: Note why updates are on hold
I would never look in doc/TODO to find out why not to update a
package, and I wouldn't expect others to do that.  Therefore, put the
notion of 4.3 being on hold and why in a comment right before the
version line.  Declare that an update requires a proposal to tech-pkg
and consensus.
2020-06-13 00:53:20 +00:00
sevan
487f194500 Revert to v4.2.1
4.3 introduces some incompatible changes which causes fallout with a lot of
packages.

Heads up by ryoon@ about the doc/TODO which I did not read before updating.
2020-06-12 23:50:16 +00:00
sevan
de6f2f9d7b Fix path in patch
Update PLIST
2020-06-12 15:22:17 +00:00
sevan
f21cc46814 Update to make 4.3
Version 4.3 (19 Jan 2020)

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=108&set=custom

* WARNING: Backward-incompatibility!
  Number signs (#) appearing inside a macro reference or function invocation
  no longer introduce comments and should not be escaped with backslashes:
  thus a call such as:
    foo := $(shell echo '#')
  is legal.  Previously the number sign needed to be escaped, for example:
    foo := $(shell echo '\#')
  Now this latter will resolve to "\#".  If you want to write makefiles
  portable to both versions, assign the number sign to a variable:
    H := \#
    foo := $(shell echo '$H')
  This was claimed to be fixed in 3.81, but wasn't, for some reason.
  To detect this change search for 'nocomment' in the .FEATURES variable.

* WARNING: Backward-incompatibility!
  Previously appending using '+=' to an empty variable would result in a value
  starting with a space.  Now the initial space is only added if the variable
  already contains some value.  Similarly, appending an empty string does not
  add a trailing space.

* WARNING: Backward-incompatibility!
  Previously using the .SILENT pseudo-target in a makefile would force all
  sub-makes to be invoked with the '-s' option, effectively making all
  sub-makes silent as well.  In this release, .SILENT only has effect for the
  current invocation of make.  As a side-effect of this, .SILENT no longer has
  a side-effect of enabling the --no-print-directory option, which using -s
  will do.

* NOTE: Deprecated behavior.
  Contrary to the documentation, suffix rules with prerequisites are being
  treated BOTH as simple targets AND as pattern rules.  Further, the
  prerequisites are ignored by the pattern rules.  POSIX specifies that in
  order to be a suffix rule there can be no prerequisites defined.  In this
  release if POSIX mode is enabled then rules with prerequisites cannot be
  suffix rules.  If POSIX mode is not enabled then the previous behavior is
  preserved (a pattern rule with no extra prerequisites is created) AND a
  warning about this behavior is generated:
    warning: ignoring prerequisites on suffix rule definition
  The POSIX behavior will be adopted as the only behavior in a future release
  of GNU make so please resolve any warnings.

* New feature: Grouped explicit targets
  Pattern rules have always had the ability to generate multiple targets with
  a single invocation of the recipe.  It's now possible to declare that an
  explicit rule generates multiple targets with a single invocation.  To use
  this, replace the ":" token with "&:" in the rule.  To detect this feature
  search for 'grouped-target' in the .FEATURES special variable.
  Implementation contributed by Kaz Kylheku <kaz@kylheku.com>

* New feature: .EXTRA_PREREQS variable
  Words in this variable are considered prerequisites of targets but they are
  not added to any of the automatic variable values when expanding the
  recipe.  This variable can either be global (applies to all targets) or
  a target-specific variable.  To detect this feature search for 'extra-prereqs'
  in the .FEATURES special variable.
  Implementation contributed by Christof Warlich <cwarlich@gmx.de>

* Makefiles can now specify the '-j' option in their MAKEFLAGS variable and
  this will cause make to enable that parallelism mode.

* GNU make will now use posix_spawn() on systems where it is available.
  If you prefer to use fork/exec even on systems where posix_spawn() is
  present, you can use the --disable-posix-spawn option to configure.
  Implementation contributed by Aron Barath <baratharon@caesar.elte.hu>

* Error messages printed when invoking non-existent commands have been cleaned
  up and made consistent.

* The previous limit of 63 jobs under -jN on MS-Windows is now
  increased to 4095.  That limit includes the subprocess started by
  the $(shell) function.

* A new option --no-silent has been added, that cancels the effect of the
  -s/--silent/--quiet flag.

* A new option -E has been added as a short alias for --eval.

* All wildcard expansion within GNU make, including $(wildcard ...), will sort
  the results.  See https://savannah.gnu.org/bugs/index.php?52076

* Interoperate with newer GNU libc and musl C runtime libraries.

* Performance improvements provided by Paolo Bonzini <pbonzini@redhat.com>

GNU make Developer News

* Import the GNU standard bootstrap script to replace the hand-rolled
  "make update" method for building code from a GNU make Git repository.

* Rework the source distribution to move source files into the src/*
  subdirectory.  This aligns with modern best practices in GNU.

* Replace local portability code with Gnulib content.  Unfortunately due to a
  problem with Gnulib support for getloadavg, this forces a requirement on
  Automake 1.16 or above in order to build from Git.  See README.git.
2020-06-12 14:48:38 +00:00
tnn
24c071fd3e gmake: try harder to unbreak circular dependency
Having builtin gettext (the lib) doesn't always imply that we have a
builtin msgfmt (the tool).
2020-03-14 13:28:57 +00:00
rillig
508923f461 all: migrate several HOMEPAGEs to https
pkglint --only "https instead of http" -r -F

With manual adjustments afterwards since pkglint 19.4.4 fixed a few
indentations in unrelated lines.

This mainly affects projects hosted at SourceForce, as well as
freedesktop.org, CTAN and GNU.
2020-01-18 23:30:13 +00:00
jperkin
bded73aa1d gmake: Unbreak PREFER_PKGSRC circular dependencies.
Just because a builtin is available does not mean a user has configured their
system to use it.  Check for USE_BUILTIN instead of IS_BUILTIN to ensure both
the builtin is available, and the user has allowed pkgsrc to use it, before
enabling.
2019-10-31 15:05:52 +00:00
triaxx
613b97e3dc gmake: comment the inclusion of gettext-lib/builtin.mk 2019-10-28 10:03:18 +00:00
triaxx
1c5c2498ba gmake: make nls option enabled by default 2019-10-25 12:36:12 +00:00
triaxx
0b49e378cc gmake: fix misuse of variables from bsd.builtin.mk
pkgsrc changes:
---------------
- Replace PREFER.gettext=native (that does not work) by USE_BUILTIN.gettext.
2019-10-21 06:33:11 +00:00
triaxx
5f96f3288f gmake: fix PR pkg/54629
pkgsrc changes:
- Remove PLIST_SRC in Makefile.
- Remove PLIST.locale file (use PLIST.nls instead).
2019-10-20 16:29:42 +00:00
leot
3f4f2f7fe8 gmake: Unconditionally avoid setgid and group change in configure phase
On some systems gmake can be installed setgid and with the group
adjusted according the group of /dev/kmem.  Previously this was
adjusted in post-install phase.
Rework that by passing CONFIGURE_ARGS instead and document that
via a comment.
2018-11-16 16:00:18 +00:00
bsiegert
b0b9e94900 Patch SV 51159 in GNU Make.
Hopefully this will fix the problems joerg@ and others encountered last
time gmake was updated to 4.2.1. Description of the patch:

[SV 51159] Use a non-blocking read with pselect to avoid hangs.
* posixos.c (set_blocking): Set blocking on a file descriptor.
(jobserver_setup): Set non-blocking on the jobserver read side.
(jobserver_parse_auth): Ditto.
(jobserver_acquire_all): Set blocking to avoid a busy-wait loop.
(jobserver_acquire): If the non-blocking read() returns without
taking a token then try again.
2018-07-04 14:09:07 +00:00
bsiegert
a3a1053c89 Update GNU make to 4.2.1.
Version 4.2.1 (10 Jun 2016)

A complete list of bugs fixed in this version is available here:

http://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=107&set=custom

This release is a bug-fix release.


Version 4.2 (22 May 2016)

A complete list of bugs fixed in this version is available here:

http://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=106&set=custom

* New variable: $(.SHELLSTATUS) is set to the exit status of the last != or
  $(shell ...) function invoked in this instance of make.  This will be "0" if
  successful or not "0" if not successful.  The variable value is unset if no
  != or $(shell ...) function has been invoked.

* The $(file ...) function can now read from a file with $(file <FILE).
  The function is expanded to the contents of the file.  The contents are
  expanded verbatim except that the final newline, if any, is stripped.

* The makefile line numbers shown by GNU make now point directly to the
  specific line in the recipe where the failure or warning occurred.
  Sample changes suggested by Brian Vandenberg <phantall@gmail.com>

* The interface to GNU make's "jobserver" is stable as documented in the
  manual, for tools which may want to access it.

  WARNING: Backward-incompatibility! The internal-only command line option
  --jobserver-fds has been renamed for publishing, to --jobserver-auth.

* The amount of parallelism can be determined by querying MAKEFLAGS, even when
  the job server is enabled (previously MAKEFLAGS would always contain only
  "-j", with no number, when job server was enabled).
2018-07-04 09:42:56 +00:00
minskim
0a97376c78 devel/gmake: Make this work with glibc glob interface v2
http://git.savannah.gnu.org/cgit/make.git/commit/?id=193f1e81
2018-04-30 01:47:30 +00:00
minskim
b9119a27ae devel/gmake: Apply patch to support GLIBC glob interface v2
http://git.savannah.gnu.org/cgit/make.git/commit/?id=48c8a116
2018-04-28 06:59:41 +00:00
joerg
3279d6e931 Do not raise stack limits during the build. It messes up ressource
limits for multi-threaded applications. Bump revision.
2016-12-17 14:14:06 +00:00
joerg
107fc2ceea Readd two forgotten patches. 2016-09-08 22:46:58 +00:00
joerg
13c1c7fd57 Revert GNU make to 4.1 due to problems in the new job server code. 2016-09-08 20:39:37 +00:00
joerg
12d9813d5c Disable use of new pselect code. At least on NetBSD 7 bulk builds, it
is often resulting in hanging builds by gmake not wait(3)ing for its
children and issues new jobs. Bump revision.
2016-09-06 12:21:46 +00:00
wiz
2b0a009d0e Bump PKGREVISION for perl-5.24.0 for everything mentioning perl. 2016-07-09 06:37:46 +00:00
wiz
15c1fde5e9 Updated gmake to 4.2.1.
Version 4.2.1 (10 Jun 2016)

A complete list of bugs fixed in this version is available here:

http://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=107&set=custom

This release is a bug-fix release.
2016-06-11 18:29:44 +00:00
wiz
4ba0a6928a Update gmake to 4.2 (again), this time with an upstream patch
The patch fixes the firefox build issue:

From 4762480ae9cb8df4878286411f178d32db14eff0 Mon Sep 17 00:00:00 2001
From: Paul Smith <psmith@gnu.org>
Date: Tue, 31 May 2016 06:56:51 +0000
Subject: [SV 47995] Ensure forced double-colon rules work with -j.

The fix for SV 44742 had a side-effect that some double-colon targets
were skipped.  This happens because the "considered" facility assumed
that all targets would be visited on each walk through the dependency
graph: we used a bit for considered and toggled it on each pass; if
we didn't walk the entire graph on every pass the bit would get out
of sync.  The new behavior after SV 44742 might return early without
walking the entire graph.  To fix this I changed the considered value
to an integer which is monotonically increasing: it is then never
possible to incorrectly determine that a previous pass through the
graph already considered the current target.
2016-05-31 11:44:03 +00:00
tnn
14ea2d692f back out recent gmake 4.2 update due to mozilla products fallout
ok wiz@
2016-05-31 06:53:13 +00:00
khorben
f516d767c4 Revert r1.95 (Mark bin/gmake as not safe for Pax)
Checking again, I cannot reproduce the crashes anymore.
2016-05-27 08:13:22 +00:00
khorben
4ccc6c46a0 Mark bin/gmake from devel/gmake as not safe for Pax {ASLR,MPROTECT}
I observed crashes on NetBSD/amd64 without both options enabled; further
investigation is welcome.
2016-05-26 16:41:59 +00:00
wiz
41dff46940 Update gmake to 4.2:
Version 4.2 (22 May 2016)

A complete list of bugs fixed in this version is available here:

http://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=106&set=custom

* New variable: $(.SHELLSTATUS) is set to the exit status of the last != or
  $(shell ...) function invoked in this instance of make.  This will be "0" if
  successful or not "0" if not successful.  The variable value is unset if no
  != or $(shell ...) function has been invoked.

* The $(file ...) function can now read from a file with $(file <FILE).
  The function is expanded to the contents of the file.  The contents are
  expanded verbatim except that the final newline, if any, is stripped.

* The makefile line numbers shown by GNU make now point directly to the
  specific line in the recipe where the failure or warning occurred.
  Sample changes suggested by Brian Vandenberg <phantall@gmail.com>

* The interface to GNU make's "jobserver" is stable as documented in the
  manual, for tools which may want to access it.

  WARNING: Backward-incompatibility! The internal-only command line option
  --jobserver-fds has been renamed for publishing, to --jobserver-auth.

* The amount of parallelism can be determined by querying MAKEFLAGS, even when
  the job server is enabled (previously MAKEFLAGS would always contain only
  "-j", with no number, when job server was enabled).

* VMS-specific changes:

  * Perl test harness now works.

  * Full support for converting Unix exit status codes to VMS exit status
    codes.  BACKWARD INCOMPATIBILITY Notice: On a child failure the VMS exit
    code is now the encoded Unix exit status that Make usually generates, not
    the VMS exit status of the child.
2016-05-23 16:50:58 +00:00
jperkin
a7efdccd6c Use OPSYSVARS. 2016-02-25 12:12:47 +00:00
ryoon
fefe138533 Remove nls option for NetBSD
Fix PREFER_PKGSRC=yes circular dependency from gettext under NetBSD.
2016-01-01 01:42:53 +00:00
agc
d9e4cfe05d Add SHA512 digests for distfiles for devel category
Issues found with existing distfiles:
	distfiles/eclipse-sourceBuild-srcIncluded-3.0.1.zip
	distfiles/fortran-utils-1.1.tar.gz
	distfiles/ivykis-0.39.tar.gz
	distfiles/enum-1.11.tar.gz
	distfiles/pvs-3.2-libraries.tgz
	distfiles/pvs-3.2-linux.tgz
	distfiles/pvs-3.2-solaris.tgz
	distfiles/pvs-3.2-system.tgz
No changes made to these distinfo files.

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.
2015-11-03 03:27:11 +00:00
obache
2902072395 Appy upstream git commit 292da6f6867b75a5af7ddbb639a1feae022f438f
to resolve upstrem bug#43434, make 4.1 without /dev/pts mounted segfaults.

Bump PKGREVISION.
2014-11-09 03:22:57 +00:00
wiz
b61954990b Update to 4.1:
Version 4.1 (05 Oct 2014)

A complete list of bugs fixed in this version is available here:

http://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=105&set=custom

* New variables: $(MAKE_TERMOUT) and $(MAKE_TERMERR) are set to non-empty
  values if stdout or stderr, respectively, are believed to be writing to a
  terminal.  These variables are exported by default.

* Allow a no-text-argument form of the $(file ...) function.  Without a text
  argument nothing is written to the file: it is simply opened in the
  requested mode, then closed again.

* Change the fatal error for mixed explicit and implicit rules, that was
  introduced in GNU make 3.82, to a non-fatal error.  However, this syntax is
  still deprecated and may return to being illegal in a future version of GNU
  make.  Makefiles that rely on this syntax should be fixed.
  See https://savannah.gnu.org/bugs/?33034
2014-10-12 14:58:27 +00:00
wiz
cda18437be Remove pkgviews: don't set PKG_INSTALLATION_TYPES in Makefiles. 2014-10-09 14:05:50 +00:00
ryoon
2e3562013d snprintf is required. Fix build under SCO OpenServer 5.0.7/3.2. 2014-07-17 13:09:18 +00:00
wiz
09cad2050d Update to 4.0:
Version 4.0 (09 Oct 2013)

A complete list of bugs fixed in this version is available here:

http://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=101&set=custom

* WARNING: Backward-incompatibility!
  If .POSIX is specified, then make adheres to the POSIX backslash/newline
  handling requirements, which introduces the following changes to the
  standard backslash/newline handling in non-recipe lines:
  * Any trailing space before the backslash is preserved
  * Each backslash/newline (plus subsequent whitespace) is converted to a
    single space

* New feature: GNU Guile integration
  This version of GNU make can be compiled with GNU Guile integration.
  GNU Guile serves as an embedded extension language for make.
  See the "Guile Function" section in the GNU Make manual for details.
  Currently GNU Guile 1.8 and 2.0+ are supported.  In Guile 1.8 there is no
  support for internationalized character sets.  In Guile 2.0+, scripts can be
  encoded in UTF-8.

* New command line option: --output-sync (-O) enables grouping of output by
  target or by recursive make.  This is useful during parallel builds to avoid
  mixing output from different jobs together giving hard-to-understand
  results.  Original implementation by David Boyce <dsb@boyski.com>.
  Reworked and enhanced by Frank Heckenbach <f.heckenbach@fh-soft.de>.
  Windows support by Eli Zaretskii <eliz@gnu.org>.

* New command line option: --trace enables tracing of targets.  When enabled
  the recipe to be invoked is printed even if it would otherwise be suppressed
  by .SILENT or a "@" prefix character.  Also before each recipe is run the
  makefile name and linenumber where it was defined are shown as well as the
  prerequisites that caused the target to be considered out of date.

* New command line option argument: --debug now accepts a "n" (none) flag
  which disables all debugging settings that are currently enabled.

* New feature: The "job server" capability is now supported on Windows.
  Implementation contributed by Troy Runkel <Troy.Runkel@mathworks.com>

* New feature: The .ONESHELL capability is now supported on Windows.  Support
  added by Eli Zaretskii <eliz@gnu.org>.

* New feature: "!=" shell assignment operator as an alternative to the
  $(shell ...) function.  Implemented for compatibility with BSD makefiles.
  Note there are subtle differences between "!=" and $(shell ...).  See the
  description in the GNU make manual.
  WARNING: Backward-incompatibility!
  Variables ending in "!" previously defined as "variable!= value" will now be
  interpreted as shell assignment.  Change your assignment to add whitespace
  between the "!" and "=": "variable! = value"

* New feature: "::=" simple assignment operator as defined by POSIX in 2012.
  This operator has identical functionality to ":=" in GNU make, but will be
  portable to any implementation of make conforming to a sufficiently new
  version of POSIX (see http://austingroupbugs.net/view.php?id=330).  It is
  not necessary to define the .POSIX target to access this operator.

* New feature: Loadable objects
  This version of GNU make contains a "technology preview": the ability to
  load dynamic objects into the make runtime.  These objects can be created by
  the user and can add extended functionality, usable by makefiles.

* New function: $(file ...) writes to a file.

* New variable: $(GNUMAKEFLAGS) will be parsed for make flags, just like
  MAKEFLAGS is.  It can be set in the environment or the makefile, containing
  GNU make-specific flags to allow your makefile to be portable to other
  versions of make.  Once this variable is parsed, GNU make will set it to the
  empty string so that flags will not be duplicated on recursion.

* New variable: `MAKE_HOST' gives the name of the host architecture
  make was compiled for.  This is the same value you see after 'Built for'
  when running 'make --version'.

* Behavior of MAKEFLAGS and MFLAGS is more rigorously defined.  All simple
  flags are grouped together in the first word of MAKEFLAGS.  No options that
  accept arguments appear in the first word.  If no simple flags are present
  MAKEFLAGS begins with a space.  Flags with both short and long versions
  always use the short versions in MAKEFLAGS.  Flags are listed in
  alphabetical order using ASCII ordering.  MFLAGS never begins with "- ".

* Setting the -r and -R options in MAKEFLAGS inside a makefile now works as
  expected, removing all built-in rules and variables, respectively.

* If a recipe fails, the makefile name and linenumber of the recipe are shown.

* A .RECIPEPREFIX setting is remembered per-recipe and variables expanded
  in that recipe also use that recipe prefix setting.

* In -p output, .RECIPEPREFIX settings are shown and all target-specific
  variables are output as if in a makefile, instead of as comments.

* On MS-Windows, recipes that use ".." quoting will no longer force
  invocation of commands via temporary batch files and stock Windows
  shells, they will be short-circuited and invoked directly.  (In
  other words, " is no longer a special character for stock Windows
  shells.)  This avoids hitting shell limits for command length when
  quotes are used, but nothing else in the command requires the shell.
  This change could potentially mean some minor incompatibilities in
  behavior when the recipe uses quoted string on shell command lines.
2013-10-23 08:54:59 +00:00
wiz
d2ca14a3f1 Bump all packages for perl-5.18, that
a) refer 'perl' in their Makefile, or
b) have a directory name of p5-*, or
c) have any dependency on any p5-* package

Like last time, where this caused no complaints.
2013-05-31 12:39:57 +00:00
richard
3ed5ea7272 Force intermediate targets to be considered if they are non-intermediate for parallel builds in devel/gmake 2013-05-12 05:47:24 +00:00
jperkin
cefff77d66 Add PKGGNUDIR support. 2012-12-06 11:38:19 +00:00
asau
e1ab7079b6 Drop superfluous PKG_DESTDIR_SUPPORT, "user-destdir" is default these days. 2012-10-31 11:16:30 +00:00
cheusov
7855c07dd3 Add symlink gnu/man/man1/make.1
++pkgrevision
2012-06-02 07:57:21 +00:00
cheusov
feaf6c4497 Remove GNU_PROGRAM_PREFIX variable (discussed in pkgsrc-users@).
All utilities are installed with a prefix 'g'. Symlinks with original
names are created in ${PREFIX}/gnu/bin.

++pkgrevision

Fix for some pkglint warnings
2012-05-29 21:37:03 +00:00
hans
9f877ff488 Fix PLIST for option nls. 2011-11-26 23:11:37 +00:00
hans
0743a49adc Use options framework for NLS support. Enable by default on NetBSD, but
not on other platforms.
2011-11-26 19:01:15 +00:00
bsiegert
eeacf6a7b6 Do not use strndup on MirBSD, it used to be broken. Fixes lots of
"mysterious" build failures on MirBSD.

Reviewed by agc and joerg.
2011-07-09 16:25:35 +00:00
obache
1d9df3258a recursive bump from gettext-lib shlib bump. 2011-04-22 13:41:54 +00:00
obache
cf416cae4c uintmax_t is defined in stdint.h on SUA, include it additionally. 2011-02-06 12:09:50 +00:00
is
e7dbc998f9 Revert the last change to avoid cyclic dependencies. 2011-01-17 20:52:58 +00:00
is
9fc1d5d456 Declaring char *getcwd(); interfered with _USE_FORTIFY_SOURCE=N (for N>0).
(pointed out by aniou@ircnet).

The problem is avoided by not declaring in make.h if defined(HAVE_UNISTD_H).

(I wish people would actually use configure's findings after it spent several
billions(en_US) of CPU cycles computing them.)
2011-01-17 14:17:29 +00:00
is
d22dbc03d8 Add USE_TOOLS+=perl; needed to run make test. 2011-01-17 12:53:23 +00:00