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: