snowfallorg / icicle Goto Github PK
View Code? Open in Web Editor NEWA gtk4/libadwaita installer for NixOS based distributions
License: GNU General Public License v3.0
A gtk4/libadwaita installer for NixOS based distributions
License: GNU General Public License v3.0
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
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.
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.
I couldn't find an easy way to encrypt the disk at install.
Is it plan?
https://hosted.weblate.org/projects/snowflakeos/icicle/#information is GPLv3-only,
but I don't see a purpose in specifying this limitation when the source repo doesn't.
Going GPLv3-or-later (GPLv3+) allows deciding whether any newer version of the license is better once released.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.