#5 tkdiff for OS X Lion


tkdiff 4.1.4 will not run on OS X Lion because Lion no longer supports Power PC applications (i.e., Rosetta is discontinued). I got the following error when I tried to run tkdiff from a Terminal window command line: Launch of "Wish Shell" failed: the PowerPC architecture is no longer supported. Can you release a new version of tkdiff that runs on Lion? And if so, how soon could it be available? Thanks!


  • DorothyR

    DorothyR - 2011-09-07

    Does the tkdiff that comes with tkcvs work for you? I think I made that one with a universal Tk 8.4.19 binary. The tkcvs disk image contains two separate apps, tkcvs and tkdiff. You can throw tkcvs away if you don't want it.
    I'm working on a tkcvs/tkdiff release built with a universal tk8.5 tclkit. I'll try and update the tkdiff project too. -dorothy

  • bhoover3

    bhoover3 - 2011-09-08

    Hi Dorothy,
    I tried using the tkdiff that comes with tkcvs. When I double-clicked on the app using Finder or ran the app all by itself from the command line, it was able to open the "New Diff" window. But after entering file names to compare, it would give an error message about being unable to open a file in /var/folders/Hw/...

    Further, when I attempted to use tkdiff to examine a changed file in an svn repository (by typing "tkdiff <filename>"), it gave me the following string of error messages:
    Error in startup script: Failed creating temporary file: couldn't open "/var/folders/Hw/Hw4WhqBUEEiJ4nFCTboq0U+++TI/-Tmp-/14429-1-1": no such file or directory
    while executing
    "error "Failed creating temporary file: $fid""
    (procedure "tmpfile" line 12)
    invoked from within
    "tmpfile $index"
    (procedure "get-file-rev" line 31)
    invoked from within
    "get-file-rev "$f" 1"
    (procedure "assemble-args" line 100)
    invoked from within
    (procedure "main" line 12)
    invoked from within
    (file "/Applications/TkDiff.app/Contents/Resources/Scripts/tkdiff.tcl" line 9520)
    invoked from within
    "source [file join [file dirname [info script]] tkdiff.tcl]"
    (file "/Applications/TkDiff.app/Contents/Resources/Scripts/AppMain.tcl" line 1)

    So it appears that the tkdiff in tkcvs does not quite work with Lion (at least, not quite yet). Thanks for working on the new release. Please let me know when you have a new version that I should test.
    - BH

  • DorothyR

    DorothyR - 2011-09-10

    Hmm. I can't see how it's deciding to write to /var, because the default temp location set by tkdiff unix/darwin is /tmp. I see that if env(TMPDIR) is set, it uses that. I wonder if Lion sets TMPDIR to /var. Anyway I think the work-around is to put this line in your ~/.tkdiffrc:

    # Directory for scratch files
    define tmpdir {/tmp}

    Let me know if that works, and if it does I'll look at some kind of kludge for Lion.

  • DorothyR

    DorothyR - 2011-09-10

    Oops, dang it took my CRs out. The line in ~/.tkdiffrc should be
    "define tmpdir {/tmp}"

  • bhoover3

    bhoover3 - 2011-09-12

    Hi Dorothy,
    It turns out that my ~/tkdiffrc file had the following bogus line in it already (which was apparently causing the error):
    define tmpdir {/var/folders/Hw/Hw4WhqBUEEiJ4nFCTboq0U+++TI/-Tmp-/}

    When I replaced that line with
    define tmpdir {/tmp}
    I was able to successfully run tkdiff on Lion for the first time. Thank you!

    Some additional notes:
    1. I don't know when or how the bogus tmpdir line was added to my tkdiffrc file (but I'm sure that I didn't add it myself). Therefore, this issue may or may not be something that needs to be "fixed" for the general Lion distribution.

    2. Although I was able to run tkdiff on Lion (seemingly successfully), I got the following two errors in the Terminal window after running the app for a few seconds:

    Wish[1487] <Error>: kCGErrorInvalidConnection: CGSGetWindowTags: Invalid connection
    Wish[1487] <Error>: kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to catch errors as they are logged.

    Are these cause for concern, and is there a way to eliminate the errors?

  • DorothyR

    DorothyR - 2011-09-13

    Snow Leopard does TMPDIR the same way, as it turns out. It just never gave me a problem for some reason.
    I put a new Mac version of TkDiff at http://www.twobarleycorns.net/other/TkDiff-app.tgz if you'd like to try it out. It isn't a disk image, just a tarball. The first file dialog should now open in your home directory, and the second file browser will open in the same directory as the first file was in.

  • DorothyR

    DorothyR - 2011-09-13
    • assigned_to: nobody --> dorothyr
  • bhoover3

    bhoover3 - 2011-09-16

    HI Dorothy,
    I tested the new Mac version, and it's working pretty well, with the following minor bugs:
    1. When I start tkdiff from the command line (e.g., "tkdiff -rxxxx -rxxxx <file>", the window focus stays with the Terminal window, rather than snapping to the tkdiff window. Under SnowLeopard, the tkdiff window automatically got the focus, which is much more convenient. Can this be done for Lion?

    2. I still get the following error messages in the Terminal window shortly after starting tkdiff from the command line (as above):

    tkdiff[5506] <Error>: kCGErrorInvalidConnection: CGSGetWindowTags: Invalid connection
    tkdiff[5506] <Error>: kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to catch errors as they are logged.

    A few seconds later, the first error message repeats.

    Those are the only problems that I've found so far. Thanks!


Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.

No, thanks