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