1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-15 03:14:23 +00:00
Commit Graph

97 Commits

Author SHA1 Message Date
Raphael Kubo da Costa
4f4643e47e Fix qt5-websockets-qml's dependency path in bsd.qt.mk.
libdeclarative_qmlwebsockets.so is not installed into ${QT_LIBDIR}, which
causes the dependency logic in bsd.qt.mk to actually do something equivalent to
this instead:

    BUILD_DEPENDS+=  ${QT_LIBDIR}/${QT_QMLDIR}/QtWebSockets/libdeclarative_qmlwebsockets.so:www/qt5-websockets-qml
    RUN_DEPENDS+=    ${QT_LIBDIR}/${QT_QMLDIR}/QtWebSockets/libdeclarative_qmlwebsockets.so:www/qt5-websockets-qml

which translates into something like

    /usr/local/lib/qt5//usr/local/lib/qt5/qml/QtWebSockets/libdeclarative_qmlwebsockets.so:www/qt5-websockets-qml

which obviously does not exist.

Instead of settin websockets-qml_LIB, set websockets-qml_PATH like we do for
other QML ports, so that our dependency logic does not needlessly prepend
${QT_LIBDIR} there. This fixes devel/qt5's build.

PR:		220045
2017-07-08 10:44:13 +00:00
Tobias C. Berner
b7f2d323ae Split part of www/qt5-websockets into new port www/qt5-websockets-qml
This splits qt5-websockets into a qt5-websockets port containing the core parts,
and a qt5-websockets-qml port with the QML parts. The QML parts depend on Qt Quick,
so on the GUI parts (and hence X11) while the core parts do not.

PR:		220045
Submitted by:	Adriaan de Groot <groot@kde.org>
2017-07-06 20:40:51 +00:00
Tobias C. Berner
d02de8e940 Add two new ports: sysutils/qt5-qtdiag and sysutils/qt5-qtplugininfo
* qtdiag outputs diagnostics on the current Qt installation and can be helpful to find issues.
* qtpluginfo is useful while writing plugins for Qt5/KDE Plasma

Reviewed by:	rakuco, mat
Differential Revision:	https://reviews.freebsd.org/D11280
2017-06-21 18:07:19 +00:00
Tobias C. Berner
5605b4ff93 Remove trailing space. 2017-06-21 08:21:55 +00:00
Tobias C. Berner
4440fb81d4 Fix qt4 ports on armv6.
Due to a misspelling in GCC [1] (probably) the check for the ARMv6KZ platform
used ARM_ARCH_6ZK instead of ARM_ARCH_6KZ.

[1] https://gcc.gnu.org/ml/gcc-patches/2015-06/msg01679.html

PR:		210027
Submitted by:	Mikaël Urankar <mikael.urankar@gmail.com>
Reviewed by:	rakuco
Differential Revision:	https://reviews.freebsd.org/D8322
2017-06-06 05:00:56 +00:00
Tobias C. Berner
d926a26981 Do not use gold linker for Qt5 ports.
gold linker from binutils 2.28 may produce duplicate library
  symbols, which makes shared libraries created with it not usable
  with conventional ld linker.

PR:		218187
Submitted by:	amdmi3
2017-06-02 20:03:12 +00:00
Tobias C. Berner
f3c180c343 Update Qt5 to 5.7.1, and unify the Qt4 and Qt5 ports some more
* Update Qt5 to 5.7.1
* Move Qt4 binaries to lib/qt4/bin
* Move Qt5 libraries to lib/qt5/lib
  By moving the libraries we should finally be able to get rid of the inplace
  upgrade bug (see ports bugs 194088, 195105 and 198720):  when Qt5's libraries
  were lying in /usr/local/lib, which would often get added by pkgconfig to the
  linker paths via dependencies, the already installed libraries were linked
  against, instead of the ones that were being built. This forced us to make
  sure, that -L${WRKSRC}/lib was always coming before -L/usr/local/lib in the
  linker flags. With this change this should no longer be the case.
* Rename some ports to match the rest (foo-qtX -> qtX-foo)
* Depend on new port misc/qtchooser [see UPDATING & CHANGES]

There are several new Qt5 ports which all have been created by Marie Loise Nolden
<nolden@kde.org>. Thanks again.

