Your message dated Thu, 10 Aug 2017 16:23:59 -0400
with message-id <20170810202359.rqrvme4blhccb...@x260.cruise.homelinux.net>
and subject line Re: Bug#837547: pristine-tar commit fails if tarball contains 
German umlauts
has caused the Debian Bug report #837547,
regarding pristine-tar commit fails if tarball contains German umlauts
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
837547: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=837547
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: pristine-tar
Version: 1.37
Severity: important

Dear Maintainer,

I need to commit a tarball that is containing content with German
umlauts within the kicad source package.

The following error message is displayed while running pristine-tar:

carsten@stretch:~/gitprojects/kicad [debian/sid] $ pristine-tar commit 
../kicad_4.0.4+dfsg1.orig-libraries.tar.xz
tar: 
libraries/Shielding_Cabinets.pretty/W\303\274rth_36503505_50x50mm.kicad_mod: 
Cannot stat: No such file or directory
tar: 
libraries/Shielding_Cabinets.pretty/W\303\274rth_36503605_60x60mm.kicad_mod: 
Cannot stat: No such file or directory
tar: 
libraries/Shielding_Cabinets.pretty/W\303\274rth_36103605_60x60mm.kicad_mod: 
Cannot stat: No such file or directory
tar: 
libraries/Shielding_Cabinets.pretty/W\303\274rth_36103305_30x30mm.kicad_mod: 
Cannot stat: No such file or directory
tar: 
libraries/Shielding_Cabinets.pretty/W\303\274rth_36103255_25x25mm.kicad_mod: 
Cannot stat: No such file or directory
tar: 
libraries/Shielding_Cabinets.pretty/W\303\274rth_36503255_25x25mm.kicad_mod: 
Cannot stat: No such file or directory
tar: 
libraries/Shielding_Cabinets.pretty/W\303\274rth_36103505_50x50mm.kicad_mod: 
Cannot stat: No such file or directory
tar: 
libraries/Shielding_Cabinets.pretty/W\303\274rth_36503205_20x20mm.kicad_mod: 
Cannot stat: No such file or directory
tar: 
libraries/Shielding_Cabinets.pretty/W\303\274rth_36103205_20x20mm.kicad_mod: 
Cannot stat: No such file or directory
tar: 
libraries/Shielding_Cabinets.pretty/W\303\274rth_36503305_30x30mm.kicad_mod: 
Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
pristine-tar: command failed: tar cf 
/tmp/pristine-tar._jMTmr7ZiQ/recreatetarball --owner 0 --group 0 
--numeric-owner -C /tmp/pristine-tar._jMTmr7ZiQ/workdir --no-recursion --mode 
0644 --files-from /tmp/pristine-tar._jMTmr7ZiQ/manifest

This happens on files that containing a 'ü' character. Upstream is using
some file names there such a german umlaut is used.

carsten@stretch:~/tmp/libraries/Shielding_Cabinets.pretty  $ ls -l *ü*
-rw-r--r-- 1 carsten carsten 3265 Jun  2 15:36 Würth_36103205_20x20mm.kicad_mod
-rw-r--r-- 1 carsten carsten 3919 Jun  2 15:36 Würth_36103255_25x25mm.kicad_mod
-rw-r--r-- 1 carsten carsten 4481 Jun  2 15:36 Würth_36103305_30x30mm.kicad_mod
-rw-r--r-- 1 carsten carsten 6913 Jun  2 15:36 Würth_36103505_50x50mm.kicad_mod
-rw-r--r-- 1 carsten carsten 8129 Jun  2 15:36 Würth_36103605_60x60mm.kicad_mod
-rw-r--r-- 1 carsten carsten 4076 Jun  2 15:36 Würth_36503205_20x20mm.kicad_mod
-rw-r--r-- 1 carsten carsten 4762 Jun  2 15:36 Würth_36503255_25x25mm.kicad_mod
-rw-r--r-- 1 carsten carsten 5460 Jun  2 15:36 Würth_36503305_30x30mm.kicad_mod
-rw-r--r-- 1 carsten carsten 8244 Jun  2 15:36 Würth_36503505_50x50mm.kicad_mod
-rw-r--r-- 1 carsten carsten 9636 Jun  2 15:36 Würth_36503605_60x60mm.kicad_mod

Unfortunately pristine-tar is failing as it seems the character 'ü' is
interpreted as UTF8 in plain text and not as a control sequence.

The following umlauts are using those UTF8 sequences. I haven't test
other umlauts but I expects the same behavior.
String = \Escapesequence+\Octalvalue

Ä = \303\204
Ö = \303\226
Ü = \303\234
ä = \303\244
ü = \303\274
ö = \303\266
ß = \303\237

Regards
Carsten

-- System Information:
Debian Release: stretch/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: i386, armhf

Kernel: Linux 4.2.0-1-amd64 (SMP w/2 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages pristine-tar depends on:
ii  libbz2-1.0  1.0.6-8
ii  libc6       2.23-5
ii  perl        5.22.2-3
ii  tar         1.29b-1
ii  xdelta      1.1.3-9.1
ii  xdelta3     3.0.11-dfsg-1
ii  zlib1g      1:1.2.8.dfsg-2+b1

Versions of packages pristine-tar recommends:
ii  bzip2     1.0.6-8
ii  pbzip2    1.1.9-1
ii  xz-utils  5.1.1alpha+20120614-2.1

pristine-tar suggests no packages.

-- no debconf information

--- End Message ---
--- Begin Message ---
Version: 1.40

I've not seen the reported issues since some time so maybe the root for
the issue wasn't in pristine-tar and in some other package. I'll close
my bug report now.

On Sat, Sep 24, 2016 at 10:16:44AM +0200, Carsten Schoenert wrote:
> Hello Tomasz,
> 
> On Tue, Sep 13, 2016 at 10:04:28PM +0200, Carsten Schoenert wrote:
> ... 
> > So now I was using option -k to see if there is something abnormal. And
> > yes, the manifest file has already that broken naming.
> > 
> > carsten@stretch:/tmp  $ grep -rw "303" */manifest
> > pristine-tar.fbAnsJPkxo/manifest:libraries/Shielding_Cabinets.pretty/W\303\274rth_36503505_50x50mm.kicad_mod
> > pristine-tar.fbAnsJPkxo/manifest:libraries/Shielding_Cabinets.pretty/W\303\274rth_36103605_60x60mm.kicad_mod
> > pristine-tar.fbAnsJPkxo/manifest:libraries/Shielding_Cabinets.pretty/W\303\274rth_36103505_50x50mm.kicad_mod
> > pristine-tar.fbAnsJPkxo/manifest:libraries/Shielding_Cabinets.pretty/W\303\274rth_36103205_20x20mm.kicad_mod
> > pristine-tar.fbAnsJPkxo/manifest:libraries/Shielding_Cabinets.pretty/W\303\274rth_36503205_20x20mm.kicad_mod
> > pristine-tar.fbAnsJPkxo/manifest:libraries/Shielding_Cabinets.pretty/W\303\274rth_36503255_25x25mm.kicad_mod
> > pristine-tar.fbAnsJPkxo/manifest:libraries/Shielding_Cabinets.pretty/W\303\274rth_36103255_25x25mm.kicad_mod
> > pristine-tar.fbAnsJPkxo/manifest:libraries/Shielding_Cabinets.pretty/W\303\274rth_36503305_30x30mm.kicad_mod
> > pristine-tar.fbAnsJPkxo/manifest:libraries/Shielding_Cabinets.pretty/W\303\274rth_36503605_60x60mm.kicad_mod
> > pristine-tar.fbAnsJPkxo/manifest:libraries/Shielding_Cabinets.pretty/W\303\274rth_36103305_30x30mm.kicad_mod
> > 
> > I don't how this manifest file is created but there is probably
> > something working not well.
> > 
> > If I try to follow the command while working with verbose or debuging
> > messages this part is not vissible.
> 
> thanks to a colleague I could get a workaround and commit my
> orig*.tar.xz tarballs to the tree.
> 
> The problems must be araising in the genmanifest function due some
> charset voodoo. I'm running locally the de_DE.utf8 charset. So I think
> the created orig*.tar.xz tarballs are created with this charset.
> 
> pristine-tar set LANG to 'C'. So also the function genmanifest is
> running with this setting. So if we hack and modify now this function to
> use de_DE.utf8 the commit is working, also the later extracting from the
> branch. The hackish looks now this way:
> 
> $ git diff
> diff --git a/pristine-tar b/pristine-tar
> index fa73fcf..9e28855 100755
> --- a/pristine-tar
> +++ b/pristine-tar
> @@ -501,16 +501,23 @@ sub genmanifest {
>         my $tarball=shift;
>         my $manifest=shift;
>  
> +       delete $ENV{LANG};
> +       $ENV{LANG} = 'de_DE.utf8';
> +       #print $ENV{LANG} . "\n";
>         open(IN, "tar --quoting-style=escape -tf $tarball |") || die "tar tf: 
> $!";
>         open(OUT, ">", $manifest) || die "$!";
>         while (<IN>) {
>                 chomp;
>                 # ./ or / in the manifest just confuses tar
> +               #print "DEBUG1: $_\n";
>                 s/^\.?\/+//;
> +               #print "DEBUG2: $_\n";
>                 print OUT "$_\n" if length $_;
>         }
>         close IN;
>         close OUT;
> +       delete $ENV{LANG};
> +       $ENV{LANG} = 'C';
>  }
>  
>  sub gendelta {
> 
> Maybe pristine-tar should figure out which charest is used within the
> tarball and use this while creating the manifest of the tarball? I don't
> know, I'm really not a Perl guy. :-)
> 
> Regards
> Carsten

--- End Message ---

Reply via email to