Commit graph

9856 commits

Author SHA1 Message Date
joerg
84342eb5e0 Add a missing redirect to ensure that all files are picked up for
hashing.
2020-05-22 01:24:05 +00:00
rillig
dde6099996 mk/configure: remove outdated documentation 2020-05-21 21:05:51 +00:00
rillig
ecee64e6c9 mk/configure: add variable GNU_CONFIGURE_QUIET
This allows bulk builds or other setups to see interesting error
messages, without them being hidden in the noise of "checking ...".
2020-05-21 20:50:54 +00:00
rillig
e45d2e3458 mk/pkgformat/metadata.mk: fix relative paths in PATCHDIR and FILESDIR
Before, relative paths had been stored as-is.  This affected those
packages that defined PATCHDIR or FILESDIR as relative directory instead
of prefixing it with ${.CURDIR}.

Since there are already several other paths that are interpreted relative
to the package directory (CONFLICTS, DEPENDS), allow PATCHDIR and
FILESDIR to be specified as relative paths, too.  This makes the package
Makefiles a bit shorter.
2020-05-21 18:48:43 +00:00
rillig
6c80597618 mk/configure/gnu-configure.mk: disable built-in option check
The rewritten check for unknown configure options already checks for
options that are not defined anywhere.  After that, the configure scripts
don't need to check for these options anymore since all remaining options
are known to the package, in at least one of its configure scripts.
2020-05-21 15:29:25 +00:00
rillig
cc8614f669 mk/configure: completely rewrite check for unknown configure options
The previous implementation could not reliably detect outdated configure
options.  This was apparent in devel/gettext-tools, where the option
--with-included-libcroco had become unknown between May 2019 and May
2020, but the check was not run.

The behavior is the same in the pkgsrc default configuration.  Only if
GNU_CONFIGURE_STRICT=yes, the new check is activated and will make
packages fail that previously succeeded to build.  Since that variable is
not widely known, there won't be much sudden breakage, if any.
2020-05-21 13:42:10 +00:00
rillig
1126482bd5 mk/configure/replace-interpreter.mk: silently skip broken symlinks
Like directories, they probably come from shell globs.

Seen in misc/byobu.
2020-05-18 06:06:34 +00:00
tnn
32e2e5830f g/c references to openjdk7 2020-05-17 00:54:00 +00:00
rillig
67d8ae7d2b mk/subst.mk: change default value for SUBST_NOOP_OK from yes to no
This makes the SUBST blocks stricter than before, to detect outdated or
unnecessary definitions.

Filename patterns that are not affected by any of the SUBST_SED
expressions make the build fail.  It is still ok if only some of the
files from a pattern are affected and some aren't.

The latest bulk build shows that most of the build failures are fixed.
The packages that fail in that build are mostly due to other failures,
like missing C headers, wrong PLIST files, unresolved references at link
time.  There may be a few packages that still fail because of this, but
these are near the leaves of the dependency tree.

https://mail-index.netbsd.org/pkgsrc-bulk/2020/05/14/msg018919.html
2020-05-16 19:02:32 +00:00
rillig
f0feafbfc1 mk/subst.mk: properly detect s,a,a,1 as identity substitution
Seen in games/bastet.  The 1 is not necessary though since it only
repeats the default behavior of sed.
2020-05-16 12:43:10 +00:00
maya
309a5cc299 pkg_create -U doesn't do anything, don't pass the flag. 2020-05-15 22:13:39 +00:00
nia
24f16fcee8 mk/defaults: Revert PKG_DEVELOPER default change for now 2020-05-15 10:22:42 +00:00
nia
161d25a3e5 mk/defaults: Switch PKG_DEVELOPER on by default.
Bulk builds with PKG_DEVELOPER set have been the status quo for a while.

Every package in pkgsrc has to be expected to build with this.
2020-05-15 10:10:04 +00:00
rillig
b634189104 mk/tools/bsd.tools.mk: list _USE_TOOLS in show-all-tools
This variable is used in quite a few places, which makes it interesting
enough, even though it is an implementation detail.
2020-05-13 04:24:17 +00:00
rillig
bd18226445 mk/configure/cmake.mk: allow no-op SUBST block
For example, graphics/openjpeg on SunOS doesn't need it.
2020-05-12 17:36:20 +00:00
kleink
856b634d30 options.description: Add pygments. 2020-05-12 10:33:49 +00:00
rillig
21aab909de mk/subst.mk: fix edge case in detection of identity substitutions
In a basic regular expression, a dollar-sign only means end-of-string if
it appears at the end of the pattern, or (at the choice of the
implementation) at the end of a \(...\) subexpression.

