Bug#876934: openorienteering-mapper FTBFS: test failures

2018-03-26 Thread Kai Pastor, DG0YT
For the record, I now verified on SLE (s390x) that version 0.8.1 also 
builds for big endian systems.


Packages for Debian users continue to be available on
https://build.opensuse.org/package/show/home:dg0yt/openorienteering-mapper

Bye, Kai



Bug#876934: openorienteering-mapper FTBFS: test failures

2018-03-11 Thread Kai Pastor, DG0YT

Dear maintainers,

today I released OpenOrienteering Mapper 0.8.1. Now you have the 
following options for fixing bug#876934:


a) Update to 0.8.1.

0.8.x builds successful with proj-5.0.0 and gdal/libpoppler for Debian 
Testing on build.opensuse.org. It also builds reproducible for openSUSE 
Tumbleweed.


b) Disable GDAL when building openorienteering-mapper-0.7.0. This stops 
the crashes from a ODR violation caused by a duplicate symbol named 
pulled in by libgdal from libpoppler.


Regards, Kai.



Bug#876934: openorienteering-mapper FTBFS: test failures

2018-02-09 Thread Kai Pastor, DG0YT

Am 09.02.2018 um 16:03 schrieb Sebastiaan Couwenberg:

In preparating of the proj transition openorienteering-mapper (0.7.0-1)
was rebuilt in my cowbuilder chroot where these tests caused FTBFS too.

I'll raise the severity of this issue to serious when the proj
transition starts.

Kind Regards,

Bas


Be careful not to mix issues: #876934 was about tests failing on 
reproducible builds, due to the use of the __FILE__ macro.


What you are likely to face now is tests failing on exit, due to 
violation of ODR by linking openorienteering-mapper transitively via 
GDAL to libpoppler, and both openorienteering-mapper und libpoppler 
defining a class "Object". The crash occurs when a destructor for 
"Object" is run (cf. 
https://github.com/OpenOrienteering/mapper/issues/1030).


This is a horrible trap for application developers. IMO opinion no 
library must export such generic names in the global namespace, i.e. it 
is a serious bug in libpoppler.


Anyway, we moved all of openorienteering-mapper source code to namespace 
OpenOrienteering. This solved the failing tests we observed also for 
openSUSE Tumbleweed. v0.8.0 will be released in the next days.


Kind regards,
Kai



Bug#876934: openorienteering-mapper FTBFS: test failures

2018-02-09 Thread Sebastiaan Couwenberg
On Mon, 9 Oct 2017 10:54:14 +0200 Graham Inggs wrote:
> I've just tried sbuild in an amd64 sid schroot and 
> openorienteering-mapper builds fine for me.
> 
> I noticed it also still builds in testing on the reproducible-builds 
> buildds.
> 
> Why don't co-maintainers (uploaders) receive bug by default?  I missed 
> this report.

In preparating of the proj transition openorienteering-mapper (0.7.0-1)
was rebuilt in my cowbuilder chroot where these tests caused FTBFS too.

I'll raise the severity of this issue to serious when the proj
transition starts.

Kind Regards,

Bas



Bug#876934: openorienteering-mapper FTBFS: test failures

2017-11-15 Thread Ximin Luo
Kai Pastor, DG0YT:
> Am 13.11.2017 um 20:15 schrieb Adrian Bunk:
>>> I didn't find a recommendation how to solve the issue. I hope a custom macro
>>> is okay.
>> Based on the discussion in #876901 [1] it is still unclear how this
>> should be resolved in general.
>>
> One more remark:
> 
> Replacing __FILE__ with an individual macro makes it much harder to detect 
> embedded build paths in source code review. Proliferation of individual 
> macros could become worse than __FILE__ IMO.
> 
> 
> I see the discussion on debian-qt-kde. The proposal in 
> https://lists.debian.org/debian-qt-kde/2017/11/msg00110.html:
> 
>> If all the test files reside underneath the same directory, like tests/, you 
>> could:
> 
>> 4. export 
>> BUILD_PATH_PREFIX_MAP="$BUILD_PATH_PREFIX_MAP=tests=$BASEDIR/tests".
> 
> will probably worked for this package (old versions). But such information 
> needs to be in documentation, at the time such a change is introduced. In 
> addition, there needs to be much better correlation of changes in the 
> environment and changes in reproducibility build success. It seems there are 
> two variations tested, but __FILE__ vs. not __FILE__ is not included.
> 
> I remember that I spent time studying changelogs of gcc and Qt packages in 
> Debian when this bug was opened, but I was unaware of the particularities of 
> the gcc in reproducible builds. The rbuild log that I find online does not 
> contain the exact c++ compiler package name and version. What an irony, the 
> reproducible-builds logs do not provide enough information to consider them 
> reproducible. Even Debian package build logs on build.opensuse.org offer more 
> details. We could have solved this much earlier, and without wasting CPU 
> cycles and developer time.
>

There was some mis-co-ordination, Adrian did not tell us he was filing the bug, 
we the reproducible-builds team were not intending to file a bug, and I missed 
the first few messages of the bug report so I assumed he already explained that 
the FTBFS is only a problem on tests.r-b.org and not the official Debian 
archive or buildds.

The patch currently being used on tests.r-b.org is here:
https://anonscm.debian.org/cgit/reproducible/debrepatch.git/tree/toolchain-patches/gcc-7_BPPM.patch

The documentation for the variable seems to have been chopped off by mistake, 
but it is in the patch that I sent upstream to GCC, ctrl-F for "invoke.texi":
https://gcc.gnu.org/ml/gcc-patches/2017-07/msg01318.html

Indeed, the exact version of the C++ compiler does not appear in the rbuild:
https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/openorienteering-mapper.html

That is because schroots are installed with "build-essential" by default and so 
gcc doesn't get downloaded every single time for each package build. That's an 
unfortunate situation and I can see it's ironic, you could probably file a bug 
against jenkins.debian.org or perhaps pbuilder to have the builders dump this 
information into the log, even if the build fails.

X


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



Bug#876934: openorienteering-mapper FTBFS: test failures

2017-11-14 Thread Kai Pastor, DG0YT

Am 13.11.2017 um 20:15 schrieb Adrian Bunk:

I didn't find a recommendation how to solve the issue. I hope a custom macro
is okay.

Based on the discussion in #876901 [1] it is still unclear how this
should be resolved in general.


One more remark:

Replacing __FILE__ with an individual macro makes it much harder to 
detect embedded build paths in source code review. Proliferation of 
individual macros could become worse than __FILE__ IMO.



I see the discussion on debian-qt-kde. The proposal in 
https://lists.debian.org/debian-qt-kde/2017/11/msg00110.html:


> If all the test files reside underneath the same directory, like 
tests/, you could:


> 4. export 
BUILD_PATH_PREFIX_MAP="$BUILD_PATH_PREFIX_MAP=tests=$BASEDIR/tests".


will probably worked for this package (old versions). But such 
information needs to be in documentation, at the time such a change is 
introduced. In addition, there needs to be much better correlation of 
changes in the environment and changes in reproducibility build success. 
It seems there are two variations tested, but __FILE__ vs. not __FILE__ 
is not included.


I remember that I spent time studying changelogs of gcc and Qt packages 
in Debian when this bug was opened, but I was unaware of the 
particularities of the gcc in reproducible builds. The rbuild log that I 
find online does not contain the exact c++ compiler package name and 
version. What an irony, the reproducible-builds logs do not provide 
enough information to consider them reproducible. Even Debian package 
build logs on build.opensuse.org offer more details. We could have 
solved this much earlier, and without wasting CPU cycles and developer time.


Regards,
Kai.



Bug#876934: openorienteering-mapper FTBFS: test failures

2017-11-13 Thread Kai Pastor, DG0YT

Am 13.11.2017 um 20:15 schrieb Adrian Bunk:

On Sun, Nov 12, 2017 at 10:57:38AM +0100, Kai Pastor, DG0YT wrote:

Am 11.11.2017 um 17:18 schrieb Adrian Bunk:

I found what causes the problem:

The failing tests use the following for finding the path to test files:
QDir::addSearchPath(prefix, 
QFileInfo(QString::fromUtf8(__FILE__)).dir().absoluteFilePath(prefix));

In unstable reproducible builds the build path is varied,
and gcc patched to accept setting __FILE__ to a fixed
(reproducible) location.

In other words, when Debian will start changing __FILE__ also on the
buildds this will become a FTBFS also there.
It is a pity that I immediately suspected the __FILE__ macro when I 
studied this bug before, but didn't ask. I really couldn't imagine that 
someone would tinker with such a commonly used feature, or at least one 
would immediately notice a lot of breaking packages in the moment the 
change was introduced. There is no mention of __FILE__ on 
https://wiki.debian.org/ReproducibleBuilds/Howto...

Hm, I understand the benefit of reproducible builds. But does this really
need to extend to test binaries which do not get packaged? These tests need
to be as much stand-alone as possible and work out of the box in any context
(host OS, target OS).

I didn't find a recommendation how to solve the issue. I hope a custom macro
is okay.

Based on the discussion in #876901 [1] it is still unclear how this
should be resolved in general.

Semi-related, why aren't you using QFINDTESTDATA [2]?
Do be honest, I didn't know about QFINDTESTDATA, and it was not 
available when we started (Qt 4.8). I looked for something like that 
before answering yesterday and I think I saw QFINDTESTDATA at this time. 
But a) the "Note:" section states some requirements for reliable 
detection of testdata, and b) it is definitely considering multiple 
locations where I explicitly want to use a single location. In addition, 
c) now I didn't want to rely on anything which might use __FILE__ as 
well. So it does not fit.



Kai.



Bug#876934: openorienteering-mapper FTBFS: test failures

2017-11-13 Thread Adrian Bunk
On Sun, Nov 12, 2017 at 10:57:38AM +0100, Kai Pastor, DG0YT wrote:
> Am 11.11.2017 um 17:18 schrieb Adrian Bunk:
> > I found what causes the problem:
> > 
> > The failing tests use the following for finding the path to test files:
> > QDir::addSearchPath(prefix, 
> > QFileInfo(QString::fromUtf8(__FILE__)).dir().absoluteFilePath(prefix));
> > 
> > In unstable reproducible builds the build path is varied,
> > and gcc patched to accept setting __FILE__ to a fixed
> > (reproducible) location.
> > 
> > In other words, when Debian will start changing __FILE__ also on the
> > buildds this will become a FTBFS also there.
> 
> Hm, I understand the benefit of reproducible builds. But does this really
> need to extend to test binaries which do not get packaged? These tests need
> to be as much stand-alone as possible and work out of the box in any context
> (host OS, target OS).
> 
> I didn't find a recommendation how to solve the issue. I hope a custom macro
> is okay.

Based on the discussion in #876901 [1] it is still unclear how this 
should be resolved in general.

Semi-related, why aren't you using QFINDTESTDATA [2]?

> Kai
> (upstream)

cu
Adrian

[1] https://bugs.debian.org/876901
[2] http://doc.qt.io/qt-5/qtest.html#QFINDTESTDATA

-- 

   "Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
   "Only a promise," Lao Er said.
   Pearl S. Buck - Dragon Seed



Bug#876934: openorienteering-mapper FTBFS: test failures

2017-11-12 Thread Kai Pastor

v0.7.92 hopefully fixes the FTBFS in the reproducible builds environment.

v0.7.92+2 (cd0aed9) might fix reproducibility. (At least, v0.7.92+1 
deals with the time stamp in the help collection.)


Kai.



Bug#876934: openorienteering-mapper FTBFS: test failures

2017-11-12 Thread Kai Pastor, DG0YT

Am 11.11.2017 um 17:18 schrieb Adrian Bunk:

I found what causes the problem:

The failing tests use the following for finding the path to test files:
QDir::addSearchPath(prefix, 
QFileInfo(QString::fromUtf8(__FILE__)).dir().absoluteFilePath(prefix));

In unstable reproducible builds the build path is varied,
and gcc patched to accept setting __FILE__ to a fixed
(reproducible) location.

In other words, when Debian will start changing __FILE__ also on the
buildds this will become a FTBFS also there.


Hm, I understand the benefit of reproducible builds. But does this 
really need to extend to test binaries which do not get packaged? These 
tests need to be as much stand-alone as possible and work out of the box 
in any context (host OS, target OS).


I didn't find a recommendation how to solve the issue. I hope a custom 
macro is okay.


Kai
(upstream)



Bug#876934: openorienteering-mapper FTBFS: test failures

2017-11-11 Thread Adrian Bunk
Control: tags -1 buster

On Tue, Oct 17, 2017 at 03:47:37PM +0200, Graham Inggs wrote:
> Hi Adrian
> 
> binNMU against libpolyclipping22 is successful too:
> https://buildd.debian.org/status/package.php?p=openorienteering-mapper=unstable
> 
> Should this report be reassigned to reproducible builds?

I found what causes the problem:

The failing tests use the following for finding the path to test files:
QDir::addSearchPath(prefix, 
QFileInfo(QString::fromUtf8(__FILE__)).dir().absoluteFilePath(prefix));

In unstable reproducible builds the build path is varied,
and gcc patched to accept setting __FILE__ to a fixed
(reproducible) location.

In other words, when Debian will start changing __FILE__ also on the 
buildds this will become a FTBFS also there.

> Regards
> Graham

cu
Adrian

-- 

   "Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
   "Only a promise," Lao Er said.
   Pearl S. Buck - Dragon Seed



Bug#876934: openorienteering-mapper FTBFS: test failures

2017-10-17 Thread Graham Inggs
Hi Adrian

binNMU against libpolyclipping22 is successful too:
https://buildd.debian.org/status/package.php?p=openorienteering-mapper=unstable

Should this report be reassigned to reproducible builds?

Regards
Graham



Bug#876934: openorienteering-mapper FTBFS: test failures

2017-10-09 Thread Graham Inggs

Control: tags -1 + unreproducible sid
Control: severity -1 normal


I've just tried sbuild in an amd64 sid schroot and 
openorienteering-mapper builds fine for me.


I noticed it also still builds in testing on the reproducible-builds 
buildds.


Why don't co-maintainers (uploaders) receive bug by default?  I missed 
this report.




Bug#876934: openorienteering-mapper FTBFS: test failures

2017-09-26 Thread Adrian Bunk
Source: openorienteering-mapper
Version: 0.7.0-1
Severity: serious

Some recent change in unstable makes openorienteering-mapper FTBFS:

https://tests.reproducible-builds.org/debian/history/openorienteering-mapper.html
https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/openorienteering-mapper.html

...
   debian/rules override_dh_auto_test
make[1]: Entering directory '/build/1st/openorienteering-mapper-0.7.0'
# The tests need a running X server, so use Xvfb to run the tests in automated
# build environments.
cd obj-x86_64-linux-gnu ; xvfb-run /usr/bin/ctest --force-new-ctest-process -j1 
--extra-verbose
UpdateCTestConfiguration  from 
:/build/1st/openorienteering-mapper-0.7.0/obj-x86_64-linux-gnu/DartConfiguration.tcl
UpdateCTestConfiguration  from 
:/build/1st/openorienteering-mapper-0.7.0/obj-x86_64-linux-gnu/DartConfiguration.tcl
Test project /build/1st/openorienteering-mapper-0.7.0/obj-x86_64-linux-gnu
Constructing a list of tests
Done constructing a list of tests
Updating test list for fixtures
Added 0 tests to meet fixture requirements
Checking test dependency graph...
Checking test dependency graph end
test 1
  Start  1: tst_qglobal

1: Test command: /usr/bin/cmake "-P" "tst_qglobal-RUN.cmake"
1: Test timeout computed to be: 9.99988e+06
1: * Start testing of tst_QGlobal *
1: Config: Using QtTest library 5.9.1, Qt 5.9.1 (x86_64-little_endian-lp64 
shared (dynamic) release build; by GCC 7.2.0)
1: PASS   : tst_QGlobal::initTestCase()
1: PASS   : tst_QGlobal::testqOverload()
1: PASS   : tst_QGlobal::cleanupTestCase()
1: Totals: 3 passed, 0 failed, 0 skipped, 0 blacklisted, 1ms
1: * Finished testing of tst_QGlobal *
 1/17 Test  #1: tst_qglobal ..   Passed0.07 sec
test 2
  Start  2: encoding_t

