Move Objective-C ports to the v2 GNUstep ABI.
* Bump the LLVM revision used for GNUstep to 7, the minimum to support
the new ABI.
* GNUstep-back does not work with lld, so mark it to use Gold (BFD LD
doesn't seem able to link Objective-C things).
* Turn off some annoying debug logs in GNUstep back, which generate
several messages per second when you move the mouse. These should
never have been enabled in a release build anyway.
* Downgrade Cenon to 4.0.2. This was the last version to actually work
with GNUstep (the later ones use XCode >= 5 .xib files, which GNUstep
can't parse).
* Update gorm to git head. The current release doesn't work with the
new Objective-C ABI, but -head has the patches to fix it.
* Update PikoPixel and add it to the gnustep-app meta-package.
* Update the three core GNUstep packages to the latest release.
* Update gnumail and pantomime to the latest release and fix a linking
error with the new ABI.
* Update GNUstep FTP to the latest version.
Reviewed by: bapt (previous version)

Fix configure options for gnustep-make
We were not setting the flag to select the GNUstep ABI, so were defaulting to
using the GCC-compatible version, which was likely to trigger a lot of subtle
bugs. This was noticed when C++ exceptions thrown through Objective-C stack
frames caused segfaults.

Update GNUstep core libraries.
Update the default Objective-C compiler.
Fix various build failures in GNUstep ports from newer versions of the GNUstep
core libraries and from changes to GNUstep Make.
Update various ports that use GNUstep and bump the portrevision of the ones
that haven't had a new release.

- Update devel/icu to 57.1.
- Clean up the Makefile.
- Follow some upstream recommendations (--with-data-packaging=archive,
--disable-renaming, -DICU_NO_USER_DATA_OVERRIDE).
- Patch makefiles to install static libraries with INSTALL_DATA so they
aren't stripped.
- Patch config/mh-bsd-gcc to sync with config/mh-linux-gcc.
- Fix endianness detection in ICU. The code wanted to use BYTE_ORDER
defined in machine/endian.h, but this isn't visible because ICU is
compiled with _XOPEN_SOURCE. Patch the code to use _BYTE_ORDER instead.
- Compile ICU with C++11 compiler to enable move constructors.
- Patch ICU to fix a problem with atomics in the case of a C++11 compiler
without C++11 header <atomic> (like Clang on FreeBSD 9).
- Bump all ports that depend on it due to library version change.
- Add USES=compiler:c++0x to some ports that pick up -std=c++0x from ICU
pkgconfig files.
- Add USES=compiler:c++11-lib to graphics/libcdr01 because it also needs
a C++11 runtime library now. Add this to all ports that depend on it
so their executables load the right libstdc++.so on FreeBSD 9.
PR: 205120
Exp-run by: antoine
Approved by: portmgr (antoine)

- Update security/gnutls to 3.4.10.
- Rename the LIBDANE option DANE because that's the name of the protocol
supported by libgnutls-dane and gnutls-cli. Also clarify the option
description.
- Add an IDN option.
- libgnutls-openssl has been removed in 3.4. Some ports used this library
in their LIB_DEPENDS but no port actually required it.
- Some old API functions have been removed. Ports that used these have been
updated or patched to use the new API.
- Add a patch to print/cups to prevent overlinking of libgnutls.so.
- Bump PORTREVISION on dependent ports.
net-im/jabber: This port used the old API to give users fine grained
control over which crypto algorithms were used via a configuration file.
It's not immediately obvious how to port this to the new API so the port
always uses the defaults now.
www/hydra: Mark BROKEN. This uses more removed calls than the other ports,
is said to be alpha quality and not fully functional and has been abandoned
10 years ago.
PR: 207768
Exp-run by: antoine
Approved by: portmgr (antoine)

Add GNUstep Make as a run-time dependency of GNUstep Base.
The -make package contains makefiles required for building, but also shell
scripts for finding run-time dependencies. This was reported as a bug on
www/sogo, but actually affects most GNUstep applications.
PR: 206586

- Do not hardcode dependency on GnuTLS (security/gnutls). While preferred,
it is not required, and limited functionality can be achieved by using
OpenSSL instead (per the comment in configure script); both providers can
be turned off with --disable-{tls,openssl} switches
- Similarly, make ICU support optional as well and replace cryptic regex in
BASEVERSION assignment with :R while here
Approved by: theraven (maintainer)

Make all GNUstep ports install into the System domain so that the Local domain
is available for stuff built from source.
Some ports were already installing in the System domain, for these just remove
the Makefile lines explicitly specifying the install domain.
The rest are installed in the Local domain, remove any overrides, update their
pkg-plists and any explicit paths in the Makefiles and then bump port revision.
Approved by: bapt (mentor)
Differential Revision: https://reviews.freebsd.org/D2977

lang/gnustep-base: Remove empty directories from stagedir
Two empty directories weren't listed in pkg-plist, causing this port
not to pass poudriere QA checks. My interpretation is that these
directories were never packaged, and they should not be packaged, so
let's simply remove them from stagedir. This alse means we don't have
to bump the port.
Approved by: just fix it

The FreeBSD x11@ and graphics team proudly presents
a zeising, kwm production, with help from dumbbell, bdrewery:
NEW XORG ON FREEBSD 9-STABLE AND 10-STABLE
This update switches over to use the new xorg stack by default on FreeBSD 9
and 10 stable, on osversions where vt(9) is available.
It is still possible to use the old stack by specifying WITHOUT_NEW_XORG in
/etc/make.conf .
FreeBSD 8-STABLE and released versions of FreeBSD still use
the old version.
A package repository with binary packages for new xorg will
be available soon.
This patch also contains updates of libxcb and related ports, pixman, as well

Update to latest GNUstep core libraries.
Update dependent packages with more recent releases.
Remove old and bit-rotted ones.
Switch to using clang 3.3 and libobjc2 1.7 by default, so modern Objective-C
features work out of the box and remove a lot of configurable options for
sub-optimal (and, often, unsupported / deprecated upstream) configurations.
Take maintainership of GNUstep-related ports.
Several of the ports left in have scary warnings which mean that they are likely
broken in lots of cases. Future commits will fix them.
Approved by: bapt

new devel/pkgconf added to replace devel/pkg-config. new version of pkg-config
are no more self hosting so we are stuck with 0.25 version while pkgconf provide
the same set of features as 0.27 and a compatible frontend. A symlink to
pkg-config has been added for convenience and compatibility
This also introduces a new macro to use pkgconf in your ports:
USE_PKGCONFIG
it can take the following arguments:
- yes (meaning build only dep)
- build (meaning build only dep)
- run (meaning run only dep)
- both (meaning run and build dep)
From now USE_GNOME= pkgconfig is deprecated in favour of USE_PKGCONFIG
The old gnome macro has been modified to use pkgconf but still the sameway: run
and build dep to avoid large breakage.
While here fix some ports relying on pkg-config but not specifying it, fix some
ports broken because testing wrong .pc files, and fix ports using pkg-config
--version to determine pkg-config version instead of
pkg-config --modversion pkg-config like recommanded by pkg-config
With Hat: portmgr
Exp-runs by: bapt (pointhat-west), beat (pointyhat)

Update CONFIGURE_ARGS for how we pass CONFIGURE_TARGET to configure script.
Specifically, newer autoconf (> 2.13) has different semantic of the
configure target. In short, one should use --build=CONFIGURE_TARGET
instead of CONFIGURE_TARGET directly. Otherwise, you will get a warning
and the old semantic may be removed in later autoconf releases.
To workaround this issue, many ports hack the CONFIGURE_TARGET variable
so that it contains the ``--build='' prefix.
To solve this issue, under the fact that some ports still have
configure script generated by the old autoconf, we use runtime detection
in the do-configure target so that the proper argument can be used.
Changes to Mk/*:
- Add runtime detection magic in bsd.port.mk

Mass-conversion to the USE_AUTOTOOLS New World Order. The code present
in bsd.autotools.mk essentially makes this a no-op given that all the
old variables set a USE_AUTOTOOLS_COMPAT variable, which is parsed in
exactly the same way as USE_AUTOTOOLS itself.
Moreover, USE_AUTOTOOLS has already been extensively tested by the GNOME
team -- all GNOME 2.12.x ports use it.
Preliminary documentation can be found at:
http://people.FreeBSD.org/~ade/autotools.txt
which is in the process of being SGMLized before introduction into the
Porters Handbook.
Light blue touch-paper. Run.