Templates/config.(guess|sub): Update to 2026-05-17
Also remove our local changes that replaced x86_64 with amd64 because
these complicate porting by forcing port maintainers to replace x86_64
with amd64 in configure scripts.
Additional changes:
bsd.port.mk: Apply S/amd64/x86_64/ to CONFIGURE_TARGET. This is not
required to run configure but some ports need to use this in pkg-plist.
comms/qico, news/fidogate:
CONFIGURE_TARGET shouldn't contain "--build". Just remove it altogether
because the default value is fine.
devel/autoconf, devel/automake:
Bump PORTREVISION because they package config.* scripts.
lang/gauche, math/fricas, math/gap, math/nlopt, math/octave, net/pjsip:
Bump PORTREVISION because pkg-plist depends on CONFIGURE_TARGET.
benchmarks/pathchirp, databases/sqlrelay, devel/pcc-libs, lang/ocaml,
lang/pcc, math/adol-c, math/scilab, math/yices, multimedia/libtheora,
multimedia/libxine, security/beecrypt, sysutils/ltrace,
sysutils/pstacku, textproc/gnugrep:
Add, remove, or change patching related to x86_64 versus amd64.
audio/festalon:
Configuring with x86_64 instead of amd64 enables some MMX code that
isn't entirely correct. Patch it based on the i386 code. While here,
enable building the i386 package.
lang/pfe:
Configuring with x86_64 instead of amd64 enables the use of global
register variables but these are a GCC extension that Clang does not
support. Add --without-regs to disable them. This also fixes the i386
build.
editors/openoffice-*:
The build system runs config.guess and the newer version returns i586
for i386. Let build scripts treat i[3456]86 like i386 as on Linux.
math/reduce-psl:
The build system uses the output of config.guess to create directories
but this script might return something like i586-unknown-freebsd14.5
while the ports tree uses i386-portbld-freebsd14.5. Instead of running
config.guess plug in the value of CONFIGURE_TARGET. The proper fix
would be to let the configure script generate the build scripts so they
can use $host from the configure script but that's more work.
PR: 299273
Exp-run by: antoine
lang/ocaml: unbreak with DOCS=ON after 3fc4fad263626857ec9252641e2794df6539d910 (+)
Commit 3fc4fad263626857ec9252641e2794df6539d910 drops extra '/' from from _DISTDIR
Meanwhile ocaml Makefile stay relies on this extra '/' presence which caused wromg path generation for doc distfile:
install: /portdistfilesocaml-4.14-refman.pdf: No such file or directory
Reported by: bulk -t
Approved by: portmgr blanket
lang/ocaml: fix build on powerpc
ld: error: relocation R_PPC_ADDR16_HA cannot be used against symbol 'caml_program'; recompile with -fPIC
>>> defined in power_libasmrunpic.o
>>> referenced by power_libasmrunpic.o:(caml_start_program)
ld: error: relocation R_PPC_ADDR16_LO cannot be used against symbol 'caml_program'; recompile with -fPIC
>>> defined in power_libasmrunpic.o
>>> referenced by power_libasmrunpic.o:(caml_start_program)
ld: error: relocation R_PPC_ADDR16_HA cannot be used against symbol 'caml_apply2'; recompile with -fPIC
>>> defined in power_libasmrunpic.o
>>> referenced by power_libasmrunpic.o:(caml_callback2_asm)
ld: error: relocation R_PPC_ADDR16_LO cannot be used against symbol 'caml_apply2'; recompile with -fPIC
>>> defined in power_libasmrunpic.o
>>> referenced by power_libasmrunpic.o:(caml_callback2_asm)
ld: error: relocation R_PPC_ADDR16_HA cannot be used against symbol 'caml_apply3'; recompile with -fPIC
>>> defined in power_libasmrunpic.o
>>> referenced by power_libasmrunpic.o:(caml_callback3_asm)
ld: error: relocation R_PPC_ADDR16_LO cannot be used against symbol 'caml_apply3'; recompile with -fPIC
>>> defined in power_libasmrunpic.o
>>> referenced by power_libasmrunpic.o:(caml_callback3_asm)
cc: error: linker command failed with exit code 1 (use -v to see invocation)
Mk/*: Build with a clean environment
Both our make and gmake use the MAKEFLAGS environment variable but the
values aren't compatible and the latest version of gmake complains about
that. To rule out that any environment variable can cause problems like
this, add a new command SETENVI=/usr/bin/env -i that clears the
environment, and use it to run upstream build systems with a clean
environment.
Introduce a new variable WRK_ENV that contains the environment to use
with SETENVI in all targets that run upstream build commands. Variables
that are common between CONFIGURE_ENV and MAKE_ENV could be moved to
WRK_ENV but for now it just contains a minimal environment:
HOME=${WRKDIR}: Fixes USES=elixir ports that were using the user's HOME.
OSVERSION: For cross building; determines the output of uname -K and
getosreldate(3); affects net/freebsd-telnetd for example.
PATH: Fixes USES=gem ports that were using the user's PATH.
PWD=$${PWD}: Preserve current working directory; affects USES=go ports.
TERM: To preserve colored output to terminals.
TMPDIR: For users who define that.
UNAME_*: For cross building; determines the output of uname(1); affects
lang/python* for example.
This commit deals with everything under Mk/. Ports that have their own
targets running upstream build commands can switch to SETENVI later.
The ports tree adds its definition of ARCH to the MAKEFLAGS environment
variable, which is interpreted by sub-makes as command line arguments,
which means that any definition of ARCH in upstream makefiles was
overridden. The following ports required fixes now that this is no
longer the case.
games/iortcw, games/q3cellshading, games/tremulous:
These use Quake 3 engine code. Fix use of ARCH. Reduce diff between
FreeBSD code and Linux code.
games/legesmotus:
Remove ARCH related patches.
lang/ocaml:
Patch configure script so it detects amd64 correctly. Also make the
powerpc case consistent with the other architectures. This also affects
other ocaml ports like devel/ocaml-ocamlbuild and math/ocaml-num that
include a Makefile.config installed by lang/ocaml. While here, use
SETENVI in check-test target.
net/libnatpmp:
Use of upstream definition of ARCH triggers installation in PREFIX/lib64
on amd64. Disable this.
PR: 276478
Approved by: portmgr (antoine)
Exp-run by: antoine
*/*: Sunset 12.4-RELEASE/12-STABLE from ports tree
- Remove all references to defunct ARCH arm
- Remove all references to defunct ARCH sparc64
- Remove x11-drivers/xf86-video-sunffb which requires defunct sparc64
ARCH
- Remove sysutils/afbinit requires defunct sparc64 ARCH
- Remove all references to bktr driver
- Remove all references to defunct FreeBSD_12
- Remove all references to OSVERSION/OSREL corresponding to 12
- Remove conditionals in Mk/Uses/cabal.mk
- Remove sparc reference from Mk/Uses/qt-dist.mk
- Remove BROKEN_sparc64/NOT_FOR_ARCH=sparc64
- Remove BROKEN_FreeBSD_12* from:
- Remove OpenSSL patches from:
- Remove conditional flags for OSVERSION >= 1300000 to fixed flags.
Also move conditional flags for non sparc64/arm ARCH to fixed flags.
Reviewed by: brooks, jbeich, rene, salvadore
Differential Revision: https://reviews.freebsd.org/D42068
lang/ocaml: Fix build on aarch64
SYSTEM_ARCH has to be set to arm64
The raw_spacetime_lib is only built on aarch64
Approved by: portmgr (build fix blanket)
lang/ocaml: Update to 4.08.1
This update allows (and for some requires) to also update dependencies
to newer versions. Where possible I updated to the latest version.
The ocaml port now is MAKE_JOBS safe.
Changes to dependent ports included in this commit:
- devel/ocaml-sexplib: Rename to devel/ocaml-sexplib0 adapting to
upstream. Update to 0.16.0
- devel/coccinelle: Update to 1.1.1, moved to github
- devel/ocaml-camlp4: Update to 4.08+1
- devel/ocaml-camomile: Use dune for build, adapt port
- devel/ocaml-cppo: Fix lib files installation [1]
- devel/ocaml-dune: Update to 3.7.1 [2]
- devel/ocaml-findlib: Update to 1.9.6 [3]
- devel/ocaml-ipaddr: Update to 3.1.0
- devel/ocaml-parmap: Update to 1.2.4, use dune for build [4]
- devel/ocaml-ppx-tools: Update to 6.6, use dune for build
- graphics/ocaml-cairo: Update to 0.6.4
- net-p2p/mldonkey: Update to 3.1.7-2 [2]
- net/unison: Remove ocaml 4.07 compatibility patches
- net/unison232: Mark broken, fails to build with newer ocaml [5]
- security/ocaml-ssl: Update to 0.5.13 [2]
- x11-toolkits/ocaml-labltk: Update to 8.06.7 [2]
Dune now requires full path as argument to --libdir, so various
ports have been patched accordingly.
Bumping PORTREVISION for all dependent ports that were not updated.
PR: 272067
Approved by: michipili@gmail.com (maintainer timeout),
eduardo (maintainer timeout) [1],
danfe [2],
hrs (maintainer timeout) [3],
dumbbell (maintainer timeout) [4],
mandree (implicit) [5]
Differential Revision: https://reviews.freebsd.org/D40599
Remove WWW entries moved into port Makefiles
Commit b7f05445c00f has added WWW entries to port Makefiles based on
WWW: lines in pkg-descr files.
This commit removes the WWW: lines of moved-over URLs from these
pkg-descr files.
Approved by: portmgr (tcberner)
Add WWW entries to port Makefiles
It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.
Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.
There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.
This commit implements such a proposal and moves one of the WWW: entries
of each pkg-descr file into the respective port's Makefile. A heuristic
attempts to identify the most relevant URL in case there is more than
one WWW: entry in some pkg-descr file. URLs that are not moved into the
Makefile are prefixed with "See also:" instead of "WWW:" in the pkg-descr
files in order to preserve them.
There are 1256 ports that had no WWW: entries in pkg-descr files. These
ports will not be touched in this commit.
The portlint port has been adjusted to expect a WWW entry in each port
Makefile, and to flag any remaining "WWW:" lines in pkg-descr files as
deprecated.
Approved by: portmgr (tcberner)
lang/ocaml: simplify handling of the documentation distfiles
- Make use of the options helper, DOCS_DISTFILES, and get rid of the
poorly readable .if ${PORT_OPTIONS:MDOCS} block
- Drop useless `post-extract' target, all needed files are extracted
automagically by the framework
- GC left-over CMP_LIB_DESC, MODOPT, PATTERN, and DOCSDISTNAME knobs
OCaml: transient update of the stack to version 4.07.1
This is the first step in modernizing our OCaml ports infrastructure,
as we had accumulated substantial technical debt over the years when
many of its consumer ports had not received proper care and updates.
It is currently considered as the lowest supported version (baseline)
in majority of open-source OCaml projects, which would help to pull
up other ports, e.g. `devel/ocaml-dune' in smaller, manageable pieces.
For conservative hackers among us and for compatibility with RHEL 8
which is also on it, having 4.07 in the tree would allow users stick
to that package (pkg lock it) if needed.
PR: 250408, 262781
Exp-run by: antoine
lang/ocaml: Remove redundant '-[0-9]*' from CONFLICTS
Follow-up to previous commit: one occurance of "-[0-9]*" had been
missed.
Approved by: portmgr (blanket)
*/*: Remove redundant '-[0-9]*' from CONFLICTS
The conflict checks compare the patterns first against the package
names without version (as reported by "pkg query "%n"), then - if
there was no match - agsinst the full package names including the
version (as reported by "pkg query "%n-%v").
Many CONFLICTS definitions used patterns like "bash-[0-9]*" to filter
for the bash package in any version. But that pattern is functionally
identical with just "bash".
Approved by: portmgr (blanket)
lang/ocaml: sort pkg-plist correctly, remove some old cruft
- Sort the *flat* pkg-plist (after the PLIST_SUB expansion), and drop
needless ``@dir lib/ocaml/threads'' entry
- Remove "INSTALL* safeness" gimmick which had been added 16 years ago
in r133975 and supposedly helped to preserve correct permissions in
some circumstances, but these days it erroneously removes executable
bits from some binaries, or causes nothing but stage Q/A warnings
lang/ocaml: fix build on powerpc
Use ld.bfd:
ld: error: can't create dynamic relocation R_PPC_ADDR16_LO against symbol: caml_last_return_address in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text relocations in the output
lang/ocaml: fix packaging on armv6
pkg-static: Unable to access file /wrkdirs/usr/ports/lang/ocaml/work/stage/usr/local/lib/ocaml/raw_spacetime_lib.a:No such file or directory
pkg-static: Unable to access file /wrkdirs/usr/ports/lang/ocaml/work/stage/usr/local/lib/ocaml/raw_spacetime_lib.cma:No such file or directory
pkg-static: Unable to access file /wrkdirs/usr/ports/lang/ocaml/work/stage/usr/local/lib/ocaml/raw_spacetime_lib.cmi:No such file or directory
pkg-static: Unable to access file /wrkdirs/usr/ports/lang/ocaml/work/stage/usr/local/lib/ocaml/raw_spacetime_lib.cmx:No such file or directory
pkg-static: Unable to access file /wrkdirs/usr/ports/lang/ocaml/work/stage/usr/local/lib/ocaml/raw_spacetime_lib.cmxa:No such file or directory
pkg-static: Unable to access file /wrkdirs/usr/ports/lang/ocaml/work/stage/usr/local/lib/ocaml/raw_spacetime_lib.cmxs:No such file or directory
pkg-static: Unable to access file /wrkdirs/usr/ports/lang/ocaml/work/stage/usr/local/lib/ocaml/raw_spacetime_lib.mli:No such file or directory
For ports on riscv64 that fail the same (or similar ways) to aarch64, mark them BROKEN.
While here, pet portlint (Makevar order).
Approved by: portmgr (tier-2 blanket)
lang/ocaml: Fix build with llvm 11
Fix the build of lang/ocaml with llvm 11.
There are two issues, first off, te issue with -fno-common, which is default
with llvm 11. This is fixed by pulling in a modified patch from upstream,
as well as local patches.
Secondly, there's a problem with how asm sections are handled, patch this
locally. Thanks to dim@ for help with this.
MFH: 2020Q3 (implicit, -fno-common fixes, ok by joenum)
lang/ocaml: add BUILD_DEPENDS as:devel/binutils
/usr/bin/as will soon be removed from the FreeBSD base system, for
FreeBSD 13.0.
Depend on as (not ${LOCALBASE}/bin/as) so that this will introduce no
change for existing 11.x and 12.x, which will continue to use the base
system GNU as 2.17.50.
PR: 205250
Approved by: portmgr (blanket)
Sponsored by: The FreeBSD Foundation
lang/ocaml: fix build on powerpc64 elfv2
LLVM miscompiles ocaml on powerpc64 elfv2:
ld: error: bytecomp/printlambda.ml:23:(.text+0x16): relocation R_PPC64_TOC16_DS out of range: 73024 is not in [-32768, 32767]
Use GCC instead on powerpc64.
Add a conditional patch enabled only on powerpc64 elfv2 to use elfv2 abi instead of elfv1.
Add a bunch of other patches to correctly check for abi instead of relying on endianness.
PR: 242389
Approved by: michipili@gmail.com (maintainer)
Add USES=xorg USES=gl, ports categories l
Add USES=xorg and USES=gl to ports in categories starting with 'l'
While here, try to sprinkle other USES (mostly gnome and sdl) as needed.
lang/ocaml: fix build on armv7
armv7 requires -Wl,-znotext in LDFLAGS (same as i386), added definition for triple target and include term.h in the test for tgetent.
PR: 239157
Approved by: michipili@gmail.com (maintainer timeout), tcberner (mentor)
Differential Revision: https://reviews.freebsd.org/D21085
Bump PORTREVISION for ports depending on the canonical version of GCC as defined in Mk/bsd.default-versions.mk which has moved from GCC 8.3 to GCC 9.1 under most circumstances now after revision 507371.
This includes ports
- with USE_GCC=yes or USE_GCC=any,
- with USES=fortran,
- using Mk/bsd.octave.mk which in turn features USES=fortran, and
- with USES=compiler specifying openmp, nestedfct, c11, c++0x, c++11-lang,
c++11-lib, c++14-lang, c++17-lang, or gcc-c++11-lib
plus, everything INDEX-11 shows with a dependency on lang/gcc9 now.
PR: 238330
lang/ocaml: fix on powerpc64
powerpc64 needs to be put to configure script to be recognized.
PR: 238788
Approved by: michipili@gmail.com (maintainer timeout), tcberner (mat)
Differential Revision: https://reviews.freebsd.org/D20891
Make sure that correct LDFLAGS are passed when linking shared libraries, otherwise the build would fail on i386 with recent versions of FreeBSD.
PR: 218333
Fix up pkg-plist in case the THREADS option (which is on by default) is off by marking a couple of files added in revision 505020 conditional on that option.
PR: 218333
Update OCaml to version 4.05.0 (this is the last version where strings are unsafe by default, which is the main motivation why it was picked, but not the very latest one) and synchronize the rest of the stack and dependent ports with it, particularly:
- Update `devel/ocaml-ocamlbuild' to version 0.14.0 and unbreak,
register build dependency on all ports that require it (should
be part of USE_OCAML, but we do not want to make any Mk-related
changes the for time being)
- Update `devel/ocaml-camlp4' to version 4.05+2
- Update `devel/ocaml-camlp5' to version 7.07 (the project had
moved to GitHub)
- Mark `devel/ocaml-deriving-ocsigen' as BROKEN for now, it is
very outdated and requires quite a lot of work
- Update `x11-toolkits/ocaml-labltk' to version 8.06.3
PR: 218333
Exp-run by: antoine
lang/ocaml: add -znotext to LDFLAGS on i386, for lld
Example error:
/usr/bin/ld: error: can't create dynamic relocation R_386_32 against
symbol: caml_last_return_address in readonly segment; recompile
object files with -fPIC
This port links some non-PIC code, which fails with lld as it defaults
to disallowing relocations against read-only segments. For i386 we can
just add -znotext unconditionally: for GNU BFD ld it just affirms BFD's
existing default.
PR: 214864, 230209
Approved by: bapt
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D17200
Further pre-update cleanups for `lang/ocaml':
- Do not suppress .bak-files when patching things with ``sed(1) -i'',
those can be useful for debugging and catching no-ops
- Drop `files/manfiles', it is no longer used (looks like a relic from
pre-staging times)
- Do not pass ``-as "${AS} ${ASFLAGS}"'' in the initial CONFIGURE_ARGS:
when ARM support was added in r361233, appropriate values are passed
conditionally (subject to ${ARCH}), see line 69
- Simplify handling of CFLAGS (obtained from RedHat package): rather
than passing them as part of the compiler and "fixing" one generated
Makefile in `post-configure', teach the configure script about them