Bug#983254: openorienteering-mapper: FTBFS with PROJ 8.0.0

2021-02-25 Thread Kai Pastor, DG0YT

Found this in the junk e-mails today...

Am 23.02.21 um 19:20 schrieb Sebastiaan Couwenberg:


There is still a test failure, though. Refer to the attached buildlog
for details.


This seems unrelated to PROJ 8.0.0.

The failing test creates a QTemporaryFile, removes all permissions from 
the file via QFile::setPermissions(), and expects QFileInfo::readable() 
to return false for the path of the temporary file. This expectation 
seems to be not met. The test may be volatile, but worked so far, and I 
didn't have a better idea how to solve this in a portable way.


If there is another change in the environment, hints are welcome.

Best regards,
Kai



Bug#983254: openorienteering-mapper: FTBFS with PROJ 8.0.0

2021-02-24 Thread Kai Pastor, DG0YT

Am 24.02.21 um 08:46 schrieb Sebastiaan Couwenberg:

On 2/24/21 8:04 AM, Kai Pastor, DG0YT wrote:

I would agree that many projects have shortcoming in how they use CMake,
partly due to past shortcomings of CMake and its documentation, partly
due to ignorance of cross-platform building and packaging. But IMO it
goes to far when you imply that CMake is to blame for issues with paths
and reproducibility.

CMake uses abolute paths, whereas autotools uses relative paths. How is
CMake not to blame from issues that arise from that?


If issue arise from the use of absolute path, it is okay to consider to 
CMake as a cause of this issues. But it doesn't mean it can always be 
blamed. Example:


This Debian package was flagged to not build reproducible, due to 
absolute paths in binaries. But the installed artifacts were fully 
reproducible. The offending binaries were tests which were meant to be 
run in the build environment, nowhere else.



Since your more comfortable with CMake, maybe you can help upstream the
pkg-config patch so that the Fedora package doesn't have to patch the
CMake build to have proj.pc installed.

Did Fedora try to do that?

We really need to get downstream projects more involved in PROJ
development to help support their needs.


Sure. I'm doing that for at least for PROJ, GDAL, Qt, Poppler.

And I really want to use the small gains in build time CMake can offer 
e.g. with Ninja, when working with so many upstreams and platforms. We 
probably can agree that a packager (infrequent builds of a particular, 
rare changes to a clean build system, facing many leaf packages) and a 
developer (frequent builds, regular modifications to the build system, 
onboarding of new developers, facing many upstream packages) may have 
different requirements.


Best regards,
Kai



Bug#983254: openorienteering-mapper: FTBFS with PROJ 8.0.0

2021-02-23 Thread Kai Pastor, DG0YT

Am 24.02.21 um 05:55 schrieb Sebastiaan Couwenberg:

On 2/24/21 12:58 AM, Kai Pastor, DG0YT wrote:

Am 23.02.21 um 19:53 schrieb Sebastiaan Couwenberg:

It's good practice to include the Find modules for any dependencies that
are not part of cmake itself to not need upstream projects to install
cmake modules for them.

I think it is deprecated legacy practice, not good practice. Find
modules are poorly standardized, poorly maintained, and poorly tested.
It would be much better to provide PROJ config files as soon as
possible, instead of letting more developers start using PROJ with
non-standard find modules picked from random internet locations.

I wonder if there is a blocker for building debian PROJ with CMake. I
build PROJ for Android, macOS, Windows from Debian tarballs - with
cmake, not using debian/rules.
https://github.com/OpenOrienteering/superbuild/blob/master/proj-7.1.1.cmake

Switching from autotools to cmake is generally a regression, cmake
doesn't handle multiarch as well, and because it uses absolute paths
instead of relative paths it hinders reproducible builds.

See the recent discussion on the geos-devel lists for example:

  https://lists.osgeo.org/pipermail/geos-devel/2021-January/010078.html


From the mailing list post and its links I learn that

a) actively maintained projects do fix reported build system issues quickly.

b) there is some confusion about dealing with CMAKE_BUILD_TYPE, NDEBUG 
and reproducible paths.


I would agree that many projects have shortcoming in how they use CMake, 
partly due to past shortcomings of CMake and its documentation, partly 
due to ignorance of cross-platform building and packaging. But IMO it 
goes to far when you imply that CMake is to blame for issues with paths 
and reproducibility.


(Is there a Debian documentation for how to prepare CMake projects to 
help with Debian multi-arch?)



The CMake build of PROJ doesn't seem to provide a pkgconfig file, but
even for mips64el, the single proj.pc looks much less complex than the
set of cmake config files, or the patch proposed for FindProj4.cmake.

We're not going to switch to cmake for the proj package as long as
autotools is supported, because that is the best build system from a
packaging point of view.


Okay, so this covers your packaging point of view where autotools are 
already available. But it doesn't align with my requirements as a 
developer, and also not with my experience in single-arch 
bundling/packaging third-party components for Android, macOS, Windows.


(And I wouldn't even say that CMake is the best system for some purpose.)


The best solution for downstream projects not wanting to include their
own FindProj modules is to update the autotools build system to also
install the cmake bits. Perhaps you can provide a patch for that which
PROJ upstream can merge?


No, I don't think learning autotools and then teaching autotools to 
provide CMake config files, possibly for multi-arch, is a good use of my 
resources. But you may ask for patches for PROJ's CMake build system. 
Multiarch if I can test/verify in an amd_64 environment.


Kai



Bug#983254: openorienteering-mapper: FTBFS with PROJ 8.0.0

2021-02-23 Thread Kai Pastor, DG0YT

Am 23.02.21 um 19:53 schrieb Sebastiaan Couwenberg:

A patch for that was just submitted to this bugreport.


Thanks.


It's good practice to include the Find modules for any dependencies that
are not part of cmake itself to not need upstream projects to install
cmake modules for them.


I think it is deprecated legacy practice, not good practice. Find 
modules are poorly standardized, poorly maintained, and poorly tested. 
It would be much better to provide PROJ config files as soon as 
possible, instead of letting more developers start using PROJ with 
non-standard find modules picked from random internet locations.


I wonder if there is a blocker for building debian PROJ with CMake. I 
build PROJ for Android, macOS, Windows from Debian tarballs - with 
cmake, not using debian/rules.

https://github.com/OpenOrienteering/superbuild/blob/master/proj-7.1.1.cmake

The CMake build of PROJ doesn't seem to provide a pkgconfig file, but 
even for mips64el, the single proj.pc looks much less complex than the 
set of cmake config files, or the patch proposed for FindProj4.cmake.


Kind regards,
Kai



Bug#983254: openorienteering-mapper: FTBFS with PROJ 8.0.0

2021-02-23 Thread Kai Pastor, DG0YT

Am 21.02.21 um 16:32 schrieb Bas Couwenberg:

Source: openorienteering-mapper
Version: 0.9.4-2
Severity: important
Tags: upstream ftbfs
User: debian-...@lists.debian.org
Usertags: proj-8.0
Control: forwarded -1 https://github.com/OpenOrienteering/mapper/issues/1214

Dear Maintainer,

Your package FTBFS with PROJ 8.0.0:

  CMake Error at 
/usr/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:165 (message):
Could NOT find PROJ4 (missing: PROJ4_INCLUDE_DIR)

It needs to be ported to use proj.h instead of proj_api.h which has been 
removed.

Kind Regards,

Bas


Mapper source code is ported to use proj.h for modern PROJ. However, the 
embedded fallback FindPROJ4.cmake module isn't, and possible won't.


Does Debian build PROJ 8.0.0 with cmake? Debian doesn't seem to provide 
the cmake config files for PROJ. openorienteering-mapper is meant to 
pick up these config files. If it finds a recent PROJ in that way, it 
won't use proj_api.h.


Regards, Kai



Bug#875847: Patch to fix ".qhc files not reproducible"

2020-11-25 Thread Kai Pastor, DG0YT

Am 25.11.20 um 19:05 schrieb Dmitry Shachnev:

On Wed, Nov 25, 2020 at 06:15:53AM +0100, Kai Pastor, DG0YT wrote:

I also left a link to this Debian bug in Qt's code review for the offending
change.

Can you please share a link to the mentioned code review?

https://bugreports.qt.io/browse/QTBUG-62697 has only some old reviews from
2018 linked.

https://codereview.qt-project.org/c/qt/qttools/+/203587

(Found again via seaching "status:merged commentby:dg...@darc.de")

Ah, sorry, I misunderstood you and thought that you submitted a new code
review with your patch. But you commented on change that introduced that code.

Is there any reason why you didn't submit your patch to gerrit?
Will you mind if I do it?

--
Dmitry Shachnev


Feel free to submit it.

I didn't submit it to gerrit because contributing in that way became too 
much work for me when they required contributions to go to dev, not LTS. 
(And I didn't realize that there is a *new* Qt Help issue until Oct 
2020, with dev meaning Qt 6 IIRC.)


Kai



Bug#875847: Patch to fix ".qhc files not reproducible"

2020-11-24 Thread Kai Pastor, DG0YT

Am 24.11.20 um 19:24 schrieb Dmitry Shachnev:

Hi Kai!

On Thu, Oct 15, 2020 at 07:48:49AM +0200, Kai Pastor, DG0YT wrote:

This patch fixes the creation of the offending timestamp, by clamping to
SOURCE_DATE_EPOCH as specified.

Thank you for the patch and sorry for delayed response!


I also left a link to this Debian bug in Qt's code review for the offending
change.

Can you please share a link to the mentioned code review?

https://bugreports.qt.io/browse/QTBUG-62697 has only some old reviews from
2018 linked.


https://codereview.qt-project.org/c/qt/qttools/+/203587

(Found again via seaching "status:merged commentby:dg...@darc.de")


Clamp registered collection time-stamp to SOURCE_DATE_EPOCH if set.
--- a/src/assistant/help/qhelpcollectionhandler.cpp
+++ b/src/assistant/help/qhelpcollectionhandler.cpp
@@ -2197,7 +2197,14 @@
  m_query->addBindValue(fileName);
  const QFileInfo fi(absoluteDocPath(fileName));
  m_query->addBindValue(fi.size());
-m_query->addBindValue(fi.lastModified().toString(Qt::ISODate));
+QDateTime last_modified = fi.lastModified();
+if (qEnvironmentVariableIsSet("SOURCE_DATE_EPOCH"))
+{
+qint64 source_date_epoch = 
qEnvironmentVariableIntValue("SOURCE_DATE_EPOCH");
+if (source_date_epoch < last_modified.toSecsSinceEpoch())
+
last_modified.setSecsSinceEpoch(qEnvironmentVariableIntValue("SOURCE_DATE_EPOCH"));

I think we can use setSecsSinceEpoch(source_date_epoch) here?


I think this was my intention.

Kai.



Bug#972294: openorienteering-mapper: FTBFS with DEB_BUILD_OPTIONS=reproducible=+fixfilepath

2020-11-10 Thread Kai Pastor, DG0YT

Am 10.11.20 um 11:35 schrieb Simon McVittie:

On Fri, 16 Oct 2020 at 08:29:48 +0200, Kai Pastor, DG0YT wrote:

So far, all cases in openorienteering-mapper were tests which were expected
to be run in the build environment and indeed access the pristine test data
in the source directory.

The current issue comes from using Qt's QFINDTESTDATA(), which relies on a
cpp macro (QT_TESTCASE_BUILDDIR) pointing "to the working directory from
which the compiler is invoked" in order to "the absolute path of the source
directory" [!], https://doc.qt.io/qt-5/qtest.html#QFINDTESTDATA .
QT_TESTCASE_BUILDDIR is defined by Qt's cmake file.

One way this is often done, particularly in the GNOME ecosystem, is to
check for an environment variable that is set by the build system while
running tests. There are often two environment variables - one for the
source directory and one for the build directory - so that tests can
either ask for data files that are distributed with the source code, or
data files that were compiled along with the test itself and placed in
the build directory, if those directories are different.

If the environment variable is not set, there's a fallback that would
be reasonable to use if the test has been installed system-wide,
typically into /usr/libexec/installed-tests (which is something
that various GNOME and GNOME-adjacent packages support doing, for
"as-installed" testing like Debian's autopkgtest: see
<https://wiki.gnome.org/Initiatives/GnomeGoals/InstalledTests>).
In GLib the fallback is to use dirname(argv[0]), but hard-coding an
installation path would also be reasonable here.

This avoids having to hard-code the path to either the source or build
directory into any binaries, even if test executables and data are going
to be installed into /usr/libexec/installed-tests for "as-installed"
testing.

Some packages need to set environment variables for build-time testing
*anyway*, so that third-party components will find their required data
in the source or build tree: for example, you might need to set PATH,
LD_LIBRARY_PATH, XDG_DATA_DIRS and similar variables. The variables used
by this particular package's tests can be set in the same way.

The implementation that is normally used in GNOME is GLib's
g_test_build_filename(), which works something like this pseudocode:

 if file_type == G_TEST_DIST:
 dir = getenv("G_TEST_SRCDIR")
 elif file_type == G_TEST_BUILT:
 # this branch is the closest equivalent of QFINDTESTDATA
 dir = getenv("G_TEST_BUILDDIR")
 else:
 fatal error

 if dir is null:
 dir = directory containing the running executable

 return join_paths(dir, first_path, ...)

An implementation of the build-system side of this in a simple
Makefile-based build system would look something like:

 export G_TEST_BUILDDIR = $(CURDIR)
 export G_TEST_SRCDIR = $(srcdir)

 check:
 ./test-foo
 ./test-bar

Obviously the code would look a bit different for Autotools, CMake or
Meson, but all are capable of doing this (Autotools uses
AM_TESTS_ENVIRONMENT, CMake uses
set_tests_properties(... PROPERTIES ENVIRONMENT ...), Meson uses
test(..., env : ...)).

I assume qmake would also be able to do this, but I don't know how.

 smcv

I did consider these options, but I am not convinced. One perspective I 
am looking at is onboarding of new contributors (upstream). 
Reproducibility helps with that, no doubt. But with your favourite IDE 
as a development tool, or at the command line, why to make it hard to 
just run a particular test executable? Why add complexity to each and 
every package's source code or build system?


... or how to fix QFINDTESTDATA? This macro is the canonical way with 
Qt. It should be made compatible with reproducible builds. The solution 
might include environment variables, but implemented by Qt Test, not 
implemented in each and every package.


And then one more step, and standardize the variables' names (like 
SOURCE_DATE_EPOCH).




Bug#972294: openorienteering-mapper: FTBFS with DEB_BUILD_OPTIONS=reproducible=+fixfilepath

2020-11-09 Thread Kai Pastor, DG0YT

Am 10.11.20 um 01:00 schrieb Vagrant Cascadian:

On 2020-10-16, Kai Pastor, DG0YT wrote:

Am 16.10.20 um 01:19 schrieb Vagrant Cascadian:

When the reproducible=+fixfilepath feature is enabled (either through
DEB_BUILD_OPTIONS, or using a dpkg that enables this by default),
openorienteering-mapper fails to build from source:


http://qa-logs.debian.net/2020/09/26.fixfilepath/openorienteering-mapper_0.9.3-1_unstable_fixfilepath.log

While the "fixfilepath" feature is not currently enabled by
dpkg-buildflags by default, it may become the default at some point in
the future, and can by triggered manually by setting
DEB_BUILD_OPTIONS=reproducible=+fixfilepath in the build environment.

More information about this issue is available at:


https://tests.reproducible-builds.org/debian/issues/unstable/ftbfs_due_to_f-file-prefix-map_issue.html

I have not identified the exact cause of this issue for
openorienteering-mapper, but a common triggering issue is test suites
expectinfg __FILE__ to resolve to an absolute path.

The attached patch works around this issue by disabling the fixfilepath
feature in debian/rules using DEB_BUILD_MAINT_OPTIONS=-fixfilepath.

... sorry for the delay...


So far, all cases in openorienteering-mapper were tests which were
expected to be run in the build environment and indeed access the
pristine test data in the source directory.
The current issue comes from using Qt's QFINDTESTDATA(), which relies on
a cpp macro (QT_TESTCASE_BUILDDIR) pointing "to the working directory
from which the compiler is invoked" in order to "the absolute path of
the source directory" [!],
https://doc.qt.io/qt-5/qtest.html#QFINDTESTDATA . QT_TESTCASE_BUILDDIR
is defined by Qt's cmake file. I do see some inconsistency there, but
this is a different story.

Yes, this is part of the known issues with test data mentioned; the
majority of known build failures triggered by fixfilepath are these
use-cases with QFINDTESTDATA.



In previous cases I "solved" the failing reproducible builds by: using
another macro, carrying the source directory. But I'm not sure if this
is what is intented. While I do have ideas how to workaround this in
other ways, I would appreciate a clear recommendation how test data in
the source dir should be handled.

If the package in question only uses such features in test suites that
are not shipped in the binary packages, it's perfectly reasonable to
disable the fixfilepath feature; it will likely have no effect on the
resulting packages either way.

If the package embeds file paths in files shipped in the binary
packages, then it might be worth some of the workarounds you suggested
with the test suites, and further debugging what exactly is embedding
the build paths; enabling fixfilepath only catches some of the issues of
embedded build paths, so it may be a moot point for any particular
package.

Disabling fixfilepath in your package will allow
tests.reproducible-builds.org to be able to test builds of the
openorienteering-mapper package in unstable and experimental again,
where the build path is varied, and possibly help identify weather
further exploration is needed.

At this point, I'd suggest disabling fixfilepath for this particular
package. But I submitted the patch to do that, so maybe I am biased? :)


Trying to express my concerns in terms of reproducible-builds.org 
terminology definitions:


As the author of the software, I define the "expected reproducible 
artifacts" to be the files created by "make install".
With disabling fixfilepath, is there another test which not only 
verifies "bit-by-bit identical copies of all specified artifacts", but 
would also offer the diagnosis that the build path ended up in the 
installed artifacts?


Last not least, "make install" is the canonical way of creating the set 
of artifacts meant for distribution.




Hope that is a clear enough recommendation?


Oh, and, sorry for not getting back to you till now! Not sure how I lost
track of this...


live well,
   vagrant


Thanks!
Kai



Bug#972294: openorienteering-mapper: FTBFS with DEB_BUILD_OPTIONS=reproducible=+fixfilepath

2020-10-15 Thread Kai Pastor, DG0YT

Am 16.10.20 um 01:19 schrieb Vagrant Cascadian:

Package: openorienteering-mapper
Severity: normal
Tags: patch
User: reproducible-bui...@lists.alioth.debian.org
Usertags: fixfilepath ftbfs
X-Debbugs-Cc: reproducible-b...@lists.alioth.debian.org

When the reproducible=+fixfilepath feature is enabled (either through
DEB_BUILD_OPTIONS, or using a dpkg that enables this by default),
openorienteering-mapper fails to build from source:

   
http://qa-logs.debian.net/2020/09/26.fixfilepath/openorienteering-mapper_0.9.3-1_unstable_fixfilepath.log

While the "fixfilepath" feature is not currently enabled by
dpkg-buildflags by default, it may become the default at some point in
the future, and can by triggered manually by setting
DEB_BUILD_OPTIONS=reproducible=+fixfilepath in the build environment.

More information about this issue is available at:

   
https://tests.reproducible-builds.org/debian/issues/unstable/ftbfs_due_to_f-file-prefix-map_issue.html

I have not identified the exact cause of this issue for
openorienteering-mapper, but a common triggering issue is test suites
expectinfg __FILE__ to resolve to an absolute path.

The attached patch works around this issue by disabling the fixfilepath
feature in debian/rules using DEB_BUILD_MAINT_OPTIONS=-fixfilepath.

Thanks for maintaining openorienteering-mapper!


live well,
   vagrant

So far, all cases in openorienteering-mapper were tests which were 
expected to be run in the build environment and indeed access the 
pristine test data in the source directory.


The current issue comes from using Qt's QFINDTESTDATA(), which relies on 
a cpp macro (QT_TESTCASE_BUILDDIR) pointing "to the working directory 
from which the compiler is invoked" in order to "the absolute path of 
the source directory" [!], 
https://doc.qt.io/qt-5/qtest.html#QFINDTESTDATA . QT_TESTCASE_BUILDDIR 
is defined by Qt's cmake file. I do see some inconsistency there, but 
this is a different story.


In previous cases I "solved" the failing reproducible builds by: using 
another macro, carrying the source directory. But I'm not sure if this 
is what is intented. While I do have ideas how to workaround this in 
other ways, I would appreciate a clear recommendation how test data in 
the source dir should be handled.


Thanks,
Kai



Bug#875847: Patch to fix ".qhc files not reproducible"

2020-10-14 Thread Kai Pastor, DG0YT
This patch fixes the creation of the offending timestamp, by clamping to 
SOURCE_DATE_EPOCH as specified.


I also left a link to this Debian bug in Qt's code review for the 
offending change.


Best regards,
Kai
Clamp registered collection time-stamp to SOURCE_DATE_EPOCH if set.
--- a/src/assistant/help/qhelpcollectionhandler.cpp
+++ b/src/assistant/help/qhelpcollectionhandler.cpp
@@ -2197,7 +2197,14 @@
 m_query->addBindValue(fileName);
 const QFileInfo fi(absoluteDocPath(fileName));
 m_query->addBindValue(fi.size());
-m_query->addBindValue(fi.lastModified().toString(Qt::ISODate));
+QDateTime last_modified = fi.lastModified();
+if (qEnvironmentVariableIsSet("SOURCE_DATE_EPOCH"))
+{
+qint64 source_date_epoch = qEnvironmentVariableIntValue("SOURCE_DATE_EPOCH");
+if (source_date_epoch < last_modified.toSecsSinceEpoch())
+last_modified.setSecsSinceEpoch(qEnvironmentVariableIntValue("SOURCE_DATE_EPOCH"));
+}
+m_query->addBindValue(last_modified.toString(Qt::ISODate));
 if (!m_query->exec())
 return false;
 


Bug#972178: openorienteering-mapper: FTBFS with Qt 5.15: error: aggregate 'QPainterPath outside_path' has incomplete type and cannot be defined

2020-10-13 Thread Kai Pastor, DG0YT

Am 13.10.20 um 20:05 schrieb Dmitry Shachnev:

Source: openorienteering-mapper
Version: 0.9.3-1
Severity: important
Tags: ftbfs
User: debian-qt-...@lists.debian.org
Usertags: qt5.15

Dear Maintainer,

openorienteering-mapper fails to build with Qt 5.15, currently available in
experimental:

   /build/openorienteering-mapper-0.9.3/src/gui/print_tool.cpp: In member 
function 'virtual void OpenOrienteering::PrintTool::draw(QPainter*, 
OpenOrienteering::MapWidget*)':
   /build/openorienteering-mapper-0.9.3/src/gui/print_tool.cpp:144:15: error: 
aggregate 'QPainterPath outside_path' has incomplete type and cannot be defined
 144 |  QPainterPath outside_path;
 |   ^~~~

The full build log is attached.

--
Dmitry Shachnev


Fixed in 0.9.4, already released. Cf.

https://build.opensuse.org/package/show/home:dg0yt/openorienteering-mapper

Regards,
Kai



Bug#941903: snapshot.debian.org: 404 error for one snapshot.debian.org IP address but not for the other

2019-10-21 Thread Kai Pastor, DG0YT

Am 21.10.19 um 15:11 schrieb Peter Palfrader:

Evan Jones schrieb am Monday, dem 21. October 2019:


THANK YOU and whoever else is involved in maintaining this. Just letting
you know that I appreciate the work here. I don't work for Google, but I do
use Distroless [1], a lightweight Debian-based container runtime that uses
snapshot to have reproducible builds, so this was definitely annoying to
work around. Thanks!

[1] https://github.com/GoogleContainerTools/distroless

I'm tempted to think that this tool should not use snapshot but the real
mirrors that can handle the load way better.

Thank you very much, indeed. Coincidentally, I'm also using the 
snapshots for non-debian build scripts (for Windows, macOS, Android). 
I'm not using the debian rules, but the copyright, patches, and DFSG 
source tarballs. I cannot switch versions at the pace of the debian 
packages, and I'm unaware of mirrors which provide long-term stable 
download URLs for older versions (except of uploads to/downloads from my 
own webspace). The sources are cached in CI, so the load should be very 
low anyway.


OTOH it seems this kind of usage helps to discover such debian snapshots 
issues quickly.


Kai.



Bug#942485: snapshot.debian.org: "404 Not found" for sqlite3_3.30.1-1.debian.tar.xz

2019-10-17 Thread Kai Pastor, DG0YT

This is probably the same issue as #941903.



Bug#919598: zlib: copyright file needs updating

2019-01-17 Thread Kai Pastor, DG0YT

Source: zlib
Severity: normal

Dear Maintainer,

a) the zlib 1:1.2.11.dfsg-1 copyright file claims to be based on sources 
from zlib-1.0.4.tar.gz which is obviously wrong.


b) the Files-Excluded field is not up-to-date for 
zlib_1.2.11.dfsg.orig.tar.gz. The listed contrib/testzlib is in the DFSG 
sources, but the now-removed win32 directory is not listed as 
Files-Excluded.


The win32 directory is how I came here: I'm building for Mingw from the 
Debian sources, which now fails. Is the removal of the win32 directory 
neccessary? I do see the restrictions established in win32/DLL_FAQ.txt. 
However, I don't think these restrictions are removed by removing this 
file. They may apply to the DFSG sources as well, even with the win32 
dir removed.


Best regards
Kai



Bug#903237: openorienteering-mapper: FTBFS with Qt 5.11.1 in experimental due to tests

2018-07-08 Thread Kai Pastor, DG0YT

Am 08.07.2018 um 06:03 schrieb Simon Quigley:

Source: openorienteering-mapper
Version: 0.8.1.1-1
Severity: important
User: debian-qt-...@lists.debian.org
Usertags: qt5.11.1

Dear Maintainer,

Your package fails to build from source against Qt 5.11.1 in 
Experimental with the following error:


...

16: Test command: /usr/bin/cmake "-P" "transform_t-RUN.cmake"
16: Test timeout computed to be: 1000
16: * Start testing of TransformTest *
16: Config: Using QtTest library 5.11.1, Qt 5.11.1 
(x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 7.3.0)

16: PASS   : TransformTest::initTestCase()
16: PASS   : TransformTest::testTransformBasics()
16: PASS   : TransformTest::testTransformIdentity()
16: PASS   : TransformTest::testTransformTranslate()
16: PASS   : TransformTest::testTransformProject()
16: PASS   : TransformTest::testTransformRotate(No rotation)
16: PASS   : TransformTest::testTransformRotate(90 deg)
16: PASS   : TransformTest::testTransformRotate(180 deg)
16: PASS   : TransformTest::testTransformRotate(200 deg)
16: PASS   : TransformTest::testTransformRotate(270 deg)
16: PASS   : TransformTest::testTransformCombined(No rotation)
16: PASS   : TransformTest::testTransformCombined(90 deg)
16: PASS   : TransformTest::testTransformCombined(180 deg)
16: PASS   : TransformTest::testTransformCombined(200 deg)
16: PASS   : TransformTest::testTransformCombined(270 deg)
16: PASS   : TransformTest::testTransformRoundTrip(No rotation)
16: PASS   : TransformTest::testTransformRoundTrip(90 deg)
16: PASS   : TransformTest::testTransformRoundTrip(180 deg)
16: PASS   : TransformTest::testTransformRoundTrip(-160 deg)
16: PASS   : TransformTest::testTransformRoundTrip(-90 deg)
16: PASS   : TransformTest::testEstimateNonIsometric()
16: FAIL!  : TransformTest::testEstimateSimilarityTransformation() 
Compared values are not the same
16:    Actual   (QPointF(passpoints[0].calculated_coords)): 
QPointF(1.95943e-15,-32)
16:    Expected (QPointF(passpoints[0].dest_coords))  : 
QPointF(0,-32)

