Browse Source

Use dpkg-architecture from the source tree to get the target Debian
architecture, instead of duplicating the logic in the m4 files.

Guillem Jover 20 years ago
parent
commit
352ddeed50
4 changed files with 27 additions and 9 deletions
  1. 11 0
      ChangeLog
  2. 2 0
      debian/changelog
  3. 12 7
      m4/arch.m4
  4. 2 2
      scripts/dpkg-architecture.pl

+ 11 - 0
ChangeLog

@@ -1,3 +1,14 @@
+2006-08-08  Guillem Jover  <guillem@debian.org>
+
+	* scripts/dpkg-architecture.pl (dpkglibdir): Set to '.' where
+	controllib.pl is located.
+	(pkgdatadir): Set to '..' where cputable and ostable are located.
+	* m4/arch.m4 (_DPKG_ARCHITECTURE): New macro.
+	(DPKG_CPU_TYPE): Use _DPKG_ARCHITECTURE instead of parsing cputable.
+	(DPKG_OS_TYPE): Use _DPKG_ARCHITECTURE instead of parsing ostable.
+	(DPKG_ARCHITECTURE): Use _DPKG_ARCHITECTURE instead of constructing
+	the value from cpu_type and os_type.
+
 2006-08-08  Ian Jackson  <iwj@ubuntu.com>
 
 	* lib/dpkg-db.h (deptype): Add dep_breaks.

+ 2 - 0
debian/changelog

@@ -3,6 +3,8 @@ dpkg (1.13.23~) UNRELEASED; urgency=low
   [ Guillem Jover ]
   * Add initial support for the Breaks field, by parsing but rejecting it.
     Thanks to Ian Jackson <iwj@ubuntu.com>. Closes: #375703
+  * Use dpkg-architecture from the source tree to get the target Debian
+    architecture, instead of duplicating the logic in the m4 files.
 
   [ Added dpkg Translations ]
   * Dzongkha (Kinley Tshering)

+ 12 - 7
m4/arch.m4

@@ -1,10 +1,19 @@
+# _DPKG_ARCHITECTURE([DEB_VAR], [sh_var])
+# ---------------------------------------
+# Use dpkg-architecture from the source tree to set sh_var using DEB_VAR for
+# the target architecture, to avoid duplicating its logic.
+AC_DEFUN([_DPKG_ARCHITECTURE], [
+AC_REQUIRE([AC_CANONICAL_SYSTEM])dnl
+$2="`cd $srcdir/scripts; ./dpkg-architecture.pl -t$target -q$1 2>/dev/null`"
+])# _DPKG_ARCHITECURE
+
 # DPKG_CPU_TYPE
 # -------------
 # Parse the target cpu name and check it against the cputable to determine
 # the Debian name for it.  Sets ARCHITECTURE_CPU.
 AC_DEFUN([DPKG_CPU_TYPE],
 [AC_MSG_CHECKING([dpkg cpu type])
-[cpu_type="`awk \"! /^(#.*)?\\$/ { if (match(\\\"$target_cpu\\\", \\\"^\\\"\\$][3\\\"\\$\\\")) { print \\$][1; exit; } }\" $srcdir/cputable`"]
+_DPKG_ARCHITECTURE([DEB_HOST_ARCH_CPU], [cpu_type])
 if test "x$cpu_type" = "x"; then
 	cpu_type=$target_cpu
 	AC_MSG_RESULT([$cpu_type])
@@ -22,7 +31,7 @@ AC_DEFINE_UNQUOTED(ARCHITECTURE_CPU, "${cpu_type}",
 # special cases to determine what type it is.  Sets ARCHITECTURE_OS.
 AC_DEFUN([DPKG_OS_TYPE],
 [AC_MSG_CHECKING([dpkg operating system type])
-[os_type="`awk \"! /^(#.*)?\\$/ { if (match(\\\"$target_os\\\", \\\"^(.*-)?\\\"\\$][3\\\"\\$\\\")) { print \\$][1; exit; } }\" $srcdir/ostable`"]
+_DPKG_ARCHITECTURE([DEB_HOST_ARCH_OS], [os_type])
 if test "x$os_type" = "x"; then
 	os_type=$target_os
 	AC_MSG_RESULT([$os_type])
@@ -42,11 +51,7 @@ AC_DEFUN([DPKG_ARCHITECTURE],
 [DPKG_CPU_TYPE
 DPKG_OS_TYPE
 AC_MSG_CHECKING([dpkg architecture name])
-if test "x$os_type" = "xlinux"; then
-	dpkg_arch=$cpu_type
-else
-	dpkg_arch="$os_type-$cpu_type"
-fi
+_DPKG_ARCHITECTURE([DEB_HOST_ARCH], [dpkg_arch])
 AC_MSG_RESULT([$dpkg_arch])
 AC_DEFINE_UNQUOTED(ARCHITECTURE, "${dpkg_arch}",
 	[Set this to the canonical dpkg architecture name.])

+ 2 - 2
scripts/dpkg-architecture.pl

@@ -21,14 +21,14 @@
 
 $version="1.0.0"; # This line modified by Makefile
 
-$dpkglibdir="/usr/lib/dpkg";
+$dpkglibdir = ".";
 push(@INC,$dpkglibdir);
 require 'controllib.pl';
 
 require 'dpkg-gettext.pl';
 textdomain("dpkg-dev");
 
-$pkgdatadir=".";
+$pkgdatadir = "..";
 
 sub version {
     printf _g("Debian %s version %s.\n"), $progname, $version;