PR:		216797
Exp-Run by:	antoine
Reviewed by:	rakuco, mat, groot_kde.org
Approved by:	rakuco (mentor)
Differential Revision:	https://reviews.freebsd.org/D9213
2017-02-18 19:48:05 +00:00
Tobias C. Berner
7b5da0fa70 Change the way the pkgconfig-file install path is set for Qt5 ports.
As noticed in x11-toolkits/qt5-charts we never corrected the way in which qmake
sets the pkgconfig path for Qt5-modules. Instead there was a sed-call on the
generated Makefiles in bsd.qt.mk in the target qt-pre-install.

This diff modifies devel/qmake5 to set QMAKE_PKGCONFIG_DESTDIR to
../libdata/pkgconfig from the default pkgconfig.

As we split Qt-base into multiple ports, simply patching devel/qmake5 is not
enough, as the other base-ports will use the file from inside the tarball.
Therefore add it as an extrapatch for the Qt-base ports.
As this affects the same file extrapatch-libtool in devel/qt5 touched, rename
this one and add a hunk to do this change too.

Note: qt4 ports are unaffected, as they never were converted to used the
qt-preinstall target, and still contain the sed-call in their Makefiles.

Reviewed by:    rakuco
Approved by:    rakuco (mentor)
Differential Revision:  https://reviews.freebsd.org/D8713
2016-12-19 11:12:32 +00:00
Tobias C. Berner
62ede14c75 Get rid of QT_PREFIX in favour of PREFIX.
QT_PREFIX was a remnant of a bygone time.

Reviewed by:    rakuco
Approved by:    rakuco (mentor)
Differential Revision:  https://reviews.freebsd.org/D8825
2016-12-18 22:06:50 +00:00
Tobias C. Berner
6910ba38cc Stop exporting QT_BINDIR and QT_LIBDIR to PLIST_SUB.
As at the moment QT_BINDIR and QT_LIBDIR are 'bin' respectively 'lib' depending
on the Qt version these subs ended up at many wrong places in plists.

So only export it if QT_DIST is set.

PR:		210227
Reviewed by:	mat, rakuco
Approved by:	portmgr (mat), rakuco (mentor)
Differential Revision:	https://reviews.freebsd.org/D8378
2016-11-29 06:20:40 +00:00
Tobias C. Berner
8acdf7170f Reintegrate textproc/clucene-qt5 into devel/qt5-help
As devel/qt5-help is the only consumer of textproc/clucene-qt5 and the latter
it is part of the same distfile we can simplify it, and get rid of clucene-qt5.

This was spotted by Marie Loise Nolden <nolden@kde.org> -- thanks :)

Reviewed by:	rakuco
Approved by:	rakuco (mentor)
Sponsored by:	https://reviews.freebsd.org/D8638
2016-11-25 20:28:53 +00:00
Tobias C. Berner
095ac1e918 Update the dependency code in bsd.qt.mk to the one from kde.mk
The dependency code from kde.mk can add LIB_DEPENDS if the sense-file is a
library. Import this into bsd.qt.mk

PR:		214744
Reviewed by:	rakuco, mat
Approved by:	mat (mentor), rakuco (mentor)
Exp-run by:	antoine
Differential Revision:	https://reviews.freebsd.org/D8602
2016-11-25 11:26:18 +00:00
Tobias C. Berner
58ad1ffe6e Drop CONFLICTS_BUILD on Qt3
qt3 has been removed in july 2013 [1] -- a while has passed.
[1] https://svnweb.freebsd.org/ports?limit_changes=0&view=revision&revision=323748

Approved by:	rakuco (mentor)
2016-11-04 22:56:40 +00:00
Tobias C. Berner
ea7ceba707 Update Qt to 5.6.2 [1,2]
Thanks to the upstream work of Marie Loise Nolden, we could get rid of a handful
of patches, as they have been properly upstreamed. The rest of the work is just
some minor plist changes.

I would like to thank Loise <nolden@kde.org> for the upstream work, and Adriaan
<groot@kde.org> for getting the update into shape.

[1] http://blog.qt.io/blog/2016/10/12/qt-5-6-2-released/
[2] http://wiki.qt.io/Qt_5.6.2_Change_Files

PR: 213530
Exp-run by: antoine
Submitted by: Adriaan de Groot <groot@kde.org>
Reviewed by: rakuco, mat, tcberner
Approved by: rakuco (mentor)
Differential Revision: https://reviews.freebsd.org/D8228
2016-10-28 13:43:14 +00:00
Raphael Kubo da Costa
dbd37211c0 bsd.qt.mk: Use CONFIGURE_WRKSRC instead of WRKSRC in the .qmake.cache hack
WRKSRC is not what we want here: when USES=qmake:outsource is used (such as
in www/webkit-qt5), the build actually takes place in ${WRKDIR}/.build, so
we were creating .qmake.cache in the wrong location and passing the wrong
directory to the linker via -L. With CONFIGURE_WRKSRC, we get the right
value regardless of whether :outsource is used or not.

