Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 25 Jan 2020 20:19:39 +0000 (UTC)
From:      "Tobias C. Berner" <tcberner@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r524129 - in head: Mk/Uses comms/qt5-serialbus devel/qt5-assistant devel/qt5-buildtools devel/qt5-core devel/qt5-dbus devel/qt5-designer devel/qt5-help devel/qt5-linguist devel/qt5-ling...
Message-ID:  <202001252019.00PKJd6V043242@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: tcberner
Date: Sat Jan 25 20:19:38 2020
New Revision: 524129
URL: https://svnweb.freebsd.org/changeset/ports/524129

Log:
  misc/qtchooser: do not create unnecessary wrappers
  
  misc/qtchooser provides a wrapper binary bin/qtchooser, that when called with
  name foo, will lauch the corresponding binary from lib/qt${current_qt_version}/bin/foo.
  
  Previously qtchooser would install a list of 30-ish symlinks to itself automatically.
  Now we switch this around.
  
  qt-dist ports that define QT_BINARIES will now have a @postexec and @postunexec
  entry added to their plist to run the shell-script update-qtchooser-wrapper
  (installed by qtchooser).
  
  update-qtchooser-wrapper removes all symlinks to bin/qtcreator that have no
  corresponding binary in lib/qt*/bin, and readds links that are missing.
  
  Exp-run by:	antoine
  PR:		242905
  PR:		243443
  Reported by:	grarpamp@gmail.com
  Reviewed by:	adridg
  Differential Revision:	https://reviews.freebsd.org/D22991

Added:
  head/misc/qtchooser/files/update-qtchooser-wrapper.in   (contents, props changed)
Modified:
  head/Mk/Uses/qt-dist.mk
  head/comms/qt5-serialbus/Makefile
  head/devel/qt5-assistant/Makefile
  head/devel/qt5-buildtools/Makefile
  head/devel/qt5-core/Makefile
  head/devel/qt5-dbus/Makefile
  head/devel/qt5-designer/Makefile
  head/devel/qt5-help/Makefile
  head/devel/qt5-linguist/Makefile
  head/devel/qt5-linguisttools/Makefile
  head/devel/qt5-qdbus/Makefile
  head/devel/qt5-qdbusviewer/Makefile
  head/devel/qt5-qdoc/Makefile
  head/devel/qt5-qmake/Makefile
  head/devel/qt5-remoteobjects/Makefile
  head/devel/qt5-scxml/Makefile
  head/graphics/qt5-3d/Makefile
  head/graphics/qt5-pixeltool/Makefile
  head/graphics/qt5-wayland/Makefile
  head/misc/qtchooser/Makefile
  head/misc/qtchooser/files/patch-Makefile
  head/misc/qtchooser/pkg-plist
  head/sysutils/qt5-qtdiag/Makefile
  head/sysutils/qt5-qtpaths/Makefile
  head/sysutils/qt5-qtplugininfo/Makefile
  head/textproc/qt5-xmlpatterns/Makefile
  head/www/qt5-webengine/Makefile
  head/x11-toolkits/qt5-declarative/Makefile
  head/x11-toolkits/qt5-gui/Makefile
  head/x11-toolkits/qt5-widgets/Makefile
  head/x11/qt5-qev/Makefile

Modified: head/Mk/Uses/qt-dist.mk
==============================================================================
--- head/Mk/Uses/qt-dist.mk	Sat Jan 25 20:18:45 2020	(r524128)
+++ head/Mk/Uses/qt-dist.mk	Sat Jan 25 20:19:38 2020	(r524129)
@@ -384,4 +384,15 @@ qt-post-install:
 .    endif # ${QT_CONFIG:N-*}
 .  endif # M5
 
+# Handle misc/qtchooser wrapper installation and deinstallation
+# If a port installs Qt version-specific binaries (e.g. "designer" which existed as a Qt4 application
+# and exists as a Qt5 application and will probably be a Qt6 application) which should have a
+# qtchooser-based wrapper, the port should set `QT_BINARIES=yes`.
+#
+# When QT_BINARIES is set to yes, compatibility symlinks (designer -> qtchooser, so that
+# qtchooser can run designer-qt5 or whatever is the selected Qt version) are installed by the port.
+.  if defined(QT_BINARIES)
+	${ECHO_CMD} '@postexec if type update-qtchooser-wrapper >/dev/null 2>&1; then update-qtchooser-wrapper; fi' >> ${TMPPLIST}
+	${ECHO_CMD} '@postunexec if type update-qtchooser-wrapper >/dev/null 2>&1; then update-qtchooser-wrapper; fi' >> ${TMPPLIST}
+.  endif
 .endif # defined(_QT_DIST_MK_INCLUDED)

Modified: head/comms/qt5-serialbus/Makefile
==============================================================================
--- head/comms/qt5-serialbus/Makefile	Sat Jan 25 20:18:45 2020	(r524128)
+++ head/comms/qt5-serialbus/Makefile	Sat Jan 25 20:19:38 2020	(r524129)
@@ -2,6 +2,7 @@
 
 PORTNAME=	serialbus
 DISTVERSION=	${QT5_VERSION}
+PORTREVISION=	1
 CATEGORIES=	comms
 PKGNAMEPREFIX=	qt5-
 
@@ -11,5 +12,6 @@ COMMENT=	Qt functions to access industrial bus systems
 USES=		compiler:c++11-lib qmake qt-dist:5,serialbus
 USE_QT=		core network serialport buildtools_build
 USE_LDCONFIG=	${PREFIX}/${QT_LIBDIR_REL}
+QT_BINARIES=	yes
 
 .include <bsd.port.mk>

Modified: head/devel/qt5-assistant/Makefile
==============================================================================
--- head/devel/qt5-assistant/Makefile	Sat Jan 25 20:18:45 2020	(r524128)
+++ head/devel/qt5-assistant/Makefile	Sat Jan 25 20:19:38 2020	(r524129)
@@ -2,6 +2,7 @@
 
 PORTNAME=	assistant
 DISTVERSION=	${QT5_VERSION}
+PORTREVISION=	1
 CATEGORIES=	devel
 PKGNAMEPREFIX=	qt5-
 
@@ -11,6 +12,7 @@ COMMENT=	Qt 5 documentation browser
 USES=		compiler:c++11-lang qmake qt-dist:5,tools
 USE_QT=		core gui help network printsupport sql widgets \
 		buildtools_build sql-sqlite3_run
+QT_BINARIES=	yes
 
 DESKTOP_ENTRIES="Qt 5 Assistant" "" \
 		"${PREFIX}/share/pixmaps/assistant-qt5.png" \

Modified: head/devel/qt5-buildtools/Makefile
==============================================================================
--- head/devel/qt5-buildtools/Makefile	Sat Jan 25 20:18:45 2020	(r524128)
+++ head/devel/qt5-buildtools/Makefile	Sat Jan 25 20:19:38 2020	(r524129)
@@ -2,6 +2,7 @@
 
 PORTNAME=	buildtools
 DISTVERSION=	${QT5_VERSION}
+PORTREVISION=	1
 CATEGORIES=	devel
 PKGNAMEPREFIX=	qt5-
 
@@ -12,6 +13,7 @@ USES=		compiler:c++11-lang libtool perl5 qmake:no_env 
 HAS_CONFIGURE=	yes
 CONFIGURE_ARGS=	-no-gui -no-xcb
 USE_LDCONFIG=	${PREFIX}/${QT_LIBDIR_REL}
+QT_BINARIES=	yes
 
 BUILD_WRKSRC=	${WRKSRC}/src/tools/bootstrap
 INSTALL_WRKSRC=	${BUILD_WRKSRC}

Modified: head/devel/qt5-core/Makefile
==============================================================================
--- head/devel/qt5-core/Makefile	Sat Jan 25 20:18:45 2020	(r524128)
+++ head/devel/qt5-core/Makefile	Sat Jan 25 20:19:38 2020	(r524129)
@@ -2,6 +2,7 @@
 
 PORTNAME=	core
 DISTVERSION=	${QT5_VERSION}
+PORTREVISION=	1
 CATEGORIES=	devel
 PKGNAMEPREFIX=	qt5-
 
@@ -30,6 +31,7 @@ USE_LDCONFIG=	${PREFIX}/${QT_LIBDIR_REL}
 BUILD_WRKSRC=	${WRKSRC}/src/corelib
 INSTALL_WRKSRC=	${BUILD_WRKSRC}
 
+QT_BINARIES=	yes
 QT_DEFINES=	GLIB
 QT_CONFIG=	glib icu
 

Modified: head/devel/qt5-dbus/Makefile
==============================================================================
--- head/devel/qt5-dbus/Makefile	Sat Jan 25 20:18:45 2020	(r524128)
+++ head/devel/qt5-dbus/Makefile	Sat Jan 25 20:19:38 2020	(r524129)
@@ -2,6 +2,7 @@
 
 PORTNAME=	dbus
 DISTVERSION=	${QT5_VERSION}
+PORTREVISION=	1
 CATEGORIES=	devel
 PKGNAMEPREFIX=	qt5-
 
@@ -21,6 +22,7 @@ INSTALL_WRKSRC=	${BUILD_WRKSRC}
 
 TOOLS=		qdbuscpp2xml qdbusxml2cpp
 
+QT_BINARIES=	yes
 QT_DEFINES=	DBUS
 QT_CONFIG=	dbus
 

