Re: [Development] Qt6/Qt5 coinstallability (Linux distributions)

2018-12-17 Thread Alexander Neundorf
On 2018 M12 16, Sun 14:34:44 CET Thiago Macieira wrote:
> On Sunday, 16 December 2018 13:47:36 PST Alexander Neundorf wrote:
> > I also don't mind having moc6 etc. directly in bin/, instead of being
> > hidden in libexec. Well, I actually prefer if they are in bin/, because
> > there they are easy to find an run, and sometimes that's necessary during
> > development. For anything in libexec I always forget where it is and have
> > to search it again once I need it.
> 
> How many times have you had to run moc, uic or rcc manually?

I didn't count ;-), but more than once.
Usually for debugging buildsystem-related issues...

Alex

___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] Qt6/Qt5 coinstallability (Linux distributions)

2018-12-16 Thread Thiago Macieira
On Sunday, 16 December 2018 13:47:36 PST Alexander Neundorf wrote:
> I also don't mind having moc6 etc. directly in bin/, instead of being hidden
> in libexec. Well, I actually prefer if they are in bin/, because there they
> are easy to find an run, and sometimes that's necessary during development.
> For anything in libexec I always forget where it is and have to search it
> again once I need it.

How many times have you had to run moc, uic or rcc manually?

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center



___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] Qt6/Qt5 coinstallability (Linux distributions)

2018-12-16 Thread Alexander Neundorf
On 2018 M11 14, Wed 03:43:03 CET Kevin Kofler wrote:
> Thiago Macieira wrote:
> > But I've just remembered that Designer loads plugins and those are quite
> > clearly tied to the Qt version. The file format is backwards compatible
> > and has remained so for a few years. It is possible that the plugins
> > generate the same XML regardless of version, but I think we shouldn't risk
> > it. So yes, Designer should be versioned.
> 
> I think it would be much safer to just version everything.

+1

I also don't mind having moc6 etc. directly in bin/, instead of being hidden 
in libexec. Well, I actually prefer if they are in bin/, because there they 
are easy to find an run, and sometimes that's necessary during development. For 
anything in libexec I always forget where it is and have to search it again 
once I need it.

Alex

___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] Qt6/Qt5 coinstallability (Linux distributions)

2018-11-19 Thread Thiago Macieira
On Monday, 19 November 2018 11:42:48 PST Lisandro Damián Nicanor Pérez Meyer 
wrote:
> b) If at some point we can agree it has been decided, is there any way I
> could start contributing code in order to achieve this? Maybe I should just
> wait until the new build system is on stage? something else?

Since it's a Qt 6 thing, it should happen with the buildsystem, which means we 
need to actually decide on which one to use. Even though it currently looks 
there's only one in contention, it's not a *decision*.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center



___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Qt6/Qt5 coinstallability (Linux distributions)

2018-11-19 Thread Lisandro Damián Nicanor Pérez Meyer
El martes, 13 de noviembre de 2018 23:58:28 -03 Thiago Macieira escribió:
> On Tuesday, 13 November 2018 18:43:03 PST Kevin Kofler wrote:
[snip] 
> > I think it would be much safer to just version everything.
> > 
> > Just remember Assistant in Qt 4, where early 4.x releases shipped an
> > Assistant that was essentially compatible with the Qt 3 version, but it
> > was
> > later renamed to assistant_adp (and later dropped from the Qt distribution
> > and shipped as an unmaintained separate legacy tarball) and a new
> > incompatible Assistant (the QCH one) was introduced.
> 
> Ok, so two categories only:
> 1) applications run by the user (in bin, versioned)
> 2) applications run only during build (in libexec, unversioned)

I would of course agree here. But so far only three of us participated in this 
thread, so I would like to ask:

a) Is there something else I could do to make this a consensus decision? Or 
maybe do something to make this the roadmap for Qt 6?

b) If at some point we can agree it has been decided, is there any way I could 
start contributing code in order to achieve this? Maybe I should just wait 
until the new build system is on stage? something else?

Cheers, Lisandro.


-- 
When the winds of change are blowing, some people are building shelters, and
others are building windmills.
  Old Chinese Proverb

Lisandro Damián Nicanor Pérez Meyer
http://perezmeyer.com.ar/
http://perezmeyer.blogspot.com/


signature.asc
Description: This is a digitally signed message part.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Qt6/Qt5 coinstallability (Linux distributions)

2018-11-13 Thread Thiago Macieira
On Tuesday, 13 November 2018 18:43:03 PST Kevin Kofler wrote:
> Thiago Macieira wrote:
> > But I've just remembered that Designer loads plugins and those are quite
> > clearly tied to the Qt version. The file format is backwards compatible
> > and has remained so for a few years. It is possible that the plugins
> > generate the same XML regardless of version, but I think we shouldn't risk
> > it. So yes, Designer should be versioned.
> 
> I think it would be much safer to just version everything.
> 
> Just remember Assistant in Qt 4, where early 4.x releases shipped an
> Assistant that was essentially compatible with the Qt 3 version, but it was
> later renamed to assistant_adp (and later dropped from the Qt distribution
> and shipped as an unmaintained separate legacy tarball) and a new
> incompatible Assistant (the QCH one) was introduced.

Ok, so two categories only: 
1) applications run by the user (in bin, versioned)
2) applications run only during build (in libexec, unversioned)

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center



___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Qt6/Qt5 coinstallability (Linux distributions)

2018-11-13 Thread Kevin Kofler
Thiago Macieira wrote:
> But I've just remembered that Designer loads plugins and those are quite
> clearly tied to the Qt version. The file format is backwards compatible
> and has remained so for a few years. It is possible that the plugins
> generate the same XML regardless of version, but I think we shouldn't risk
> it. So yes, Designer should be versioned.

I think it would be much safer to just version everything.

Just remember Assistant in Qt 4, where early 4.x releases shipped an 
Assistant that was essentially compatible with the Qt 3 version, but it was 
later renamed to assistant_adp (and later dropped from the Qt distribution 
and shipped as an unmaintained separate legacy tarball) and a new 
incompatible Assistant (the QCH one) was introduced.

Kevin Kofler

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Qt6/Qt5 coinstallability (Linux distributions)

2018-11-13 Thread Thiago Macieira
On Tuesday, 13 November 2018 15:19:58 PST Lisandro Damián Nicanor Pérez Meyer 
wrote:
> Agreed, but this means that if an application is backwards compatible then
> it must be kept like that for all the Qt 6 lifetime. Is that feasible?

Yes. Assistant, Linguist, the D-Bus tools should be.

But I've just remembered that Designer loads plugins and those are quite 
clearly tied to the Qt version. The file format is backwards compatible and 
has remained so for a few years. It is possible that the plugins generate the 
same XML regardless of version, but I think we shouldn't risk it. So yes, 
Designer should be versioned.

> > That only leaves front-end tools that are intricately tied to the Qt
> > version that need renaming. The only two I can think of that fits this
> > description are the "qml" and "qmlscene" pair. If we're feeling nice, we
> > can do it too for diagnostic tools, like qtdiag, qtpaths, qtplugininfo.
> 
> It would probably be the safest thing to do.


-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center



___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Qt6/Qt5 coinstallability (Linux distributions)

2018-11-13 Thread Lisandro Damián Nicanor Pérez Meyer
El martes, 13 de noviembre de 2018 19:56:29 -03 Thiago Macieira escribió:
> On Tuesday, 13 November 2018 13:43:20 PST Lisandro Damián Nicanor Pérez
> Meyer
> wrote:
> > a) Qt 5 and Qt 6 binaries should be coinstalable both in a developer
> > (libraries + binaries + build tools) and in a user's (only required
> > libraries and binaries) perspective. For example: a user should not need
> > qmake to be present.
> 
> This does not apply for "application" executables that retain backwards
> compatibility functionality. There's no need to version linguist, designer,
> assistant or qdbus, qdbusviewer, so long as those applications can still be
> used while developing Qt 5 applications.

Agreed, but this means that if an application is backwards compatible then it 
must be kept like that for all the Qt 6 lifetime. Is that feasible?

And I could even stretch it a little more, at least just "for the fun of it": 
it might also mean to keep backwards compatibility in Qt n with n > 6. Why? 
Because some libs that depend on Qt need to be built with any Qt versions 
still present on a user's system. While having new Qt 4 applications nowadays 
is strange we still have lots of them to maintain (I can give figures/examples 
if needed).

But again, I might be stretching it too much. Or not.

> The other extreme are development tools that almost never need to be run
> directly by directly the user, at all. That's the case for rcc, uic, moc,
> lupdate, lrelease, qmlcachegen, etc. Those should not be in the $bindir in
> the first place: they should live in $libexecdir and ought to be found by
> way of the .cmake and .pc files, as in:
>   pkg-config --variable=libexecdir Qt6Core

Exactly.

> That only leaves front-end tools that are intricately tied to the Qt version
> that need renaming. The only two I can think of that fits this description
> are the "qml" and "qmlscene" pair. If we're feeling nice, we can do it too
> for diagnostic tools, like qtdiag, qtpaths, qtplugininfo.

It would probably be the safest thing to do.


-- 
Lisandro Damián Nicanor Pérez Meyer
http://perezmeyer.com.ar/
http://perezmeyer.blogspot.com/


signature.asc
Description: This is a digitally signed message part.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Qt6/Qt5 coinstallability (Linux distributions)

2018-11-13 Thread Thiago Macieira
On Tuesday, 13 November 2018 13:43:20 PST Lisandro Damián Nicanor Pérez Meyer 
wrote:
> a) Qt 5 and Qt 6 binaries should be coinstalable both in a developer
> (libraries + binaries + build tools) and in a user's (only required
> libraries and binaries) perspective. For example: a user should not need
> qmake to be present.

This does not apply for "application" executables that retain backwards 
compatibility functionality. There's no need to version linguist, designer, 
assistant or qdbus, qdbusviewer, so long as those applications can still be 
used while developing Qt 5 applications.

The other extreme are development tools that almost never need to be run 
directly by directly the user, at all. That's the case for rcc, uic, moc, 
lupdate, lrelease, qmlcachegen, etc. Those should not be in the $bindir in the 
first place: they should live in $libexecdir and ought to be found by way of 
the .cmake and .pc files, as in:
pkg-config --variable=libexecdir Qt6Core

That only leaves front-end tools that are intricately tied to the Qt version 
that need renaming. The only two I can think of that fits this description are 
the "qml" and "qmlscene" pair. If we're feeling nice, we can do it too for 
diagnostic tools, like qtdiag, qtpaths, qtplugininfo.

And then there's qmake. I'd really love if it were a backwards-compatible tool 
that worked for both Qt 5 and 6. It's unlikely to happen, since choosing the 
Qt version has always been done by selecting the proper qmake. So I imagine it 
will be one of the renamed ones.

$ ls -1 `qmake -qt5-installed -query QT_INSTALL_BINS`
assistant
canbusutil
designer
fixqt4headers.pl
lconvert
linguist
lrelease
lupdate
moc
pixeltool
qdbus
qdbuscpp2xml
qdbusviewer
qdbusxml2cpp
qdistancefieldgenerator
qdoc
qgltf
qhelpgenerator
qlalr
qmake
qml
qmlcachegen
qmleasing
qmlimportscanner
qmljs
qmllint
qmlmin
qmlplugindump
qmlpreview
qmlprofiler
qmlscene
qmltestrunner
qscxmlc
qtattributionsscanner
qtcreator
qtcreator.sh
qtdiag
qtpaths
qtplugininfo
qtwaylandscanner
qvkgen
rcc
repc
sdpscanner
syncqt.pl
uic
xmlpatterns
xmlpatternsvalidator


-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center



___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development