[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#31946: marked as done ([AMENDMENT 17/01/1999] Adding dpkg-architecture to Packaging Manual)



Your message dated 07 May 1999 13:27:10 -0500
with message-id <871zgsenwh.fsf@glaurung.green-gryphon.com>
and subject line [Debian Installer <maor-installer@debian.org>] packaging-manual_2.5.1.0_i386.changes INSTALLED
has caused the attached bug report to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what I'm
talking about this indicates a serious mail system misconfiguration
somewhere.  Please contact me immediately.)

Ian Jackson
(administrator, Debian bugs database)

Received: (at submit) by bugs.debian.org; 15 Jan 1999 19:33:59 +0000
Received: (qmail 4603 invoked from network); 15 Jan 1999 19:33:58 -0000
Received: from sunu450.rz.ruhr-uni-bochum.de (134.147.222.33)
  by master.debian.org with SMTP; 15 Jan 1999 19:33:58 -0000
Received: (qmail 27066 invoked from network); 15 Jan 1999 19:33:52 -0000
Received: from dialppp-5-173.rz.ruhr-uni-bochum.de (HELO localhost) (mail@134.147.5.173)
  by mailhost.rz.ruhr-uni-bochum.de with SMTP; 15 Jan 1999 19:33:52 -0000
Received: from brinkmds by localhost with local (Exim 2.05 #1 (Debian))
	id 101F0S-0001M3-00; Fri, 15 Jan 1999 20:34:08 +0100
Message-ID: <19990115203408.M2577@ruhr-uni-bochum.de>
Date: Fri, 15 Jan 1999 20:34:08 +0100
From: Marcus Brinkmann <Marcus.Brinkmann@ruhr-uni-bochum.de>
To: submit@bugs.debian.org
Cc: Santiago Vila Doncel <sanvila@unex.es>,
	Gordon Matzigkeit <gord@trick.fig.org>
Subject: [PROPOSED] Adding dpkg-architecture to Packaging Manual
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 0.93i
Sender: Marcus Brinkmann <brinkmds@ruhr-uni-bochum.de>
Organization: Marcus Brinkmann's Home

Package: debian-policy
Version: current
Severity: wishlist

Hello,

to support the Hurd, and to make it possible to support cross compilation, I
propose the following changes to the Packaging Manual. I attach a set of
diff files against some package building scripts and a new script
`dpkg-architecture', too. They are probably not part of the proposal, but
provide an exemplary reference implementation for the suggested changes.

I set a discussion time of two weeks, according to the recommendation in
"A mechanism for updating Debian Policy documents" by Manoj. This should be
enough to sort out the rough edges and to correct my english.

But nothing will happen if I don't get two seconders. I therefore ask you to
second my proposal if you support it. I have CC'ed two persons who probably
want consider to second my proposal.

Thank you,
Marcus

===========================================================================
GOAL

 The goal of the proposed changes is to add a facility to support other
operating systems beside Linux, and to allow support for cross compilation,
in the Debian package building scripts, including the individual
debian/rules files.

Two main issues are addressed:

* Getting the exact architecture specification string (until now only the
  cpu could be queried, the OS was linux by default).
* Seperating the build architecture and the host architecture.


HOW IT WAS AND HOW IT WILL BE

Dpkg provided rudimentary architecture query facilities, which are not
sufficient to addresse above issues. It was suggested by Manoj and generally
considered a good idea to provide a new script instead adding further
options to already feature-blown dpkg. This script was then called by me
"dpkg-architecture" and is the central point of this proposal.

dpkg-architecture can be used to autodetect and set environment/make
variables which contain the needed architecture information. This proposal
includes changes to the Packaging Manual, which replace the instructions to
use `dpkg' to query the architecture with instructions to use
dpkg-architecture.

Also, cross compilation support is now actively encouraged. To make it clear
that this should only be provided if useful, I added some restrictions for
bug report submitters. I can imagine that some people want this paragraph to
be rewritten, and I am open to suggestions. The actual wording is the
maximum of restrictions I would find reasonable. However, if you think the
Packaging Manual should not mention bug reports at all, I would be happy to
remove the last sentence of proposed section 3.2.1.

--- packaging.text.old	Fri Jan 15 18:04:16 1999
+++ packaging.text	Fri Jan 15 18:38:26 1999
@@ -528,6 +528,12 @@
      changelog, `debian/changelog' by default, and prints a control-file
      format representation of the information in it to standard output. 
 
+3.1.8. dpkg-architecture - information about the build and host system
+----------------------------------------------------------------------
+
+     This program is used either manually or internally by dpkg-buildpackage
+     to set environment variables which specify the build and host
+     architecture for the package building process.
 
 3.2. The Debianised source tree
 -------------------------------
@@ -641,6 +647,35 @@
      Additional targets may exist in `debian/rules', either as published or
      undocumented interfaces or for the package's internal use. 
 
+     The architecture we build on and build for is determined by make
+     variables via dpkg-architecture (see Section 3.1.8). You can get the
+     Debian architecture and the GNU style architecture specification string
+     for the build machine as well as the host machine. Here is a list of
+     supported make variables:
+
+     DEB_*_ARCH        the Debian architecture
+     DEB_*_GNU_SYSTEM  the GNU style architecture specification string
+     DEB_*_GNU_ARCH    the CPU part of DEB_*_GNU_SYSTEM
+     DEB_*_GNU_OS      the OS part of DEB_*_GNU_SYSTEM
+
+     where `*' is either BUILD for specification of the build machine or
+     HOST for specification of the machine we build for.
+
+     Backward compatibility can be provided in the rules file by setting
+     the needed variables to suitable default values, please refer to the
+     documentation of dpkg-architecture for details.
+
+     It is important to understand that the DEB_*_ARCH string does only
+     determine which Debian architecture we build on resp. for. It should
+     not be used to get the CPU or OS information, the GNU style variables
+     should be used for that.
+
+     The information provided by the above make variables allows it to
+     cross compile packages. If possible, packages should provide cross
+     compilation support. However, a bug report against missing cross
+     compilation is only acceptable if it is accompanied with a clean
+     patch, and is generally of severity `wishlist'.
+
 3.2.2. `debian/control'
 -----------------------
 
@@ -1099,7 +1134,7 @@
 4.2.3. `Architecture'
 ---------------------
 
-     This is the architecture string; it is a single word for the CPU
+     This is the architecture string; it is a single word for the Debian
      architecture.
 
      dpkg will check the declared architecture of a binary package against
@@ -1123,21 +1158,8 @@
      be a list; if the source for the package is being uploaded too the
      special entry `source' is also present.
 
-     The current build architecture can be determined using `dpkg
-     --print-architecture'.[1] This value is automatically used by
-     dpkg-gencontrol when building the control file for a binary package
-     for which the source control information doesn't specify architecture
-     `all'.
-
-     [1]  This actually invokes 
-               gcc --print-libgcc-file-name
-          and parses and decomposes the output and looks the CPU type from
-          the GCC configuration in a table in dpkg. This is so that it will
-          work if you're cross-compiling.
-
-     There is a separate option, `--print-installation-architecture', for
-     finding out what architecture dpkg is willing to install. This
-     information is also in the output of `dpkg --version'. 
+     See section 3.2.1 for information how to get the architecture
+     for the build process.
 
 4.2.4. `Maintainer'
 -------------------


-- 
"Rhubarb is no Egyptian god."        Debian GNU/Linux        finger brinkmd@ 
Marcus Brinkmann                   http://www.debian.org    master.debian.org
Marcus.Brinkmann@ruhr-uni-bochum.de                        for public  PGP Key
http://homepage.ruhr-uni-bochum.de/Marcus.Brinkmann/       PGP Key ID 36E7CD09


Reply to: