pregap crash

2011-01-18
2013-04-18
  • Hello,

    Just compiled and install the latest staden on ubuntu 10.04 (compilation went fine). I am getting the following error:

    tristan@umr5023-proasellus:/opt/src/staden$ bin/pregap4
    this isn't a Tk applicationNULL main window
        while executing
    "image create bitmap ::Images::tick -data  {#define tick_width 14
    #define tick_height 14
    static char tick_bits = {
       0x00, 0x00, 0x00, 0x00, 0x00, 0…"
        (procedure "init_images" line 2)
        invoked from within
    "init_images"
        invoked from within
    "if {$interactive} {
        if {} {
            package require Tk
        }
        tk_utils_init
        init_images
    }"
        (file "/opt/src/staden/bin/../share/staden/tcl/pregap4/pregap4.tcl" line 89)

    Here is what the ./configure looked like:

    tristan@umr5023-proasellus:/opt/src/staden-2.0.0b7-src$ ./configure -prefix=/opt/src/staden -with-samtools=/opt/src/samtools-0.1.12a -enable-64bit
    checking for gcc… gcc
    checking for C compiler default output file name… a.out
    checking whether the C compiler works… yes
    checking whether we are cross compiling… no
    checking for suffix of executables…
    checking for suffix of object files… o
    checking whether we are using the GNU C compiler… yes
    checking whether gcc accepts -g… yes
    checking for gcc option to accept ISO C89… none needed
    checking for g++… g++
    checking whether we are using the GNU C++ compiler… yes
    checking whether g++ accepts -g… yes
    checking for gawk… gawk
    checking for curl-config… /usr/bin/curl-config
    checking for the version of libcurl… 7.19.7
    checking whether libcurl just needs -lcurl… yes
    checking whether libcurl is usable… yes
    checking for curl_free… yes
    checking how to run the C preprocessor… gcc -E
    checking for grep that handles long lines and -e… /bin/grep
    checking for egrep… /bin/grep -E
    checking for ANSI C header files… yes
    checking for sys/types.h… yes
    checking for sys/stat.h… yes
    checking for stdlib.h… yes
    checking for string.h… yes
    checking for memory.h… yes
    checking for strings.h… yes
    checking for inttypes.h… yes
    checking for stdint.h… yes
    checking for unistd.h… yes
    checking for inflateEnd in -lz… yes
    checking zlib.h usability… yes
    checking zlib.h presence… yes
    checking for zlib.h… yes
    checking for lzma_easy_buffer_encode in -llzma… yes
    checking lzma.h usability… yes
    checking lzma.h presence… yes
    checking for lzma.h… yes
    checking for png_create_write_struct in -lpng… yes
    checking png.h usability… yes
    checking png.h presence… yes
    checking for png.h… yes
    checking for library containing bam_header_read… no
    checking for library containing bam_header_read… -lbam
    checking bam.h usability… yes
    checking bam.h presence… yes
    checking for bam.h… yes
    checking if samtools version >= 0.1.3… yes
    checking for staden-io_lib-config… no
    checking for io_lib-config… /usr/bin/io_lib-config
    checking if io_lib version >= 1.12.2… yes
    checking for mvwprintw in -lncurses… yes
    checking ncurses.h usability… yes
    checking ncurses.h presence… yes
    checking for ncurses.h… yes
    checking for ANSI C header files… (cached) yes
    checking for sys/wait.h that is POSIX.1 compatible… yes
    checking fcntl.h usability… yes
    checking fcntl.h presence… yes
    checking for fcntl.h… yes
    checking limits.h usability… yes
    checking limits.h presence… yes
    checking for limits.h… yes
    checking for unistd.h… (cached) yes
    checking for zlib.h… (cached) yes
    checking for special C compiler options needed for large files… no
    checking for _FILE_OFFSET_BITS value needed for large files… no
    checking for _LARGEFILE_SOURCE value needed for large files… no
    checking for library containing cos… -lm
    checking for popen… yes
    checking for X… libraries , headers
    checking for gethostbyname… yes
    checking for connect… yes
    checking for remove… yes
    checking for shmat… yes
    checking for IceConnectionNumber in -lICE… yes
    checking whether byte ordering is bigendian… no
    checking for correct TEA configuration… ok (TEA 3.7)
    checking for Tcl configuration… found /usr/lib/tclConfig.sh
    checking for existence of /usr/lib/tclConfig.sh… loading
    checking for Tk configuration… found /usr/lib/tk8.3/tkConfig.sh
    checking for existence of /usr/lib/tk8.3/tkConfig.sh… loading
    checking for ranlib… ranlib
    checking if 64bit support is requested… yes
    checking if 64bit Sparc VIS support is requested… no
    checking if compiler supports visibility "hidden"… yes
    checking if rpath support is requested… yes
    checking system version… Linux-2.6.32-26-generic
    checking for dlopen in -ldl… yes
    checking for ar… ar
    checking if compiler accepts -m64 flag… yes
    checking for required early compiler flags… none
    checking for 64-bit integer type… using long
    checking for Tcl public headers… /usr/include/tcl8.4
    checking for Tcl private include files… Using srcdir found in tclConfig.sh: /usr/include/tcl8.4/tcl-private
    checking for Tk public headers… /usr/include/tcl8.3
    checking for Tk private include files… Using srcdir found in tkConfig.sh: /usr/include/tcl8.3/tk-private
    checking tklib directory… yes (/usr/share/tcltk/tklib0.5)
    checking iwidgets directory… yes (/usr/share/tcltk/iwidgets4.0.1)
    checking itcl directory… vers=/3004000/
    yes (/usr/share/tcltk/itcl3.4)
    checking itk directory… yes (/usr/share/tcltk/itk3.3)
    configure: creating ./config.status
    config.status: creating Makefile
    config.status: creating system.mk
    config.status: creating shlib.conf
    config.status: creating staden_config.h
    config.status: staden_config.h is unchanged


    External packages used:
    curl:      via /usr/bin/curl-config
    zlib:      DIR (system)
    ncurses:   DIR (system)
    liblzma:   DIR
    samtools:  DIR /opt/src/samtools-0.1.12a
    io_lib:    via /usr/bin/io_lib-config
    Tcl:       via /usr/lib/tclConfig.sh
    Tk:        via /usr/lib/tk8.3/tkConfig.sh
    tklib:     /usr/share/tcltk/tklib0.5
    Iwidgets:  /usr/share/tcltk/iwidgets4.0.1
    Itcl:      /usr/share/tcltk/itcl3.4
    Itk:       /usr/share/tcltk/itk3.3


     
  • Hello,

    It looks like you are using Tk 8.3.  Can you upgrade to at least 8.4 and try it again?

    regards,

    Andrew

     
  • Thanks Anderw,

    I upgraded to tcl8.4, went through configure and make. As before gap5 works, but pregap says:

    tristan@umr5023-proasellus:/opt/src$ staden/bin/pregap4
    version conflict for package "Tcl": have 8.4, need 8.5
        while executing
    "load /usr/lib/libitcl3.4.so.1 Itcl"
        ("package ifneeded" script)
        invoked from within
    "package require Itcl 3.2"
        (file "/usr/share/tcltk/iwidgets4.0.1/iwidgets.tcl" line 18)
        invoked from within
    "source /usr/share/tcltk/iwidgets4.0.1/iwidgets.tcl"
        ("package ifneeded" script)
        invoked from within
    "package require Iwidgets"
        invoked from within
    "if {!$interactive} {
        init_modules
        if { > 0} {
            verror ERR_WARN check_modules \
                "One or more modules have not been config…"
        (file "/opt/src/staden/bin/../share/staden/tcl/pregap4/pregap4.tcl" line 108)

    The configure looks like:

    tristan@umr5023-proasellus:/opt/src/staden-2.0.0b7-src$ ./configure -prefix=/opt/src/staden -with-samtools=/opt/src/samtools-0.1.12a -enable-64bit
    checking for gcc… gcc
    checking for C compiler default output file name… a.out
    checking whether the C compiler works… yes
    checking whether we are cross compiling… no
    checking for suffix of executables…
    checking for suffix of object files… o
    checking whether we are using the GNU C compiler… yes
    checking whether gcc accepts -g… yes
    checking for gcc option to accept ISO C89… none needed
    checking for g++… g++
    checking whether we are using the GNU C++ compiler… yes
    checking whether g++ accepts -g… yes
    checking for gawk… gawk
    checking for curl-config… /usr/bin/curl-config
    checking for the version of libcurl… 7.19.7
    checking whether libcurl just needs -lcurl… yes
    checking whether libcurl is usable… yes
    checking for curl_free… yes
    checking how to run the C preprocessor… gcc -E
    checking for grep that handles long lines and -e… /bin/grep
    checking for egrep… /bin/grep -E
    checking for ANSI C header files… yes
    checking for sys/types.h… yes
    checking for sys/stat.h… yes
    checking for stdlib.h… yes
    checking for string.h… yes
    checking for memory.h… yes
    checking for strings.h… yes
    checking for inttypes.h… yes
    checking for stdint.h… yes
    checking for unistd.h… yes
    checking for inflateEnd in -lz… yes
    checking zlib.h usability… yes
    checking zlib.h presence… yes
    checking for zlib.h… yes
    checking for lzma_easy_buffer_encode in -llzma… yes
    checking lzma.h usability… yes
    checking lzma.h presence… yes
    checking for lzma.h… yes
    checking for png_create_write_struct in -lpng… yes
    checking png.h usability… yes
    checking png.h presence… yes
    checking for png.h… yes
    checking for library containing bam_header_read… no
    checking for library containing bam_header_read… -lbam
    checking bam.h usability… yes
    checking bam.h presence… yes
    checking for bam.h… yes
    checking if samtools version >= 0.1.3… yes
    checking for staden-io_lib-config… no
    checking for io_lib-config… /usr/bin/io_lib-config
    checking if io_lib version >= 1.12.2… yes
    checking for mvwprintw in -lncurses… yes
    checking ncurses.h usability… yes
    checking ncurses.h presence… yes
    checking for ncurses.h… yes
    checking for ANSI C header files… (cached) yes
    checking for sys/wait.h that is POSIX.1 compatible… yes
    checking fcntl.h usability… yes
    checking fcntl.h presence… yes
    checking for fcntl.h… yes
    checking limits.h usability… yes
    checking limits.h presence… yes
    checking for limits.h… yes
    checking for unistd.h… (cached) yes
    checking for zlib.h… (cached) yes
    checking for special C compiler options needed for large files… no
    checking for _FILE_OFFSET_BITS value needed for large files… no
    checking for _LARGEFILE_SOURCE value needed for large files… no
    checking for library containing cos… -lm
    checking for popen… yes
    checking for X… libraries , headers
    checking for gethostbyname… yes
    checking for connect… yes
    checking for remove… yes
    checking for shmat… yes
    checking for IceConnectionNumber in -lICE… yes
    checking whether byte ordering is bigendian… no
    checking for correct TEA configuration… ok (TEA 3.7)
    checking for Tcl configuration… found /usr/lib/tclConfig.sh
    checking for existence of /usr/lib/tclConfig.sh… loading
    checking for Tk configuration… found /usr/lib/tkConfig.sh
    checking for existence of /usr/lib/tkConfig.sh… loading
    checking for ranlib… ranlib
    checking if 64bit support is requested… yes
    checking if 64bit Sparc VIS support is requested… no
    checking if compiler supports visibility "hidden"… yes
    checking if rpath support is requested… yes
    checking system version… Linux-2.6.32-26-generic
    checking for dlopen in -ldl… yes
    checking for ar… ar
    checking if compiler accepts -m64 flag… yes
    checking for required early compiler flags… none
    checking for 64-bit integer type… using long
    checking for Tcl public headers… /usr/include/tcl8.4
    checking for Tcl private include files… Using srcdir found in tclConfig.sh: /usr/include/tcl8.4/tcl-private
    checking for Tk public headers… /usr/include/tcl
    checking for Tk private include files… Using srcdir found in tkConfig.sh: /usr/include/tcl8.4/tk-private
    checking tklib directory… yes (/usr/share/tcltk/tklib0.5)
    checking iwidgets directory… yes (/usr/share/tcltk/iwidgets4.0.1)
    checking itcl directory… vers=/3004000/
    yes (/usr/share/tcltk/itcl3.4)
    checking itk directory… yes (/usr/share/tcltk/itk3.3)
    configure: creating ./config.status
    config.status: creating Makefile
    config.status: creating system.mk
    config.status: creating shlib.conf
    config.status: creating staden_config.h


    External packages used:
    curl:      via /usr/bin/curl-config
    zlib:      DIR (system)
    ncurses:   DIR (system)
    liblzma:   DIR
    samtools:  DIR /opt/src/samtools-0.1.12a
    io_lib:    via /usr/bin/io_lib-config
    Tcl:       via /usr/lib/tclConfig.sh
    Tk:        via /usr/lib/tkConfig.sh
    tklib:     /usr/share/tcltk/tklib0.5
    Iwidgets:  /usr/share/tcltk/iwidgets4.0.1
    Itcl:      /usr/share/tcltk/itcl3.4
    Itk:       /usr/share/tcltk/itk3.3


    Thanks!

    -Tristan

     
  • Hi Tristan,

    Now you need itcl3.2 rather than 3.4.

    Getting the right version of itcl/iwidgets has proved to be more trouble than it is worth.  The next release of the Staden Package will remove the dependency on them (and Samtools).

    If you are comfortable with Subversion you could check out the latest version and not worry about itcl, iwidgets and Samtools.

    Andrew

     
  • I see, sounds like I am entering an infinite dependency loop

    I am not a svn master. How would you check out the latest code. The following seems to checkout a gigantic amount of data:

    svn co https://staden.svn.sourceforge.net/svnroot/staden staden

    Should I checkout a specific version using the -r option ?

    Thanks for your help,

    -Tristan

     
  • You need to add /trunk to the end so you get the main development branch. e.g.

    svn co https://staden.svn.sourceforge.net/svnroot/staden/trunk staden

    Once it has been checked out you need to run bootstrap in the staden/src directory before you try and configure it.

    I hope this helps,

    Andrew

     
  • James Bonfield
    James Bonfield
    2011-01-18

    If you're still having problems I can get a source tarball put somewhere for you soon. I'm still in the process of tidying up compiler warnings and bug hunting/fixing, but as an interim solution it's still preferable to suffering the nasties of itcl version mismatches. I've spent many an hour swearing over that one!

     
  • Thanks Andrew,
    I was able to get a working staden doing:

    svn co https://staden.svn.sourceforge.net/svnroot/staden/staden/trunk/ staden
    cd staden/src/
    ./bootstrap
    ./configure -prefix=/opt/src/staden -with-samtools=/opt/src/samtools-0.1.12a -enable-64bit
    make
    make install

    Before that I installed a bunch of packages (Ubuntu distro), not sure if they were indeed all necessary:

    sudo apt-get install tklib iwidgets4 liblzma1 samtools libstaden-read1 staden-io-lib-utils libcurl3-dev pkg-config tcl-dev tk-dev libpng12-devi libstaden-read-dev

    I also compile samtools with the -fPIC option.

    Cheers,

    -Tristan

     
  • James Bonfield
    James Bonfield
    2011-01-24

    With that svn checkout the -with-samtools will be ignored as it's no longer used. Also iwidgets/itcl/itk will be used if detected, but only for one esoteric function in Gap4 which I doubt most users would notice if it vanished (the prefinish GUI).

    Anyway glad it's now working. I'm hoping to make a new release soon, but I plan on getting the MS Windows build working first. (It compiles now at last, so I'm closing in on it.)