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