package: dpkg-cross
tags: 483076 + patch
quit
Fix for a build failure in the gtk+ udeb which cannot find the
libcairo-directfb headers because dpkg-cross shortens
-I/usr/arm-linux-gnu/lib/libcairo-directfb/include/cairo
to:
-I/usr/arm-linux-gnu/include/cairo
$ grep "^prefix=" /usr/lib/pkgconfig/*.pc | grep -v "prefix=/usr$"
/usr/lib/pkgconfig/autoopts.pc:prefix="/usr"
/usr/lib/pkgconfig/cairo-directfb.pc:prefix=/usr/lib/libcairo-directfb
I've tested with both these specific cases and with one typical case.
Index: dpkg-cross
===================================================================
RCS file: /cvsroot/dpkg-cross/dpkg-cross/dpkg-cross,v
retrieving revision 1.50
diff -p -u -b -B -r1.50 dpkg-cross
--- dpkg-cross 26 Jun 2008 15:22:13 -0000 1.50
+++ dpkg-cross 10 Jul 2008 16:21:12 -0000
@@ -509,8 +509,9 @@ sub sub_build {
return 0;
}
while (<FROM>) {
- if (/^prefix=/) {
- print TO "prefix=$crossdir\n";
+ # fix for #483076
+ if ((m:^prefix="/usr(.*)"$:) or (m:^prefix=/usr(.*)$:)) {
+ print TO "prefix=${crossdir}${1}\n";
} elsif (/^exec_prefix=/) {
print TO "exec_prefix=\${prefix}\n";
} elsif (/^libdir=/) {
The resulting .pc file for cairo-direct-fb would be:
prefix=/usr/arm-linux-gnu/lib/libcairo-directfb
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: cairo-directfb
Description: Multi-platform 2D graphics library
Version: 1.6.4
Requires.private: freetype2 >= 9.7.3 fontconfig directfb libpng12
pixman-1 >= 0.10.0
Libs: -L${libdir} -lcairo -Wl,-rpath,${libdir}
Libs.private: -lz -lz -lm
Cflags: -I${includedir}/cairo
The autogen pkg-config data would be:
# pkg-config information for AutoOpts 31.1.6
#
prefix=/usr/arm-linux-gnu
datarootdir="/usr/share"
datadir="/usr/share"
package="autogen"
includedir="/usr/include"
exec_prefix=${prefix}
bindir="/usr/bin"
libdir=${exec_prefix}/lib
ldopts="-Wl,-R"
exeext=""
version="31:1:6"
dotver="31.1.6"
pkgdatadir="/usr/share/autogen"
autogen="/usr/bin/autogen"
libs="-L/usr/lib -lopts"
libsrc="/usr/share/autogen/libopts-31.1.6.tar.gz"
static_libs="/usr/lib/libopts.a"
Name: AutoOpts
Description: A semi-automated generated/library option parser
URL: http://www.gnu.org/software/autogen
Version: 31.1.6
Libs: -Wl,-R/usr/lib -L/usr/lib -lopts
Cflags:
A typical package is unaffected:
prefix=/usr/arm-linux-gnu
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
xmldir=/usr/share/xml/qof/qsf
gda_libs=-lgdasql-3.0
qof_sql_libs=
Name: QOF
Description: QOF Query Object Framework Library.
Version: 0.7.5
Requires: glib-2.0
Libs: -L${libdir} -lqof ${qof_sql_libs}
Libs.private: -lm ${gda_libs}
Cflags: -I${includedir}/qof
The modified cairo-directfb pc file gives:
$ PKG_CONFIG_PATH=/usr/arm-linux-gnu/lib/pkgconfig/ pkg-config
--cflags ./test.pc
-D_REENTRANT -I/usr/arm-linux-gnu/lib/libcairo-directfb/include/cairo
-I/usr/arm-linux-gnu/include/freetype2 -I/usr/arm-linux-gnu/include
-I/usr/arm-linux-gnu/include/directfb
-I/usr/arm-linux-gnu/include/libpng12
-I/usr/arm-linux-gnu/include/pixman-1
Compared to (broken):
$ PKG_CONFIG_PATH=/usr/arm-linux-gnu/lib/pkgconfig/ pkg-config --cflags
cairo-directfb
-D_REENTRANT -I/usr/arm-linux-gnu/include/cairo
-I/usr/arm-linux-gnu/include/freetype2 -I/usr/arm-linux-gnu/include
-I/usr/arm-linux-gnu/include/directfb
-I/usr/arm-linux-gnu/include/libpng12
-I/usr/arm-linux-gnu/include/pixman-1
and (native)
$ pkg-config --cflags cairo-directfb
-D_REENTRANT -I/usr/lib/libcairo-directfb/include/cairo
-I/usr/include/freetype2 -I/usr/include/directfb -I/usr/include/libpng12
-I/usr/include/pixman-1
--
Neil Williams
=============
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/
Attachment:
signature.asc
Description: This is a digitally signed message part