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

Re: A question about uploading to "frozen"



> On Wed, May 17, 2000 at 12:12:30PM -0400, Brian Mays wrote:

> > Someone please help me here.  How do I upload a new version of a
> > package to the non-free part of the frozen distribution?  If I use
> > "frozen" in the heading of the changelog entry, it will be stuck in
> > the main distribution; if I use "non-free", it will be placed in the
> > non-free section of the unstable distribution.  How do I specify
> > both "frozen" and "non-free" at the same time?

Julian Gilbey <J.D.Gilbey@qmw.ac.uk> replied:

> Read the packaging manual.

I did, and that's the problem.  I suggest that the packaging manual
needs to be changed.

> In the changelog, you state the distribution (unstable, frozen,
> stable, experimental or some combination of these).  In the
> debian/control file you state the Section: non-free/* and Priority: of
> the package.

I realize that this is the correct way of doing things, but how in the
hell do you get this from reading the packaging manual?  Here is what
the packaging manual ACTUALLY says.  I am quoting from version 3.1.1.1
of the packaging manual (dated 1999-11-22), which AFAIK is the latest
version of this document.

Here is what the packaging manual says about the the debian/changelog
file:

---------------------------------------------------------------------------
3.2.3. `debian/changelog'
-------------------------

     This file records the changes to the Debian-specific parts of the
     package [1].

     [1]  Though there is nothing stopping an author who is also the Debian
          maintainer from using it for all their changes, it will have to
          be renamed if the Debian and upstream maintainers become
          different people.

     It has a special format which allows the package building tools to
     discover which version of the package is being built and find out
     other release-specific information.

     That format is a series of entries like this:

            <package> (<version>) <distribution(s)>; urgency=<urgency>
          
             * <change details>
             <more change details>
             * <even more change details>
          
            -- <maintainer name and email address>  <date>

     <package> and <version> are the source package name and version
     number.

     <distribution(s)> lists the distributions where this version should be
     installed when it is uploaded - it is copied to the `Distribution'
     field in the `.changes' file.  See Section 4.2.14, ``Distribution''.
---------------------------------------------------------------------------

so now I need to skip to Section 4.2.14 to find out what I should use
for the "distribution".  This is what it says:

---------------------------------------------------------------------------
4.2.14. `Distribution'
----------------------

     In a `.changes' file or parsed changelog output this contains the
     (space-separated) name(s) of the distribution(s) where this version of
     the package should be or was installed.  Distribution names follow the
     rules for package names.  (See Section 4.2.1, ``Package'').

     Current distribution values are:

     _stable_
          This is the current `released' version of Debian GNU/Linux.  A
          new version is released approximately every 3 months after the
          _development_ code has been _frozen_ for a month of testing.
          Once the distribution is _stable_ only major bug fixes are
          allowed.  When changes are made to this distribution, the release
          number is increased (for example: 1.2r1 becomes 1.2r2 then 1.2r3,
          etc).

     _unstable_
          This distribution value refers to the _developmental_ part of the
          Debian distribution tree.  New packages, new upstream versions of
          packages and bug fixes go into the _unstable_ directory tree.
          Download from this distribution at your own risk.

     _contrib_
          The packages with this distribution value do not meet the
          criteria for inclusion in the main Debian distribution as defined
          by the Policy Manual, but meet the criteria for the _contrib_
          Distribution.  There is currently no distinction between stable
          and unstable packages in the _contrib_ or _non-free_
          distributions.  Use your best judgement in downloading from this
          Distribution.

     _non-free_
          Like the packages in the _contrib_ seciton, the packages in
          _non-free_ do not meet the criteria for inclusion in the main
          Debian distribution as defined by the Policy Manual.  Again, use
          your best judgement in downloading from this Distribution.

     _experimental_
          The packages with this distribution value are deemed by their
          maintainers to be high risk.  Oftentimes they represent early
          beta or developmental packages from various sources that the
          maintainers want people to try, but are not ready to be a part of
          the other parts of the Debian distribution tree.  Download at
          your own risk.

     _frozen_
          From time to time, (currently, every 3 months) the _unstable_
          distribution enters a state of `code-freeze' in anticipation of
          release as a _stable_ version.  During this period of testing
          (usually 4 weeks) only fixes for existing or newly-discovered
          bugs will be allowed.

     You should list _all_ distributions that the package should be
     installed into.  Except in unusual circumstances, installations to
     _stable_ should also go into _frozen_ (if it exists) and _unstable_.
     Likewise, installations into _frozen_ should also go into _unstable_.
---------------------------------------------------------------------------

Therefore, according to the packaging manual, I should be using
"non-free" as the distribution in the changelog.  But the correct way to
do this, as Julian Gilbey has pointed out, is to specify "non-free" in
the "Section" field of the debian/control file.  Let's see what the
packaging manual says about this field.  It is covered in Section 4.2.9:

---------------------------------------------------------------------------
4.2.9. `Section' and `Priority'
-------------------------------

     These two fields classify the package.  The `Priority' represents how
     important that it is that the user have it installed; the `Section'
     represents an application area into which the package has been
     classified.

     When they appear in the `debian/control' file these fields give values
     for the section and priority subfields of the `Files' field of the
     `.changes' file, and give defaults for the section and priority of the
     binary packages.

     The section and priority are represented, though not as separate
     fields, in the information for each file in the `-File'field of a
     `.changes' file.  The section value in a `.changes' file is used to
     decide where to install a package in the FTP archive.

     These fields are not used by by `dpkg' proper, but by `dselect' when
     it sorts packages and selects defaults.  See the Debian policy manual
     for the priorities in use and the criteria for selecting the priority
     for a Debian package, and look at the Debian FTP archive for a list of
     currently in-use priorities.

     These fields may appear in binary package control files, in which case
     they provide a default value in case the `Packages' files are missing
     the information.  `dpkg' and `dselect' will only use the value from a
     `.deb' file if they have no other information; a value listed in a
     `Packages' file will always take precedence.  By default
     `dpkg-genchanges' does not include the section and priority in the
     control file of a binary package - use the `-isp', `-is' or `-ip'
     options to achieve this effect.
---------------------------------------------------------------------------

Very interesting.  This section does not mention that "contrib" or
"non-free" should be specified in the "Section" field, in fact, unlike
Section 4.2.14 on "Distribution", it doesn't even mention these words at
all.  So again I ask: how am I supposed to know the correct way of doing
things from this document?

Thank you very much for your help.

- Brian



Reply to: