In sight of long-overdue update of `lang/ocaml', start cleaning things up:
- 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.
Actualize BROKEN_sparc64 statement. It was (re)marked broken last time in 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.
First step to unbreak `lang/ocaml' on aarch64: teach configure script 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
Improve handling of the system architecture in `lang/ocaml'.
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
Attempt to build on armv7 by generalizing from armv6 code.
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)
As usual, routinely update to the next version in r403835 had removed support for DragonFly (readded in r403898) and FreeBSD/powerpc. Put it back (again).
Upgrade from 4.02.1 to 4.02.3. Disable adding of explicit -O to compiler flags, 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.)
lang/ocaml: give execute permissions via pkg-plist to two files
PR: 195736
Submitted by: mmatalka@gmail.com
Approved by: Michael Gruenewald <michipili@gmail.com> (maintainer)
lang/ocaml: Remove softvfp option from ARMv6 build (no longer required)
PR: 200102
Submitted by: Mikael Urankar
Approved by: maintainer (assumed good, not able to test)
MASTER_SITES cleanup.
- 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
lang/ocaml: Tweak PROFILE handling to support DragonFly
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)
lang/ocaml: Upgrade version 4.01 => 4.02
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.
lang/ocaml: Add ARMv6 support
Redports confirms that changes do not break i386 and amd64 builds (8x).
PR: 189063
Submitted by: maintainer (Michael Gruenewald)
Patch by: Andy Ray
lang/ocaml: Remove DEF_OPT option (non-default option)
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)
math/facile: - 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
lang/ocaml: Fix NO_PROFILE setting and native compiler for DragonFly
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
lang/ocaml: Fix plist issues
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
lang/ocaml: Upgrade version 4.00.1 to 4.01.0 and stage
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
ocaml update 1/4: lang/ocaml upgrade from 3.12 to 4.00
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
SSP support has been added to ports with WITH_SSP for i386 and amd64 on FreeBSD 10, and amd64 on earlier versions.
SSP_UNSAFE is added to disable in a port if it fails to build, but
this should only be used in rare circumstances such as kernel modules.
Otherwise, the port may just be failing due to lack of respecting
LDFLAGS.
On FreeBSD 10, this uses an ldscript in /usr/lib/libc.so to pull in
libssp_nonshared.a to address issues linking on i386 [1].
On earlier FreeBSD versions the WITH_SSP knob will add -lssp_nonshared
to LDFLAGS on i386. This is not needed on amd64. However, several hundred
ports do not currently respect LDFLAGS, so this support is disabled currently
as it causes build failures if a dependency is looking for the stack_chk
symbols.
Many thanks to jlh@ for this as he had many years of patience in getting
all of the necessary pieces [1][2] in.
[1] http://svnweb.freebsd.org/base/head/lib/libc/libc.ldscript?revision=251668&view=markup
PR: ports/138228 [2]
Submitted by: jlh (bsd.ssp.mk based on)
Reviewed by: bapt
With hat: portmgr
exp-runs done: 37 over a month on 91i386,91amd64,10i386,10amd64