On Mon, Aug 13, 2012 at 10:33:41PM -0700, Andy Leiserson wrote:
> Allow packages to find arch-independent data normally located in
> /usr/share in the staging area using pkgconfig.
> 
> Change the default configure args to use ${prefix} and ${exec_prefix}
> (with expansion deferred) rather than $(CONFIGURE_PREFIX). This allows
> the pkg-config wrapper used in the host staging area
> (tools/pkg-config/files/pkg-config) to fully override the location of
> the package by setting only $prefix and $exec_prefix, as long as the
> pkgconfig files define paths in terms of those variables.

Quoting Florian's note in response to 00/16 of the series
(sent Wed, Dec 05, 2012 at 06:41:51PM +0100):
> I did not apply patch 2 because I am not exactly sure everything is
> required in it.

Thanks Florian for taking the time to review the patches.

I'll try to clarify the intent of patch 02, in case it wasn't clear. 
Currently the issue only affects rygel, but I do think it could affect 
other packages in the future. If we just need a safe fix for the rygel 
issue, I can submit a patch to do that.

The problem addressed by the patch is how to tell the rygel build to 
look for .vapi files in the staging area rather than in 
/usr/share/vala/vapi on the host. (This is the reason the rygel
build is failing in the buildbot.)

The vala package generates a pkgconfig file called vapigen.pc using
autoconf. The vapigen.pc.in source contains (in part):

prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
datadir=@datadir@

Without the patch, those lines are expanded to say:

prefix=/usr
exec_prefix=/usr
libdir=${exec_prefix}/lib
datadir=/usr/share

The value of libdir is an autoconf-supplied default, because the openwrt
configure args in package-defaults.mk don't specify --libdir. The value
of --datadir comes from the openwrt configure args.

With the patch, the datadir line reads:

datadir=${prefix}/share

... which will point to the correct path in the staging area when the
pkg-config wrapper used by the build overrides $prefix and $exec_prefix.

There's an obvious risk that the patch will break things. So, I
understand if it can't be applied. I'll offer a few other options:

1. Manually set the vapidir path to point to the staging area in the
   rygel build. (This has simplicity and safety, if not cleanliness, in
   its favor.)

2. Override datadir in the pkg-config wrapper script.

3. Remove datadir (and possibly others) from the default configure args,
   with the reasoning that it should match the default. (This avoids the
   risk that something breaks because it isn't shell-expanding the paths
   in the configure args.)

I'll submit a patch to do #1, if there isn't feedback otherwise.

Thanks,
Andy
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to