Bug#881937: diffoscope: Doesn't show differences in .deb's control.tar.xz (regression?)

2017-11-16 Thread Axel Beckert
Package: diffoscope
Version: 88
Severity: normal
Control: found -1 78

Hi,

when comparing the two attached .deb files with diffoscope, it doesn't
show any differences inside the control.data.xz, despite it shows a
different size of the two control.data.xz members:

--- ../aptitude-robot_1.5.2-1_all.deb
+++ ../aptitude-robot_1.5.3-1_all.deb
├── file list
│ @@ -1,3 +1,3 @@
│ --rw-r--r--   0004 2017-07-23 20:04:23.00 
debian-binary
│ --rw-r--r--   000 1514 2017-07-23 20:04:23.00 
control.tar.gz
│ --rw-r--r--   00025264 2017-07-23 20:04:23.00 
data.tar.xz
│ +-rw-r--r--   0004 2017-11-16 17:48:45.00 
debian-binary
│ +-rw-r--r--   000 1584 2017-11-16 17:48:45.00 
control.tar.xz
│ +-rw-r--r--   00025656 2017-11-16 17:48:45.00 
data.tar.xz
├── data.tar.xz
│ ├── data.tar
│ │ ├── file list
│ │ │ @@ -1,50 +1,50 @@
│ │ │ -drwxr-xr-x   0 root (0) root (0)0 2017-07-23 
20:04:23.00 ./
│ │ │ -drwxr-xr-x   0 root (0) root (0)0 2017-07-23 
20:04:23.00 ./etc/
│ │ │ -drwxr-xr-x   0 root (0) root (0)0 2017-07-23 
20:04:23.00 ./etc/aptitude-robot/
│ │ │ -drwxr-xr-x   0 root (0) root (0)0 2017-07-23 
20:04:23.00 ./etc/aptitude-robot/options.d/
│ │ │ --rw-r--r--   0 root (0) root (0)  308 2017-07-23 
20:04:23.00 ./etc/aptitude-robot/options.d/10-remove-level-maximum
│ │ │ -drwxr-xr-x   0 root (0) root (0)0 2017-07-23 
20:04:23.00 ./etc/aptitude-robot/pkglist.d/
│ │ │ --rw-r--r--   0 root (0) root (0)  178 2017-07-23 
20:04:23.00 ./etc/aptitude-robot/pkglist.d/README.txt
│ │ │ -drwxr-xr-x   0 root (0) root (0)0 2017-07-23 
20:04:23.00 ./etc/aptitude-robot/triggers.post/
│ │ │ --rwxr-xr-x   0 root (0) root (0)  264 2017-07-23 
20:04:23.00 ./etc/aptitude-robot/triggers.post/90-cleanup.example
│ │ │ --rw-r--r--   0 root (0) root (0)  205 2017-07-23 
20:04:23.00 ./etc/aptitude-robot/triggers.post/README.txt
│ │ │ -drwxr-xr-x   0 root (0) root (0)0 2017-07-23 
20:04:23.00 ./etc/aptitude-robot/triggers.pre/
│ │ │ --rw-r--r--   0 root (0) root (0)  206 2017-07-23 
20:04:23.00 ./etc/aptitude-robot/triggers.pre/README.txt
│ │ │ -drwxr-xr-x   0 root (0) root (0)0 2017-07-23 
20:04:23.00 ./etc/cron.daily/
│ │ │ --rwxr-xr-x   0 root (0) root (0)  500 2015-06-30 
16:20:06.00 ./etc/cron.daily/aptitude-robot
│ │ │ -drwxr-xr-x   0 root (0) root (0)0 2017-07-23 
20:04:23.00 ./etc/default/
│ │ │ --rw-r--r--   0 root (0) root (0) 1628 2015-06-30 
16:20:06.00 ./etc/default/aptitude-robot
│ │ │ -drwxr-xr-x   0 root (0) root (0)0 2017-07-23 
20:04:23.00 ./etc/init/
│ │ │ --rw-r--r--   0 root (0) root (0)  168 2015-06-30 
16:24:37.00 ./etc/init/aptitude-robot.conf
│ │ │ -drwxr-xr-x   0 root (0) root (0)0 2017-07-23 
20:04:23.00 ./etc/init.d/
│ │ │ --rwxr-xr-x   0 root (0) root (0) 1867 2014-11-02 
09:47:18.00 ./etc/init.d/aptitude-robot
│ │ │ -drwxr-xr-x   0 root (0) root (0)0 2017-07-23 
20:04:23.00 ./etc/logrotate.d/
│ │ │ --rw-r--r--   0 root (0) root (0)   85 2015-06-30 
16:20:06.00 ./etc/logrotate.d/aptitude-robot
│ │ │ -drwxr-xr-x   0 root (0) root (0)0 2017-07-23 
20:04:23.00 ./lib/
│ │ │ -drwxr-xr-x   0 root (0) root (0)0 2017-07-23 
20:04:23.00 ./lib/systemd/
│ │ │ -drwxr-xr-x   0 root (0) root (0)0 2017-07-23 
20:04:23.00 ./lib/systemd/system/
│ │ │ --rw-r--r--   0 root (0) root (0)  202 2016-05-12 
10:36:19.00 ./lib/systemd/system/aptitude-robot.service
│ │ │ -drwxr-xr-x   0 root (0) root (0)0 2017-07-23 
20:04:23.00 ./usr/
│ │ │ -drwxr-xr-x   0 root (0) root (0)0 2017-07-23 
20:04:23.00 ./usr/sbin/
│ │ │ --rwxr-xr-x   0 root (0) root (0) 7132 2017-07-23 
20:04:23.00 ./usr/sbin/aptitude-robot
│ │ │ --rwxr-xr-x   0 root (0) root (0) 2465 2017-07-23 
20:04:23.00 ./usr/sbin/aptitude-robot-session
│ │ │ -drwxr-xr-x   0 root (0) root (0)0 2017-07-23 
20:04:23.00 ./usr/share/
│ │ │ -drwxr-xr-x   0 root (0) root (0)0 2017-07-23 
20:04:23.00 ./usr/share/aptitude-robot/
│ │ │ --rwxr-xr-x   0 root (0) root (0) 1454 2017-07-23 
20:04:23.00 ./usr/share/aptitude-robot/mail-log-on-error
│ │ │ --rwxr-xr-x   0 root (0) root (0)  471 

