diff --git a/pkgs/by-name/li/linux-wallpaperengine/package.nix b/pkgs/by-name/li/linux-wallpaperengine/package.nix index 5dfee0f92ad5..ac562221a0f1 100644 --- a/pkgs/by-name/li/linux-wallpaperengine/package.nix +++ b/pkgs/by-name/li/linux-wallpaperengine/package.nix @@ -2,102 +2,119 @@ lib, stdenv, fetchFromGitHub, + autoPatchelfHook, cmake, + file, + pkg-config, + python3, + SDL2, + SDL2_mixer, + cef-binary, + egl-wayland, ffmpeg, - libglut, + fftw, glew, glfw, glm, - libpulseaudio, + kissfftFloat, libXau, libXdmcp, libXpm, libXrandr, libXxf86vm, + libdecor, + libffi, + libglut, + libpng, + libpulseaudio, lz4, mpv, - pkg-config, - SDL2, - SDL2_mixer, - zlib, wayland, wayland-protocols, - egl-wayland, - libffi, wayland-scanner, - cef-binary, - libdecor, - autoPatchelfHook, + zlib, }: let cef = cef-binary.overrideAttrs (oldAttrs: { - version = "120.1.10"; + version = "135.0.17"; # follow upstream. https://github.com/Almamu/linux-wallpaperengine/blob/be0fc25e72203310f268221a132c5d765874b02c/CMakeLists.txt#L47 __intentionallyOverridingVersion = true; # `cef-binary` uses the overridden `srcHash` values in its source FOD - gitRevision = "3ce3184"; - chromiumVersion = "120.0.6099.129"; + gitRevision = "cbc1c5b"; + chromiumVersion = "135.0.7049.52"; srcHash = { - aarch64-linux = "sha256-l0PSW4ZeLhfEauf1bez1GoLfu9cwXZzEocDlGI9yFsQ="; - x86_64-linux = "sha256-OdIVEy77tiYRfDWXgyceSstFqCNeZHswzkpw06LSnP0="; + aarch64-linux = "sha256-LK5JvtcmuwCavK7LnWmMF2UDpM5iIZOmsuZS/t9koDs="; + x86_64-linux = "sha256-JKwZgOYr57GuosM31r1Lx3DczYs35HxtuUs5fxPsTcY="; } .${stdenv.hostPlatform.system} or (throw "unsupported system ${stdenv.hostPlatform.system}"); }); in -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "linux-wallpaperengine"; - version = "0-unstable-2024-11-08"; + version = "0-unstable-2025-05-17"; src = fetchFromGitHub { owner = "Almamu"; repo = "linux-wallpaperengine"; - rev = "4a063d0b84d331a0086b3f4605358ee177328d41"; - hash = "sha256-IRTGFxHPRRRSg0J07pq8fpo1XbMT4aZC+wMVimZlH/Y="; + rev = "be0fc25e72203310f268221a132c5d765874b02c"; + fetchSubmodules = true; + hash = "sha256-Wkxt6c5aSMJnQPx/n8MeNKLQ8YmdFilzhJ1wQooKprI="; }; nativeBuildInputs = [ - cmake - pkg-config autoPatchelfHook + cmake + file + pkg-config + python3 ]; buildInputs = [ - libdecor + SDL2 + SDL2_mixer + egl-wayland ffmpeg - libglut + fftw glew glfw glm - libpulseaudio + kissfftFloat libXau - SDL2_mixer libXdmcp libXpm + libXrandr libXxf86vm - mpv + libdecor + libffi + libglut + libpng + libpulseaudio lz4 - SDL2 - zlib + mpv wayland wayland-protocols - egl-wayland - libffi wayland-scanner - libXrandr + zlib ]; cmakeFlags = [ "-DCMAKE_BUILD_TYPE=${cef.buildType}" "-DCEF_ROOT=${cef}" - "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}/app/linux-wallpaperengine" + "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}/share/linux-wallpaperengine" ]; - preFixup = '' - patchelf --set-rpath "${lib.makeLibraryPath buildInputs}:${cef}" $out/app/linux-wallpaperengine/linux-wallpaperengine - chmod 755 $out/app/linux-wallpaperengine/linux-wallpaperengine + postInstall = '' + rm -rf $out/bin $out/lib $out/include + chmod 755 $out/share/linux-wallpaperengine/linux-wallpaperengine mkdir $out/bin - ln -s $out/app/linux-wallpaperengine/linux-wallpaperengine $out/bin/linux-wallpaperengine + ln -s $out/share/linux-wallpaperengine/linux-wallpaperengine $out/bin/linux-wallpaperengine + ''; + + preFixup = '' + find $out/share/linux-wallpaperengine -type f -exec file {} \; | grep 'ELF' | cut -d: -f1 | while read -r elf_file; do + patchelf --shrink-rpath --allowed-rpath-prefixes "$NIX_STORE" "$elf_file" + done ''; meta = { @@ -112,4 +129,4 @@ stdenv.mkDerivation rec { ]; hydraPlatforms = [ "x86_64-linux" ]; # Hydra "aarch64-linux" fails with "Output limit exceeded" }; -} +})