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

Re: Pining for Qt 5.4



On 05/01/2015 08:28 AM, Markus-Hermann Koch wrote:
> I would like to use Qt 5.4 for its QOpenGLWidget. However,
> Qt 5.4 is still stuck in experimental. Being a user I now seem to have
> several options: [...]
> 
> What would you do?

5. Install the packages from experimental.

If you really want to be on the safe side, you can do the following to
make sure it's just Qt 5.4 from experimental and nothing else:

A. Create /etc/apt/sources.list.d/experimental.list (or similar name)
   with the following contents (if you already have unstable in your
   list, just add experimental):

deb http://http.debian.net/debian unstable main
deb http://http.debian.net/debian experimental main

(You can use your default mirror here instead of http.debian.net, if
you so desire.)

B. Pin unstable and experimental packages to priority -1 by default,
   so that they can't be installed by accident. Do this by creating
   /etc/apt/preferences.d/01experimental with the following contents:

Package: *
Pin: release n=experimental,o=Debian
Pin-Priority: -1

Package: *
Pin: release n=sid,o=Debian
Pin-Priority: -1

(IMPORTANT: leave out the 2nd one if you are already using unstable,
else no packages from unstable will be upgradable!)

C. Selectively pin the Qt5 packages to a higher priority (500 is
   usually what you want) so that they are taken from experimental.

You can do this in two ways: make _any_ version of the packages from
experimental be installable or just make the _current_ version from
experimental installable. The former has the advantage that if there are
further bugfixes in newer Qt5.4 versions while it still isn't in
unstable, apt will automatically be willing to upgrade to those
versions. It has the disadvantage that if a really new and really
experimental version of Qt5 is uploaded to experimental at some point in
the future, APT will automatically choose that one.

The priority 500 is chosen in such a way that it's the same as the
default package priority of stable/testing/unstable, so that if one of
those suits starts to contain a package with a higher version number
(for example, Qt 5.4 is uploaded to unstable with some additional fixes
at some point in the future), APT will be willing to upgrade that.

In any case, create a file /etc/apt/preferences.d/50qt5.4 with the
following contents:

For making any version that's currently in experimental installable:

Package: libqt5concurrent5 libqt5core5a libqt5dbus5 libqt5gui5
 libqt5network5 libqt5opengl5 libqt5opengl5-dev libqt5printsupport5
 libqt5sql5 libqt5sql5-mysql libqt5sql5-odbc libqt5sql5-psql
 libqt5sql5-sqlite libqt5sql5-tds libqt5test5 libqt5widgets5
 libqt5xml5  qt5-default qt5-qmake qtbase5-dbg qtbase5-dev
 qtbase5-dev-tools  qtbase5-dev-tools-dbg qtbase5-doc-html
 qtbase5-examples  qtbase5-examples-dbg qtbase5-private-dev
Pin: release n=experimental,o=Debian
Pin-Priority: 500

For choosing the specific version that's currently in experimental:

Package: libqt5concurrent5 libqt5core5a libqt5dbus5 libqt5gui5
 libqt5network5 libqt5opengl5 libqt5opengl5-dev libqt5printsupport5
 libqt5sql5 libqt5sql5-mysql libqt5sql5-odbc libqt5sql5-psql
 libqt5sql5-sqlite libqt5sql5-tds libqt5test5 libqt5widgets5
 libqt5xml5  qt5-default qt5-qmake qtbase5-dbg qtbase5-dev
 qtbase5-dev-tools  qtbase5-dev-tools-dbg qtbase5-doc-html
 qtbase5-examples  qtbase5-examples-dbg qtbase5-private-dev
Pin: version 5.4.1+dfsg-2
Pin-Priority: 500

(You can include the line breaks in the package list as long as the
continuation lines start with a space. The packages listed here are all
the binary packages that Qt5's source package.[1])

D. Test that your pinning works. Run apt-get update to update your
   package lists and then try out:

apt-cache policy libqt5-core5a
This should print 'Candidate: 5.4.1+dfsg-2" to show that APT would like
to install that version of the package.

Then try another package in experimental, e.g. libkf5config-dev (not in
unstable/testing yet):
apt-get policy libkf5config-dev
This should print 'Candidate: (none)' to show that even though a version
is available, APT doesn't want to install it, because you pinned
experimental to -1.

E. Finally, run apt-get upgrade / install of the Qt5 packages you want.

Christian

[1] Taken from:
https://packages.debian.org/source/experimental/qtbase-opensource-src


Reply to: