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")
> 

Reply via email to