Processed: diffoscope: Doesn't show differences in .deb's control.tar.xz (regression?)

2017-11-16 Thread Debian Bug Tracking System
Processing control commands:

> found -1 78
Bug #881937 [diffoscope] diffoscope: Doesn't show differences in .deb's 
control.tar.xz (regression?)
Marked as found in versions diffoscope/78.

-- 
881937: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=881937
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems

___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds


Re: Bug#876901: QFINDTESTDATA uses __FILE__

2017-11-16 Thread Lisandro Damián Nicanor Pérez Meyer
On jueves, 16 de noviembre de 2017 13:22:00 -03 Ximin Luo wrote:
[snip]
> I pointed to the various C standards documents, as well as documentation
> from multiple compilers, stating that __FILE__ is the "name of the source
> file" and in no way guarantees that the expansion can later be re-used as
> the path to an actual file. GCC documentation even explicitly states the
> expansion is arbitrarily chosen by the implementation of the preprocessor,
> and is explicitly "not [..] the input file name argument".

OK, let's agree we do not agree here.

> So I do consider this a bug in the QT test suite.
> 
> The ideal solution would be to not use __FILE__ - that has numerous other
> benefits as well. But if this is too complex to change, I also suggested a
> 1-line addition to d/rules - which I agree would be "papering over" the
> issue. However, it's a simple 1-line change so I don't understand why there
> is so much resistance to it.

Because it means diverging from upstream and that causes us *lots* of 
headaches when trying to solve unit tests issues with upstream's help.

> There are several other possible solutions, all of which are low-cost and
> unintrusive, and could be done in a QT build helper in one single place:
> 
> - define a custom macro, QT_TEST_SOURCE_BASE, and set that in the test build
> scripts, instead of using __FILE__ - export
> BUILD_PATH_PREFIX_MAP="$BUILD_PATH_PREFIX_MAP:tests=$BASEDIR/tests" -
> symlink "$srcpkg-$version" -> "."
> 
> I would be very happy to send you the patches myself if you don't want to do
> the work, since writing 1-line patches to a few QT projects, costs far less
> time than patching 1800 packages across Debian.


Let me propose you something: create a suitable patch for upstream that makes 
stuff work no matter the distro not OS. As I do think your approach is not 
correct you should push it yourself, see

http://wiki.qt.io/Qt_Contribution_Guidelines

for knowing how to contribute it.


-- 
May the source be with you.

Lisandro Damián Nicanor Pérez Meyer
http://perezmeyer.com.ar/
http://perezmeyer.blogspot.com/


signature.asc
Description: This is a digitally signed message part.
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

Re: Bug#876901: QFINDTESTDATA uses __FILE__

2017-11-16 Thread Ximin Luo
Lisandro Damián Nicanor Pérez Meyer:
> By the way: is there a macro or combination of macros which *default* value 
> can be replaced in the use of __FILE__ without caussing regressions?
> 
> Because if that's the case it's easier to convince upstream people that 
> changing the usage goes in favor of reproducibility without using strange up-
> to-the-builder definitions.
> 

Unfortunately, not that I know of.

However, let me try to explain why BUILD_PATH_PREFIX_MAP is not as strange as 
you might think.

GCC already supports a flag -fdebug-prefix-map whose purpose is to do the same 
thing for debugging symbols. You can give multiple maps, to map different parts 
of your source tree to different other source directories. So maybe one could 
give a map like this:

1. "PWD/" -> "/usr/src/debug/$mypackage"
2. "PWD/tests" -> "./tests"

if one wanted to generate debugging information for your main source code, to 
point to installed-source-code at /usr/src/debug/$mypackage; but since one 
doesn't install the tests anywhere, it would be convenient for developers to 
have the debuginfo of tests point to ./tests instead, so they can just run "gdb 
-d." if stuff fails.

What I'm suggesting for QT tests would be exactly analogous to this 
already-supported use case for debuginfo. dpkg gives a default map 
corresponding to (1), and since QT tests use __FILE__ for other purposes, you 
give a second map corresponding to (2) above.

X

-- 
GPG: ed25519/56034877E1F87C35
GPG: rsa4096/1318EFAC5FBBDBCE
https://github.com/infinity0/pubkeys.git

___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds


Re: Bug#876901: QFINDTESTDATA uses __FILE__

2017-11-16 Thread Ximin Luo
Lisandro Damián Nicanor Pérez Meyer:
> [..]
> 
> Yes, we do understand that your workaround solves the issue, but we do also 
> understand that we should not be using this workaround in the first place.
> 
> Guillem: the thread is long, but be sure that we Qt/KDE maintainers consider 
> that this change will be insta-RC I'm afraid.
> 

Guillem: the TL;DR is that some QT tests fail (with our reproducibility GCC and 
dpkg patch) because they depend on __FILE__ to point to a real path, but the 
patched dpkg rewrites it in all packages so that a prefix $PWD changes to 
$srcpkg-$version, which doesn't exist.

A simple fix on the dpkg side would be to instead rewrite $PWD to ".", much 
like -fdebug-prefix-map is done currently. However this loses some information 
and makes it hard to distinguish different packages that might share filetree 
structure. But that is the best fallback option IMO, if we decide that we don't 
want to auto-break QT tests for using  __FILE__ (IMO, inappropriately).

> Xi: you have found a *wonderful* way to find where bugs are, please try to 
> fix 
> the relevant code and not paper over it, because in the Qt case it is not a 
> bug on our side.
> 

I pointed to the various C standards documents, as well as documentation from 
multiple compilers, stating that __FILE__ is the "name of the source file" and 
in no way guarantees that the expansion can later be re-used as the path to an 
actual file. GCC documentation even explicitly states the expansion is 
arbitrarily chosen by the implementation of the preprocessor, and is explicitly 
"not [..] the input file name argument".

So I do consider this a bug in the QT test suite.

The ideal solution would be to not use __FILE__ - that has numerous other 
benefits as well. But if this is too complex to change, I also suggested a 
1-line addition to d/rules - which I agree would be "papering over" the issue. 
However, it's a simple 1-line change so I don't understand why there is so much 
resistance to it.

There are several other possible solutions, all of which are low-cost and 
unintrusive, and could be done in a QT build helper in one single place:

- define a custom macro, QT_TEST_SOURCE_BASE, and set that in the test build 
scripts, instead of using __FILE__
- export BUILD_PATH_PREFIX_MAP="$BUILD_PATH_PREFIX_MAP:tests=$BASEDIR/tests"
- symlink "$srcpkg-$version" -> "."

I would be very happy to send you the patches myself if you don't want to do 
the work, since writing 1-line patches to a few QT projects, costs far less 
time than patching 1800 packages across Debian.

X

-- 
GPG: ed25519/56034877E1F87C35
GPG: rsa4096/1318EFAC5FBBDBCE
https://github.com/infinity0/pubkeys.git