Modified: head/devel/qt5-designer/Makefile
==============================================================================
--- head/devel/qt5-designer/Makefile	Sat Jan 25 20:18:45 2020	(r524128)
+++ head/devel/qt5-designer/Makefile	Sat Jan 25 20:19:38 2020	(r524129)
@@ -2,6 +2,7 @@
 
 PORTNAME=	designer
 DISTVERSION=	${QT5_VERSION}
+PORTREVISION=	1
 CATEGORIES=	devel
 PKGNAMEPREFIX=	qt5-
 
@@ -20,6 +21,8 @@ DESKTOP_ENTRIES="Qt 5 Designer" "" \
 
 BUILD_WRKSRC=	${WRKSRC}/src/${PORTNAME}
 INSTALL_WRKSRC=	${WRKSRC}/src/${PORTNAME}
+
+QT_BINARIES=	yes
 
 OPTIONS_DEFINE=	WEBKIT
 OPTIONS_SUB=	yes

Modified: head/devel/qt5-help/Makefile
==============================================================================
--- head/devel/qt5-help/Makefile	Sat Jan 25 20:18:45 2020	(r524128)
+++ head/devel/qt5-help/Makefile	Sat Jan 25 20:19:38 2020	(r524129)
@@ -2,6 +2,7 @@
 
 PORTNAME=	help
 DISTVERSION=	${QT5_VERSION}
+PORTREVISION=	1
 CATEGORIES=	devel
 PKGNAMEPREFIX=	qt5-
 
@@ -15,5 +16,7 @@ USE_LDCONFIG=	${PREFIX}/${QT_LIBDIR_REL}
 
 BUILD_WRKSRC=	${WRKSRC}/src/assistant
 INSTALL_WRKSRC=	${WRKSRC}/src/assistant
+
+QT_BINARIES=	yes
 
 .include <bsd.port.mk>

Modified: head/devel/qt5-linguist/Makefile
==============================================================================
--- head/devel/qt5-linguist/Makefile	Sat Jan 25 20:18:45 2020	(r524128)
+++ head/devel/qt5-linguist/Makefile	Sat Jan 25 20:19:38 2020	(r524129)
@@ -2,6 +2,7 @@
 
 PORTNAME=	linguist
 DISTVERSION=	${QT5_VERSION}
+PORTREVISION=	1
 CATEGORIES=	devel
 PKGNAMEPREFIX=	qt5-
 
@@ -20,6 +21,8 @@ DESKTOP_ENTRIES="Qt 5 Linguist" "" \
 
 BUILD_WRKSRC=	${WRKSRC}/src/${PORTNAME}/${PORTNAME}
 INSTALL_WRKSRC=	${WRKSRC}/src/${PORTNAME}/${PORTNAME}
+
+QT_BINARIES=	yes
 
 post-install:
 	${INSTALL_DATA} ${BUILD_WRKSRC}/images/icons/linguist-128-32.png \

Modified: head/devel/qt5-linguisttools/Makefile
==============================================================================
--- head/devel/qt5-linguisttools/Makefile	Sat Jan 25 20:18:45 2020	(r524128)
+++ head/devel/qt5-linguisttools/Makefile	Sat Jan 25 20:19:38 2020	(r524129)
@@ -2,6 +2,7 @@
 
 PORTNAME=	linguisttools
 DISTVERSION=	${QT5_VERSION}
+PORTREVISION=	1
 CATEGORIES=	devel
 PKGNAMEPREFIX=	qt5-
 
@@ -13,6 +14,8 @@ USE_QT=		core xml buildtools_build declarative_build
 
 BUILD_WRKSRC=	${WRKSRC}/src/linguist
 INSTALL_WRKSRC=	${WRKSRC}/src/linguist
+
+QT_BINARIES=	yes
 
 post-patch:
 	@${REINPLACE_CMD} -e '/SUBDIRS.*linguist/ d' \

Modified: head/devel/qt5-qdbus/Makefile
==============================================================================
--- head/devel/qt5-qdbus/Makefile	Sat Jan 25 20:18:45 2020	(r524128)
+++ head/devel/qt5-qdbus/Makefile	Sat Jan 25 20:19:38 2020	(r524129)
@@ -2,6 +2,7 @@
 
 PORTNAME=	qdbus
 DISTVERSION=	${QT5_VERSION}
+PORTREVISION=	1
 CATEGORIES=	devel
 PKGNAMEPREFIX=	qt5-
 
@@ -13,5 +14,7 @@ USE_QT=		core dbus xml buildtools_build
 
 BUILD_WRKSRC=	${WRKSRC}/src/${PORTNAME}/${PORTNAME}
 INSTALL_WRKSRC=	${BUILD_WRKSRC}
+
+QT_BINARIES=	yes
 
 .include <bsd.port.mk>

Modified: head/devel/qt5-qdbusviewer/Makefile
==============================================================================
--- head/devel/qt5-qdbusviewer/Makefile	Sat Jan 25 20:18:45 2020	(r524128)
+++ head/devel/qt5-qdbusviewer/Makefile	Sat Jan 25 20:19:38 2020	(r524129)
@@ -2,6 +2,7 @@
 
 PORTNAME=	qdbusviewer
 DISTVERSION=	${QT5_VERSION}
+PORTREVISION=	1
 CATEGORIES=	devel
 PKGNAMEPREFIX=	qt5-
 
@@ -18,6 +19,8 @@ DESKTOP_ENTRIES="Qt 5 D-Bus Viewer" "" \
 
 BUILD_WRKSRC=	${WRKSRC}/src/qdbus/${PORTNAME}
 INSTALL_WRKSRC=	${BUILD_WRKSRC}
+
+QT_BINARIES=	yes
 
 post-install:
 	${INSTALL_DATA} ${BUILD_WRKSRC}/images/qdbusviewer-128.png \

Modified: head/devel/qt5-qdoc/Makefile
==============================================================================
--- head/devel/qt5-qdoc/Makefile	Sat Jan 25 20:18:45 2020	(r524128)
+++ head/devel/qt5-qdoc/Makefile	Sat Jan 25 20:19:38 2020	(r524129)
@@ -2,6 +2,7 @@
 
 PORTNAME=	qdoc
 DISTVERSION=	${QT5_VERSION}
+PORTREVISION=	1
 CATEGORIES=	devel textproc
 PKGNAMEPREFIX=	qt5-
 
@@ -20,5 +21,7 @@ INSTALL_WRKSRC=	${BUILD_WRKSRC}
 PLIST_FILES=	${QT_BINDIR}/qdoc
 
 CONFIGURE_ENV=	LLVM_INSTALL_DIR=${LOCALBASE}/llvm${LLVM_DEFAULT}
+
+QT_BINARIES=	yes
 
 .include <bsd.port.mk>

Modified: head/devel/qt5-qmake/Makefile
==============================================================================
--- head/devel/qt5-qmake/Makefile	Sat Jan 25 20:18:45 2020	(r524128)
+++ head/devel/qt5-qmake/Makefile	Sat Jan 25 20:19:38 2020	(r524129)
@@ -2,7 +2,7 @@
 
 PORTNAME=	qmake
 DISTVERSION=	${QT5_VERSION}
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES=	devel
 PKGNAMEPREFIX=	qt5-
 
@@ -32,6 +32,8 @@ QMAKESPEC=	freebsd-${QMAKE_COMPILER}
 INSTALL_TARGET=	sub-qmake-qmake-aux-pro-install_subtargets install_mkspecs
 
 BUILD_WRKSRC=	${WRKSRC}/${PORTNAME}
+
+QT_BINARIES=	yes
 
 post-patch:
 # Clean up files created by patching

Modified: head/devel/qt5-remoteobjects/Makefile
==============================================================================
--- head/devel/qt5-remoteobjects/Makefile	Sat Jan 25 20:18:45 2020	(r524128)
+++ head/devel/qt5-remoteobjects/Makefile	Sat Jan 25 20:19:38 2020	(r524129)
@@ -2,6 +2,7 @@
 
 PORTNAME=	remoteobjects
 DISTVERSION=	${QT5_VERSION}
+PORTREVISION=	1
 CATEGORIES=	devel
 PKGNAMEPREFIX=	qt5-
 
@@ -13,5 +14,7 @@ USE_GL=		gl
 USE_QT=		core declarative network \
 		buildtools_build
 USE_LDCONFIG=	${PREFIX}/${QT_LIBDIR_REL}
+
+QT_BINARIES=	yes
 
 .include <bsd.port.mk>

Modified: head/devel/qt5-scxml/Makefile
==============================================================================
--- head/devel/qt5-scxml/Makefile	Sat Jan 25 20:18:45 2020	(r524128)
+++ head/devel/qt5-scxml/Makefile	Sat Jan 25 20:19:38 2020	(r524129)
@@ -2,6 +2,7 @@
 
 PORTNAME=	scxml
 DISTVERSION=	${QT5_VERSION}
+PORTREVISION=	1
 CATEGORIES=	devel
 PKGNAMEPREFIX=	qt5-
 
@@ -11,5 +12,7 @@ COMMENT=	Qt5 SXCML module
 USES=		compiler:c++11-lang qmake qt-dist:5,scxml
 USE_QT=		core declarative network buildtools_build
 USE_LDCONFIG=	${PREFIX}/${QT_LIBDIR_REL}
+
+QT_BINARIES=	yes
 
 .include <bsd.port.mk>

