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

Bug#345619: debian-policy: 4.8. binary-{arch, indep} should fail with error code 2 -> must



On Thu, Jan 05, 2006 at 11:23:43AM +0100, Bill Allombert wrote:
> Before going farther, I strongly recommends you read the
> bug log for #218893.

Good to see that this has been discussed before.

IMHO the sanest thing would be to make build-{arch,indep} goals
mandatory.  It would make build-arch target useful for buildds and is
the most robust and simplest of the solutions I've seen so far.  An
added benefit would be to have all the build targets be symmetrical
with the binary targets.

The obvious con of the change would be the transition required.  But,
as the effects of the change would only touch infrastructure invisible
to users, I don't see a need to set any deadlines for this transition
to happen.  I'd propose the following change, let the transition
happen on its own pace, and if it ever seems to be close to
completion, change the policy to reflect that.

IMHO that last "must" part would be justified too.  There's no robust
way of checking for the targets' presence right now.

Would there be a need to state explicitly that packages may implement
build-{arch,indep} by depending on build target?  The main issue is to
get those targets in there, not to optimize builds for every package.

--- policy.sgml	2006-01-05 23:32:04.000000000 +0200
+++ policy.sgml.new	2006-01-05 23:40:34.659324743 +0200
@@ -1839,21 +1839,21 @@
 	      </p>
 	    </item>
 
-	    <tag><tt>build-arch</tt> (optional),
-		 <tt>build-indep</tt> (optional)
+	    <tag><tt>build-arch</tt>,
+		 <tt>build-indep</tt>
 	    </tag>
 	    <item>
 	      <p>
-		A package may also provide both of the targets
+		A package should also provide both of the targets
 		<tt>build-arch</tt> and <tt>build-indep</tt>.
-		The <tt>build-arch</tt> target, if provided, should
+		The <tt>build-arch</tt> target should
 		perform all the configuration and compilation required
 		for producing all architecture-dependant binary packages
 		(those packages for which the body of the
 		<tt>Architecture</tt> field in <tt>debian/control</tt>
 		is not <tt>all</tt>).
-		Similarly, the <tt>build-indep</tt> target, if
-		provided, should perform all the configuration and
+		Similarly, the <tt>build-indep</tt> target
+		should perform all the configuration and
 		compilation required for producing all
 		architecture-independent binary packages
 		(those packages for which the body of the
@@ -1865,12 +1865,9 @@
 	      </p>
 
 	      <p>
-		If one or both of the targets <tt>build-arch</tt> and
-		<tt>build-indep</tt> are not provided, then invoking
-		<file>debian/rules</file> with one of the not-provided
-		targets as arguments should produce a exit status code
-		of 2.  Usually this is provided automatically by make
-		if the target is missing.
+	        Not having <tt>build-arch</tt> and
+	        <tt>build-indep</tt> is deprecated.  Programs must
+	        not depend on having these targets available.
 	      </p>
 
 	      <p>



Reply to: