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)
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
%%QT_BINDIR%% and %%QT_LIBDIR%% represent the relative location of the
Qt binaries and libraries respectively -- they are only 'bin' and 'lib'
by chance, and should not be used that way.
Approved by: portmgr (blanket), rakuco (mentor)
PR: 213833
This patch is a smaller version of one I've sent upstream. It removes 'using
namespace std' from Interpreter.cpp to avoid errors when -std=c++11 or
-std=gnu++11 is passed to the compiler, as a call to bind(2) can end up
becoming a call to std::bind().
This is required to avoid breaking the build with Qt 5.6.1:
c++ -c -O2 -pipe -fstack-protector -fno-strict-aliasing -g -std=gnu++11 -pthread -D_THREAD_SAFE -Wall -W -fPIC -DLINUX -DESPEAK -DSOUND_QMOBILITY -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I. -I. -I/usr/local/include/espeak -I/usr/local/include/qt5/QtMultimedia -I/usr/local/include/qt5/QtSerialPort -IQtMobility -IQtMobility -I/usr/local/include/qt5 -I/usr/local/include/qt5/QtGui -I/usr/local/include/qt5/QtCore -Itmp/moc -I/usr/local/include -I/usr/local/include -I/usr/local/lib/qt5/mkspecs/freebsd-clang -o tmp/obj/Interpreter.o Interpreter.cpp
Interpreter.cpp:4282:105: error: invalid operands to binary expression ('__bind<int &, sockaddr *, unsigned long>' and 'int')
PR: 212347
Approved by: fernando.apesteguia@gmail.com (maintainer)
- 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
the 32 ports that still use it. Bump PORTREVISION on their dependent
ports except the ones that depend on these:
audio/libogg
audio/libvorbis
devel/pcre
ftp/curl
graphics/jpeg
graphics/libart_lgpl
graphics/tiff
textproc/expat2
textproc/libxslt
In these cases the same trick as in the recent gettext update is used.
The ports install a symlink with the old library version. When enough
of their dependent ports have had regular updates the remaining ones can
get a PORTREVISION bump and the links can be removed.
Also remove the devel/pcre dependency from USE_GNOME=glib20. It causes
over 2200 packages to depend on devel/pcre while less than 200 actually
link with it. The glib20 package still depends on devel/pcre so this
should not make a difference for ports with USE_GNOME=glib20. Also,
libdata/pkgconfig/glib-2.0.pc lists pcre as a private library so
USE_GNOME=glib20 should not propagate it.
PR: 195724
Exp-run by: antoine
Approved by: portmgr (antoine)
- Convert to USES qmake and dos2unix
- Convert to staging
- Use LOCALBASE instead of hardconding /usr/local.
- Fix build on 10 and head with new libc++
PR: ports/183933
Submitted by: Fernando <fernando.apesteguia@gmail.com> (maintainer)
It brings bison as a build dependency in case it is set the following way:
USES= bison or USES= bison:build
it brings bison as a run dependency in case it is set the following way:
USES= bison:run
it brings bison both as a run and build dependency in case it the set the following way:
USES= bison:both
While here trim some headers
Convert some USE_GNOME= gnomehack to USES= pathfix
- add build dependencies on bison and flex
while here:
- trim Makefile header
- remove redundant tabs in Makefile
- use SF shortcut in MASTER_SITES
- remove indefinite article from COMMENT
- remove exclicit dependency on qmake, since it is already defined in USE_QT4
- change BUILD_DEPENDS usage to more common
- remove trailing whitespace in pkg-descr
PR: 172583
Submitted by: Fernando <fernando.apesteguia at gmail dot com> (maintainer)
Feature safe: yes
(especially middle and high-school students) the basics of computer
programming.
It uses traditional control structures like gosub, for/next, and goto,
which helps kids easily see how program flow-control works. It has a
built-in graphics mode which lets them draw pictures on screen in
minutes, and a set of detailed, easy-to-follow tutorials that
introduce programming concepts through fun exercises.
WWW: http://http://www.basic256.org
PR: ports/160367
Submitted by: Fernando <fernando.apesteguia@gmail.com>