| 12 Oct 2025 |
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 |
matthewcroughan | aarch64-unknown-linux-musl-gcc getdate.c -c -std=gnu11 -fgnu89-inline -g -O2 -Wall -Wwrite-strings -Wundef -Werror -fmerge-all-constants -frounding-math -fstack-protector-strong -fno-common -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=2 -Wstrict-prototypes -Wold-style-definition -fmath-errno -fPIC -fexceptions -ftls-model=initial-exec -I../include -I/build/build/time -I/bui>
In file included from <command-line>:
../sysdeps/unix/sysv/linux/gettimeofday.c:56:29: error: ‘gettimeofday’ alias between functions of incompatible types ‘int(struct timeval *, void *)’ and ‘int (*(void))(struct timeval *, void *)’ [-Werror=attribute-alias=]
56 | weak_alias (__gettimeofday, gettimeofday)
| ^~~~~~~~~~~~
./../include/libc-symbols.h:155:26: note: in definition of macro ‘_weak_alias’
155 | extern __typeof (name) aliasname __attribute__ ((weak, alias (#name))) \
| ^~~~~~~~~
../sysdeps/unix/sysv/linux/gettimeofday.c:56:1: note: in expansion of macro ‘weak_alias’
56 | weak_alias (__gettimeofday, gettimeofday)
| ^~~~~~~~~~
../sysdeps/unix/sysv/linux/gettimeofday.c:42:13: note: aliased declaration here
42 | libc_ifunc (__gettimeofday,
| ^~~~~~~~~~~~~~
./../include/libc-symbols.h:672:25: note: in definition of macro ‘__ifunc_resolver’
672 | __typeof (type_name) *name##_ifunc (__VA_ARGS__) \
| ^~~~
./../include/libc-symbols.h:710:3: note: in expansion of macro ‘__ifunc_args’
710 | __ifunc_args (type_name, name, expr, init, arg)
| ^~~~~~~~~~~~
./../include/libc-symbols.h:794:32: note: in expansion of macro ‘__ifunc’
794 | #define libc_ifunc(name, expr) __ifunc (name, name, expr, void, INIT_ARCH)
| ^~~~~~~
../sysdeps/unix/sysv/linux/gettimeofday.c:42:1: note: in expansion of macro ‘libc_ifunc’
42 | libc_ifunc (__gettimeofday,
| ^~~~~~~~~~
| 13:34:39 |
Alyssa Ross | that sounds like something that probably shouldn't even be attempted... | 13:38:54 |
matthewcroughan | this is pkgsMusl.pkgsLLVM | 13:39:32 |
matthewcroughan | or should be | 13:39:34 |
matthewcroughan | Hmm, and it looks like the systemd-minimal patch issues are still on staging-next | 13:42:35 |