matju (or anyone else working on desire),
...just got around to trying (again) to get desire running on osx, with the app_pkg setup...seems like only some minor tweaks were needed to current cvs of desire.tk: as before, the problems have to do with setting up tcl so it knows where pd is...personally, I think that
set $OS $tcl_platform(platform)
isn't fine grained enough for our purposes, but would be better if it were:
set $OS $tcl_platform(os)
...doing that, $OS is set to Darwin here, but with (platform) I also get unix, which isn't very specific 8-\
...likewise, I changed the $OS ref's from "osx" to "Darwin", and now I'm back to starting up:
DesireData 0.39.ATcl 8.5, Tk 8.5 tcl_platform(osVersion) = 8.3.0 tcl_platform(byteOrder) = bigEndian tcl_platform(threaded) = 1 tcl_platform(machine) = Power Macintosh tcl_platform(platform) = unix tcl_platform(os) = Darwin tcl_platform(user) = tigital tcl_platform(wordSize) = 4 thing [gdb] GNU gdb 6.1-20040303 (Apple version gdb-434) (Wed Nov 2 17:28:16 GMT 2005) [gdb] Copyright 2004 Free Software Foundation, Inc. [gdb] GDB is free software, covered by the GNU General Public License, and you are [gdb] welcome to change it and/or distribute copies of it under certain conditions. [gdb] Type "show copying" to see the conditions. [gdb] There is absolutely no warranty for GDB. Type "show warranty" for details. [gdb] This GDB was configured as "powerpc-apple-darwin"... [gdb] (gdb) (gdb) Starting program: -guiport 13666
...but then it doesn't go any further: here's what I get when trying to open a patch:
can not find channel named "" can not find channel named "" while executing "puts $sock "$s;"" (procedure "pd" line 4) invoked from within "pd pd open [enquote $basename] [enquote $directory]" (procedure "client_open_file_really" line 8) invoked from within "client_open_file_really 00000001 /Users/tigital/puredataDev/ devel_0_39/pd/doc/2.control.examples/03.connections.pd" ("eval" body line 1) invoked from within "eval [concat [list $name $self] [lrange $args 2 end]]" (procedure "::unknown" line 18) invoked from within "$self open_file_really $filename" (procedure "client_open_file" line 4) invoked from within "client_open_file 00000001" ("eval" body line 1) invoked from within "eval [concat [list $name $self] [lrange $args 2 end]]" (procedure "::unknown" line 18) invoked from within "00000001 open_file" (menu invoke)
...any insight here? I'm wondering if it still tries to just call pd without the pd_path: the app_pkg bundle doesn't have the "standard" install locations for pd and friends:
desire.app/ desire.app/Contents/ desire.app/Contents/MacOS/desire (ie. "wish", + locale/ & objective.tcl) desire.app/Contents/Resources/bin/pd (+ libpdtcl.dylib, desire.tk, icons/, etc...) desire.app/Contents/Resources/doc desire.app/Contents/Resources/extra desire.app/Contents/Resources/include desire.app/Contents/Resources/man desire.app/Contents/Resources/Scripts
...etc...
james
On Dec 15, 2005, at 1:17 PM, james tittle wrote:
matju (or anyone else working on desire),
...just got around to trying (again) to get desire running on osx, with the app_pkg setup...seems like only some minor tweaks were needed to current cvs of desire.tk: as before, the problems have to do with setting up tcl so it knows where pd is...personally, I think that
set $OS $tcl_platform(platform)
isn't fine grained enough for our purposes, but would be better if it were:
set $OS $tcl_platform(os)
...doing that, $OS is set to Darwin here, but with (platform) I also get unix, which isn't very specific 8-\
...likewise, I changed the $OS ref's from "osx" to "Darwin", and now I'm back to starting up:
Actually, I think you need a combo of both $tcl_platform(platform) and $tcl_platform(os) to cover all the supported situations. This is what is at the top of u_main.tk:
if { $tcl_platform(platform) == "windows" } { set pd_nt 1 } elseif { $tcl_platform(os) == "Darwin" } { set pd_nt 2 } else { set pd_nt 0 }
We don't need to treat different versions of Windows differently ($tcl_platform(platform)== "windows"), but for Darwin/Mac OSX, ($tcl_platform(platform) == "unix"), but that OS needs to be handled very differently than GNU/Linux, FreeBSD, etc. which are also ($tcl_platform(platform) == "unix").
.hc
DesireData 0.39.ATcl 8.5, Tk 8.5 tcl_platform(osVersion) = 8.3.0 tcl_platform(byteOrder) = bigEndian tcl_platform(threaded) = 1 tcl_platform(machine) = Power Macintosh tcl_platform(platform) = unix tcl_platform(os) = Darwin tcl_platform(user) = tigital tcl_platform(wordSize) = 4 thing [gdb] GNU gdb 6.1-20040303 (Apple version gdb-434) (Wed Nov 2 17:28:16 GMT 2005) [gdb] Copyright 2004 Free Software Foundation, Inc. [gdb] GDB is free software, covered by the GNU General Public License, and you are [gdb] welcome to change it and/or distribute copies of it under certain conditions. [gdb] Type "show copying" to see the conditions. [gdb] There is absolutely no warranty for GDB. Type "show warranty" for details. [gdb] This GDB was configured as "powerpc-apple-darwin"... [gdb] (gdb) (gdb) Starting program: -guiport 13666
...but then it doesn't go any further: here's what I get when trying to open a patch:
can not find channel named "" can not find channel named "" while executing "puts $sock "$s;"" (procedure "pd" line 4) invoked from within "pd pd open [enquote $basename] [enquote $directory]" (procedure "client_open_file_really" line 8) invoked from within "client_open_file_really 00000001 /Users/tigital/puredataDev/devel_0_39/pd/doc/2.control.examples/ 03.connections.pd" ("eval" body line 1) invoked from within "eval [concat [list $name $self] [lrange $args 2 end]]" (procedure "::unknown" line 18) invoked from within "$self open_file_really $filename" (procedure "client_open_file" line 4) invoked from within "client_open_file 00000001" ("eval" body line 1) invoked from within "eval [concat [list $name $self] [lrange $args 2 end]]" (procedure "::unknown" line 18) invoked from within "00000001 open_file" (menu invoke)
...any insight here? I'm wondering if it still tries to just call pd without the pd_path: the app_pkg bundle doesn't have the "standard" install locations for pd and friends:
desire.app/ desire.app/Contents/ desire.app/Contents/MacOS/desire (ie. "wish", + locale/ & objective.tcl) desire.app/Contents/Resources/bin/pd (+ libpdtcl.dylib, desire.tk, icons/, etc...) desire.app/Contents/Resources/doc desire.app/Contents/Resources/extra desire.app/Contents/Resources/include desire.app/Contents/Resources/man desire.app/Contents/Resources/Scripts
...etc...
james
PD-dev mailing list PD-dev@iem.at http://lists.puredata.info/listinfo/pd-dev
________________________________________________________________________ ____
News is what people want to keep hidden and everything else is publicity.
- Bill Moyers
On Thu, 15 Dec 2005, Hans-Christoph Steiner wrote:
On Dec 15, 2005, at 1:17 PM, james tittle wrote:
matju (or anyone else working on desire),
I didn't receive your message. pd-dev seems to eat some once in a while.
set $OS $tcl_platform(platform) isn't fine grained enough for our purposes, but would be better if it were: set $OS $tcl_platform(os) ...doing that, $OS is set to Darwin here, but with (platform) I also get unix, which isn't very specific 8-\
Actually, I think you need a combo of both $tcl_platform(platform) and $tcl_platform(os) to cover all the supported situations. This is what is at the top of u_main.tk: if { $tcl_platform(platform) == "windows" } { set pd_nt 1 } elseif { $tcl_platform(os) == "Darwin" } { set pd_nt 2 } else { set pd_nt 0 }
Yes, it should the the way that Hans says, but making those changes:
set pd_nt 0 -> set OS unix set pd_nt 1 -> set OS windows set pd_nt 2 -> set OS osx
To fit the actual code in desire.tk
[gdb] (gdb) (gdb) Starting program: -guiport 13666 ...but then it doesn't go any further:
It's supposed to continue like this:
[gdb] [Thread debugging using libthread_db enabled] [gdb] [New Thread 1079372000 (LWP 11740)]
If it doesn't, then try starting desire.tk with option -nogdb and if it doesn't cut it either then try starting _regular_ puredata (devel or pureMSP) with -guiport just in case there's a bug that makes it hang on OSX.
here's what I get when trying to open a patch: can not find channel named ""
That means that there's no socket because the server isn't finished loading. a Tcl channel = a C FILE*.
...any insight here? I'm wondering if it still tries to just call pd without the pd_path: the app_pkg bundle doesn't have the "standard" install locations for pd and friends:
I think that this might be the problem, but I haven't fixed it yet. The way I want it, desire.tk will get installed in the main bin along with pd (by "main" I mean not the lib/pd/bin/ backhouse). It would then try to load pd from the same directory as itself instead of PATH. does that make sense?
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju | Freelance Digital Arts Engineer, Montréal QC Canada
On Dec 16, 2005, at 7:27 AM, Mathieu Bouchard wrote:
On Thu, 15 Dec 2005, Hans-Christoph Steiner wrote:
On Dec 15, 2005, at 1:17 PM, james tittle wrote:
matju (or anyone else working on desire),
I didn't receive your message. pd-dev seems to eat some once in a while.
set $OS $tcl_platform(platform) isn't fine grained enough for our purposes, but would be better if it were: set $OS $tcl_platform(os) ...doing that, $OS is set to Darwin here, but with (platform) I also get unix, which isn't very specific 8-\
Actually, I think you need a combo of both $tcl_platform (platform) and $tcl_platform(os) to cover all the supported situations. This is what is at the top of u_main.tk: if { $tcl_platform(platform) == "windows" } { set pd_nt 1 } elseif { $tcl_platform(os) == "Darwin" } { set pd_nt 2 } else { set pd_nt 0 }
Yes, it should the the way that Hans says, but making those changes:
set pd_nt 0 -> set OS unix set pd_nt 1 -> set OS windows set pd_nt 2 -> set OS osx
To fit the actual code in desire.tk
...either way sounds fine with me...
[gdb] (gdb) (gdb) Starting program: -guiport 13666 ...but then it doesn't go any further:
It's supposed to continue like this:
[gdb] [Thread debugging using libthread_db enabled] [gdb] [New Thread 1079372000 (LWP 11740)]
If it doesn't, then try starting desire.tk with option -nogdb and if it doesn't cut it either then try starting _regular_ puredata (devel or pureMSP) with -guiport just in case there's a bug that makes it hang on OSX.
...it got a lot further with the -nogdb option after I added:
switch $OS { Darwin { set pd [string map {MacOS/desireData Resources/bin/pd} [info nameofexecutable]] exec $pd -guiport $server_port & } default { exec pd -guiport $server_port & } }
...I assume this isn't a good fix, but just a hack to get past this point...anyway, here's the output on launch:
DesireData 0.39.ATcl 8.5, Tk 8.5 tcl_platform(osVersion) = 8.3.0 tcl_platform(byteOrder) = bigEndian tcl_platform(threaded) = 1 tcl_platform(machine) = Power Macintosh tcl_platform(platform) = unix tcl_platform(os) = Darwin tcl_platform(user) = tigital tcl_platform(wordSize) = 4 thing files_to_open='' canvas_notice(0x6158e0,0x615380,1,...): havewindow=0 mapped=0
canvas_notice(0x615b00,0x615ab0,1,...): havewindow=0 mapped=0
canvas_notice(0x615b00,0x615e10,1,...): havewindow=0 mapped=0
reading startup file: /Users/tigital/.pdrc
startup args from RC file:
-outchannels
2
input channels = 0, output channels = 0
input channels = 0, output channels = 0
...and of course a ton of stuff is spewed into the terminal, but I'll leave that for another time...notably I can't create new windows, but I can open a window that is mostly offscreen to the top left...but at least the menu's are more fully filled out :-)
I think that this might be the problem, but I haven't fixed it yet. The way I want it, desire.tk will get installed in the main bin along with pd (by "main" I mean not the lib/pd/bin/ backhouse). It would then try to load pd from the same directory as itself instead of PATH. does that make sense?
...this sounds like exactly the same situation as the app bundle: everything goes into Contents/Resources/bin, except for the wish shell...
james