[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#933952: marked as done (qtbase5-examples: many qtbase5-examples fail to compile - w/solution)



Your message dated Wed, 7 Aug 2019 13:42:38 -0300
with message-id <CA+QPbz0KTO3E5Fdh-xSzmCqav1z8yJtokYWJzPgR83Po0J+b=Q@mail.gmail.com>
and subject line Re: Bug#933952: More info
has caused the Debian Bug report #933952,
regarding qtbase5-examples: many qtbase5-examples fail to compile - w/solution
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
933952: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=933952
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: qtbase5-examples
Version: 5.11.3+dfsg1-1
Severity: important
Tags: patch

A directory of files and several dependencies are missing from
qtbase5-examples.  Here is how to fix it.

(1) In the source package, file "examples/vulkan/vulkan.pro", at the
    end add a blank line and then a line containing only
    "EXAMPLE_FILES = shared" (without the quotes).  The resut will
    end up looking like the tail of file "cat examples/network/network.pro".

(2) Add the following miscellaneous dependencies:
      qt5-default c++-compiler make qtbase5-private-dev libqt5opengl5-dev

-- System Information:
Debian Release: 10.0
  APT prefers stable
  APT policy: (2000, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.19.0-5-amd64 (SMP w/12 CPU cores)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: sysvinit (via /sbin/init)

Versions of packages qtbase5-examples depends on:
ii  libc6                             2.28-10
ii  libgl1                            1.1.0-1
ii  libqt5concurrent5                 5.11.3+dfsg1-1
ii  libqt5core5a [qtbase-abi-5-11-3]  5.11.3+dfsg1-1
ii  libqt5dbus5                       5.11.3+dfsg1-1
ii  libqt5gui5                        5.11.3+dfsg1-1
ii  libqt5network5                    5.11.3+dfsg1-1
ii  libqt5opengl5                     5.11.3+dfsg1-1
ii  libqt5printsupport5               5.11.3+dfsg1-1
ii  libqt5sql5                        5.11.3+dfsg1-1
ii  libqt5test5                       5.11.3+dfsg1-1
ii  libqt5widgets5                    5.11.3+dfsg1-1
ii  libqt5xml5                        5.11.3+dfsg1-1
ii  libstdc++6                        8.3.0-6

qtbase5-examples recommends no packages.

qtbase5-examples suggests no packages.

-- no debconf information

--- End Message ---
--- Begin Message ---
Hi Mike!

On Wed, 7 Aug 2019 at 13:29, Mike Bird <mgb-debian@yosemite.net> wrote:
>
> Hi Lisandro,
>
> On Wed August 7 2019 06:17:31 Lisandro Damián Nicanor Pérez Meyer wrote:
> > The examples packages are meant to provide the examples already compiled.
> > They are not meant to provide you the whole dependencies to build the
> > source they have in it.
>
> The examples packages provide sources.  Take a look!  And this is as
> it should be.

I know, I packaged them.

>  The examples are sources and project files for programmers
> to see examples of how to code and build Qt programs.

That and shipping them procompiled so devs can test them even without
compiling them. If a user wants to compile them then the sources need
to be coped somewhere else to start with.


> If you provided binaries then people would have to make clean before they
> could build them, but they can't make clean on read-only binaries
> in /usr/lib/*/qt5/examples.  And Qt is really designed for shadow builds
> rather than mixing binaries in with sources.

Tell upstream that. It's the Qt build system that does exactly that:
provide compiled binaries.

> Also to provide example binaries you're going to have to change hundreds
> of project files!  Given the rate that new examples are added to Qt this
> would more than double your packaging work just modifying all the project
> files coming from upstream with every new minor version.  And with your
> project files different from upstream your support load would increase too.

No, this comes pre made by upstream.

> > If someone wants to build the source then [s]he must install whatever
> > dependency is necessary.
>
> That would be ridiculous.  It takes many days of effort to figure out
> all these missing dependencies.  That's why I'm going through the
> effort of documenting these problems so some DD can (when so inclined)
> add the missing dependencies and fix the other packaging problems so
> the examples work as intended.

No, the examples are meant to be shipped so developers can take a look
at the source code and test the pre built binaries. If they want to
compile them themselves then they need to install the right build
dependencies.

> Sometimes nothing more is needed than qt5-defaults, c++-compiler,
> and make.  Sometimes a qtfoo5-dev is needed but sometimes it's
> libqt5foo5-dev instead.  Sometimes additional dev packages are
> needed.  Sometimes - as here with qtbase5-examples - there's also
> a problem in the packaging which makes resolving the problems
> much harder.

This is what a developer needs to learn about Qt submodules, yes. It's
part of building.

> Why should every programmer who wants to use Qt have to spend a couple
> of weeks figuring this out?  That's what a distro such as Debian is for.
> Otherwise programmers would be better off using upstream.

Because if they want to use Qt they need to understand how it's packaged.

> Qt examples are for getting programmers quickly into using Qt features,
> not an obstacle course that is not present upstream.  Remember Debian
> is dividing a coherent upstream into hundreds of pieces that Qt
> programmers then have to reassemble into a coherent environment for
> their own work.
>
> > Also don't use qt5-defaults. That's a package that should have never
> > existed. Export  QT_SELECT=qt5 , check qtchooser's man page.
>
> qt5-default should not be used internally for building Debian packages
> but it is a perfectly OK and indeed useful for examples packages and for
> programmers using Qt.

No it is not. It will default all Qt apps masked by qtchooser to use
qt5 by default. It's a system-wide change which you should not be
taken lightly.

> Thanks for all that you and your team do but please bear in mind that
> programmers use Qt packages in many different ways than DDs focused
> on KDE.  There are roughly 2500 KDE developers worldwide versus roughly
> a million Qt programmers.

We know, we have been working with them for years, even many of us are KDE devs.

I'm afraid examples are not meant to work as you expect. Note that
this comes from upstream, so if you want to change something you
should really start there.

I'm so closing this bug report because we do not consider it a bug but
the way it's intended to be.

Kinds regards, Lisandro.

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

--- End Message ---

Reply to: