Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 399557 - sci-mathematics/octave-3.6.0 violates EAPI by using tc-has-openmp() in pkg_pretend
Summary: sci-mathematics/octave-3.6.0 violates EAPI by using tc-has-openmp() in pkg_pr...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Science Mathematics related packages
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-01-20 21:28 UTC by Tiziano Müller (RETIRED)
Modified: 2012-01-20 23:54 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Tiziano Müller (RETIRED) gentoo-dev 2012-01-20 21:28:29 UTC
The tc-has-openmp() function in the toolchain-funcs eclass assumes $T to be defined and writes to the filesystem which is not allowed in the pkg_pretend phase according to EAPI 4 and octave thus breaks EAPI-compliant package managers:

octave-3.6.0> ACCESS DENIED  open_wr:      /test-tc-openmp.c
octave-3.6.0> ISE:write_logfile unable to append logfile
octave-3.6.0> ISE open_wr(/test-tc-openmp.c): Permission denied
octave-3.6.0> 	abs_path: /test-tc-openmp.c
octave-3.6.0> 	res_path: /test-tc-openmp.c
octave-3.6.0> /usr/lib64/libsandbox.so(+0x3512)[0x7f668b8f5512]
octave-3.6.0> /usr/lib64/libsandbox.so(+0x3583)[0x7f668b8f5583]
octave-3.6.0> /usr/lib64/libsandbox.so(+0x4b1d)[0x7f668b8f6b1d]
octave-3.6.0> /usr/lib64/libsandbox.so(open+0xbd)[0x7f668b8f8d1d]
octave-3.6.0> bash[0x4654bc]
octave-3.6.0> bash(do_redirections+0x5a)[0x465d9a]
octave-3.6.0> bash(execute_command_internal+0x2076)[0x431aa6]
octave-3.6.0> bash[0x434883]
octave-3.6.0> bash(execute_command_internal+0xa46)[0x430476]
octave-3.6.0> bash(execute_command+0x4e)[0x4341ce]
octave-3.6.0> /proc/264717/cmdline: bash /usr/libexec/paludis/ebuild.bash /var/repositories/gentoo-x86/sci-mathematics/octave/octave-3.6.0.ebuild pretend 
octave-3.6.0> 
octave-3.6.0> /var/repositories/gentoo-x86/eclass/toolchain-funcs.eclass: line 296: 264717 Aborted                 cat  > "${base}.c" <<-EOF
octave-3.6.0> #include <omp.h>
octave-3.6.0> int main() {
octave-3.6.0> int nthreads, tid, ret = 0;
octave-3.6.0> #pragma omp parallel private(nthreads, tid)
octave-3.6.0> {
octave-3.6.0> tid = omp_get_thread_num();
octave-3.6.0> nthreads = omp_get_num_threads(); ret += tid + nthreads;
octave-3.6.0> }
octave-3.6.0> return ret;
octave-3.6.0> }
octave-3.6.0> EOF
octave-3.6.0> 
octave-3.6.0> ACCESS DENIED  unlinkat:     /test-tc-openmp*
octave-3.6.0> ISE:write_logfile unable to append logfile
octave-3.6.0> ISE unlinkat(/test-tc-openmp*): Permission denied
octave-3.6.0> 	abs_path: /test-tc-openmp*
octave-3.6.0> 	res_path: /test-tc-openmp*
octave-3.6.0> /usr/lib64/libsandbox.so(+0x3512)[0x7fa08c641512]
octave-3.6.0> /usr/lib64/libsandbox.so(+0x3583)[0x7fa08c641583]
octave-3.6.0> /usr/lib64/libsandbox.so(+0x4b1d)[0x7fa08c642b1d]
octave-3.6.0> /usr/lib64/libsandbox.so(unlinkat+0x89)[0x7fa08c6466f9]
octave-3.6.0> rm[0x402224]
octave-3.6.0> rm[0x402cd3]
octave-3.6.0> rm[0x401d3d]
octave-3.6.0> /lib64/libc.so.6(__libc_start_main+0xed)[0x7fa08c2d718d]
octave-3.6.0> rm[0x401e45]
octave-3.6.0> /proc/264721/cmdline: rm -f /test-tc-openmp* 
octave-3.6.0> 
octave-3.6.0> /var/repositories/gentoo-x86/eclass/toolchain-funcs.eclass: line 296: 264721 Aborted                 rm -f "${base}"*
octave-3.6.0> 
octave-3.6.0> !!! ERROR in sci-mathematics/octave-3.6.0::gentoo:
octave-3.6.0> !!! In pkg_pretend at line 59
octave-3.6.0> !!! You have openmp enabled but your current gcc does not support it
octave-3.6.0> 
octave-3.6.0> !!! Call stack:
octave-3.6.0> !!!    * pkg_pretend (/var/repositories/gentoo-x86/sci-mathematics/octave/octave-3.6.0.ebuild:59)
octave-3.6.0> !!!    * ebuild_f_pretend (/usr/libexec/paludis/4/pkg_pretend.bash:38)
octave-3.6.0> !!!    * ebuild_main (/usr/libexec/paludis/ebuild.bash:631)
octave-3.6.0> !!!    * main (/usr/libexec/paludis/ebuild.bash:672)
octave-3.6.0> 
octave-3.6.0> diefunc: making ebuild PID 264642 exit with error
octave-3.6.0> die trap: exiting with error.
Comment 1 Sébastien Fabbro (RETIRED) gentoo-dev 2012-01-20 23:54:56 UTC
fixed by switching to pkg_setup. thanks.