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

EasyBuild/3.5.3, Bison-3.0.4-GCCcore-4.9.3.eb, sanity check failed - lib vs. lib64 #6165

Closed
pmatousu opened this issue Apr 17, 2018 · 4 comments
Milestone

Comments

@pmatousu
Copy link

I am trying to build some gcc with higher version than 4.8, in my latest try with ISL-0.16-GCC-4.9.3-2.25.eb

9971 >eb Bison-3.0.4-GCCcore-4.9.3.eb -r
== temporary log file in case of crash /tmp/eb-GPpgby/easybuild-FTgRr8.log
== resolving dependencies ...
== processing EasyBuild easyconfig /home/petrm/opt/eb/software/EasyBuild/3.5.3/lib/python2.7/site-packages/easybuild_easyconfigs-3.5.3-py2.7.egg/easybuild/easyconfigs/b/Bison/Bison-3.0.4-GCCcore-4.9.3.eb
== building and installing Bison/3.0.4-GCCcore-4.9.3...
== fetching files...
== creating build dir, resetting environment...
== unpacking...
== patching...
== preparing...
== configuring...
== building...
== testing...
== installing...
== taking care of extensions...
== postprocessing...
== sanity checking...
== FAILED: Installation ended unsuccessfully (build directory: /home/petrm/Documents/build/eb/build/Bison/3.0.4/GCCcore-4.9.3): build failed (first 300 chars): Sanity check failed: no file of ('lib/liby.a',) in /home/petrm/opt/eb/software/Bison/3.0.4-GCCcore-4.9.3
== Results of the build can be found in the log file(s) /tmp/eb-GPpgby/easybuild-Bison-3.0.4-20180417.132532.OKzbi.log
ERROR: Build of /home/petrm/opt/eb/software/EasyBuild/3.5.3/lib/python2.7/site-packages/easybuild_easyconfigs-3.5.3-py2.7.egg/easybuild/easyconfigs/b/Bison/Bison-3.0.4-GCCcore-4.9.3.eb failed (err: "build failed (first 300 chars): Sanity check failed: no file of ('lib/liby.a',) in /home/petrm/opt/eb/software/Bison/3.0.4-GCCcore-4.9.3")

But:

9980 >file /home/petrm/opt/eb/software/Bison/3.0.4-GCCcore-4.9.3/lib64/liby.a
/home/petrm/opt/eb/software/Bison/3.0.4-GCCcore-4.9.3/lib64/liby.a: current ar archive

So lib64 instead of lib.
I see that often on my system with easybuild.

@pmatousu
Copy link
Author

Very same issue in GMP-6.1.0-GCC-4.9.3-2.25.eb
lib instead lib64
Even here I can correct it easily myself.

@boegel
Copy link
Member

boegel commented Apr 17, 2018

@pmatousu We indeed have lib/ hardcoded in too many places, which causes problems on SUSE systems.

For this particular case, you can fix it by changing the Bison easyconfig file as follows:

diff --git a/easybuild/easyconfigs/b/Bison/Bison-3.0.4-GCC-4.9.3.eb b/easybuild/easyconfigs/b/Bison/Bison-3.0.4-GCC-4.9.3.eb
index 55b6f06ba..dfc3ed912 100644
--- a/easybuild/easyconfigs/b/Bison/Bison-3.0.4-GCC-4.9.3.eb
+++ b/easybuild/easyconfigs/b/Bison/Bison-3.0.4-GCC-4.9.3.eb
@@ -15,7 +15,7 @@ source_urls = [GNU_SOURCE]
 builddependencies = [('M4', '1.4.17')]
 
 sanity_check_paths = {
-    'files': ["bin/%s" % x for x in ["bison", "yacc"]] + ["lib/liby.a"],
+    'files': ["bin/%s" % x for x in ["bison", "yacc"]] + [('lib/liby.a', 'lib64/liby.a')],
     'dirs': [],
 }

That makes EasyBuild consider both lib/liby.a and lib64/liby.a, and the check will pass if either of those is available.

Doing this on a case-by-case basis is going to be painful though, so there have been proposals in the past to deal with this centrally instead, see for example the promising proposed change in https://github.com/easybuilders/easybuild-framework/issues/1404/files.
That never got merged however...

@boegel boegel modified the milestones: 3.6.0, 3.x Apr 17, 2018
@pmatousu
Copy link
Author

Actually I did it by very similar way and it works ok. Thank you for including diff.

@boegel
Copy link
Member

boegel commented Apr 17, 2018

fixed in #6170

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

No branches or pull requests

2 participants