This patch allows dpkg-cross to handle packages which use multiarch
paths for libraries but are not yet marked co-installable with
Multi-Arch: field.

Index: dpkg-cross
===================================================================
RCS file: /cvsroot/dpkg-cross/dpkg-cross/dpkg-cross,v
retrieving revision 1.86
diff -u -r1.86 dpkg-cross
--- dpkg-cross  26 Mar 2011 13:43:41 -0000      1.86
+++ dpkg-cross  30 Mar 2011 12:32:41 -0000
@@ -55,12 +55,19 @@
 
 =head1 SYNOPSIS
 
- dpkg-cross [ -v | --verbose ] [ -q | --quiet ] [ -A | --convert-anyway ]
- [ -X | --exclude PACKAGE ] [ -k | --keep-temp ] { -i | --install 
- | -b | --build | -r | --remove | --purge | -s | --status | -l | --list 
- | -L | --list-files | -u | --update | -Q | --query } 
- { -a | --arch architecture} package [package ... ]
-
+ dpkg-cross [OPTIONS] [--install|-i] <files...>
+ dpkg-cross [OPTIONS] [--build|-b] <files...>
+ dpkg-cross [OPTIONS] [--remove|--purge|-r] <packages...>
+ dpkg-cross [OPTIONS] [--status|-s] <packages...>
+ dpkg-cross [OPTIONS] [--list|-l] <packages...>
+ dpkg-cross [OPTIONS] [--list-files|-L] <packages...>
+ dpkg-cross [OPTIONS] [--query|-Q] <pkgpath>
+ dpkg-cross [OPTIONS] [--update|-u] <pkgpath>
+ 
+ OPTIONS: [ -v | --verbose ] [ -q | --quiet ] 
+ { [ -a | --arch ] architecture } { [ -X | --exclude ] PACKAGE } 
+ [ -A | --convert-anyway ] [ -M | --convert-multiarch ]  [ -k | --keep-temp ] 
+ 
 =cut
 
 =head1 DESCRIPTION
@@ -522,7 +529,7 @@
                        $multiarchpackage=1;
                } else {
                        my $output = basename ($package);
-                       warn sprintf(_g("%s: Skipping the '%s' Multi-Arch 
package.\n"), $progname, $output);
+                       warn sprintf(_g("%s: Skipping Multi-Arch package 
'%s'.\n"), $progname, $output);
                        if (not -f $output) {
                                open(CP, "$package");
                                my @cp=<CP>;
@@ -737,6 +744,10 @@
                chomp;
                s/^$src//;
                /^DEBIAN/ && next;
+               # if we have library files on multiarch paths, treat deb like a 
multiarch package
+               if (m:^(/usr)?/lib/\Q$crosstype/\E:) { 
+                       $multiarch="\Q$crosstype/\E"
+                       }
                # special support for generated cache data
                if (m:(/etc/dpkg-cross/cross-config.d/($arch)?/.*):) {
                        &ensure_dir("$dst$1");
@@ -778,10 +789,10 @@
                        # regular file under /usr/include/ or 
/usr/include/<triplet>
                        link_file("$src$_", "$dst$crossinc/$'") or goto fail;
                } elsif 
(m:^/usr/(lib/$multiarch.*\.([hH]|[hH][hH]|[hH][pP][pP]))$:) {
-                       # regular .h, .hh, or .hpp file under /usr/lib
+                       # regular .h, .hh, or .hpp file under /usr/lib or 
/usr/lib/<triplet>
                        link_file("$src$_", "$dst$crossdir/$1") or goto fail;
                } elsif (m:^/usr/lib/$multiarch([^/]+\.[ao])$:) {
-                       # regular .a or .o file under /usr/lib
+                       # regular .a or .o file under /usr/lib or 
/usr/lib/<triplet>
                        link_file("$src$_", "$dst$crosslib/$1") or goto fail;
                } elsif (m:^/usr/lib64/([^/]+\.[ao])$:) {
                        # regular .a or .o file under /usr/lib64

        
Wookey
-- 
Principal hats:  Linaro, Emdebian, Wookware, Balloonboard, ARM
http://wookware.org/



-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]
Archive: http://lists.debian.org/[email protected]

Reply via email to