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

Re: flow of things rules/debhelper (still confused)



On Wed, Apr 07, 2010 at 06:48:26PM +0200, Jan Hauke Rahm wrote:
> Well, this is just wrong. As you can find in Debian Policy, the binary
> target has to depend on binary-arch and -indep which is not provided
> here. There isn't much to document. It's standard Makefile behavior.

Excuse me.  I can not find this assertion.  Could you elabarate where
you find this? I find following in 4.9 Main building script: debian/rules:

> binary, binary-arch, binary-indep
> 
>     The binary target must be all that is necessary for the user to build the
> binary package(s) produced from this source package. It is split into two
> parts: binary-arch builds the binary packages which are specific to a
> particular architecture, and binary-indep builds those which are not. 

Although pedantic, "It is split into" is not "It depends on". dh synatx
realize this without using make rule dependency, as I understand.

How this binary target functionality is split is not dictated by the Policy.

> As a matter of fact, I find the dh7 syntax very confusing for beginners
> (espacially for those unfamiliar with Makefiles). The NMG should cover a
> more detailed debian/rules to explain how it works. The dh7 stuff is
> just sugar code on top of it *after* understanding how the build process
> really works. But I admit I never really cared about that guide.

Actually, Polycy has been improved but still confusing too.  
http://www.debian.org/doc/debian-policy/ch-relationships.html#s-sourcebinarydeps
In this: 7.7 Relationships between source  ...

> The dependencies and conflicts they define must be satisfied (as defined
> earlier for binary packages) in order to invoke the targets in debian/rules, as
> follows:[43]
> 
> Build-Depends, Build-Conflicts
> 
>     The Build-Depends and Build-Conflicts fields must be satisfied when any of
> the following targets is invoked: build, clean, binary, binary-arch,
> build-arch, build-indep and binary-indep.
> 
> Build-Depends-Indep, Build-Conflicts-Indep
> 
>     The Build-Depends-Indep and Build-Conflicts-Indep fields must be satisfied
> when any of the following targets is invoked: build, build-indep, binary and
> binary-indep.

It does not tell us Build-Depends-Indep does not need to list ones listed in
Build-Depends (although this is waht we expects and seems to be true by reading
dpkg-buildpackage and dpkg-checkbuilddeps, without this exclusion rule,
Build-Depends-Indep becomes very long one.)

We really need to read dpkg-buildpackage and dpkg-checkbuilddepsto understand
what exactly is going on.  Anyway, these are De Facto standard which we can
rely better than Policy.

Any improvement suggestion on maint-guide are welcome.  Please file bugs :-)
 
Osamu


Reply to: