Bug#828636: [Reproducible-builds] Bug#828636: libembperl-perl: please make the build reproducible

2016-06-26 Thread Axel Beckert
Hi again,

Axel Beckert wrote:
> > It's actually related to the shell...
> >
> > $ touch aD bD cD dD eD AD BD
> > $ dash -c "ls *[a-z]D"
> > aD  bD  cD  dD  eD
> > $ bash -c "ls *[a-z]D"
> > aD  AD  bD  BD  cD  dD  eD
> > 
> > With bash POD.3pm also matches *[a-z]D.3pm.
> 
> Yay, thanks for that. I actually also suspected capitalization during
> matching as culprit, but suspected different locales as reason for
> that.

It's actually both:

→ env LC_ALL=C bash -c 'ls -l D[a-z]*'
-rw-r--r-- 1 abe abe 32420 May  9 18:51 Doxyfile
→ env LC_ALL=de_DE.utf-8 bash -c 'ls -l D[a-z]*'
-rwxr-xr-x 1 abe abe 13752 Mai  9 18:51 DOM.xs
-rw-r--r-- 1 abe abe 32420 Mai  9 18:51 Doxyfile
→ env LC_ALL=C dash -c 'ls -l D[a-z]*'
-rw-r--r-- 1 abe abe 32420 May  9 18:51 Doxyfile
→ env LC_ALL=de_DE.utf-8 dash -c 'ls -l D[a-z]*'
-rw-r--r-- 1 abe abe 32420 Mai  9 18:51 Doxyfile

> Will do an upload which re-includes the man page, but with proper
> matching.

My plan is to use something like "find . -name '*[a-z]D.*'" which
seems to be resistent to the above mentioned problem:

→ env LC_ALL=C find . -name '*[a-z]D.*'
./eg/web/indexD.htm
./FeaturesD.pod
→ env LC_ALL=de_DE.utf-8 find . -name '*[a-z]D.*'
./eg/web/indexD.htm
./FeaturesD.pod
→ switchsh env LC_ALL=de_DE.utf-8 find . -name '*[a-z]D.*'
./eg/web/indexD.htm
./FeaturesD.pod

None of the cases above find the POD.pm file:

→ find . -name '*[A-Z]D.*'
./Embperl/Syntax/POD.pm

And just to show what switchsh indeed works and replaces /bin/sh with
bash for a single command (via bind mount):

→ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Mar 12 10:05 /bin/sh -> dash*
→ env LC_ALL=de_DE.utf-8 sh -c 'ls -l D[a-z]*'
-rw-r--r-- 1 abe abe 32420 Mai  9 18:51 Doxyfile
→ switchsh env LC_ALL=de_DE.utf-8 sh -c 'ls -l D[a-z]*'
-rwxr-xr-x 1 abe abe 13752 Mai  9 18:51 DOM.xs
-rw-r--r-- 1 abe abe 32420 Mai  9 18:51 Doxyfile

Regards, Axel
-- 
 ,''`.  |  Axel Beckert , http://people.debian.org/~abe/
: :' :  |  Debian Developer, ftp.ch.debian.org Admin
`. `'   |  4096R: 2517 B724 C5F6 CA99 5329  6E61 2FF9 CD59 6126 16B5
  `-|  1024D: F067 EA27 26B9 C3FC 1486  202E C09E 1D89 9593 0EDE



Bug#828636: [Reproducible-builds] Bug#828636: Bug#828636: libembperl-perl: please make the build reproducible

2016-06-26 Thread Axel Beckert
Hi!

gregor herrmann wrote:
> On Sun, 26 Jun 2016 17:16:52 +0200, Reiner Herrmann wrote:
> > > Sorry, but that's wrong:
> > > 
> > > → dpkg -L libembperl-perl | egrep man/de/man./
> > > /usr/share/man/de/man3/Embperl::Features.3pm.gz
> > > → man /usr/share/man/de/man3/Embperl::Features.3pm.gz
> > > 
> > > That's clearly my mother tongue. :-)
> > 
> > Sorry, I assumed Embperl::Features was also misdetected (because the
> > original file ends with D) and haven't looked into it.
> 
> Oops, sorry, I missed that too when applying Reiner's patch.

Oh, you were quick. (Well, as usual. ;-)

> Looking at the manpage:
> 
> Das standart Layout einer Website can einmal definiert werden
> 
> I have a hard time defining this as German though :/

There are umlauts in it!!!1!elf! ;-)

> So yes, I guess we can remove this document.
> 
> Implemented in git; I'm holding off with a second hasty upload, sorry
> for the first one.

Oh, meh.

Reiner Herrmann wrote:
> On Sun, Jun 26, 2016 at 05:07:54PM +0200, Axel Beckert wrote:
> > I currently fail to see why this can catch Embperl::Syntax::POD in one
> > build, but not in another. IMHO this should happen with every build.
> > Will investigate.
> 
> It's actually related to the shell...
>
> $ touch aD bD cD dD eD AD BD
> $ dash -c "ls *[a-z]D"
> aD  bDcD  dD  eD
> $ bash -c "ls *[a-z]D"
> aD  ADbD  BD  cD  dD  eD
> 
> With bash POD.3pm also matches *[a-z]D.3pm.

Yay, thanks for that. I actually also suspected capitalization during
matching as culprit, but suspected different locales as reason for
that.

Will do an upload which re-includes the man page, but with proper
matching.

Thanks again for that bug-report.

Regards, Axel
-- 
 ,''`.  |  Axel Beckert , http://people.debian.org/~abe/
: :' :  |  Debian Developer, ftp.ch.debian.org Admin
`. `'   |  4096R: 2517 B724 C5F6 CA99 5329  6E61 2FF9 CD59 6126 16B5
  `-|  1024D: F067 EA27 26B9 C3FC 1486  202E C09E 1D89 9593 0EDE



Bug#828636: [Reproducible-builds] Bug#828636: libembperl-perl: please make the build reproducible

2016-06-26 Thread gregor herrmann
On Sun, 26 Jun 2016 17:16:52 +0200, Reiner Herrmann wrote:

> > Sorry, but that's wrong:
> > 
> > → dpkg -L libembperl-perl | egrep man/de/man./
> > /usr/share/man/de/man3/Embperl::Features.3pm.gz
> > → man /usr/share/man/de/man3/Embperl::Features.3pm.gz
> > 
> > That's clearly my mother tongue. :-)
> 
> Sorry, I assumed Embperl::Features was also misdetected (because the
> original file ends with D) and haven't looked into it.

Oops, sorry, I missed that too when applying Reiner's patch.

Looking at the manpage:

Das standart Layout einer Website can einmal definiert werden

I have a hard time defining this as German though :/
 

So yes, I guess we can remove this document.

Implemented in git; I'm holding off with a second hasty upload, sorry
for the first one.

Cheers,
gregor

-- 
 .''`.  Homepage https://info.comodo.priv.at/ - OpenPGP key 0xBB3A68018649AA06
 : :' : Debian GNU/Linux user, admin, and developer -  https://www.debian.org/
 `. `'  Member of VIBE!AT & SPI, fellow of the Free Software Foundation Europe
   `-   


signature.asc
Description: Digital Signature


Bug#828636: [Reproducible-builds] Bug#828636: libembperl-perl: please make the build reproducible

2016-06-26 Thread Reiner Herrmann
On Sun, Jun 26, 2016 at 05:07:54PM +0200, Axel Beckert wrote:
> I currently fail to see why this can catch Embperl::Syntax::POD in one
> build, but not in another. IMHO this should happen with every build.
> Will investigate.

It's actually related to the shell...

$ touch aD bD cD dD eD AD BD
$ dash -c "ls *[a-z]D"
aD  bD  cD  dD  eD
$ bash -c "ls *[a-z]D"
aD  AD  bD  BD  cD  dD  eD

With bash POD.3pm also matches *[a-z]D.3pm.


signature.asc
Description: Digital signature


Bug#828636: [Reproducible-builds] Bug#828636: libembperl-perl: please make the build reproducible

2016-06-26 Thread Reiner Herrmann
On Sun, Jun 26, 2016 at 05:07:54PM +0200, Axel Beckert wrote:
> > In one build the manpage Embperl::Syntax::POD.3pm is incorrectly sorted
> > to the German manpages (Embperl::FeaturesD too), because their names end
> > with D.
> 
> Why only in one build? Due to different locale settings? Anyway, if
> there's a way that Embperl::Syntax::POD is installed as
> /usr/share/man/de/man3/Embperl::Syntax::PO.3pm.gz, that's clearly a
> bug and deserves a higher severity than just wishlist.

Why this happens only in one build is also not yet clear to me.

> > As the package provides no German manpages anyway,
> 
> Sorry, but that's wrong:
> 
> → dpkg -L libembperl-perl | egrep man/de/man./
> /usr/share/man/de/man3/Embperl::Features.3pm.gz
> → man /usr/share/man/de/man3/Embperl::Features.3pm.gz
> 
> That's clearly my mother tongue. :-)

Sorry, I assumed Embperl::Features was also misdetected (because the
original file ends with D) and haven't looked into it.

> > -   # move German manpages to usr/share/man/de/man{1,2,3}
> > -   @set -e;\
> > -   for f in $(TMP)/usr/share/man/man3/*[a-z]D.3pm; do \
> > -   f_de=`echo $$f | sed 
> > 's,man\(.\)/\([^/]*\)D\.\([^/]*\)$$,de/man\1/\2.\3,'` ;\
> > -   echo "mv $$f $$f_de" ;\
> > -   mv $$f $$f_de ;\
> > -   done
> 
> I currently fail to see why this can catch Embperl::Syntax::POD in one
> build, but not in another. IMHO this should happen with every build.
> Will investigate.

I'm also not sure, but I can imagine it's related to the locale and
*[a-z] works somewhat differently.


signature.asc
Description: Digital signature


Bug#828636: [Reproducible-builds] Bug#828636: libembperl-perl: please make the build reproducible

2016-06-26 Thread Axel Beckert
Control: tag -1 - patch
Control: severity -1 normal

Hi Reiner,

Reiner Herrmann wrote:
> While working on the "reproducible builds" effort [1], we have noticed
> that libembperl-perl could not be built reproducibly.

Thanks for the examination and the bug report.

> In one build the manpage Embperl::Syntax::POD.3pm is incorrectly sorted
> to the German manpages (Embperl::FeaturesD too), because their names end
> with D.

Why only in one build? Due to different locale settings? Anyway, if
there's a way that Embperl::Syntax::POD is installed as
/usr/share/man/de/man3/Embperl::Syntax::PO.3pm.gz, that's clearly a
bug and deserves a higher severity than just wishlist.

> As the package provides no German manpages anyway,

Sorry, but that's wrong:

→ dpkg -L libembperl-perl | egrep man/de/man./
/usr/share/man/de/man3/Embperl::Features.3pm.gz
→ man /usr/share/man/de/man3/Embperl::Features.3pm.gz

That's clearly my mother tongue. :-)

> I think the part in debian/rules, which moves the manpages can be
> safely removed.

I disagree at least with the reasoning here.

I nevertheless think, that if Embperl::Features.3pm is the only German
man page in the source package, we can remove it from the binary
package without much impact since that's the kind of documentation you
usually read _before_ installing the package, e.g. online on the
upstream website.

> - # move German manpages to usr/share/man/de/man{1,2,3}
> - @set -e;\
> - for f in $(TMP)/usr/share/man/man3/*[a-z]D.3pm; do \
> - f_de=`echo $$f | sed 
> 's,man\(.\)/\([^/]*\)D\.\([^/]*\)$$,de/man\1/\2.\3,'` ;\
> - echo "mv $$f $$f_de" ;\
> - mv $$f $$f_de ;\
> - done

I currently fail to see why this can catch Embperl::Syntax::POD in one
build, but not in another. IMHO this should happen with every build.
Will investigate.

Regards, Axel
-- 
 ,''`.  |  Axel Beckert , http://people.debian.org/~abe/
: :' :  |  Debian Developer, ftp.ch.debian.org Admin
`. `'   |  4096R: 2517 B724 C5F6 CA99 5329  6E61 2FF9 CD59 6126 16B5
  `-|  1024D: F067 EA27 26B9 C3FC 1486  202E C09E 1D89 9593 0EDE



Bug#828636: libembperl-perl: please make the build reproducible

2016-06-26 Thread Reiner Herrmann
Source: libembperl-perl
Version: 2.5.0-6
Severity: wishlist
Tags: patch
User: reproducible-bui...@lists.alioth.debian.org
Usertags: randomness
X-Debbugs-Cc: reproducible-bui...@lists.alioth.debian.org

Hi!

While working on the "reproducible builds" effort [1], we have noticed
that libembperl-perl could not be built reproducibly.
In one build the manpage Embperl::Syntax::POD.3pm is incorrectly sorted
to the German manpages (Embperl::FeaturesD too), because their names end
with D.
As the package provides no German manpages anyway, I think the part in
debian/rules, which moves the manpages can be safely removed.

Regards,
 Reiner

[1]: https://wiki.debian.org/ReproducibleBuilds
diff --git a/debian/rules b/debian/rules
index f643b0b..ab91682 100755
--- a/debian/rules
+++ b/debian/rules
@@ -27,14 +27,6 @@ override_dh_auto_install: $(POD2TEXT)
 	# install by default
 	install -m 755 *cgi.pl debian/libembperl-perl/usr/lib/cgi-bin/
 
-	# move German manpages to usr/share/man/de/man{1,2,3}
-	@set -e;\
-	for f in $(TMP)/usr/share/man/man3/*[a-z]D.3pm; do \
-	f_de=`echo $$f | sed 's,man\(.\)/\([^/]*\)D\.\([^/]*\)$$,de/man\1/\2.\3,'` ;\
-	echo "mv $$f $$f_de" ;\
-	mv $$f $$f_de ;\
-	done
-
 	# ship Apache config in mods-available
 	sed -e 's,@ARCHLIB@,$(ARCHLIB),g' debian/zembperl.load.in > debian/zembperl.load
 	install -m 644 debian/zembperl.conf debian/zembperl.load \