3 Jul 2025 |
Toma | I'm also wondering whether we want to support fetching from other registries in the future.
This would require some ret-con on the layout of the FOD itself, but it shouldn't be too bad. | 22:42:38 |
Toma | * I would like to revive some conversation around https://github.com/NixOS/nixpkgs/pull/387337
Currently PR's implementation creates a new subdirectory for each unique source that can be found in the lockfile
Here's an example of how the final directory layout might look like:
$ ls -A result/
.cargo source-git-0 source-git-1 source-git-2 source-registry-0 Cargo.lock
$ cat result/.cargo/config.toml
[source._vendored-source-registry-0]
directory = "@vendor@/source-registry-0"
[source.crates-io]
replace-with = "_vendored-source-registry-0"
[source._vendored-source-git-0]
directory = "@vendor@/source-git-0"
[source._original-source-git-0]
git = "https://github.com/biomejs/biome"
rev = "2648fa4201be4afd26f44eca1a4e77aac0a67272"
replace-with = "_vendored-source-git-0"
[source._vendored-source-git-1]
directory = "@vendor@/source-git-1"
[source._original-source-git-1]
git = "https://github.com/lionel-/tower-lsp"
branch = "bugfix/patches"
replace-with = "_vendored-source-git-1"
[source._vendored-source-git-2]
directory = "@vendor@/source-git-2"
[source._original-source-git-2]
git = "https://github.com/r-lib/tree-sitter-r"
rev = "a0d3e3307489c3ca54da8c7b5b4e0c5f5fd6953a"
replace-with = "_vendored-source-git-2"
| 22:43:03 |
Toma | * I would like to revive some conversation around https://github.com/NixOS/nixpkgs/pull/387337
Currently the PR's implementation creates a new subdirectory for each unique source that can be found in the lockfile
Here's an example of how the final directory layout might look like:
$ ls -A result/
.cargo source-git-0 source-git-1 source-git-2 source-registry-0 Cargo.lock
$ cat result/.cargo/config.toml
[source._vendored-source-registry-0]
directory = "@vendor@/source-registry-0"
[source.crates-io]
replace-with = "_vendored-source-registry-0"
[source._vendored-source-git-0]
directory = "@vendor@/source-git-0"
[source._original-source-git-0]
git = "https://github.com/biomejs/biome"
rev = "2648fa4201be4afd26f44eca1a4e77aac0a67272"
replace-with = "_vendored-source-git-0"
[source._vendored-source-git-1]
directory = "@vendor@/source-git-1"
[source._original-source-git-1]
git = "https://github.com/lionel-/tower-lsp"
branch = "bugfix/patches"
replace-with = "_vendored-source-git-1"
[source._vendored-source-git-2]
directory = "@vendor@/source-git-2"
[source._original-source-git-2]
git = "https://github.com/r-lib/tree-sitter-r"
rev = "a0d3e3307489c3ca54da8c7b5b4e0c5f5fd6953a"
replace-with = "_vendored-source-git-2"
| 22:43:12 |
emily | does anything in practice use multiple registries? | 22:45:47 |
Toma | Probably people using some internal packages, idk | 22:46:35 |
Toma | Also even if they were to use multiple registries, in most cases there wouldn't be any clash, so we could just put everything into the tarballs/ directory of the FOD. | 22:48:37 |
Toma | Btw I have https://github.com/NixOS/nixpkgs/pull/399775 which already has a POC implementation for using multiple registries (though it doesn't put everything into tarballs/) | 22:50:23 |
4 Jul 2025 |
| JacoMalan1 joined the room. | 13:48:28 |
5 Jul 2025 |
| PBlue3 joined the room. | 18:02:54 |
| kwiuu joined the room. | 20:42:27 |
6 Jul 2025 |
| JacoMalan1 changed their display name from jacom to JacoMalan1. | 12:16:13 |
| JacoMalan1 set a profile picture. | 12:58:03 |
Andrew | I want to build a Dioxus desktop app with webview from GNU/Linux to Windows. So far, this does build
# https://discourse.nixos.org/t/cross-compile-rust-for-windows/9582/10
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
rust-overlay.url = "github:oxalica/rust-overlay";
rust-overlay.inputs.nixpkgs.follows = "nixpkgs";
};
outputs = {
nixpkgs,
rust-overlay,
...
}: let
system = "x86_64-linux";
pkgs = import nixpkgs {
inherit system;
crossSystem.config = "x86_64-w64-mingw32";
overlays = [(import rust-overlay)];
};
pkgsLocal = import nixpkgs {inherit system;};
rust-toolchain = pkgs.pkgsBuildHost.rust-bin.stable.latest.default.override {
extensions = ["rust-src" "rust-analyzer" "clippy"];
targets = ["x86_64-pc-windows-gnu"];
};
# rustBuildInputs =
# [
# # pkgs.pthreads
# pkgs.openssl
# pkgs.libiconv
# pkgs.pkg-config
# ]
# ++ lib.optionals pkgs.stdenv.isLinux [
# pkgs.glib
# pkgs.gtk3
# pkgs.libsoup_3
# pkgs.webkitgtk_4_1
# pkgs.xdotool
# ]
# ++ lib.optionals pkgs.stdenv.isDarwin (with pkgs.darwin.apple_sdk.frameworks; [
# IOKit
# Carbon
# WebKit
# Security
# Cocoa
# ]);
in
with pkgs; {
devShells.${system}.default = mkShell {
buildInputs = [
pkgs.openssl
pkgs.libiconv
# pkgs.windows.mingw_w64_pthreads
];
nativeBuildInputs = [
rust-toolchain
pkgsLocal.wine64
];
};
};
}
with dx bundle --platform windows --target x86_64-pc-windows-gnu --package-types msi , though bundle isn't being created. But I get an error that the webview 2 loader dll is not found, just like https://stackoverflow.com/questions/74217709/unable-to-load-dll-webview2loader-dll-the-specified-module-could-not-be-found, which links to https://learn.microsoft.com/en-us/microsoft-edge/webview2/concepts/distribution?tabs=dotnetcsharp.
Does nixpkgs not have the WebView2 runtime-related stuff or do I have to install the runtime on the target OS in order to run my app?
| 15:15:58 |
K900 | You definitely need it on the target | 15:16:24 |
K900 | And we definitely don't have it in nixpkgs | 15:16:29 |
K900 | As it's not redistributable | 15:16:35 |
Andrew | Is there any chance this can be included in the binary somehow? | 15:17:01 |
Marie | Isn't webview2 part of windows? | 15:17:14 |
K900 | No, it's a Microsoft proprietary library | 15:17:16 |
K900 | Only on 11 | 15:17:25 |
K900 | It is optional on 10 and N/A on older versions | 15:17:36 |
K900 | And they are running Wine which most definitely isn't helping | 15:17:47 |
Andrew | Oh, so on that it should just work, if no other dependencies are missing? | 15:17:53 |
K900 | Possibly | 15:18:00 |
Andrew | That's interesting. | 15:18:09 |
K900 | Oh actually no it won't because you're building for MinGW | 15:18:12 |
K900 | So presumably you'll run into Exciting ABI Fuckery | 15:18:18 |
Andrew | OK, is there a better way? | 15:18:36 |
K900 | Build on native Windows | 15:18:43 |
Andrew | Are you saying Nix can't save me? | 15:18:57 |