Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.

Bug 1605792

Summary: python-nipy: FTBFS in Fedora rawhide
Product: [Fedora] Fedora Reporter: Mohan Boddu <mboddu>
Component: python-nipyAssignee: Miro Hrončok <mhroncok>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: 29CC: awilliam, dan, igor.raits, lruzicka, mhroncok, zbyszek
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: AcceptedFreezeException
Fixed In Version: python-nipy-0.4.2-1.fc30 python-nipy-0.4.2-1.fc29 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-09-11 12:43:07 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1605791    
Bug Blocks: 1517012, 1565020, 1602938    
Attachments:
Description Flags
build.log
none
root.log
none
state.log none

Description Mohan Boddu 2018-07-20 17:00:41 UTC
python-nipy failed to build from source in Fedora rawhide

https://koji.fedoraproject.org/koji/taskinfo?taskID=28223023


For details on the mass rebuild see:

https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Please fix python-nipy at your earliest convenience and set the bug's status to
ASSIGNED when you start fixing it. If the bug remains in NEW state for 8 weeks,
python-nipy will be orphaned. Before branching of Fedora 30,
python-nipy will be retired, if it still fails to build.

For more details on the FTBFS policy, please visit:
https://fedoraproject.org/wiki/Fails_to_build_from_source

Comment 1 Mohan Boddu 2018-07-20 17:00:45 UTC
Created attachment 1466483 [details]
build.log

Comment 2 Mohan Boddu 2018-07-20 17:00:49 UTC
Created attachment 1466484 [details]
root.log

file root.log too big, will only attach last 32768 bytes

Comment 3 Mohan Boddu 2018-07-20 17:00:52 UTC
Created attachment 1466485 [details]
state.log

Comment 4 Miro Hrončok 2018-07-25 09:27:00 UTC
(This is a mass bug update. Forgive me if things are not 100% accurate for this one.)

At this moment, your package still requires Python 3.6. This will cause broken upgrades to Fedora 29. Please prioritize this rebuild.

Let me know if you need help from the Python maintenance team figuring out why the package FTBFS.

Consider orphaning the package if you don't have time for it.

Consider retiring the package if upstream is dead and nothing depends on it in Fedora.

If you are blocked by other packages (I've recently tried to set the Bugzilla metadata to reflect that), consider helping there as well. Thank you.

Comment 5 Zbigniew Jędrzejewski-Szmek 2018-07-25 09:56:46 UTC
Not much to do here until nibabel is ready.

Comment 6 Miro Hrončok 2018-08-10 13:47:45 UTC
Note that I requested an approval from FESCo to retire leaf packages that still require Python 3.6 at beta freeze and their bugs are in NEW state. (This package might not necessarily be leaf at this moment, but I'm updating all the bugs in case the dependencies change in the meantime.)

More info at https://pagure.io/fesco/issue/1965

Comment 7 Miro Hrončok 2018-08-13 11:59:59 UTC
Another bulk reminder. Please take action. Your package doesn't install on Fedora 29. Fix it or retire it.

Comment 8 Igor Raits 2018-08-14 08:28:44 UTC
(In reply to Miro Hrončok from comment #7)
> Another bulk reminder. Please take action. Your package doesn't install on
> Fedora 29. Fix it or retire it.

So this is the one which needs update & also some workarounds for de-bundling. If you have time, I would appreciate if you fix this package.

If not, I will get to this within a week or so.

Comment 9 Miro Hrončok 2018-08-14 09:49:56 UTC
I'm looking at this.

Comment 10 Jan Kurik 2018-08-14 10:28:05 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 29 development cycle.
Changing version to '29'.

Comment 11 Miro Hrončok 2018-08-14 10:51:57 UTC
======================================================================
ERROR: nipy.algorithms.statistics.formula.tests.test_formula.test_nonlin1
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.7/site-packages/sympy/utilities/lambdify.py", line 750, in _subexpr
    expr = sympify(expr).xreplace(dummies_dict)
AttributeError: 'list' object has no attribute 'xreplace'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/lib/python3.7/site-packages/nose/case.py", line 197, in runTest
    self.test(*self.arg)
  File "/builddir/build/BUILD/nipy-0.4.2/build/lib.linux-x86_64-3.7/nipy/algorithms/statistics/formula/tests/test_formula.py", line 422, in test_nonlin1
    A = f.design(n, p)
  File "/builddir/build/BUILD/nipy-0.4.2/build/lib.linux-x86_64-3.7/nipy/algorithms/statistics/formula/formulae.py", line 838, in design
    self._setup_design()
  File "/builddir/build/BUILD/nipy-0.4.2/build/lib.linux-x86_64-3.7/nipy/algorithms/statistics/formula/formulae.py", line 774, in _setup_design
    self._f = lambdify(newparams + newterms, d, ("numpy"))
  File "/usr/lib/python3.7/site-packages/sympy/utilities/lambdify.py", line 456, in lambdify
    funcstr = funcprinter.doprint(funcname, args, expr)
  File "/usr/lib/python3.7/site-packages/sympy/utilities/lambdify.py", line 661, in doprint
    argstrs, expr = self._preprocess(args, expr)
  File "/usr/lib/python3.7/site-packages/sympy/utilities/lambdify.py", line 732, in _preprocess
    expr = self._subexpr(expr, {arg: dummy})
  File "/usr/lib/python3.7/site-packages/sympy/utilities/lambdify.py", line 761, in _subexpr
    expr = [sub_expr(sympify(a), dummies_dict) for a in expr]
  File "/usr/lib/python3.7/site-packages/sympy/utilities/lambdify.py", line 761, in <listcomp>
    expr = [sub_expr(sympify(a), dummies_dict) for a in expr]
NameError: name 'sub_expr' is not defined
======================================================================
ERROR: nipy.algorithms.statistics.formula.tests.test_formula.test_nonlin2
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.7/site-packages/sympy/utilities/lambdify.py", line 750, in _subexpr
    expr = sympify(expr).xreplace(dummies_dict)
AttributeError: 'list' object has no attribute 'xreplace'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/lib/python3.7/site-packages/nose/case.py", line 197, in runTest
    self.test(*self.arg)
  File "/builddir/build/BUILD/nipy-0.4.2/build/lib.linux-x86_64-3.7/nipy/algorithms/statistics/formula/tests/test_formula.py", line 438, in test_nonlin2
    assert_raises(ValueError, f.design, dz, p)
  File "/usr/lib64/python3.7/unittest/case.py", line 760, in assertRaises
    return context.handle('assertRaises', args, kwargs)
  File "/usr/lib64/python3.7/unittest/case.py", line 195, in handle
    callable_obj(*args, **kwargs)
  File "/builddir/build/BUILD/nipy-0.4.2/build/lib.linux-x86_64-3.7/nipy/algorithms/statistics/formula/formulae.py", line 838, in design
    self._setup_design()
  File "/builddir/build/BUILD/nipy-0.4.2/build/lib.linux-x86_64-3.7/nipy/algorithms/statistics/formula/formulae.py", line 774, in _setup_design
    self._f = lambdify(newparams + newterms, d, ("numpy"))
  File "/usr/lib/python3.7/site-packages/sympy/utilities/lambdify.py", line 456, in lambdify
    funcstr = funcprinter.doprint(funcname, args, expr)
  File "/usr/lib/python3.7/site-packages/sympy/utilities/lambdify.py", line 661, in doprint
    argstrs, expr = self._preprocess(args, expr)
  File "/usr/lib/python3.7/site-packages/sympy/utilities/lambdify.py", line 732, in _preprocess
    expr = self._subexpr(expr, {arg: dummy})
  File "/usr/lib/python3.7/site-packages/sympy/utilities/lambdify.py", line 761, in _subexpr
    expr = [sub_expr(sympify(a), dummies_dict) for a in expr]
  File "/usr/lib/python3.7/site-packages/sympy/utilities/lambdify.py", line 761, in <listcomp>
    expr = [sub_expr(sympify(a), dummies_dict) for a in expr]
NameError: name 'sub_expr' is not defined
======================================================================
FAIL: nipy.modalities.fmri.tests.test_aliases.test_implemented_function
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.7/site-packages/nose/case.py", line 197, in runTest
    self.test(*self.arg)
  File "/builddir/build/BUILD/nipy-0.4.2/build/lib.linux-x86_64-3.7/nipy/modalities/fmri/tests/test_aliases.py", line 47, in test_implemented_function
    assert_true(hasattr(func, '_imp_'))
AssertionError: False is not true
----------------------------------------------------------------------



Should be fixed by:

https://src.fedoraproject.org/rpms/sympy/pull-request/2

Comment 13 Miro Hrončok 2018-08-15 10:15:14 UTC
Rawhide built.
F29 fails on s390x but it didn't before, so I'm just gonna try couple of scratch builds to see if this is random or not.

Comment 14 Miro Hrončok 2018-08-15 10:37:01 UTC
OK, the failure is consistent.

Here's what different on f29 and f30:

-annobin.s390x 8.23-1.fc29
+annobin.s390x 8.24-1.fc30

-libssh.s390x 0.8.1-2.fc29
+libssh.s390x 0.8.1-3.fc30


-openblas.s390x 0.3.2-2.fc29
+openblas.s390x 0.3.2-1.fc29

-python3-sympy.noarch 1.2-2.fc29
+python3-sympy.noarch 1.2-2.fc30

-redhat-rpm-config.noarch 117-1.fc29
+redhat-rpm-config.noarch 118-1.fc30


The failure:

======================================================================
FAIL: nipy.algorithms.statistics.tests.test_utils.test_mahalanobis2
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.7/site-packages/nose/case.py", line 197, in runTest
    self.test(*self.arg)
  File "/builddir/build/BUILD/nipy-0.4.2/build/lib.linux-s390x-3.7/nipy/algorithms/statistics/tests/test_utils.py", line 41, in test_mahalanobis2
    assert_almost_equal(mah, f_mah)
  File "/usr/lib64/python3.7/site-packages/numpy/testing/_private/utils.py", line 584, in assert_almost_equal
    raise AssertionError(_build_err_msg())
AssertionError: 
Arrays are not almost equal to 7 decimals
 ACTUAL: 7.404667856592318
 DESIRED: 195.70625366732543
======================================================================
FAIL: nipy.algorithms.utils.tests.test_pca.test_2D
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.7/site-packages/nose/case.py", line 197, in runTest
    self.test(*self.arg)
  File "/builddir/build/BUILD/nipy-0.4.2/build/lib.linux-s390x-3.7/nipy/algorithms/utils/tests/test_pca.py", line 146, in test_2D
    assert_array_almost_equal((rimgs * rmse) + data_mean, data)
  File "/usr/lib64/python3.7/site-packages/numpy/testing/_private/utils.py", line 964, in assert_array_almost_equal
    precision=decimal)
  File "/usr/lib64/python3.7/site-packages/numpy/testing/_private/utils.py", line 780, in assert_array_compare
    raise AssertionError(msg)
AssertionError: 
Arrays are not almost equal to 6 decimals
(mismatch 100.0%)
 x: array([-1.352913e+31, -8.484429e+29, -3.576206e+31, ...,  3.994668e+30,
        3.352649e+30,  3.485307e+30])
 y: array([0.71618 , 0.873804, 0.951521, ..., 0.189184, 0.386872, 0.361009])
======================================================================
FAIL: nipy.modalities.fmri.fmristat.tests.test_FIAC.test_agreement
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.7/site-packages/nose/case.py", line 197, in runTest
    self.test(*self.arg)
  File "/builddir/build/BUILD/nipy-0.4.2/build/lib.linux-s390x-3.7/nipy/modalities/fmri/fmristat/tests/test_FIAC.py", line 283, in test_agreement
    assert_true(np.greater(np.abs(cmax), 0.999))
AssertionError: False is not true
----------------------------------------------------------------------


Back to ASSIGNED.

Comment 15 Miro Hrončok 2018-08-17 08:57:50 UTC
I have no idea. skip that tests on s390x for now?

Comment 16 Fedora Blocker Bugs Application 2018-08-29 13:07:43 UTC
Proposed as a Freeze Exception for 29-beta by Fedora user churchyard using the blocker tracking app because:

 System with the old version installed cannot update to F29.

Comment 17 Miro Hrončok 2018-08-29 13:16:14 UTC
> skip that tests on s390x for now?

working on that.

Comment 18 Dan Horák 2018-08-29 13:47:06 UTC
Could be related to the openblas change, -1 had z13-based kernel by mistake, we need the generic one (fixed in -2). With the latest upstream change also the generic kernel should provide the same results as the z13 (optimized) one.

Comment 19 Miro Hrončok 2018-08-29 13:52:25 UTC
Thanks. I've excluded the affected tests for now to build this.

Building in https://koji.fedoraproject.org/koji/taskinfo?taskID=29366783

Comment 20 Fedora Update System 2018-08-29 14:09:52 UTC
python-nipy-0.4.2-1.fc29 has been submitted as an update to Fedora 29. https://bodhi.fedoraproject.org/updates/FEDORA-2018-87d9b0eb0a

Comment 21 Fedora Update System 2018-08-29 19:08:30 UTC
python-nipy-0.4.2-1.fc29 has been submitted as an update to Fedora 29. https://bodhi.fedoraproject.org/updates/FEDORA-2018-87d9b0eb0a

Comment 22 Fedora Update System 2018-08-29 23:14:54 UTC
python-nipy-0.4.2-1.fc29 has been pushed to the Fedora 29 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-87d9b0eb0a

Comment 23 Dan Horák 2018-08-30 08:06:30 UTC
The originally excluded nipy tests are passing on s390x with the fixed openblas-0.3.2-5.fc30 - https://koji.fedoraproject.org/koji/taskinfo?taskID=29375941

Comment 24 Adam Williamson 2018-09-10 23:30:13 UTC
Discussed at 2018-09-10 freeze exception review meeting: https://meetbot-raw.fedoraproject.org/fedora-blocker-review/2018-09-10/f29-blocker-review.2018-09-10-16.01.html . Accepted (under the block vote at the end of the meeting) as a freeze exception issue as this can prevent upgrades working without the potentially-dangerous --allowerasing , and upgrades typically run without updates-testing so there is a benefit to pushing this stable for folks trying to upgrade at present.

(Note: the openblas thing worries me a bit. Should we fix openblas for f29 too?)

Comment 25 Fedora Update System 2018-09-11 12:43:07 UTC
python-nipy-0.4.2-1.fc29 has been pushed to the Fedora 29 stable repository. If problems still persist, please make note of it in this bug report.