Bug#218893: Proposal: debian/rules.version file [Fix for the build-arch problem]

2003-11-04 Thread Andreas Metzler
On Mon, Nov 03, 2003 at 11:35:48PM +0100, Santiago Vila wrote:
 On Mon, 3 Nov 2003, Andreas Metzler wrote:
[...]
  [1] Currently this is only possible with ugliness like making
  build-indep an empty target and doing the actual expensive work in
  binary-indep,

 Some of the packages I maintain use texi2html in the binary-indep
 target (and they have texi2html in Build-Depends-Indep). Why is such
 thing an ugliness? It is because it runs under root/fakeroot or are
 there any other reason?

Personal taste. ;-) iMvho it is obviously ugly, if the makefile has
build-indep and build-arch targets, I exspect that the time-consuming
activities are done in it.

But the real ugliness is that current policy propagates implementing
build-arch and build-indep target although they are useless. I _would_
really like to see either these two targets made useful (using
something like Bill's proposal) or to abolish mentioning/suggesting
them in policy.

  or ignoring policy's recommendation to make build depend
  on build-arch and build-indep.

 Which is what I would call complexity for very little gain.

 Packages which do not benefit from a split build-arch / build-indep
 (and there are certainly a lot of packages which do not benefit)

Ack, I am completely with you. (None of mine does.)

 should continue to be allowed not to have such targets, without people
 or policy saying they are following a deprecated format or anything
 like that. Does this clarify my point?

Yes. And I agree.  I just want the existing build-arch and
build-indep target made useful.

 What about optional fields in the control file with default values:

 Build-Arch: build
 Build-Indep: build

 (and therefore may be omitted), but that can be overridden in this way?:

 Build-Arch: build-arch
 Build-Indep: build-indep

 only for packages which really need or benefit from them?

 (What I dislike is a format version, mandatory conversion of all
 packages to the new format in the long run, and all that).

That is equivalent to Bill's second proposal.

I get your point and support it.
cu andreas
-- 
See, I told you they'd listen to Reason, [SPOILER] Svfurlr fnlf,
fuhggvat qbja gur juveyvat tha.
Neal Stephenson in Snow Crash



Bug#218893: Proposal: debian/rules.version file [Fix for the build-arch problem]

2003-11-04 Thread Colin Watson
On Tue, Nov 04, 2003 at 12:32:47AM +0100, Bill Allombert wrote:
 On Tue, Nov 04, 2003 at 12:10:19AM +0100, Josip Rodin wrote:
  What mandatory conversion to the new format in the long run?
 
 As I see it: currently there is version 0 and 1. Suppose one
 day version 2 is added. Requirement for version 2 will include
 requirement for version 1. If you want to implement version 2,
 you will have to implement version 1 even if it is not useful,
 say for a Arch: all source package.
 
 However, if you don't need version 2, you can stay to version 0.
 
 As a parallel, some of my packages are still using DH_COMPAT=1
 debhelper interface, and no one is complaining.

Although I keep seeing inexperienced developers converting packages to
debhelper version 4 in NMUs. :-/ It's newer and shinier, so it must be
better, right? (And I wonder how many versioned build-deps on debhelper
go missing in the process, how many duplicate conffiles get created by
incautious moves to DH_COMPAT = 3, and so on ... there's a reason we
discourage cosmetic changes in NMUs.)

If we're adding optional features, doing so in a way that doesn't
confuse people into believing that all packages need to use them would
definitely be a good thing, I think.

Cheers,

-- 
Colin Watson  [EMAIL PROTECTED]



Bug#218893: Proposal: debian/rules.version file [Fix for the build-arch problem]

2003-11-04 Thread Josip Rodin
On Tue, Nov 04, 2003 at 12:32:47AM +0100, Bill Allombert wrote:
   (What I dislike is a format version, mandatory conversion of all
   packages to the new format in the long run, and all that).
  
  What mandatory conversion to the new format in the long run?
 
 As I see it: currently there is version 0 and 1.

I'd rather start with 1 being the current version (0 would indicate some
pre-production level, which it certainly isn't), but anyhow.

 Suppose one day version 2 is added. Requirement for version 2 will include
 requirement for version 1.

You don't necessarily know that.

-- 
 2. That which causes joy or happiness.



Bug#218893: Proposal: debian/rules.version file [Fix for the build-arch problem]

2003-11-04 Thread Joey Hess
Josip Rodin wrote:
 Well, regardless of whether we pick versions or listing available targets,
 why not do it with a new control file field in the source section?
 That seems logical, and avoids creating a new file.
 
 It's tangentially relevant that the .dsc and .changes files include a Format
 field that is a version number. Having a Rules-Format: 2 field in control
 seems okay to me.

I agree that this would be the way to go (though I'm ambivilant about
the proposal).

-- 
see shy jo


signature.asc
Description: Digital signature


Bug#218893: Proposal: debian/rules.version file [Fix for the build-arch problem]

2003-11-04 Thread Josip Rodin
On Tue, Nov 04, 2003 at 02:04:27AM +, Colin Watson wrote:
 It's newer and shinier, so it must be better, right?
 
 If we're adding optional features, doing so in a way that doesn't
 confuse people into believing that all packages need to use them would
 definitely be a good thing, I think.

I agree that this may become a problem. Can you suggest a better way?
Maybe list tags within the new field rather than using a number?

-- 
 2. That which causes joy or happiness.



Bug#218893: Alternative proposal: debian/format

2003-11-04 Thread Branden Robinson
On Mon, Nov 03, 2003 at 09:59:24AM +0100, Bill Allombert wrote:
 Choose one:
 
 The first is to add a debian/rules.version with meaning:
 debian/rules.version is present and is 1\n: build-arch and build-indep
 are implemented
 
 The second is to add a debian/rules.targets with the list of available
 optional targets.
 
 First solution is easier to implement.  Second one scale better but does not
 allow to revoke the meaning of a target.
 
 If you are going to second this proposal, please state if you prefer
 debian/rules.version or debian/rules.targets.

I like the general idea, but I prefer neither name.

Why are we attaching a versioning concept only to the rules file?

I think we should attach versioning to the entire layout of the unpacked
source package.

This gives us the flexibility to make other kinds of changes without
cluttering debian/ with still more files.

Consider a file debian/format:

$ cat debian/format
rules: 1
control: 2

The above tells dpkg that the package in question is using version 1 of
the debian/rules specification, and version 2 of the debian/control
specification.  (We could retroactively define version 2 of
debian/control as one that permits comments, for which dpkg recently
added support.)

The debian/format file can be extended arbitrarily to suit our needs.
We could change the format of a debian/changelog file with this
technique as well, if needed.

Of course, version 1 is assumed for everything in the absence of a
debian/format file.

Comments?

-- 
G. Branden Robinson|Lowery's Law:
Debian GNU/Linux   |If it jams -- force it.  If it
[EMAIL PROTECTED] |breaks, it needed replacing anyway.
http://people.debian.org/~branden/ |


signature.asc
Description: Digital signature


Bug#218893: Proposal: debian/rules.version file [Fix for the build-arch problem]

2003-11-04 Thread Bill Allombert
On Tue, Nov 04, 2003 at 06:34:23PM +0100, Josip Rodin wrote:
 On Tue, Nov 04, 2003 at 02:04:27AM +, Colin Watson wrote:
  It's newer and shinier, so it must be better, right?
  
  If we're adding optional features, doing so in a way that doesn't
  confuse people into believing that all packages need to use them would
  definitely be a good thing, I think.
 
 I agree that this may become a problem. Can you suggest a better way?
 Maybe list tags within the new field rather than using a number?

That would be a solution. Just find a tag that mean that
build-arch and build-indep are implemented, but shorter. Maybe
split_build.

And add
Build-Options: split_build
in debian/control.

Build-Options being a comma-separated lists of implemented options.

Though I start to wonder whether the original rules.targets proposal was
not cleaner.

Cheers,
-- 
Bill. [EMAIL PROTECTED]

Imagine a large red swirl here.