Hi!

On Wed, 2020-12-02 at 07:16:52 +0300, Anatoli Babenia wrote:
> Package: dpkg-dev
> Version: 1.19.7
> Severity: normal
> File: /usr/bin/dpkg-source

> It would help greatly if `dpkg-source` reported native or non-native
> package type.
> 
>     -dpkg-source: info: using source format '1.0'
>     +dpkg-source: info: using non-native source format '1.0'

While I think something like this would be nice, unfortunately I'm afraid
this cannot be done right now, because there are still package at least
in Debian that have a mismatched version format compared to their source
format. See:

  <https://lintian.debian.org/tags/malformed-debian-changelog-version>

For most of which I've filed bug reports, see:

  
<https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=dpkg-mismatch-source-vs-version-format;users=debian-d...@lists.debian.org>

Unfortunately there are a couple of maintainers that refuse to fix these
problems, so we cannot currently have coherent semantics. :(

> There is no information about native vs non-native format in this wiki page
> https://wiki.debian.org/Packaging/SourcePackage
> 
> Mentors FAQ explains it in a lot of detail, but still hard to understand.
> https://wiki.debian.org/DebianMentorsFaq#What_is_the_difference_between_a_native_Debian_
> package_and_a_non-native_package.3F

The dpkg-source man page contains documentation about the various
formats:

  <https://manpages.debian.org/dpkg-source>

> `dpkg-source` code does explain the logic either. Detection of source format
> relies on checking command line flags, and it does not make sense to me.
> 
>     my $v = Dpkg::Version->new($self->{fields}->{'Version'});
>     if ($sourcestyle =~ m/[kpursKPUR]/) {
>         error(g_('non-native package version does not contain a revision'))
>             if $v->is_native();
>     } else {
>         # FIXME: This will become fatal in the near future.
>         warning(g_('native package version may not have a revision'))
>             unless $v->is_native();
>     }
> 
> https://salsa.debian.org/dpkg-team/dpkg/-/blob/09c9e02046f18f02bf3c3c2533bc557abfdc828c/scripts/Dpkg/Source/Package/V1.pm#L355
> 
> It would be nice to see a reference algorithm that detects different package
> types. It would help people like me to troubleshoot issues with Debian
> packaging faster.

It would be nice, and I've been trying to get there, but see above.

Thanks,
Guillem

Reply via email to