Skip to content

Pinned nixpkgs is too old to build obelisk-command's closure on machines without all cores enabled #1132

@ju1m

Description

@ju1m

Hi,

I'm not sure whether that issue should be reported here or rather to reflex-platform which seems to be where nixpkgs is pinned.

libpulseaudio is built (for ffmpeg, for openjdk, for obelisk-command),
and it fails to build on machines where not all cores are enabled
(LXC container or in my case without hyper threading on (/sys/devices/system/cpu/smt/control = off))
without this fix in recent nixpkgs

$ nix-shell # in a project using obelisk, like https://github.com/jecaro/diverk
[…]
Summary of Failures:

32/39 once-test                                                             FAIL             0.04s   exit status 1

Ok:                 38
Expected Fail:      0
Fail:               1
Unexpected Pass:    0                                               
Skipped:            0
Timeout:            0
Full log written to /build/pulseaudio-16.1/build/meson-logs/testlog.txt                                                                 
Linking dist/build/hlint/hlint ...                                  
[343/1632] Compiling C object src/shared/libsystemd-shared-251.a.p/import-util.c.o                                                      
[  0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CodeGenCoverage.cpp.o                                                 
[49/814] Compiling C object gst-libs/gst/video/libgstvideo-1.0.so.0.2003.0.p/gstvideoaffinetransformationmeta.c.o
FAILED: meson-internal__test                                        
/nix/store/n851cs4rzc49v2r41vi72q15md1h9vza-meson-0.63.1/bin/meson test --no-rebuild --print-errorlogs                                  
ninja: build stopped: subcommand failed.                            
error: builder for '/nix/store/0zi79vvizaxry4y4z6dy7z2kz079xqjm-libpulseaudio-16.1.drv' failed with exit code 1;
error: 1 dependencies of derivation '/nix/store/vg3xq3abx8hqhjyi8l5rwfglcmxnqcsy-ffmpeg-4.4.2.drv' failed to build
error: 1 dependencies of derivation '/nix/store/2wcfcbsm9h8k9666m0l1q48yv54v7lv6-openjfx-modular-sdk-17.0.0.1+1.drv' failed to build
error: 1 dependencies of derivation '/nix/store/30iyfhyrjcmma2rvjl6y23kia0k07r1b-openjdk-17.0.4+8.drv' failed to build
error: 1 dependencies of derivation '/nix/store/53wf88bj5yzjardcmxr99c1459ybrv9b-obelisk-command-0.9.0.1.drv' failed to build
error: build of '/nix/store/53wf88bj5yzjardcmxr99c1459ybrv9b-obelisk-command-0.9.0.1.drv', '/nix/store/xm76ydrgjhxff1rj8wfwb921ilqqk500-nix-prefetch-git.drv' failed

Workarounds include:

  1. Using nixcache.reflex-frp.org as cache in ~/.config/nix/nix.conf:
substituers = https://nixcache.reflex-frp.org
trusted-public-keys = ryantrinkle.com-1:JJiAKaRv9mWgpVAz8dwewnZe0AzzEAzPkagE9SP5NWI=
  1. Or enabling hyper threading:
$ sudo tee /sys/devices/system/cpu/smt/control <<<on
  1. Or adding an overlay in nixpkgsOverlays in reflex-platform-func fixing libpulseaudio.

Alas, other build failures occur later in other packages, leaving only 1. as a viable workaround, which is quite a bad state to be in.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions