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

Bug#994008: debian-policy: Clarify relationship between source and binary packages' archive areas



On Fri, Oct 29, 2021 at 10:51:44AM +0100, Simon McVittie wrote:
> Here are some updated patches for Policy, incorporating this requirement.

thanks for your work on this, Simon.
 
> I have not attempted to incorporate the corner case involving
> build-profiles. I think if we were going to do that, it would require
> documenting build-profiles first (#757760), and maybe even then it's too
> much of a corner-case to be documenting unless/until it actually happens.

sounds good.

> From a332e4e787837cac0856c9c36d6e87e9f19197e2 Mon Sep 17 00:00:00 2001
> From: Simon McVittie <smcv@debian.org>
> Date: Thu, 9 Sep 2021 15:43:20 +0100
> Subject: [PATCH 1/2] archive: Point out that mixed main/contrib source
>  packages can exist
> 
> Most source packages produce only binary packages in the same archive
> area, but a few source packages in main (such as bumblebee) produce
> a mixture of main and contrib binary packages.
> 
> If an upstream project is in this situation (for example a program with
> optional plugins that have non-free dependencies) it isn't entirely
> obvious how to package it; clarify that a single source package in main
> is considered to be appropriate in this case, as long as no non-free
> build-dependencies are required.
> 
> Signed-off-by: Simon McVittie <smcv@debian.org>
> Closes: #994008
> ---
>  policy/ch-archive.rst | 21 +++++++++++++++++++++
>  1 file changed, 21 insertions(+)
> 
> diff --git a/policy/ch-archive.rst b/policy/ch-archive.rst
> index ab04261..3d40f55 100644
> --- a/policy/ch-archive.rst
> +++ b/policy/ch-archive.rst
> @@ -130,6 +130,27 @@ In addition, the packages in *main*
>  
>  - must meet all policy requirements presented in this manual.
>  
> +If a source package is in the *main* archive area, then at least one of
> +the binary packages that it produces must be in the *main* archive area,
> +and each of the remaining packages must be in either the *main* or *contrib*
> +archive area. Each binary package's archive area is indicated by its
> +``Section`` field: see :ref:`s-subsections`.
> +
> +Source packages in *main* with a mixture of *main* and *contrib* binary
> +packages should be limited to situations where it would be inconvenient
> +to split the source package. If it is straightforward to split the source
> +package into a *main* part and a *contrib* part that are compiled
> +separately, then those parts should be represented as separate source
> +packages.
> +
> +When a *main* source package has a mixture of *main* and *contrib*
> +binary packages, the source package and the *main* binary packages must
> +follow the requirements for *main* packages, but the *contrib* binary
> +packages may follow the weaker requirements for *contrib* packages.
> +In particular, build-dependencies outside *main* are not allowed in
> +these source packages, but the *contrib* binary packages may have runtime
> +dependencies outside *main*.
> +
>  .. _s-contrib:
>  
>  The contrib archive area
> -- 
> 2.33.1

seconded.

maybe it would be better to replace 'complied' with 'build' in the patch
above? Obviously I'd also second this patch with that replacement...


> From 14cd80454fc2ef8122315a1edcc05eed43106583 Mon Sep 17 00:00:00 2001
> From: Simon McVittie <smcv@debian.org>
> Date: Thu, 9 Sep 2021 15:53:20 +0100
> Subject: [PATCH 2/2] archive: Clarify binaries produced by contrib and
>  non-free source
> 
> A source package outside main cannot produce main binary packages, because
> we want main to be self-contained: if you download all main source
> packages, that should give you the source code of all main binary
> packages.
> 
> A source package in contrib cannot produce non-free binary packages,
> because by definition contrib only contains free software (with non-free
> dependencies, but those are not part of the source code).
> 
> A source package in non-free cannot produce contrib binary packages,
> because we want main + contrib to be self-contained: if you download
> all main or contrib source packages, that should give you the source
> code of all main and contrib binary packages.
> 
> Signed-off-by: Simon McVittie <smcv@debian.org>
> ---
>  policy/ch-archive.rst | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/policy/ch-archive.rst b/policy/ch-archive.rst
> index 3d40f55..0979d87 100644
> --- a/policy/ch-archive.rst
> +++ b/policy/ch-archive.rst
> @@ -177,6 +177,10 @@ Examples of packages which would be included in *contrib* are:
>  -  wrapper packages or other sorts of free accessories for non-free
>     programs.
>  
> +If a source package is in the *contrib* archive area, then each of the
> +binary packages that it produces must also be in the *contrib* archive
> +area.
> +
>  .. _s-non-free:
>  
>  The non-free archive area
> @@ -199,6 +203,10 @@ In addition, the packages in *non-free*
>  -  must meet all policy requirements presented in this manual that it is
>     possible for them to meet.  [#]_
>  
> +If a source package is in the *non-free* archive area, then each of the
> +binary packages that it produces must also be in the *non-free* archive
> +area.
> +
>  .. _s-pkgcopyright:
>  
>  Copyright considerations
> -- 
> 2.33.1

seconded as well.


-- 
cheers,
	Holger

 ⢀⣴⠾⠻⢶⣦⠀
 ⣾⠁⢠⠒⠀⣿⡁  holger@(debian|reproducible-builds|layer-acht).org
 ⢿⡄⠘⠷⠚⠋⠀  OpenPGP: B8BF54137B09D35CF026FE9D 091AB856069AAA1C
 ⠈⠳⣄

Kinda weird that we’re all gonna experience climate change as a series of
short, apocalyptic videos until eventually it’s your phone that’s recording.
(@shocks)

Attachment: signature.asc
Description: PGP signature


Reply to: