News for hackers. Stuff that matters.
Re:Wayland on NixOS: Confusion, Conquest, Triumph by mksybr on Sunday July 02, 2023 @09:31AM (#36561329)
I don't think NixOS is the only distro that has this property, what prevents someone from making a shell script that installs your applications and dotfiles? Blow away your OS install and get your set up back in one line is my experience and I don't run Nix or Guix for most of my applications
Re:Wayland on NixOS: Confusion, Conquest, Triumph by ParetoOptimal on Sunday July 02, 2023 @09:46AM (#36561448)
> what prevents someone from making a shell script that installs your applications and dotfiles

The reproducibility of that would not be nearly as high.

For example, if the source of those applications is apt the versions of packages would change over time.

Re:Wayland on NixOS: Confusion, Conquest, Triumph by mksybr on Sunday July 02, 2023 @10:05AM (#36561590)
yes, i am fine with that personally and its hard for me to grok what benefits reproducibility in the guix sense would get me here
Re:Wayland on NixOS: Confusion, Conquest, Triumph by rgoulter on Sunday July 02, 2023 @10:56AM (#36562015)
One example was "I want to run an old version Hugo".

In the time since running the old version of hugo, enough about the system had changed:

- The OS had changed significantly (so re-running an old build didn't work). - The compiler had changed significantly (so compiling from source would have been difficult).

https://jvns.ca/blog/2023/02/28/some-notes-on-using-nix/

Re:Wayland on NixOS: Confusion, Conquest, Triumph by mksybr on Sunday July 02, 2023 @02:18PM (#36564105)
Great example! Managing old or multiple versions of software is actually a great usecase for Guix.
Re:Wayland on NixOS: Confusion, Conquest, Triumph by ParetoOptimal on Wednesday July 05, 2023 @10:45AM (#36601157)
> i am fine with that personally and its hard for me to grok what benefits reproducibility in the guix sense would get me here

I read this as:

> i am fine with the lack of reproducibility of apt-update personally and its hard for me to grok what benefits reproducibility in the guix sense would get me here

To which my answer is:

Guix gets you the reproducibility benefit of not having the reproducibility harming apt-update.

Does this help answer your question or confuse things more?

Re:Wayland on NixOS: Confusion, Conquest, Triumph by angio on Sunday July 02, 2023 @10:01AM (#36561560)
With NixOS someone else has written that script and now I can use a DSL to configure my desktop
Re:Wayland on NixOS: Confusion, Conquest, Triumph by mksybr on Sunday July 02, 2023 @10:04AM (#36561586)
someone wrote a script to install only the applications I want and configure my .config files the way I do but for guix? this seems to be a conflation, i'm not producing packages for my distro which is what the equivalent guix script would be, no?

edit: and isnt shell a DSL too? one i already know in contrast with Nixlang.

edit2: and not just already know it, but also much much much less likely to fade into obscurity than nixlang... bash/dash/sh aren't ever going away

Re:Wayland on NixOS: Confusion, Conquest, Triumph by dbeley on Sunday July 02, 2023 @10:03AM (#36561573)
It's just impossible to have the same level of configuration with your own custom script, NixOS goes way beyond: its configuration capabilities goes from your bootloader to user-level Firefox add-ons, and you have niceties like reproductability and rollbacks.
Re:Wayland on NixOS: Confusion, Conquest, Triumph by mksybr on Sunday July 02, 2023 @10:06AM (#36561599)
what? none of that is impossible for me to configure with a shell script? i install my userChrome.css to firefox with it, and i havent tried the addons aspect because my firefox account syncs them for me. since i run zfs i should get rollbacks too without learning a new language and packaging theory for guix
Re:Wayland on NixOS: Confusion, Conquest, Triumph by dbeley on Sunday July 02, 2023 @10:27AM (#36561788)
How do you install the userChrome.CSS automatically? As far as I know it needs to be placed in a folder containing a hash that's only generated at firefox first launch.

At some point if you want to configure everything with your own shell script it will be a nightmare to maintain, NixOS is easy to learn in comparison.

Re:Wayland on NixOS: Confusion, Conquest, Triumph by Arnavion on Sunday July 02, 2023 @11:27AM (#36562338)
You can generate the metadata in ~/.mozilla/firefox (installs.ini, profiles.ini) to have whatever profile dirs you want. Only if you let FF generate them itself will they have the unknown random names.
Re:Wayland on NixOS: Confusion, Conquest, Triumph by mksybr on Sunday July 02, 2023 @02:13PM (#36564031)
i just glob over *.default and *.default-release `mkdir -p chrome` and move it there then check if my user.js has the setting that enables legacy userchrome (via grep, (useless) cat, and pipe), and if not add it. wouldnt guix do something similar if it managed my userChrome.css?

i am not sold on the maintainability delta between my script and a guix one, but i only use a text editor, a terminal emulator and two web browsers for 90% of my use, so maybe im just too small scale to run into the maintainability issue it's trying to solve. the main struggle i have is in making the config files, and guix would only add another layer to that.

easy to learn might be a valid consideration for me if i didn't already feel comfortable with scripts of the normal non guix variety, but the devil i know does fine.

Re:Wayland on NixOS: Confusion, Conquest, Triumph by dbeley on Sunday July 02, 2023 @02:37PM (#36564321)
NixOS is overriding the profile name by using your username so the name is not auto-generated anymore (NixOS hates that) so it knows the user profile will always be at ~/.mozilla/firefox/USERNAME. It automatically creates a ~ /.mozilla/firefox/profiles.ini with a custom profile.
Re:Wayland on NixOS: Confusion, Conquest, Triumph by mksybr on Sunday July 02, 2023 @03:16PM (#36564672)
That's a nice small benefit that seems dwarfed by the increase of complexity, but maybe I am blind to my death of a million paper cuts that I've grown used to.

Maybe I'll update my script to use named instead of randomly generated profiles, though.

What does it do for multiple profiles?

Re:Wayland on NixOS: Confusion, Conquest, Triumph by dbeley on Sunday July 02, 2023 @04:32PM (#36565382)
You can specify as many profiles as you want, you have a property called firefox.profiles that can be an array and you would declare as many settings you would want in it. They still need to be names though (either through a variable like an username or a name you would set yourself).
Re:Wayland on NixOS: Confusion, Conquest, Triumph by kaba0 on Monday July 03, 2023 @02:29AM (#36569531)
It’s increasine in complexity when you are writing shell scripts, it is not when you have a proper system in place that provides a sane abstraction/interface for defining such configurations.
Re:Wayland on NixOS: Confusion, Conquest, Triumph by mksybr on Monday July 03, 2023 @06:34AM (#36571058)
Guix is a huge upfront increase of complexity for someone who already has a shell script to do the same thing.
Re:Wayland on NixOS: Confusion, Conquest, Triumph by kaba0 on Sunday July 02, 2023 @10:42AM (#36561908)
It’s possible as in you have a Turing-complete set of tools. You would basically have to recreate something like Nix for it to properly work, and would only end up with a much worse version of it, without the huge amount of work that goes into it (both the core, but especially the “wide ranging software support” part).
Re:Wayland on NixOS: Confusion, Conquest, Triumph by mksybr on Sunday July 02, 2023 @02:13PM (#36564032)
a set of tools that wont fade away, its much harder to believe that about nixlang than its for bash/dash/sh

i dont have to recreate nix to get easy customized installs, my installer script doesnt need to know or do anything about derivations, monads, flakes, etc. it just uses packages from my distro and pulls in my .config directory. what else does nix do that my script should do? the software my script installs is probably more supported than it would be on nix because its on ubuntu, one of the more commonly supported distros.

Re:Wayland on NixOS: Confusion, Conquest, Triumph by kaba0 on Monday July 03, 2023 @01:05AM (#36569121)
It doesn’t have to go away when your alternative won’t work correctly in the first place and will collapse under its weight.
Re:Wayland on NixOS: Confusion, Conquest, Triumph by pxc on Friday July 07, 2023 @06:33PM (#36639145)
* * *
Re:Wayland on NixOS: Confusion, Conquest, Triumph by rgoulter on Sunday July 02, 2023 @10:51AM (#36561981)
Writing a shell script to install packages, hoping it's idempotent, isn't to the level of "[do it] once, and you won't have to do it ever again!".

Installing a list of packages is relatively easy, sure.

A NixOS system configuration also takes care of settings for different services; which typically you'd edit files under /etc/ for.

The closest practical analogue to a NixOS system configuration that's popular is probably setting up your computer.

Re:Wayland on NixOS: Confusion, Conquest, Triumph by mksybr on Sunday July 02, 2023 @02:13PM (#36564021)
Coping files to /etc doesn't require Guix. Installing applications and copying their respective config files doesn't require Guix. Guix seems worse for this than a repo of config files and a shell script or makefile, because of the required extra complexity
Re:Wayland on NixOS: Confusion, Conquest, Triumph by rgoulter on Sunday July 02, 2023 @09:11PM (#36567549)
It's possible to have a full system setup with shell scripts. The only things I'm aware of people doing are copy-pasting the "install these packages" when setting up a system.

When it comes to reliably getting a system to an expected state, shell scripts aren't a popular solution.

Nix and Guix are more complex than not using them. I'd compare that to Vim/Emacs being more complex than Notepad.

Re:Wayland on NixOS: Confusion, Conquest, Triumph by mksybr on Sunday July 02, 2023 @09:29PM (#36567645)
My script installs configuration as well as packages. Guix is way more complex than my script, not only in part because I would need package a non zero amount of things to have it be feature complete with my shell script, and unlike your notepad vs emacs example, people don't seem to point to anything that Guix can do that my system can't, or the things they identify I do so rarely that it would be more efficient to do them manually instead of porting my system to Guix, like making containers.

Also not a popular way to configure a system? They are THE default way, that is being tried to displaced by various configuration management tooling and Guix, no?

If I wanted to sells emacs to someone on notepad I wouldn't have to resort to things as vague and hand wavy and dubious in value as reproducible'). I'd be listing features they lack. The Guix features I want I have, which is simple install of my applications and configs

You don't need Guix to copy files to /etc, you don't need it to install your applications and you can get a pretty reasonably easy custom install with a repo of config files and a script to clone and copy.