NMUs of native packages have always seemed sorta strange to me, and I think
I've figured out why as I was painting a room. Painting is a great way to
think, since you already are in a frame of mind that avoids painting yourself
into corners. ;-)

Many native packages are not Debian-specifc software, but instead
debian-originated software (examples: dpkg, apt). Other unrelated distros
might choose to use native Debian software. Just because it's
debian-originated software, doesn't mean that the project as a whole is its
"upsteam" maintainer though. Its Debian maintainer is the only upstream
maintainer. So shouldn't he be the only one who releases new tarballs of the
software?

The developer's reference doesn't specify whether a NMU of a native
package should include a release of a new tarball, or not. I suspect that
if NMUed native packages in the archive are checked, some of the uploads
will have included a -0.1.tar.gz, and some will have included a -0.1.diff.gz.
dpkg-source can generate either depending on what tarballs are present before
the build.

Releasing a new tarball of a native package via an NMU is especially
problimatic since the package might have its own website, mailing lists, and
release procedures outside of Debian. So why do it when a .diff.gz can be
released instead? And if a native package changes to having a .diff.gz and a
version number with a dash, why consider it native anymore? Indeed, linda
doesn't, warning "Package switches from native to non-native version 
number." [1]

We could do away with the concept of NMUs of native software, and do away
with this uncertanty, ambiguity, bugginess, etc. Simply say that when a
NMU of a native package is done, the package stops being native in
Debian (until the next maintainer upload, presumably). So the NMU adds
"-0.1" to the version number, like any NMU. The .orig.tar.gz from the
maintainer's last release is kept in the archive, with a .diff.gz added
that conveniently contains only the NMU's changes. Since it's not a native
package, it will be correct for the changelog to be installed as
changelog.Debian.gz, and correct for the version number to contain a dash.

It's even possible to interpret what the developer's reference says in
this light. After all, it says that the NMU should add "-0.1" to the version
number. But it doesn't say that this means that the package is still native!

-- 
see shy jo

[1] Note that linda is another in the set of tools that
    consider a version number with a dash in it to be non-native..

        def is_native(self):
        native = False
        if not self.revision:
            native = True
        return native

Attachment: signature.asc
Description: Digital signature

Reply via email to