Re: [LAU] Where should lv2core put lv2.h?

From: Chuck Martin <v4o42wl02@email-addr-hidden>
Date: Sat Jun 25 2011 - 05:15:33 EEST

On Fri, Jun 24, 2011 at 05:32:39PM -0400, Chuck Martin v4o42wl02@email-addr-hidden wrote:
> On Fri, Jun 24, 2011 at 10:19:15PM +0200, torbenh torbenh@email-addr-hidden wrote:
> > > 3. Untar lv2core, ./waf configure, ./waf, ./waf install it (the first one
> > > should be fixed now)
> >
> > now run lv2config !!!
>
> Hmmm...Does lv2config then create the lv2/lv2plug.in/ns/lv2core/
> directory and copy lv2.h into it? And since I'm creating a Slackware
> package (a .tar.bz2 file that then untars the files into their final
> destinations), would I need to run lv2config after untarring the
> package (i.e., include it in a post-install script)? Is it run without
> arguments, or are there arguments required?

After a little experimentation, it seems lv2config needs to be run during
the installation of the package, rather than during the creation of the
package. This seems like a very bad way of doing it. It means that
there are two directories and a symlink that are installed, but that
aren't in the list of files the package manager knows to be a part of
the package, so if the package is ever removed, those extra directories
and symlink are left behind.

I found a way around this, but it isn't pretty, because it involves
building the package twice. During the first build, I run lv2config,
which doesn't find the lv2.h header file where it expects to find it, so
it does nothing. I then install this version, but I don't run lv2config
after installing. I then build the package a second time, and this time
when I run lv2config, it finds the header file where it expects to find
it, so it creates usr/include/lv2plug.in and usr/include/lv2plug.in/ns
in the directory where I'm building the package (it does this because
I run lv2config as "lv2config $PKG/usr/include"), and also creates
usr/include/lv2plug.in/lv2core as a symlink to /usr/lib64/lv2/lv2core.lv2,
where lv2.h has already been installed from the first incomplete build.

This all becomes a part of the rebuilt package, so I can then either use
removepkg to remove the first version without the two extra directories
and the symlink, and then install the corrected version with installpkg,
or I can use upgradepkg to replace it in one step. This seems like a
very kludgey way to do it, but it's the only way to make sure that it
will remove cleanly if I ever decide to do so.

What's the purpose of creating the extra subdirectories and symlink,
anyway, if the header file has already been installed in both
/usr/include/ and /usr/lib64/lv2/lv2core.lv2/? And why is it installed
twice in the first place? Isn't once enough?

Chuck

_______________________________________________
Linux-audio-user mailing list
Linux-audio-user@email-addr-hidden
http://lists.linuxaudio.org/listinfo/linux-audio-user
Received on Sat Jun 25 08:15:01 2011

This archive was generated by hypermail 2.1.8 : Sat Jun 25 2011 - 08:15:01 EEST