fluid-dev
[Top][All Lists]
Advanced

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

Re: [fluid-dev] Proposal: FluidSynth tester program


From: David Henningsson
Subject: Re: [fluid-dev] Proposal: FluidSynth tester program
Date: Mon, 30 Jul 2012 23:51:33 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:14.0) Gecko/20120714 Thunderbird/14.0

On 07/30/2012 07:41 PM, S. Christian Collins wrote:
On 07/28/2012 11:59 PM, David Henningsson wrote:
4) Run
sudo make install
...to install the new version. Once you have finished testing, run
sudo make uninstall
...to revert to the version that comes with Ubuntu.
On my system (Kubuntu 64-bit), this resulted in version 1.1.6 of the
FluidSynth binary using the 1.1.5 libraries.

Thanks for noticing!
I've tried to sort this stuff out, all this linking can be a bit hairy :-/

There seem to be two problems here:

1) We install things into /usr/local/lib64 by default, which is wrong under Debian systems (see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=612000 )

Workaround:

Run cmake with
"cmake -DLIB_SUFFIX= .."
Note the space between "=" and "..", and that -DCMAKE_INSTALL_PREFIX=/usr is *not* specified.

This causes the library to be installed into /usr/local/lib.

2) The ld.so.cache is not updated

Workaround:

Run "sudo ldconfig" after "sudo make install" or "sudo make uninstall" to update the cache.

After that, things seem to be in order:
* "which fluidsynth" returns /usr/local/bin
* "ldd /usr/local/bin/fluidsynth" returns "libfluidsynth.so.1 => /usr/local/lib/libfluidsynth.so.1"

As for fixing these issues long-term:

1) I'm not aware of the standards of when to use lib or lib64 for non-Debian systems, but if it's important to install into lib64 in e g Fedora, maybe we could detect whether our target is Debian based, and if so, skip the LIB_SUFFIX?

2) I think cmake's make file should call ldconfig after install/uninstall, so this seems to be a bug in cmake? I think "libtool finish" does that.

I also had a problem with OSS support causing
make to abort, so I edited the *CMakeLists.txt* file in the source
directory by changing line 328 from:

set ( OSS_SUPPORT ${OSS_FOUND} )

...to:

set ( OSS_SUPPORT 0 )

...and then I was able to compile.

Hmm, it seems like we're missing an enable-oss (to go with enable-alsa, enable-jack etc) to make it easy to leave out.

After testing, you will need to manually remove the library files you
copied to */usr/lib/x86_64-linux-gnu* and "sudo make uninstall" from the
FluidSynth build directory should remove the rest.  I say "should"
because it actually leaves the */usr/lib64/libfluidsynth.so* and
*/usr/lib64/libfluidsynth.so.1* symlinks behind, so you will have to
remove those manually as well.

Yeah, as for cleaning the symlinks, I ran into that as well. Seems to be another cmake bug?


--
David Henningsson, Canonical Ltd.
https://launchpad.net/~diwic



reply via email to

[Prev in Thread] Current Thread [Next in Thread]