- Allow build on armv6 and armv7
- Add options to build Kodi with Wayland, Xorg, GBM, and Raspberry Pi
support
- The WAYLAND option remains broken until it is also enabled by default
in graphics/mesa-libs
- Raspberry Pi support is very unstable and should be considered
experimental at best
The update also includes:
* Change to Qt5
* Disabling of GLinject feature that doesn't work on FreeBSD
* Switching build to cmake
Tests showed that it works as expected.
Submitted by: myself
Reported by: portscout
Approved by: adamw (mentor)
Differential Revision: https://reviews.freebsd.org/D13787
qtmultimedia now uses a configure.json file to describe configuration options
and checks that qmake should perform. On the one hand it means
extrapatch-no-gstreamer no longer applies (and neither does the TBR_DEPENDS
hack in the Makefile), on the other the configuration process has been
streamlined: we only need to pass the right options via QMAKE_CONFIGURE_ARGS to
enable and disable options.
While here, stop setting QT_DEFINES altogether in the Makefile, as none of them
are really necessary at all:
- XVIDEO is a Qt4 thing;
- ALSA, OPENAL and PULSEAUDIO are handled by qmake's configure.json
infrastructure, which sets a QT_NO_<OPTION> macro in qtmultimedia-config.h
when they are not enabled.
- There is no QT_{NO_}GSTREAMER upstream, so we're basically defining some
macros that no code is going to use.
Reviewed by: tcberner (earler version without the QT_DEFINES changes)
This took quite a lot of time because Qt's own build system underwent
several changes in 5.8.0 that took a while to adapt to.
And, of course, qt5-webengine is a behemoth that we need to patch like crazy
due to its bundling of Chromium. In fact, most of the Chromium patches in
qt5-webengine have been imported with no changes from www/chromium@433510
("www/chromium: update to 56.0.2924.87").
New port: accessibility/qt5-speech
Bigger changes to Qt5 ports we had to make:
- Qt now allows using a configure.json file to define configuration options
and specify configuration checks that can be done when qmake is invoked.
However, configure.json checks done in a subdirectory only propagates to
subdirectories, and checks elsewhere will fail if all .pro files are being
parsed at once (i.e. qmake -recursive), so several ports had to switch to
USES=qmake:norecursive along with manual additional qmake invocations in
subdirectories in order to work. It's been mentioned in a few places such
as Qt's bug tracker that qmake's recursive mode is pretty much deprecated,
so we might switch to non-recursive mode by default in the future.
- Uses/qmake.mk: Introduce QMAKE_CONFIGURE_ARGS. qmake now accepts
arbitrary options such as '-foo' and '-no-bar' at the end of the
command-line. They can be specified in QMAKE_CONFIGURE_ARGS.
- graphics/qt5-wayland: The port can only be built if graphics/mesa-libs is
built with the WAYLAND option, so a corresponding option (off by default)
was added to the port.
- misc/qt5-doc: Switch to a pre-built documentation tarball. The existing
port was not working with Qt 5.9. Instead of trying to fix it, switch to
what Gentoo does and fetch a tarball that already contains all
documentation so that we do not have to build anything at all. The
tarball's name and location in download.qt.io look a bit weird, but it
seems to work fine.
- www/qt5-webengine: Use binutils from ports, Chromium's GN build system
generates a build.ninja that uses ar(1) with the @file syntax that is not
supported by BSD ar, so we need to use GNU ar from binutils.
- x11-toolkits/qt5-declarative-render2d: This port was merged into the main
Qt Declarative repository upstream, and into x11-toolkits/qt5-quick in the
ports tree.
Changes to other ports we had to make:
- biology/ugene: Drop a '#define point "."' that is not present in more
recent versions of the port. Defining a macro with such a common name
causes build issues with Qt 5.9, which uses |point| as an argument name in
methods.
- cad/qelectrotech: Fix plist with Qt 5.9. Directories are no longer
installed with `cp -f -R', but rather `qmake install qinstall', which does
not install
%%DATADIR%%/elements/10_electric/20_manufacturers_articles/bosch_rexroth/.directory
That's a local file that should not even have been part of the tarball
anyway.
- chinese/gcin-qt5: Add additional private Qt directories (which should not
be used in the first place) to get the port to build with Qt 5.9.
- devel/qtcreator: Fix plist with Qt 5.9. Something changed in qdoc and some
test classes no longer generate documentation files.
- security/keepassx-devel: Import a patch sent upstream almost a year ago to
fix the build with Qt 5.9.
Thanks to antoine for the exp-run, and tcberner and Laurent Cimon
<laurent@nuxi.ca> for landing changes in our qt-5.9 branch.
PR: 224849
This is the followup for the r457997 commit that updated devel/py-cffi to 1.11.2.
As it turned out, the shared object names built by py-cffi has changed in python 36.
Dependent ports can choose between installing such shared object as part of their plist, or
generating them in the runtime and placing them into ~/.cache/{port-name}/ The former ones,
that include the shared objects in their plist, got affected.
4 of the ports were failing explicitly in their py36 flavor during the strip phase.
The other 6 were either missing strip entirely, or performed the strip operation without
using explicit shared object names. These 6 ports didn't trigger any build errors, and were
failing silently during the runtime, making the problem very hard to detect.
Precisely, .abi3 suffix is now added for the py36 flavor of relevant ports.
Here are the 10 ports that got affected and are now corrected:
databases/py-psycopg2cffi devel/py-pygit2 devel/py-xattr devel/py-pyopencl devel/py-atomiclong
multimedia/py-librtmp net/py-nnpy security/py-bcrypt security/py-cryptography security/py-pynacl
All of them got the * in the stripped shared object name, and a PORTREVISION bump.
audio/hufftable.cpp:553:8: error: constant expression evaluates to -1 which cannot be narrowed to
type 'unsigned int' [-Wc++11-narrowing]
{ 0, 0-1, 0-1, 0, 0, htd33},
^~~
audio/hufftable.cpp:553:8: note: insert an explicit cast to silence this issue
{ 0, 0-1, 0-1, 0, 0, htd33},
^~~
static_cast<unsigned int>( )
audio/hufftable.cpp:553:13: error: constant expression evaluates to -1 which cannot be narrowed to
type 'unsigned int' [-Wc++11-narrowing]
{ 0, 0-1, 0-1, 0, 0, htd33},
^~~
audio/hufftable.cpp:553:13: note: insert an explicit cast to silence this issue
{ 0, 0-1, 0-1, 0, 0, htd33},
^~~
static_cast<unsigned int>( )
audio/hufftable.cpp:557:8: error: constant expression evaluates to -1 which cannot be narrowed to
type 'unsigned int' [-Wc++11-narrowing]
{ 4, 0-1, 0-1, 0, 0, htd33},
^~~
audio/hufftable.cpp:557:8: note: insert an explicit cast to silence this issue
{ 4, 0-1, 0-1, 0, 0, htd33},
^~~
static_cast<unsigned int>( )
audio/hufftable.cpp:557:13: error: constant expression evaluates to -1 which cannot be narrowed to
type 'unsigned int' [-Wc++11-narrowing]
{ 4, 0-1, 0-1, 0, 0, htd33},
^~~
audio/hufftable.cpp:557:13: note: insert an explicit cast to silence this issue
{ 4, 0-1, 0-1, 0, 0, htd33},
^~~
static_cast<unsigned int>( )
audio/hufftable.cpp:567:8: error: constant expression evaluates to -1 which cannot be narrowed to
type 'unsigned int' [-Wc++11-narrowing]
{14, 0-1, 0-1, 0, 0, htd33},
^~~
audio/hufftable.cpp:567:8: note: insert an explicit cast to silence this issue
{14, 0-1, 0-1, 0, 0, htd33},
^~~
static_cast<unsigned int>( )
audio/hufftable.cpp:567:13: error: constant expression evaluates to -1 which cannot be narrowed to
type 'unsigned int' [-Wc++11-narrowing]
{14, 0-1, 0-1, 0, 0, htd33},
^~~
audio/hufftable.cpp:567:13: note: insert an explicit cast to silence this issue
{14, 0-1, 0-1, 0, 0, htd33},
^~~
static_cast<unsigned int>( )
Reported by: antoine (via bug 224669)
Obtained from: r458130
huffmantable.cpp:553:8: error: constant expression evaluates to -1 which cannot be narrowed to type
'unsigned int' [-Wc++11-narrowing]
{ 0, 0-1, 0-1, 0, 0, htd33},
^~~
huffmantable.cpp:553:8: note: insert an explicit cast to silence this issue
{ 0, 0-1, 0-1, 0, 0, htd33},
^~~
static_cast<unsigned int>( )
huffmantable.cpp:553:13: error: constant expression evaluates to -1 which cannot be narrowed to type
'unsigned int' [-Wc++11-narrowing]
{ 0, 0-1, 0-1, 0, 0, htd33},
^~~
huffmantable.cpp:553:13: note: insert an explicit cast to silence this issue
{ 0, 0-1, 0-1, 0, 0, htd33},
^~~
static_cast<unsigned int>( )
huffmantable.cpp:557:8: error: constant expression evaluates to -1 which cannot be narrowed to type
'unsigned int' [-Wc++11-narrowing]
{ 4, 0-1, 0-1, 0, 0, htd33},
^~~
huffmantable.cpp:557:8: note: insert an explicit cast to silence this issue
{ 4, 0-1, 0-1, 0, 0, htd33},
^~~
static_cast<unsigned int>( )
huffmantable.cpp:557:13: error: constant expression evaluates to -1 which cannot be narrowed to type
'unsigned int' [-Wc++11-narrowing]
{ 4, 0-1, 0-1, 0, 0, htd33},
^~~
huffmantable.cpp:557:13: note: insert an explicit cast to silence this issue
{ 4, 0-1, 0-1, 0, 0, htd33},
^~~
static_cast<unsigned int>( )
huffmantable.cpp:567:8: error: constant expression evaluates to -1 which cannot be narrowed to type
'unsigned int' [-Wc++11-narrowing]
{14, 0-1, 0-1, 0, 0, htd33},
^~~
huffmantable.cpp:567:8: note: insert an explicit cast to silence this issue
{14, 0-1, 0-1, 0, 0, htd33},
^~~
static_cast<unsigned int>( )
huffmantable.cpp:567:13: error: constant expression evaluates to -1 which cannot be narrowed to type
'unsigned int' [-Wc++11-narrowing]
{14, 0-1, 0-1, 0, 0, htd33},
^~~
huffmantable.cpp:567:13: note: insert an explicit cast to silence this issue
{14, 0-1, 0-1, 0, 0, htd33},
^~~
static_cast<unsigned int>( )
Reported by: antoine (via bug 224669)
Obtained from: Arch Linux
Removing eigen as a run-depend in graphics/movit makes mlt fail to build.
Add eigen as a build-depend to mlt*.
Pointy hat: tcberner
Reported by: antoine
- Remove the use of comp_DETECT.
- Remove all comp_DETECT variables.
- Remove a use of comp_DETECT outside of gnome.mk
- Remove py3gobject3.
- Have ports depending directly on devel/py-gobject3 use gnome to do it.
PR: 224618
Submitted by: mat
Exp-run by: antoine
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D13550
Upstream no longer ships the contents of misc/py-qt5-doc, so the port has been
removed.
This is also a requirement for updating the Qt5 ports, as the PyQt5 version
currently in the tree has license conflicts with later Qt versions.
Big thanks to tcberner for doing most of the work here, and antoine for the
exp-run.
PR: 224739
Additional details:
- Update FFmpeg version required to 3.4.1,1
- Clean some unrecognized options
- Fix build with net/freerdp and audio/libsidplay2
- Drop DIRAC option because the module was removed upstream
(dirac codec is still supported via schroedinger)
PR: 224660
Submitted by: cpm
xine relies on ld.bfd's permissive treatment of shared library symbols
with protected visibility, and attempting to link with lld fails with
errors like:
/usr/bin/ld: error: cannot preempt symbol: xine_usec_sleep
>>> defined in /usr/local/lib/libxine.so
>>> referenced by actions.c
>>> actions.o:(wait_for_window_visible)
For now set LLD_UNSAFE=yes so that the port will continue to link with
ld.bfd if /usr/bin/ld is lld, until the issue can be addressed (with a
change in libxine or in lld).
PR: 214864
Approved by: portmgr (LLD_UNSAFE blanket)
Sponsored by: The FreeBSD Foundation
/usr/bin/ld: /wrkdirs/usr/ports/multimedia/mpv/work/mpv-0.27.0/build/mpv: local symbol `__progname' in /usr/lib/crt1.o is referenced by DSO
/usr/bin/ld: final link failed: Bad value
cc: error: linker command failed with exit code 1 (use -v to see invocation)
Reported by: pkg-fallout
- Add support to enable VAAPI under Wayland (disabled by default)
- Regenerate patch with makepatch to make portlint happy
PR: 224425
Submitted by: Greg V <greg@unrelenting.technology>
libxine relies on ld.bfd's permissive treatment of shared library
symbols with protected visibility, and attempting to link with lld
fails with errors like:
/usr/bin/ld: error: cannot preempt symbol: xine_get_version_string
>>> defined in ../src/xine-engine/.libs/libxine.so
>>> referenced by xine-list.c:98
>>> xine-list.o:(main)
For now set LLD_UNSAFE=yes so that the port will continue to link with
ld.bfd if /usr/bin/ld is lld, until the issue can be addressed (with a
change in libxine or in lld).
PR: 214864
Approved by: portmgr (LLD_UNSAFE blanket)
Sponsored by: The FreeBSD Foundation
- in general, if we think that the code is not architecture-specific,
and instead just enables x86 assembler by default, those should
use BROKEN rather than IGNORE. This will allow them to be attempted
with TRYBROKEN.
- spell i386 as x86.
- spell asm as assembler.
- pet portlint.
These changes should have no effect on tier-1 builds.
Approved by: portmgr (tier-2 blanket)
In r440321 and r440322 PORTVERSION was bumped to 0.28.7/0.28.1, but
GH_TAGNAME was not updated. Commit ad97d24 is tagged as v0.27.5 [1].
Reset version back to 0.27.5 and bump PORTEPOCH.
[1] https://github.com/MythTV/mythtv/releases/tag/v0.27.5
PR: 222219
Reported by: robbak@gmail.com
Pointy hat: miwi
PREFIX/lib/dri.
This is the same location where other ports(mesa) install drivers,
so that everything works out of the box.
PR: 224424
Submitted by: Greg V <greg@unrelenting.technology>