Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

t/00-load.t Failing Due To "unsupported version: 2.1.1" #174

Open
wbraswell opened this issue Feb 3, 2020 · 8 comments
Open

t/00-load.t Failing Due To "unsupported version: 2.1.1" #174

wbraswell opened this issue Feb 3, 2020 · 8 comments

Comments

@wbraswell
Copy link
Contributor

As with #168 , I am seeing this error now, on a stable system where I have never seen it before!

This bug appears to be related to #165

As you can see from gsl-config below, my GSL version is 2.1, but still I am getting failure due to unsupported version: 2.1.1

SYSTEM INFO:
Ubuntu 16.04.4 LTS

$ uname -a
Linux hostname 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
$ perl -v
This is perl 5, version 22, subversion 1 (v5.22.1) built for x86_64-linux-gnu-thread-multi
$ gsl-config --version
2.1
$ gsl-config --libs
-L/usr/lib/x86_64-linux-gnu -lgsl -lgslcblas -lm
$ gsl-config --cflags
-I/usr/include
$ dpkg -s libgsl-dev
Package: libgsl-dev
Status: install ok installed
Priority: optional
Section: libdevel
Installed-Size: 6094
Architecture: amd64
Source: gsl
Version: 2.1+dfsg-2

BRIEF ERROR OUTPUT:

unsupported version: 2.1.1 at t/00-load.t line 14.
BEGIN failed--compilation aborted at t/00-load.t line 15.
# Tests were run but no plan was declared and done_testing() was not seen.
# Looks like your test exited with 255 just after 1.
t/00-load.t ........ 
Dubious, test returned 255 (wstat 65280, 0xff00)
All 1 subtests passed
...
[[[ OTHER TESTS HERE ]]]
...
Test Summary Report
-------------------
t/00-load.t      (Wstat: 65280 Tests: 1 Failed: 0)
  Non-zero exit status: 255
  Parse errors: No plan found in TAP output
t/SF.t           (Wstat: 0 Tests: 1074 Failed: 0)
  TODO passed:   22
t/SparseMatrix.t (Wstat: 512 Tests: 0 Failed: 0)
  Non-zero exit status: 2
  Parse errors: No plan found in TAP output
Files=56, Tests=4093, 13 wallclock secs ( 0.84 usr  0.13 sys + 11.65 cusr  1.11 csys = 13.73 CPU)
Result: FAIL
Failed 2/56 test programs. 0/4093 subtests failed.
! Installing Math::GSL failed.

FULL BUILD OUTPUT:
https://pastebin.com/cvDRkkXD

@leto
Copy link
Owner

leto commented Feb 3, 2020

@wbraswell thanks for the detailed bug report. Can you tell me how you install GSL? Are you using a Debian package? Sometimes they append their own version number, and we might need to teach Math::GSL source code that 2.1.1 is the same as 2.1

@wbraswell
Copy link
Contributor Author

@leto I am very happy to provide detailed bug reports and do all I can to help fix it! :-)
I install via Debian packages, both in Ubuntu (as shown above) and in Debian itself. Here are the pertinent packages:
https://github.com/wbraswell/rperl/blob/master/Docker/rperl_for_git_release_testing/Dockerfile#L36-L37

@wbraswell
Copy link
Contributor Author

Also, you can see in my original post above that Debian does append something weird +dfsg-2 to the end of the version string Version: 2.1+dfsg-2
COPIED FROM ORIGINAL POST:

$ dpkg -s libgsl-dev
Package: libgsl-dev
Status: install ok installed
Priority: optional
Section: libdevel
Installed-Size: 6094
Architecture: amd64
Source: gsl
Version: 2.1+dfsg-2

@leto
Copy link
Owner

leto commented Feb 3, 2020

@wbraswell I think maybe the +dfsg-2 is somehow being mangled into 2.1.1, which the Math::GSL build system doesn't know about and so it fails. Our build system needs to learn how to deal with this format, which comes from git describe. Our build system should ignore the + and any following characters in a version string, strip them off, and that should avoid this bug.

@leto
Copy link
Owner

leto commented Feb 3, 2020

@wbraswell one way to solve this is modifying the current_version variable in Build.PL, stripping out the weird stuff at the end, and things Should Work (tm) 😄

@wbraswell
Copy link
Contributor Author

@leto
Where is the 2.1.1 number originating from?

I would assume the most correct way to find this number is by calling gsl-config, but as you can see from my original post this gives the correct 2.1:

$ gsl-config --version
2.1

It is only the call to dpkg that returns the weird 2.1+dfsg-2 version, and I don't think your software is calling the OS-specific dpkg command?

@leto
Copy link
Owner

leto commented Feb 4, 2020

@wbraswell you are right, Math::GSL code does not use dpkg but it does read PkgConfig files from the filesystem in some places, and I think it might be possible that Debian is putting it's own version number there, and it's being mangled to 2.1.1. That is my current theory, not 100% sure of that

@wbraswell
Copy link
Contributor Author

@leto
Please show me exactly how & where Math::GSL checks for the desired GSL version number, and then I will investigate my operating system accordingly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants