Commit graph

10189 commits

Author SHA1 Message Date
taca
7480f9f8fd mk/defaults/options.description: add blocklist 2020-12-22 14:49:57 +00:00
maya
6a70db41c3 Fix error, pointed out by jperkin, thanks 2020-12-20 20:22:17 +00:00
gutteridge
5d6b96b9ed check-files.mk: fix typo in comment 2020-12-20 19:49:25 +00:00
maya
a237f479e4 Simplify check, trust the user's PKGDB_DIR instead of second guessing it.
Fixes bootstrapping a second prefix with /var/db/pkg existing.

In a bootstrap scenario, PKGDB_DIR is defined, so this should just work.
2020-12-20 19:44:16 +00:00
maya
c7638cd9c1 Move the pkgdb compatibility error to a NetBSD-specific file to avoid
breakage for users who have other package managers that use /var/db/pkg
(Reported by Frederic Cambus on FreeBSD, OpenBSD)

Adjust warning: specifying PKGDB_DIR in mk.conf should be sufficient
for building packages for the compatibility pkgdb location.

This is still an error message, because:
- While we can handle the existing references of PKGDB_DIR, new ones
might be created.
- It is a minor inconvenience to people building packages from source.
2020-12-18 17:14:58 +00:00
ryoon
24d993aff2 mk: Use .elif instead of .else if
Found under NetBSD/amd64 9.99.77 of 2020-12-16.
2020-12-17 09:44:24 +00:00
js
ad080fda0f Allow PIE and RELRO on aarch64
I already compiled plenty of packages on my Pinebook Pro with both PIE and
RELRO enabled and have yet to see a build failure.
2020-12-14 21:45:43 +00:00
abs
8fe458fc03 Prefer openjdk11 to adoptopenjdk11-bin for NetBSD
(In the _PKG_JVMS.9 case)
2020-12-14 16:51:16 +00:00
rillig
cb1ef433f4 show-all: explain how to show the values of tricky variables
In most cases, the output of "bmake show-all" is reliable, but in a few
edge cases there may still be surprises.
2020-12-14 00:14:48 +00:00
nia
0b35064193 platform/Linux: always prefer native pthread/libdl 2020-12-13 16:26:12 +00:00
gutteridge
03278bccfb Reflect GNU grep locations on some SunOS variants 2020-12-09 01:24:24 +00:00
js
3a435e0e01 tools.Linux.mk: Consider /bin/find as well 2020-12-05 13:15:58 +00:00
wiz
6ea199b786 mk: fix a duplicate GCC9 variable to refer to GCC10 instead
Noted by Jackson Bryn in PR 55842.
2020-12-05 09:24:00 +00:00
wiz
02e6ee5666 mk: use LOCALBASE instead of PREFIX
I don't understand why this fixes problems, but it does fix the build
of mail/neomutt for me.

From ryoon.
2020-12-03 10:04:48 +00:00
wiz
c85d83c09c *: move default database directory from /var/db/pkg to ${PREFIX}/pkgdb
As discussed in August 2020 and previously on pkgsrcCon 2019.

Ok pkgsrc-pmc@
2020-12-02 10:22:39 +00:00
schmonz
5218c399e1 Run without errors when LICENSE is undefined. 2020-11-19 09:16:38 +00:00
schmonz
727903bd93 Only a few djb-nonlicense packages remain. Retire DJB_RESTRICTED,
instead setting LICENSE directly in those packages. Remove outdated
djbware.mk TODO items.
2020-11-19 08:11:18 +00:00
wiz
70c09ff6fa mk: describe opentracker options 2020-11-16 08:41:41 +00:00
nia
0d650e3ac1 ftp.gnu.org redirects to https. 2020-11-11 09:26:32 +00:00
maya
b602899540 mk/fonts.mk: don't add NO_CONFIGURE and NO_BUILD, have packages set it.
This makes it easier to use the mk fragment with fonts that need a build
step, like new liberation-ttf.

While here switch some fonts using post-install unnecessarily to do-install
(Committed at the same time as it wasn't tested separately)

No PLIST changes to the packages/build breakage, so no changes expected
to the packages.
2020-11-06 18:04:24 +00:00
bacon
9d631121d9 math/openblas: Add to math/Makefile, add options description 2020-11-05 16:35:29 +00:00
nia
d1eb683552 sites: add some working GNOME mirrors 2020-11-05 09:16:00 +00:00
nia
96bc199167 sites: remove GNOME master sites that now either fail or redirect 2020-11-05 09:07:24 +00:00
khorben
3d2c919723 Support PKGPATH with "make package-name"
Now dependencies can be listed either by package name, or path to the
package (eg with "make PACKAGE_NAME_TYPE=path build-depends-list").
Users of PACKAGE_NAME_TYPE=html could use a combination of
PACKAGE_NAME_TYPE=name and PACKAGE_NAME_TYPE=path instead now.

No objection from tech-pkg@
2020-11-04 16:38:59 +00:00
triaxx
8f1b88d20b options.description: fix invalid tabulations 2020-11-01 16:02:09 +00:00
triaxx
00b6bc3cd3 options.description: add description for mpcenc
Used by at least audio/asunder
2020-11-01 15:59:52 +00:00
jperkin
aa75f83214 mk/platform: Use string comparison for Darwin version.
Fixes SDK detection on 11.0.1, where 11 = 11.0 when compared numerically,
leading to the SDK path for "macos11.0.1" not being found.
2020-10-30 17:28:25 +00:00
wiz
8bb51a1d49 mk: expand _USE_GCC_SHLIB section to gcc9/gcc10 2020-10-28 13:19:25 +00:00
tnn
495a9f0355 mk: describe the termion and rodio PKG_OPTIONs 2020-10-26 10:39:23 +00:00
otis
730ac283b1 Set MYSQL_VERSION from within mysql.buildlink3.mk simialrly
to what pgsql.buildlink3.mk does for PostgreSQL.

And while here, document PGSQL_VERSION as variable set by
pgsql.buildlink3.mk
2020-10-20 21:53:31 +00:00
tnn
2f1875f990 mk/compiler/gfortran.mk: bump default from gcc9 to gcc10 on current aarch64
lang/gcc8 has patches for NetBSD/aarch64 and lang/gcc10 has support mostly
upstreamed. Nobody seems interested in fixing gcc9, but the pkgsrc
logic defaults to it when the system compiler is GCC 9 which leads to
broken fortran packages. Let's just skip forward to gcc10.
2020-10-20 19:35:07 +00:00
rin
842c504e92 Add NetBSD/aarch64eb support.
Patch provided by ryo@.
No objections when proposed on tech-pkg@.
2020-10-20 10:40:19 +00:00
schmonz
bfd3541400 Belatedly add default TINYDYN_USER. 2020-10-19 07:10:30 +00:00
adam
8ecbf81f41 postgresql13: added version 13.0
PostgreSQL 13 contains many new features and enhancements, including:
* Space savings and performance gains from de-duplication of B-tree index entries
* Improved performance for queries that use aggregates or partitioned tables
* Better query planning when using extended statistics
* Parallelized vacuuming of indexes
* Incremental sorting
2020-10-18 09:24:02 +00:00
bacon
87edcb24b1 math/blas, math/lapack: Install interchangeable BLAS system
Install the new interchangeable BLAS system created by Thomas Orgis,
currently supporting Netlib BLAS/LAPACK, OpenBLAS, cblas, lapacke, and
Apple's Accelerate.framework.  This system allows the user to select any
BLAS implementation without modifying packages or using package options, by
setting PKGSRC_BLAS_TYPES in mk.conf. See mk/blas.buildlink3.mk for details.

This commit should not alter behavior of existing packages as the system
defaults to Netlib BLAS/LAPACK, which until now has been the only supported
implementation.

Details:

Add new mk/blas.buildlink3.mk for inclusion in dependent packages
Install compatible Netlib math/blas and math/lapack packages
Update math/blas and math/lapack MAINTAINER approved by adam@
OpenBLAS, cblas, and lapacke will follow in separate commits
Update direct dependents to use mk/blas.buildlink3.mk
Perform recursive revbump
2020-10-12 21:51:57 +00:00
triaxx
6ce8724faa libusb1: Fix PR pkg/54903
pkgsrc changes:
---------------
  * Remove the pkgconfig file generation since the version of libusb1 cannot
    be obtained by parsing LIBUSB_API_VERSION from libusb.h (e.g. FreeBSD
    provides 0x01000102 for 1.0.13 and Arch provides 0x01000107 for 1.0.23).
  * At least FreeBSD, Debian and Arch provides a libusb-1.0.pc file for
    their native implementation. Link this file to ${BUILDLINK_DIR}.
  * Add logic in mk/buildlink3 to find pkgconfig files in common pkgconfig
    directories (for at least FreeBSD, Debian and Arch).
2020-10-10 14:17:02 +00:00
jperkin
381af86204 mk: Stop using XCode binaries on Big Sur.
These no longer support being executed via a symlink, failing with errors
such as:

  xcode-select: Failed to locate 'gmake', and no install could be requested

This breaks the entire .tools/bin directory, so we just have to avoid them
and use tools from pkgsrc instead.

It's likely a lot more will need to be added to this list, but this is
enough to get devel/cmake building at least.
2020-10-10 09:31:50 +00:00
jperkin
7fca306169 mk: Exclude /System/Library on Big Sur too.
As expected this is necessary, as early as requring the CoreFoundation
framework for devel/gettext-lib.
2020-10-09 20:18:30 +00:00
jperkin
cc608c9260 mk: Set _OPSYS_LIB_DIRS to the SDK directory on Big Sur.
This is required for find-libs.mk to continue detecting the presence of
libraries supported by the system.  It's definitely not ideal, and only
still works because Apple happens to ship .tdb files for each library, and
these are found via the current "lib${_lib_}.*" glob.

Patch taken from sjmulder@, I only limited it to Big Sur for now in case
there are issues using the SDK directory on older releases.
2020-10-09 17:43:48 +00:00
jperkin
4d7409c2ae mk: Handle missing system libraries on Big Sur.
The new release of macOS removes system libraries from the file system, only
providing access to them via a linker cache and dlopen().  This obviously
breaks many assumptions about how libraries work on Unix systems, and so we
unfortunately need to cripple various checks when running on those systems.

Introduce DARWIN_NO_SYSTEM_LIBS which, when defined, will trigger alternate
behaviour in the infrastructure.  Currently this is in two places:

  * In CHECK_SHLIBS, skip any path beginning with /usr/lib.

  * In registered package metadata, any path beginning with /usr/lib is
    removed from REQUIRES.

The former fixes all package builds, while the second will be necessary for
package managers such as pkgin, as they will no longer be able to verify that
those files are available on the target system.

This is obviously a gross hack, and removes our ability to ensure that the
target system is suitable for the packages we are attempting to install, but
Apple have left us with no alternative, and users will unfortunately be left
to find out at runtime instead.

It's likely this will need to be extended to /System/Library paths too, but
this is required first to actually get packages building before we can start
running bulk builds.
2020-10-09 16:00:16 +00:00
nia
a6c232727e Add OpenAL to the SUSE 13.1 Linux emulation subsystem 2020-10-08 10:42:48 +00:00
he
cac2aab044 Describe new(ish) options:
doh		-- Enable DNS-over-HTTPS support.
softhsm2	-- Enable SoftHSM version 2 for key management.
2020-10-08 07:29:59 +00:00
jperkin
bd6a60f14a checksum.awk: Avoid warnings with newer gawk.
Reported by Jörn Clausen in PR#55581.
2020-10-07 18:09:52 +00:00
rillig
28065d1fcb mk/subst.mk: remove SUBST_NOOP_OK
This means that from now on, there is no global setting to switch off
this redundancy check.  Individual SUBST classes can still set their own
SUBST_NOOP_OK.<id> in order to ignore no-op filename patterns.

The current bulk builds do not show any build failures that are caused
by this, which means that really almost all packages have been migrated.
2020-10-06 17:48:02 +00:00
rillig
c44518e90f mk: fix undefined variables for current make running in -dL mode
In lint mode, NetBSD's make is stricter about undefined variables.  In
conditions, the function arguments must be fully defined.
2020-10-06 17:36:50 +00:00
schmonz
870ab75c2b Describe 'djbdns-listenmultiple' and define default DJBDNS_IP_SEPARATOR. 2020-10-03 13:02:36 +00:00
schmonz
36b0b26e17 Xcode 12 (or its associated Command Line Tools) ships with default-on
-Werror=implicit-function-declaration, which will be great someday when
we're ready for it. Until then, on macOS, detect this situation and tell
the cc wrapper to prepend -Wno-error=implicit-function-declaration.

Taking mail/qmail as our example, this fixes the build on Catalina
with "Apple clang version 12.0.0 (clang-1200.0.32.2)". Adding
-Werror=implicit-function-declaration to CPPFLAGS or CFLAGS (in
mk.conf or on the command line) re-fails the build, as expected, with
a pile of "error: implicit declaration of function". Also as expected,
a full -Werror fails earlier on one of the many other problems with
qmail's code.

For clang on non-macOS platforms, no change.

clang-and-wrapper-ok: joerg@
during-the-freeze-ok: gdt@
2020-09-21 13:09:21 +00:00
rillig
fb1dd6fb9d show-all: use descriptive variable names
The show-all code is mostly line noise, therefore it is all the more
important to provide at least a few hints to a potential reader, by
using descriptive variable names for the iteration variables:

	g => grp
	c => cat
	v => var
	w => width
	x => word
2020-09-12 21:27:15 +00:00
rillig
40c4b60f02 show-all: use separator for long rows of backslashes
I had been confused by the printf commands since some of them used '\n'
and some used '\\\n', which seemed as if there were some quoting issue
that would make it necessary to double the backslashes.

This assumption was wrong though.  The printf commands for the
single-valued variables use the normal '\n', while the lines for the
multi-valued variables end with a real backslash in the output, to
mimick the continuation lines in makefiles.

As a hint that the '\\\n' means backslash + newline, add single quotes
between the two characters.
2020-09-12 21:00:10 +00:00
rillig
b234c33c38 show-all: fix escaping of '$' in variable modifiers
The previous code relied on the exact implementation of Var_Parse in
bmake, and that it does not issue any error messages in case of $$ in
variable modifiers.

In variable modifiers, a $ is escaped using \$, not $$, as documented in
the manual page.

At the time when I wrote the previous version with the _SHOW_ALL.d4 and
_SHOW_ALL.d8 hacks, I did not know about the backslash escaping rule,
and I just added dollar signs until everything seemed to work.  I
couldn't explain why it worked though, which is not surprising since the
code was using an undocumented implementation flaw of bmake.
2020-09-12 20:48:13 +00:00
rillig
245e6ba7ed mk/plist: fail fast on programming mistake 2020-09-12 06:55:08 +00:00
rillig
7ee8a6b95a bsd.build-vars.mk: describe MAKE_FLAGS in details, rewrite and reformat 2020-09-12 06:51:15 +00:00
gutteridge
17ea8d78c2 options.description: add several options offered by ffmpeg4 2020-09-12 03:18:30 +00:00
js
8f9699c585 mk/platform/QNX.mk: Add ACCEPT_INFERIOR_RM_PROGRAM=yes 2020-09-04 19:44:24 +00:00
js
32196b411d mk/platform/QNX.mk: Add /usr/qnx650 to _OPSYS_LIB_DIRS 2020-09-04 19:36:30 +00:00
gutteridge
cca85ce220 options.description: fix a couple of typos 2020-09-04 01:15:42 +00:00
gutteridge
fed75cdfa9 options.description: addition of py-game 2020-09-04 01:14:24 +00:00
kim
b3f2f0abe1 Use http with ftp.funet.fi 2020-09-02 22:16:48 +00:00
kim
c4c3218df0 Refresh the "Finland" section 2020-09-02 20:32:37 +00:00
ryoon
e00f3c4739 mk/compiler: Support GCC_REQD=9 or 10
A pert of PR pkg/55637.
2020-09-02 16:16:43 +00:00
ryoon
aebad2b83b mk/defaults: Add heif option description 2020-09-01 12:21:28 +00:00
jperkin
d26e851380 mk: Remove an unwanted NetBSD RCS tag. 2020-08-27 11:56:38 +00:00
jperkin
dc189ce30d mk: Rewrite the checksum script in awk.
The previous shell script version's runtime was quadratic against the
number of distfiles to verify.  Historically this has not been an issue,
with usually only a handful of files per package.  However, with the
introduction of Go modules the number of distfiles used by a single
package can be very high.

For example, in an upcoming update of www/grafana to version 7.1.5, the
number of GO_MODULE_FILES is 821.  Running 'bmake checksum' takes:

  real    18m20.743s
  user    17m27.975s
  sys     0m49.239s

With the awk code, this is reduced to a far more sensible:

  real    0m4.330s
  user    0m3.241s
  sys     0m0.875s

The script has been written to emulate the previous version precisely,
preserving the same output and error messages and supporting all of its
behaviour, with the one exception that previous exit values of 128 have
been changed to 3, in order to avoid any potential signed 8-bit issues.

The one change in the pkgsrc infrastructure is that the mk/fetch/fetch
script no longer sets a working default value for ${CHECKSUM}.  This is
not a problem in a pkgsrc environment as all of the required variables
are set correctly, but if there happen to be any users who are using
this script in a standalone environment, they will need to set it
accordingly.  This was probably required in many situations previously
anyway, as none of the script's environment variables were set, and
trying to support this would be fragile at best.
2020-08-27 11:45:45 +00:00
sjmulder
55958d5bab mk/platform: Update Darwin version list 2020-08-21 21:29:16 +00:00
wiz
c2bc74e978 mk: describe notmuch option. 2020-08-21 14:55:37 +00:00
riastradh
aaabb1ab41 Add description for `fido' option. 2020-08-21 01:51:16 +00:00
riastradh
6ad068fca8 Add 0-clause-bsd to DEFAULT_ACCEPTABLE_LICENSES.
This is OSI-approved open source:

https://opensource.org/licenses/0BSD

Omitted from license.mk when introduced only because a freeze was on:

https://mail-index.netbsd.org/tech-pkg/2019/12/22/msg022374.html
2020-08-18 20:18:32 +00:00
schmonz
0b38123be9 Add CMAKE_INSTALL_NAME_DIR, a package-settable variable containing the
destination directory to install shlibs. It's used on macOS by
install_name_tool(1). The default is ${PREFIX}/lib.
2020-08-12 14:10:11 +00:00
hauke
b9d2c53c56 Up to 10.12.6 at least, the Mac OS X linker, does not support "-no_warn_inits". 2020-08-11 12:45:54 +00:00
brook
fb1eef408e Add URLs to the MASTER_SITE_R_CRAN list
At some point CRAN added the https protocol to its repositories, but
this was never reflected in MASTER_SITE_R_CRAN.  Add analogues for
all the http sites with responsive https servers.
2020-08-09 16:50:13 +00:00
rillig
6fb4f703ff mk/fetch/fetch.mk: add keywords for "bmake help" 2020-08-04 21:54:46 +00:00
rillig
10ce0dbeb1 mk/help: fix help parser for variable names followed by comma
Seen in mk/fetch/fetch.mk for FETCH_USE_IPV4_ONLY.
2020-08-04 21:46:44 +00:00
rjs
6e897e40af Allow use of openjdk11 on NetBSD/aarch64. 2020-07-29 21:42:30 +00:00
kardel
e285ded710 Complete import of bareos - a fork of bacula 5.2 around 2010 providing
LTO hardware encrytion, bandwidth limitation, data replication across
sites and more.
2020-07-28 06:42:44 +00:00
gdt
c05ad132ea mk/pgsql: Change default to 12
As discussed on foo-pkg at some length, with no significant
objections.
2020-07-27 00:17:12 +00:00
wiz
e92116bd91 mk: remove backwards compatibility for pkg_install from before 2010 2020-07-13 20:25:57 +00:00
jperkin
7880b72e99 mk: Skip unnecessary dirs for CTF/debug conversion.
There won't (or at least should never!) be any files under share/ or man/ that
require conversion for CTF or debug support, so set sensible defaults for both
CTF_FILES_SKIP and STRIP_FILES_SKIP.  Further additions are welcome.

While here rearrange the ordering of the debug skips to match CTF and deliver
a small performance improvement by avoiding unnecessary file tests.

Combined, these reduce the runtime for "make install-ctf install-strip-debug"
in lang/rust down from wall/user/sys 10m33s/2m34s/9m30s to 1m13s/0m46s/1m4s.
2020-07-08 12:37:13 +00:00
maya
a53780f17e revert metadata.mk:1.24, keep passing useless flag -U.
It wasn't useless in older pkg_create, as used by netbsd-7.
Reported by sborrill.
2020-07-06 18:29:11 +00:00
rillig
e806a92e54 mk/misc/show.mk: fix reference to further documentation 2020-07-04 18:08:35 +00:00
rillig
7c3702e7d7 mk/haskell.mk: clean up _VARGROUPS section and unused variables 2020-07-01 15:07:25 +00:00
rillig
207c2f13df mk/haskell.mk: remove variable HASKELL_COMPILER, clean up documentation
There was only a single valid value for HASKELL_COMPILER, therefore the
variable was useless.  It only made the implementation more complicated
than necessary.
2020-07-01 14:58:43 +00:00
adam
a7f1f67f9e remove clang-static-analyzer option 2020-07-01 14:48:04 +00:00
rillig
488f9fbd90 show-all: fix typo in variable name
The width only applies to a single group, not to several or even all
groups.
2020-07-01 09:13:12 +00:00
rillig
d10b39c41d mk/buildlink3: increase width of varnames in show-all-bl3
The buildlink3 variable names are quite long.  So long that using the
default column width of 24 characters, most of the variable values are
not aligned.  In this case, it makes sense to shift them all to the right
a bit.
2020-07-01 07:39:52 +00:00
rillig
ab8c506b0b mk/haskell.mk: regenerate PLIST if it is outdated
Now that haskell.mk distinguishes between plain and outdated PLIST files,
this is possible again.  When haskell.mk knew only missing and outdated,
this was still ambiguous and therefore skipped.
2020-06-29 22:00:58 +00:00
rillig
c8f6fed1ea mk/haskell.mk: fix PLIST status detection
As seen in devel/hs-hashable/PLIST r1.1, which listed only the
package-description but not the package-id.
2020-06-29 20:51:24 +00:00
rillig
a5039d7c3c mk/haskell.mk: only add PLIST_SUBST and PRINT_PLIST_AWK if useful
The PLIST_SUBST and PLIST_PRINT_AWK definitions for Haskell library
packages are only useful if the package-description file exists.  If
that file is absent though, these are skipped.

The test whether the file exists is made as late as possible since that
file does not yet exist at the point where the package Makefile is
parsed.

This also affects the show-all-haskell target, which only shows these
values after the install phase.  This is not perfect but good enough for
practical cases.
2020-06-29 20:30:13 +00:00
rillig
aeff688767 mk/haskell.mk: fix PLIST status detection
Before, running "HS_UPDATE_PLIST=yes bmake update" in wm/xmonad did not
apply the proper substitutions to the generated PLIST file since the
PLIST file was created empty during the GENERATE_PLIST command, and that
empty PLIST file changed the status to "plain" instead of "missing".
Because of that, the HS_INTF and related placeholders were not defined.

The 2 conditions for the status "missing" had to be written in separate
.if clauses because of a bug in bmake that was introduced in 2015 and
will be fixed with the next bmake update.  For further details, see
src/usr.bin/make/unit-tests/cond-short.mk.
2020-06-29 18:07:45 +00:00
rillig
c55271b9e5 mk/subst.mk: activate the SUBST no-op check again by default
It had been switched off to not affect packages in the stable branch
2020Q2.  Now starts the last round where it is possible to disable this
check.  After 2020Q3, all SUBST blocks must either find their patterns or
be explicitly marked as potential no-ops.  This will help to find
outdated SUBST blocks.
2020-06-29 18:04:13 +00:00
ryoon
41860cdb52 mk/defaults: Add option for apache24's mod_md 2020-06-29 13:59:29 +00:00
ryoon
24a47a57af mk: Add db18 to Berkeley DB framework 2020-06-29 13:36:50 +00:00
jperkin
167401291e mk: Handle pdksh issue with "set -e" in for loop.
With our current version of pdksh, a "false && something" construct under
"set -e" conditions will continue as it does with other shells, but if the
construct is within a for loop then it exits, causing failures in the
substitution code.  An explicit "|| true" is necessary to avoid this.

Approved during the freeze by wiz.
2020-06-25 08:45:00 +00:00
schmonz
3948870bde Retire 'djbware-errno-hack' and associated options.mk cleverness.
Instead:

1. Package makefiles including their own options.mk
2. Packages say "SUBST_CLASSES+=djberrno" to get the hack, if needed
3. Packages adjust SUBST_FILES.djberrno, if needed

Should fix bulk build failures due to multiple inclusions of options.mk
and/or incorrect definitions of DJB_ERRNO_HACK.

Approved during the freeze by wiz@.
2020-06-25 05:42:36 +00:00
nia
4b4cfb3fac mk: Add luajit option description 2020-06-24 13:29:23 +00:00
rillig
c842ae6257 mk/haskell.mk: fix PLIST generation for Haskell packages
The package textproc/hs-cgrep does not install a Haskell library.  This
was unexpected to mk/haskell.mk, which generated an obviously wrong PLIST
file for that package, and for 3 other packages.

Noticed by wiz.
2020-06-21 22:21:02 +00:00
taca
fe782b891f mk/defaults/options.description: rename two options
Rename ecap and esi to squid-ecap and squid-esi.
2020-06-21 16:07:06 +00:00
wiz
e597787c88 mk: do not check vulnerability when just fetching distfiles
This is intended to reduce the log output on ftp.NetBSD.org when
fetching all distfiles.

Also, we call the target in basically every step of package creation
(extract, patch, configure, build, install, package) - perhaps we should trim
this down some more.
2020-06-18 17:05:55 +00:00
rillig
548e02a834 mk/subst.mk: SUBST_NOOP_OK defaults to yes again
There are still some packages that fail the strict SUBST check.  These
packages should nevertheless be built using the default pkgsrc
configuration, at least in the stable 2020Q2 branch.  After 2020Q2 has
been switched, the strict SUBST checks will be activated again in the
default configuration.
2020-06-16 18:13:54 +00:00
ryoon
c963102a49 mk/configure: Replace SET(CMAKE_MODULE_PATH... like 'set' too.
This will break print/scribus-qt4.
It uses CMAKE_MODULE_PATH as not a directory list.
It is wrong assumption.
2020-06-13 15:11:11 +00:00
rillig
82d30f4f85 mk/build/build.mk: use SH for the shell in build-env
Providing a realistic build environment has priority over having a
convenient shell with auto-completion and all the likes.
2020-06-12 17:33:23 +00:00
rillig
94077fc887 mk/subst.mk: remove unnecessary SUBST_VARS definition
This is a package-settable variable, and if a package leaves it
undefined, "bmake show-all-subst" should show exactly this.
2020-06-11 20:13:22 +00:00
rillig
97dcdb49ce mk/subst.mk: document the unspecified application order
To avoid bmake warnings because of duplicate class names, the :O:u
modifier had been added in r1.66 on 2020-03-21.  This had the side effect
that the subst classes are now applied in alphabetical order instead of
declaration order.

For this to actually matter, there must be a file that is affected by two
different subst classes and in which the substitutions depend on each
other or prevent each other.  Chances for that are pretty low.

The order is intentionally documented as being unspecified, to allow for
future modifications, just in case that a bmake variable modifier is
invented that filters for duplicates without requiring the duplicates to
be adjacent to each other.  In that situation, it would be nicer to
switch back to declaration order instead of alphabetical.
2020-06-11 19:38:40 +00:00
rillig
86d21b53d7 mk/subst.mk: fix local variable names
These variables don't record whether a file is changed but instead
whether a pattern was found.
2020-06-11 19:27:56 +00:00
rillig
1fb832cc6e mk/subst.mk: always remove temporary file
Fixes PR pkg/55364.
2020-06-11 18:04:41 +00:00
leot
fa8cb992c2 mk/plist: Add EARLY_PRINT_PLIST_AWK
EARLY_PRINT_PLIST_AWK is like PRINT_PLIST_AWK but operates before the
file/directory lists are sorted.

Discussed on tech-pkg@ mainly to address `print-PLIST' order problems for
Python 3 packages:

 <https://mail-index.NetBSD.org/tech-pkg/2020/05/27/msg023249.html>
2020-06-10 16:06:09 +00:00
rillig
12d982ecf7 bsd.buildlink3.mk: add ABI_DEPENDS and API_DEPENDS to show-all-bl3 2020-06-07 17:56:13 +00:00
rillig
e6b0d53b3d mk/check/check-portability.mk: remove leaked debug code
Thanks jperkin@.
2020-06-07 10:42:04 +00:00
rillig
2539de7edb mk/configure/replace-interpreter.mk: clean up show-all-interp variables 2020-06-07 06:10:36 +00:00
rillig
ffb8ba6d5f mk/check/check-portability.mk: use predefined tools
Just in case any of these tools defines some command line arguments. The
correct path had already been used before since both env and sh are added
to USE_TOOLS in bsd.pkg.mk.
2020-06-07 06:05:35 +00:00
rillig
d2050ec11e mk/bsd.prefs.mk: add PKG_DBDIR to show-all-dirs 2020-06-07 05:59:30 +00:00
rillig
c7940cfb7f mk/.../metadata.mk: properly clean up loops after removing ""
There is no evidence that any shell needs the empty string literal in
'for i in "" $var' to loop over a simple variable.  This would only be
necessary if the shell code were generated by a preprocessor such as
bmake or autoconf, and the list of items might end up empty.  In such a
case, the empty string literal prevents to generate 'for i in ; do',
which would produce a syntax error.
2020-06-07 04:41:58 +00:00
rillig
b2a99dcb17 mk/bsd.options.mk: remove redundant assignment to PKG_OPTIONS
This assignment has popped up various times in the pkglint output, even
though it is defined in the infrastructure and not in a specific package.
Since there is no need to have this duplicate assignment, it is removed.
2020-06-06 19:09:37 +00:00
rillig
ff1cb47d6f mk/bsd.options.mk: document variables in the canonical order 2020-06-06 19:02:55 +00:00
rillig
16e188625b mk/subst.mk: fix wrong SUBST failure in mail/policyd-weight
The general rule is that a SUBST_SED that contains _any_ identity
substitution may leave files unmodified, no matter if there are other
substitutions as well.
2020-06-06 13:17:34 +00:00
rillig
cd76433a09 mk/.../metadata.mk: fix reference to undefined shell variable
When RUN includes the -u shell option (see the pkgsrc guide, section
bulk.var.shvar), there is a stray "requires: parameter not set" error.

This error doesn't make the build fail immediately since it is on the
left-hand side of a pipe, where the exit status is ignored.  It would
fail if the shell for bmake were set to bash and its option "pipefail"
were enabled.
2020-06-06 09:33:56 +00:00
rillig
f374c71565 mk, doc: remove obsolete bulk-install and bulk-package targets 2020-06-05 17:05:22 +00:00
gdt
dba3f3a134 subst.mk: Move hint about find to package-settable section 2020-06-03 10:56:46 +00:00
gdt
dc7a002470 subst.mk: Give hint abotu SUBST_NOOP_OK
Note that a typical reason to need this is using find to generate a
list of files.
2020-06-02 23:37:25 +00:00
jperkin
25bb928af5 mk: bmake cannot compare non-integers numerically.
Just use an empty() match instead.
2020-06-02 16:22:40 +00:00
sjmulder
46895896ea mk/defaults: Add 'mouse' option
Used already in sysutils/nnn but forgot to commit options.description.
2020-06-02 10:38:26 +00:00
rillig
c42fb662dc mk/compiler.mk: check for too late GCC_REQD and USE_LANGUAGES
For USE_LANGUAGES there is already a pkglint warning, but for GCC_REQD it
is missing.  It's better to have this check directly in the
infrastructure since it is more reliable.

This check is disabled by default, to not cause any new breakage.
It should be enabled in bulk builds.
2020-06-02 06:58:13 +00:00
gutteridge
79f41f7786 options.description: add "keyring" option 2020-05-31 23:48:00 +00:00
sjmulder
a376838f3a mk/compiler: Set -fcommon for GCC 10
As with clang. Default got flipped with v10.
2020-05-31 00:00:13 +00:00
sjmulder
9014f3f496 mk/compiler: Fix version check for GCC 10
Caused SSP flags to be omitted in GCC 10. Check flipped because all new
GCC versions can be expected to support it.
2020-05-30 22:45:36 +00:00
rillig
b964aa2b2f mk/defaults/options.description: remove trailing whitespace 2020-05-30 19:57:23 +00:00
khorben
94c385420d Typo 2020-05-30 03:36:45 +00:00
maya
f1308fb6bd Flip the switch on ALLOW_VULNERABLE_PACKAGES to allow them by default.
Right now, users who install the pkg-vulnerabilities database find that
the vast majority of packages fail to build, penalizing them too severely.
Package auditing can still be done via "pkg_admin audit".

Alternatively, the previous behaviour can be restored with
ALLOW_VULNERABLE_PACKAGES=no in mk.conf.

Additionally, bmake-ify the check.mk logic. It was easier to do this,
as the package relied on a single long ${RUN} command.

Proposed on tech-pkg, with no objections to the idea of changing the
default, just the method of doing so.
2020-05-28 16:22:58 +00:00
nia
bee9205d2d mk/tools: not all linuxes have bash (e.g. alpine) 2020-05-28 14:47:36 +00:00
gutteridge
212fb2eb3a options.description: "firefox" is also no longer an option 2020-05-25 00:15:14 +00:00
gutteridge
1bf8f4e1c2 options.description: +2 missing entries, -1 no longer used 2020-05-25 00:07:52 +00:00
rillig
11dbf836d6 mk/configure: fix configure options check for custom CONFIGURE_SCRIPT
Seen in cross/arm-none-eabi-gdb.
2020-05-23 12:11:33 +00:00
adam
f616f8bf6d MySQL 5.5 and PostgreSQL 9.4 are no longer with us 2020-05-23 07:35:56 +00:00
rillig
4c58410ecc mk/configure: fix check for unknown configure options 2020-05-22 15:21:15 +00:00
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
rillig
d834a09e98 mk/subst.mk: switch command substitution back to backticks
To work properly, the $(...) should have been $$(...).

In pkgsrc the command substitution is usually done via `backticks`, for
compatibility with /bin/sh from Solaris.  To fix the shell parse errors,
the special characters are properly escaped inside the command
substitution.
2020-05-01 06:42:32 +00:00
joerg
9e908222f3 Simplify 2020-04-30 23:52:30 +00:00
joerg
8298e916c9 Use $() as it gives more consistent quoting behavior as seen by
devel/ruby-redmine.
2020-04-30 23:51:45 +00:00
joerg
a6cd5059b6 Terminate case properly 2020-04-30 23:51:15 +00:00
joerg
495466824a Suppress unnecessary output when not debugging 2020-04-30 23:50:28 +00:00
plunky
1736d74179 add afl-3.0 to acceptable defaults 2020-04-30 08:43:25 +00:00
rillig
ac62ef6aaf mk/subst.mk: fix combination of SUBST_FILTER_CMD with SUBST_NOOP_OK=no
Since SUBST_FILTER_CMD is a shell command, it may contain arbitrary
characters.  The condition in mk/subst.mk that tested whether
SUBST_FILTER_CMD was the default filter command was evaluated at run
time.  In such an evaluation, the variables (lhs and rhs) are fully
expanded before parsing the condition.  This means that these variables
must not contain quotes or unquoted condition operators.

Exactly this situation came up in one of the regression tests.  The
quoted "0-9" was copied verbatimly into the condition, including the
quotes.  The resulting condition was:

	"tr -d "0-9"" == "LC_ALL=C /usr/bin/sed "

This produced a syntax error because of the left-hand side. Adding a :Q
modifier would have helped for the left-hand side, but this would have
been necessary for the right-hand side as well.  Since an empty SUBST_SED
is defined not to "contain only identity substitutions", the first
condition can simply be removed.

The whole condition in the shell program had not worked anyway since it
expanded to either "[ true ]" or to "[ false ]", and both of these
commands exited successfully.
2020-04-29 22:46:42 +00:00
rillig
4bafb8759a mk/subst.mk: allow identity substitutions in SUBST_NOOP_OK=no mode
There are several cases where patterns like s|man|${PKGMANDIR}| appear in
SUBST_SED.  Up to now, these had been categorized as no-ops and required
extra code to make the package build when SUBST_NOOP_OK was set to "no".

This was against the original intention of SUBST_NOOP_OK, which was to
find outdated substitution patterns that do not occur in SUBST_FILES
anymore, most often because the packages have been updated since.

The identity substitutions do appear in the files, they just don't change
them.  Typical cases are for PKGMANDIR, DEVOSSAUDIO, PREFIX, and these
variables may well be different in another pkgsrc setup.  These patterns
are therefore excluded from the SUBST_NOOP_OK check.
2020-04-29 18:33:56 +00:00
rillig
ec5b9249a5 mk/wrapper: allow "unwrap" to be a no-op SUBST block
Discovered in pkgtools/pkg, where libpkg/pkg.pc was left unmodified.
2020-04-27 05:23:11 +00:00
rillig
fe5c19b1df mk/check/check-wrkref.mk: fix shell quoting
Before, adding "Binary file matches" (including the quotes) to
CHECK_WRKREF_EXTRA_DIRS led to a syntax error. Adding this string is so
obvious that it should have been added a long time ago already.
2020-04-26 14:23:25 +00:00
rillig
363de64c50 mk/misc/can-be-built-here.mk: remove NOT_FOT_UNPRIVILEGED
It is unused, and its error message wrongly said "only for unprivileged",
which nobody complained about for 13 years.
2020-04-26 06:56:29 +00:00
gutteridge
94a653defe options.description: add openbox and xfce4-wm (used by LXQt) 2020-04-26 03:17:41 +00:00
rillig
ab30dd14be mk/build/build.mk: use the login shell by default for build-env 2020-04-25 21:36:17 +00:00
js
9da7e8bc30 mk/fetch/fetch.mk: Use -f with ofhttp
pkgsrc wants to be able to override files when the checksum didn't
match.
2020-04-25 11:36:20 +00:00
js
c982f1310b mk/fetch/fetch.mk: Add ofhttp as fetcher 2020-04-25 11:21:06 +00:00
rillig
ae56c6b318 mk/subst.mk: don't recommend {pre,do,post}-patch
These often lead to broken patches, unless the patches are generated very
cautiously. Because of this, pkglint already warns about this.
2020-04-23 19:32:53 +00:00
rillig
5a278be828 mk/subst.mk: warn about all noop patterns before erroring out 2020-04-23 19:30:29 +00:00
rillig
aef7a2d723 mk/subst.mk: omit ./ for sanely named files, quote filename patterns 2020-04-23 19:16:49 +00:00
rillig
a7fc59f213 mk/subst.mk: refactor main code
The indentation of the inner loop has been fixed.

The chmod is only run if the file has actually changed. In the other
case, the file would have been removed right after the chmod, which made
the chmod unnecessary.

For compatibility with ancient operating systems whose /bin/sh still does
not understand negated conditions (SunOS), these conditions have been
avoided and were written using && and || instead.

The inner loop has been flattened a bit, to compensate for the
indentation of the outer loop.
2020-04-23 19:06:09 +00:00
rillig
48d391c218 mk/subst.mk: prevent filename expansion using "set -f"
This avoids creating a temporary directory.

The "set -f" option is not used anywhere else in pkgsrc, even though it
has been available since 1985 in the 8th Edition of Research Unix. Even
AIX and IRIX have that option, so it seems a safe bet.
2020-04-23 18:06:13 +00:00
mef
c4fe655544 (mk/fetch/site.mk) ftp.cse.buffalo.edu has not been responded for a week 2020-04-21 23:00:14 +00:00
jaapb
680ebe308b Use MAKE_ENV when calling dune in ocaml.mk 2020-04-21 11:23:29 +00:00
rillig
73681614b9 mk/license.mk: adjust location of the ninka package 2020-04-19 12:53:21 +00:00
rillig
058d3e5132 mk/subst.mk: document that SUBST_VARS does not support dollar 2020-04-18 15:04:34 +00:00
rillig
2bacc5cd9b mk/subst.mk: make error message for filename pattern easier readable 2020-04-18 12:59:42 +00:00
rillig
2a5426f9ce mk/subst.mk: avoid undefined behavior in regular expressions
https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html
says in section 9.3.2 BRE Ordinary Characters that only very few
characters may be preceded with a backslash.

As a side effect, this change allows parentheses in the variable names
listed in SUBST_VARS (even if that will never happen in practice).

The reason that the regression test had not replaced VAR.[] before was
simply that this variable had not been listed in SUBST_VARS.
2020-04-18 12:21:10 +00:00
rillig
068572da5d mk/subst.mk: fix pkglint warnings and notes 2020-04-18 11:42:34 +00:00
rillig
dc1bafda16 mk/subst.mk: rename local variable _class_ to class
This makes the code a bit more readable.
2020-04-18 11:32:01 +00:00
rillig
8cfd3cfc77 mk/plist/print-plist.mk: add show-all-print-PLIST target
This makes it easier to see what happens during print-PLIST.
2020-04-18 10:54:21 +00:00
joerg
7134516a02 Adjust last to really prepend in the case of cwrappers. 2020-04-17 13:36:26 +00:00
joerg
76dab5b3cc clang 10 defaults to -fno-common with significant fallout in pkgsrc.
Override that by prepending -fcommon.
2020-04-17 13:35:36 +00:00
sborrill
d14997ed69 Work around a potential shell bug where "${FOO=${BAR%/*}}" does not work
if quoted. Seen on NetBSD 7.

#!/bin/sh
in="/path/to/dir with space/file"

: "${file=${in##*/}}"
: "${dir=${in%/*}}"
echo "dir:$dir"
echo "file:$file"
[ "$dir" = "$file" ] && echo "dir and file are same"

Leads to errors when adding packages such as:
./+FILES: cannot create /var/db/pkg.refcount/files/etc/rc.d/xenguest//var/db/pkg/xe-guest-utilities-7.0.0: directory nonexistent
2020-04-15 13:33:32 +00:00
nia
acc40588e7 mk/oss.buildlink3.mk: Simplify per-OS DEV* conditionals. Add MIDI. 2020-04-11 10:31:14 +00:00
rillig
7c41eda88e mk/subst.mk: add user-settable SUBST_NOOP_OK
This variable allows to make SUBST stricter than before. This will break
several packages that have redundant filename patterns. Most of these are
typos or outdated and should be updated or removed.
2020-04-01 15:10:09 +00:00
rillig
cb79642b88 mk/configure/replace-localedir.mk: allow SUBST to be a no-op
Since the SUBST_FILES of this class are generated by running find(1) in
WRKSRC, there may be files that are unaffected by the substitution.
2020-03-30 22:57:18 +00:00
rillig
b9804ebb15 mk/plist/plist.mk: use less verbose code for picking up PLIST files
While here, add more verbose documentation on PLIST_SUBST since the way
from the package's PLIST file to the +PLIST file can easily be confused
with the other way round, which is handled by print-PLIST.
2020-03-30 22:54:24 +00:00
rillig
d0c3b5301f mk/misc/show.mk: prevent unnecessary .for loop expansion
The .for loops are expanded by bmake as soon as they are parsed. Since
there are many variable groups, and since each of these groups has
several variables, this takes quite a bit of time.

The time for running "bmake clean" in pkgtools/pkglint went down from 1.0
second to 0.7 seconds. This may not seem much, but when multiplied with
23088 times 9, this little change may speed up a full bulk build by 62000
seconds, which is about 18 hours.

The side-effect is that the show-all-* targets can only be run from the
command line, not as a dependency of other targets. This restriction will
probably go unnoticed.
2020-03-30 22:49:30 +00:00
rillig
55e7cdf4de mk/fetch/fetch.mk: don't print double-slash in pathname 2020-03-30 22:44:26 +00:00
riastradh
ea504032f9 Missed a spot -- set MAKE_ENV during haddock build too. 2020-03-30 18:23:48 +00:00
riastradh
270c7f3e7b In Haskell packages, set MAKE_ENV while running ./Setup build. 2020-03-30 17:51:07 +00:00
riastradh
4c01312406 New package variable HASKELL_PKG_NAME.
Used to form _HASKELL_PKG_DESCR_DIR.  Defaults to DISTNAME, but for
some packages (hledger, incoming), the same DISTNAME is shared by
multiple packages.  So let the package define it explicitly if need
be.
2020-03-30 16:51:53 +00:00
wiz
d0ebe3c3a1 subversion-base: add option for plaintext password storage, default off.
Requested by Thomas Orgis.
2020-03-30 11:44:10 +00:00
nia
73411e4b5f mk/compiler: Make gfortran the default fortran compiler.
Discussed on tech-pkg@ before freeze.
2020-03-30 09:39:24 +00:00
rillig
b140f1fa76 mk/help/help.awk: find library functions in undefined-references.help
Before, searching for topic=socket did not find the documentation.

The detection of useful help topics is still not perfect since it now
finds sections that consist of a single word, such as the word
"undo-replace" in mk/install/replace.mk, but that will be fixed later,
after adding a few unit tests.
2020-03-30 06:21:52 +00:00
taca
4979d54327 mk/defaults/options.description: add esi
Add description for esi, ESI (Edge Side Includes).
2020-03-29 05:23:54 +00:00
rillig
97aab57291 mk/subst.mk: fix typo in documentation 2020-03-28 20:39:50 +00:00
joerg
4347ed3fcc Allow mk.conf to actually overwrite USE_PKG_ADMIN_DIGEST. 2020-03-27 20:57:34 +00:00
gdt
555a3776ae mk/compiler/gfortran.mk: Add comment about gcc 4.8 handling
The code maps gcc-4.8.x to "4", and then won't find gcc4.  This is a
bug, but it may be that it's just as well to never match 4.X of any
kind, and use 7 anyway.   Explain this issue with a \todo to fix the
bug or document the consequences as intended.

(This is a comment-only change.)
2020-03-26 12:44:46 +00:00
gdt
19ce42d824 mk/compiler/gfortran.mk: Fix bugs in version selection
Adjust regexp that removes .Y.Z from gcc-X.Y.Z.

Test for gcc being contained in PKGSRC_COMPILER, vs ==, so that a
value of "ccache gcc" is handled properly.

(ok for mk during freeze jperkin@)
2020-03-26 12:42:02 +00:00
jperkin
071d314936 mk: Support undefined UNLIMIT_RESOURCES.
Currently virtualsize is only defined for NetBSD, breaking builds that use it
on any other platform.  Adding defaults for all other platforms should be done
at some point, this at least unbreaks package builds for now and provides a
safer default for any future additions.
2020-03-26 12:23:54 +00:00
joerg
a1e7953bb0 Don't use normal memory size limits with GHC for module builds. 2020-03-24 20:43:17 +00:00
joerg
d2c378ee5e datasize limits for VMs should also be matched by VM limits. 2020-03-24 20:41:58 +00:00
rillig
62a0adf4a6 replace-interpreter: make documentation more precise
There are several places in pkgsrc where the files to be patched are
listed individually instead of just saying util/*/*.sh. This is
unnecessarily detailed. Encourage package authors to use filename
patterns more often.

An example is REPLACE_PYTHON in lang/clang, which currently fails because
some of the listed files don't exist anymore.
2020-03-24 04:40:34 +00:00
jperkin
b1d6962311 mk/subst.mk: Unbreak builds with no substitutions.
At least some implementations of rmdir(1) do not allow you to remove the
current working directory.  Fixes bootstrap on SunOS.
2020-03-23 11:27:29 +00:00
jperkin
f4e4c8e04e mk: Explain what SSP is, requested by rillig@. 2020-03-23 09:25:58 +00:00
jperkin
b44d00ddbd mk: Remove warning messages for unsupported check targets.
These appear to have been cargo culted around for a while, don't even have
anything to do with DESTDIR mode, and are completely useless.  Simplify the
logic a little while here.  Noticed by rillig@.
2020-03-23 09:24:35 +00:00
riastradh
89445637ce New target test-env, like build-env and configure-env. 2020-03-23 00:33:48 +00:00
rillig
a739837b20 mk/configure/replace-interpreter.mk: add missing empty line
The optional /usr/bin/env is independent from sh. It applies to all
languages.
2020-03-22 21:31:21 +00:00
joerg
3430630848 Add a ulimit flag for address space limits. Support it on NetBSD for
now.
2020-03-22 21:17:30 +00:00
rillig
7d0baa0a1f mk/subst.mk: only create cookie after everything is finished
When fixing the SUBST definitions in a package, it can hapen that the
substitution aborts in the middle. In such a case the cookie should not
be written and the substitution should be retried. Otherwise the build
may continue with half the substitutions done.
2020-03-22 18:43:46 +00:00
rillig
b885ff75ea mk/subst.mk: ignore directories in SUBST_FILES
Seen in multimedia/libmp4v2, where a pattern also matches the CVS
directory from the distfiles.
2020-03-22 13:19:50 +00:00
rillig
4d12683e99 mk/subst.mk: use the same severity for all messages
The severity now depends only on the setting of SUBST_NOOP_OK. Right now
this means that some former warnings will be reported as info only, but
that will change after switching the default of SUBST_NOOP_OK after
2020Q1. Then they will all be reported as warnings, followed by the final
error saying that the pattern has no effect.

This change makes it easier to detect inconsistencies and outdated
definitions, for example by setting the global SUBST_NOOP_OK=no and
redefining WARNING_MSG to actuall fail.
2020-03-22 12:15:59 +00:00
rillig
12053e22a2 mk/bsd.prefs.mk: add PREFIX to show-all-dirs 2020-03-22 11:07:14 +00:00
rillig
c61b55368a mk/wrapper/transform-gcc: pass -Werror=* without warning 2020-03-22 11:05:50 +00:00
nia
88d9bac28d mk/fonts.mk: Empty USE_LANGUAGES 2020-03-22 09:46:10 +00:00
rillig
fdc3adecd5 mk/subst.mk: run diff in the default locale
The diff program is only used to produce informative output in the build
logs, nevertheless its output might be translated if there are lines that
do not end with a newline.
2020-03-21 19:26:12 +00:00
rillig
8e82112864 mk/subst.mk: add global SUBST_SHOW_DIFF variable
This is useful in bulk builds or when trying to understand what happens
under the hood, since the SUBST code leaves no .orig files around.
2020-03-21 13:30:35 +00:00