Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
How do I update from qt4 to qt5?
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Installing Gentoo
View previous topic :: View next topic  
Author Message
as.gentoo
Guru
Guru


Joined: 07 Aug 2004
Posts: 319

PostPosted: Thu Sep 03, 2015 1:58 pm    Post subject: How do I update from qt4 to qt5? Reply with quote

Does anybody have experience with that?
For what I guess that's a big step, probably everything that's connected with QT and KDE has to be rebuild.

I tried to find out but this doesn't look good for me.
Code:
$> sysupdate
Password:
These are the packages that would be merged, in order:
Calculating dependencies  ...
!!! Problem resolving dependencies for dev-games/openscenegraph from @selected
... done!
!!! The ebuild selected to satisfy "dev-games/openscenegraph" has unmet requirements.
- dev-games/openscenegraph-3.2.1-r1::gentoo USE="-asio -curl -debug -doc -examples ffmpeg -fltk -fox -gdal -gif -glut -gtk jpeg -jpeg2k -openexr -openinventor -osgapps -pdf png qt4 qt5 sdl svg -tiff truetype -vnc -wxwidgets -xine -xrandr zlib" ABI_X86="64"

  The following REQUIRED_USE flag constraints are unsatisfied:
    qt4? ( !qt5 ) qt5? ( !qt4 )

(dependency required by "@selected" [set])
(dependency required by "@world" [argument])

As far as I understand it tells me that I can either have qt4 or qt5. Ok, let's try:
Code:
 $> sudo USE="qt5 -qt4" emerge -vuUND @world --backtrack=300

These are the packages that would be merged, in order:
Calculating dependencies       ... done!
WARNING: One or more updates/rebuilds have been skipped due to a dependency conflict:

app-text/poppler:0
  (app-text/poppler-0.34.0:0/53::gentoo, ebuild scheduled for merge) conflicts with
    >=app-text/poppler-0.20[qt4,-exceptions(-)] required by (kde-apps/okular-4.14.3:4/4.14::gentoo, installed)
                            ^^^
    app-text/poppler[qt4] required by (kde-base/kfilemetadata-4.14.3:4/4.14::gentoo, installed)
                     ^^^

The following packages are causing rebuilds:
  (dev-libs/boost-1.57.0:0/1.57.0::gentoo, ebuild scheduled for merge) causes rebuilds for:
    (dev-cpp/libcmis-0.5.0-r1:0.5/0.5::gentoo, ebuild scheduled for merge)
    (app-text/libwps-0.3.1:0/0::gentoo, ebuild scheduled for merge)
    (kde-base/kdepim-runtime-4.14.10:4/4.14::gentoo, ebuild scheduled for merge)

!!! The ebuild selected to satisfy ">=app-office/akonadi-server-1.12.90" has unmet requirements.
- app-office/akonadi-server-1.13.0-r1::gentoo USE="-mysql postgres -qt4 (-qt5) -sqlite -test" ABI_X86="64"

  The following REQUIRED_USE flag constraints are unsatisfied:
    exactly-one-of ( qt4 qt5 )

  The above constraints are a subset of the following complete expression:
    exactly-one-of ( qt4 qt5 ) any-of ( sqlite mysql postgres )

(dependency required by "kde-base/kdepim-runtime-4.14.10::gentoo" [ebuild])
(dependency required by "@__auto_slot_operator_replace_installed__" [argument])

What are the exactly-one messages? USE="qt5 -qt4" is exactly one.
Why does okular need qt4? Shoudn't it work with qt5 as well?!
Why does akonadi-server have -qt4 -qt5 when I wrote USE="qt5 -qt4"?
Code:
$> sudo USE="qt4 -qt5" emerge -vuUND @world --backtrack=300
[...]
Total: 175 packages (96 upgrades, 49 new, 12 in new slots, 18 reinstalls, 4 uninstalls), Size of downloads: 421,622 KiB
Conflict: 5 blocks
WARNING: One or more updates/rebuilds have been skipped due to a dependency conflict:

dev-libs/liborcus:0
  (dev-libs/liborcus-0.9.2:0/0.10::gentoo, ebuild scheduled for merge) conflicts with
    =dev-libs/liborcus-0.7* required by (app-office/libreoffice-4.4.5.2:0/0::gentoo, ebuild scheduled for merge)
    ^                  ^^^^
dev-libs/boost:0
  (dev-libs/boost-1.57.0:0/1.57.0::gentoo, ebuild scheduled for merge) conflicts with
    dev-libs/boost:0/1.56.0= required by (kde-base/kleopatra-4.14.10:4/4.14::gentoo, installed)
                  ^^^^^^^^^^
The following packages are causing rebuilds:
  (app-text/poppler-0.35.0:0/54::gentoo, ebuild scheduled for merge) causes rebuilds for:
    (net-print/cups-filters-1.0.74:0/0::gentoo, ebuild scheduled for merge)
    (app-office/libreoffice-4.4.5.2:0/0::gentoo, ebuild scheduled for merge)
    (dev-python/python-poppler-0.12.1-r4:0/0::gentoo, ebuild scheduled for merge)

The following USE changes are necessary to proceed:
 (see "package.use" in the portage(5) man page for more details)
# required by kde-plasma/polkit-kde-agent-5.4.0::gentoo
# required by kde-frameworks/kauth-5.13.0::gentoo
# required by kde-frameworks/kdelibs4support-5.13.0::gentoo
# required by kde-apps/kmix-15.08.0::gentoo
# required by @selected
# required by @world (argument)
>=sys-auth/polkit-qt-0.112.0-r1 qt5
# required by kde-frameworks/knotifications-5.13.0::gentoo[dbus]
# required by kde-apps/kmix-15.08.0::gentoo
# required by @selected
# required by @world (argument)
>=dev-libs/libdbusmenu-qt-0.9.3_pre20140619-r1 qt5
# required by media-libs/phonon-4.8.3-r1::gentoo[vlc]
# required by kde-frameworks/knotifications-5.13.0::gentoo
# required by kde-apps/kmix-15.08.0::gentoo
# required by @selected
# required by @world (argument)
>=media-libs/phonon-vlc-0.8.2 qt5
# required by games-engines/openmw-0.36.1::gentoo
# required by @selected
# required by @world (argument)
>=dev-games/ogre-1.9.0-r3 ois
# required by kde-frameworks/kcoreaddons-5.13.0::gentoo
# required by kde-frameworks/kio-5.13.0::gentoo
# required by kde-frameworks/kinit-5.13.0::gentoo
# required by kde-frameworks/kded-5.13.0::gentoo
>=dev-qt/qtcore-5.4.2 icu
# required by media-libs/phonon-vlc-0.8.2::gentoo
>=media-libs/phonon-4.8.3-r1 qt5
I just stated: only QT4 (since qt5 didn't work), why should I add the qt5 USE flag to those packages now?

Code:
[ebuild   R    ] media-libs/phonon-4.8.3-r1::gentoo  USE="(-aqua) -debug designer -gstreamer pulseaudio qt4 qt5* vlc (-zeitgeist)" ABI_X86="-32 (64) (-x32)" 0 KiB
This basically means, "In general you can not have qt4 abd qt5 at the sane time - but right here you have to have both"?

What's the way to have a qt5 only (or qt5 & qt4) system - without setting it up completely from the scratch?
Back to top
View user's profile Send private message
Roman_Gruber
Advocate
Advocate


Joined: 03 Oct 2006
Posts: 3846
Location: Austro Bavaria

PostPosted: Thu Sep 03, 2015 2:28 pm    Post subject: Reply with quote

Quote:
qt4? ( !qt5 ) qt5? ( !qt4 )


Means you need to decide if you want qt4 or qt5 for that particular package. but you are not allowed to use both!

for example vlc has the same constraint

Code:
grep vlc /etc/portage/package.use
media-video/vlc -gnutls
app-office/libreoffice -gtk -mysql -vlc
media-video/vlc -qt4


but much better would be, and I will change that now
media-video/vlc -qt4 qt5 -gnutls

you can eanble qt5 support for packages but you are may be better of doing it on a package basis for qt4 / qt5 ...

Quote:
dev-libs/liborcus:0
(dev-libs/liborcus-0.9.2:0/0.10::gentoo, ebuild scheduled for merge) conflicts with
=dev-libs/liborcus-0.7* required by (app-office/libreoffice-4.4.5.2:0/0::gentoo, ebuild scheduled for merge)

just mask orcus 0.9.x in package.mask

Quote:
I just stated: only QT4 (since qt5 didn't work), why should I add the qt5 USE flag to those packages now?


Just a matter of choice. you can run for example vlc without qt also, just cvlc,

same choice as with ffmpeg or libav => now it is most of the packages qt4 or qt5
Back to top
View user's profile Send private message
as.gentoo
Guru
Guru


Joined: 07 Aug 2004
Posts: 319

PostPosted: Thu Sep 03, 2015 8:18 pm    Post subject: Reply with quote

Thanks for replying and explaining! I masked the packages and those errors are not shown anymore. :)

It looks like I can not have qt4-only. Why would qtcore-5.x be installed when I'm not explicitly asking for it?
Code:
[ebuild  NS    ] dev-qt/qtcore-5.4.2:5::gentoo [4.8.7:4::gentoo] USE="-debug icu -systemd {-test}" 0 KiB

Now, I can understand that this is needed for some reasons, but it would be nice if the user was given some information about the why and how. (Portage) News are used for such things, for libav/ffmpeg-have-to-choose, for the python-versions selection and consequences, why grub2 is standard now, gcc versions - aren't they usually? Something like the following would have been nice:
Quote:
QT5 is now automatically installed in an own slot on all KDE systems. For the time being it will coexist with QT4. This means that you can not replace one by the other due to packages that are not completely available for QT5 yet.(?) [We will notify you in another news message as soon as it is possible to upgrade completely.]
Some packages need you to deceide between QT5 and QT4 since packages for both versions exist and they are not cross compatible*. However, there are other packages that demand the USE flag of the other version, e.g. you need to set qt4 for app-text/poppler even if you state USE="-qt4 qt5". These packages are only available for that specific QT version(?). Take a look in your profiles setting for specific settings as well.**

That's how I understood by now. Porbably some parts are incorrect.
* I'd leave everything as it as it worked (default == qt4). But well, there will be reasons to do it as you did. It's always better to know what happens why, at least on a very basic level.
** As far as I could see /var/portage/profiles/targets/desktop/make.defaults (still) contains qt3support and qt4 but no qt5. (grep -iR qt /var/portage/profiles/targets/)

Code:

$> sudo USE="-qt4 qt5" emerge -vuUND @world --backtrack=3000
Total: 187 packages (96 upgrades, 49 new, 14 in new slots, 28 reinstalls, 4 uninstalls), Size of downloads: 424,949 KiB
Conflict: 5 blocks

!!! Multiple package instances within a single package slot have been pulled
!!! into the dependency graph, resulting in a slot conflict:
[...]
dev-libs/libdbusmenu-qt:0

  (dev-libs/libdbusmenu-qt-0.9.3_pre20140619-r1:0/0::gentoo, ebuild scheduled for merge) pulled in by
    dev-libs/libdbusmenu-qt[qt5] required by (kde-frameworks/knotifications-5.13.0:5/5.13::gentoo, ebuild scheduled for merge)
                            ^^^                                                                                                                             
  (dev-libs/libdbusmenu-qt-0.9.3_pre20140619-r1:0/0::gentoo, installed) pulled in by
    >=dev-libs/libdbusmenu-qt-0.3.2[qt4(+)] required by (kde-base/kdelibs-4.14.11:4/4.14::gentoo, installed)
[...]
Here I explicitly said qt5 only. Why do I need to mask qt4 ebuilds by hand? Or do I need to do something else?
(dev-libs/libdbusmenu-qt-0.9.3_pre20140619-r1:0/0::gentoo, installed) pulled in by
>=dev-libs/libdbusmenu-qt-0.3.2[qt4(+)] required by (kde-base/kdelibs-4.14.11:4/4.14::gentoo, installed)


Code:
Just a matter of choice. you can run for example vlc without qt also, just cvlc,

I'd like to have vlc with GUI. Since I use KDE it would be with qt then.
Back to top
View user's profile Send private message
Roman_Gruber
Advocate
Advocate


Joined: 03 Oct 2006
Posts: 3846
Location: Austro Bavaria

PostPosted: Fri Sep 04, 2015 9:34 am    Post subject: Reply with quote

well

when you want to mask qt5 on your box you should add


echo "dev-qt/*:5" >> /etc/portage/package.mask

Than you may check with eix for example if any of those qt 5 stuff got masked.
Back to top
View user's profile Send private message
as.gentoo
Guru
Guru


Joined: 07 Aug 2004
Posts: 319

PostPosted: Wed Sep 09, 2015 6:29 pm    Post subject: Reply with quote

Ok, thanks! :)
Back to top
View user's profile Send private message
kensington
Developer
Developer


