Bug#894594: fix test errors, and please stop uploading binary packages without having the testsuite run

2018-04-02 Thread Matthias Klose
On 02.04.2018 11:32, Jussi Pakkanen wrote:
> On Mon, Apr 2, 2018 at 8:35 AM, Matthias Klose  wrote:
> 
>> The java and cross tests fail. and I don't see how these could succeed in the
>> past.  This package is uploaded including the binary package, so the only
>> explanation I have is that the tests were disabled during these local builds.
>> Please don't do that, and do source only uploads instead so you can see what 
>> fails.
> 
> The reason the Java tests now fail is that in the past javac would
> write its version number to stderr and not stdout and the versioned
> dependency kept it pinned to the old version (accidentally, though).
> The fix for this was already in a PR and has now been merged to
> master.
> 
> The tests themselves pass. Whenever there is a new Meson release I run
> the full testsuite in pbuilder. A release will _not_ be made until it
> fully passes. As for the actual package upload it is really out of my
> hands as it is done by pitti. I will let him know about the issue,
> though.

what a pity ;p

I checked that already openjdk-8 did output the version string on stdout, not
stderr, so this must have been failing for a long time.



Bug#894594: fix test errors, and please stop uploading binary packages without having the testsuite run

2018-04-02 Thread Jussi Pakkanen
On Mon, Apr 2, 2018 at 8:35 AM, Matthias Klose  wrote:

> The java and cross tests fail. and I don't see how these could succeed in the
> past.  This package is uploaded including the binary package, so the only
> explanation I have is that the tests were disabled during these local builds.
> Please don't do that, and do source only uploads instead so you can see what 
> fails.

The reason the Java tests now fail is that in the past javac would
write its version number to stderr and not stdout and the versioned
dependency kept it pinned to the old version (accidentally, though).
The fix for this was already in a PR and has now been merged to
master.

The tests themselves pass. Whenever there is a new Meson release I run
the full testsuite in pbuilder. A release will _not_ be made until it
fully passes. As for the actual package upload it is really out of my
hands as it is done by pitti. I will let him know about the issue,
though.



Bug#894594: fix test errors, and please stop uploading binary packages without having the testsuite run

2018-04-01 Thread Matthias Klose
Package: src:meson
Version: 0.45.1-1
Severity: serious
Tags: sid buster patch

The java and cross tests fail. and I don't see how these could succeed in the
past.  This package is uploaded including the binary package, so the only
explanation I have is that the tests were disabled during these local builds.
Please don't do that, and do source only uploads instead so you can see what 
fails.

The attached patch fixes the test failures regarding the java and the cross 
tests.

  * Fix javac detection. This cannot have worked in any source only
upload.
  * Build-depend on g++-arm-linux-gnueabihf. The cross tests call
gcc/g++ explicitly.
  * Use default-jdk-headless instead of openjdk-8.

 
diff -Nru meson-0.45.1/debian/control meson-0.45.1/debian/control
--- meson-0.45.1/debian/control 2018-03-04 20:53:50.0 +0100
+++ meson-0.45.1/debian/control 2018-04-01 09:44:20.0 +0200
@@ -29,7 +29,7 @@
   protobuf-compiler ,
   libprotobuf-dev ,
 # OpenJDK does not work on Hurd, so skip the tests.
-  openjdk-8-jdk [!hurd-i386] ,
+  default-jdk-headless [!hurd-i386] ,
   valac ,
   gobject-introspection ,
   libgirepository1.0-dev ,
@@ -57,7 +57,7 @@
   itstool ,
   libgtk-3-dev ,
 # Not available on older releases and only needed for tests
-  c++-compiler-arm-linux-gnueabihf [!armhf]  | bash-doc ,
+  g++-arm-linux-gnueabihf [!armhf]  | bash-doc ,
   valgrind [amd64 i386] ,
   llvm-dev ,
   libsdl2-dev ,
diff -Nru meson-0.45.1/debian/patches/fix-javac-test.diff 
meson-0.45.1/debian/patches/fix-javac-test.diff
--- meson-0.45.1/debian/patches/fix-javac-test.diff 1970-01-01 
01:00:00.0 +0100
+++ meson-0.45.1/debian/patches/fix-javac-test.diff 2018-04-01 
09:43:52.0 +0200
@@ -0,0 +1,13 @@
+Index: b/mesonbuild/environment.py
+===
+--- a/mesonbuild/environment.py
 b/mesonbuild/environment.py
+@@ -661,7 +661,7 @@ class Environment:
+ except OSError:
+ raise EnvironmentException('Could not execute Java compiler "%s"' 
% ' '.join(exelist))
+ version = search_version(err)
+-if 'javac' in err:
++if 'javac' in out or 'javac' in err:
+ return JavaCompiler(exelist, version)
+ raise EnvironmentException('Unknown compiler "' + ' '.join(exelist) + 
'"')
+ 
diff -Nru meson-0.45.1/debian/patches/series meson-0.45.1/debian/patches/series
--- meson-0.45.1/debian/patches/series  2017-08-15 00:26:22.0 +0200
+++ meson-0.45.1/debian/patches/series  2018-04-01 09:44:20.0 +0200
@@ -1 +1,3 @@
 1-disable-openmpi.patch
+fix-javac-test.diff
+unversioned-armhf-cross.diff
diff -Nru meson-0.45.1/debian/patches/unversioned-armhf-cross.diff 
meson-0.45.1/debian/patches/unversioned-armhf-cross.diff
--- meson-0.45.1/debian/patches/unversioned-armhf-cross.diff1970-01-01 
01:00:00.0 +0100
+++ meson-0.45.1/debian/patches/unversioned-armhf-cross.diff2018-04-01 
09:44:20.0 +0200
@@ -0,0 +1,28 @@
+Index: b/cross/ubuntu-armhf.txt
+===
+--- a/cross/ubuntu-armhf.txt
 b/cross/ubuntu-armhf.txt
+@@ -1,8 +1,8 @@
+ [binaries]
+ # we could set exe_wrapper = qemu-arm-static but to test the case
+ # when cross compiled binaries can't be run we don't do that
+-c = '/usr/bin/arm-linux-gnueabihf-gcc-7'
+-cpp = '/usr/bin/arm-linux-gnueabihf-g++-7'
++c = '/usr/bin/arm-linux-gnueabihf-gcc'
++cpp = '/usr/bin/arm-linux-gnueabihf-g++'
+ rust = ['rustc', '--target', 'arm-unknown-linux-gnueabihf', '-C', 
'linker=/usr/bin/arm-linux-gnueabihf-gcc-7']
+ ar = '/usr/arm-linux-gnueabihf/bin/ar'
+ strip = '/usr/arm-linux-gnueabihf/bin/strip'
+Index: b/run_tests.py
+===
+--- a/run_tests.py
 b/run_tests.py
+@@ -131,7 +131,7 @@ def get_fake_options(prefix):
+ return opts
+ 
+ def should_run_linux_cross_tests():
+-return shutil.which('arm-linux-gnueabihf-gcc-7') and not 
platform.machine().lower().startswith('arm')
++return shutil.which('arm-linux-gnueabihf-gcc') and not 
platform.machine().lower().startswith('arm')
+ 
+ def run_configure_inprocess(meson_command, commandlist):
+ old_stdout = sys.stdout