[squeak-dev] User config directories (was: Merge Request: autoEncloseBeforeSpace.cs)

Jakob Reschke jakres+squeak at gmail.com
Sun Jan 2 20:06:49 UTC 2022

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,

Am Fr., 31. Dez. 2021 um 01:09 Uhr schrieb tim Rowledge <tim at 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 at rowledge.org; http://www.rowledge.org/tim
> Useful random insult:- Fell out of the family tree.

More information about the Squeak-dev mailing list