I use Squeak on several different platforms and would like the Preferences to be saved via Monticello. Make a separate project for preferences and we could just load our own latest version.
For example http://source.squeak.org/preferences
Best,
Karl
On Sun, Jan 2, 2022 at 9:07 PM Jakob Reschke jakres+squeak@gmail.com wrote:
Hi Tim,
Happy new year!
We need to find the correct directory for both the sources and for the preferences, but the situation is different for each of the two. The source file can be written once at installation time and it needs only be readable while Squeak is running, not writable. It is a resource like man pages or icons. A file with default preferences (in the way I proposed it) cannot be installed beforehand and it needs to be writable while Squeak is running.
For example, you could put the sources under /usr/local/share/squeak or /opt/squeak, but since they are not generally writable, that would not work for the preferences. Also the preferences are user-specific, whereas the source file is not.
Having system-wide Squeak preferences in addition to user-specific preferences would be more of a complete solution, but I think the benefit is marginal. So in my opinion we should not invest in this at present. Or does somebody use Squeak from different user accounts on the same machine regularly?
Kind regards, Jakob
Am Fr., 31. Dez. 2021 um 01:09 Uhr schrieb tim Rowledge <tim@rowledge.org
:
Yes, this is a problem on a wider scale than just the preferences.
Consider the sources file; we really want to keep a single copy and so it should be in a place easily found.
The all-in-one packages have a somewhat convoluted directory structure
that isn't the most convenient for daily usage, though at least the sources file is in the same directory as the image.
The platform specific packages have different layouts. We may want to
put images in different directories to suit our projects.
Originally the rule was that the sources file would be either next to
the image, or next to the VM. IIRC there was a primitive that reported the location as well and I faintly remember the Unix VM having quite the list of places it would look. Now we also have a problem when loading VMs from the autobuilder or after manually building, in that there is the whole sqcogspur64ARMv8linuxht/lib/squeak/5.0-202112201228-64bit/* type path to the VM. We *can't* have the sources file 'next to' the VM in any practical sense here; at least not without either having many copies, or using links. FS links are not something we've ever got to grips with...
And obviously preferences may be systemwide or user local, so we ought
to handle those both.
I'm not completely sure what the answer is. On unix one could decide to
go with the suggestions at https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch04s09.html and use /usr/local but then again that appears to be intended for 'admin' users and we all know how hard unix works to prevent mere users from doing anything. Maybe /opt/squeak would be better? That is supposedly for "Add-on application software packages".
Should we use a primitive to locate the directories? We kinda-sorta have
a template for that in the ScratchPlugin, and somewhat in the SecurityPlugin. Or we could do it all in the image easily enough, at some cost in platform spread in-image.
tim
tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim Useful random insult:- Fell out of the family tree.