16:    Loc: [/<>/test/transform_t.cpp(368)]
16: PASS   : TransformTest::cleanupTestCase()
16: Totals: 22 passed, 1 failed, 0 skipped, 0 blacklisted, 1ms
16: * Finished testing of TransformTest *
16: CMake Error at transform_t-RUN.cmake:35 (message):
16:   Test transform_t failed: 1
16: 
I see this error since a few weeks in our builds for Fedora Rawhide and 
openSUSE Tumbleweed on OBS. What fails is a fuzzy comparison close to 
zero. It is not triggered by a change in openorienteering-mapper: 
1.95943e-15 is the actual value also in builds that succeed.


I was able to track this down to a change in Qt 5.11.1, and left a 
comment there: https://codereview.qt-project.org/#/c/227223/


The Qt bug may trigger more apps to FTBFS.

Kai (upstream)



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: proj transition started, increasing severity to serious

2018-03-04 Thread Kai Pastor, DG0YT

Am 04.03.2018 um 10:03 schrieb Sebastiaan Couwenberg:

severity 889931 serious
severity 876934 serious
severity 889936 serious
thanks

The proj transition (#891966) has started, these build failures are now RC.

Kind Regards,

Bas


Again, 876934 was reported for FTBFS in reproducible builds. This should 
be fixed by updating to Mapper 0.8.0.


openorienteering-mapper in Debian also FTBFS where libpoppler exports a 
C++ class Object in the global namespace, by tests failing due to 
(indirect!) linking, not even usage. It should be fixed by updating to 
Mapper 0.8.0.


I don't expect an issues with proj 5.0.0.

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

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-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#865180: On Big Endian support

2017-08-31 Thread Kai Pastor, DG0YT

Relevant upstream changes for Big Endian builds are

aed9a2d7d20d019c8cf5dff0d8e5edeee2b4d2d8
14a683b07b7657f766b84c6c67f9080bef8af7c5

Cf. 
https://github.com/OpenOrienteering/mapper/commits/14a683b07b7657f766b84c6c67f9080bef8af7c5/CMakeLists.txt




Bug#872291: openorienteering-mapper: unable to open files with spaces in their names

2017-08-15 Thread Kai Pastor, DG0YT

Am 15.08.2017 um 21:48 schrieb Graham Inggs:

Source: openorienteering-mapper
Version: 0.6.7-1

OpenOrienteering Mapper is unable to open files with spaces in their
names from the command line.  This also prevents users from
double-clicking on a map with a space in its name from a file manager;
e.g. Nautilus.  These files can be opened from within OpenOrienteering
Mapper though.

$ cd /usr/share/openorienteering-mapper/examples/
$ Mapper 'forest sample.omap'

Two error messages appear:

Cannot open file: forest
File format not recognized,

and:

It seems that OpenOrienteering Mapper crashed the last time this file
was opened:
forest
Really retry to open it?

Clicking 'No' results in the following:

Cannot open file: sample.omap for reading.


Not reproducible in latest upstream release and dev, from bash and from 
dash.

The following works, too:

$ cd /usr/share/openorienteering-mapper/examples/
$ Mapper forest\ sample.omap

The relevant code uses QApplication::arguments and hasn't changed 
significantly since 2013:


https://github.com/OpenOrienteering/mapper/blob/master/src/main.cpp#L147
https://github.com/OpenOrienteering/mapper/commit/14bfdef265343e22d91345793612eaf16c56c353

Check Qt / other Qt apps.



Bug#871820: openorienteering-mapper FTBFS: Test map_t Failed

2017-08-12 Thread Kai Pastor, DG0YT

The only relevant change in the environment I see is gcc-7.

According to https://tracker.debian.org/pkg/gcc-7:
"[2017-08-08] Accepted gcc-7 7.1.0-13 (source) into unstable"

According to 
https://tests.reproducible-builds.org/debian/history/openorienteering-mapper.html, 
openorienteering-mapper 0.6.71 FTBFS on unstable amd64 since 2017-08-08 
16:28.


(Don't know what really fails inside the test, but it loads an external 
file, the path being determined using the __FILE__ macro. Hope the 
compiler didn't break this.)




Bug#865180: On Big Endian support

2017-06-21 Thread Kai Pastor, DG0YT
Mapper contains binary file format implementations which are known to 
break on Big Endian machines. Mapper remains usable without these file 
formats since the current native format is based on XML. However, the 
loss of the OCD format would harm exchange with common proprietary 
software. This might surprise some users.


In addition, I didn't see a possibility to do Big Endian builds without 
much effort. This is now mitigated by the possibility to build with 
openSUSE Build service (even locally) for s390x. However, all changes 
which I could implement upstream would arrive in 0.7.x or later, and 
cannot easily be backported, due to major changes in source file 
structure and in CMake files.


Kai, dg0yt



Bug#839205: openorienteering-mapper: New version available on Github

2016-09-29 Thread Kai Pastor, DG0YT

Package: openorienteering-mapper
Version: 0.6.3-2

Dear Maintainer,

OpenOrienteering Mapper is developed on Github
(https://github.com/OpenOrienteering/mapper/).
The current release is 0.6.5.
The watch file in Debian needs to be corrected to point to Github 
instead of Sourceforge.


Thanks.