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

Re: Bug#758234: debian-policy: allow packages to depend on packages of lower priority



Ansgar Burchardt <ansgar@debian.org> writes:

> I discussed this a bit on IRC with the other ftp-masters and we came to
> this summary:

> 0) We would like to drop the requirement for packages to not depend on
>    packages of lower priority: it is better to declare only what we
>    actually want included in the installation (that is at priority >=
>    standard) rather than also the dependency closure.

> 1) We agree that the 'extra' priority can be dropped.

> 2) We wonder if the 'standard' priority can also be dropped: as far as
>    we know, it is used only by the "standard" task and it might make
>    sense to treat it the same as other tasks.
>    (Depending on what works better for the installer team.)

Given KiBi's reply, I'll leave 2 out for now.

Given the necessary wording changes, I don't think we can separate 0 and 1
very easily, so I'll just propose wording for both (even though we forked
the Policy bugs into two).  Here's a wording proposal based on Adam
Borowski's wording with a bit of (hopefully correct) tightening.

Note that this also says that no two packages that both have a priority of
standard or higher may conflict.  I think that's a logical consequence of
the use of priorities, and didn't want to lose that completely when that
requirement was dropped from optional.

diff --git a/policy.xml b/policy.xml
index ace6a3b..be458cd 100644
--- a/policy.xml
+++ b/policy.xml
@@ -837,11 +837,33 @@
       <title>Priorities</title>
 
       <para>
-        Each package should have a <emphasis>priority</emphasis> value,
-        which is included in the package's <emphasis>control
-        record</emphasis> (see <xref linkend="s-f-Priority"/>).  This
-        information is used by the Debian package management tools to
-        separate high-priority packages from less-important packages.
+        Each package must have a <emphasis>priority</emphasis> value,
+        which is set in the metadata for the Debian archive and is also
+        included in the package's control files (see <xref
+        linkend="s-f-Priority"/>).  This information is used to control
+        which packages are included in standard or minimal Debian
+        installations.
+      </para>
+      <para>
+        Most Debian packages will have a priority of
+        <literal>optional</literal>.  Priority levels other than
+        <literal>optional</literal> are only used for packages that should
+        be included by default in a standard installation of Debian.
+      </para>
+      <para>
+        The priority of a package is determined solely by the
+        functionality it provides directly to the user.  The priority of a
+        package should not be increased merely because another
+        higher-priority package depends on it; instead, the tools used to
+        construct Debian installations will correctly handle package
+        dependencies.  In particular, this means that C-like libraries
+        will almost never have a priority above
+        <literal>optional</literal>, since they do not provide
+        functionality directly to users.  However, as an exception, the
+        maintainers of Debian installers may request an increase of the
+        priority of a package to resolve installation issues and ensure
+        that the correct set of packages is included in a standard or
+        minimal install.
       </para>
       <para>
         The following <emphasis>priority levels</emphasis> are recognized
@@ -896,19 +922,22 @@
               installed by default if the user doesn't select anything
               else.  It doesn't include many large applications.
             </para>
+            <para>
+              No two packages that both have a priority of
+              <literal>standard</literal> or higher may conflict with each
+              other.
+            </para>
           </listitem>
         </varlistentry>
         <varlistentry>
           <term><literal>optional</literal></term>
           <listitem>
             <para>
-              (In a sense everything that isn't required is optional, but
-              that's not what is meant here.) This is all the software
-              that you might reasonably want to install if you didn't know
-              what it was and don't have specialized requirements.  This
-              is a much larger system and includes the X Window System, a
-              full TeX distribution, and many applications.  Note that
-              optional packages should not conflict with each other.
+              This is the default priority for the majority of the
+              archive.  Unless a package should be installed by default on
+              standard Debian systems, it should have a priority of
+              <literal>optional</literal>.  Packages with a priority of
+              <literal>optional</literal> may conflict with each other.
             </para>
           </listitem>
         </varlistentry>
@@ -916,22 +945,21 @@
           <term><literal>extra</literal></term>
           <listitem>
             <para>
-              This contains all packages that conflict with others with
-              required, important, standard or optional priorities, or are
-              only likely to be useful if you already know what they are
-              or have specialized requirements (such as packages
-              containing only detached debugging symbols).
+              <emphasis>This priority is deprecated.</emphasis>  Use the
+              <literal>optional</literal> priority instead.
+            </para>
+            <para>
+              The <literal>extra</literal> priority was previously used
+              for packages that conflicted with other packages and
+              packages that were only likely to be useful to people with
+              specialized requirements.  However, this distinction was
+              somewhat arbitrary, not consistently followed, and not
+              useful enough to warrant the maintenance effort.
             </para>
           </listitem>
         </varlistentry>
       </variablelist>
-      <para>
-        Packages must not depend on packages with lower priority values
-        (excluding build-time dependencies).  In order to ensure this, the
-        priorities of one or more packages may need to be adjusted.
-      </para>
     </section>
-
   </chapter>
 
   <chapter id="ch-binary">

-- 
Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>


Reply to: