a symbol matches multiple clauses the last one takes precedence. If the
catch-all is last it captures everything. In the case of Qt5 libraries
this caused all symbols to have a Qt_5 label while some should have
Qt_5_PRIVATE_API. This only affects lld because GNU ld always gives the
catch-all lowest priority.
Older versions of Qt5Webengine exported some memory allocation symbols from
the bundled Chromium. Version 5.9 stopped exporting these [1] but the
symbols were kept as weak wrappers for the standard allocation functions to
maintain binary compatibility. [2][3] The problem is that the call to the
standard function in these weak wrappers is only resolved to the standard
function if there's a call to this standard function in other parts of
Qt5Webengine, because only then is there a non-weak symbol that takes
precedence over the weak one. If there's no such non-weak symbol the call
in the weak wrapper resolves to the weak wrapper itself creating an infinite
call loop that overflows the stack and causes a crash. Some of the
allocation functions are variants of C++ new and delete and it probably
depends on the compiler whether these variants are used in other parts of
Qt5Webengine.
Remove the weak wrappers (make them Linux specific). This isn't binary
compatible but we are already breaking that with the changes to the symbol
versions.
[1] 5c2cbfccf9
[2] 2ed5054e3a
[3] 009f5ebb4b
Bump all ports that depend on Qt5.
PR: 234070
Exp-run by: antoine
Approved by: kde (adridg)
Ports that build out of source now simply can use "USES=cmake"
instead of "USES=cmake:outsource". Ports that fail to build
out of source now need to specify "USES=cmake:insource".
I tried to only set insource where explictely needed.
PR: 232038
Exp-run by: antoine
defined via Mk/bsd.default-versions.mk which has moved from GCC 7.4 t
GCC 8.2 under most circumstances.
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, as a double check, everything INDEX-11 showed depending on lang/gcc7.
PR: 231590
Simplify some ports where DragonFlyBSD no longer needs to be special-cased.
Submitted by: rene
Reviewed by: bapt, jbeich
Differential Revision: https://reviews.freebsd.org/D17724
in the ports tree (via Mk/bsd.default-versions.mk and lang/gcc) which
has now moved from GCC 6 to GCC 7 by default.
This includes ports
- featuring USE_GCC=yes or USE_GCC=any,
- featuring USES=fortran,
- using Mk/bsd.octave.mk which in turn features USES=fortran, and those
- with USES=compiler specifying one of openmp, nestedfct, c11, c++0x,
c++11-lib, c++11-lang, c++14-lang, c++17-lang, or gcc-c++11-lib.
PR: 222542
From now on, ports that depend on Qt4 will have to set
USES= qt:4
USE_QT= foo bar
ports depending on Qt5 will use
USES= qt:5
USE_QT= foo bar
PR: 229225
Exp-run by: antoine
Reviewed by: mat
Approved by: portmgr (antoine)
Differential Revision: →https://reviews.freebsd.org/D15540
(via Mk/bsd.default-versions.mk and lang/gcc) which has moved from
GCC 5.4 to GCC 6.4 under most circumstances.
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, c++11-lib, c++11-lang,
c++14-lang, c++0x, c11, or gcc-c++11-lib.
PR: 219275
Using ninja instead of make (1) can lead to significant speed ups while building.
Therefore switch from having the ninja generator opt-in to having it opt-out.
Previously cmake-ports that wanted to use ninja could set
CMAKE_NINJA=yes
now, ports that do not work with ninja can set
cmake:<existing args>,noninja
Note, that needing this should be an exception and most often points to a broken
cmake of the port.
The ports using cmake were modified
* removed USES=gmake, if ninja is used
* removed MAKE_ARGS, if ninja is used
* added the cmake-argument noninja if necessary
PR: 219629
PR: 213331
Exp-run by: antoine
Reviewed by: rakuco
Differential Revision: https://reviews.freebsd.org/D10748
lang/gcc which have moved from GCC 4.9.4 to GCC 5.4 (at least under some
circumstances such as versions of FreeBSD or platforms).
This includes ports
- with USE_GCC=yes or USE_GCC=any,
- with USES=fortran,
- using using Mk/bsd.octave.mk which in turn has USES=fortran, and
- with USES=compiler specifying openmp, nestedfct, c++11-lib, c++14-lang,
c++11-lang, c++0x, c11, or gcc-c++11-lib.
PR: 216707
bsd.default-versions.mk can rely on ARCH being defined.
- In bsd.port.mk move inclusion of bsd.default-versions.mk from the
pre-makefile section to the options section so the variables can be used
earlier. Also put the bit of code sitting between the options section and
the pre-makefile section into the options section.
- Remove last few cases where ports set WITH_OPENSSL_PORT. This variable is
handled in bsd.default-versions.mk and some ports were setting it after
including bsd.port.options.mk. After FreeBSD 9 EoL all but a few ports,
and then only when setting non-default options, work without setting that
variable.
PR: 215996
Exp-run by: antoine
Approved by: portmgr (antoine)
USES=localbase:ldflags can be used to set LDFLAGS. Normally LDFLAGS
appears too early on the command line causing some ports to link with
their own libraries in LOCALBASE (if installed) instead of WRKSRC.
Also make use of _USES_POST so -L${LOCALBASE}/lib is added as late as
possible after anything a port Makefile might set. Use _USES_POST
instead of .include in libedit.mk and libarchive.mk so things like
'USES=libedit localbase:ldflags' work correctly.
Fix some issues with LIBS in some ports.
Switch ports that don't support LIBS to localbase:ldflags.
PR: 212987
Exp-run by: antoine
Approved by: portmgr (antoine)
- Convert to USE_GUTHUB
- Take advantage od USES=localbase
- Convert to USES=sqlite
PR: 207139
Submitted by: me
Approved by: Yonas Yanfa <yonas at fizk.net>
These were FreeBSD specific aliases for libiconv(), libiconv_open() and
libiconv_close() that are now also provided by libc which complicates
writing configure tests that work correctly when both libc iconv and
libiconv are available.
Also, because the libiconv iconv.h header redefines iconv* to libiconv*
correct use of the header implies that the aliases aren't used.
The following ports needed fixes because there was something wrong with
the way they tried to detect or use iconv:
audio/deadbeef: Remove LIBICONV_PLUG from a source file. It's a
compile-time option and should not be set in source code.
comms/hidapi: Use standard AM_ICONV configure macro to look for iconv.
deskutils/fbreader: Let ports framework deal with LIBICONV_PLUG.
deskutils/ljclive: Override configure test for iconv.
deskutils/owncloudclient: Add USES=iconv and patch test for iconv.
devel/aegis: Bump PORTREVISION because it no longer uses libiconv.
devel/libexplain: Add USES=iconv and override test for iconv.
devel/sdl20: Override configure test for iconv.
emulators/vmw: Replace OSVERSION checks with ICONV_LIB checks and include
<iconv.h> instead of <sys/iconv.h>.
irc/scrollz: Override configure test for iconv.
japanese/chasen-base: Override configure test for iconv and patch
configure so it no longer adds -liconv to linker flags just because it
happens to be installed.
japanses/eb: Patch configure test for iconv.
japanses/eblook: Override configure test for iconv.
java/jikes: Override configure test for iconv.
multimedia/transcode: Bump PORTREVISION because only one plugin links with
libiconv now.
net/c3270: Override configure test for iconv.
net/samba4*: Bump PORTREVISION because it no longer uses libiconv. The
configure script will always add -liconv to the linker flags when it
happens to be installed which would be wrong but later on binaries are
linked with -Wl,--as-needed and the linker discards -liconv because it
finds iconv*() functions in libc now and no longer in libiconv.
net-mgmt/icinga-*: Remove dependency on iconv.
net-mgmt/netxms: Patch configure so it no longer adds -liconv to linker
flags just because it happens to be installed.
net/asterisk11: Patch configure so it no longer adds -liconv to linker
flags just because it happens to be installed.
net-p2p/transmission-*: Override configure test for iconv.
www/htmlcxx: Override configure test for iconv.
www/httrack: Override configure test for iconv.
www/xapian-omega: Override configure test for iconv.
x11/mrxvt(-devel): Add USES=iconv and override configure test for iconv.
x11/x3270: Override configure test for iconv.
x11-wm/jwm: Override configure test for iconv.
PR: 202838
Exp-run by: antoine
Approved by: portmgr (antoine)
Release notes for the 3.3 series:
http://www.cmake.org/cmake/help/v3.3/release/3.3.html
This update took longer than expected because of a behavior change in CMake:
now calls to find_library(), find_path() etc will take the $PATH environment
variable into consideration, which in practice means that it will prefer
libraries in base instead of those in ports when both versions are available.
r395972 is an example of the groundwork that had to be done before landing this
patch.
- deskutils/owncloudclient: When OpenSSL from ports is to be used, make sure to
pass ${LOCALBASE} as $CMAKE_PREFIX_PATH, otherwise it will use the version in
base (see above) and fail on 9.x.
- math/cgal: Import upstream patch to fix the configuration process with CMake
3.3.x.
PR: 202516
- Add slave port qtkeychain-qt4
- Make deskutils/owncloudclient link against qtkeychain-qt5
- Update owncloudclient comment and pkg-descr
PR: 198785
Submitted by: 6yearold at gmail.com (security/qtkeychain maintainer)