Commit graph

10189 commits

Author SHA1 Message Date
pho
822826a3f8 mk/haskell.mk: Switch the default Haskell compiler to lang/ghc92 2022-02-12 08:38:15 +00:00
pho
b47b80d798 Wrote a packaging guide for Haskell packages 2022-02-11 05:24:06 +00:00
pho
6bb80a54ac Infrastructure improvements and bugfixes to mk/haskell.mk
* mk/haskell.mk no longer set USE_TOOLS+=pkg-config for all the packages
  that include it. Instead it does TOOLS_FAIL+=pkg-config unless they
  explicitly do USE_TOOLS.

* Fixed an issue regarding Template Haskell and our wrappers.

* Fixed an issue where packages that had things like PLIST.common but
  lacked PLIST were incorrectly considered to have no PLISTs.

* mk/haskell.mk now supports packages that contain more than a single
  library. The INSTALL and DEINSTALL scripts can now handle such packages
  properly.
2022-02-11 01:11:57 +00:00
schmonz
0e29b0a970 Fix GLIBC_VERSION detection on Manjaro ARM (so that devel/gettext-tools
passes PLIST checks) and probably other Arch Linux too.
2022-02-10 21:22:44 +00:00
gutteridge
524b41c341 buildlink3/find*.mk: fix typos in comments 2022-02-10 18:58:37 +00:00
pho
e6b403f35b Warn when PLIST is missing, not just when it is outdated 2022-02-07 02:58:24 +00:00
pho
829724adf5 Fix a bug in my previous commit 2022-02-07 02:43:42 +00:00
pho
1a798fd2dd Handle the case where *.cabal lacks the field "Build-Type" 2022-02-07 02:39:41 +00:00
gutteridge
226926d973 options.description: add a couple of PHP options 2022-02-07 02:14:35 +00:00
schmonz
aa0ba74e0b Add OSX_SDK_MAP for 12.2. From Herbert J. Skuhra in private mail. 2022-02-05 21:43:17 +00:00
wiz
9265e3fae1 compiler/clang.mk: do not disable PIE support
joerg says clang has the same interface for this like gcc
2022-01-30 13:07:34 +00:00
schmonz
c070be973a Add defaults for DQCACHE_{USER,GROUP}. 2022-01-27 15:32:34 +00:00
pho
c7ea0c443f Fix FUSE version in fake pkg-config files
The original FUSE contains a patch version in fuse.pc or fuse3.pc. We must do
the same or otherwise pkg-config requirements such as 'fuse >= 2.6.0' will fail.
2022-01-27 04:27:05 +00:00
gutteridge
9194a16051 help/help.mk: pick up further language-specific variables
Add lua, nodejs, octave, qore, and tk-specific variables. (tk and tk85
define the same variable, so I only included tk.) This relates to
PR pkg/56301, where I noticed various REPLACE_* variables were not
listed in Appendix E of the pkgsrc guide.

There is a separate issue related to Appendix E here. If wip/mk is
found, the auto-generation of the help topic list for the pkgsrc guide
includes anything it finds under that path, but that's potentially
misleading, and causes the generated list to see-saw back and forth as
committers do or do not have wip visible (I do not).
2022-01-24 23:16:01 +00:00
gutteridge
65783bd529 defaults/mk.conf: remove some now unused variables
Prune a bunch of variables that haven't been used for years. In some
cases, the packages they influenced don't even exist anymore. There may
be more of these, this is after a quick pass through.
2022-01-24 23:11:32 +00:00
pho
aef4f625df Create both pkgconfig/fuse.pc and pkgconfig/fuse3.pc
Some packages expect fuse3.pc for FUSE >= 3. Also do not hard-code the version
of <fuse.h> as it becomes quickly obsolete.
2022-01-22 18:23:43 +00:00
pho
af87f2f6ac Emit a warning when PKGSRC_MKPIE==yes but PKGSRC_COMPILER==clang
Prior to this change PKGSRC_MKPIE was silently ignored when clang was chosen for
the compiler, i.e. executables were never built as PIE. This became an error
after introducing a post-build check for it.