This affects the package converters/help2man that uses a regular
expression containing a dollar in a non-final position.  This regular
expression had not been detected as an identity substitution even though
it is one.
2020-05-11 19:52:13 +00:00
rillig
3c7198b683 mk/haskell.mk: allow to generate PLIST files
Since GHC 7.10 or 7.8, the Haskell packages are installed in directories
whose name contains the package hash.  This made it harder to predict the
exact pathname.  Havin the exact pathnames in the PLIST file is the
ideal, it also helps to record the general structure of the installed
files to see whether some file unexpectedly appear or disappear.

To enable this for Haskell packages, the various base directories are
replaced with placeholders during print-PLIST.  These placeholders are
translated back to their respective paths when the +PLIST is generated
from the PLIST in the package directory.

Except for 2 packages, all Haskell packages in main pkgsrc had their
package PLIST file removed.  To help in adding them back, the pkgsrc
developer can set HS_UPDATE_PLIST=yes in mk.conf, which will generate the
PLIST directly into ${PKGDIR}/PLIST upon installation.

Most packages in pkgsrc-wip still have their old PLIST, and these are
migrated automatically as well.
2020-05-10 17:46:59 +00:00
rillig
7f4b055291 mk/tools: don't create empty symlink for wrong tool definition
This case can only happen in the following special case:

TOOLS_CREATE+=		asdf
TOOLS_PATH.asdf=	# empty

If there is a lonely TOOLS_CREATE without a corresponding TOOLS_PATH, it
defaults to ${FALSE} and thus doesn't trigger this code.
2020-05-10 14:36:18 +00:00
rillig
2b1a9a3af0 mk/scripts: fix a few of the HTML injections in README generation
These are needed for the djb-errno-hack option, which includes the <>
characters.
2020-05-10 07:48:10 +00:00
rillig
026854da4d mk: move locking.mk from internal to misc
Locking is not really internal since it has user-settable variables.
2020-05-10 06:52:49 +00:00
rillig
10f1774814 mk/tools/perl.mk: allow to silence the USE_TOOLS+=perl warning
Packages that don't declare USE_TOOLS+=perl and whose configure script
invokes perl produce a warning.

Usually warnings are ignored, but they can also be configured as errors,
for example during a strict bulk build.  In this situation it is
necessary to override the default behavior of the perl tool to fail
silently.  Up to now, defining both TOOLS_BROKEN+=perl and
TOOLS_FAIL+=perl produced a duplicate make target.

To handle this situation, let TOOLS_BROKEN+=perl take precedence over
TOOLS_FAIL+=perl.  This is much easier than finding out in each case how
to disable the perl check in the configure script, which is most often
done by adding any of the following to CONFIGURE_ENV: PERL=#none,
ac_cv_prog_PERL=#none, ac_cv_path_PERL=#none.
2020-05-10 06:05:35 +00:00
rillig
3ab427f38a mk/tools/create.mk: make tool wrappers smaller
There is no need to include the comments from the shquote function.
2020-05-09 21:08:05 +00:00
rillig
959e1dbe9a mk/tools/bsd.tools.mk: include _TOOLS_VARNAME in show-all-tools
This information is useful for getting the variable name that corresponds
to a tool.  In most cases this is just the uppercase name of the tool,
but there are exceptions like ${SETENV} for env, ${HOSTNAME_CMD} for
hostname.
2020-05-09 21:04:14 +00:00
rillig
a17e4f77d6 mk/tools/create.mk: add new variable TOOLS_ALWAYS_WRAP for debugging 2020-05-09 20:50:20 +00:00
rillig
85f1197b55 mk/check/check-portability.mk: improve documentation 2020-05-09 19:40:10 +00:00
rillig
3e147f8edf mk/pkginstall: fix output of show-all-pkginstall 2020-05-09 16:48:57 +00:00
rillig
e4719c2d8a mk/subst.mk: allow identity substitutions with escaped dots
This fixes the build of converters/help2man in SUBST_NOOP_OK=no mode.
2020-05-06 06:14:56 +00:00
rillig
78ff56665f mk/check/check-portability: opt-in for newer portability checks
There are a few portability checks that have been existing for years.
Later additions need an opt-in phase to avoid breaking existing usages.

