KDE 4.1 Gentoo Ebuilds
So there have been quite a few people asking what is happening with KDE 4.1 on Gentoo. There are still no ebuilds in the tree for KDE 4.1 and to be totally honest I have not been actively developing the KDE ebuilds until recently (took quite a long break). It is however something I really feel that we should have and so I have been working with a few other developers and interested users on the new ebuilds in an overlay. I think these ebuilds are almost ready and I am very eager to get them into the tree.
So what have we been doing? We have been working on a set of ebuilds that can be used with portage 2.2, there were a few setbacks when it became clear that EAPI 2 was not likely to be allowed in the tree in the very near term, but good noises are being made on the mailing lists. I think one of the big changes I have been working on is bringing KDE back into the normal file system hierarchy. This means that you will not be able to slot multiple minor versions of KDE such as 4.1 and 4.2 together.
The loss of slotting also means that ebuild maintenance will be significantly easier, externally released packages will automatically relink to the latest kdelibs for example. It also means that users will not build up multiple copies of minor KDE versions such as 4.0, 4.1, 4.2. I think for the majority of our userbase (myself included) this situation is undesirable with few benefits for normal use of KDE. So having one slot for KDE 4 and upgrading in the normal fashion seems to be very beneficial.
This has not been universally accepted as a good thing. I personally think our main tree KDE should always be installed in the normal FHS hierarchy as upstream seems to intend it. I see little benefit for most users, and many developers not closely involved in KDE development, to having multiple minor versions installed. Also having external KDE packages such as k3b and amarok installed in /usr but linking to libraries in a KDE prefix has never been optimal.
My vision is for a default in-tree KDE that installs into the normal FHS tree as Gnome, Qt 4, XOrg etc do. Developers, power users and those that like to tweak would still be free to install slotted versions of KDE in KDE prefixes alongside the FHS KDE. They could also remove the FHS KDE and just use slotted versions too. We discussed during KDE 3.5 bumps how the current slotting was not ideal.
I am certainly open to opinions. It would be good to get wider feedback from the community on which direction they would like to go in and why. This will not affect KDE 3.5 slotting with KDE 4 - they will always be slotted. It will make maintenance of external KDE packages simpler as everything will be in the same tree. Overlays with ebuilds in alternate slots and prefixes are of course still easily possible and people could continue using KDE in this way.
Currently this work is taking place in an overlay. I am quite honestly exhausted discussing why this is or is not a good idea. I hope I have made my position clear and why I think it is a good thing for our user base. I really want to get KDE 4.1 into the tree as soon as possible. I do feel that these changes should be pushed into the tree, defaulting to an FHS compliant install and using a KDE prefix if requested.
What are your thoughts (other than get KDE 4.1 in tree now - we are working on that)?
Comments
Display comments as Linear | Threaded
Kevin Bowling on :
Marcus D. Hanwell on :
I can see reasons to be cautious about the move and I know people are generally resistant to any change. With a six month release cycle the difference between releases is likely going to be reduced and I think only developers/power users trying pre-releases or early releases seriously need the slotting. I posted this to gain wider feedback from the community on what other people think.
Temet on :
Personally, I will install KDE4 when it will be marked as stable in the tree (I run stable Gentoos).
Do you think this can be achieved for 4.2 ?
Marcus D. Hanwell on :
atomopawn on :
jkt on :
Marcus D. Hanwell on :
Hopefully with KDE 5 the KDE community will openly acknowledge the need to install KDE 4 and 5 in the same prefix and provide better support in their build system scripts. If nothing else, users wanting both could install KDE 5 using the kdeprefix flag I added that would install KDE 5 in the /usr/kde/version prefix used in the overlay too.
Kevin Kofler on :
Marcus D. Hanwell on :
The layout you are using sounds good and like one we should possibly adopt. How do you deal with conflicting binary names though? Renames or just prevent them being installed at the same time? Also what approach have you taken with the user config directory? I was thinking .kde for KDE 3.5 and .kde4 for KDE 4. Thanks.
Kevin Kofler on :
As for internal binaries (e.g. kde-config), KDE upstream already prevented conflicts there (by renaming or moving to libexec), except for kconfig_compiler and makekdewidgets as discussed in #4.1.1.
For the configuration directory, we're using .kde for both KDE 3 and 4. It's the only way to ensure settings are automatically migrated on upgrades where possible (of course Plasma won't support all the old Kicker settings), and as, as discussed above, we don't install old and new versions of the same application at the same time, we aren't hit by the issue of application downgrades not being supported by KDE. Doing this while having old and new versions of the same application installed at the same time is not recommended though (because each time you're switching from using the new version to the old one is equivalent to a downgrade), which is why all the major distributions which allow that use a separate .kde4 directory.
K.L. on :
But there's another thing: It should be made easier to use KDE3 apps in a KDE4 session and vice versa.
I don't get why there is a need for the .kde symlink. Would it be possible to use the .kde3.5 and .kde4 directories directly?
Marcus D. Hanwell on :
Matej Laitl on :
There is one solution to this in "testing" branch of kde-testing overlay, proposed by jmbsvicentto: introduce a fhs use-flag while still using SLOTs such as 4.1, 4.2. KDE would either install into /usr and block other versions which would collide on USE = fhs, or install into /usr/kde/${SLOT}/ and allow other versions on USE = -fhs.
In fact the only difference of the two approaches (master and testing branch at the moment) is that the former "blocks" other minor kde versions implicitly by using the same SLOT, and the latter blocks them explicitly in eclass when you have fhs enabled. (thus allowing multiple KDE minor versions installed alongside if you can sacrifice FHS compatibility)
Marcus D. Hanwell on :
Unless the package managers can seamlessly upgrade in this situation then you are just making the upgrade process more difficult. Forcing users to remove the old version before upgrading rather than allowing them to upgrade in place.
Matěj Laitl on :
But I agree that upgrade path with these fine grain SLOTs will be much error error-prone. Hmm, lemme think about it.
Pavel on :
Slotting adds to ebuild complexity -> slotted ebuilds spend more time with devs and not with users. The sooner a package arrives to users, the sooner it can stabilize because users give feedback via bugreports.
Marcus: I guess the only justification for slotting minor versions is the long compilation time of kde which is a problem when ~arch doesnt work for someone and needs to drop back swiftly to the stable release. If there's really lots of request from the users to have a workaround, wouldnt a kde-base-bin package solve this? (provided that bin packages are easy to maintain)
orzel on :
Justace Clutter on :
Jason on :
knue on :
Andreas Nilsson on :
I would have been nice if you mentioned in witch overlay you are working on this so people can try it out.
I'm currently using KDE4.1.1 from kdesvn-portage overlay and everything works nicely (except nividia drviers, of course).
Platoali on :
FHS make thing more complicated.
Hynek Fabian on :
I don't use kde4 now and don't know real situation (waiting for unmasked ebuilds) so I wont end with conclusion but question:
Are you sure that all changes in kde4 minors are to the better ? That only reasonable fallback is to kde3.5 ?
Karl Zollner on :
I ran into a few problems with dual monitor usage(I had to reconfigure X for twinview/xinerama instead of two seperate X screens, which I usually use). I set KDE to use Obsidian colors with Oxygen and my GNOME apps use Nodoka midnight- and they fit perfectly together. The few problems I have encountered may be KDE specific, maybe ebuild related- don't know yet, I need to play around with it more and find any problems lurking under that beautiful surface.
At any rate hats off to the guys who wrote these ebuilds-4.1.1 is a treasure to behold, and asiego keeps trying to convince me that KDE has the stuff I am missing in GNOME...I keep trying to convince myself that I am not cheating on GNOME when I fire up KDE, but she is awful damned jealous
In my mind any thing more that KDE-3 and KDE-4 slots is absolute overkill, for normal usage.
Wilfred on :
With respect to slotting I think you're right. I can't see there being much demand for 4.0 and 4.1 separate slots, and if it makes the developers' lives easier then there's no question about it.
Volker Armin on :
I LOVE the fact that kde is slotted - and always was. Installing kde 3.5 and deinstalling 3.4? No biggy. Oh, there is crap left in /usr/kde/3.4 .... it is a great way to find and remove cruft.
In fact, gnome should be slotted and put into /usr/gnome/2.XY too!
At the moment I am emerging kde-4.1.65 from the kdesvn-portage overlay (which seems to work even without portage 2.2) and I love the fact that my 4.1.1 installation is not touched while doing so. No half broken KDE. I can do whatever I want.
And that 'automatically relink' argument is IMHO bogus. If something is linked against kde4.0 it will most likely show problems when it has to work with 4.1 libs. From crashes to no work at all.
So please. Don't do the wrong thing! Let kde stay in /usr/kde/$MAYOR.$MINOR.
From a user point of view it is much more convenient.
Marcus D. Hanwell on :
For you may be it is no biggy needing to remove the last minor version of KDE. For many it is an extra step required with little or no gain. I stated several times that a kdeprefix (or some other) use flag would allow people who wanted to install in the /usr/kde prefix to continue doing so.
What are you basing the automatically relinking argument being bogus on? Do you know the upstream policy on API and ABI? Have you worked with previous releases and had to manage conflicting libraries with different ABIs and multiple dependencies? I work on libraries where we maintain ABI stability, from 4.1 onwards I doubt there will be issues with ABI stability in KDE and if there are then multiple distributions will also need to worry about it.
Hynek Fabian on :
Marcus D. Hanwell on :
Volker Armin on :
http://forums.gentoo.org/viewtopic.php?p=5208394#5208394
to quote:
http://www.pathname.com/fhs/pub/fhs-2.3.html wrote:
Large software packages must not use a direct subdirectory under the /usr hierarchy.
so the FHS even demands /usr/kde (and /usr/gnome)?
Marcus D. Hanwell on :
Donnie Berkholz on :
Marcus D. Hanwell on :
Daniel on :
Alec on :
I think moving it out of the prefix is a great idea. I don't think there's any point of keeping more than one version at the same time.
Keep up the great work!
Volker Armin on :
In fact, besides 'lets bend over for fhs' what are the benefits of de-slotting kde? It only makes updates much more painfull.
Lukasz Ligowski on :
Hanno on :
Marcus D. Hanwell on :
jeffro on :
I've got openSUSE 11.0 on my tower - it's too slow and I'm too impatient for Gentoo compile times on that. Anyway, it's got their "official" KDE4 stuff going on. They have three main repositories split like so:
KDE 4.x (current /trunk)
KDE 4.1.x
KDE 4.0.x
Frankly, I think that's ideal. I'd say slot the feature releases but don't bother with the bugfixes.
Gentoo User #31415 on :
Also, good riddance to the kde prefix in /usr!
China243 on :
Cogito ergo doleo
[]s
China
Gleepwurp on :
Thanks alot for your page, its nice to be able to see and hear how 4.1.1 is progressing in Gentoo..
Thanks Markus!
Gleepwurp.
Theuns Cloete on :
Where can one find a good tutorial/HOWTO to emerge it and make sure everything is working 100%
Thanks a lot for the good work. Keep it up!