___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

Re: Bug#876901: QFINDTESTDATA uses __FILE__

2017-11-16 Thread Lisandro Damián Nicanor Pérez Meyer
By the way: is there a macro or combination of macros which *default* value 
can be replaced in the use of __FILE__ without caussing regressions?

Because if that's the case it's easier to convince upstream people that 
changing the usage goes in favor of reproducibility without using strange up-
to-the-builder definitions.


-- 
"In college, I cooked some hot dogs by putting metal forks in each end of the
hot dog and running 120 volts through it. Hot dogs have just enough
conductivity so that this works well"
  greenroom(576281) - on a truly geeky way to cook hot dogs.
  Posted in Slashdot, also found in The Open Source Cookbook for Geeks.

Lisandro Damián Nicanor Pérez Meyer
http://perezmeyer.com.ar/
http://perezmeyer.blogspot.com/


signature.asc
Description: This is a digitally signed message part.
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

Re: Bug#876901: QFINDTESTDATA uses __FILE__

2017-11-16 Thread Lisandro Damián Nicanor Pérez Meyer
Explicitely CCing Guillem for this one.

On miércoles, 15 de noviembre de 2017 23:01:00 -03 Ximin Luo wrote:
[sip]
> The GCC patch (neither the previous nor the planned version) does not change
> the default behaviour of __FILE__, and was never intended to. Instead, it
> gives users the ability to rewrite __FILE__, more specifically a prefix of
> it.

So it basically does not changes the default __FILE__ behavior, so neither GCC 
nor other projects upstream developers will have anything to complain...

> 
> There is a separate patch to dpkg that enables this ability for all
> packages, in the same way that SOURCE_DATE_EPOCH is enabled. Guillem the
> dpkg maintainer has previously indicated that he's happy to take the patch,
> once GCC accepts their end of it.

...except for a Debian self-inflicted change that will *only* happen while 
building Debian packages, but not when using it for normal developing 
processes.

> It's a combination of these two patches that would cause these QT tests to
> fail. The reason it fails, is because we specifically map $PWD to a
> non-existent path. I suggested various ways around this. One of the
> suggestions, was to add an extra mapping to map $PWD/tests back to
> $PWD/tests (or just ./tests), overriding the earlier non-existent mapping.
> I think this is the cleanest suggestion - assuming that tests reside in the
> same directory, and away from the main source code. Kai Pastor over on bug
> #876934 indicated that this would probably work for
> openorienteering-mapper.

Yes, we do understand that your workaround solves the issue, but we do also 
understand that we should not be using this workaround in the first place.

Guillem: the thread is long, but be sure that we Qt/KDE maintainers consider 
that this change will be insta-RC I'm afraid.

Xi: you have found a *wonderful* way to find where bugs are, please try to fix 
the relevant code and not paper over it, because in the Qt case it is not a 
bug on our side.

-- 
“I don’t think security can solve problems.
We need to teach greater respect.”
  Oslo Mayor Stang when asked whether Oslo needs greater security
  after the attacks in Norway, 07/2011.

Lisandro Damián Nicanor Pérez Meyer
http://perezmeyer.com.ar/
http://perezmeyer.blogspot.com/


signature.asc
Description: This is a digitally signed message part.
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

Re: Please review the draft for week 133's blog post

2017-11-16 Thread Holger Levsen
On Thu, Nov 16, 2017 at 10:06:00AM +, Ximin Luo wrote:
> Ping, are you ready? I don't see any commits from you in the log...

not yet & on a very bad internet connection atm.

i will publish 133 once it's ready.

thanks.


-- 
cheers,
Holger


signature.asc
Description: PGP signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

Re: Please review the draft for week 133's blog post

2017-11-16 Thread Ximin Luo
Holger Levsen:
> On Tue, Nov 14, 2017 at 01:34:00PM +, Ximin Luo wrote:
>> This week's blog post draft is now available for review:
>> https://reproducible.alioth.debian.org/blog/drafts/133/
> [...] 
>> I'll wait at least 24 hours from the time of this email for any comments, 
>> and if everything is good then I will publish it soon after that.
> 
> please hold off publishing this blog for another 24h.
> 

Ping, are you ready? I don't see any commits from you in the log...

X

-- 
GPG: ed25519/56034877E1F87C35
GPG: rsa4096/1318EFAC5FBBDBCE
https://github.com/infinity0/pubkeys.git

___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds