Bug#740883: dpkg-source -x regression: version number does not start with digit

2014-03-28 Thread Stefano Zacchiroli
On Fri, Mar 28, 2014 at 04:33:40AM +0100, Guillem Jover wrote:
 I'm just guessing those sources where created and extracted manually,
 probably around the time when the “new source format” got introduced,
 and where maintainers might have not switched to the new tools yet.
 
   
 http://archive.debian.org/debian/dists/Debian-1.2/main/source/README.source-unpack
 
 I'm a bit wary of adding a force option, even if only for format 1.0,
 to allow something that was never allowed in the first place, also
 taking into account there's source packages in ancient releases that
 are in the old format that dpkg-source does not know either. Given
 the above, in principle I'm tending towards not adding such an option
 to allow wrong fuzz, but I'll still ponder about this one for a bit.

I see, and I understand your reasoning / concern.

FWIW (and of very marginal importance) for my specific sources.d.n use
case I'll have to add manual extraction of very old source packages
anyhow, so making it work also for broken .dsc is not a big deal.

More to the point, I guess the question you need to ask/answer yourself
is what is the intended semantics of dpkg-source -x. Is it the tool
meant to be able to extract all source packages that have ever been
generated following the documented Debian source formats?  Or rather is
it the tool meant to be able to extract all valid (for a notion of
valid that, as we have seen, have drifted over time) Debian source
packages that have ever existed in Debian releases?  Picking one gives
an answer to the more specific question of adding or not a --force flag.

Thanks for your time on this,
Cheers.
-- 
Stefano Zacchiroli  . . . . . . .  z...@upsilon.cc . . . . o . . . o . o
Maître de conférences . . . . . http://upsilon.cc/zack . . . o . . . o o
Former Debian Project Leader  . . @zack on identi.ca . . o o o . . . o .
« the first rule of tautology club is the first rule of tautology club »


signature.asc
Description: Digital signature


Bug#740883: dpkg-source -x regression: version number does not start with digit

2014-03-27 Thread Guillem Jover
On Wed, 2014-03-05 at 22:27:21 +0100, Guillem Jover wrote:
 On Wed, 2014-03-05 at 20:01:29 +0100, Stefano Zacchiroli wrote:
  There seems to be at least two other failure causes:
  
  - patches not applying cleanly, e.g.:
  
dpkg-source: error: LC_ALL=C patch -t -F 0 -N -p1 -u -V never -g0 -b -z 
  .dpkg-orig  ./rx_1.5-6.diff.gz gave error exit status 1
can't find file to patch at input line 3
  
(from 
  http://people.debian.org/~zack/dpkg-source-x-regression/unextractable-dsc/2.2-potato/rx_1.5-6.dsc.log)
 
 I'm checking when this regressed.

Ok, this is due to the fuzz level (-F 0), but strictly speaking this
never regressed in dpkg-source, as it has used that option since its
introduction in dpkg 1.3.0 (pre-rex Debian 1.2).

  
http://anonscm.debian.org/gitweb/?p=dpkg/dpkg.git;a=commit;h=a9fe21f068524faa2e32a76c412a29371bba08da

I'm just guessing those sources where created and extracted manually,
probably around the time when the “new source format” got introduced,
and where maintainers might have not switched to the new tools yet.

  
http://archive.debian.org/debian/dists/Debian-1.2/main/source/README.source-unpack

I'm a bit wary of adding a force option, even if only for format 1.0,
to allow something that was never allowed in the first place, also
taking into account there's source packages in ancient releases that
are in the old format that dpkg-source does not know either. Given
the above, in principle I'm tending towards not adding such an option
to allow wrong fuzz, but I'll still ponder about this one for a bit.

Guillem


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#740883: dpkg-source -x regression: version number does not start with digit

2014-03-06 Thread Stefano Zacchiroli
Hi Guillem, thanks for your quick reply,

On Wed, Mar 05, 2014 at 10:27:21PM +0100, Guillem Jover wrote:
  I've collected the packages that can no longer be extract (without 
  returning a
  0 exit code, at least) and made them available here:
  
http://people.debian.org/~zack/dpkg-source-x-regression/

I've now completed the extraction of all releases on archive.d.o and
updated the content of the above URL. There is probably no need for you
to check again, though, only one extra package from Lenny has been
added, and it's again cnews (in a newer version), which cannot be
extract due to the version number does not start with digit error.

dpkg-source: error: version number does not start with digit
 Hmm, yeah this type of sanity check should not really be applied on
 extractors, at least w/o a way to override. I'm fixing this for dpkg
 1.17.7.

