Updated patch can be found here: http://www.xs4all.nl/~kurzanov/debian/patches/dpkg-1.13.16-all-1.patch. Besides allowing CPU-uclibc architectures it also adds: 1. Specific ARM families armv4,armv5te,strongarm and xscale 2. ARM variations such as VFP and softfloat (old ABI) 3. EABI suffix for linux, linux-uclibc, hurd and hurd-uclibc (last two are rather fictional though;-) Problems to fix still: 1. armel name is really the same as arm-eabi. Could this be solved by an arch alias? 2. maybe this implementation allows too much (e.g., i386-eabi). Could this be solved by prohibiting certain regexps from arch names? The most complex name I checked so far was: $ dpkg-architecture -ahurd-arm-vfp-uclibc-eabi DEB_HOST_ARCH=hurd-arm-vfp-uclibc-eabi DEB_HOST_ARCH_OS=hurd-uclibc-eabi DEB_HOST_ARCH_CPU=arm-vfp DEB_HOST_GNU_CPU=arm-vfp DEB_HOST_GNU_SYSTEM=gnu-uclibceabi DEB_HOST_GNU_TYPE=arm-vfp-gnu-uclibceabi Greetings, Pjotr Kourzanov
--- dpkg-1.13.16/cputable 2006-04-12 13:12:58.000000000 +0200 +++ dpkg-1.13.16-my.0/cputable 2006-04-12 13:10:50.000000000 +0200 @@ -19,6 +19,12 @@ amd64 x86_64 x86_64 armeb armeb arm.*b arm arm arm.* +armv4 armv4 armv4.* +armv5te armv5te armv5te.* +arm-softfloat arm-softfloat arm.* +arm-vfp arm-vfp arm.* +strongarm strongarm strongarm.* +xscale xscale xscale.* hppa hppa hppa.* m32r m32r m32r m68k m68k m68k --- dpkg-1.13.16/debian/archtable 2006-04-12 13:13:04.000000000 +0200 +++ dpkg-1.13.16-my.0/debian/archtable 2006-04-12 13:09:35.000000000 +0200 @@ -15,12 +15,25 @@ ia64-linux-gnu ia64 alpha-linux-gnu alpha arm-linux-gnu arm +arm-linux-gnueabi arm-eabi +arm-softfloat-linux-gnu arm-softfloat +arm-vfp-linux-gnu arm-vfp +strongarm-linux-gnu strongarm +xscale-linux-gnu xscale hppa-linux-gnu hppa m68k-linux-gnu m68k mips-linux-gnu mips mipsel-linux-gnu mipsel +mipsel-linux-gnueabi mipsel-eabi powerpc-linux-gnu powerpc s390-linux-gnu s390 sh-linux-gnu sh sparc-linux-gnu sparc i486-gnu hurd-i386 +i486-linux-uclibc i386-uclibc +arm-linux-uclibc arm-uclibc +arm-linux-uclibceabi arm-uclibc-eabi +arm-softfloat-linux-uclibc arm-softfloat-uclibc +arm-vfp-linux-uclibc arm-vfp-uclibc +mipsel-linux-uclibc mipsel-uclibc +mipsel-linux-uclibceabi mipsel-uclibc-eabi --- dpkg-1.13.16/ostable 2006-04-12 13:13:04.000000000 +0200 +++ dpkg-1.13.16-my.0/ostable 2006-06-12 15:03:13.000000000 +0200 @@ -14,6 +14,9 @@ # # <Debian name> <GNU name> <config.guess regex> linux linux-gnu linux[^-]*(-gnu.*)? +linux-eabi linux-gnueabi linux[^-]*(-gnueabi)? +linux-uclibc linux-uclibc linux[^-]*(-uclibc.*)? +linux-uclibc-eabi linux-uclibceabi linux[^-]*(-uclibceabi)? darwin darwin darwin[^-]* freebsd freebsd freebsd[^-]* kfreebsd kfreebsd-gnu kfreebsd[^-]*(-gnu.*)? @@ -21,3 +24,6 @@ netbsd netbsd netbsd[^-]* openbsd openbsd openbsd[^-]* hurd gnu gnu[^-]* +hurd-eabi gnueabi gnueabi[^-]* +hurd-uclibc gnu-uclibc gnu[^-]*(-uclibc.*)? +hurd-uclibc-eabi gnu-uclibceabi gnu[^-]*(-uclibceabi.*)? --- dpkg-1.13.16/scripts/dpkg-architecture.pl 2006-04-12 13:13:04.000000000 +0200 +++ dpkg-1.13.16-my.0/scripts/dpkg-architecture.pl 2006-06-12 15:02:41.000000000 +0200 @@ -55,11 +55,22 @@ sub split_debian { local ($_) = @_; + return ("linux",$_) if exists ($cputable{$_}); + + if (/^([^-]*)-([^-]*)-([^-]*)-(.*)/) { + return (join("-",$1,$4), join("-",$2,$3)) if exists($cputable{join("-",$2,$3)}); + } + if (/^([^-]*)-([^-]*)-(.*)/) { + return ($1, join("-",$2,$3)) if exists($cputable{join("-",$2,$3)}); + return (join("-","linux",$3), join("-", $1, $2)) if exists($cputable{join("-",$1,$2)}); + return (join("-",$1,$3), $2) if exists($cputable{$2}); + } if (/^([^-]*)-(.*)/) { - return ($1, $2); - } else { - return ("linux", $_); + return ($1, $2) if exists($cputable{$2}); + return (join("-", "linux", $2), $1) if exists($cputable{$1}); } + + return ("linux", $_); } sub debian_to_gnu { @@ -73,6 +84,9 @@ sub split_gnu { local ($_) = @_; + /^([^-]*)-([^-]*)-(.*)/; + return (join("-",$1, $2), $3) if exists($cputable{join("-",$1,$2)}); + /^([^-]*)-(.*)/; return ($1, $2); }
Attachment:
signature.asc
Description: OpenPGP digital signature