On Thu Jun 20, 2019 at 04:46:59PM +0100, Stuart Henderson wrote:
> Thanks for the report,
>
> On 2019/06/20 17:30, Vadim Penzin wrote:
> > I admit that I am not familiar with the release process of pre-built binary
> > packages; I might be writing to a wrong mailing list and I apologize in
> > advance.
>
> ports@ is the better list for this, I've CC'd and set reply-to.
>
> > All libtool scripts from qt5 (/usr/local/lib/qt5/*.la) contain the following
> > on their third line:
> >
> > LIBQt5XXX_VERSION=5.9# The name that we can dlopen(3).
> >
> > (XXX above stands for the name of a particular library, such as Core,
> > Network, etc.)
> >
> > Since shell scripts (that libtool generates) source .la files, sh(1) fails
> > on unexpected '(' because someone, somewhere omitted a space before the
> > comment.
> >
> > Patching /usr/local/lib/qt5/*.la files programmatically by tucking a space
> > before the hash character brings linking with Qt5 assisted (encumbered?) by
> > libtool back to life.
> >
> > --Vadim
> >
>
> This patch to the qtbase port should fix the problem at source (I'll leave
> it building and test later). However it will also require REVISION bumps
> on all ports including .la files produced by this.
>
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/x11/qt5/qtbase/Makefile,v
> retrieving revision 1.29
> diff -u -p -w -u -r1.29 Makefile
> --- Makefile 20 May 2019 22:15:29 -0000 1.29
> +++ Makefile 20 Jun 2019 15:43:00 -0000
> @@ -15,13 +15,13 @@ PKGNAME-global = qt5-global-${VERSION}
> PKGNAME-psql = qt5-postgresql-${VERSION}
> PKGNAME-sqlite2 = qt5-sqlite2-${VERSION}
> PKGNAME-tds = qt5-tds-${VERSION}
> +
> REVISION-global = 0
> +REVISION-main = 5
> REVISION-mysql = 0
> REVISION-psql = 0
> REVISION-sqlite2 = 0
> REVISION-tds = 0
> -
> -REVISION-main = 4
>
> PKG_ARCH-global = *
> PKG_ARCH-examples = *
> Index: patches/patch-qmake_generators_unix_unixmake2_cpp
> ===================================================================
> RCS file:
> /cvs/ports/x11/qt5/qtbase/patches/patch-qmake_generators_unix_unixmake2_cpp,v
> retrieving revision 1.3
> diff -u -p -w -u -r1.3 patch-qmake_generators_unix_unixmake2_cpp
> --- patches/patch-qmake_generators_unix_unixmake2_cpp 5 Jul 2018 09:49:13
> -0000 1.3
> +++ patches/patch-qmake_generators_unix_unixmake2_cpp 20 Jun 2019 15:43:00
> -0000
> @@ -136,13 +136,14 @@ Index: qmake/generators/unix/unixmake2.c
> } else if (!project->isEmpty("QMAKE_AIX_SHLIB")) {
>
> project->values("TARGET_").append(project->first("QMAKE_PREFIX_STATICLIB") +
> project->first("TARGET")
> + "." + project->first("QMAKE_EXTENSION_STATICLIB"));
> -@@ -1465,18 +1498,32 @@ UnixMakefileGenerator::writeLibtoolFile()
> +@@ -1465,18 +1498,33 @@ UnixMakefileGenerator::writeLibtoolFile()
> << QT_VERSION_STR << ")";
> t << "\n";
>
> + if (!project->isEmpty("QMAKE_OPENBSD_SHLIB"))
> + t << "LIB" << fileVar("QMAKE_ORIG_TARGET") << "_VERSION="
> -+ << project->first("VER_MAJ") << "." << project->first("VER_MIN");
> ++ << project->first("VER_MAJ") << "." << project->first("VER_MIN")
> ++ << "\n";
This's what Qt 5.13 doas. They use "<< endl;" instead of "<< "\n";", I
would like to prefer that. std::endl calls std::flush which synchronizes
with the underlying storage device.
RS
> +
> t << "# The name that we can dlopen(3).\n"
> - << "dlname='" << fileVar(project->isActiveConfig("plugin") ? "TARGET"
> : "TARGET_x")
>