Thanks. If the patch is available somewhere, I'll be happy to cherry
pick it for sources.d.n (which is running on Wheezy, i.e. dpkg 1.16.12)
and give it a try.

  - patches not applying cleanly, e.g.:
  
dpkg-source: error: LC_ALL=C patch -t -F 0 -N -p1 -u -V never -g0 -b -z 
  .dpkg-orig  ./rx_1.5-6.diff.gz gave error exit status 1
can't find file to patch at input line 3
 
 I'm checking when this regressed.

Great. FWIW I'm not entirely sure that this, and the subsequent one, are
actually regression at the dpkg-source level. It might also be the case
that we did release sources that weren't extractable at release time.

 If this is due to a change in gzip, then that's something to be dealt
 in gzip. If the a previous gzip produced bogus data, then I'd rather
 not workaround that in dpkg-source. If this had been a warning (exit
 code 2, instead of 1), then I'd be fine changing dpkg-source to ignore
 gzip warnings, but certainly not if gzip considers it an error.

Fair enough.

Cheers.
-- 
Stefano Zacchiroli  . . . . . . .  z...@upsilon.cc . . . . o . . . o . o
Maître de conférences . . . . . http://upsilon.cc/zack . . . o . . . o o
Former Debian Project Leader  . . @zack on identi.ca . . o o o . . . o .
« the first rule of tautology club is the first rule of tautology club »


signature.asc
Description: Digital signature


Bug#740883: dpkg-source -x regression: version number does not start with digit

2014-03-05 Thread Stefano Zacchiroli
Package: dpkg-dev
Version: 1.17.6
Severity: normal
File: /usr/bin/dpkg-source

While injecting historical Debian releases from archive.debian.org into
sources.debian.net, I've stumbled upon old source packages that can no longer
be extracted using dpkg-source -x. I believe this is unfortunate, and that
preserving the ability to extract all previously released source packages would
be nice.

I've collected the packages that can no longer be extract (without returning a
0 exit code, at least) and made them available here:

  http://people.debian.org/~zack/dpkg-source-x-regression/

A quick overview of what's in there:

- the .txt is an index of .dsc that cannot be extracted (the path mentioned in
  there is local, but can be easily mapped to the file structure of
  archive.d.o)

- the .tar contains the same content of the dir unextractable-dsc for easier
  download

- the dir itself is organized per-release and contains in a flat structure the
  source packages + a .log file for each of them with the captured output of
  dpkg-source -x --no-check DSC_FILE


The most common (and likely the only real bug) offendere is like this:

  dpkg-source: error: version number does not start with digit
  dpkg-source: info: extracting cnews in cnews-cr.g7

  (from 
http://people.debian.org/~zack/dpkg-source-x-regression/unextractable-dsc/2.1-slink/cnews_cr.g7-12.1.dsc.log)

there are currently 25 packages that cannot be extracted for that reason (I'm
still extracting lenny, but I suspect that would add 1-2 extra packages max;
I'll update my archive on people.d.o when done). This seems to be due to the
extra check introduced in (thanks Cyril Brulebois for finding it):

  
http://anonscm.debian.org/gitweb/?p=dpkg/dpkg.git;a=commitdiff;h=0cacb0c3a1d1f837c957f3917a040ace6d60f9e7

I haven't yet tried reverting the commit and redoing the extraction.


There seems to be at least two other failure causes:

- patches not applying cleanly, e.g.:

  dpkg-source: error: LC_ALL=C patch -t -F 0 -N -p1 -u -V never -g0 -b -z 
.dpkg-orig  ./rx_1.5-6.diff.gz gave error exit status 1
  can't find file to patch at input line 3

  (from 
http://people.debian.org/~zack/dpkg-source-x-regression/unextractable-dsc/2.2-potato/rx_1.5-6.dsc.log)

- corrupted .gz file (the .diff.gz, by the look ofit), e.g.:

  dpkg-source: info: applying xfaces_3.3-14.diff.gz

  gzip: stdin: unexpected end of file
  dpkg-source: error: gunzip gave error exit status 1

  (from 
http://people.debian.org/~zack/dpkg-source-x-regression/unextractable-dsc/2.2-potato/xfaces_3.3-14.dsc.log)

These might be genuine source packages bug that we let flow into old releases
--- I haven't checked yet.  But if OTOH they are due to changes in, say, gzip,
it'd be nice to have a way for dpkg-source to cope with these too, and preserve
the ability to extract ancient packages.


... and thanks a bunch for maintaining dpkg!
Cheers.

-- System Information:
Debian Release: jessie/sid
  APT prefers testing
  APT policy: (500, 'testing'), (500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.12-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages dpkg-dev depends on:
ii  base-files7.2
ii  binutils  2.24-3
ii  bzip2 1.0.6-5
ii  libdpkg-perl  1.17.6
ii  make  3.81-8.3
ii  patch 2.7.1-4
ii  xz-utils  5.1.1alpha+20120614-2

Versions of packages dpkg-dev recommends:
ii  build-essential  11.6
ii  fakeroot 1.19-2
ii  gcc [c-compiler] 4:4.8.2-2
ii  gcc-4.6 [c-compiler] 4.6.4-5
ii  gcc-4.7 [c-compiler] 4.7.3-11
ii  gcc-4.8 [c-compiler] 4.8.2-16
ii  gnupg1.4.16-1.1
ii  gnupg2   2.0.22-3
ii  gpgv 1.4.16-1.1
ii  libalgorithm-merge-perl  0.08-2

Versions of packages dpkg-dev suggests:
ii  debian-keyring  2014.01.31

-- no debconf information


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#740883: dpkg-source -x regression: version number does not start with digit

2014-03-05 Thread Guillem Jover
On Wed, 2014-03-05 at 20:01:29 +0100, Stefano Zacchiroli wrote:
 Package: dpkg-dev
 Version: 1.17.6
 Severity: normal
 File: /usr/bin/dpkg-source

 While injecting historical Debian releases from archive.debian.org into
 sources.debian.net, I've stumbled upon old source packages that can no longer
 be extracted using dpkg-source -x. I believe this is unfortunate, and that
 preserving the ability to extract all previously released source packages 
 would
 be nice.

This should be considered a bug, yes.

 I've collected the packages that can no longer be extract (without returning a
 0 exit code, at least) and made them available here:
 
   http://people.debian.org/~zack/dpkg-source-x-regression/

Thanks.

 The most common (and likely the only real bug) offendere is like this:
 
   dpkg-source: error: version number does not start with digit
   dpkg-source: info: extracting cnews in cnews-cr.g7
 
   (from 
 http://people.debian.org/~zack/dpkg-source-x-regression/unextractable-dsc/2.1-slink/cnews_cr.g7-12.1.dsc.log)
 
 there are currently 25 packages that cannot be extracted for that reason (I'm
 still extracting lenny, but I suspect that would add 1-2 extra packages max;
 I'll update my archive on people.d.o when done). This seems to be due to the
 extra check introduced in (thanks Cyril Brulebois for finding it):
 
   
 http://anonscm.debian.org/gitweb/?p=dpkg/dpkg.git;a=commitdiff;h=0cacb0c3a1d1f837c957f3917a040ace6d60f9e7
 
 I haven't yet tried reverting the commit and redoing the extraction.

Hmm, yeah this type of sanity check should not really be applied on
extractors, at least w/o a way to override. I'm fixing this for dpkg
1.17.7.

 There seems to be at least two other failure causes:
 
 - patches not applying cleanly, e.g.:
 
   dpkg-source: error: LC_ALL=C patch -t -F 0 -N -p1 -u -V never -g0 -b -z 
 .dpkg-orig  ./rx_1.5-6.diff.gz gave error exit status 1
   can't find file to patch at input line 3
 
   (from 
 http://people.debian.org/~zack/dpkg-source-x-regression/unextractable-dsc/2.2-potato/rx_1.5-6.dsc.log)

I'm checking when this regressed.

 - corrupted .gz file (the .diff.gz, by the look ofit), e.g.:
 
   dpkg-source: info: applying xfaces_3.3-14.diff.gz
 
   gzip: stdin: unexpected end of file
   dpkg-source: error: gunzip gave error exit status 1
 
   (from 
 http://people.debian.org/~zack/dpkg-source-x-regression/unextractable-dsc/2.2-potato/xfaces_3.3-14.dsc.log)

 These might be genuine source packages bug that we let flow into old releases
 --- I haven't checked yet.  But if OTOH they are due to changes in, say, gzip,
 it'd be nice to have a way for dpkg-source to cope with these too, and 
 preserve
 the ability to extract ancient packages.

If this is due to a change in gzip, then that's something to be dealt
in gzip. If the a previous gzip produced bogus data, then I'd rather not
workaround that in dpkg-source. If this had been a warning (exit code
2, instead of 1), then I'd be fine changing dpkg-source to ignore gzip
warnings, but certainly not if gzip considers it an error.

Guillem


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org