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)

Portfile-whizard.diff (1.9 KB) - added by dstrubbe (David Strubbe) 9 years ago.
patch-omega-tests-Makefile.in.diff (743 bytes) - added by dstrubbe (David Strubbe) 9 years ago.

Download all attachments as: .zip

Change History (16)

Changed 9 years ago by dstrubbe (David Strubbe)

Attachment: Portfile-whizard.diff added

comment:1 Changed 9 years ago by Romendakil

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.

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 ============================================================================
Last edited 9 years ago by dstrubbe (David Strubbe) (previous) (diff)

Changed 9 years ago by dstrubbe (David Strubbe)

comment:11 Changed 9 years ago by Romendakil

Can you see from the log files what is going wrong?

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: newclosed
Note: See TracTickets for help on using tickets.