snowfallorg / nix-software-center Goto Github PK
View Code? Open in Web Editor NEWA simple gtk4/libadwaita software center to easily install and manage nix packages
License: GNU General Public License v3.0
A simple gtk4/libadwaita software center to easily install and manage nix packages
License: GNU General Public License v3.0
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.
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".
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'.
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.
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.
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.
We can be the 4th on the list: https://hughsie.github.io/oars/
This could replace Platforms if you decide to remove it (#9).
** 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
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
Display long description of packages. For example, the long description for solaar package indicates an interesting option to enable: https://search.nixos.org/packages?channel=22.11&show=solaar&from=0&size=50&sort=relevance&type=packages&query=solaar
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
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?
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
Would be nice to see which version of the package/software we are installing
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.
Some users like to install everything at System level, now by default, User shows first. Would be nice to have a preference to set the default preferred way of installing. Or maybe remember the last selected?
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.
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
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.
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.
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
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:
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.
thanks for making this! I love using it.
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.
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.
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:
Some notes:
nix run
it).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).[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`
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.
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.
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.
[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".
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>
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
It would be nice to be able to configure home.nix
with this app to install applications not unlike configuration.nix
.
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)
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?
When installed in NixOS via configuration.nix
, if I garbage-collect, and then nixos-rebuild, the software-center gets built again. I may want to try the solution mentioned in https://discourse.nixos.org/t/pinned-nixpkgs-keeps-getting-garbage-collected/12912/6 and if that fixes, I'll PR that.
Same goes with nixos-conf-editor.
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.
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.
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!
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?
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
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?
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
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.
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 !
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.
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.
This program along with the NixOS graphical configurator should be upstreamed to nixpkgs to make it easier to install.
I added my flake and the software center doesn't list anything installed.
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.