Modified: head/graphics/qt5-3d/Makefile
==============================================================================
--- head/graphics/qt5-3d/Makefile	Sat Jan 25 20:18:45 2020	(r524128)
+++ head/graphics/qt5-3d/Makefile	Sat Jan 25 20:19:38 2020	(r524129)
@@ -2,6 +2,7 @@
 
 PORTNAME=	3d
 DISTVERSION=	${QT5_VERSION}
+PORTREVISION=	1
 CATEGORIES=	graphics
 PKGNAMEPREFIX=	qt5-
 
@@ -14,5 +15,7 @@ USES=		compiler:c++11-lang pkgconfig qmake:norecursive
 USE_QT=		concurrent core declarative gui network buildtools_build
 
 USE_LDCONFIG=	${PREFIX}/${QT_LIBDIR_REL}
+
+QT_BINARIES=	yes
 
 .include <bsd.port.mk>

Modified: head/graphics/qt5-pixeltool/Makefile
==============================================================================
--- head/graphics/qt5-pixeltool/Makefile	Sat Jan 25 20:18:45 2020	(r524128)
+++ head/graphics/qt5-pixeltool/Makefile	Sat Jan 25 20:19:38 2020	(r524129)
@@ -2,6 +2,7 @@
 
 PORTNAME=	pixeltool
 DISTVERSION=	${QT5_VERSION}
+PORTREVISION=	1
 CATEGORIES=	graphics
 PKGNAMEPREFIX=	qt5-
 
@@ -19,5 +20,7 @@ DESKTOP_ENTRIES="Qt 5 PixelTool" "" \
 
 BUILD_WRKSRC=	${WRKSRC}/src/${PORTNAME}
 INSTALL_WRKSRC=	${BUILD_WRKSRC}
+
+QT_BINARIES=	yes
 
 .include <bsd.port.mk>

Modified: head/graphics/qt5-wayland/Makefile
==============================================================================
--- head/graphics/qt5-wayland/Makefile	Sat Jan 25 20:18:45 2020	(r524128)
+++ head/graphics/qt5-wayland/Makefile	Sat Jan 25 20:19:38 2020	(r524129)
@@ -2,6 +2,7 @@
 
 PORTNAME=	wayland
 DISTVERSION=	${QT5_VERSION}
+PORTREVISION=	1
 CATEGORIES=	graphics
 PKGNAMEPREFIX=	qt5-
 
@@ -22,5 +23,7 @@ USE_QT=		core dbus gui declarative \
 USE_XORG=       x11 xcomposite
 
 USE_LDCONFIG=	${PREFIX}/${QT_LIBDIR_REL}
+
+QT_BINARIES=	yes
 
 .include <bsd.port.mk>

Modified: head/misc/qtchooser/Makefile
==============================================================================
--- head/misc/qtchooser/Makefile	Sat Jan 25 20:18:45 2020	(r524128)
+++ head/misc/qtchooser/Makefile	Sat Jan 25 20:19:38 2020	(r524129)
@@ -2,6 +2,7 @@
 
 PORTNAME=	qtchooser
 PORTVERSION=	66
+PORTREVISION=	1
 CATEGORIES=	misc
 MASTER_SITES=	QT/official_releases/${PORTNAME}
 DIST_SUBDIR=	KDE/Qt/qtchooser
@@ -16,6 +17,10 @@ USES=		gmake tar:xz
 DESTDIRNAME=	INSTALL_ROOT
 MAKE_ARGS=	prefix=${PREFIX}
 
+SUB_FILES=	update-qtchooser-wrapper
+# Keep this synchronized with qt.mk
+SUB_LIST=	QT_SUPPORTED="5"
+
 # bin/linguist
 CONFLICTS_INSTALL=	rubygem-github-linguist rubygem-github-linguist47 rubygem-gitlab-linguist
 
@@ -44,5 +49,8 @@ post-install:
 	${INSTALL_DATA} ${WRKSRC}/doc/qtchooser.1 ${STAGEDIR}${MAN1PREFIX}/man/man1
 # Create the default profile.
 	cd ${STAGEDIR}/${QT_QTCHOOSERDIR} && ${LN} -s qt5.conf default.conf
+	${INSTALL_SCRIPT} ${WRKDIR}/update-qtchooser-wrapper \
+		${STAGEDIR}${PREFIX}/bin/update-qtchooser-wrapper
+
 
 .include <bsd.port.mk>

Modified: head/misc/qtchooser/files/patch-Makefile
==============================================================================
--- head/misc/qtchooser/files/patch-Makefile	Sat Jan 25 20:18:45 2020	(r524128)
+++ head/misc/qtchooser/files/patch-Makefile	Sat Jan 25 20:19:38 2020	(r524129)
@@ -1,6 +1,10 @@
---- Makefile.orig	2018-10-08 18:18:42 UTC
+--- Makefile.orig	2018-05-04 07:41:32 UTC
 +++ Makefile
