Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NixOS Calamares installer #100475

Closed
jonringer opened this issue Oct 14, 2020 · 24 comments · Fixed by #161788
Closed

NixOS Calamares installer #100475

jonringer opened this issue Oct 14, 2020 · 24 comments · Fixed by #161788
Labels
0.kind: packaging request Request for a new package to be added 6.topic: release process Issues or PRs which are parts of the NixOS release process
Milestone

Comments

@jonringer
Copy link
Contributor

I learned a few weeks ago about Calamares . A nice distro-independent graphical installer for linux. I think it would be really beneficial for people to avoid the "most difficult" part of getting NixOS on bare metal.

I haven't done any feasibility, just curious if people feel strongly for or against this.

@jonringer jonringer added 0.kind: packaging request Request for a new package to be added 6.topic: release process Issues or PRs which are parts of the NixOS release process labels Oct 14, 2020
@jonringer jonringer added this to the 21.03 milestone Oct 14, 2020
@FRidh
Copy link
Member

FRidh commented Oct 14, 2020

Graphical installer topic also suggesting Calamares #21662.

@jonringer
Copy link
Contributor Author

haha, I just stumbled upon that thread. I saw the thread update with your post above :)

@jonringer
Copy link
Contributor Author

crazy how that was "only" 3 1/2 years ago, and there's been 80,000 new issues/PRs since then O.o

@AndersonTorres
Copy link
Member

Would be OK to close it in favor of #21662?

@jonringer
Copy link
Contributor Author

I think the two are related, but not the same.

The other is proposing a graphical installer in general, and I'm proposing one specifically.

Perhaps discourse would be a better forum, as there's likely to be a narrative there, and the discoverability should be better as well.

@lboklin
Copy link

lboklin commented Oct 15, 2020

Related discussion on Discourse: https://discourse.nixos.org/t/user-friendly-nixos-distro/

@nixos-discourse
Copy link

This issue has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/user-friendly-nixos-distro/1348/57

@nixos-discourse
Copy link

This issue has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/new-users-using-nixos-wrong/9973/3

@nixos-discourse
Copy link

This issue has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/cirnos-brainstorming-period/10056/5

@davidak
Copy link
Member

davidak commented Mar 5, 2021

People started to work on this at NixCon 2019. @manveru made the last commit about a year ago in https://github.com/Lucus16/calamares/tree/os-modules. So there would be the place to continue.

https://discourse.nixos.org/t/what-are-your-goals-for-20-03/4773/7?u=davidak

@manveru @Lucus16 do you want to continue the work? Can you get it in a clean state with comments etc. so someone else can continue the work?

It would be great to have a basic version ASAP. Just like the manual with ext4 and standard configuration.nix. Then we can build on that. Don't announce in release notes until you can select a DE.

@Lucus16
Copy link
Contributor

Lucus16 commented Mar 5, 2021 via email

@manveru
Copy link
Contributor

manveru commented Mar 5, 2021

I also wouldn't mind helping out on this again, it was mostly held up because I tried to include a nice way to select different profiles for DEs and common use-cases, but the Calamares UI was just not able to provide that. Haven't checked it in a while, so hopefully things are better now, or someone with C++ skills could jump in and provide the needed functionality.

@nixos-discourse
Copy link

This issue has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/google-summer-of-code/11873/7

@cwhy
Copy link
Contributor

cwhy commented Apr 20, 2021

Elementary os have released another installer. Is it worth a look? https://medium.com/elementaryos/meet-the-upcoming-installer-a499341218f5

@davidak
Copy link
Member

davidak commented Apr 20, 2021

@cwhy the frontend has no release yet. maybe with their next os release https://github.com/elementary/installer/releases

It was suggested before when it was announced: #21662 (comment)

I think it would be great in combination with Pantheon desktop, but for a general purpose installer, Calamares might be better.

@aanderse
Copy link
Member

I assume it is written in vala which is infinitely more obscure than c++ so probably not a good idea.

@jonringer jonringer modified the milestones: 21.05, 21.11 Jun 3, 2021
@samuela
Copy link
Member

samuela commented Jun 5, 2021

It's not GUI, but I created https://github.com/samuela/nixos-up for exactly this purpose. IMHO as long as it doesn't make the user think too much, I think a CLI installer is fine. With that in mind nixos-up strives to get you into a working install as quickly as possible, with the assumption that the user can modify settings to their personal liking from there.

Some ways nixos-up could be improved:

  • Support resizing existing partitions such that it's not a "wipe the disk" kind of install.
  • Integrate more smoothly into the ISO experience so the user doesn't have to write sudo nix-shell <long-url...>.

@jonringer
Copy link
Contributor Author

I was poking around for inspiration, and found that there's already a nixos module https://github.com/calamares/calamares-extensions/tree/calamares/modules/os-nixos

cc @adriaandegroot for inclusion

@manveru
Copy link
Contributor

manveru commented Jun 25, 2021

That module was meant as an example for us when we started working on the installer, it's not actually doing anything useful.

@jonringer
Copy link
Contributor Author

Thought it was interesting :)

@adriaandegroot
Copy link

That module was meant as an example for us when we started working on the installer, it's not actually doing anything useful.

Yep. It's a proof-of-not-much-concept; the idea behind it was basically "you could use Calamares as the UI to collect configuration things (language, keyboard, user, ..) and do the basics like partitioning and EFI setup and writing an initial filesystem (e.g. from a squashfs), and then the os-nixos module could take over for all the special configurations needed.

I don't know a thing about NixOS beyond the "there's hashes in paths where I wouldn't expect them", so any progress there depends on questions / issues / PRs from NixOS folks.

@vlinkz
Copy link
Member

vlinkz commented Dec 21, 2021

I used @adriaandegroot module as a base for a pair of modules I made in https://github.com/vlinkz/calamares-nixos-extensions. The first module nixos-generate-config creates an initial filesystem and the second nixos-customize-config adds options from the locale, keyboard, and users modules. Also to fix some broken modules I opened #151508 Still haven't worked on branding at all, but tested a few basic installs with the modules and they seemed to work perfectly as expected. Haven't looked into adding new package options, but I think it shouldn't be too difficult given calamares' packaging module. Any thoughts on my implementation?

@vlinkz
Copy link
Member

vlinkz commented Feb 25, 2022

New draft pr here: #161788. Complete guided installation works as expected. Any feedback is appreciated!

@jonringer
Copy link
Contributor Author

@vlinkz very nice! Looks amazing

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
0.kind: packaging request Request for a new package to be added 6.topic: release process Issues or PRs which are parts of the NixOS release process
Projects
None yet
Development

Successfully merging a pull request may close this issue.