| 12 Oct 2025 |
Alyssa Ross | There's already a PR for this | 12:06:29 |
matthewcroughan | musl native seems okay | 12:06:29 |
matthewcroughan | ah got a link? | 12:06:35 |
Alyssa Ross | https://github.com/NixOS/nixpkgs/pull/451291 | 12:06:50 |
matthewcroughan | And the only reason we don't merge this straight away is because of mass rebuilds? | 12:07:19 |
Alyssa Ross | there is no mass rebuild | 12:07:29 |
Alyssa Ross | the reason i haven't merged it straight away is that I am still sick | 12:07:36 |
matthewcroughan | Yeah I'm just trying to learn, because in some cases it appears that people fear a mass rebuild | 12:07:56 |
Alyssa Ross | in this case the labels tell you there isn't one :) | 12:08:06 |
matthewcroughan | And if there is, when do you decide it's okay to do the merge? | 12:09:05 |
Alyssa Ross | https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#changes-causing-mass-rebuilds | 12:10:17 |
matthewcroughan | Oh | 12:10:53 |
matthewcroughan | So with staging anything is fair game? | 12:10:59 |
Alyssa Ross | yes, that's the point of staging | 12:11:06 |
matthewcroughan | So if you just target staging instead of staging-next, it's okay? | 12:11:08 |
Alyssa Ross | yes | 12:11:14 |
matthewcroughan | I did not get that, I do now, thanks | 12:11:19 |
Alyssa Ross | :) | 12:11:50 |
matthewcroughan | So can I test and merge it? | 12:24:57 |
| onny joined the room. | 12:25:10 |
onny | i'm using this flake.nix to build my riscv system locally and push it via ssh to the riscv-board:
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
};
outputs = { self, nixpkgs, nixos-hardware, ... }@inputs: {
nixosConfigurations = {
# Native machine build
picloudrv = nixpkgs.lib.nixosSystem rec {
system = "riscv64-linux";
pkgs = import nixpkgs;
specialArgs = { inherit inputs; };
modules = [
({ pkgs, ... }: {
})
./configuration.nix
];
};
# Cross machine build, from x86_64
picloudrv-from-x86_64 = nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs; };
modules = [
({ pkgs, ... }: {
})
./configuration.nix
{
imports = [
"${nixos-hardware}/starfive/visionfive/v2/sd-image-installer.nix"
];
# This is the architecture we build from (pkgs.system from above)
nixpkgs.buildPlatform = "x86_64-linux";
# pkgsCross.<yourtarget>.system
nixpkgs.hostPlatform = "riscv64-linux";
}
];
};
};
};
}
i'm trying to patch the app plausible to use tailwindcss_3 from the build machine since it is not available for riscv ( https://github.com/NixOS/nixpkgs/pull/447495/files )
config :tailwind, path: "${lib.getExe pkgsBuildHost.tailwindcss_3}"
somehow the build process is still trying to compile taildwindcss_3 for riscv platform and fails :(
| 12:28:56 |
onny | both this
163| config :tailwind, path: "${lib.getExe buildPackages.tailwindcss_3}"
and this
… from call site
at /nix/store/wyfpjl27b10ikdlfi5ibb2fbr60sqi0r-source/pkgs/by-name/pl/plausible/package.nix:165:32:
164| cat >> config/config.exs <<EOF
165| config :tailwind, path: "${lib.getExe pkgsBuildHost.tailwindcss_3}"
| ^
166| config :esbuild, path: "${lib.getExe esbuild}"
result in
at /nix/store/j8g50snzvr3618ggrhcgpc8534rk5mh6-source/pkgs/by-name/ta/tailwindcss_3/package.nix:9:17:
8| inherit (stdenv.hostPlatform) system;
9| throwSystem = throw "tailwindcss has not been packaged for ${system} yet.";
| ^
10|
error: tailwindcss has not been packaged for riscv64-linux yet.
| 12:43:34 |
Alyssa Ross | yeah | 12:59:46 |
matthewcroughan | In file included from /nix/store/p6xsnza312a09bbs7vka0mwy6gai7174-musl-1.2.5-dev/include/resolv.h:6,
from ../include/utils.h:7,
from bridge.c:6:
/nix/store/p6xsnza312a09bbs7vka0mwy6gai7174-musl-1.2.5-dev/include/netinet/in.h:23:8: error: redefinition of ‘struct in6_addr’
23 | struct in6_addr {
| ^~~~~~~~
In file included from ../include/uapi/linux/if_bridge.h:19,
from ../include/bridge.h:5,
from bridge.c:5:
../include/uapi/linux/in6.h:33:8: note: originally defined here
33 | struct in6_addr {
| ^~~~~~~~
/nix/store/p6xsnza312a09bbs7vka0mwy6gai7174-musl-1.2.5-dev/include/netinet/in.h:34:8: error: redefinition of ‘struct sockaddr_in6’
34 | struct sockaddr_in6 {
| ^~~~~~~~~~~~
../include/uapi/linux/in6.h:50:8: note: originally defined here
50 | struct sockaddr_in6 {
| ^~~~~~~~~~~~
/nix/store/p6xsnza312a09bbs7vka0mwy6gai7174-musl-1.2.5-dev/include/netinet/in.h:42:8: error: redefinition of ‘struct ipv6_mreq’
42 | struct ipv6_mreq {
| 13:09:25 |
matthewcroughan | What happened with iproute? | 13:09:28 |
Alyssa Ross | Yureka is already on that one too: https://lore.kernel.org/netdev/20251012124002.296018-1-yureka@cyberchaos.dev/ | 13:26:53 |
matthewcroughan | How they figured that one out, I have no idea | 13:29:16 |
matthewcroughan | lots of trial and error I guess | 13:29:21 |
matthewcroughan | yep, that patch works | 13:33:04 |
matthewcroughan | next up is glibc-nolibgcc-aarch64-unknown-linux-musl | 13:34:15 |