tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Moving files out of PREFIX on macOS



September 30, 2026 at 12:16 PM, "Greg Troxel" <gdt%lexort.com@localhost mailto:gdt%lexort.com@localhost?to=%22Greg%20Troxel%22%20%3Cgdt%40lexort.com%3E > wrote:


> 
> ivan%ivanpollak.com@localhost mailto:ivan%ivanpollak.com@localhost  writes:
> 
> > 
> > Im encountering an issue that I would like to solve on the macOS platform -- When
> >  installing a GUI application, for example x11/alacritty, it will place the .app file
> >  into ${PREFIX}/Applications, which is correct, however macOS doesn't provide any way
> >  to adjust where the system searches for the installed applications. All GUI programs,
> >  e.g. .app files (actually they are directories but anyways) need to live in
> >  /Applications to be found by launchpad and since macOS 26 the spotlight application
> >  section.
> > 
> >  The same happens with fonts. MacOS only searches through /Library/Fonts/ for installed
> >  fonts. I haven't tested it, but it is possible that ~/Library/Fonts/ also is searched
> >  as well as ~/Applications/. This creates a major issue and for every GUI application or
> >  font, some files need to be either symlinked or moved. (Fonts cannot be symlinked, .app
> >  files can)
> > 
> >  Has anyone already solved this issue? I've heard that using the INSTALL/DEINSTALL could
> >  be used. Would this actually be feasable in this situation?
> > 
> INSTALL and DEINSTALL don't really seem appropriate for putting things
> outside of $PREFIX.
> 
> You are running into a core doctrinal issue in pkgsrc, that it builds to
> $PREFIX, and a base system that is deficient in configurability. There
> was a lot of angst about mozilla-rootcerts-openssl which put things into
> the system openssl directory, and it was considered a necessary evil but
> my impression was that nobody was really happy about it even though most
> agreed it was better to have it than not have it. It was banned as a
> dependency, though.
> 
> There is another issue, that I brought up long ago and got ~no
> responses: on macOS, one can build many GUI two ways:
> 
>  - using X, as if the mac were a normal unix computer
>  - using mac frameworks, making a .App
> 
> We don't really have a coherent plan as to which we want to do, and the
> set of upstreams are not entirely coherent either. While .App is in
> some ways nicer, you can't run it over remote X11, so in that way it's
> deficient.
> 
> I would suggest:
> 
>  If you want what you do to end up as part of pkgsrc, instead of just
>  being your private mechanism, do not include LLM output.
> 
>  First, survey homebrew, macports, and fink, plus any other mac-centric
>  packaging system that exists or existed, and see what they do about
>  this issue. Find out why, and what problems they had.
> 
>  Think about shlib linking, and the consequences of moving bits from a
>  .app in $PREFIX to Applications. Which libs are loaded from where.
>  This is going to cause you to have to really under libraries and
>  dynamic linking on macOS, which seems to be much more complicated than
>  on a normal (ELF) computer.
> 
>  Consider a tool to do a mac-ish installation of some bits of a pkgsrc
>  pkg, probably symlinking *.App and copying fonts, with registration,
>  and of course uninstall. Use that with packages from pgksrc to hook
>  them into the mac world. Probably publish that tool and make a
>  package.
> 
>  Given the above tool, it would be a reasonable discussion about a way
>  to hook it into package installation/deinstallation as an
>  after-install pre-deinstall slot. I mean to add a feature to call
>  hooks to pkgsrc, not to accomodate mac stuff specifically.
> 
> That's all opinionated and I only thought about it for 5 minutes. The
> most important thing is to understand related work first.
>

Thanks for your input!

According to the documentation it is officially recommended to use
INSTALL/DEINSTALL to handle cases where files should go outside of
the ${PREFIX}. [1]

Also im pretty sure that .App's would be the preferred way of building
and installing packages due to them being integrated with the base system


Home | Main Index | Thread Index | Old Index