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

Re: question about package building



"Susan G. Kleinmann" <sgk@kleinmann.com> wrote:
>1.  When I run deb-make, it creates a debian/control file with the
>field Architecture set to "any".  I have edited this to reflect the 
>architecture on which I'm building the package.  But I notice that
>only a few of the other debian source packages I've looked at have
>an Architecture field set to anything but "any".  Now, I realize
>that packages which are basically scripts might reasonably be
>set to "any", but I don't understand why so many packages with 
>compiled programs should be set to "any", since I doubt that many
>of them were actually built with cross-compilers.  What's going on here?

"any" is a signal to dpkg-gencontrol, which should be used to build the
package, that the package can be built on _any_ architecture. "all" means
it is architecture-independant. "i386", "m68k", etc. indicate the package
can _only_ be built on those architectures.

>2.  In the [good, old] days, I used to run 
>   dpkg --print-architecture 
>in order to assure that the architecutre for a package was set correctly.
>Why doesn't deb-make do this too?

dpkg-gencontrol does this kind of thing - along with dependancy settings -
automatically.

For example, I have in libelf0 the source control file (minus the start
and finish lines, of course):

---- Start ----
Source: libelf0
Section: devel
Priority: Optional
Maintainer: Stuart Lamble <lamble@yoyo.cc.monash.edu.au>
Standards-Version: 2.1.1.0

Package: libelf0-dev
Architecture: any
Section: devel
Priority: Optional
Depends: libelf0 (=${Source-Version}), libc5-dev (>= 5.4.7)
Conflicts: libelf-dev
Replaces: libelf-dev
Description: an ELF object file access library: development files
[...]

Package: libelf0
Architecture: any
Section: devel
Priority: Optional
Conflicts: libelf
Replaces: libelf
Depends: ${shlibs:Depends}
Description: an ELF object file access library
[...]
---- Finish ----

[...] indicates snipped descriptions. dpkg-shlibs (I think - I can never
remember the name of that program) runs ldd on specified binaries,
substituting dependancy information (such as libc5 (>= 5.4)) where you
see the:

${shlibs:Depends}

in the control file. Similarly, dpkg-gencontrol will see the "any"
architecture field, and change it to the building architecture - in my
case, i386. It makes it a lot easier to rebuild packages on different
systems.

Feel free to enquire further if this confuses you.


--
TO UNSUBSCRIBE FROM THIS MAILING LIST: e-mail the word "unsubscribe" to
debian-devel-REQUEST@lists.debian.org . Trouble? e-mail to Bruce@Pixar.com


Reply to: