[LAU] Where should lv2core put lv2.h?

Chuck Martin v4o42wl02 at sneakemail.com
Sat Jun 25 02:15:33 UTC 2011


On Fri, Jun 24, 2011 at 05:32:39PM -0400, Chuck Martin v4o42wl02 at sneakemail.com wrote:
> On Fri, Jun 24, 2011 at 10:19:15PM +0200, torbenh torbenh at gmx.de 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



More information about the Linux-audio-user mailing list