Dear Unix Squeakers,
3.11.3.2135 for Unix is now available at squeakvm.org/unix (sources plus binaries for MacOS/Darwin, Linux, NetBSD, FreeBSD and Solaris, on Intel and, occasionally, PowerPC hardware). Some important stuff has changed in this release (see notes below) so please consider it a BETA release even though there is no beta tag on the version number.
As usual: comments, suggestions, bug fixes (as whole files please *not* diffs) and any unwanted vinyl LPs sitting in your attic can be sent directly to me. Thanks.
Enjoy! Ian
Changes since 3.10-6:
Numbering scheme changed to X.Y.Z.R where X.Y.Z = VMMaker version used to generate the Interpreter and R is the subversion revision of the platform support code.
VMMaker and plugins updated to most recent versions; generated source regenerated:
Balloon3D-Plugins-ar.4.mcz DBus-Plugin-bf.32.mcz GStreamer-Plugins-JMM.16.mcz Kedama-Plugins-yo.1.mcz Rome-Plugin-yo.39.mcz OSProcessPlugin-dtl.16.mcz VMConstruction-Plugins-AioPlugin-dtl.9.mcz VMConstruction-Plugins-XDisplayControlPlugin-dtl.7.mcz VMMaker-dtl.138.mcz
Build system rewritten using CMake instead of autotools. Big THANK-YOU to Bert, Subbu and Dave Lewis for providing invaluable feedback.
Any plugin can now be turned off in configure with the option '--without-<pluginName>'.
Experimental PulseAudio driver (vm-sound-pulse) added, thanks to Derek O'Connell. Default is still OSS on Linux; if you want pulse you have to ask for it in one of the usual ways.
FFI tweaked on Linux to avoid a potential FPU stack overflow.
ClipboardExtendedPlugin will no longer try to build if you don't have X11 development headers and libs.
FileCopyPlugin made resilient to EINTR.
VM renamed to 'squeakvm'. 'squeak' is now a script that looks for 'squeakvm', figures out if you need any obscure command-line options, and then launches 'squeakvm' for you. This in turn allows...
Plugin search stretegy rationalised and simplified. Default location is now the executable directory (where 'squeakvm' is installed). The -plugins argument can be a colon-separated list of locations to search, just like PATH. Plugins are named 'so.plugin' to make interference with FFI libraries less likely.
NOTE: FFI libraries are no longer searched for in every single nook and cranny, which means you might have to set LD_LIBRARY_PATH (or your local equivalent) for FFI-based programs to work properly.
Failure to load a plugin because of unresolved symbols is now always reported on the terminal.
Another script 'squeak.sh' is provided for launching squeak from a menu. This isn't finished and suggestions are welcome.
Default path and text encoding is now UTF-8.
X11 driver no longer reports SHIFT pressed when CAPS LOCK engaged.
SerialPlugin now supports named ports.
All occurences of dprintf() renamed to avoid a name conflict with a less-than-stellar decision by POSIX to introduce a standard function of the same name.
RomePlugin is no longer built if cairo was built without Pango support.
iconv_open() no longer spams you with thousands of error messages if you are missing conversion tables.
Valid unicode characters that have no corresponding keycode are reported with keycode zero to avoid an invalid index error in the image.
XImmPlugin should now work on MacOS X/Darwin too.
Sound driver on MacOS X now works on Intel as well as PowerPC.
Various changes to make the VM compile and run on GNU/Linux running on DEC Alpha.
vm-sound-Sun now uses asynchronous i/o.
Various changes to fix compilation on Solaris.
Dear Ian,
On Thu, Sep 17, 2009 at 4:36 AM, Ian Piumarta piumarta@gmail.com wrote:
3.11.3.2135 for Unix is now available at squeakvm.org/unix (sources plus binaries for MacOS/Darwin, Linux, NetBSD, FreeBSD and Solaris, on Intel and, occasionally, PowerPC hardware). Some important stuff has changed in this release (see notes below) so please consider it a BETA release even though there is no beta tag on the version number.
As usual: comments, suggestions, bug fixes (as whole files please *not* diffs) and any unwanted vinyl LPs sitting in your attic can be sent directly to me. Thanks.
thank you very much for your work on the VM. Compilation worked fine. I have a problem however. I added 'set -xv' to see what's happening.
From the bld directory:
$ ./squeak -version bindir=/home/cassou/Documents/squeak/vm/Squeak-3.11.3.2135-src/bld plgdir=/home/cassou/Documents/squeak/vm/Squeak-3.11.3.2135-src/lib/squeak/3.11.3-2135 vm=/home/cassou/Documents/squeak/vm/Squeak-3.11.3.2135-src/bld/squeakvm plugins=/home/cassou/Documents/squeak/vm/Squeak-3.11.3.2135-src/bld/%n pulseaudio --check sound=-vm-sound-oss padsp true wrapper=padsp test -z /home/cassou/Documents/squeak/vm/Squeak-3.11.3.2135-src/bld/%n set -x exec padsp /home/cassou/Documents/squeak/vm/Squeak-3.11.3.2135-src/bld/squeakvm -pathenc UTF-8 -encoding UTF-8 -plugins /home/cassou/Documents/squeak/vm/Squeak-3.11.3.2135-src/bld/%n -vm-sound-oss -version could not find module vm-sound-OSS Aborted
What is this %n added to $plugins? Why does the script tries to use OSS when it was explicitly deactivated by configure? !! vm-sound-OSS disabled
Thank you
Hi Damien,
What is this %n added to $plugins?
The %n is replaced with the name of the plugin when the VM tries to load it. If the VM is run wth "-plugins $PWD/bld/%n" then when it tries to load "vm-sound-OSS" it will look for the file "$PWD/bld/vm- sound-OSS/so.vm-sound-OSS". Running out of the build directory is the real motivation behind the feature.
Why does the script tries to use OSS when it was explicitly deactivated by configure?
Because I failed to anticipate that situation. I think it's fixed in the trunk now. It would be very helpful if you would update and recompile and let me know what still doesn't work.
Thanks! Ian
Hi Ian,
On Thu, Sep 17, 2009 at 7:30 PM, Ian Piumarta piumarta@gmail.com wrote:
Why does the script tries to use OSS when it was explicitly deactivated by configure?
Because I failed to anticipate that situation. I think it's fixed in the trunk now. It would be very helpful if you would update and recompile and let me know what still doesn't work.
the sound problem is now gone and Squeak launches properly. However, I can't symlink the binary to a path directory:
$ cd /usr/bin $ ln -sf /home/cassou/.../squeak-svn/bld/squeak $ cd /path/of/the/image $ squeak file.image /usr/bin/squeak: 41: error: not found
The 'error' executable is not found.
Hi Ian,
Two minor comments:
I've attached a modified version of the script squeak which allows for symbolic links to be resolved correctly (line 12-14). I've also changed 'error' in line 37 to 'echo ...> /dev/stderr', error doesn't exist on my Debian machine.
If you start the VM with an image and it can't find the SqueakV39.sources it will pop up a confirmation box saying the sources file does not exist in the 'VM directory'. Creating a symlink to the sources file in the VM directory does not quite resolve the problem. A menu is brought up on startup saying that SqueakV39.sources does not exist giving several options of choosing another name and so on. It seems the VM expects SqueakV39.sources to be in the same directory as the image file, not the VM itself (doesn't make a big difference but the dialog box is misleading).
Great work; seems more responsive than 3.10-6; can't wait to get home and try out the new serial port ....
Have fun, Markus
----- Original Message ---- From: Ian Piumarta piumarta@gmail.com To: The general-purpose Squeak developers list squeak-dev@lists.squeakfoundation.org Sent: Wednesday, September 16, 2009 7:36:01 PM Subject: [squeak-dev] 3.11.3.2135 for Unix
Dear Unix Squeakers,
3.11.3.2135 for Unix is now available at squeakvm.org/unix (sources plus binaries for MacOS/Darwin, Linux, NetBSD, FreeBSD and Solaris, on Intel and, occasionally, PowerPC hardware). Some important stuff has changed in this release (see notes below) so please consider it a BETA release even though there is no beta tag on the version number.
As usual: comments, suggestions, bug fixes (as whole files please *not* diffs) and any unwanted vinyl LPs sitting in your attic can be sent directly to me. Thanks.
Enjoy! Ian
Changes since 3.10-6:
Numbering scheme changed to X.Y.Z.R where X.Y.Z = VMMaker version used to generate the Interpreter and R is the subversion revision of the platform support code.
VMMaker and plugins updated to most recent versions; generated source regenerated:
Balloon3D-Plugins-ar.4.mcz DBus-Plugin-bf.32.mcz GStreamer-Plugins-JMM.16.mcz Kedama-Plugins-yo.1.mcz Rome-Plugin-yo.39.mcz OSProcessPlugin-dtl.16.mcz VMConstruction-Plugins-AioPlugin-dtl.9.mcz VMConstruction-Plugins-XDisplayControlPlugin-dtl.7.mcz VMMaker-dtl.138.mcz
Build system rewritten using CMake instead of autotools. Big THANK-YOU to Bert, Subbu and Dave Lewis for providing invaluable feedback.
Any plugin can now be turned off in configure with the option '--without-<pluginName>'.
Experimental PulseAudio driver (vm-sound-pulse) added, thanks to Derek O'Connell. Default is still OSS on Linux; if you want pulse you have to ask for it in one of the usual ways.
FFI tweaked on Linux to avoid a potential FPU stack overflow.
ClipboardExtendedPlugin will no longer try to build if you don't have X11 development headers and libs.
FileCopyPlugin made resilient to EINTR.
VM renamed to 'squeakvm'. 'squeak' is now a script that looks for 'squeakvm', figures out if you need any obscure command-line options, and then launches 'squeakvm' for you. This in turn allows...
Plugin search stretegy rationalised and simplified. Default location is now the executable directory (where 'squeakvm' is installed). The -plugins argument can be a colon-separated list of locations to search, just like PATH. Plugins are named 'so.plugin' to make interference with FFI libraries less likely.
NOTE: FFI libraries are no longer searched for in every single nook and cranny, which means you might have to set LD_LIBRARY_PATH (or your local equivalent) for FFI-based programs to work properly.
Failure to load a plugin because of unresolved symbols is now always reported on the terminal.
Another script 'squeak.sh' is provided for launching squeak from a menu. This isn't finished and suggestions are welcome.
Default path and text encoding is now UTF-8.
X11 driver no longer reports SHIFT pressed when CAPS LOCK engaged.
SerialPlugin now supports named ports.
All occurences of dprintf() renamed to avoid a name conflict with a less-than-stellar decision by POSIX to introduce a standard function of the same name.
RomePlugin is no longer built if cairo was built without Pango support.
iconv_open() no longer spams you with thousands of error messages if you are missing conversion tables.
Valid unicode characters that have no corresponding keycode are reported with keycode zero to avoid an invalid index error in the image.
XImmPlugin should now work on MacOS X/Darwin too.
Sound driver on MacOS X now works on Intel as well as PowerPC.
Various changes to make the VM compile and run on GNU/Linux running on DEC Alpha.
vm-sound-Sun now uses asynchronous i/o.
Various changes to fix compilation on Solaris.
__________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
On 17.09.2009, at 21:02, Markus Lampert wrote:
If you start the VM with an image and it can't find the SqueakV39.sources it will pop up a confirmation box saying the sources file does not exist in the 'VM directory'. Creating a symlink to the sources file in the VM directory does not quite resolve the problem. A menu is brought up on startup saying that SqueakV39.sources does not exist giving several options of choosing another name and so on. It seems the VM expects SqueakV39.sources to be in the same directory as the image file, not the VM itself (doesn't make a big difference but the dialog box is misleading).
This has nothing to do with the VM, the image is looking for the sources.
- Bert -
If you start the VM with an image and it can't find the SqueakV39.sources it will pop up a confirmation box saying the sources file does not exist in the 'VM directory'. Creating a symlink to the sources file in the VM directory does not quite resolve the problem. A menu is brought up on startup saying that SqueakV39.sources does not exist giving several options of choosing another name and so on. It seems the VM expects SqueakV39.sources to be in the same directory as the image file, not the VM itself (doesn't make a big difference but the dialog box is misleading).
This has nothing to do with the VM, the image is looking for the sources.
Interesting, using the same image (trunk about 1 week old) with the 3.10-6 vm it expects the sources in the vm directory. May the difference in behaviour be related to resolving symbolic links?
Have fun, Markus
__________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
To clarify, my setup looks like this:
/home/mlampert/.squeak/ ... images and changes vms ... all VMs I have installed Squeak-3.10-6/... Squeak-3.11.3.2135-linux_i386/... vm-3.10-6 -> vms/Squeak-3.10-6/i686-pc-linux-gnu/usr/local/lib/squeak/3.10-6/ vm-3.11.3 -> vms/Squeak-3.11.3.2135-linux_i386/bin vm -> vm-3.11.3 .... (or -> vm-3.10.6)
Additionally I added a symlink 'vms/Squeak-3.10-6/SqueakV39.sources -> /usr/lib/squeak/SqueakV39.sources'. So far vm pointed to vm-3.10-6 and the image found the sources file.
When I added the 3.11.3 vm I added the symlink 'vms/Squeak-3.11.3.2135-linux_i386/lib/SqueakV39.source -> /usr/lib/squeak/SqueakV39.sources'. After pointing vm to vm-3.11.3 I encountered the problems described below. (well, of course I forgot to create the sources symlink initially ...).
Only after creating the symlink '/home/mlampert/.squeak/SqueakV39.sources -> /usr/lib/squeak/SqueakV39.sources' is the trunk image/vm-3.11.3 combination happy.
Have fun, Markus
----- Original Message ---- From: Markus Lampert markuslampert@yahoo.com To: The general-purpose Squeak developers list squeak-dev@lists.squeakfoundation.org Sent: Thursday, September 17, 2009 12:47:13 PM Subject: Re: [squeak-dev] 3.11.3.2135 for Unix
If you start the VM with an image and it can't find the SqueakV39.sources it will pop up a confirmation box saying the sources file does not exist in the 'VM directory'. Creating a symlink to the sources file in the VM directory does not quite resolve the problem. A menu is brought up on startup saying that SqueakV39.sources does not exist giving several options of choosing another name and so on. It seems the VM expects SqueakV39.sources to be in the same directory as the image file, not the VM itself (doesn't make a big difference but the dialog box is misleading).
This has nothing to do with the VM, the image is looking for the sources.
Interesting, using the same image (trunk about 1 week old) with the 3.10-6 vm it expects the sources in the vm directory. May the difference in behaviour be related to resolving symbolic links?
Have fun, Markus
What I meant is that teh image looks in the image directory too, not just the VM dir.
But now that you mention it I remember seeing problems with resolving symlinks. Not in this VM but an older one, but under Linux, yes.
- Bert -
On 17.09.2009, at 22:09, Markus Lampert wrote:
To clarify, my setup looks like this:
/home/mlampert/.squeak/ ... images and changes vms ... all VMs I have installed Squeak-3.10-6/... Squeak-3.11.3.2135-linux_i386/... vm-3.10-6 -> vms/Squeak-3.10-6/i686-pc-linux-gnu/usr/local/lib/ squeak/3.10-6/ vm-3.11.3 -> vms/Squeak-3.11.3.2135-linux_i386/bin vm -> vm-3.11.3 .... (or -> vm-3.10.6)
Additionally I added a symlink 'vms/Squeak-3.10-6/SqueakV39.sources -
/usr/lib/squeak/SqueakV39.sources'. So far vm pointed to vm-3.10-6
and the image found the sources file.
When I added the 3.11.3 vm I added the symlink 'vms/ Squeak-3.11.3.2135-linux_i386/lib/SqueakV39.source -> /usr/lib/ squeak/SqueakV39.sources'. After pointing vm to vm-3.11.3 I encountered the problems described below. (well, of course I forgot to create the sources symlink initially ...).
Only after creating the symlink '/home/mlampert/.squeak/ SqueakV39.sources -> /usr/lib/squeak/SqueakV39.sources' is the trunk image/vm-3.11.3 combination happy.
Have fun, Markus
----- Original Message ---- From: Markus Lampert markuslampert@yahoo.com To: The general-purpose Squeak developers list <squeak-dev@lists.squeakfoundation.org
Sent: Thursday, September 17, 2009 12:47:13 PM Subject: Re: [squeak-dev] 3.11.3.2135 for Unix
If you start the VM with an image and it can't find the SqueakV39.sources it will pop up a confirmation box saying the sources file does not exist in the 'VM directory'. Creating a symlink to the sources file in the VM directory does not quite resolve the problem. A menu is brought up on startup saying that SqueakV39.sources does not exist giving several options of choosing another name and so on. It seems the VM expects SqueakV39.sources to be in the same directory as the image file, not the VM itself (doesn't make a big difference but the dialog box is misleading).
This has nothing to do with the VM, the image is looking for the sources.
Interesting, using the same image (trunk about 1 week old) with the 3.10-6 vm it expects the sources in the vm directory. May the difference in behaviour be related to resolving symbolic links?
Have fun, Markus
From: Bert Freudenberg
What I meant is that teh image looks in the image directory too, not just the VM dir.
Makes sense, thanks for the clarification.
But now that you mention it I remember seeing problems with resolving symlinks. Not in this VM but an older one, but under Linux, yes.
If I wanted to look into that and contribute the changes, where and how would I start?
Have fun, Markus
- Bert -
On 17.09.2009, at 22:09, Markus Lampert wrote:
To clarify, my setup looks like this:
/home/mlampert/.squeak/ ... images and changes vms ... all VMs I have installed Squeak-3.10-6/... Squeak-3.11.3.2135-linux_i386/... vm-3.10-6 ->
vms/Squeak-3.10-6/i686-pc-linux-gnu/usr/local/lib/squeak/3.10-6/
vm-3.11.3 -> vms/Squeak-3.11.3.2135-linux_i386/bin vm -> vm-3.11.3 .... (or -> vm-3.10.6)
Additionally I added a symlink 'vms/Squeak-3.10-6/SqueakV39.sources ->
/usr/lib/squeak/SqueakV39.sources'. So far vm pointed to vm-3.10-6 and the image found the sources file.
When I added the 3.11.3 vm I added the symlink
'vms/Squeak-3.11.3.2135-linux_i386/lib/SqueakV39.source -> /usr/lib/squeak/SqueakV39.sources'. After pointing vm to vm-3.11.3 I encountered the problems described below. (well, of course I forgot to create the sources symlink initially ...).
Only after creating the symlink '/home/mlampert/.squeak/SqueakV39.sources ->
/usr/lib/squeak/SqueakV39.sources' is the trunk image/vm-3.11.3 combination happy.
Have fun, Markus
----- Original Message ---- From: Markus Lampert To: The general-purpose Squeak developers list
Sent: Thursday, September 17, 2009 12:47:13 PM Subject: Re: [squeak-dev] 3.11.3.2135 for Unix
If you start the VM with an image and it can't find the SqueakV39.sources it
will pop up a confirmation box saying the sources file does not exist in the 'VM directory'. Creating a symlink to the sources file in the VM directory does not quite resolve the problem. A menu is brought up on startup saying that SqueakV39.sources does not exist giving several options of choosing another name and so on. It seems the VM expects SqueakV39.sources to be in the same directory as the image file, not the VM itself (doesn't make a big difference but the dialog box is misleading).
This has nothing to do with the VM, the image is looking for the sources.
Interesting, using the same image (trunk about 1 week old) with the 3.10-6 vm
it expects the sources in the vm directory. May the difference in behaviour be related to resolving symbolic links?
Have fun, Markus
__________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
I had some possibly related problems with symlinks (also finding the sources) under Linux. This was with pharo-vm-0.15.2d-linux.zip.
Though I ran from a top level directory, squeak seemed to think it was running in a subdirectory. The image I ran against was a symlinked to that subdirectory.
Original setup proj/sub/x.image proj/sub/x.changes
Create proj/x.image and proj/x.changes as symlinks to the corresponding files under sub. Create proj/SqueakV39.sources as a symlink to the real one.
Invoke squeak from proj/ (squeak executable under proj/sub2/).
This gave me an error that I needed the sources file in the same directory as my image file. However, the path it gave was the directory of the squeak executable.
The cache directory for downloading packages ended up in proj/sub/cache and save as saved to proj/sub. This suggests it may have been looking for sources in proj/sub, where they weren't, rather than proj/, where they were.
This was with pharo's http://gforge.inria.fr/frs/download.php/23087/pharo1.0-10440-BETAdev09.09.1.... and http://gforge.inria.fr/frs/download.php/22745/pharo-vm-0.15.2d-linux.zip. Both unzipped into subdirectories. I ran pharo-vm-0.15.2d-linux/squeak pharo1.0-10418-BETAdev09.08.3.image &
I'm not sure of the ultimate cause of the problems, or the extent to which it is a vm issue.
Hi Markus,
Unfortunately GNU/Linux doesn't agree with the rest of the world about the flags (including -f) understood by readlink (and Solaris doesn't have it at all) so your suggestion isn't going to work.
How about this instead?
readlink="`which readlink`" test -x "${readlink}" || readlink=echo
canonic () {( cd "`dirname "$1"`" dir="`basename "$1"`" cd "`${readlink} "${dir}"`" pwd )}
bindir="`dirname "$0"`" bindir="`canonic "${bindir}"`" prefix="`dirname "${bindir}"`" [...rest of file the same...]
Cheers, Ian
Hi Ian, if it'll help you're welcome to add the attached to Squeak under the MIT license. I wrote it for my own use years ago and it is all my own work, etc, etc. Its pretty portable and more flexible than e.g. the Mac OS readlink.
On Thu, Sep 17, 2009 at 1:57 PM, Ian Piumarta piumarta@gmail.com wrote:
Hi Markus,
Unfortunately GNU/Linux doesn't agree with the rest of the world about the flags (including -f) understood by readlink (and Solaris doesn't have it at all) so your suggestion isn't going to work.
How about this instead?
readlink="`which readlink`" test -x "${readlink}" || readlink=echo
canonic () {( cd "`dirname "$1"`" dir="`basename "$1"`" cd "`${readlink} "${dir}"`" pwd )}
bindir="`dirname "$0"`" bindir="`canonic "${bindir}"`" prefix="`dirname "${bindir}"`" [...rest of file the same...]
Cheers, Ian
Ian,
your changes work (for me), if you add the following loop:
... bindir="`dirname "$0"`" bindir="`canonic "${bindir}"`" while test -L "${bindir}"; do bindir="`canonic "${bindir}"`" done ...
The '-L' could also be a '-h'. Unfortunately I only have access to Linux, so I don't know about the portability of this. My problem here seems to be that I have a link to a link ...
Eliot,
tried your implementation and ran into the same problem, it only resolves the first layer. So I guess do_readlink would have to be run in a loop to resolve the whole cascade.
I realize that this is probably not the place for this discussion. Where should I have posted initially?
Have fun, Markus
From: Eliot Miranda eliot.miranda@gmail.com To: The general-purpose Squeak developers list squeak-dev@lists.squeakfoundation.org Sent: Thursday, September 17, 2009 2:22:04 PM Subject: Re: [squeak-dev] 3.11.3.2135 for Unix
Hi Ian,
if it'll help you're welcome to add the attached to Squeak under the MIT license. I wrote it for my own use years ago and it is all my own work, etc, etc. Its pretty portable and more flexible than e.g. the Mac OS readlink.
On Thu, Sep 17, 2009 at 1:57 PM, Ian Piumarta piumarta@gmail.com wrote:
Hi Markus,
Unfortunately GNU/Linux doesn't agree with the rest of the world about the flags (including -f) understood by readlink (and Solaris doesn't have it at all) so your suggestion isn't going to work.
How about this instead?
readlink="`which readlink`" test -x "${readlink}" || readlink=echo
canonic () {( cd "`dirname "$1"`" dir="`basename "$1"`" cd "`${readlink} "${dir}"`" pwd )}
bindir="`dirname "$0"`" bindir="`canonic "${bindir}"`" prefix="`dirname "${bindir}"`" [...rest of file the same...]
Cheers, Ian
On Thu, Sep 17, 2009 at 7:16 PM, Markus Lampert markuslampert@yahoo.com wrote:
Ian,
your changes work (for me), if you add the following loop:
... bindir="`dirname "$0"`" bindir="`canonic "${bindir}"`" while test -L "${bindir}"; do bindir="`canonic "${bindir}"`" done ...
The '-L' could also be a '-h'. Unfortunately I only have access to Linux, so I don't know about the portability of this. My problem here seems to be that I have a link to a link ...
Eliot,
tried your implementation and ran into the same problem, it only resolves the first layer. So I guess do_readlink would have to be run in a loop to resolve the whole cascade.
Oops, didn't pay enough attention first time around. The attached takes a -f flag to follow links. Its not bery tested. It also makes the -s option more useful, enclosing paths that contain separators and other characters meaningful to the shell in quotes, but it doesn't bother to escape embedded quotes correctly.
I realize that this is probably not the place for this discussion. Where should I have posted initially?
The vm discussion list vm-dev@lists.squeakfoundation.org. But no biggie.
Have fun, Markus
From: Eliot Miranda eliot.miranda@gmail.com To: The general-purpose Squeak developers list squeak-dev@lists.squeakfoundation.org Sent: Thursday, September 17, 2009 2:22:04 PM Subject: Re: [squeak-dev] 3.11.3.2135 for Unix
Hi Ian,
if it'll help you're welcome to add the attached to Squeak under the MIT license. I wrote it for my own use years ago and it is all my own work, etc, etc. Its pretty portable and more flexible than e.g. the Mac OS readlink.
On Thu, Sep 17, 2009 at 1:57 PM, Ian Piumarta piumarta@gmail.com wrote:
Hi Markus,
Unfortunately GNU/Linux doesn't agree with the rest of the world about the flags (including -f) understood by readlink (and Solaris doesn't have it at all) so your suggestion isn't going to work.
How about this instead?
readlink="`which readlink`" test -x "${readlink}" || readlink=echo
canonic () {( cd "`dirname "$1"`" dir="`basename "$1"`" cd "`${readlink} "${dir}"`" pwd )}
bindir="`dirname "$0"`" bindir="`canonic "${bindir}"`" prefix="`dirname "${bindir}"`" [...rest of file the same...]
Cheers, Ian
Markus,
your changes work (for me), if you add the following loop:
Thanks. I'll adopt this, but put the loop in the canonic() function instead. I think keeping the logic in the script is preferable to bundling a binary program whose only purpose is to emulate realpath().
Cheers, Ian
On Thu, Sep 17, 2009 at 7:44 PM, Ian Piumarta piumarta@gmail.com wrote:
Markus,
your changes work (for me), if you add the following loop:
Thanks. I'll adopt this, but put the loop in the canonic() function instead. I think keeping the logic in the script is preferable to bundling a binary program whose only purpose is to emulate realpath().
I wasn't imagining bundling a binary but was imagining compiling readlink.c as part of the build process. But if the script can do just as well then it's to be preferred.
Cheers, Ian
Hi Eliot,
I wasn't imagining bundling a binary but was imagining compiling readlink.c as part of the build process.
Resolving the symlinks has to happen at run time, not at compile or install (which might not happen) time. There's also a catch-22 in where such a binary would live: the only reasonable place to put a dedicated 'symlink resolver' program would be in the squeak lib dir, which cannot be found in Markus's case except by first resolving the symlinks.
Cheers, Ian
Hi Ian,
On Thu, Sep 17, 2009 at 4:36 AM, Ian Piumarta piumarta@gmail.com wrote:
As usual: comments, suggestions, bug fixes (as whole files please *not* diffs) and any unwanted vinyl LPs sitting in your attic can be sent directly to me. Thanks.
where can I get the free type plugin? It was in the latest exupery VM but is not on your trunk.
Thank you
I've tried the latest OSX version from squeakvm.org and it doesn't start with the error
dyld: unknown required load command 0x80000022
some light googling indicates that this error means the software requires Snow Leopard (which I don't have).
rado
On Sep 26, 2009, at 6:33 AM, radoslav hodnicak wrote:
I've tried the latest OSX version from squeakvm.org and it doesn't start with the error dyld: unknown required load command 0x80000022
This should be compatible with 10.5.6 and later. People have reported that this error goes away on 10.5 after upgrading.
I will look for a way of linking with more aggressive backward compatibility.
Cheers, Ian
Hi Damien,
On Sep 23, 2009, at 12:33 AM, Damien Cassou wrote:
where can I get the free type plugin?
I have absolutely no idea. Google turns up lots of references to a pre-compiled binary but the source remains a mystery.
Anyone know where to get this?
It was in the latest exupery VM
How other people repackage the Unix VM is beyond my control.
but is not on your trunk.
If the author provides me with the plugin source files, or better places it on squeaksource, then I will be happy to include it in the repo and source/binary releases.
Cheers, Ian
squeak-dev@lists.squeakfoundation.org