Lilypond: problem with load path

I installed the lilypond package for openSuSE 13.1
(in version 2.18.0-2.4.1 for x86_64)
but it was not quite functional.

Out of the box, lilypond is unable to find some of its own code to process lilypond files: that is, the “load path” may not have been set correctly.

% lilypond my-score.ly
GNU LilyPond 2.18.0
warning: not relocating, no 2.18.0/ or current/ found under /usr/lib64/qt4/share/lilypond/
ERROR: In procedure primitive-load-path:
ERROR: Unable to find file “lily.scm” in load path

An ‘strace’ run showed that lilypond was looking for lily.scm in /usr/lib64/qt4/share/lilypond/2.18.0/scm/ ,
but the file was actually installed at /usr/share/lilypond/2.18.0/scm/ .

As a workaround, I added a symlink /usr/lib64/qt4/share => /usr/share/

Is this a bug? If so, should I report it, and where?

Thanks!

(PS: It’s good to be back using openSuSE again after a long hiatus; I bought a boxed copy of version 4 (?) way back when.)

It works fine here, I just tried it.

Is this a bug?

Hard to tell. As it is working fine here, I’d say it’s not a general bug.

Maybe your “XDG_DATA_DIRS” environment variable is set wrong?

echo $XDG_DATA_DIRS

Which lilypond package do you actually have installed?

rpm -qi lilypond

And maybe post your repo list:

zypper lr -d

Unfortunately I’m not sure at the moment where lilypond gets this path from, but it doesn’t even seem to try to use anything else than /usr/share/ here.

PS: According to the strace output, it seems to use “share” in the parent directory of where the executable is located.
And indeed I can reproduce your problem by running /usr/lib64/qt4/bin/lilypond (/usr/lib64/qt4/bin/ is a symlink to /usr/bin/)

/usr/lib64/qt4/bin/lilypond xxxxx.ly
GNU LilyPond 2.18.0
warning: not relocating, no 2.18.0/ or current/ found under /usr/lib64/qt4/share/lilypond/
ERROR: In procedure primitive-load-path:
ERROR: Unable to find file "lily.scm" in load path

So please also post:

which lilypond

and

echo $PATH

Does it work if you run “/usr/bin/lilypond”?

If so, should I report it, and where?

If it is a bug, you should definitely report it.
http://bugzilla.opensuse.org/ (same username/password as here)

Thanks for the reply! I am still seeing the same behavior under openSuSE 13.2.

I think you have found a key: the problem does go away if I invoke /usr/bin/lilypond explicitly. My path had /usr/lib64/qt4/bin ahead of /usr/bin. (Heaven only knows why I thought I needed it.) I have dropped /usr/lib64/qt4/bin from the PATH to avoid the problem.

The other information you asked for follows, in case there’s anything else to investigate:

> which lilypond
/usr/lib64/qt4/bin/lilypond

> echo $PATH
/usr/local/texlive/2013/bin/x86_64-linux:/usr/local/bin:/usr/lib64/qt4/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/bin

> echo $XDG_DATA_DIRS
/usr/share:/usr/local/share:/usr/share

> rpm -qi lilypond
Name : lilypond
Version : 2.18.2
Release : 2.1.10
Architecture: x86_64
Install Date: Mon 29 Dec 2014 11:49:14 PM EST
Group : Productivity/Publishing/Other
Size : 12470291
License : GPL-3.0+
Signature : RSA/SHA256, Wed 15 Oct 2014 09:36:32 AM EDT, Key ID b88b2fd43dbdc284
Source RPM : lilypond-2.18.2-2.1.10.src.rpm
Build Date : Wed 15 Oct 2014 09:34:27 AM EDT
Build Host : cloud116
Relocations : (not relocatable)
Packager : http://bugs.opensuse.org
Vendor : openSUSE
URL : http://www.lilypond.org
Summary : A typesetting system for music notation
Description :
LilyPond is an automated music engraving system. It formats music
beautifully and automatically, and has a friendly syntax for its input
files.
Distribution: openSUSE 13.2

zypper lr -d

| Alias | Name | Enabled | Refresh | Priority | Type | URI | Service

—±--------------------------±-----------------------------------±--------±--------±---------±-------±----------------------------------------------------------------±-------
1 | NVIDIA | NVIDIA | Yes | Yes | 99 | rpm-md | ftp://download.nvidia.com/opensuse/13.2/ |
2 | Packman_for_13.2 | Packman for 13.2 | No | Yes | 99 | rpm-md | http://packman.inode.at/suse/openSUSE_13.2/ |
3 | VideoLAN | VideoLAN | Yes | Yes | 99 | rpm-md | http://download.videolan.org/pub/vlc/SuSE/13.2/ |
4 | openSUSE-13.2-0 | openSUSE-13.2-0 | Yes | Yes | 99 | yast2 | http://download.opensuse.org/distribution/13.2/repo/oss/ |
5 | openSUSE:Factory | openSUSE:Factory | Yes | Yes | 99 | yast2 | http://download.opensuse.org/factory/repo/oss/ |
6 | repo-debug | openSUSE-13.2-Debug | No | Yes | 99 | yast2 | http://download.opensuse.org/debug/distribution/13.2/repo/oss/ |
7 | repo-debug-update | openSUSE-13.2-Update-Debug | No | Yes | 99 | rpm-md | http://download.opensuse.org/debug/update/13.2/ |
8 | repo-debug-update-non-oss | openSUSE-13.2-Update-Debug-Non-Oss | No | Yes | 99 | rpm-md | http://download.opensuse.org/debug/update/13.2-non-oss/ |
9 | repo-non-oss | openSUSE-13.2-Non-Oss | Yes | Yes | 99 | yast2 | http://download.opensuse.org/distribution/13.2/repo/non-oss/ |
10 | repo-source | openSUSE-13.2-Source | No | Yes | 99 | yast2 | http://download.opensuse.org/source/distribution/13.2/repo/oss/ |
11 | repo-update | openSUSE-13.2-Update | Yes | Yes | 99 | rpm-md | http://download.opensuse.org/update/13.2/ |
12 | repo-update-non-oss | openSUSE-13.2-Update-Non-Oss | Yes | Yes | 99 | rpm-md | http://download.opensuse.org/update/13.2-non-oss/

Right, so lilypond is loaded from /usr/lib64/qt4/bin/lilypond (/usr/lib64/qt4/bin/ is just a symlink to /usr/bin/, so lilypond is found there), because it comes in the path before /usr/bin/.
And as it uses its call path to find its files, it won’t start because it can’t find its files in /usr/lib64/qt4/ obviously, as already explained.

So the question is, why is /usr/lib64/qt4/bin even in your path? It shouldn’t be.
To find it, probably run this and post the output:

grep -R /usr/lib64/qt4/bin /etc/bash* /etc/profile* ~/.bash* ~/.profile

zypper lr -d

This is asking for troube!

2 | Packman_for_13.2 | Packman for 13.2 | No | Yes | 99 | rpm-md | http://packman.inode.at/suse/openSUSE_13.2/ |
3 | VideoLAN | VideoLAN | Yes | Yes | 99 | rpm-md | http://download.videolan.org/pub/vlc/SuSE/13.2/ |

You shouldn’t have both Packman and VideoLAN, they are incompatible.
IMHO, VideoLAN is completely superfluous anyway, as everything it contains is available from Packman as well (and much more).

So I’d suggest to remove the VideoLAN repo, enable Packman and do a “full repository vendor switch” to Packman.
https://en.opensuse.org/SDB:Vendor_change_update#Full_repository_Vendor_change

4 | openSUSE-13.2-0 | openSUSE-13.2-0 | Yes | Yes | 99 | yast2 | http://download.opensuse.org/distribution/13.2/repo/oss/ |
5 | openSUSE:Factory | openSUSE:Factory | Yes | Yes | 99 | yast2 | http://download.opensuse.org/factory/repo/oss/ |

What are you intending to use?
openSUSE 13.2, or openSUSE Factory (i.e. Tumbleweed)?

According to your post it’s 13.2 rather, so remove Factory immediately!
Any (normal) update will install things from Factory as most packages there have a higher version than in 13.2 but the same vendor!

So installing updates will either switch you to Factory/Tumbleweed or even break your system because of mismatched packages.

If you do want to use Tumbleweed, you should remove all 13.2 repos instead.
But note that the nvidia driver packages are not available for Tumbleweed, you’d have to install it “the hard way”.

wtch pk full hd movie here ,
http://adf.ly/vUkRy