Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 570210 - kde-plasma/plasma-desktop-5.5.2 (runtime) LayoutManager.js is unavailable
Summary: kde-plasma/plasma-desktop-5.5.2 (runtime) LayoutManager.js is unavailable
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] KDE (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo KDE team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-12-30 07:38 UTC by Duncan
Modified: 2016-03-24 21:46 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
emerge --info (emerge.info,6.42 KB, text/plain)
2015-12-30 09:13 UTC, Duncan
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Duncan 2015-12-30 07:38:08 UTC
[With a partially broken desktop I'm typing mostly blind here, as active text boxes are white text on a white background.  I have to switch out of the box to actually read what I've written.  Hopefully I catch the errors..]

So I'm upgrading from a highly customized kde4, with as many packages pre-merged without the blockers as possible, so I can switch back to a working kde4 if plasma5 is too broken for me.  Then merging the last five packages after unmerging the kde4 blockers.  As such I'm doing only the minimal plasma-desktop for now.

The merge went fine, and as my normal user I proceeded to move out my kde and config dirs (the reason firefox is having me type blind now) to start with a clean config for first kde startup.  That went fine too, but the startup, not so.

Plasma mostly starts, but can't find either the desktopcontainment or panel LayoutManager.js files, so I don't actually have much of a desktop.  The errors on the desktop and panel (when I create a panel) are:


Error loading QML file: file:///share/plasma/plasmoids/org.kde.desktopcontainment/contents/ui/main.qml:32:1: Script file:///share/plasma/plasmoids/org.kde.desktopcontainment/contents/ui/LayoutManager.js unavailable
file:///share/plasma/plasmoids/org.kde.desktopcontainment/contents/ui/LayoutManager.js: File not found


Error loading QML file: file:///share/plasma/plasmoids/org.kde.panel/contents/ui/main.qml:28:1: Script file:///share/plasma/plasmoids/org.kde.panel/contents/ui/LayoutManager.js unavailable
file:///share/plasma/plasmoids/org.kde.panel

(Note that my /usr -> .  That is, /usr is symlinked back to / for the /usr merge, explaining /usr/share coming out as simply /share.)


The funny thing is, those files seem to exist in the code subdir, and equery belongs says they belong to plasma-desktop, thus this bug.    Putting a symlink in the ui subdirs pointing at ../code/LayoutManager.js seems to work.  (I haven't restarted kde with that yet, but restarting the activitymanager and plasmashell got me a desktop and panel.)

So the question is, where is it finding the ui path, and should that change to  the code subdir path, or should the files be moved to ui, or is a symlink the correct solution?  Or is it a buildtime configured path pointed wrong?
Comment 1 Duncan 2015-12-30 08:13:34 UTC
Ugh.  I really /hate/ grey backgrounds, and white on white is worse!

After (deleting the stub config to start clean again and) restarting kde5/plasma, I get a proper desktop containment and panel now, but most plasmoids have a similar problem, only they're missing logic.js (analog clock), utils.js (the pager), etc, with the missing files, as expected, in the code subdirs, not ui.

(And it seems I only got part of the panel error in the first comment.  But there's enough to see what the problem is.)

The qml files appear to import the js files simply by name, not path.  So whatever configures the default path to look in (the code subdir as well as ui, pwd, or whatever) is obviously either missing or misconfigured.

So I guess it's back to the actually working kde4, for now.  There's a reason I  wanted to unmerge as little of it as possible.  Too bad for the blockers.  =:^(
Comment 2 Duncan 2015-12-30 09:13:45 UTC
Created attachment 421202 [details]
emerge --info

OK, back on a working kde4 again.  Thanks to binpkgs and just commenting out the couple of blockers in my sets, the rollback is easy! =:^)

Here's an emerge --pretend --verbose --oneshot kde-plasma/plasma-desktop, showing the blocker packages I can't keep merged with kde4 that are thus now unmerged to get a working kde4 again, along with their USE flags.  Other deps remain merged as they aren't blocking.  I'm attaching emerge --info.

Calculating dependencies  .. ... done!
[ebuild  N     ] kde-plasma/libksysguard-5.5.2:5::kde  USE="X -debug -detailedmemory {-test}" 0 KiB
[ebuild  N     ] kde-plasma/ksysguard-5.5.2:5::kde  USE="handbook lm_sensors -debug" 0 KiB
[ebuild  N     ] kde-plasma/kwin-5.5.2:5::kde  USE="handbook -debug -gles2 -multimedia {-test}" 0 KiB
[ebuild  N     ] kde-plasma/plasma-workspace-5.5.2-r1:5::kde  USE="dbus handbook -debug -geolocation -gps (-prison) -qalculate {-test}" 0 KiB
[ebuild  N     ] kde-plasma/plasma-desktop-5.5.2:5::kde  USE="evdev fontconfig handbook qt4 -debug -gtk2 -gtk3 -legacy-systray -pulseaudio {-test} -touchpad" 0 KiB
[blocks B      ] kde-base/kwin:4 ("kde-base/kwin:4" is blocking kde-plasma/kwin-5.5.2)
[blocks B      ] kde-apps/kcontrol ("kde-apps/kcontrol" is blocking kde-plasma/plasma-desktop-5.5.2)
[blocks B      ] kde-base/plasma-workspace:4 ("kde-base/plasma-workspace:4" is blocking kde-plasma/plasma-desktop-5.5.2, kde-plasma/plasma-workspace-5.5.2-r1)
[blocks B      ] kde-base/libtaskmanager:4 ("kde-base/libtaskmanager:4" is blocking kde-plasma/plasma-workspace-5.5.2-r1)
[blocks B      ] kde-base/kdebase-startkde:4 ("kde-base/kdebase-startkde:4" is blocking kde-plasma/plasma-workspace-5.5.2-r1)
[blocks B      ] kde-base/ksmserver:4 ("kde-base/ksmserver:4" is blocking kde-plasma/plasma-workspace-5.5.2-r1)
[blocks B      ] kde-base/kcminit:4 ("kde-base/kcminit:4" is blocking kde-plasma/plasma-workspace-5.5.2-r1)
[blocks B      ] kde-base/klipper:4 ("kde-base/klipper:4" is blocking kde-plasma/plasma-workspace-5.5.2-r1)
[blocks B      ] kde-base/systemsettings:4 ("kde-base/systemsettings:4" is blocking kde-plasma/plasma-desktop-5.5.2, kde-plasma/kwin-5.5.2)
[blocks B      ] kde-base/krunner:4 ("kde-base/krunner:4" is blocking kde-plasma/plasma-workspace-5.5.2-r1)
[blocks B      ] kde-base/ksysguard:4 ("kde-base/ksysguard:4" is blocking kde-plasma/ksysguard-5.5.2, kde-plasma/libksysguard-5.5.2)

Total: 5 packages (5 new), Size of downloads: 0 KiB
Conflict: 11 blocks (11 unsatisfied)

 * Error: The above package list contains packages which cannot be
 * installed at the same time on the same system.

  (kde-plasma/plasma-desktop-5.5.2:5/5::kde, ebuild scheduled for merge) pulled in by
    kde-plasma/plasma-desktop

  (kde-base/plasma-workspace-4.11.22:4/4.11::gentoo, installed) pulled in by
    >=kde-base/plasma-workspace-4.11:4[-aqua] required by (kde-base/kdeplasma-addons-4.14.3:4/4.14::gentoo, installed)
    >=kde-base/plasma-workspace-4.4:4[-aqua] required by (kde-misc/quickaccess-0.8.2-r1:4/4::gentoo, installed)      
    >=kde-base/plasma-workspace-4.4:4[-aqua] required by (kde-misc/yawp-0.4.5:4/4::gentoo, installed)                
    >=kde-base/plasma-workspace-4.11.22:4[-aqua] required by (kde-base/kdebase-startkde-4.11.22:4/4.11::gentoo, installed)

  (kde-base/kdebase-startkde-4.11.22:4/4.11::gentoo, installed) pulled in by
    kde-base/kdebase-startkde:4 required by @jed.kde.kdebase-workspace

  (kde-apps/kcontrol-15.08.3:4/15.08::gentoo, installed) pulled in by
    kde-apps/kcontrol:4 required by @jed.kde.kdebase-runtime

  (kde-base/krunner-4.11.22:4/4.11::gentoo, installed) pulled in by
    >=kde-base/krunner-4.11:4[-aqua] required by (kde-base/kdeplasma-addons-4.14.3:4/4.14::gentoo, installed)
    >=kde-base/krunner-4.11.22:4[-aqua] required by (kde-base/kdebase-startkde-4.11.22:4/4.11::gentoo, installed)

  (kde-base/klipper-4.11.22:4/4.11::gentoo, installed) pulled in by
    kde-base/klipper:4 required by @jed.kde.kdebase-workspace
Comment 3 gerhofer 2016-01-13 08:24:20 UTC
I have just updated a Opensuse 13.2 system to Leap 42.1 that includes plasma5 5.4.3. In my particular case the /usr/share directory was symlinked to /root2/usr/share. In my case the error messages I got were quite similar:

Error loading QML file: file:///root2/usr/share/plasma/plasmoids/org.kde.desktopcontainment/contents/ui/main.qml:31:1: Script file:///root2/usr/share/plasma/plasmoids/org.kde.desktopcontainment/contents/ui/LayoutManager.js unavailable file:///root2/usr/share/plasma/plasmoids/org.kde.desktopcontainment/contents/ui/LayoutManager.js: File not found

The files were actually in the code subdirectory - similar to this reported bug.

I then moved things around and instead of using symlinks I moved the same files (and some more from the original root disk) and then mounted that partition as /usr file system. And suddenly everything started to work as expected.

So the issue is somehow related to the symlink. Something breaks when there is a symlink involved.
Comment 4 Duncan 2016-01-13 10:08:03 UTC
(In reply to gerhofer from comment #3)
> Something breaks when there is a symlink involved.

Thank you /very/ much!  This was proving /highly/ frustrating to me!  Your additional data point helps /tremendously/.

So something's not dereferencing symlinks that should be, and is thus not finding the files in /usr/share at all because of the (in my case) /usr -> . symlink, or the (in your case) /usr/share -> /root2/usr/share symlink.

When the file is not found, the default location, that being the location of the including file (the ui subdir), is spit out in the error.  But it wouldn't see that location based on path either, because it too is behind that symlink; it only sees it as the same location as the including file.  But interestingly enough, it *will* dereference symlinks in that same subdir location, tho possibly because I made them /relative/ symlinks.  Alternatively, it could be that symlinks to the files themselves are dereferenced while symlinks in the directory paths are not.

The fix, therefore, should be as "simple" as finding the code, very likely in the qt5 code handling the "import" call, not in the kde-frameworks/plasma stuff, that fails to dereference symlinks and add the one more flag that tells it to do symlink dereferences.  (Of course "simple" is relative, but we have a good start now as we know both what the problem is, and in general, what subsystem it's in.)

And until then, a workaround should be anything that replaces the symlink with some other form of link, be that a hard link (which will be a new experience for me as I've not worked much with additional hard links) or a mount (your solution, but I don't want to try it here as I like my partition setup) or a bindmount (another solution I might try, that I actually use for other things already so I'm somewhat familiar with them).

If I'm /real/ lucky, yesterday's kde-frameworks update (to 5.18.0) will just happen to have this fixed and I won't need a workaround.  Unlikely, but just possible.  But with either that or more likely a workaround now that I know what the general problem is, this blocker should be eliminated and hopefully my next plasma5 try actually works and I can get to customizing and not have to roll back to kde4. =:^)

Unfortunately, I had extra time off last week and was going to try the upgrade and use them to start customizing plasma5 and do further upgrades once I had it going, but I hit this blocker, and now the days off are gone.  Well maybe I'll have some time off later this week too, tho the time off isn't helping my budget so I can't wish for any more. =:^(  But I'll have something to do with the time if I get it. =:^)
Comment 5 Andreas Sturmlechner gentoo-dev 2016-01-13 13:44:34 UTC
I don't think upstream is aware of such a problem yet (?)
Comment 6 Duncan 2016-01-13 14:06:19 UTC
(In reply to Andreas Sturmlechner from comment #5)
> I don't think upstream is aware of such a problem yet (?)

I haven't yet looked at kde bugzilla, but I did post a message to the kde-general or kde-linux (IDR which) lists, asking if anyone else had seen similar.  No replies.  Now that it's pretty well nailed down to a symlink dereference failure, I planned on confirming it further and checking on a bug filing, as well as updating my list posting, hopefully 2nite if time, or later this week.

Of course assuming no one else gets to it b4 then.  I won't complain if so. =:^)
Comment 7 Duncan 2016-01-14 11:27:25 UTC
(In reply to Duncan from comment #6)
> (In reply to Andreas Sturmlechner from comment #5)
> > I don't think upstream is aware of such a problem yet (?)
> 
> I haven't yet looked at kde bugzilla[.] I planned on confirming it further
> and checking on a bug filing[.]

Checked kde bugzilla, didn't see anything (searching frameworks-plasma and plasmashell products, all status, on summary words: symlink and/or dereference, and another search on LayoutManager.js, got hits, but unrelated to this problem).  Still gotta confirm it's a symlink-deref issue before I actually file.  Turns out I'm not working much this week (Wed thru Tue) either, so I should have some time to investigate.
Comment 8 Duncan 2016-01-16 21:06:15 UTC
TL;DR: resolved/fixed! =:^)

After the recent kde updates the problem has disappeared, and I finally have a /working/ plasma5 desktop.  Of course after that one of the first things I did was install kde-plasma/systemsettings and set a much more sensible light-on-dark color scheme, and now I can actually see what I'm typing into firefox running on a plasma5 desktop as well. =:^)

FWIW, frameworks (including kde-frameworks/plasma) 5.18.0 now, plasma-desktop-5.5.3, and just in case it matters (maybe gentoo/qt added a fix), the recent qt*5 bumps to 5.5.1-r1.  Anyone else having this problem is probably still running older versions of one of those sets of packages.

So setting resolved/fixed.  I don't know if the fix was upstream or something at the gentoo level, and certainly don't know in what package, but it's working with the latest, and I'm busy customizing now! =:^)