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
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
- 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
- Remove hunks from `patch-configure' that are irrelevant on *BSD
- Do not aggressively edit configure script in `post-patch', especially
when it is not required (e.g. no variables are expanded). This was
the reason for bogus changes committed in r403835 by wen@ and r403898
by marino@ (cf. "$bytecclinkopts $bytecclinkopts $bytecclinkopts");
now ``make makepatch'' command is idempotent again
- Do not needlessly pass STAGEDIR via MAKE_ENV: it is correctly passed
via MAKE_ARGS (as DESTDIR), and OCaml's build system is aware of it,
while nowhere referencing STAGEDIR variable
- Drop permission fix for ld.conf that was added in r169472 by itetcu@
11 years 4 months ago: it is no-op these days
Build logs remain identical (modulo the whitespace), regression tests pass.
r138465 by mi@ (first time in r109062 by kris@), that's 12.5 years ago, and
never revisited ever since (except minor facelifting in r387855 by marino@).
The world was largely different back then, with GCC 3.4.4 and OCaml 3.08.3.
Currently it does not build on 10.4-STABLE running under QEMU 2.9.0.
While here, remove stale comment about hardcoded GCC for depend target that
was added in r292093 by bf@ and later *not* removed in r385012 by marino@
together with in-place editing commands it was attributed to. I messed up
the history with r456400, thinking it still applies yet not performing the
proper archaeology check, and rightfully deserve a pointy hat for that.
the architecture exists on FreeBSD. Unfortunately, this is not enough for
build to succeed, it now complains that as(1) is not found:
../boot/ocamlrun ../ocamlopt -strict-sequence -w +33..39 -g -warn-error A
-bin-annot -nostdlib -safe-string `./Compflags camlinternalFormatBasics.cmx`
-c camlinternalFormatBasics.ml
sh: as: not found
File "camlinternalFormatBasics.ml", line 1:
Error: Assembler error, input left in file /tmp/camlasm4329ae.s
gmake[7]: *** [Makefile.shared:84: camlinternalFormatBasics.cmx] Error 2
Developed on: ref11-aarch64.freebsd.org
OCaml is using ARCH variable throughout its makefiles, which clashes with
our own variable of the same name. To workaround it, OCAML_ARCH variable
was introduced which is set based on ARCH, and makefiles later patched in
the `post-configure' target.
This approach does not scale well with porting OCaml to new architectures
as being fragile and sometimes making the build non-idempotent under some
circumstances.
Instead of "fixing" makefiles post-configure, rename ARCH to SYSTEM_ARCH:
this avoids the clash altogether and lets configure script to set correct
values for supported architectures in the first place with no adjustments
required afterwards.
Tested on: i386, amd64, powerpc
Unfortanately it didn't build for me on armv7: perhaps it is a difference
in compiler. (It currently builds on armv6 on the freebsd.org cluster.)
So, this is a necessary but insufficient step.
Approved by: portmgr (tier-2 blanket)
because that ends up lowering optimization for most people (from -O2).
Approved by: maintainer
(The upgrade is too minor to justify revision bumping of depending ports.)
- Replace ${MASTER_SITE_FOO} with FOO.
- Merge MASTER_SITE_SUBDIR into MASTER_SITES when possible. (This means 99.9%
of the time.)
- Remove occurrences of MASTER_SITE_LOCAL when no subdirectory was present and
no hint of what it should be was present.
- Fix some logic.
- And generally, make things more simple and easy to understand.
While there, add magic values to the FESTIVAL, GENTOO, GIMP, GNUPG, QT and
SAMBA macros.
Also, replace some EXTRACT_SUFX occurences with USES=tar:*.
Checked by: make fetch-urlall-list
With hat: portmgr
Sponsored by: Absolight
This changes a conditional statement to an equivalent variation. An
internal transformation of DPorts was getting confused by this construct.
Discussed with: Michael Gruenewald (maintainer)
PR: 195736
Submitted by: Michael Gruenewald (maintainer)
Add'l fixes: marino
Besides typical port cleanup, the dragonfly patches which had been
removed for the update were added back to the configure patch.
The option reacts poorly with ocamlp4, and phasing out DEF_OPT
completely will prevent a lot of breakage with ports that also
interact with ocamlp4.
PR: 189176
Submitted by: Anil Madhavapeddy
Prepared by: maintainer (Michael Gruenewald)
- bump PORTREVISION to trigger repackaging after recent ocaml update:
the package is usable only with ocaml which was used to compile facile.
lang/ocaml:
- add upgrading notes for committers
The ocaml port was not respecting a NO_PROFILE definition in make.conf,
which causes a stage check failure (missing files) if it is set. Improve
that logic and patch the configure script in numerous places to support
building the native code compiler on DragonFly. This is one of those
famous ports that think all BSDs have the pattern "bsd" in their target
triplet.
Continued under PR: ports/188158
These missing man page issues were seen on Redports and reported, then
disappeared after the final patch. Unfortunately they weren't actually
addresses, so it's a mystery why Redports didn't continue to catch the
problem, nor the extra ocamldoc/custom directory (which is why the
ocamldoc/custom/.keep file original existed).
Add the 15 missing man pages to the plist and remove the empty directory
in the post-install target. Strangely enough, Redports still shows an
8x pass. I'm losing a lot of confidence in Redports results...
While here, remove the muting from the post-install target. This is
against convention.
PR: ports/188158
This is a significant update from the maintainer. Not only has stage
support been added (and verified with an 8x pass on RedPorts), but
installed binaries are no longer stripped which was the cause of the
coccinelle malfunction seen on DragonFly.
Licensing was also defined, and the X11 build failure caused by the
use of the -R linker flag without the -Wl prefix has also been
rectified. [2]
PR: ports/188158 [1]
Submitted by: maintainer (Michael Gruenewald)
PR: ports/188330 [2]
Submitted by: madpilot
Approved by: maintainer
There have been manual outstanding PRs on OCAML that have dragged on
for well more than a year. In the meantime, FreeBSD has been painfully
stucking on version 3.12 of Ocaml. Meanwhile, DragonFly's dports have
been maintaining version 4.00.
With a "Just do it" attitude, the dports version of Ocaml has been brought
in. This doesn't have stage support, nor is the the latest version
available. The idea is just get a working base Ocaml 4.00 in ports and
then have the maintainer update the appropriate PRs.
As a consequence, updates to omake, ocaml-findlib, and ocaml-images is
also required and upcoming.
Urged by: portmgr (bapt)
Related PR: ports/173364
Related PR: ports/173453