PR:		212859
Reviewed by:    tcberner
MFH:            2016Q3
2016-09-26 17:44:08 +00:00
Raphael Kubo da Costa
3346021972 Update the Qt5 ports to 5.6.1.
This took longer than expected, but there are quite a few changes to the
existing ports and a few new ones.

General upstream changes:
- Starting with Qt 5.6.2, Qt will fail at configuration time if LibreSSL is
  being used. According to the discussion here:
  https://codereview.qt-project.org/#/c/154800/
  The Qt project is not opposed to LibreSSL, but does not want to mix
  support for it into the OpenSSL backend code, especially as they move
  towards supporting OpenSSL 1.1.
  People interested in LibreSSL support are welcome to submit a separate
  backend upstream, but are expected to maintain it. We (kde@) are not
  opposed to carrying some patches authored by others in the future, as long
  as they are not huge and destabilizing.
- When Qt detects the compiler supports C++11, it will pass -std=gnu++11 by
  default (this is an upstream change). You can add "CONFIG -= c++11" to
  your .pro. Qt 5.7 will require C++11.
- www/webkit-qt5: The QtWebKit module is deprecated upstream, and is shipped
  separately as a community release tarball. kde@ does not have an ETA for a
  qt5-webengine port, as it requires a huge effort (and number of patches)
  similar to maintaining www/chromium itself.
- x11-toolkits/qt5-declarative has been deprecated upstream. The last
  release is 5.5.1.

Relevant changes:
- devel/qmake5: The freebsd-clang mkspec has become the default mkspec on
  FreeBSD, replacing the outdated freebsd-g++ one that was moved to
  unsupported/ (it still works though).
- devel/qt5-qdoc: qdoc was moved to qttools upstream, but its data files are
  still in qtbase. The data files are now in the qt5-qdoc-data port.
- misc/qt5-doc: Clean up and stop requiring a compiler and fumbling with
  mkspecs. Instead of running the `configure' script, which requires a
  compiler and adjustments to the mkspecs files and also ends up building a
  new qmake binary, we now leverage USES=qmake to generate all the Makefiles
  from the top-level qt.pro. Getting this to work requires some tricks,
  though, and qt.conf.in has a longer explanation of what's being done.
  Switch to USES=gmake to be able to drop MAKE_JOBS_UNSAFE=yes.

New ports:
- comms/qt5-serialbus
- devel/qt5-qdoc-data
- x11-toolkits/qt5-quickcontrols2

Big thanks to Adriaan de Groot (groot@kde.org), tcberner@ and Loise Nolden
(nolden@kde.org) for the huge amount of work they put into this
patch. Loise in particular also sent quite a few changes upstream that were
essential for this update to work.

PR:		211916
2016-09-17 09:46:54 +00:00
Rene Ladan
f9c8dbe476 Unregister net/qt5-enginio from Mk/bsd.qt.mk which has expired.
PR:		211581
Submitted by:	myself
Approved by:	kde (tcberner), portmgr (mat)
2016-08-06 22:00:20 +00:00
Kurt Jaeger
287b7f7348 devel/qt5, Mk/bsd.qt.mk: Add qt5-doc to the list of ports devel/qt5 depends on
The patch moves the "doc" port in bsd.qt.mk from _USE_QT4_ONLY to
_USE_QT_ALL and bumps the PORTREVISION in devel/qt5 for the inclusion
of the qt5-doc port into the qt5 metaport.

Pre-Work for updating qtcreator to 4.0 for adding options to install
qt5-doc and qt5-examples to make qtcreator actually usable for
serious qt development.

PR:		209910
Submitted by:	Ralf Nolden <nolden@kde.org> (kde)
2016-06-01 19:10:05 +00:00
Kurt Jaeger
773f082659 devel/qt5: refactor: fix Mk/bsd.qt.mk
- the 'doc' component for qt4 was dropped inadvertently, re-added

PR:		209326
Submitted by:	Tobias Berner <tcberner@gmail.com> (kde)
2016-05-29 08:39:58 +00:00
Kurt Jaeger
a9ed0c96d6 Mk/bsd.qt.mk: preparing structures for the eventual update to qt-5.6
PR:		209326
Submitted by:	rakuco, T.C.Berner <tcberner@gmail.com>, Ralf Nolden <nolden@kde.org>
2016-05-28 17:22:11 +00:00
Raphael Kubo da Costa
980bac6f1e New port: databases/qt5-sqldrivers-tds.
This is a new SQL plugin, released with Qt 5.5, and can be used with
databases/freetds.

Submitted by:	Ralf Nolden <nolden@kde.org>
2016-03-30 20:00:27 +00:00
Baptiste Daroussin
421767bd88 Remove the now unneeded ${PORTSDIR} from dependency definition in
The infrastructure Makefiles

PR:		206569
Exp run by:	antoine
Differential Revision:	D5047
2016-03-27 01:23:25 +00:00
Raphael Kubo da Costa
4c67812e01 Update Qt5 to 5.5.1.
This is the latest stable release at time of writing.

Release announcement: http://blog.qt.io/blog/2015/07/01/qt-5-5-released/
New features in Qt 5.5: https://wiki.qt.io/New_Features_in_Qt_5.5

As usual, huge thanks to Tobias Berner (tcberner@gmail.com) for all his work
on these ports in kde@'s experimental area51 repository. He's the one who
started the update and did a lot of the initial work on Qt 5.5. Ralf Nolden
(nolden@kde.org) has contributed the initial version of most of our new Qt5
ports.

Also thanks to Yuri Victorovich (yuri@rawbw.com) for contributing PR 205805
with his own patch for the 5.5.1 update. Some of his changes there prompted
additional fixes and changes present in the final patch generated from our
experimental repository.

New ports:
- comms/qt5-connectivity, comms/qt5-sensors, devel/qt5-location,
  graphics/qt5-3d, net/qt5-enginio, x11-toolkits/qt5-canvas3d,
  x11-toolkits/qt5-uiplugin.

General changes in all Qt5 ports:
- All Qt5 ports are now built with -Wl,--as-needed to avoid overlinking,
  which is a problem with qmake-based because the libraries passed to the
  linker come from the modules .pri files and many are not necessary.
- With this change, several ports had their USE_QT5 lines adjusted to
  explicitly include some libraries that were pulled in implicitly, and to
  exclude libraries no longer required with -Wl,--as-needed.

Changes in specific ports:
- devel/qt5: Drop the SQL_PLUGINS and TOOLS options and depend on all Qt5
  ports by default. It makes the Makefile much simpler, and those options
  were already on by default.
- devel/qt5-core: The clang+base libstdc++ workaround has been expanded and
  more C++11 features have been disabled when that combination is used by a
  port (basically, FreeBSD 9 with USES=compiler:c++11-lang). The disabled
  features have explanations for why they were disabled in the patched
  header itself.
- devel/qt5-designer: uiplugins has been split out following a similar
  change upstream. By depending on qt5-uiplugin, qt5-uitools avoids having
  to depend on the big qt5-designer port.
- multimedia/qt5-multimedia: The port now uses GStreamer 1.0 instead of
  0.10.
- net/qt5-network: The port now depends on libproxy for proxy settings.
  Using libproxy allows proxy settings to be read from different sources,
  and also allows .pac files to work with Qt.
- www/qt5-webkit: The port now uses GStreamer 1.0 instead of 0.10.

PR:		205805
PR:		206435
2016-01-24 18:10:14 +00:00
Raphael Kubo da Costa
1fc9a94f24 Qt5: Add a patch to allow using clang, -std=c++11 and base libstdc++.
This is similar to what we did for Qt4 in r362770. Some C++11 features actually
depend on the C++ standard library, such as <initializer_list> or std::move().

So far, ports with USES=compiler:c++0x and similar failed to build with Qt5 on
FreeBSD 9.x, as base libstdc++ is very old and does not support those C++11
features.

Piggyback on a check that is already present upstream for OS X, which has the
same ancient libstdc++ version. Apple's version has a custom patch with version
macros that we can't use, so we make a broader check and disable the features
that depend on a modern standard library if libc++ is not used.
2016-01-03 21:25:23 +00:00
Raphael Kubo da Costa
8ceb79f0fe Make sure ${WRKSRC}/lib is passed before /usr/local/lib when linking.
This is another shot at fixing the linkage problems that have plagued our
users particularly when upgrading from Qt 5.x to 5.(x+1). Quick recap: in
Qt5, qmake will by default pass QMAKE_LIBDIR to the linker before other
directories such as ${WRKSRC}/lib, which is where the port's libraries are
built. When a user is upgrading Qt, we can end up with the following linker
line:
  c++ -o SomeBinary -lfoo1 -L/usr/local/lib -L${WRKSRC}/lib -lfoo2 -lfoo3
If libfoo2.so is being built by the port and an older version is currently
installed on the system, /usr/local/lib/libfoo2.so will be picked up instead
of the newly-built ${WRKSRC}/lib/libfoo2.so. At best things just work, at
worst SomeBinary needs some new symbol that is not present in the old
libfoo2.so and linking fails. Case in point: bug 198720.

The previous approach, adopted when fixing bug 194088, was to stop setting
QMAKE_{INC,LIB}DIR in the FreeBSD mkspecs and set the CPATH and LIBRARY_PATH
environment variables in Uses/qmake.mk. This way we just did not pass
-L/usr/local/lib to the linker at all and things mostly worked. However,
people using Qt to build their own software without the ports tree were out
of luck, as they would then need need to deal with passing
/usr/local/{include,lib} to the compiler/linker themselves (bug 195105). Not
only that, but if a dependency mentioned /usr/local/lib we would still have
problems anyway (in bug 198720, the GStreamer pkg-config files contain
-L/usr/local/lib, for example).

We now solve the issue by setting the QMAKE_LIBDIR_FLAGS variable in
.qmake.cache to ${WRKSRC}/lib instead. qmake appends the value of
QMAKE_LIBDIR to QMAKE_LIBDIR_FLAGS, so we are always sure -L${WRKSRC}/lib
will come before -L/usr/local/lib in the linker options. Moreover, qmake is
smart enough to automatically call sed(1) and remove references to
${WRKSRC}/lib from .prl and .pc files when installing them.

PR:		194088
PR:		195105
PR:		198720
MFH:		2015Q4
2015-12-28 18:51:41 +00:00
Raphael Kubo da Costa
c502e77d8f bsd.qt.mk: Move QT_NONSTANDARD check to the _POSTMKINCLUDED section.
Do it so that files in Mk/Uses can set it too. It is required by the
upcoming Uses/pyqt.mk that we will land soon to support PyQt5.

PR:		204975
2015-12-05 21:39:13 +00:00
Baptiste Daroussin
8cea2b0147 Readd PORTSDIR for now we will only start removing them after 2016Q1 is branched
This gives more time for tools to get updated, available in packages etc before
bothering users
2015-10-15 07:36:38 +00:00
Baptiste Daroussin
869e1f27d0 Drop the necessity to add ${PORTSDIR} to dependency line
Modify make describe to automatically prepend ${PORTSDIR} if the path for the
port is not absolute

Checked with poudriere, portmaster, portupgrade

PR:		203685
Exp-run by:	antoine
Differential Revision:	https://reviews.freebsd.org/D3866
2015-10-14 16:49:35 +00:00
Koop Mast
bf4361021d Fix qt5-multimedia with GStreamer 1.6.0.
Qt 5 does the following during the build of qt5-multimedia:

--- qt-post-install ---
echo "# define QT_GSTREAMER"  >> /wrkdirs/usr/ports/multimedia/qt5-multimedia/
  work/stage/usr/local/include/qt5/QtCore/modules/qconfig-multimedia.h
echo "# define QT_GST_VERSION=1.0"  >> /wrkdirs/usr/ports/multimedia/
  qt5-multimedia/work/stage/usr/local/include/qt5/QtCore/modules/qconfig-multimedia.h
echo "# define QT_XVIDEO"  >> /wrkdirs/usr/ports/multimedia/qt5-multimedia/
  work/stage/usr/local/include/qt5/QtCore/modules/qconfig-multimedia.h

That's (second line) not how #define works in C of C++

The resulting qconfig-multimedia.h file contains this:

#if !defined(QT_GST_VERSION=1.0) && !defined(QT_NO_GST_VERSION=1.0)
# define QT_GST_VERSION=1.0
#endif

This patch filters out the "=1.0" from the define. Bump qt5-multimedia
since the installed header needs to be corrected.

Reported by:	antoine@
Patch submitted by:	Adriaan de Groot <groot@kde.org>
2015-09-28 20:20:53 +00:00
Raphael Kubo da Costa
39ced03cc1 Update the Qt4 ports to 4.8.7.
According to upstream, this is the last planned Qt4 release.
A list of changes since 4.8.6 can be found here:
<http://download.qt.io/official_releases/qt/4.8/4.8.7/changes-4.8.7>

Porting notes and changes:
- Remove several patches that have been upstreamed.
- Make Uses/qmake.mk pass the contents of LIBS to the qmake environment. [1]
- Repurpose devel/qt4/files/extrapatch-src-corelib-global-qglobal.h now the
  original patch is part of the release (curiously enough, the original
  patch was never actually used, as the ?= assignment in r362837 after
  r362770 was never possible).

  This works around the way compiler support for C++11 features is detected
  in Qt 4.8.7: while it originally only uses the compiler to determine if
  something is supported or not, the initializer lists feature also depends
  on the C++ standard library being used. It's a problem in FreeBSD 9.x,
  where USES=compiler:c++0x or USES=compiler:c++11-lang means we will use
  clang to build a port but use libstdc++ from base (GCC 4.2). The latter
  obviously does not support initializer lists, and the build fails because
  Qt tries to include headers that do not exist (<initializer_list>).

  Since detecting libstdc++'s version is not trivial (we need to include a
  non-lightweight header like cstdio and then check for __GLIBCXX__), we
  just enable Q_COMPILER_INITIALIZER_LISTS support only when libc++ is used
  (there should be no reason for someone to be using clang with GCC 4.8's
  libstdc++, for example).

  x11/kdelibs4's FindQt4.cmake had to include a backported change from the
  upstream FindQt4.cmake in CMake itself to use a C++ compiler to detect
  flags like Q_WS_X11, otherwise the inclusion of <ciso646> in qglobal.h
  makes the build fail.

This patch contains changes by me, makc@ and alonso@.

PR:             202552 [1]
PR:             202808 [exp-run]
Submitted by:	pawel@ [1]
2015-09-16 08:55:04 +00:00
Raphael Kubo da Costa
a59094b353 Add www/qt5-websockets.
The QtWebSockets module implements the WebSocket protocol as specified
in RFC 6455. It solely depends on Qt (no external dependencies).

http://doc.qt.io/qt-5/qtwebsockets-index.html

Submitted by:	Tobias Berner <tcberner@gmail.com>
2015-06-11 11:59:55 +00:00
Alonso Schaich
d337aa2724 Add a new port www/qt5-webchannel
Qt-5.4 introduced a new component: Qt WebChannel

The Qt WebChannel module provides a library for seamless integration of C++ and
QML applications with HTML/JavaScript clients. Any QObject can be published to
remote clients, where its public API becomes available.

https://doc-snapshots.qt.io/qt5-5.4/qtwebchannel-index.html

Approved by:		makc (mentor)
Submitted by:		Tobias Berner <tcberner@gmail.com> via area51 commit
2015-05-31 22:56:44 +00:00
Tijl Coosemans
7404ea9abc Simplify test for SSE2 2015-05-24 18:19:33 +00:00
Tijl Coosemans
acaf83b07a Fix r387281 for fmake and bump qmake5 because a spec file changes.
Reported by:	antoine
2015-05-24 17:33:15 +00:00
Tijl Coosemans
5d6bb15d73 Qt 5.3 removed runtime detection of SSE2 so it needs to be configured
with -no-sse2 at buildtime on i386.

PR:		198738, 200258
Reported by:	sasamotikomi@gmail.com
Approved by:	maintainer timeout (2 weeks)
2015-05-24 16:41:16 +00:00
Max Brazhnikov
c66f90fb7d - Add ports for Qt 5 variety of Phonon 4
- Introduce new USE_QT5 component: phonon4

Based on patches submitted by Tobias C.Berner <tcberner@gmail.com>
via kde-freebsd maillist:
https://mail.kde.org/pipermail/kde-freebsd/2015-January/018741.html
2015-04-05 18:03:56 +00:00
Raphael Kubo da Costa
ccb0759749 Update Qt5 to 5.4.1.
This is probably the first time our Qt 5 ports are tracking the latest
upstream release :-)

There isn't much to report in this update, thanks to the effort spent in the
5.2->5.3 update: a lot of the work is just small plist and patch updates.
Thankfully, several patches have been upstreamed and are not needed on our
side anymore.

I would like to thank Alex Richardson <arichardson.kde@gmail.com> and Tobias
Berner <tcberner@gmail.com> for their help with the plist updates and
general testing.

PR:		198585
2015-03-18 09:37:42 +00:00
Raphael Kubo da Costa
dbe4a9dee6 Small clean up: consistently use _QT_RELNAME.
Submitted by:	makc in our experimental area51 repository
2015-03-06 22:17:59 +00:00
Max Brazhnikov
9d2e718f3c Introduce new USE_QT4 component linguisttools for lrelease/lupdate tools
split from from devel/qt4-linguist (similar to Qt 5 ports). These console
tools are often used for localization support in Qt ports, having them
standalone is quite useful. This work is based on Tobias Berner patch [1].

PR:             190929 [1]
Requested by:	amdmi3, koobs
2015-02-24 21:39:19 +00:00
Max Brazhnikov
8387bcfdb5 Mk/bsd.qt.mk: convert USE_XZ to USES 2015-02-19 22:08:03 +00:00
Raphael Kubo da Costa
34d0f208cc Add sysutils/qt5-qtpaths.
This is a command-line interface to QStandardPaths, part of qttools. It is
used by the KDE Frameworks 5 ports, which will be added in the future.

While here, also add x11-toolkits/qt5-quickcontrols to devel/qt5 which I had
forgotten to do before.

Submitted by:	Tobias Berner <tcberner@gmail.com>
2015-01-28 01:15:22 +00:00
Raphael Kubo da Costa
a9662ed949 Update Qt5 ports to 5.3.2.
Proudly presented by the KDE on FreeBSD team, with several guest stars.

This update took way longer than initially expected due to us previously
accumulating assumptions and changes to Qt's build system that finally bit
us back with the 5.3 release series, so we had to do a fair amount of
cleanup.

New ports:
- comms/qt5-serialport: Qt functions to access serial ports, originally
                        based on work by Fernando Apesteguia. [1]
- devel/qt5-qdoc: Qt documentation generator, the Qt5 equivalent of
                  devel/qt4-qdoc3. Originally worked on by Tobias Berner.
                  It had already been half-split from devel/qt5-buildtools,
                  we just needed to finish the work.

Dead ports:
- devel/qt5-qmldevtools: Merged into lang/qt5-qml.

Minor changes:
- devel/qt5: Add x11/qt5-x11extras and the new ports to the dependency list.
- graphics/qt5-imageformats: The port now supports the JPEG2000, WEBP,
                             Direct Draw Surface and ICNS formats.
- multimedia/qt5-multimedia: The ALSA and PULSEAUDIO options are now
                             mutually exclusive due to changes introduced in
                             Qt 5.3.0 (the ALSA code is now a proper plugin
                             that is only built if PulseAudio is not used).
- x11/qt5-x11extras: Add USE_LDCONFIG since the port installs a shared
                     library.

The big changes:
- bsd.qt.mk: Set QMAKESPEC instead of QMAKEPATH. [3]
  QMAKEPATH does much more than we want now that we call qmake from the top
  of ${WRKSRC}. qmake uses QMAKEPATH when evaluating the QMAKE_MKSPECS
  property, which is in turn used by qt_config.pri to load the .pri files in
  mkspecs/modules.

  In practice, this means that if people have an older Qt installation those
  files will be used and QT_CONFIG will have values such as "gui" even if
  one is building a port like textproc/qt5-xml, which passes -no-gui to the
  configure script. Consequently, unintended code paths may be enabled or
  the configuration step can just fail if the .pro files expect values that
  are not present in the system-wide, older .pri files.

  We avoid all those problems if we use QMAKESPEC, as qmake does not take
  its value into account when evaluating the QMAKE_MKSPECS property and will
  only parse the files in the mkspec's directory (mkspecs/freebsd-clang, for
  example, instead of all the files in mkspecs).

- Stop explicitly passing ${LOCALBASE} to the compiler. [3]
  qmake's behavior has changed in Qt 5, and the paths set in QMAKE_INCDIR
  and QMAKE_LIBDIR in the mkspecs are passed before any others, such as the
  ones in the build directory themselves.

  In practice, this means that we end up with linker calls like this:

  c++ -o libfoo.so foo.o bar.o -L/usr/local/lib -L/wrkdir/build/lib
      -lQt5Gui -lQt5Core

  So if one already has Qt installed in the system, the older, already
  present version of the libraries in /usr/local/lib will be used instead of
  the newly-built ones in /wrkdir/build/lib.

  QTBUG-40825 discusses this behavior upstream, but there has been no
  agreement on a solution yet.

  For now, the solution adopted is to make the compiler and the linker aware
  of those paths but only try them last after all others, and this is
  achieved by setting the CPATH and LIBRARY_PATH environment variables when
  qmake is being used.

  In addition to setting them in CONFIGURE_ENV and MAKE_ENV, we also need to
  stop changing QMAKE_INCDIR and QMAKE_LIBDIR as well as filter those paths
  from the pkg-config calls qtbase's configure script makes.

- Call qmake from the root of the ${WRKSRC}.

  In Qt 5.3, Qt's build infrastructure has undergone some changes that make
  our previous approach of calling qmake from the directories we want to
  build stop working. Things would break even more in Qt 5.4, in which
  qtbase's configure script does not accept the -process, -fully-process and
  -dont-process arguments anymore (it always behaves as if -process had been
  used).

  Bite the bullet and start calling qmake from ${WRKSRC}. The largest part of
  this change involves changing lines in Makefiles from
    WRKSRC_SUBDIR=	foo/bar
  to
    BUILD_WRKSRC=		${WRKSRC}/foo/bar
    INSTALL_WRKSRC=		${WRKSRC}/foo/bar
  as well as adding patches to .pro files to avoid entering other
  subdirectories and removing post-configure targets that are not necessary
  anymore.

  Since qmake needs to be called from the top of ${WRKSRC} anyway, we can
  also simplify the configuration process for the qtbase ports a little.
  Looking at r10019 it is not clear why we started calling qmake in the
  pre-configure target in addition to the post-configure one (while also
  skipping it in do-configure), but we can now drop this call since letting
  configure behave as if -process had been passed means it will call qmake
  on its own and overwrite the files generated by the pre-configure call. We
  still need to call qmake in post-configure though, as the configure script
  does not pass -recursive when calling qmake and we need to be able to call
  make from any subdirectory when building.

PR:		194762 [1]
PR:		194566 # exp-run with base GCC and clang
PR:		194088 [3]
2014-11-05 09:39:21 +00:00
Raphael Kubo da Costa
b569014a83 bsd.qt.mk: Stop using @cwd in the plist generation code.
Just specify full paths with ${QT_PREFIX} directly, as @cwd is deprecated.
2014-10-29 22:43:21 +00:00
Raphael Kubo da Costa
990a62701e Remove @dirrm and @dirrmtry entries from the Qt ports. 2014-10-23 21:35:14 +00:00
Raphael Kubo da Costa
4e4dc37058 Add x11/qt5-x11extras.
Qt platform-specific features for X11-based systems.

PR:		194008
Submitted by:	Jan Beich <jbeich@vfemail.net>
2014-09-29 21:24:18 +00:00
Raphael Kubo da Costa
c0076e4449 Add quickcontrols to the list of Qt5 components.
Thanks to makc for noticing the omission.
2014-07-28 21:23:20 +00:00
Raphael Kubo da Costa
ae285a16f9 qt4: Do not apply the patch from r362770 if EXTRA_PATCHES is unset.
This unbreaks qmake4 and qt4-doc.
2014-07-24 18:52:53 +00:00
Raphael Kubo da Costa
a835ce065d Backport my patch to make Qt correctly detect clang's support for C++11 features.
So far, Qt4 was basing its check for compiler support for C++11 features
(auto types, lambdas, rvalue references and others) on the values of
__GNUC__ and __GNUC_MINOR__. This works for GCC, but not for clang, whose
__GNUC_MINOR__ is stuck at 2. In practice, this meant Qt programs built
using clang were never able to use C++11 features which are conditionally
available in classes such as QList. This patch makes the detection more in
line with what Qt5 does (checks for GCC and clang are in separate sections
and are done differently).

I couldn't find cases of this negatively affecting any port so far, but it
is useful to have -- Akonadi's unit tests require C++11 support in Qt, for
example.

Only qt4-corelibs's PORTREVISION was bumped to make the new qglobal.h be
installed. Checks for these C++11 features are only present in headers of
other Qt4 ports, so there's no need to rebuild them.
2014-07-24 08:37:55 +00:00
Tijl Coosemans
a14d5f8d2d Remove libtool .la files from all Qt ports
Approvedy by:	kde (makc)
2014-07-19 11:09:00 +00:00
Raphael Kubo da Costa
5b979ce1a8 The KDE on FreeBSD team presents Qt 4.8.6.
This is a minor bugfix release that fortunately contains quite a few patches
that we have upstreamed in the past months.

See http://blog.qt.digia.com/blog/2014/04/24/qt-4-8-6-released/ for a
summary of changes, and
http://download.qt-project.org/official_releases/qt/4.8/4.8.6/changes-4.8.6
for a detailed list of changes.

This patch contains commits by me, makc@ and Schaich Alonso.

PR:		ports/189213
2014-05-05 20:47:22 +00:00