Code Monkey home page Code Monkey logo

icicle's Introduction

Icicle

Built with Nix License: GPLv3 Chat on Matrix Chat on Discord Translated with Weblate

A graphical installer for NixOS based distributions.

Translation status

icicle's People

Contributors

weblate avatar vlinkz avatar comradekingu avatar gregorni avatar

Stargazers

Sven avatar  avatar Berk Elyesa Yıldırım avatar  avatar  avatar aemogie. avatar Otavio Pliger avatar Tanja avatar Izel Nakri | izelnakri.eth avatar Luís Guimarães avatar M1K3Y avatar  avatar Kevin Madison avatar  avatar Vishnu N K avatar Pedro Lobo avatar Jappie3 avatar  avatar Aleksana avatar Markus Geiger avatar RAVENz46 avatar Tulili avatar Nathan avatar srestegosaurio avatar Brian Cooper avatar George Kontridze avatar Mark Homoky avatar Jack W. avatar Federico Damián Schonborn avatar Pavel Atanasov avatar devin avatar  avatar  avatar leap123 avatar Mathias Zhang avatar Felipe Nogueira avatar Hertog avatar Bryn avatar  avatar Fábio Vinícius Lima avatar Grunge Fox avatar Ali Galal avatar LinuxNewbie avatar Dylan Frankland avatar  avatar Ryan Swart avatar Samuel Ainsworth avatar  avatar Basile Henry avatar Curt Sheller avatar Vlad M. avatar Sandro avatar Cathal avatar Jonas Heinrich avatar Matthias Thym avatar Fabián Heredia Montiel avatar Shayon avatar Ryan Mulligan avatar Masanori Ogino avatar Ryan Lahfa avatar Jake Hamilton avatar Akito avatar Bryan A. S. avatar

Watchers

Izel Nakri | izelnakri.eth avatar pinage404 avatar  avatar  avatar

icicle's Issues

Error installing in VirtualBox

Install fails in Virtualbox when it comes to installing VirtualBox-GuestAdditions.
It tries to install VirtualBox-GuestAdditions-7.0.10-6.5.9 whereas the version of my VirtualBox is 7.0.14 r161095
So 7.0.10 is not the expected version 7.0.14.
Here are the logs of the install :

=== Icicle Log ===
17:30:43 [INFO] Resource loaded: /nix/store/317s5l3hq1xwrpdc3rh2c7lsz0kgjnas-icicle-0.0.2/share/icicle/resources.gresource
17:30:44 [DEBUG] (1) icicle::utils::parse: Parsing config /etc/icicle/config.yml
17:30:45 [DEBUG] (1) icicle::ui::pages::timezone: Selected timezone: Some("Europe/Paris")
17:30:46 [DEBUG] (4) reqwest::connect: starting new connection: http://nmcheck.gnome.org/
17:30:47 [INFO] Selected language: Some("en_US.UTF-8")
17:30:48 [DEBUG] (1) icicle::ui::pages::partitions: Got disks: [InputDisk { name: "/dev/sda", size: 64424509440, partitions: [InputPartition { name: "/dev/sda1", _format: "ext4", size: 64420314624 }] }, InputDisk { name: "/dev/sr0", size: 2679111680, partitions: [InputPartition { name: "/dev/sr0p2", _format: "unknown", size: 12582912 }] }]
17:30:48 [INFO] Partition: "/dev/sda1" length 60.0 GiB
17:30:48 [INFO] Partition: "/dev/sr0p2" length 12.0 MiB
17:30:51 [DEBUG] (1) icicle::ui::window: StackPage: Carousel
17:30:51 [DEBUG] (1) icicle::ui::window: Config: Some(InstallationConfig { config_id: "basic", config_name: "Basic Installation", config_logo: "emoji-symbols-symbolic", config_type: Snowfall, imperative_timezone: true, steps: [Welcome, Keyboard, Location, User { root: None, hostname: None }, Partitioning, Summary], commands: [] })
17:30:51 [DEBUG] (1) icicle::ui::pages::user: Hostname changed to the same value, ignoring
17:30:55 [INFO] Selected language: Some("fr_FR.UTF-8")
17:31:15 [DEBUG] (1) icicle::ui::pages::summary: SetConfig: Some("fr_FR.UTF-8"), Some("fr"), Some("Europe/Paris"), Some(FullDisk("/dev/sda")), Some(UserConfig { name: "Thatoo", username: "thatoo", password: "*****", hostname: "snowflakeos", rootpassword: None, autologin: false })
17:31:17 [DEBUG] (1) icicle::ui::window: StackPage: Install
17:31:17 [DEBUG] (1) icicle::ui::window: Installing!
17:31:17 [INFO] Step 0: Clear /tmp/icicle
17:31:17 [INFO] Step 1: Setup and mount partitions
17:31:17 [DEBUG] (3) icicle::utils::install: Executing partition with json: {"FullDisk":"/dev/sda"}
17:31:17 [DEBUG] (3) icicle::utils::install: PARTITION OUTPUT: Partition: Finding disk
17:31:18 [DEBUG] (3) icicle::utils::install: PARTITION OUTPUT: Partition: Creating MBR partition table
17:31:18 [DEBUG] (3) icicle::utils::install: PARTITION OUTPUT: Partition: Creating root partition
17:31:18 [DEBUG] (3) icicle::utils::install: PARTITION OUTPUT: Partition: Committing changes
17:31:19 [DEBUG] (3) icicle::utils::install: PARTITION OUTPUT: Partition: Formatting partitions
17:31:20 [DEBUG] (3) icicle::utils::install: PARTITION OUTPUT: Partition: Reloading disk
17:31:20 [DEBUG] (3) icicle::utils::install: PARTITION OUTPUT: Partition: Sorting partitions
17:31:20 [DEBUG] (3) icicle::utils::install: PARTITION OUTPUT: Partition: Mounting partitions
17:31:20 [DEBUG] (3) icicle::utils::install: PARTITION OUTPUT: -- Target: /
17:31:20 [DEBUG] (3) icicle::utils::install: PARTITION OUTPUT: -- Device: /dev/sda1
17:31:20 [DEBUG] (3) icicle::utils::install: PARTITION OUTPUT: -- Filesystem: "ext4"
17:31:21 [INFO] Step 2: Generate base config
17:31:22 [INFO] Step 3: Make configuration
17:31:22 [DEBUG] (3) icicle::utils::install: Iterating through /etc/icicle/basic/systems
17:31:22 [DEBUG] (3) icicle::utils::install: Path: 
17:31:22 [DEBUG] (3) icicle::utils::install: != /etc/icicle/basic/modules/{efiboot,biosboot}
17:31:22 [DEBUG] (3) icicle::utils::install: Iterating through /etc/icicle/basic/systems/ARCH
17:31:22 [DEBUG] (3) icicle::utils::install: Path: /systems
17:31:22 [DEBUG] (3) icicle::utils::install: != /etc/icicle/basic/modules/{efiboot,biosboot}
17:31:22 [DEBUG] (3) icicle::utils::install: Iterating through /etc/icicle/basic/systems/ARCH/HOSTNAME
17:31:22 [DEBUG] (3) icicle::utils::install: Path: /systems/ARCH
17:31:22 [DEBUG] (3) icicle::utils::install: != /etc/icicle/basic/modules/{efiboot,biosboot}
17:31:22 [INFO] Step 4: Install NixOS
17:31:22 [DEBUG] (1) icicle::ui::pages::install: Installing: ["/usr/bin/env", "pkexec", "nixos-install", "--root", "/tmp/icicle", "--no-root-passwd", "--no-channel-copy", "--flake", "/tmp/icicle/etc/nixos#snowflakeos"]
17:31:22 [DEBUG] (1) icicle::ui::pages::install: VTE Install: Ok(Pid(5337))
17:45:27 [DEBUG] (1) icicle::ui::pages::install: VTE command exited with status: 256
17:45:27 [DEBUG] (1) icicle::ui::pages::install: Installation Failed!
17:45:27 [DEBUG] (1) icicle::ui::window: Error!
=== End of Icicle Log ===

=== nixos-install Log ===
warning: creating lock file '/tmp/icicle/etc/nixos/flake.lock'
building the flake in path:/tmp/icicle/etc/nixos?lastModified=1708536682&narHash=sha256-4W1aEVCvjsy04%2B5BlwaIXCrF9svKJluTPcV9dokrDhU%3D...
trace: warning: The option `services.xserver.layout' defined in `/nix/store/jhahr492436cbmhx02cdhgjfj4jz871k-s078z95r2cy12q7v6g2s9cfxchj8h3xi-source/systems/x86_64-linux/snowflakeos/default.nix' has been renamed to `services.xserver.xkb.layout'.
error: builder for '/nix/store/np6vn5birk09428q6b5z0y2wxlv1anlp-VirtualBox-GuestAdditions-7.0.10-6.5.9.drv' failed with exit code 2;
       last 25 log lines:
       > make V= CONFIG_MODULE_SIG= CONFIG_MODULE_SIG_ALL= -C /nix/store/7abz1jy0kja2jam7lsrpcqzn6l7d1iab-linux-6.5.9-dev/lib/modules/6.5.9/build M=/build/install/src/vboxguest-7.0.10/vboxvideo SRCROOT=/build/install/src/vboxguest-7.0.10/vboxvideo -j2 modules
       > make[2]: Entering directory '/nix/store/7abz1jy0kja2jam7lsrpcqzn6l7d1iab-linux-6.5.9-dev/lib/modules/6.5.9/build'
       >   CC [M]  /build/install/src/vboxguest-7.0.10/vboxvideo/hgsmi_base.o
       >   CC [M]  /build/install/src/vboxguest-7.0.10/vboxvideo/modesetting.o
       >   CC [M]  /build/install/src/vboxguest-7.0.10/vboxvideo/vbox_drv.o
       >   CC [M]  /build/install/src/vboxguest-7.0.10/vboxvideo/vbox_fb.o
       > /build/install/src/vboxguest-7.0.10/vboxvideo/vbox_fb.c:195:24: error: 'drm_fb_helper_sys_fillrect' undeclared here (not in a function); did you mean 'drm_fb_helper_lastclose'?
       >   195 |         .fb_fillrect = drm_fb_helper_sys_fillrect,
       >       |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~
       >       |                        drm_fb_helper_lastclose
       > /build/install/src/vboxguest-7.0.10/vboxvideo/vbox_fb.c:196:24: error: 'drm_fb_helper_sys_copyarea' undeclared here (not in a function); did you mean 'drm_fb_helper_set_par'?
       >   196 |         .fb_copyarea = drm_fb_helper_sys_copyarea,
       >       |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~
       >       |                        drm_fb_helper_set_par
       > /build/install/src/vboxguest-7.0.10/vboxvideo/vbox_fb.c:197:25: error: 'drm_fb_helper_sys_imageblit' undeclared here (not in a function)
       >   197 |         .fb_imageblit = drm_fb_helper_sys_imageblit,
       >       |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~
       > make[4]: *** [/nix/store/7abz1jy0kja2jam7lsrpcqzn6l7d1iab-linux-6.5.9-dev/lib/modules/6.5.9/source/scripts/Makefile.build:243: /build/install/src/vboxguest-7.0.10/vboxvideo/vbox_fb.o] Error 1
       > make[4]: *** Waiting for unfinished jobs....
       > make[3]: *** [/nix/store/7abz1jy0kja2jam7lsrpcqzn6l7d1iab-linux-6.5.9-dev/lib/modules/6.5.9/source/Makefile:2034: /build/install/src/vboxguest-7.0.10/vboxvideo] Error 2
       > make[2]: *** [/nix/store/7abz1jy0kja2jam7lsrpcqzn6l7d1iab-linux-6.5.9-dev/lib/modules/6.5.9/source/Makefile:234: __sub-make] Error 2
       > make[2]: Leaving directory '/nix/store/7abz1jy0kja2jam7lsrpcqzn6l7d1iab-linux-6.5.9-dev/lib/modules/6.5.9/build'
       > make[1]: *** [/build/install/src/vboxguest-7.0.10/vboxvideo/Makefile-footer.gmk:133: vboxvideo] Error 2
       > make[1]: Leaving directory '/build/install/src/vboxguest-7.0.10/vboxvideo'
       > make: *** [Makefile:73: vboxvideo] Error 1
       For full logs, run 'nix log /nix/store/np6vn5birk09428q6b5z0y2wxlv1anlp-VirtualBox-GuestAdditions-7.0.10-6.5.9.drv'.
error: 1 dependencies of derivation '/nix/store/3k1ynmadc0zpgbcsxgmvlkz9kwykxwp6-kernel-modules.drv' failed to build
error: 1 dependencies of derivation '/nix/store/2g903jf7w1qiqd33qli442cj5gslz7bl-linux-6.5.9-modules.drv' failed to build
error: 1 dependencies of derivation '/nix/store/h0yjhqimy128m8c0p9fxshzqjbchvmgc-system-path.drv' failed to build
error: 1 dependencies of derivation '/nix/store/wxp9jsna8l9ck8m1k2sz9ajspwcwf4z0-unit-virtualbox.service.drv' failed to build
error: 1 dependencies of derivation '/nix/store/vrvkl0zksqlpn2kmy55ggq8szdysr4h6-xsession-wrapper.drv' failed to build
error: 1 dependencies of derivation '/nix/store/9kgppi507i863yqknya320i7jdpxddcs-nixos-system-snowflakeos-24.05.20240221.0e74ca9.drv' failed to build
=== End of nixos-install Log ===

Here are the log of another attempt : https://termbin.com/j3iv

User setting after first reboot?

Would it be possible to install without setting the user (name/password) at first and only ask for user settings after the first reboot? (maybe setting a default user at install if needed y the installation process and then after reboot, change name and password of this default user).
That would allow to make computers ready to be used in advance and make the (new) user have only one step to make : setting his own credential before using the computer.

Modify Firefox installation to ease Firefox's Gnome extension and FIrefox's GSconnect extension installation

Hello,

In order to install https://addons.mozilla.org/fr/firefox/addon/gnome-shell-integration and https://addons.mozilla.org/fr/firefox/addon/gsconnect/ and make them working, we need to install firefox this way :

programs.firefox = {
   enable = true;
   package = pkgs.firefox;
   nativeMessagingHosts.packages = with pkgs; [
     browserpass
     gnomeExtensions.gsconnect
   ];
 };

instead of, as coded here, https://github.com/snowfallorg/icicle/blob/8e3776886fa391473d9c5421a7334d04638cb75f/src/utils/install.rs#L557-L560C7 :

    # List packages installed in system profile.
  environment.systemPackages = with pkgs; [
    firefox
  ];

Of course, gnomeExtensions.gsconnect should not be added at installation time thanks to icicle but should be added by the gsconnect module as I explain in my researches here : snowfallorg/snowflakeos-modules#4

However, to make it easy for the gsconnect module to do so, it would be better if icicle was installing Firefox like that

programs.firefox = {
   enable = true;
   package = pkgs.firefox;
   nativeMessagingHosts.packages = with pkgs; [
     browserpass
   ];
 };

instead of how it is coded in https://github.com/snowfallorg/icicle/blob/8e3776886fa391473d9c5421a7334d04638cb75f/src/utils/install.rs#L557-L560C7

I'm pretty sure it is a good thing to enable nativeMessagingHosts.packages.browserpass at installation time because Gnome user would expect to be able to use https://addons.mozilla.org/fr/firefox/addon/gnome-shell-integration right after installation time.

I even wonder if this firefox extension should not be installed by default during installation time thanks to icicle. If I understand what is written here, https://support.mozilla.org/en-US/kb/deploying-firefox-with-extensions , it would require to download the last version from https://addons.mozilla.org/firefox/downloads/latest/gnome-shell-integration/latest.xpi, rename it to [email protected] (the add-on ID found in here https://gitlab.gnome.org/GNOME/gnome-browser-extension/-/blob/master/extension/manifest.firefox.json) and place it into the <firefox installation folder>/distribution/extensions/ folder.

DIsk encryption

I couldn't find an easy way to encrypt the disk at install.
Is it plan?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.