GithubHelp home page GithubHelp logo

snowfallorg / nix-software-center Goto Github PK

View Code? Open in Web Editor NEW
483.0 8.0 16.0 1.62 MB

A simple gtk4/libadwaita software center to easily install and manage nix packages

License: GNU General Public License v3.0

Shell 0.06% Meson 1.75% Nix 0.86% Rust 97.33%
gtk4 libadwaita nix nixos

nix-software-center's Introduction

Nix Software Center

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

A graphical app store for Nix built with libadwaita, GTK4, and Relm4. Heavily inspired by GNOME Software.

Features

  • Install packages to configuration.nix
    • Flakes support can be enabled in the preferences menu
  • Install packages with nix profile or nix-env
  • Show updates for all installed packages
  • Search for packages
  • Launch applications without installing via nix-shell and nix run

NixOS Flakes Installation

flake.nix

{
  inputs = {
    # other inputs
    nix-software-center.url = "github:snowfallorg/nix-software-center";
# rest of flake.nix

configuration.nix

environment.systemPackages = with pkgs; [
    inputs.nix-software-center.packages.${system}.nix-software-center
    # rest of your packages
];

NixOS Installation

Head of configuration.nix

if you are on unstable channel or any version after 22.11:

{ config, pkgs, lib, ... }:
let
  nix-software-center = import (pkgs.fetchFromGitHub {
    owner = "snowfallorg";
    repo = "nix-software-center";
    rev = "0.1.2";
    sha256 = "xiqF1mP8wFubdsAQ1BmfjzCgOD3YZf7EGWl9i69FTls=";
  }) {};
in
Packages:

```nix
environment.systemPackages =
with pkgs; [
  nix-software-center
  # rest of your packages
];

For any other method of installation, when rebuilding you might be prompted to authenticate twice in a row by pkexec

'nix profile' installation

nix profile install github:snowfallorg/nix-software-center

'nix-env' Installation

git clone https://github.com/snowfallorg/nix-software-center
nix-env -f nix-software-center -i nix-software-center

Single run on an flakes enabled system:

nix run github:snowfallorg/nix-software-center

Single run on non-flakes enabled system:

nix --extra-experimental-features "nix-command flakes" run github:snowfallorg/nix-software-center

Debugging

RUST_LOG=nix_software_center=trace nix-software-center

Screenshots

Licenses

Some icons in data/icons contains assets from the NixOS logo and are licensed under a CC-BY license.

Some icons in data/icons contains assets from GNOME Software and are licensed under CC0-1.0.

nix-software-center's People

Contributors

ahoneybun avatar dezren39 avatar korfuri avatar shalokshalom avatar supersandro2000 avatar tobiasbora avatar vlinkz avatar zahrun avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nix-software-center's Issues

Panick on lauch

The app is able to launch without any problem, but when I try to to click on any button it crashes and the following error pops up:

thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Close', /build/nix-software-center-0.1.0-vendor.tar.gz/relm4/src/channel/component.rs:67:34
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Side note: I installed with nix-env.

Thanks for helping !

`OpenConf` don't work with `nix shell`

Commands:

$ nix shell github:vlinkz/nix-software-center
$ RUST_LOG=debug RUST_BACKTRACE=full nix-software-center
INFO  nix_software_center > Resource loaded: /nix/store/visjfp5lb3253q2d7zbmgnspy3v5k2vg-nix-software-center-0.1.0/share/nix-software-center/resources.gresource

(nix-software-center:626907): Gtk-WARNING **: 18:22:17.994: Unknown key gtk-button-images in /home/lev145/.config/gtk-4.0/settings.ini

(nix-software-center:626907): Gtk-WARNING **: 18:22:17.994: Unknown key gtk-menu-images in /home/lev145/.config/gtk-4.0/settings.ini

(nix-software-center:626907): Gtk-WARNING **: 18:22:17.994: Unknown key gtk-toolbar-style in /home/lev145/.config/gtk-4.0/settings.ini

(nix-software-center:626907): Adwaita-WARNING **: 18:22:18.053: Using GtkSettings:gtk-application-prefer-dark-theme with libadwaita is unsupported. Please use AdwStyleManager:color-scheme instead.
 DEBUG nix_software_center::ui::window > No config found
 DEBUG nix_software_center::ui::window > userpkgtype: Profile
 DEBUG nix_software_center::ui::window > syspkgtype: None
 DEBUG reqwest::connect                > starting new connection: https://nmcheck.gnome.org/
 INFO  nix_software_center::ui::window > AppMsg::SetDarkMode(true)
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: OpenConf', /build/nix-software-center-0.1.0-vendor.tar.gz/relm4/src/channel/component.rs:67:34
stack backtrace:
   0:     0x558126da2573 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::he3010f3ff51b55ac
   1:     0x558126ddf22c - core::fmt::write::hdfaf46c08a67cd92
   2:     0x558126dbc475 - std::io::Write::write_fmt::h0c8cb8452451d559
   3:     0x558126dc2f34 - std::panicking::default_hook::{{closure}}::h5f89d231703325b8
   4:     0x558126dc2b74 - std::panicking::default_hook::h0daa4414d4591360
   5:     0x558126dc3513 - std::panicking::rust_panic_with_hook::hc7eecadc23f906e1
   6:     0x558126da28d7 - std::panicking::begin_panic_handler::{{closure}}::h425c6c4810da3633
   7:     0x558126da26b4 - std::sys_common::backtrace::__rust_end_short_backtrace::h75a4c4b09ed50e09
   8:     0x558126dc3202 - rust_begin_unwind
   9:     0x5581264c0433 - core::panicking::panic_fmt::hed5cc02befa9fbd6
  10:     0x5581264c0563 - core::result::unwrap_failed::he50d59caf960046c
  11:     0x5581266b91fc - <O as gtk4::auto::button::ButtonExt>::connect_clicked::clicked_trampoline::h5b74f8ce9382e7c6
  12:     0x7f9c5ebe97d9 - _g_closure_invoke_va
  13:     0x7f9c5ec0364d - g_signal_emit_valist
  14:     0x7f9c5ec0394f - g_signal_emit
  15:     0x7f9c5f0c0979 - _gtk_marshal_VOID__INT_DOUBLE_DOUBLEv
  16:     0x7f9c5ebe97d9 - _g_closure_invoke_va
  17:     0x7f9c5ec0364d - g_signal_emit_valist
  18:     0x7f9c5ec0394f - g_signal_emit
  19:     0x7f9c5f18c20e - gtk_gesture_click_end
  20:     0x7f9c5ebec642 - g_cclosure_marshal_VOID__BOXEDv
  21:     0x7f9c5ebe97d9 - _g_closure_invoke_va
  22:     0x7f9c5ec0364d - g_signal_emit_valist
  23:     0x7f9c5ec0394f - g_signal_emit
  24:     0x7f9c5f189247 - _gtk_gesture_check_recognized
  25:     0x7f9c5f18a9bb - gtk_gesture_handle_event
  26:     0x7f9c5f18d82e - gtk_gesture_single_handle_event
  27:     0x7f9c5f15cef6 - gtk_event_controller_handle_event
  28:     0x7f9c5f2e6507 - gtk_widget_run_controllers
  29:     0x7f9c5f2edca4 - _gtk_widget_captured_event
  30:     0x7f9c5f1d467e - gtk_propagate_event_internal
  31:     0x7f9c5f1d4d4b - gtk_main_do_event
  32:     0x7f9c5f2fa1bc - surface_event
  33:     0x7f9c5f3dfca9 - _gdk_marshal_BOOLEAN__POINTER
  34:     0x7f9c5f408cbf - gdk_surface_event_marshaller
  35:     0x7f9c5ebe95af - g_closure_invoke
  36:     0x7f9c5ebfc917 - signal_emit_unlocked_R
  37:     0x7f9c5ec02eef - g_signal_emit_valist
  38:     0x7f9c5ec0394f - g_signal_emit
  39:     0x7f9c5f40c320 - gdk_surface_handle_event
  40:     0x7f9c5f4575ea - gdk_event_source_dispatch
  41:     0x7f9c5eaed9db - g_main_context_dispatch
  42:     0x7f9c5eaedc88 - g_main_context_iterate.constprop.0
  43:     0x7f9c5eaedd3f - g_main_context_iteration
  44:     0x7f9c5ed1810d - g_application_run
  45:     0x5581264f23d1 - relm4::app::RelmApp::run::hd82e66cdfba8b6d0
  46:     0x5581264f320c - nix_software_center::main::h22d487332a554dd6
  47:     0x5581264d6543 - std::sys_common::backtrace::__rust_begin_short_backtrace::ha22543f47596c86e
  48:     0x5581264f17d9 - std::rt::lang_start::{{closure}}::he2872a050c12132c
  49:     0x558126dbb8a8 - std::rt::lang_start_internal::h0b59928b60b7c3a2
  50:     0x5581264f32f8 - main
  51:     0x7f9c5e13624e - __libc_start_call_main
  52:     0x7f9c5e136309 - __libc_start_main@@GLIBC_2.34
  53:     0x5581264c06b5 - _start
  54:                0x0 - <unknown>

`x86_64-darwin` Support

This is an awesome project! I use the nix package manager on Macos, and would love to have this GUI.

Is there any chance of adding a x86_64-darwin target?

Configure packages

Nix makes it relatively easy to configure packages, compared to other package managers. It would be great if the GUI can make this more accessible.

There are some discussions to improve it in nixpkgs, one is to design a module system for packages (https://discourse.nixos.org/t/working-group-member-search-module-system-for-packages/26574).

It would be great if you could create a design for the GUI and discuss with nixpkgs what you need from them.

These are some example arguments packages have:

  • enableUnfree
  • withUnfree
  • withSpeech
  • enableLibunwind
  • ffmpegVariant
  • withAlsa

Those can be simple toggles.

But there can be also an interface for simple overrides like source url, version, dependencies. Whatever an end-user might need.

This might be in conflict with the approach to build an frontend for snow.

Submit to GNOME Software as a plugin

Currently the software center is its own thing, as Nix functions differently from a normal package manager in many ways. However, I feel it would be ideal to instead make a plugin (possibly on top of an abstraction) and work with GNOME Software devs to allow it to work better with a plugin of this type.

shasum error during rebuild

I've added this repo as a let…in in configuration.nix, addedd the package to the system list, and am getting this error on system rebuild.

~ ❱ sudo nixos-rebuild switch --show-trace 
building Nix...
building the system configuration...
building '/nix/store/lv93q2qi0lqsk9ijksf5biabg4yb7lnx-source.drv'...

trying https://github.com/vlinkz/nixos-conf-editor/archive/0.0.5.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  671k    0  671k    0     0   826k      0 --:--:-- --:--:-- --:--:--  826k
unpacking source archive /build/0.0.5.tar.gz
error: hash mismatch in fixed-output derivation '/nix/store/lv93q2qi0lqsk9ijksf5biabg4yb7lnx-source.drv':
         specified: sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
            got:    sha256-Wst1UmVuE5L+1y6c96I62bXSBAcGYus3i7PFEPd4Jv0=

       … while realising the context of path '/nix/store/bqfq4db6nwycmkdrql9igsbrayqsw3g2-source'

       at /etc/nixos/configuration.nix:10:24:

            9| let
           10|   nixos-conf-editor = (import (pkgs.fetchFromGitHub {
             |                        ^  
           11|     owner = "vlinkz";

       … while evaluating the attribute 'value'

~ 6.4s [102]

How to fix the configuration?

Running once-off works with the enable-experimenal flakes command.

FR: Support for multiple channels

Requires #34

If we could have a drop-down menu in which we could see the version number in stable and the one in unstable, and select which one to install, that would be awesome.

"Run without installing" fails

When I try to "Run without installing" wezterm (just what I happened to try), I get env: ‘gtk-launch’: No such file or directory on the console and nothing else happens.

I presume this is because I run i3 and have no proper desktop environment installed. Presumably a version of gtk-launch from the nix store should be used, rather than searching PATH.

And yes, I can nix run nixpkgs#wezterm without a problem.

Black border in KDE

I'm having this weird bug when I try to use nix-software-center in KDE. There is a thick black border around the app, and it does not respect the GTK theme I have set. I do not have this issue in any other GTK based app.

Screenshot_20230905_162655

FR: display version

Would be nice to see which version of the package/software we are installing

Error when installing to configuration.nix

When I tried to install mission-center I got this error

path '/etc/nixos/flake.nix' does not contain a 'flake.nix', searching up
error:
       … while fetching the input 'git+file:///etc/nixos'

       error: getting the HEAD of the Git tree '/etc/nixos' failed with exit code 1:
       error: executing 'git': No such file or directory
       
nixos-rebuild failed with exit code 1
nixos-rebuild failed

Support for `home-manager`

I use non-NixOS, instead home-manager to manage my Nix packages. It would be appreciated if there was README information for how to install this software for this kind of setup.

cannot change the configuration file via ui

When I open the settings and click on the configuration file, the software center crashes

thread 'main' panicked at 'The runtime of the component was shutdown. Maybe you accidentally dropped a controller?: Open', /build/nix-software-center-0.1.1-vendor.tar.gz/relm4/src/channel/component.rs:66:34
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Backtrace:

stack backtrace:
   0: rust_begin_unwind
   1: core::panicking::panic_fmt
   2: core::result::unwrap_failed
   3: <O as gtk4::auto::button::ButtonExt>::connect_clicked::clicked_trampoline
   4: _g_closure_invoke_va
   5: g_signal_emit_valist
   6: g_signal_emit
   7: _gtk_marshal_VOID__INT_DOUBLE_DOUBLEv
   8: _g_closure_invoke_va
   9: g_signal_emit_valist
  10: g_signal_emit
  11: gtk_gesture_click_end
  12: g_cclosure_marshal_VOID__BOXEDv
  13: _g_closure_invoke_va
  14: g_signal_emit_valist
  15: g_signal_emit
  16: _gtk_gesture_check_recognized
  17: gtk_gesture_handle_event
  18: gtk_gesture_single_handle_event
  19: gtk_event_controller_handle_event
  20: gtk_widget_run_controllers
  21: _gtk_widget_captured_event
  22: gtk_propagate_event_internal
  23: gtk_main_do_event
  24: surface_event
  25: _gdk_marshal_BOOLEAN__POINTER
  26: gdk_surface_event_marshaller
  27: g_closure_invoke
  28: signal_emit_unlocked_R
  29: g_signal_emit_valist
  30: g_signal_emit
  31: gdk_surface_handle_event
  32: gdk_event_source_dispatch
  33: g_main_context_dispatch
  34: g_main_context_iterate.constprop.0
  35: g_main_context_iteration
  36: g_application_run
  37: <O as gio::application::ApplicationExtManual>::run_with_args
  38: relm4::app::RelmApp::run
  39: nix_software_center::main
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

EDIT: interestingly, it works fine in nixos-conf-editor

Too many platforms

Screenshot from 2022-11-16 21-49-57

Not all platforms can be shown.

I would even questions if a used need to see them all in this program. I guess they would only care about the information if their current platform is supported.

Maybe remove it completely and show those programs that are not supported greyed out in the overview and show a big red warning above all in detail view.

FR: search as soon as typing

After opening the software center, it would be nice to be able to type directly to start a search, without having to click on the search button

Occasionly crashes GNOME

Sometimes, when I press on the button, it crashes gnome, returning me to the gdm login menu. I don't know what's going on.

FR: support for multi-files configuration.nix

My main configuration file is /etc/nixox/configuration.nix, however, I keep my environment.systemPackages in aroun.nix and have import in configuration.nix via

imports =
    [ # Include the results of the hardware scan.
      ./hardware-configuration.nix
      ./aroun.nix
    ];

If the sofware-center parser could open the files under imports, parse them, and find the location of environment.systemPackages, that would be great

cf. snowfallorg/nixos-conf-editor#7

Stuck on Loading...

In my terminal I get an error message

ERROR nix_software_center::ui::windowloading > Error getting NixOS pkgs: error sending request for url (https://channels.nixos.org/nixos-unstable): operation timed out

I connect to the internet through a SOCKS proxy, does this application actually use $http_proxy to make its connection?

Stuck at loading

** Info
On first launch I set flake.nix to ~/.config/nixpkgs/flake.nix and left configuration.nix as is.
I'm on nixOS unstable

** Error

 ERROR nix_software_center::ui::windowloading > Error getting NixOS pkgs: Failed to download latest packages.json

allow configuring icons

hi there,
thanks for making this!
this might be a bit of a nitpick, but i was wondering if it might be possible to allow configuring the icon set used for the software in the store.
e.g. i'm personally using papirus icons in nixos now, and imagine others might have icon sets they like as well.
i thought it might be possible to user a system-provided icon set, although maybe another way could be to have a configuration allowing to set preferences like this.

Highlight if packages should be managed by services instead

Currently, some tools (like docker, tailscale) don't really work without being enabled as NixOS services. It would be good to identify such services (either by scanning nixos modules somehow or maintaining a manual list) and inform users that they should enable the services instead.

[Feature Request] Ability to install packages using nix profile into /nix/var/nix/profiles/default

There are only two options, you can install software on the user nix profile and you can install packages into configuration.nix. There is no option that involves running nix profile as a root user to install packages system wide without having configuration.nix managing the packages. When nix profile or nix-env is ran as root, it uses a system wide local profile called /nix/var/nix/profiles/default. So it would be nice if that is an option to do it. It just needs to run nix profile or nix-env as root instead of the current user.

error installing via nixos flakes way

Hi, i'm new in nixos and i have no idea how to fix this error:

sudo nixos-rebuild switch --flake .#host
warning: updating lock file '/etc/nixos/flake.lock':
• Added input 'nix-software-center':
'github:vlinkz/nix-software-center/64ef8b1bb08fe27863743ea5f135391c7fd287a3' (2023-02-24)
• Added input 'nix-software-center/nixpkgs':
'github:NixOS/nixpkgs/5f4e07deb7c44f27d498f8df9c5f34750acf52d2' (2023-02-18)
• Added input 'nix-software-center/utils':
'github:numtide/flake-utils/3db36a8b464d0c4532ba1c7dda728f4576d6d073' (2023-02-13)
error: 'outputs' at /nix/store/79fjmfcjsd61kml6jjv5cnfvjsl84isn-source/flake.nix:7:13 called with unexpected argument 'nix-software-center'

   at «string»:45:21:

       44|
       45|           outputs = flake.outputs (inputs // { self = result; });
         |                     ^
       46|

Is a vanilla kde installation with flakes enabled, nothing more. The single runs works.

Setting default installation profile

I don't want to install packages using nix profile, yet it is the default option when starting the program. I would like to set configuration.nix as the default option.

Install multiple Apps at once

Support installation of multiple packages at once

As it is probably know, but when we install packages in NixOs with the configuration file we first edit it and than rebuild it. In this method it is normal to add multiple packages to the configuration file and than apply the changes. However, in nix software center the system needs to be rebuild for each installation of a single program.

When several packages needs to be installed this method is very time consuming. In contrast, when there would be a method to first select multiple packages which should be installed/removed and than apply the changes would be much more efficient.

Unfortunately I am not a programmer and do not now how hard this feature it is to implement, but maybe it is not that difficult.

For me this feature would make nix software center an even better program as it is more how the installation of multiple packages with the config file in NixOs works. In addition it would make the usage of the software center more efficient.

Screenshots sometimes not loading

For some programs the screenshots do not load!

  • klavaro

Screenshot from 2022-11-16 21-31-32

  • superTaxKart
  • gnome-hexgl
  • openmw
  • pioneer

Others work:

  • samplv1

Screenshot from 2022-11-16 21-41-36

  • sound-juicer
  • amarok
  • gpodder
  • flare
  • manaplus

Where does this need to be fixed? Maybe in the upstream source for the metadata?

version 0.1.0 (which does now work on NixOS stable btw)

Bug Report: Cannot update error

Whenever I try to update anything on this app, it produces an error message:

error: the following required arguments were not provided:
  --output <OUTPUT>

Usage: nsc-helper channel --output <OUTPUT> --rebuild --generations <GENERATIONS> <ARGUMENTS>...

For more information, try '--help'.

Thank you!

Build errors

Hi there, thanks very much for creating this, I'm excited to try it. These are the build errors that I'm seeing on NixOS 22.05 without Flakes:

Found ninja-1.10.2 at /nix/store/wfdrrpzvxslxzq1jc024xkp3n74wwgcn-ninja-1.10.2/bin/ninja
meson: enabled parallel building
building
build flags: -j1 -l1
[1/6] Generating data/dev.vlinkz.NixSoftwareCenter.desktop with a custom command
[2/6] Generating data/dev.vlinkz.NixSoftwareCenter.metainfo.xml with a custom command
[3/6] Generating data/dev.vlinkz.NixSoftwareCenter.policy with a custom command
[4/6] Generating src/resources_gresource with a custom command
xml-stripblanks preprocessing requested, but XMLLINT is not set, and xmllint is not in PATH
[4/6] Generating src/cargo-build with a custom command
error: package `pango v0.16.0 (https://github.com/gtk-rs/gtk-rs-core#9fe7e5ce)` cannot be built because it requires rustc 1.63 or newer, while the currently active rustc version is 1.60.0
FAILED: src/nix-software-center 
/nix/store/p643r4aczmzb0dhyrx3dj592f0s5v7xj-coreutils-9.0/bin/env CARGO_HOME=/build/mmimyrzqc5cnhvjvdsyj86p6anj3xrp5-source/build/cargo-home /nix/store/2gwhsd2jcz90zni0pwlhhfbmfbflixws-cargo-1.60.0/bin/cargo build --manifest-path /build/mmimyrzqc5cnhvjvdsyj86p6anj3xrp5-source/Cargo.toml --target-dir /build/mmimyrzqc5cnhvjvdsyj86p6anj3xrp5-source/build/src --release && cp src/release/nix-software-center src/nix-software-center
ninja: build stopped: subcommand failed.
error: builder for '/nix/store/iw2xfb1b0yg9wydsq0443a3m3h52qz7p-nix-software-center-0.0.1.drv' failed with exit code 1
error: 1 dependencies of derivation '/nix/store/7733kcrwqf39km1sc711ilfqf91rzkyv-system-path.drv' failed to build
error: 1 dependencies of derivation '/nix/store/3d3g50y11wkz51w8g1zz8608fdh8vpsi-nixos-system-nixos-22.05.2992.45b56b5321a.drv' failed to build

This is how I define the package:

# Edit this configuration file to define what should be installed on
# your system.  Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running ‘nixos-help’).

{ config, pkgs, lib, ... }:
let
  nix-software-center = (import (pkgs.fetchFromGitHub {
    owner = "vlinkz";
    repo = "nix-software-center";
    rev = "0.0.1";
    sha256 = "sha256-uolXh0z6gRBUZIXVSGyLn3swogz7VHvCwKCr02BejTQ";
  })) {};
in

NixOS Flakes Installation example fails to build.

I followed the new instructions added to the README for installing with flakes.

Here is a branch of my nix configuration where I tried to apply the changes. This is the error I get when building:

nixos on  nix-software-center [?] took 6s 
❯ sudo nixos-rebuild test
building the system configuration...
error: undefined variable 'inputs'

       at /nix/store/ja0mwaax64phr09dmdhraj8zd1l8fibq-source/configuration.nix:72:5:

           71|     git
           72|     inputs.nix-software-center.packages.${system}.nix-software-center
             |     ^
           73|     libsForQt5.ark
(use '--show-trace' to show detailed location information)
Full output of --show-trace
nixos on  nix-software-center [?] 
✦ ❯ sudo nixos-rebuild test --show-trace
[sudo] password for ciferkey: 
building the system configuration...
error:
       … while evaluating the attribute 'activationScript' of the derivation 'nixos-system-nixos-23.05.20230213.545c7a3'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/pkgs/stdenv/generic/make-derivation.nix:293:7:

          292|     // (lib.optionalAttrs (attrs ? name || (attrs ? pname && attrs ? version)) {
          293|       name =
             |       ^
          294|         let

       … while evaluating the attribute 'system.activationScripts.script'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/nixos/modules/system/activation/activation-script.nix:137:9:

          136|       apply = set: set // {
          137|         script = systemActivationScript set false;
             |         ^
          138|       };

       … while evaluating call site

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/nixos/modules/system/activation/activation-script.nix:137:18:

          136|       apply = set: set // {
          137|         script = systemActivationScript set false;
             |                  ^
          138|       };

       … while calling 'systemActivationScript'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/nixos/modules/system/activation/activation-script.nix:20:33:

           19|
           20|   systemActivationScript = set: onlyDry: let
             |                                 ^
           21|     set' = mapAttrs (_: v: if isString v then (noDepEntry v) // { supportsDryActivation = false; } else v) set;

       … while evaluating call site

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/nixos/modules/system/activation/activation-script.nix:49:9:

           48|
           49|       ${textClosureMap id (withDrySnippets) (attrNames withDrySnippets)}
             |         ^
           50|

       … while calling 'textClosureMap'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/strings-with-deps.nix:75:35:

           74|
           75|   textClosureMap = f: predefined: names:
             |                                   ^
           76|     concatStringsSep "\n" (map f (textClosureList predefined names));

       … while evaluating call site

       at «none»:0: (source not available)

       … while calling 'id'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/trivial.nix:14:5:

           13|     # The value to return
           14|     x: x;
             |     ^
           15|

       … while evaluating the attribute 'text'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/nixos/modules/system/activation/activation-script.nix:9:5:

            8|   addAttributeName = mapAttrs (a: v: v // {
            9|     text = ''
             |     ^
           10|       #### Activation script snippet ${a}:

       … while evaluating call site

       at «none»:0: (source not available)

       … while calling 'g'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/attrsets.nix:535:19:

          534|           g =
          535|             name: value:
             |                   ^
          536|             if isAttrs value && cond value

       … while evaluating call site

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/attrsets.nix:538:20:

          537|               then recurse (path ++ [name]) value
          538|               else f (path ++ [name]) value;
             |                    ^
          539|         in mapAttrs g;

       … while calling anonymous lambda

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:270:72:

          269|           # For definitions that have an associated option
          270|           declaredConfig = mapAttrsRecursiveCond (v: ! isOption v) (_: v: v.value) options;
             |                                                                        ^
          271|

       … while evaluating the attribute 'value'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:728:9:

          727|     in warnDeprecation opt //
          728|       { value = builtins.addErrorContext "while evaluating the option `${showOption loc}':" value;
             |         ^
          729|         inherit (res.defsFinal') highestPrio;

       … while evaluating the option `system.activationScripts.etc.text':

       … while evaluating the attribute 'mergedValue'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:763:5:

          762|     # Type-check the remaining definitions, and merge them. Or throw if no definitions.
          763|     mergedValue =
             |     ^
          764|       if isDefined then

       … while evaluating the attribute 'values'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:757:9:

          756|       in {
          757|         values = defs''';
             |         ^
          758|         inherit (defs'') highestPrio;

       … while evaluating the attribute 'values'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:856:7:

          855|     in {
          856|       values = concatMap (def: if getPrio def == highestPrio then [(strip def)] else []) defs;
             |       ^
          857|       inherit highestPrio;

       … while evaluating call site

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:743:17:

          742|         # Process mkMerge and mkIf properties.
          743|         defs' = concatMap (m:
             |                 ^
          744|           map (value: { inherit (m) file; inherit value; }) (builtins.addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))

       … while calling anonymous lambda

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:743:28:

          742|         # Process mkMerge and mkIf properties.
          743|         defs' = concatMap (m:
             |                            ^
          744|           map (value: { inherit (m) file; inherit value; }) (builtins.addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))

       … while evaluating definitions from `/nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/nixos/modules/system/etc/etc-activation.nix':

       … while evaluating call site

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:744:137:

          743|         defs' = concatMap (m:
          744|           map (value: { inherit (m) file; inherit value; }) (builtins.addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))
             |                                                                                                                                         ^
          745|         ) defs;

       … while calling 'dischargeProperties'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:815:25:

          814|   */
          815|   dischargeProperties = def:
             |                         ^
          816|     if def._type or "" == "merge" then

       … while evaluating the attribute 'value'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:568:44:

          567|       defnsByName' = byName "config" (module: value:
          568|           [{ inherit (module) file; inherit value; }]
             |                                            ^
          569|         ) configs;

       … while evaluating call site

       at «none»:0: (source not available)

       … while calling anonymous lambda

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/attrsets.nix:716:24:

          715|     let f = attrPath:
          716|       zipAttrsWith (n: values:
             |                        ^
          717|         let here = attrPath ++ [n]; in

       … while evaluating call site

       at «none»:0: (source not available)

       … while calling anonymous lambda

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/types.nix:546:29:

          545|       merge = loc: defs:
          546|         zipAttrsWith (name: defs:
             |                             ^
          547|           let merged = mergeDefinitions (loc ++ [name]) elemType defs;

       … while evaluating the attribute 'optionalValue.value'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:775:5:

          774|
          775|     optionalValue =
             |     ^
          776|       if isDefined then { value = mergedValue; }

       … while evaluating the attribute 'values'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:757:9:

          756|       in {
          757|         values = defs''';
             |         ^
          758|         inherit (defs'') highestPrio;

       … while evaluating the attribute 'values'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:856:7:

          855|     in {
          856|       values = concatMap (def: if getPrio def == highestPrio then [(strip def)] else []) defs;
             |       ^
          857|       inherit highestPrio;

       … while evaluating call site

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:743:17:

          742|         # Process mkMerge and mkIf properties.
          743|         defs' = concatMap (m:
             |                 ^
          744|           map (value: { inherit (m) file; inherit value; }) (builtins.addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))

       … while calling anonymous lambda

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:743:28:

          742|         # Process mkMerge and mkIf properties.
          743|         defs' = concatMap (m:
             |                            ^
          744|           map (value: { inherit (m) file; inherit value; }) (builtins.addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))

       … while evaluating definitions from `/nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/nixos/modules/system/etc/etc.nix':

       … while evaluating call site

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:744:137:

          743|         defs' = concatMap (m:
          744|           map (value: { inherit (m) file; inherit value; }) (builtins.addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))
             |                                                                                                                                         ^
          745|         ) defs;

       … while calling 'dischargeProperties'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:815:25:

          814|   */
          815|   dischargeProperties = def:
             |                         ^
          816|     if def._type or "" == "merge" then

       … while evaluating the attribute 'value'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/types.nix:552:58:

          551|         # Push down position info.
          552|         (map (def: mapAttrs (n: v: { inherit (def) file; value = v; }) def.value) defs);
             |                                                          ^
          553|       emptyValue = { value = {}; };

       … while evaluating call site

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/attrsets.nix:88:39:

           87|         then value
           88|         else { ${elemAt attrPath n} = atDepth (n + 1); };
             |                                       ^
           89|     in atDepth 0;

       … while calling 'atDepth'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/attrsets.nix:85:17:

           84|       len = length attrPath;
           85|       atDepth = n:
             |                 ^
           86|         if n == len

       … while evaluating the attribute 'value'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:568:44:

          567|       defnsByName' = byName "config" (module: value:
          568|           [{ inherit (module) file; inherit value; }]
             |                                            ^
          569|         ) configs;

       … while evaluating the attribute 'buildCommand' of the derivation 'etc'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/pkgs/stdenv/generic/make-derivation.nix:293:7:

          292|     // (lib.optionalAttrs (attrs ? name || (attrs ? pname && attrs ? version)) {
          293|       name =
             |       ^
          294|         let

       … while evaluating call site

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/nixos/modules/system/etc/etc.nix:54:7:

           53|     mkdir -p "$out/etc"
           54|     ${concatMapStringsSep "\n" (etcEntry: escapeShellArgs [
             |       ^
           55|       "makeEtcEntry"

       … while calling 'concatMapStringsSep'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/strings.nix:112:5:

          111|     # List of input strings
          112|     list: concatStringsSep sep (map f list);
             |     ^
          113|

       … while evaluating call site

       at «none»:0: (source not available)

       … while calling anonymous lambda

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/nixos/modules/system/etc/etc.nix:54:33:

           53|     mkdir -p "$out/etc"
           54|     ${concatMapStringsSep "\n" (etcEntry: escapeShellArgs [
             |                                 ^
           55|       "makeEtcEntry"

       … while evaluating call site

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/nixos/modules/system/etc/etc.nix:54:43:

           53|     mkdir -p "$out/etc"
           54|     ${concatMapStringsSep "\n" (etcEntry: escapeShellArgs [
             |                                           ^
           55|       "makeEtcEntry"

       … while calling 'concatMapStringsSep'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/strings.nix:112:5:

          111|     # List of input strings
          112|     list: concatStringsSep sep (map f list);
             |     ^
          113|

       … while evaluating call site

       at «none»:0: (source not available)

       … while calling 'escapeShellArg'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/strings.nix:366:20:

          365|   */
          366|   escapeShellArg = arg: "'${replaceStrings ["'"] ["'\\''"] (toString arg)}'";
             |                    ^
          367|

       … while evaluating call site

       at «none»:0: (source not available)

       … while calling 'g'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/attrsets.nix:535:19:

          534|           g =
          535|             name: value:
             |                   ^
          536|             if isAttrs value && cond value

       … while evaluating call site

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/attrsets.nix:538:20:

          537|               then recurse (path ++ [name]) value
          538|               else f (path ++ [name]) value;
             |                    ^
          539|         in mapAttrs g;

       … while calling anonymous lambda

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:270:72:

          269|           # For definitions that have an associated option
          270|           declaredConfig = mapAttrsRecursiveCond (v: ! isOption v) (_: v: v.value) options;
             |                                                                        ^
          271|

       … while evaluating the attribute 'value'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:728:9:

          727|     in warnDeprecation opt //
          728|       { value = builtins.addErrorContext "while evaluating the option `${showOption loc}':" value;
             |         ^
          729|         inherit (res.defsFinal') highestPrio;

       … while evaluating the option `environment.etc.dbus-1.source':

       … while evaluating the attribute 'mergedValue'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:763:5:

          762|     # Type-check the remaining definitions, and merge them. Or throw if no definitions.
          763|     mergedValue =
             |     ^
          764|       if isDefined then

       … while evaluating call site

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:765:12:

          764|       if isDefined then
          765|         if all (def: type.check def.value) defsFinal then type.merge loc defsFinal
             |            ^
          766|         else let allInvalid = filter (def: ! type.check def.value) defsFinal;

       … while calling anonymous lambda

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:765:17:

          764|       if isDefined then
          765|         if all (def: type.check def.value) defsFinal then type.merge loc defsFinal
             |                 ^
          766|         else let allInvalid = filter (def: ! type.check def.value) defsFinal;

       … while evaluating call site

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:765:22:

          764|       if isDefined then
          765|         if all (def: type.check def.value) defsFinal then type.merge loc defsFinal
             |                      ^
          766|         else let allInvalid = filter (def: ! type.check def.value) defsFinal;

       … while calling 'check'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/types.nix:482:15:

          481|       descriptionClass = "noun";
          482|       check = x: isStringLike x && builtins.substring 0 1 (toString x) == "/";
             |               ^
          483|       merge = mergeEqualOption;

       … while evaluating the attribute 'serviceDirectories' of the derivation 'dbus-1'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/pkgs/stdenv/generic/make-derivation.nix:293:7:

          292|     // (lib.optionalAttrs (attrs ? name || (attrs ? pname && attrs ? version)) {
          293|       name =
             |       ^
          294|         let

       … while evaluating call site

       at «none»:0: (source not available)

       … while calling anonymous lambda

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/types.nix:492:14:

          491|       merge = loc: defs:
          492|         map (x: x.value) (filter (x: x ? value) (concatLists (imap1 (n: def:
             |              ^
          493|           imap1 (m: def':

       … while evaluating the attribute 'value'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:776:27:

          775|     optionalValue =
          776|       if isDefined then { value = mergedValue; }
             |                           ^
          777|       else {};

       … while evaluating call site

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:765:12:

          764|       if isDefined then
          765|         if all (def: type.check def.value) defsFinal then type.merge loc defsFinal
             |            ^
          766|         else let allInvalid = filter (def: ! type.check def.value) defsFinal;

       … while calling anonymous lambda

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:765:17:

          764|       if isDefined then
          765|         if all (def: type.check def.value) defsFinal then type.merge loc defsFinal
             |                 ^
          766|         else let allInvalid = filter (def: ! type.check def.value) defsFinal;

       … while evaluating call site

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:765:22:

          764|       if isDefined then
          765|         if all (def: type.check def.value) defsFinal then type.merge loc defsFinal
             |                      ^
          766|         else let allInvalid = filter (def: ! type.check def.value) defsFinal;

       … while calling 'check'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/types.nix:482:15:

          481|       descriptionClass = "noun";
          482|       check = x: isStringLike x && builtins.substring 0 1 (toString x) == "/";
             |               ^
          483|       merge = mergeEqualOption;

       … while evaluating the attribute 'passAsFile' of the derivation 'system-path'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/pkgs/stdenv/generic/make-derivation.nix:293:7:

          292|     // (lib.optionalAttrs (attrs ? name || (attrs ? pname && attrs ? version)) {
          293|       name =
             |       ^
          294|         let

       … while evaluating the attribute 'passAsFile'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/pkgs/build-support/buildenv/default.nix:77:5:

           76|     # XXX: The size is somewhat arbitrary
           77|     passAsFile = if builtins.stringLength pkgs >= 128*1024 then [ "pkgs" ] else [ ];
             |     ^
           78|   }

       … while evaluating call site

       at «none»:0: (source not available)

       … while calling 'g'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/attrsets.nix:535:19:

          534|           g =
          535|             name: value:
             |                   ^
          536|             if isAttrs value && cond value

       … while evaluating call site

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/attrsets.nix:538:20:

          537|               then recurse (path ++ [name]) value
          538|               else f (path ++ [name]) value;
             |                    ^
          539|         in mapAttrs g;

       … while calling anonymous lambda

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:270:72:

          269|           # For definitions that have an associated option
          270|           declaredConfig = mapAttrsRecursiveCond (v: ! isOption v) (_: v: v.value) options;
             |                                                                        ^
          271|

       … while evaluating the attribute 'value'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:728:9:

          727|     in warnDeprecation opt //
          728|       { value = builtins.addErrorContext "while evaluating the option `${showOption loc}':" value;
             |         ^
          729|         inherit (res.defsFinal') highestPrio;

       … while evaluating the option `environment.systemPackages':

       … while evaluating the attribute 'mergedValue'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:763:5:

          762|     # Type-check the remaining definitions, and merge them. Or throw if no definitions.
          763|     mergedValue =
             |     ^
          764|       if isDefined then

       … while evaluating call site

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:765:59:

          764|       if isDefined then
          765|         if all (def: type.check def.value) defsFinal then type.merge loc defsFinal
             |                                                           ^
          766|         else let allInvalid = filter (def: ! type.check def.value) defsFinal;

       … while calling 'merge'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/types.nix:491:20:

          490|       check = isList;
          491|       merge = loc: defs:
             |                    ^
          492|         map (x: x.value) (filter (x: x ? value) (concatLists (imap1 (n: def:

       … while evaluating call site

       at «none»:0: (source not available)

       … while calling anonymous lambda

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/types.nix:492:35:

          491|       merge = loc: defs:
          492|         map (x: x.value) (filter (x: x ? value) (concatLists (imap1 (n: def:
             |                                   ^
          493|           imap1 (m: def':

       … while evaluating call site

       at «none»:0: (source not available)

       … while calling anonymous lambda

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/lists.nix:117:29:

          116|   */
          117|   imap1 = f: list: genList (n: f (n + 1) (elemAt list n)) (length list);
             |                             ^
          118|

       … while evaluating call site

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/lists.nix:117:32:

          116|   */
          117|   imap1 = f: list: genList (n: f (n + 1) (elemAt list n)) (length list);
             |                                ^
          118|

       … while calling anonymous lambda

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/types.nix:493:21:

          492|         map (x: x.value) (filter (x: x ? value) (concatLists (imap1 (n: def:
          493|           imap1 (m: def':
             |                     ^
          494|             (mergeDefinitions

       … while evaluating the attribute 'optionalValue'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:775:5:

          774|
          775|     optionalValue =
             |     ^
          776|       if isDefined then { value = mergedValue; }

       … while evaluating the attribute 'values'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:757:9:

          756|       in {
          757|         values = defs''';
             |         ^
          758|         inherit (defs'') highestPrio;

       … while evaluating the attribute 'values'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:856:7:

          855|     in {
          856|       values = concatMap (def: if getPrio def == highestPrio then [(strip def)] else []) defs;
             |       ^
          857|       inherit highestPrio;

       … while evaluating call site

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:743:17:

          742|         # Process mkMerge and mkIf properties.
          743|         defs' = concatMap (m:
             |                 ^
          744|           map (value: { inherit (m) file; inherit value; }) (builtins.addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))

       … while calling anonymous lambda

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:743:28:

          742|         # Process mkMerge and mkIf properties.
          743|         defs' = concatMap (m:
             |                            ^
          744|           map (value: { inherit (m) file; inherit value; }) (builtins.addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))

       … while evaluating definitions from `/nix/store/ja0mwaax64phr09dmdhraj8zd1l8fibq-source/configuration.nix':

       … while evaluating call site

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:744:137:

          743|         defs' = concatMap (m:
          744|           map (value: { inherit (m) file; inherit value; }) (builtins.addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))
             |                                                                                                                                         ^
          745|         ) defs;

       … while calling 'dischargeProperties'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/modules.nix:815:25:

          814|   */
          815|   dischargeProperties = def:
             |                         ^
          816|     if def._type or "" == "merge" then

       … while evaluating the attribute 'value'

       at /nix/store/yxcvhxxlq7q6284hmwzvnzcg1g5aph47-source/lib/types.nix:497:38:

          496|               elemType
          497|               [{ inherit (def) file; value = def'; }]
             |                                      ^
          498|             ).optionalValue

       error: undefined variable 'inputs'

       at /nix/store/ja0mwaax64phr09dmdhraj8zd1l8fibq-source/configuration.nix:72:5:

           71|     git
           72|     inputs.nix-software-center.packages.${system}.nix-software-center
             |     ^
           73|     libsForQt5.ark

I'm guessing there is some additional thing I need to pass to my configuration.nix. Is there anything I'm missing?

Malformed package database: error returned from database: (code: 11) database disk image is malformed

I installed the new version with the new instructions for NixOS 22.11 (https://github.com/vlinkz/nix-software-center/pull/36/files).

The GUI is stuck on loading and i get an error in terminal.

Screenshot from 2023-03-18 05-34-19

[davidak@gaming:~]$ RUST_BACKTRACE=1 nix-software-center 
thread 'tokio-runtime-worker' panicked at 'called `Result::unwrap()` on an `Err` value: Database(SqliteError { code: 11, message: "database disk image is malformed" })', src/ui/windowloading.rs:107:26
stack backtrace:
   0: rust_begin_unwind
   1: core::panicking::panic_fmt
   2: core::result::unwrap_failed
   3: <nix_software_center::ui::windowloading::WindowAsyncHandler as relm4::component::worker::Worker>::update::{{closure}}
   4: tokio::runtime::task::core::Core<T,S>::poll
   5: tokio::runtime::task::harness::Harness<T,S>::poll
   6: tokio::runtime::scheduler::multi_thread::worker::Context::run_task
   7: tokio::runtime::scheduler::multi_thread::worker::Context::run
   8: tokio::macros::scoped_tls::ScopedKey<T>::set
   9: tokio::runtime::scheduler::multi_thread::worker::run
  10: tokio::loom::std::unsafe_cell::UnsafeCell<T>::with_mut
  11: tokio::runtime::task::core::Core<T,S>::poll
  12: tokio::runtime::task::harness::Harness<T,S>::poll
  13: tokio::runtime::blocking::pool::Inner::run
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
^C

To improve UX, the GUI should show the error and not pretend to be loading.

Also, such an error should not happen. It's fine while it's not a stable release, but annoying for users.

I guess to fix it, i have to delete the database and let it create a new one. What database does it mean and where is it?
Such a fix can also be shown in the GUI. Maybe have a button "Delete and create new database".

Build failure

trace: warning: rustPlatform.rust.cargo is deprecated. Use cargo instead.
trace: warning: rustPlatform.rust.rustc is deprecated. Use rustc instead.
error: builder for '/nix/store/8xbinsanp56gpwjmdpybb0zc1yfpvp3l-nix-software-center-0.1.0-vendor.tar.gz.drv' failed with exit code 1;
       last 10 log lines:
       > configuring
       > no configure script, doing nothing
       > building
       > source = "git+https://github.com/snowflakelinux/nix-data#315d3efee6860cdc48e514ac1fa288196312a4f4"
       >
       > ERROR: The Cargo.lock contains git dependencies
       >
       > This is currently not supported in the fixed-output derivation fetcher.
       > Use cargoLock.lockFile / importCargoLock instead.
       >
       For full logs, run 'nix log /nix/store/8xbinsanp56gpwjmdpybb0zc1yfpvp3l-nix-software-center-0.1.0-vendor.tar.gz.drv'.
error: 1 dependencies of derivation '/nix/store/jqw10y7pxwcbx2b47ynxjdzryv4417qs-nix-software-center-0.1.0.drv' failed to build
error: 1 dependencies of derivation '/nix/store/ksq537d9lx7iv3757gpclbwahlfwyv76-user-environment.drv' failed to build
error: 1 dependencies of derivation '/nix/store/iazn5hxhq51vim9yrqcwyv8fgj1lxp87-etc.drv' failed to build
error: 1 dependencies of derivation '/nix/store/z5xzgq37kqxpcfdzg1xahnfl79afrf5q-nixos-system-laptop-23.11.20230721.e43e244.drv' failed to build

"Could not load new packages"

Hey great to see something like this started, the app looks beautiful from the screenshots!

I had a go at running it, but to no luck:

Screenshot from 2022-09-09 13-50-38

Some notes:

  • I am on the internet (that's how I could nix run it).
  • I don't have a configuration.nix in the /etc/nixos location. I keep my main configuration in a flake under a directory within my $HOME (not sure if this affects the package search).
  • System details:
    [mindtree@minddesk:~]$ nix run nixpkgs#nix-info -- -m
    - system: `"x86_64-linux"`
    - host os: `Linux 5.15.59, NixOS, 22.11 (Raccoon), 22.11.20220813.e105167`
    - multi-user?: `yes`
    - sandbox: `yes`
    - version: `nix-env (Nix) 2.10.3`
    - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`
    

Nix Software Center crashes

I get this output when running with rust backtrace set to full

/nix/store/g5wnnzr1r9fx9rk9i94x238lmka9dwb6-gvfs-1.50.4/lib/gvfs/libgvfscommon.so: undefined symbol: g_task_set_static_name
Failed to load module: /nix/store/g5wnnzr1r9fx9rk9i94x238lmka9dwb6-gvfs-1.50.4/lib/gio/modules/libgvfsdbus.so
/nix/store/g5wnnzr1r9fx9rk9i94x238lmka9dwb6-gvfs-1.50.4/lib/gvfs/libgvfscommon.so: undefined symbol: g_task_set_static_name
Failed to load module: /nix/store/g5wnnzr1r9fx9rk9i94x238lmka9dwb6-gvfs-1.50.4/lib/gio/modules/libgioremote-volume-monitor.so
/nix/store/g5wnnzr1r9fx9rk9i94x238lmka9dwb6-gvfs-1.50.4/lib/gvfs/libgvfscommon.so: undefined symbol: g_task_set_static_name
Failed to load module: /nix/store/g5wnnzr1r9fx9rk9i94x238lmka9dwb6-gvfs-1.50.4/lib/gio/modules/libgioremote-volume-monitor.so
/nix/store/g5wnnzr1r9fx9rk9i94x238lmka9dwb6-gvfs-1.50.4/lib/gvfs/libgvfscommon.so: undefined symbol: g_task_set_static_name
Failed to load module: /nix/store/g5wnnzr1r9fx9rk9i94x238lmka9dwb6-gvfs-1.50.4/lib/gio/modules/libgvfsdbus.so

(nix-software-center:10918): Gtk-WARNING **: 12:30:04.874: Failed to set text 'Flake arguments (--flake path/to/flake.nix#<THIS ENTRY>)' from markup due to error parsing markup: Error on line 1 char 63: Odd character “>”, expected a “=” after attribute name “ENTRY” of element “THIS”

(nix-software-center:10918): Gtk-WARNING **: 12:30:04.874: Failed to set text 'Flake arguments (--flake path/to/flake.nix#<THIS ENTRY>)' from markup due to error parsing markup: Error on line 1 char 63: Odd character “>”, expected a “=” after attribute name “ENTRY” of element “THIS”
libEGL warning: MESA-LOADER: failed to open radeonsi: /nix/store/8xk4yl1r3n6kbyn05qhan7nbag7npymx-glibc-2.35-224/lib/libc.so.6: version `GLIBC_2.36' not found (required by /nix/store/9ajxzd0yc6vih6vldiwvaphqqwi5gz0v-llvm-15.0.7-lib/lib/libLLVM-15.so) (search paths /run/opengl-driver/lib/dri, suffix _dri)

libEGL warning: MESA-LOADER: failed to open swrast: /nix/store/8xk4yl1r3n6kbyn05qhan7nbag7npymx-glibc-2.35-224/lib/libc.so.6: version `GLIBC_2.36' not found (required by /nix/store/9ajxzd0yc6vih6vldiwvaphqqwi5gz0v-llvm-15.0.7-lib/lib/libLLVM-15.so) (search paths /run/opengl-driver/lib/dri, suffix _dri)

Gsk-Message: 12:30:05.000: Failed to realize renderer of type 'GskGLRenderer' for surface 'GdkWaylandToplevel': Could not initialize EGL display

thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: RowNotFound', src/ui/window.rs:1383:34
stack backtrace:
  0:     0x557333dffb39 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::haaf5fb1112692432
  1:     0x557333e3931e - core::fmt::write::hc9810906af1f037c
  2:     0x557333e15945 - std::io::Write::write_fmt::h42570a50d1c05a1d
  3:     0x557333dff8f5 - std::sys_common::backtrace::print::hdb4dd2f5727cb1da
  4:     0x557333e2341f - std::panicking::default_hook::{{closure}}::hbf6435d4555f4c42
  5:     0x557333e23145 - std::panicking::default_hook::hb6b577f7a430b818
  6:     0x557333e23a3f - std::panicking::rust_panic_with_hook::h2dbb792ca6451cd5
  7:     0x557333dffea9 - std::panicking::begin_panic_handler::{{closure}}::h78627a3718fcdf2c
  8:     0x557333dffc8c - std::sys_common::backtrace::__rust_end_short_backtrace::h79f584276ca2060b
  9:     0x557333e235d2 - rust_begin_unwind
 10:     0x55733346c383 - core::panicking::panic_fmt::ha005c52a737c94d3
 11:     0x55733346c7f3 - core::result::unwrap_failed::h7a43042c26d3f96e
 12:     0x557333799ee6 - <nix_software_center::ui::window::AppModel as relm4::component::sync::traits::Component>::update::{{closure}}::h4f9b2dbcdb1f94b0
 13:     0x557333784116 - tokio::runtime::park::CachedParkThread::block_on::ha1131df8bee08d76
 14:     0x5573335d7cd9 - tokio::runtime::scheduler::multi_thread::MultiThread::block_on::h5b700fbe4967917f
 15:     0x5573336f6848 - tokio::runtime::runtime::Runtime::block_on::hf00d0293b415de80
 16:     0x55733383b1c6 - <nix_software_center::ui::window::AppModel as relm4::component::sync::traits::Component>::update::h6120d7cb2bef5af4
 17:     0x5573334ebb02 - relm4::component::sync::builder::ComponentBuilder<C>::launch_with_input_channel::{{closure}}::h1ab747ac209f96f2
 18:     0x557333ded59c - glib::main_context::<impl glib::auto::main_context::MainContext>::with_thread_default::hb6b96d86d1b495a2
 19:     0x557333dea84a - glib::main_context_futures::TaskSource::dispatch::hd524c3f4e3164a6e
 20:     0x7fa8c7586609 - g_main_context_dispatch
 21:     0x7fa8c7586898 - g_main_context_iterate.constprop.0
 22:     0x7fa8c758692c - g_main_context_iteration
 23:     0x7fa8c77b9f5d - g_application_run
 24:     0x5573334dce23 - <O as gio::application::ApplicationExtManual>::run_with_args::hcd9d00c0de121a36
 25:     0x5573334b724e - relm4::app::RelmApp::run::h1f85a6ea99e144af
 26:     0x5573334dd477 - nix_software_center::main::ha5a323361a25e9b9
 27:     0x5573334dbc93 - std::sys_common::backtrace::__rust_begin_short_backtrace::h4d53a7a8178c8f13
 28:     0x5573334dbca9 - std::rt::lang_start::{{closure}}::hf77dc13525dcadab
 29:     0x557333e149c4 - std::rt::lang_start_internal::h62a41a9744fc6640
 30:     0x5573334dd575 - main
 31:     0x7fa8c6a2924e - __libc_start_call_main
 32:     0x7fa8c6a29309 - __libc_start_main_alias_1
 33:     0x55733346c945 - _start
 34:                0x0 - <unknown>
3.03s user 0.55s system 107% cpu 3.327s total

non-nixos distros?

Can nix-software-center be used on debian-based distros without issue? I'm new to nix, and would like to use the package manager without the OS.

update fails

Hi there!

Thank you for the amazing piece of software!
NixOS is my favorite OS and Snowflake OS could become my new favorite flavor.
In particular to install on friends and family machines, this is amazing.

Now about the issue, the update seem to fail, both "update everything", and "System" "Update".
image

EDIT: with the trace:

 INFO  nix_software_center::ui::window        > AppMsg::CheckNetwork
 INFO  nix_software_center::ui::updatepage    > UpdatePageMsg::UpdateAll
 INFO  nix_software_center::ui::updateworker  > nsc-helper path: /nix/store/1j1ria63p0szpyvf1ipd967il5n9y0nd-nix-software-center-0.1.1/libexec/nsc-helper
 TRACE nix_software_center::ui::updateworker  > CAUGHT REBUILD LINE: error: the following required arguments were not provided:
 TRACE nix_software_center::ui::updateworker  > CAUGHT REBUILD LINE:   --output <OUTPUT>
 TRACE nix_software_center::ui::updateworker  > CAUGHT REBUILD LINE: 
 TRACE nix_software_center::ui::updateworker  > CAUGHT REBUILD LINE: Usage: nsc-helper channel --output <OUTPUT> --rebuild --generations <GENERATIONS> <ARGUMENTS>...
 TRACE nix_software_center::ui::updateworker  > CAUGHT REBUILD LINE: 
 TRACE nix_software_center::ui::updateworker  > CAUGHT REBUILD LINE: For more information, try '--help'.
 INFO  nix_software_center::ui::rebuild       > RebuildMsg::UpdateText(error: the following required arguments were not provided:)
 TRACE nix_software_center::ui::rebuild       > NEWTEXT: error: the following required arguments were not provided:
 WARN  nix_software_center::ui::updateworker  > UPDATE ALL FAILED
 INFO  nix_software_center::ui::rebuild       > RebuildMsg::UpdateText(  --output <OUTPUT>)
 TRACE nix_software_center::ui::rebuild       > NEWTEXT: error: the following required arguments were not provided:
  --output <OUTPUT>
 INFO  nix_software_center::ui::rebuild       > RebuildMsg::UpdateText()
 TRACE nix_software_center::ui::rebuild       > NEWTEXT: error: the following required arguments were not provided:
  --output <OUTPUT>

 INFO  nix_software_center::ui::rebuild       > RebuildMsg::UpdateText(Usage: nsc-helper channel --output <OUTPUT> --rebuild --generations <GENERATIONS> <ARGUMENTS>...)
 TRACE nix_software_center::ui::rebuild       > NEWTEXT: error: the following required arguments were not provided:
  --output <OUTPUT>

Usage: nsc-helper channel --output <OUTPUT> --rebuild --generations <GENERATIONS> <ARGUMENTS>...
 INFO  nix_software_center::ui::rebuild       > RebuildMsg::UpdateText()
 TRACE nix_software_center::ui::rebuild       > NEWTEXT: error: the following required arguments were not provided:
  --output <OUTPUT>

Usage: nsc-helper channel --output <OUTPUT> --rebuild --generations <GENERATIONS> <ARGUMENTS>...

 INFO  nix_software_center::ui::rebuild       > RebuildMsg::UpdateText(For more information, try '--help'.)
 TRACE nix_software_center::ui::rebuild       > NEWTEXT: error: the following required arguments were not provided:
  --output <OUTPUT>

Usage: nsc-helper channel --output <OUTPUT> --rebuild --generations <GENERATIONS> <ARGUMENTS>...

For more information, try '--help'.

Support different sources like Flatpak

In my vision, the Nix GUI supports different sources like NixOS stable, unstable and Flatpak. Maybe others if they are relevant.
If people should use Nix on other operating systems, i think we have to support their package manager as well. So it would be easier to make GNOME Software support Nix instead of making this support many package managers.

The sources selection would be a drop-down at the top right (where a different drop-down is currently).

There can be sources specific settings where you can add, remove or disable sources, disallow/allow unfree, broken, unsecure or unstable packages.

If there are multiple versions of the same package due to this, the drop down on the install button should show the different versions with source in (). The default can be from your default channel like nixos, but there can also be a setting "preferred source", so you could prefer Flathub.

The current drop-down options (Run without install, interactive shell) seem quite a special case and can be hidden more. Maybe a second butten right to the install button.

Minor feature request - search shortcut

As far as I can tell, the only way to trigger the search bar is by clicking the button - it would be nice for keyboard centric workflows to be supported, so adding a ctrl-f shortcut (or just triggering search on any alphabetic key) would be nice

"Open interactive shell" fails silently

When I try to "Open interactive shell" for wezterm (just what I happened to try), nothing happens at all, on console or elsewhere. No processes are started, or at least none that last long enough to see.

Overlay not working?

I tried to install the package with an overlay:

           nixpkgs.overlays = [ inputs.nix-software-center.overlays.pkgs ];
           environment.systemPackages = with pkgs; [
             nix-software-center
           ];

but it does not compile anything, and at the end the program nix-software-center is not available. On the other hand:

          environment.systemPackages = with pkgs; [
            inputs.nix-software-center.packages.${system}.nix-software-center
          ];

seems to work (at least it compiles stuff).

Also, I saw a commit by @dezren39 that was renaming overlays like nixpkgs.overlays.pkgs instead of nixpkgs.overlays.default, why is it the case? The wiki seems to suggest that default is the current standard notation no?

Open button not working?

First thanks a lot for this great peace of software. It is really pleasant to use, fast, and I like the fact that it supports very elegantly both the imperative (flake or non-flake) and declarative (via configuration.nix) mode. But after my quick test it works really nicely, except for one (surprisingly easy to implement… I would expect) feature: the "Open" button is never working (tried with software installed locally, system-wide, already installed, newly installed…). Clicking on it just does… nothing. Let me know how I can provide more help with this.

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.