-@@ -70,8 +70,8 @@ install:
+@@ -66,12 +66,11 @@ distclean:
+ 
+ install:
+ 	cd src/qtchooser && $(MAKE) install
+-	for tool in $(TOOLS); do ln -sf qtchooser "$(INSTALL_ROOT)$(bindir)/$$tool"; done
  	case `uname -s` in Darwin) \
  	    for tool in $(MACTOOLS); do ln -sf qtchooser "$(INSTALL_ROOT)$(bindir)/$$tool"; done \
  	;; esac

Added: head/misc/qtchooser/files/update-qtchooser-wrapper.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/misc/qtchooser/files/update-qtchooser-wrapper.in	Sat Jan 25 20:19:38 2020	(r524129)
@@ -0,0 +1,70 @@
+#!/bin/sh
+
+# $FreeBSD$
+
+# If a port installs Qt version-specific binaries (e.g. "designer" which existed as a Qt4 application
+# and exists as a Qt5 application and will probably be a Qt6 application) which should have a
+# qtchooser-based wrapper, the port should set `QT_BINARIES=yes`.
+#
+# When QT_BINARIES is set to yes, compatibility symlinks (designer -> qtchooser, so that
+# qtchooser can run designer-qt5 or whatever is the selected Qt version) are installed by the port.
+
+PREFIX=%%PREFIX%%
+BINDIR=${PREFIX}/bin
+QTCHOOSER=${BINDIR}/qtchooser
+VERSIONS=%%QT_SUPPORTED%%
+
+if [ ! -d ${BINDIR} ] ; then
+	echo "Binary directory '${BINDIR}' missing." >&2
+	exit 1
+fi
+
+if [ ! -x ${QTCHOOSER} ] ; then
+	echo "Qtchooser binary '${QTCHOOSER}' missing." >&2
+	exit 2
+fi
+
+remove_links() {
+	echo "Removing qtchooser links"
+	for file in $(find -L ${BINDIR} -maxdepth 1 -samefile ${QTCHOOSER}) ; do
+		if [ ! -L ${file} ] ; then
+			continue
+		fi
+		# If at least one versioned executable is found for this name, keep the
+		# qtchooser compatibility symlink for this name; otherwise, remove it.
+		local found=0
+		for version in ${VERSIONS} ; do
+			version_bin_dir=${PREFIX}/lib/qt${version}/bin
+			target=${version_bin_dir}/$(basename ${file})
+			if [ -x ${target} ] ; then
+				found=1
+				break
+			fi
+		done
+		if [ ${found} -eq 0 ] ; then
+			echo "    ${file}"
+			rm ${file}
+		fi
+	done
+	echo "done"
+}
+
+create_links() {
+	echo "Creating qtchooser links"
+	for version in ${VERSIONS} ; do
+		version_bin_dir=${PREFIX}/lib/qt${version}/bin
+		if [ -d ${version_bin_dir} ] ; then
+			for file in $(find ${version_bin_dir} -type f -maxdepth 1) ; do
+				target=${BINDIR}/$(basename ${file})
+				if [ ! -L ${target} -a ! -f ${target} ] ; then
+					echo "    ${target}"
+					ln -s ${QTCHOOSER} ${target}
+				fi
+			done
+		fi
+	done
+	echo "done"
+}
+
+remove_links
+create_links

Modified: head/misc/qtchooser/pkg-plist
==============================================================================
--- head/misc/qtchooser/pkg-plist	Sat Jan 25 20:18:45 2020	(r524128)
+++ head/misc/qtchooser/pkg-plist	Sat Jan 25 20:19:38 2020	(r524129)
@@ -1,50 +1,5 @@
-bin/assistant
-bin/designer
-bin/lconvert
-bin/linguist
-bin/lrelease
-bin/lupdate
-bin/moc
-bin/pixeltool
-bin/qcollectiongenerator
-bin/qdbus
-bin/qdbuscpp2xml
-bin/qdbusviewer
-bin/qdbusxml2cpp
-bin/qdoc
-bin/qdoc3
-bin/qgltf
-bin/qhelpconverter
-bin/qhelpgenerator
-bin/qlalr
-bin/qmake
-bin/qml
-bin/qml1plugindump
-bin/qmlbundle
-bin/qmlcachegen
-bin/qmleasing
-bin/qmlimportscanner
-bin/qmljs
-bin/qmllint
-bin/qmlmin
-bin/qmlplugindump
-bin/qmlprofiler
-bin/qmlscene
-bin/qmltestrunner
-bin/qmlviewer
-bin/qtattributionsscanner
 bin/qtchooser