Of course we should add a MKPIE support for clang, but for now we just emit a
warning. Otherwise we cannot build packages such as devel/gnustep-base which
requires clang to build.
2022-01-19 16:06:43 +00:00
pho
db46eea828 Support PKGSRC_MKPIE 2022-01-18 02:24:36 +00:00
pho
7606a33d85 Add a package-settable variable PKGSRC_OVERRIDE_MKPIE
This is needed by packages that require hand-holding in building PIE. Also a
post-build check for MKPIE is performed by default when PKG_DEVELOPER=YES.
2022-01-18 01:41:09 +00:00
schmonz
78ede58614 For macOS, getline(3) arrived sometime after 10.6 -- guessing 10.7 like
strnlen(3). Make libnbcompat's implementation available to packages via
USE_FEATURES=getline.
2022-01-14 14:46:50 +00:00
tnn
2ad23be483 SunOS: add native tool paths for xz & xzcat
Spotted on OpenIndiana, provided by compress/xz pkg
2022-01-09 17:36:52 +00:00
schmonz
a3f7a834e8 Remove leftover debug statement, spotted by wiz@. 2022-01-06 10:30:50 +00:00
schmonz
7a1c735319 Extract .zst distfiles using archivers/zstd. 2022-01-06 10:19:11 +00:00
schmonz
c6d6e47ad5 Provide a default value for TLSWRAPPER_CHROOT. 2022-01-04 21:53:46 +00:00
wiz
e032d93683 kiwiki: add option for choosing markdown backend
From Vladimir Stupin in PR 56602.
2022-01-03 16:58:40 +00:00
rillig
73a3b43475 mk/license: make guess-license more user-friendly 2022-01-01 13:55:48 +00:00
nia
552986130e mk: Set the default page size when compiling with RELRO with GCC on
NetBSD/mips.

PR pkg/56559
2021-12-22 10:14:27 +00:00
ryoon
ad08cb7902 mk/atomic64.mk: CFLAGS is added to CXXFLAGS automatically 2021-12-19 15:12:28 +00:00
nia
05b92186b2 mk/compiler: Return the cwrappers stuff for RELRO now that it doesn't
cause any noticable breakage.
2021-12-19 11:55:29 +00:00
he
b56e9e962a Add quotes overlooked in previous. 2021-12-18 00:53:33 +00:00
he
209291ac56 Make compat90 known. 2021-12-18 00:51:04 +00:00
schmonz
318812e1f2 The non-writability check for DISTDIR is intended to prevent wasting
resources when fetchers wouldn't be able to save what they download. On
my build farm with pkgsrc (and pkgsrc/distfiles) mounted over NFS,
however, the check gives false positives for NetBSD 9.2 and -current.
Downgrade it to a warning so that these fetches can succeed, while
leaving a breadcrumb in case someone encounters a true positive.

It would of course be interesting to sort out why, in my environment, a
wide variety of other OSes get 1 for "${TEST} ! -w $fetchdir" while
NetBSD gets 0. In the meantime, joerg@ suggested this workaround and
gdt@ agrees it's reasonable to try.
2021-12-16 14:10:46 +00:00
schmonz
356253d0e0 I export pkgsrc over NFS from a macOS host to a variety of VMs, each of
which sets ${PACKAGES} to a subdir of ${PKGSRCDIR}/packages (on the same
NFS mount) so that the generated packages all land in one place.

From my Debian, Devuan, Ubuntu, and CentOS 8 (but not 7) VMs,
copying ${STAGE_PKGFILE} to ${PKGFILE} fails to preserve permissions,
which fails the copy and the "package" target with it. The error
looks like so:

===> Building binary package for foo-4.2
=> Creating binary package /home/schmonz/trees/pkgsrc-cvs/packages/Debian/All/foo-4.2.tgz
/bin/cp: preserving permissions for ‘/home/schmonz/trees/pkgsrc-cvs/packages/Debian/All/foo-4.2.tgz’: Operation not permitted

