FLTK logo

Re: [fltk.coredev] Re: Understanding macOS build environments

FLTK matrix user chat room
(using Element browser app)   FLTK gitter user chat room   GitHub FLTK Project   FLTK News RSS Feed  
  FLTK Apps      FLTK Library      Forums      Links     Login 
 All Forums  |  Back to fltk.coredev  ]
 
Previous Message ]New Message | Reply ]Next Message ]

Re: Re: Understanding macOS build environments Manolo Mar 04, 2021  
 

On Thursday, March 4, 2021 at 4:28:08 PM UTC+1 er...@seriss.com wrote:

On 3/4/21 2:10 AM, Manolo wrote:

 A: Fink. Although it doesn't work yet with macOS 11, so I may have to change.
It's installed in /opt/sw

    I'm guessing Fink and other tools that use /opt will get what they want using
    /etc/synthetic.conf, which is apple's workaround to making / read-only.
I'm not aware of this /etc/synthetic.conf file and its function.
There's no such file here neither in my Intel nor my M1 macOS machines (macOS 11.2.2)


    I'm guessing they'll use the 'special link' approach, and put their actual data
    in either /usr/local/opt or /System/Volumes/Data/opt (again, just a guess!).
    I would hope they choose the former, as the latter is something  Apple could
    change in future releases (as they often do with stuff they just make up).
There's no  /usr/local/opt nor /System/Volumes/Data/opt here either.



    /etc/synthetic.conf tells the OS on boot to create empty dirs and/or special kinds of
    symbolic links to another place. This is apparently is Apple's workaround to making
    root completely unwriteable. With this approach, apparently Apple can supervise
    (and deny) what can be done in the root dir.

My understanding, which must be partial, is different. macOS now uses 2 "intertwined
filesystems" (my wording for this concept), one holding the system and one for user files.
That for the system is readonly.
It's readonly in a strong sense: even root cannot write to it or mount it rw.
It used to be possible to bypass that:
mount the system disk on another, earlier, macOS machines and you can write to /
then reboot and you had your /xxx folder. I did that for /sw to get my fink.
But then fink was improved to use /opt/sw and /opt is not in the system filesystem
but in the user filesystem. So root can write to it.
That those filesystems are interwined is visible with /opt which is a top-level directory
but in the writable part. It's also visible when you install an app, say Firefox, in /Applications:
there you have some files of /Applications in the readonly filesystem, and others in the writable filesystem.
I have once found in the web the name of the file that lists those directories which are writable
and don't remember that info. But it's mostly useless because that file is unchangeable.

With macOS 11, it's much worse: the system part of the file system is cryptographically signed,
so it's impossible to change anything in it, unless you recreate the signature, with obscure
and not well documented means.

My understanding is also that Apple intends to leave /opt a part of the filesystem that users
are free to colonize. That's visible with XQuartz, Macports, Fink that are all put there.
But this may of course change at some future time.



--
You received this message because you are subscribed to the Google Groups "fltk.coredev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fltkcoredev+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/fltkcoredev/4536ecb4-4803-468e-8e44-fc7070bc674cn%40googlegroups.com.
Direct Link to Message ]
 
     
Previous Message ]New Message | Reply ]Next Message ]
 
 

Comments are owned by the poster. All other content is copyright 1998-2024 by Bill Spitzak and others. This project is hosted by The FLTK Team. Please report site problems to 'erco@seriss.com'.