-bin/qtconfig
-bin/qtdiag
-bin/qtpaths
-bin/qtplugininfo
-bin/qvkgen
-bin/rcc
-bin/repc
-bin/uic
-bin/uic3
-bin/xmlpatterns
-bin/xmlpatternsvalidator
+bin/update-qtchooser-wrapper
 etc/xdg/qtchooser/default.conf
 etc/xdg/qtchooser/qt4.conf
 etc/xdg/qtchooser/qt5.conf

Modified: head/sysutils/qt5-qtdiag/Makefile
==============================================================================
--- head/sysutils/qt5-qtdiag/Makefile	Sat Jan 25 20:18:45 2020	(r524128)
+++ head/sysutils/qt5-qtdiag/Makefile	Sat Jan 25 20:19:38 2020	(r524129)
@@ -2,6 +2,7 @@
 
 PORTNAME=	qtdiag
 DISTVERSION=	${QT5_VERSION}
+PORTREVISION=	1
 CATEGORIES=	sysutils
 PKGNAMEPREFIX=	qt5-
 
@@ -18,6 +19,8 @@ PLIST_FILES=	${QT_BINDIR}/qtdiag
 # will look for a lot more dependencies for other tools such as lupdate, which
 # we do not really have to depend on.
 WRKSRC_SUBDIR=	src/${PORTNAME}
+
+QT_BINARIES=	yes
 
 post-patch:
 	${CP} ${WRKSRC}/../../.qmake.conf ${WRKSRC}

Modified: head/sysutils/qt5-qtpaths/Makefile
==============================================================================
--- head/sysutils/qt5-qtpaths/Makefile	Sat Jan 25 20:18:45 2020	(r524128)
+++ head/sysutils/qt5-qtpaths/Makefile	Sat Jan 25 20:19:38 2020	(r524129)
@@ -2,6 +2,7 @@
 
 PORTNAME=	qtpaths
 DISTVERSION=	${QT5_VERSION}
+PORTREVISION=	1
 CATEGORIES=	sysutils
 PKGNAMEPREFIX=	qt5-
 
@@ -18,6 +19,8 @@ PLIST_FILES=	${QT_BINDIR}/qtpaths
 # will look for a lot more dependencies for other tools such as lupdate, which
 # we do not really have to depend on.
 WRKSRC_SUBDIR=	src/${PORTNAME}
+
+QT_BINARIES=	yes
 
 post-patch:
 	${CP} ${WRKSRC}/../../.qmake.conf ${WRKSRC}

Modified: head/sysutils/qt5-qtplugininfo/Makefile
==============================================================================
--- head/sysutils/qt5-qtplugininfo/Makefile	Sat Jan 25 20:18:45 2020	(r524128)
+++ head/sysutils/qt5-qtplugininfo/Makefile	Sat Jan 25 20:19:38 2020	(r524129)
@@ -2,6 +2,7 @@
 
 PORTNAME=	qtplugininfo
 DISTVERSION=	${QT5_VERSION}
+PORTREVISION=	1
 CATEGORIES=	sysutils
 PKGNAMEPREFIX=	qt5-
 
@@ -18,6 +19,8 @@ PLIST_FILES=	${QT_BINDIR}/qtplugininfo
 # will look for a lot more dependencies for other tools such as lupdate, which
 # we do not really have to depend on.
 WRKSRC_SUBDIR=	src/${PORTNAME}
+
+QT_BINARIES=	yes
 
 post-patch:
 	${CP} ${WRKSRC}/../../.qmake.conf ${WRKSRC}

Modified: head/textproc/qt5-xmlpatterns/Makefile
==============================================================================
--- head/textproc/qt5-xmlpatterns/Makefile	Sat Jan 25 20:18:45 2020	(r524128)
+++ head/textproc/qt5-xmlpatterns/Makefile	Sat Jan 25 20:19:38 2020	(r524129)
@@ -2,6 +2,7 @@
 
 PORTNAME=	xmlpatterns
 DISTVERSION=	${QT5_VERSION}
+PORTREVISION=	1
 CATEGORIES=	textproc
 PKGNAMEPREFIX=	qt5-
 
@@ -11,5 +12,7 @@ COMMENT=	Qt support for XPath, XQuery, XSLT and XML Sc
 USES=		compiler:c++11-lang qmake:norecursive qt-dist:5,xmlpatterns
 USE_QT=		core network buildtools_build
 USE_LDCONFIG=	${PREFIX}/${QT_LIBDIR_REL}
+
+QT_BINARIES=	yes
 
 .include <bsd.port.mk>

Modified: head/www/qt5-webengine/Makefile
==============================================================================
--- head/www/qt5-webengine/Makefile	Sat Jan 25 20:18:45 2020	(r524128)
+++ head/www/qt5-webengine/Makefile	Sat Jan 25 20:19:38 2020	(r524129)
@@ -18,7 +18,7 @@
 
 PORTNAME=	webengine
 DISTVERSION=	${QT5_VERSION}
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES=	www
 PKGNAMEPREFIX=	qt5-
 
@@ -110,6 +110,8 @@ MAKE_ENV+=	CC="${CC}" CXX="${CXX}"			\
 		C_INCLUDE_PATH=${LOCALBASE}/include	\
 		CPLUS_INCLUDE_PATH=${LOCALBASE}/include	\
 		${CONFIGURE_ENV}
+
+QT_BINARIES=	yes
 
 .include <bsd.port.pre.mk>
 

Modified: head/x11-toolkits/qt5-declarative/Makefile
==============================================================================
--- head/x11-toolkits/qt5-declarative/Makefile	Sat Jan 25 20:18:45 2020	(r524128)
+++ head/x11-toolkits/qt5-declarative/Makefile	Sat Jan 25 20:19:38 2020	(r524129)
@@ -2,6 +2,7 @@
 
 PORTNAME=	declarative
 DISTVERSION=	${QT5_VERSION}
+PORTREVISION=	1
 CATEGORIES=	x11-toolkits
 PKGNAMEPREFIX=	qt5-
 
@@ -17,6 +18,7 @@ USE_LDCONFIG=	${PREFIX}/${QT_LIBDIR_REL}
 
 CONFLICTS=	qt5-declarative-render2d-* qt5-qml qt5-quick
 
+QT_BINARIES=	yes
 QT_DEFINES=	ACCESSIBILITY
 QT_CONFIG=	accessibility accessibility-atspi-bridge
 

Modified: head/x11-toolkits/qt5-gui/Makefile
==============================================================================
--- head/x11-toolkits/qt5-gui/Makefile	Sat Jan 25 20:18:45 2020	(r524128)
+++ head/x11-toolkits/qt5-gui/Makefile	Sat Jan 25 20:19:38 2020	(r524129)
@@ -2,7 +2,7 @@
 
 PORTNAME=	gui
 DISTVERSION=	${QT5_VERSION}
-PORTREVISION=	2
+PORTREVISION=	3
 CATEGORIES=	x11-toolkits graphics
 PKGNAMEPREFIX=	qt5-
 
@@ -65,6 +65,7 @@ MORE_WRKSRCS+=	src/plugins/imageformats \
 # openglextensions is the static library to use for further things like qtcanvas3d
 MORE_WRKSRCS+=	src/openglextensions
 
+QT_BINARIES=	yes
 QT_DEFINES=	ACCESSIBILITY DBUS FONTCONFIG FREETYPE GLIB \
 		IMAGEFORMAT_PNG OPENGL SHAPE XCB XKB XKBCOMMON XRENDER
 QT_CONFIG=	accessibility accessibility-atspi-bridge dbus \

Modified: head/x11-toolkits/qt5-widgets/Makefile
==============================================================================
--- head/x11-toolkits/qt5-widgets/Makefile	Sat Jan 25 20:18:45 2020	(r524128)
+++ head/x11-toolkits/qt5-widgets/Makefile	Sat Jan 25 20:19:38 2020	(r524129)
@@ -2,6 +2,7 @@
 
 PORTNAME=	widgets
 DISTVERSION=	${QT5_VERSION}
+PORTREVISION=	1
 CATEGORIES=	x11-toolkits
 PKGNAMEPREFIX=	qt5-
 
@@ -19,6 +20,7 @@ INSTALL_WRKSRC=	${BUILD_WRKSRC}
 
 MORE_WRKSRCS=	src/tools/uic
 
+QT_BINARIES=	yes
 QT_DEFINES=	ACCESSIBILITY WIDGETS XSYNC
 QT_CONFIG=	accessibility accessibility-atspi-bridge xlib
 

Modified: head/x11/qt5-qev/Makefile
==============================================================================
--- head/x11/qt5-qev/Makefile	Sat Jan 25 20:18:45 2020	(r524128)
+++ head/x11/qt5-qev/Makefile	Sat Jan 25 20:19:38 2020	(r524129)
@@ -2,6 +2,7 @@
 
 PORTNAME=	qev
 DISTVERSION=	${QT5_VERSION}
+PORTREVISION=	1
 CATEGORIES=	x11
 PKGNAMEPREFIX=	qt5-
 
@@ -12,6 +13,8 @@ USES=		compiler:c++11-lang qmake qt-dist:5,tools
 USE_QT=		core widgets
 
 WRKSRC_SUBDIR=	src/${PORTNAME}
+
+QT_BINARIES=	yes
 
 # qev is not connected to qttool's build system, so we cannot just run qmake qt-dist:5,tools
 # and set {BUILD,INSTALL}_WRKSRC.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202001252019.00PKJd6V043242>