10 ms·
Up until the release of Catalina, I've always upgraded to the latest version of macOS within a month or two. But some of the changes this time is really stoppin
by soraminazuki 6y ago
Up until the release of Catalina, I've always upgraded to the latest version of macOS within a month or two. But some of the changes this time is really stopping me from upgrading.
As of Catalina, there's no sane way to install the Nix package manager without losing functionality because macOS now disallows creating new files in the root directory[1]. Nix stores its packages in the /nix directory and it's not possible to migrate without causing major disruptions for existing NixOS and other Linux users. This is too bad, since apart from Nix being a nice package manager, it also provides a sane binary package for Emacs. The Homebrew core/cask versions only provides a limited feature set[2][3].
[1]: https://github.com/NixOS/nix/issues/2925 https://github.com/NixOS/nix/issues/2925
[2]: https://github.com/Homebrew/homebrew-core/issues/31510 https://github.com/Homebrew/homebrew-core/issues/31510
[3]: https://github.com/caldwell/build-emacs/search?q=support+is%3Aopen&unscoped_q=support+is%3Aopen&type=Issues https://github.com/caldwell/build-emacs/search?q=support+is%...
- mjhoy 6y agoIt's funny, I just had to do this a few days ago. This comment has worked for me on two machines: https://github.com/NixOS/nix/issues/2925#issuecomment-539570232 https://github.com/NixOS/nix/issues/2925#issuecomment-539570...
- soraminazuki 6y agoThere's just so many problems with that approach: 1. You have to create a separate volume just to install a package manager, which is a poor user experience 2. A separate volume means FileVault won't work out of the box 3. The volume can be mounted only after GUI apps are brought up 4. Restoring after sleep might fail because of 3 All of these are mentioned in the Github issue, but it might be hard to find because it requires so many clicks and scrolling to view the whole thread.
- mjhoy 6y ago1 — Sure. But Nix isn't exactly the most friendly package manager to begin with. I wouldn't recommend it if you're not comfortable creating volumes. 2 — Could you explain? Mine is on and working, I didn't need to do anything else. 3 — Is this if you have login items that need nix to be available? I don't have this so I haven't noticed. 4 — I've never run into this, but again I might just not use Nix for the kind of things that would cause issues.
- soraminazuki 6y agoIt's not that installing Nix is impossible on macOS, it's just that it has some hard-to-ignore limitations now. 1. Having to create a volume when a plain old directory should suffice is insane. It's creating a hassle for no good reason for users. 2. /nix would be unencrypted by default if kept in a separate volume. There's also the problem of how to unlock it upon boot. 3. Login items is a very common use case so not supporting it would be problematic for many users. 4. Unreliable sleep is an even bigger problem.
- saagarjha 6y agoI believe Nix actually picks a volume so that it can be encrypted, and it uses one of the many ways to run a script before login (some of which still happen to work) to decrypt it?
- soraminazuki 6y agoIt's still problematic because that can only happen late in the login process.
- saagarjha 6y agoI read that thread a couple weeks back (was doing some firmlink research and stumbled upon it) and I seem to recall someone there finding something that ran pretty early. Perhaps I'm misremembering? I am sure there is at least one way to get this done, but I'll have to go look into what it is.
- skohan 6y agoFor me it's aperture. I like the interface better than lightroom, and I don't want to pay a monthly fee to have access to my photo library which I only add to once in a while. It's a shame because it's a great piece of software, and even the UI doesn't feel dated, but I just won't be able to run it if I upgrade.
- DanCarvajal 6y agoMight want to look at Capture1 at this point.
- adwww 6y agoThe UI is way worse than either Aperture or Lightroom, but the editing is powerful, and you can download the full version for free if you have a Fuji or Sony camera, IIRC.
- joking 6y agoIt’s a capped version with some missing functionality (like layers), but it’s still a great piece of software.
- xoa 6y agoFor what it's worth, Aperture, iPhoto and iTunes can be made to run in Catalina. People figured out last year what hacks were needed and there is a tool called Retroactive that will automate the steps: https://github.com/cormiertyshawn895/Retroactive https://github.com/cormiertyshawn895/Retroactive Got some discussion on HN [1] about 3 months ago amongst other places, cool bit of sleuthing in the vein of efforts to get versions of macOS running on Macs older than officially supported. Personally I'm somewhat resigned to needing VMs to run certain older software, with a big one for me being Creative Suite CS6. Like you I have no interesting in buying into Adobe's subscription lock-in. But it's nice that some stuff can keep running without that layer for a while longer. Hopefully it'll still be possible in 10.16. ---- 1: https://news.ycombinator.com/item?id=22454069 https://news.ycombinator.com/item?id=22454069
- glofish 6y agoIMHO the original choice of the path seems incredibly ill-advised and the main burden lies with the original developers. sometimes old errors and mistakes come back and bite
- soraminazuki 6y agoIt only seems that way now because some platforms have begun locking down their root directories. Nix, by design, doesn't conform to the FHS way of organizing directories so it made perfect sense to use /nix when the decision was originally made.
- zozbot234 6y ago> Nix, by design, doesn't conform to the FHS way of organizing directories That's why /opt/ exists. What's wrong with /opt/nix/ ? Or /var/opt/nix/ for read-write files that need not be a fixed part of any package installation (the Unix equivalent of system-wide "Application Data").
- soraminazuki 6y agoNix isn't designed as an application. It's designed as a system package manager.
- californical 6y agoIt's also an application, it just happens to manage other applications
- soraminazuki 6y agoTo be more clear, it wasn't designed as a third-party package manager. It's supposed to be part of the system.
- sneak 6y agoOr NIX_PATH, or ~/.nix, et c. I am infinitely tired of this node_modules “we know better than you, it isn’t configurable and will never be configurable so stop asking” hubris. It’s not open source entitlement to say that a maintainer with that attitude is bad and wrong. My homebrew is installed to ~/Library/Homebrew and while they claim it’s unsupported, it works, and if it stops working, then I’ll stop using Homebrew. I don’t trust software that demands root when it doesn’t need it.
- deleted 6y ago[deleted]
- yalogin 6y agoBrew never had this problem because they chose a sane path without corrupting the system directory. It’s a bad design on part of NixOS and one can even say the changes in the macOS were designed to encourage good/sane design.
- tomp 6y agoExactly. What's more, if we're talking about user hostility, how hostile is when a software doesn't provide a configurable install dir? It's literally a single damn variable!!
- roguas 6y agoThis is not the case. The problem is that caching is based on the default path which is /nix. So they would have to rebuild all caches.
- packetlost 6y agoMaybe they shouldn't have built it that way then. In my experience nix is nothing but a huge pain in the ass if you don't buy fully into the system, weird design decisions and all
- soraminazuki 6y ago> doesn't provide a configurable install dir This is completely false. You can change the installation directory at the cost of losing binary packages. When you change it, packages would be built from source instead. This is what Homebrew does too. What's more, I don't think many package managers provide this option. Not apt, not yum.
- saagarjha 6y agoHomebrew itself recommends you not do this, and while it is getting better at working in this case you will still run into issues if you try to do certain things.
- 6y ago
- joosters 6y agoYou can create permanent symlinks inside / by creating a file called /etc/synthetic.conf - 'man synthetic.conf' has the full documentation. This sounds like it would solve the issue?
- lilyball 6y agoYou can install Nix without losing functionality, it’s just annoying because it requires setting up a separate volume, and if you want it encrypted and available before the GUI session restores then you have to use a login script to force-mount it. Personally I just keep my Nix volume unencrypted because I don’t build any proprietary software in it and I don’t care if someone can see what I have installed. I really wish Apple would give third parties the ability to create firmlinks (or at least give Nix one), or barring that, give us a sane way to mount encrypted volumes at the same time that the system volume is unlocked.