2: Test command: /usr/bin/cmake "-P" "encoding_t-RUN.cmake"
2: Test timeout computed to be: 9.99988e+06
2: * Start testing of EncodingTest *
2: Config: Using QtTest library 5.9.1, Qt 5.9.1 (x86_64-little_endian-lp64 
shared (dynamic) release build; by GCC 7.2.0)
2: PASS   : EncodingTest::initTestCase()
2: PASS   : EncodingTest::testCodepageForLanguage(cs)
2: PASS   : EncodingTest::testCodepageForLanguage(cs_x)
2: PASS   : EncodingTest::testCodepageForLanguage(ru)
2: PASS   : EncodingTest::testCodepageForLanguage(ru_RU)
2: PASS   : EncodingTest::testCodepageForLanguage(de)
2: PASS   : EncodingTest::testCodepageForLanguage(??)
2: PASS   : EncodingTest::testCodecForName()
2: PASS   : EncodingTest::cleanupTestCase()
2: Totals: 9 passed, 0 failed, 0 skipped, 0 blacklisted, 3ms
2: * Finished testing of EncodingTest *
 2/17 Test  #2: encoding_t ...   Passed0.08 sec
test 3
  Start  3: georeferencing_t

3: Test command: /usr/bin/cmake "-P" "georeferencing_t-RUN.cmake"
3: Test timeout computed to be: 9.99988e+06
3: * Start testing of GeoreferencingTest *
3: Config: Using QtTest library 5.9.1, Qt 5.9.1 (x86_64-little_endian-lp64 
shared (dynamic) release build; by GCC 7.2.0)
3: PASS   : GeoreferencingTest::initTestCase()
3: PASS   : GeoreferencingTest::testEmptyProjectedCRS()
3: PASS   : GeoreferencingTest::testGridScaleFactor()
3: PASS   : GeoreferencingTest::testCRS(EPSG:4326)
3: PASS   : GeoreferencingTest::testCRS(UTM)
3: PASS   : GeoreferencingTest::testCRSTemplates()
3: PASS   : GeoreferencingTest::testProjection(LVermGeo RLP Koblenz UTM)
3: PASS   : GeoreferencingTest::testProjection(LVermGeo RLP Koblenz GK3)
3: PASS   : GeoreferencingTest::testProjection(LVermGeo RLP Pruem UTM)
3: PASS   : GeoreferencingTest::testProjection(LVermGeo RLP Pruem GK2)
3: PASS   : GeoreferencingTest::testProjection(LVermGeo RLP Landau UTM)
3: PASS   : GeoreferencingTest::testProjection(LVermGeo RLP Landau GK3)
3: PASS   : GeoreferencingTest::testProjection(EPSG 5514 ČÚZK Dolní Temenice)
3: PASS   : GeoreferencingTest::cleanupTestCase()
3: Totals: 14 passed, 0 failed, 0 skipped, 0 blacklisted, 4ms
3: * Finished testing of GeoreferencingTest *
 3/17 Test  #3: georeferencing_t .   Passed0.08 sec
test 4
  Start  4: locale_t

4: Test command: /usr/bin/cmake "-P" "locale_t-RUN.cmake"
4: Test timeout computed to be: 9.99988e+06
4: * Start testing of LocaleTest *
4: Config: Using QtTest library 5.9.1, Qt 5.9.1 (x86_64-little_endian-lp64 
shared (dynamic) release build; by GCC 7.2.0)
4: PASS   : LocaleTest::initTestCase()
4: XFAIL  : LocaleTest::testEsperantoQLocale() Cannot construct Esperanto 
QLocale from "eo" (issue #792).
4:Loc: [openorienteering-mapper_0.7.0-1/test/locale_t.cpp(46)]
4: XFAIL  : LocaleTest::testEsperantoQLocale() Cannot construct Esperanto 
QLocale from "eo_C".
4:Loc: [openorienteering-mapper_0.7.0-1/test/locale_t.cpp(49)]
4: XFAIL  : LocaleTest::testEsperantoQLocale() Cannot construct Esperanto 
QLocale for AnyScript, AnyCountry.
4:Loc: [openorienteering-mapper_0.7.0-1/test/locale_t.cpp(52)]
4: PASS   :