1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-28 01:06:17 +00:00
Mirror of the FreeBSD ports git repo https://git.FreeBSD.org/ports.git .
Go to file
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
accessibility
arabic
archivers Horde package update: 2014-11-04 19:46:21 +00:00
astro Update to version 1.2.0 2014-11-04 15:00:45 +00:00
audio
benchmarks
biology biology/seqtools: 4.29 -> 4.30 2014-11-04 13:19:23 +00:00
cad
chinese
comms Update Qt5 ports to 5.3.2. 2014-11-05 09:39:21 +00:00
converters
databases Update Qt5 ports to 5.3.2. 2014-11-05 09:39:21 +00:00
deskutils - update libvirt to 1.2.10 2014-11-04 18:41:15 +00:00
devel Update Qt5 ports to 5.3.2. 2014-11-05 09:39:21 +00:00
dns
editors Remove deprecated KDE4=kdehier 2014-11-04 07:42:32 +00:00
emulators Add new port emulators/fs-uae-launcher 2014-11-04 16:32:34 +00:00
finance
french
ftp - Update to 0.25 2014-11-04 16:02:10 +00:00
games Add new ports games/openclock 2014-11-04 19:21:51 +00:00
german
graphics Update Qt5 ports to 5.3.2. 2014-11-05 09:39:21 +00:00
hebrew
hungarian
irc
japanese - Update to 20141031. 2014-11-04 09:50:36 +00:00
java
Keywords
korean
lang Update Qt5 ports to 5.3.2. 2014-11-05 09:39:21 +00:00
mail Remove outdated KAS patch and option. 2014-11-04 16:14:30 +00:00
math - Update to version 0.15.0 2014-11-04 16:11:57 +00:00
misc
Mk Update Qt5 ports to 5.3.2. 2014-11-05 09:39:21 +00:00
multimedia Update Qt5 ports to 5.3.2. 2014-11-05 09:39:21 +00:00
net Update Qt5 ports to 5.3.2. 2014-11-05 09:39:21 +00:00
net-im
net-mgmt net-mgmt/zabbix22*: Upgrade version 2.2.5 => 2.2.7 2014-11-04 21:27:03 +00:00
net-p2p
news
palm
polish
ports-mgmt
portuguese
print Update Qt5 ports to 5.3.2. 2014-11-05 09:39:21 +00:00
russian
science
security - Update to version 1.22 2014-11-04 17:33:47 +00:00
shells
sysutils sysutils/pstree: Fix functionality on DragonFly with USES=alias 2014-11-04 20:08:41 +00:00
Templates
textproc Update Qt5 ports to 5.3.2. 2014-11-05 09:39:21 +00:00
Tools
ukrainian
vietnamese
www Update Qt5 ports to 5.3.2. 2014-11-05 09:39:21 +00:00
x11 Update Qt5 ports to 5.3.2. 2014-11-05 09:39:21 +00:00
x11-clocks
x11-drivers xf86-video-ati: Update to 7.5.0 2014-11-04 20:32:43 +00:00
x11-fm
x11-fonts
x11-servers
x11-themes
x11-toolkits Update Qt5 ports to 5.3.2. 2014-11-05 09:39:21 +00:00
x11-wm
.arcconfig
.gitignore
CHANGES
CONTRIBUTING.md
COPYRIGHT
GIDs
LEGAL Make LEGAL and RESTRICTED in Makefile for games/linux-ut match. 2014-11-03 21:25:31 +00:00
Makefile
MOVED Update Qt5 ports to 5.3.2. 2014-11-05 09:39:21 +00:00
README
UIDs
UPDATING

This is the FreeBSD Ports Collection.  For an easy to use
WEB-based interface to it, please see:

	http://www.FreeBSD.org/ports

For general information on the Ports Collection, please see the
FreeBSD Handbook ports section which is available from:

	http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/ports.html
		for the latest official version
	or:
	The ports(7) manual page (man ports).

These will explain how to use ports and packages.

If you would like to search for a port, you can do so easily by
saying (in /usr/ports):


	make search name="<name>"
	or:
	make search key="<keyword>"

which will generate a list of all ports matching <name> or <keyword>.
make search also supports wildcards, such as:

	make search name="gtk*"

For information about contributing to FreeBSD ports, please see the Porter's
Handbook, available at:

	http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/porters-handbook/

NOTE:  This tree will GROW significantly in size during normal usage!
The distribution tar files can and do accumulate in /usr/ports/distfiles,
and the individual ports will also use up lots of space in their work
subdirectories unless you remember to "make clean" after you're done
building a given port.  /usr/ports/distfiles can also be periodically
cleaned without ill-effect.