https://mail-index.netbsd.org/tech-pkg/2020/05/04/msg023084.html
2020-05-05 05:55:25 +00:00
rillig
80ac4ecc53 mk/check/check-portability: fix error message when no patches are found 2020-05-04 21:48:18 +00:00
rillig
4b2126055f mk/check/check-portability: skip X.in if X is patched
A commonly occuring scenario is that a package patches the configure
script, but that the corresponding configure.in contains shell code that
is not portable.  In cases like these, configure.in is typically not used
during the build, therefore there is no need to check it for portability.

This also applies to all other combinations where a file is patched and
the corresponding file.in contains unportable shell code.
2020-05-04 21:32:48 +00:00
rillig
8e20d19199 mk/configure/pkg-config-override.mk: ignore no-op SUBST blocks
There are many .pc files that don't have a "Libs:" line.  That is totally
ok, therefore just skip these files.
2020-05-04 18:06:56 +00:00
rillig
419777e0d9 mk/defaults/options.description: describe a few options 2020-05-03 19:11:31 +00:00
rillig
a58591ede9 mk/bsd.options.mk: make deprecated options more visible
Up to now, the generated warnings were not prefixed with anything.
2020-05-03 18:45:28 +00:00
rillig
7d303d13c4 mk/help: clean up code 2020-05-03 10:57:06 +00:00
rillig
71696d3d82 mk/help: remove negation from variable names 2020-05-03 10:51:06 +00:00
rillig
7b6dd6a591 mk/bsd.pkg.mk: improve documentation 2020-05-03 10:34:00 +00:00
rillig
6aaf94f2da mk/bsd.options.mk: fix comment for bmake help
Before, "bmake help" only printed the second section of the help topic.
2020-05-03 10:10:05 +00:00
rillig
1d397cf6b5 mk/bdb.buildlink3.mk: fix outdated comments 2020-05-03 10:00:42 +00:00
rillig
ff016ffa31 mk/help: do not treat continuation lines as textual comments 2020-05-03 09:51:07 +00:00
rillig
1673ec7820 mk/help: make variable more precise
The word "ignore" was too unspecific.  There are lines that should be
printed, and there are lines that should be evaluated.
2020-05-03 09:44:07 +00:00
rillig
df9c05e64b mk/bsd.pkg.mk: fix typos in documentation 2020-05-03 09:22:16 +00:00
rillig
1894997149 mk/help: clean up code for selecting relevant help topics 2020-05-03 09:06:59 +00:00
rillig
4e2bff9c98 mk/help: only list help topics that have associated keywords 2020-05-03 08:49:16 +00:00
rillig
35d85c0109 mk/wrapper/transform-gcc: pass -Wno-* without warning
Seen in lang/mono6.
2020-05-02 19:32:59 +00:00
rillig
25920342a9 sysutils/qlogtools: skip nonexistent error.h when fixing errno
Some packages using mk/djbware.mk do not have error.h but need to fix the
errno declaration in other files.  Up to now, there was no good way of
achieving exactly this.

Building packages like these in a SUBST_NOOP_OK=no build makes these
packages fail.  To fix these packages, the configuration of the files
needed to be a bit more flexible.
2020-05-02 11:49:40 +00:00
rillig
77b53694f0 mk/djbware.mk: indent nested .if and .include directives 2020-05-02 11:43:09 +00:00
rillig
ad23776a43 mk/subst.mk: fix shell parse error for special sed expressions
The escaping inside the backticks had been wrong.  Because of this,
parentheses and semicolons were interpreted as shell syntax.

Switching to $(...) command substitution removes the need for quoting
some of the characters and makes the whole command simpler to understand.
Doing the escaping for the backticks command properly would have involved
lots of special cases.

The $(...) command substitution was used sparingly in pkgsrc up to now
because some older or broken shells do not support it.  Since these
shells do not end up as the shell that runs the commands from Makefiles,
that's not a problem.
2020-05-02 05:52:09 +00:00
rillig
63aa1c16fe mk/fuse.buildlink3.mk: make patching of configure scripts optional
Some packages that don't need this patch are:
fuse-afpfs-ng-0.8.1nb5
fuse-bindfs-1.8.4nb1
fuse-chironfs-1.1.1nb1
fuse-cryptofs-0.6.0nb6
2020-05-01 21:12:05 +00:00
rillig
b51e961dae mk/subst.mk: fix typo in diagnostic 2020-05-01 19:53:48 +00:00