Assuming permissions on built packages are merely a nice-to-have, avoid
failing if we couldn't preserve them. Patch from sjmulder@, for whom
this fixes a similar problem with FreeBSD with ZFS.
2021-12-11 09:01:23 +00:00
abs
7280c70d2c Add mongodb3 & mongodb4 to defaults/options.description 2021-12-06 15:32:25 +00:00
wiz
080a2de9bd mk: document pbulk-rsync option 2021-12-06 11:22:10 +00:00
wiz
b3c710176f mk: add c++20 and gnu++20 2021-12-03 07:40:26 +00:00
jperkin
9a448ce4d0 mk: Remove use of /bin/ksh wrapper hack on Darwin.
There are only a few releases where this appears to work, and the commit logs
show this to be a complete pain to get working.  I've now confirmed it's also
broken on Big Sur where ksh simply segfaults on both x86_64 and arm64.

This may have been marginally useful in the past, but we now have cwrappers to
provide a much bigger performance improvement, and so this hack was only used
during bootstrap to build a small number of packages anyway.
2021-12-02 09:44:03 +00:00
jperkin
a764d73a77 mk: Remove reference to LOWER_OS_VERSION. 2021-11-30 09:39:50 +00:00
jperkin
2a8f9a5ddd mk: Remove LOWER_OS_VERSION.
OS_VERSION removes any non-numeric characters, so having a lowercase version
of it will always be identical.  There's only a single package, a very old
version of gcc in wip, that references this variable so it should be safe to
just remove and avoid any potential confusion.
2021-11-30 09:39:11 +00:00
jperkin
bca58f5dbd mk: Don't expand OPSYS_VERSION early.
Something about NetBSD make(1), at least on 9_STABLE, doesn't like doing this,
resulting in literal "$$3" being passed to awk instead of being escaped down
to "$3".  The same construct works fine with pkgsrc bmake(1).

There doesn't appear to be any need to evaluate it inline anyway.
2021-11-30 09:06:37 +00:00
gutteridge
d31754c59a options.description: add gspell option 2021-11-30 00:44:17 +00:00
jperkin
a8263cd3d6 mk: Use OPSYS_VERSION where appropriate.
Should improve readability and in some cases avoid potential failure due to
string comparisons being used.  No other functional change intended.
2021-11-29 16:14:23 +00:00
jperkin
9e5f61e0c1 mk: Introduce OPSYS_VERSION variable.
This provides a single integer that can be used in arithmetic expressions
when comparing the current operating system version in make(1).

The two existing variables that are currently used for such tests are
MACHINE_PLATFORM and OS_VERSION.  The former usually results in complicated
and hard to read empty() strings, and the latter is often used incorrectly in
version comparisons where developers are unaware that a string comparison is
being performed (for example ".if 5.9 >= 5.10" evaluates to true).

The default based on uname -r should be correct for most systems, and can be
overridden as it is on Darwin where the product version provides a more
useful number than the kernel version.
2021-11-29 15:57:55 +00:00
jperkin
fc61917895 mk: Explicitly set arm64 flags on Darwin/aarch64.
It's currently impossible to run system binaries inside an arm64 chroot, even
with SIP turned off, so the only way to build is to use an x86_64 chroot and
effectively cross-compile to arm64.
2021-11-29 12:38:44 +00:00
jperkin
3f106085e3 mk: Tidy and expand macOS platform list. 2021-11-29 12:31:56 +00:00
nia
46636b8902 mk: Register strnlen as missing on Solaris 10
adapted from PR pkg/56511 from pekdon
2021-11-23 10:37:59 +00:00
nia
bc4b26c020 mk: According to Boyd Lynn Gerber, UnixWare lacks IPv6, although the
header files misleadingly pretend it has IPv6.
2021-11-18 13:23:56 +00:00
schmonz
3d21ab0f09 On Linux with glibc, if libc.so.6 isn't executable, glean GLIBC_VERSION
via ldd instead. Noticed when devel/gettext-tools failed PLIST check on
Ubuntu/aarch64 21.10. NFCI for musl libc.
2021-11-14 14:47:11 +00:00
nia
d176df8418 mk: Avoid find -iname for compatibility with Solaris 10
from Claes Nästén.
2021-11-13 22:21:20 +00:00
nia
d30868861b mk/bootstrap: Fix bits for SCO UnixWare 7.
Derived from a patch from Boyd Lynn Gerber.
2021-11-12 20:29:05 +00:00