snack does not work on tcl-tk 8.5 required by wavesurfer

Bug #1630367 reported by Giampiero Salvi
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
wavesurfer (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

When running wavesurfer in Ubuntu 16.04 I get:
Error in startup script: can't find package snack 2.2
    while executing
"package require snack 2.2"
    (file "/usr/share/tcltk/wavesurfer/wsurf/wsurf.tcl" line 9)
    invoked from within
"_source /usr/share/tcltk/wavesurfer/wsurf/wsurf.tcl"
    ("uplevel" body line 1)
    invoked from within
"uplevel _source $args"
    (procedure "source" line 5)
    invoked from within
"source /usr/share/tcltk/wavesurfer/wsurf/wsurf.tcl"
    ("package ifneeded wsurf 1.8" script)
    invoked from within
"package require -exact wsurf $version"
    (file "/usr/share/tcltk/wavesurfer/app-wavesurfer/wavesurfer.tcl" line 2578)

The problem:
The package wavesurfer depends on version 8.5 of tcl-tk and on snack. On Ubuntu 16.04 the default version of tcl-tk (and wish) is 8.6. Version 8.5 can be installed manually with

sudo apt-get install tcl8.5

Unfortunately, libsnack will only work in tcl-tk (and wish) version 8.6.

Example:
> wish
% puts $tcl_version
8.6
% packa req snack
2.2

> wish8.5
% puts $tcl_version
8.5
% packa req snack
can't find package snack

Same is also valid for tclsh and tclsh8.5.

Easy fix for wavesurfer:
Add the following line to the start-up script (/usr/bin/wavesurfer):

-------------
#!/bin/sh

export TCLLIBPATH=/usr/lib/tcltk/snack2.2
exec /usr/share/tcltk/wavesurfer/app-wavesurfer/wavesurfer.tcl "$@"
-------------

Better solution:
Modify the snack package so that snack works regardless what version of tcl-tk is used.

Another better solution:
make the wavesurfer package depend on tcl-tk 8.6 instead of 8.5 (this avoids installing two versions of tcl-tk)

Affected packages:
- wavesurfer
- tcl-snack
- tcl8.5

> lsb_release -rd
Description: Ubuntu 16.04.1 LTS
Release: 16.04

> apt-cache policy wavesurfer
wavesurfer:
  Installed: 1.8.8p4-3ubuntu1
  Candidate: 1.8.8p4-3ubuntu1
  Version table:
 *** 1.8.8p4-3ubuntu1 500
        500 http://se.archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
        500 http://se.archive.ubuntu.com/ubuntu xenial/universe i386 Packages
        100 /var/lib/dpkg/status

> apt-cache policy tcl-snack
tcl-snack:
  Installed: 2.2.10.20090623-dfsg-6
  Candidate: 2.2.10.20090623-dfsg-6
  Version table:
 *** 2.2.10.20090623-dfsg-6 500
        500 http://se.archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
        100 /var/lib/dpkg/status

> apt-cache policy tcl8.5
tcl8.5:
  Installed: 8.5.19-1
  Candidate: 8.5.19-1
  Version table:
 *** 8.5.19-1 500
        500 http://se.archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
        100 /var/lib/dpkg/status

Revision history for this message
Giampiero Salvi (giampisalvi) wrote :

Hi,
I wanted to mention that yesterday we released a new version of WaveSurfer that does not require a specific version of tcl any longer. The source code is at https://sourceforge.net/projects/wavesurfer/.

Updating the package to this version will probably solve a lot of problems and will no longer force users to install two versions of tcl on their computers.

Best Giampiero (also on behalf of Jonas Beskow)

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in wavesurfer (Ubuntu):
status: New → Confirmed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package wavesurfer - 1.8.8p5-1ubuntu1

---------------
wavesurfer (1.8.8p5-1ubuntu1) cosmic; urgency=medium

  * Merge from Debian unstable. Remaining changes:
    - debian/{wavesurfer.desktop,rules}: Add and install a .desktop file.
  * wavesurfer now depends on tk8.6 (LP: #1630367).

wavesurfer (1.8.8p5-1) unstable; urgency=medium

  * This upstream release merges most of the patches we added between the
    1.8.8p4-1 and 1.8.8p4-3 releases, and adds a few extra ones for tk8.6
    support.

  * Switch the tk dependency to 8.6, tk8.5 is EOL and its maintainers want to
    drop it now. I'm going to keep this as a versioned dependency (even though
    upstream had dropped the versioned invocation of wish with this release)
    because historically, each new tk version usually broke something that we
    needed to tweak the code to fix, so let's not let that happen silently and
    go unnoticed until it's too late in a release cycle to fix.
    Closes: #893209

  * Change the libsnack2 dependency to tcl-snack in line with the renaming of
    that package to fit the Tcl/Tk policy. We'd stuck with libsnack2 (which
    the new package provides) to keep backports simple, and though Wheezy LTS
    isn't quite EOL yet, that's only a couple of months away now and the new
    tk8.6 dependency is already unsatisfiable there, so anyone really wanting
    to use this there is probably going to need to tweak at least that anyway.
    Closes: #725256

 -- Logan Rosen <email address hidden> Sat, 08 Sep 2018 20:54:37 +0000

Changed in wavesurfer (Ubuntu):
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.