Joined: 02 Jan 2013
Posts: 177
Location: Australia

PostPosted: Thu Sep 10, 2015 11:19 am    Post subject: Reply with quote

There is no news item or upgrade guide because there is no special upgrade required, and in most cases there is no user impact.

Some applications are Qt4-only, some are Qt5-only, and some offer the choice of which to use. It's tricky to cherry-pick packages to have a system with only one version of Qt installed, so it's better to just let each package pull in its required dependencies are usual.
Back to top
View user's profile Send private message
as.gentoo
Guru
Guru


Joined: 07 Aug 2004
Posts: 319

PostPosted: Thu Sep 10, 2015 11:51 am    Post subject: Reply with quote

Well - initially - it was not clear to me that this is not an update in the common sense like from qt4/* to qt5/* but some kind of smooth transition between qt4 and qt5 keeping some qt4 packages here and updating some others to qt5 there.
So I'd have appreciated a news item about that. Probably the "you-should-set-these-use-flags-to-make-it-work" functionality of portage had a part in confusing me because it wrote: "you need to add the qt5 use flag or 'emerge -vuUND @world' will fail. The packages to update was quite a bunch.
I might have still complained that I'd like to have the choice to stay qt4 only. tw04l124 showed me how to do that.

Anyhow, I'm a bit wiser now. :lol:
Thanks to everyone!
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Installing Gentoo All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum