OpenCSW Bug Tracker


Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0005254 [python27] block always 2015-10-15 13:39 2016-03-08 15:27
Reporter jubal View Status public  
Assigned To jh
Priority normal Resolution fixed  
Status closed  
Summary 0005254: _curses.so is missing python27 (2.7.8,REV=2014.09.23) (sparc solaris 10 9/10)
Description Hi folks! It looks like there's a bug in the python27 build. Maybe it was linked against /lib/libcurses.so instead of ncurses or something?

I would love to avoid building python from scratch on these machines - you guys do such a great job :)
Additional Information root@arc:~ % uname -a
SunOS arc 5.10 Generic_150400-24 sun4v sparc sun4v

root@arc:~ % cat /etc/release
                   Oracle Solaris 10 9/10 s10s_u9wos_14a SPARC
     Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
                            Assembled 11 August 2010

# the lib-dynload modules in question
root@arc:~ % ls -l /opt/csw/lib/python2.7/lib-dynload/_cur*
-rwxr-xr-x 1 root bin 191588 Sep 23 2014 /opt/csw/lib/python2.7/lib-dynload/_curses_failed.so
-rwxr-xr-x 1 root bin 36840 Sep 23 2014 /opt/csw/lib/python2.7/lib-dynload/_curses_panel_failed.so

# the ncurses from opencsw
root@arc:~ % ls -l /opt/csw/lib/libncurse*
lrwxrwxrwx 1 root root 17 Jun 1 17:14 /opt/csw/lib/libncurses.so.5 -> libncurses.so.5.9
-rwxr-xr-x 1 root bin 669588 Jun 27 2011 /opt/csw/lib/libncurses.so.5.9
lrwxrwxrwx 1 root root 18 Jun 2 05:12 /opt/csw/lib/libncursesw.so.5 -> libncursesw.so.5.9
-rwxr-xr-x 1 root bin 791196 Jun 27 2011 /opt/csw/lib/libncursesw.so.5.9

# linkage of the failed _curses.so
root@arc:~ % ldd /opt/csw/lib/python2.7/lib-dynload/_curses_failed.so
        libncurses.so.5 => /opt/csw/lib/libncurses.so.5
        libpython2.7.so.1.0 => /opt/csw/lib/libpython2.7.so.1.0
        libgcc_s.so.1 => /opt/csw/lib/libgcc_s.so.1
        libc.so.1 => /lib/libc.so.1
        libsocket.so.1 => /lib/libsocket.so.1
        libnsl.so.1 => /lib/libnsl.so.1
        librt.so.1 => /lib/librt.so.1
        libdl.so.1 => /lib/libdl.so.1
        libm.so.2 => /lib/libm.so.2
        libmp.so.2 => /lib/libmp.so.2
        libmd.so.1 => /lib/libmd.so.1
        libscf.so.1 => /lib/libscf.so.1
        libaio.so.1 => /lib/libaio.so.1
        libdoor.so.1 => /lib/libdoor.so.1
        libuutil.so.1 => /lib/libuutil.so.1
        libgen.so.1 => /lib/libgen.so.1
        /platform/sun4v/lib/libc_psr.so.1
        /lib/libm/libm_hwcap1.so.2
        /platform/sun4v/lib/libmd_psr.so.1

# symbols (_unctrl appears to not be present in /opt/csw/lib/libncurses.so)
root@arc:~ % gnm /opt/csw/lib/python2.7/lib-dynload/_curses_failed.so |grep _unctrl
         U _unctrl

# instead libncurses.so has _nc_unctrl (whereas /lib/libcurses.so has _unctrl -- confused)
root@arc:~ % gnm /opt/csw/lib/libncurses.so.5.9 | grep _unctrl
0002d060 T _nc_unctrl
Tags No tags attached.
Attached Files

- Relationships

-  Notes
(0011062)
jubal (reporter)
2015-10-15 13:43

oh - the python output also --
root@arc:~ % python2.7
Python 2.7.8 (default, Sep 23 2014, 12:47:57)
[GCC 4.9.0] on sunos5
Type "help", "copyright", "credits" or "license" for more information.
>>> import curses
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/csw/lib/python2.7/curses/__init__.py", line 15, in <module>
    from _curses import *
ImportError: No module named _curses
>>>
(0011063)
jubal (reporter)
2015-10-15 21:57

I'd be happy to take a crack at this and push a fix back to you - I need to resolve the issue, and might as well push a fix back in your direction - can you point me to any opencsw package maintenance documentation?

Thanks so much!
(0011064)
dam (administrator)
2015-10-16 14:35

Sure, we have a tutorial available at
  http://www.opencsw.org/2012/12/gar-setup-and-packaging-tutorial/ [^]
Feel free to come by on #opencsw on freenode for help.
(0011065)
jubal (reporter)
2015-10-17 00:00

Excellent will do - I've followed the mgar instructions from here: https://www.youtube.com/watch?v=JWKCbPJSaxw&feature=youtu.be [^] and will see if I can have a pushback this weekend :)
(0011067)
jubal (reporter)
2015-10-17 10:47

Ok - you rock dam :) I went to build branches/python2.7 and lbehold - _curses is fixed by your latest change. Awesome, and thank you! Can you also make the build depend on CSWlibssl-dev? I did the following to my Makefile


Index: Makefile
===================================================================
--- Makefile (revision 25299)
+++ Makefile (working copy)
@@ -135,6 +135,7 @@
 RUNTIME_DEP_PKGS_CSWpython$(CVER) += CSWlibreadline6
 RUNTIME_DEP_PKGS_CSWpython$(CVER) += CSWlibsqlite3-0
 RUNTIME_DEP_PKGS_CSWpython$(CVER) += CSWlibssl1-0-0
+RUNTIME_DEP_PKGS_CSWpython$(CVER) += CSWlibssl-dev
 RUNTIME_DEP_PKGS_CSWpython$(CVER) += CSWlibz1
 
 # Don't merge test files.
@@ -155,6 +156,7 @@
 BUILD_DEP_PKGS += CSWlibsqlite3-dev
 BUILD_DEP_PKGS += CSWlibgdbm-dev
 BUILD_DEP_PKGS += CSWlibgcrypt-dev
+BUILD_DEP_PKGS += CSWlibssl-dev
 
 # Allow to choose the default Python version.
 # Python 2.6 is the default one as of 2013-07-21.
(0011068)
jubal (reporter)
2015-10-18 01:11

Also libncurses_dev must be present, is it correct to add these to the Makefile?

RUNTIME_DEP_PKGS_CSWpython$(CVER) += CSWlibssl-dev
RUNTIME_DEP_PKGS_CSWpython$(CVER) += CSWlibncurses-dev
BUILD_DEP_PKGS += CSWlibssl-dev
BUILD_DEP_PKGS += CSWlibncurses-dev
(0011069)
dam (administrator)
2015-10-19 15:16

The BUILD_DEP_PKGS are likely missing packages as we don't have a clean build environment - when a dependent package is installed it is silently picked up.

However, I don't see a necessity to add development packages to the Python package, this is most certainly not correct. What do you want to achieve by this?

Best regards -- Dago
(0011070)
jubal (reporter)
2015-10-19 16:22

Apologies sir, I'm just barely getting my feet with wet with mgar :)

When I build the package with out libssl_dev installed, i get:

Python build finished, but the necessary bits to build these modules were not found:
_bsddb _ssl _tkinter
bsddb185 linuxaudiodev ossaudiodev
To find the necessary bits, look in setup.py in detect_modules() for the module's name.

But after installing libssl_dev (via pkgutil -i libssl_dev), the _ssl module builds cleanly. I inferred that adding BUILD_DEP_PKGS += CSWlibssl-dev would force the dependency at build time -- is there a better way?

(I'm just trying to orient myself with the right way to resolve)

Thanks sir!
(0011076)
dam (administrator)
2015-10-30 13:30

The additions to BUILD_DEP_PKGS have have been committed in r25334.
Devel-packages in BUILD_DEP_PKGS is fine, but they main package should not include dependencies to development-packages.

Best regards -- Dago
(0011077)
jubal (reporter)
2015-11-04 06:14

Thank you Dago - I'll give it a shot and report back
(0011101)
jh (developer)
2016-03-07 14:23

whats the status of this bug?
This is a show stopper at the moment to promote to testing?
(0011103)
jubal (reporter)
2016-03-08 15:23

My apologies, I had build the package, and haven't gotten around to the promotion - it works well for me on both solaris 10 sparc and x86, but am not sure the process to promote.
(0011104)
dam (administrator)
2016-03-08 15:27

Packages are promoted after 14 days in unstable when there are no open serious bugs. The status can be checked here:
  http://buildfarm.opencsw.org/package-promotions/promote-packages.html [^]
I'll close this bug which will stop halting the promotion of Python.
(0011105)
jh (developer)
2016-03-08 15:27

ok thanks will close this bug then. It will then autopromote.
Thank you.


Copyright © 2000 - 2008 Mantis Group
Powered by Mantis Bugtracker