Opened 9 years ago
Closed 9 years ago
#49230 closed update (fixed)
whizard @2.2.3_0: update to 2.2.7, use compilers PortGroup
Reported by: | dstrubbe (David Strubbe) | Owned by: | Romendakil |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.3.4 |
Keywords: | haspatch | Cc: | whizard@… |
Port: | whizard |
Description
Update to version 2.2.7, and use the compilers PortGroup, which will automatically handle the variants for Fortran compilers. The tests are passed for this version on my machine.
Attachments (2)
Change History (16)
Changed 9 years ago by dstrubbe (David Strubbe)
Attachment: | Portfile-whizard.diff added |
---|
comment:1 Changed 9 years ago by Romendakil
comment:2 Changed 9 years ago by dstrubbe (David Strubbe)
You can make the test target be 'make installcheck' always -- would that work? At any rate, the issues you are raising are independent of the changes I am suggesting, right?
comment:3 Changed 9 years ago by Romendakil
The remarks are both independent, but if you commit your changes into the Macports trunk you might do this change towards 'make installcheck' already now?
comment:4 Changed 9 years ago by dstrubbe (David Strubbe)
Patch above committed in r141259.
I tried 'make installcheck' but it fails for me, as below. Some further effort is needed.
:info:test Making installcheck in tests :info:test PATH=/opt/local/bin:$PATH; export PATH; \ :info:test LD_LIBRARY_PATH=/opt/local/lib:/opt/local/lib/circe2:$LD_LIBRARY_PATH; \ :info:test export LD_LIBRARY_PATH; \ :info:test circe2_tool.opt -test || circe2_tool.bin -test || circe2_tool -test :info:test /bin/sh: circe2_tool.opt: command not found :info:test /bin/sh: circe2_tool.bin: command not found :info:test /bin/sh: circe2_tool: command not found :info:test make[2]: *** [installcheck-local] Error 127 :info:test make[1]: *** [installcheck-recursive] Error 1 :info:test make: *** [installcheck-recursive] Error 1
comment:5 Changed 9 years ago by Romendakil
This is strange, the requested file, circe2_tool.opt, gets installed in ${prefix}/bin so should be available. Are you sure that the CIRCE2 component was correctly built, the requested tool depends on the OCaml compiler which is stated in the depends.
comment:6 Changed 9 years ago by dstrubbe (David Strubbe)
The issue is: for MacPorts, 'test' is something that happens before 'install'. So, local copies of such files need to be used rather than their locations where they would be installed.
comment:7 Changed 9 years ago by Romendakil
Understood. Then maybe we should just disable the 'check' option. I know this is not good practice either but the danger is that someone will have El Capitan with SIP on, and then the testsuite were to fail and, hence, installation, too.
comment:8 Changed 9 years ago by dstrubbe (David Strubbe)
How about this? Also, keep in mind that the test phase is not run unless the user specifically requests it via "port test". If they just do "port install", no tests are run. So, test failures will not block installation.
-test.run yes -test.target check +# make check doesn't work in general on El Capitan as long as SIP is activated as DYLD variables are not exported. +# make installcheck works, but needs patches to work from the build directory rather than installed locations +if {${os.major} > 11} { + test.run yes + test.target check + }
comment:9 Changed 9 years ago by Romendakil
Ah, ok, I didn't know that 'make check' is done only when you invoke 'port test'. This is interesting. No, then your solution seems a good one. Shouldn't it be 'if {$os.major} < 11} { .....} however?
comment:10 Changed 9 years ago by dstrubbe (David Strubbe)
Oh, yes of course. Also I realize the number wasn't correct (http://trac.macports.org/wiki/PortfileRecipes#compare-osx-darwin-version). That part committed in r141303.
I tried making an option to do installcheck as part of the destroot phase (commented out in the commit). It works in the circe2 and omega parts (with a patch), though fails for functional_tests: probably another patch is needed there.
:info:destroot ============================================================================ :info:destroot Testsuite summary for WHIZARD 2.2.7 :info:destroot ============================================================================ :info:destroot # TOTAL: 187 :info:destroot # PASS: 1 :info:destroot # SKIP: 20 :info:destroot # XFAIL: 1 :info:destroot # FAIL: 163 :info:destroot # XPASS: 2 :info:destroot # ERROR: 0 :info:destroot ============================================================================ :info:destroot See tests/functional_tests/test-suite.log :info:destroot ============================================================================
Changed 9 years ago by dstrubbe (David Strubbe)
Attachment: | patch-omega-tests-Makefile.in.diff added |
---|
comment:12 Changed 9 years ago by dstrubbe (David Strubbe)
No, it doesn't say anything more, and it's not clear where (if anywhere) the test-suite.log file ended up. I would guess it is similar issues to what I patched.
comment:13 Changed 9 years ago by Romendakil
Ok, then let it be, and we do the fix you proposed by excluding the checks for anything as new as El Capitan.
comment:14 Changed 9 years ago by dstrubbe (David Strubbe)
Resolution: | → fixed |
---|---|
Status: | new → closed |
Actually, make check doesn't work in general on El Capitan as long as SIP is activated as DYLD variables are not exported. make installcheck does work. I don't know how to catch this in the Portfile. From version 2.2.8, WHIZARD will contain C++ code snippets which I have not been testing with clang yet.