diff --git a/flake/lib/buildNixpkgsConfig/default.nix b/flake/lib/buildNixpkgsConfig/default.nix index db30feb9..4fd8566d 100644 --- a/flake/lib/buildNixpkgsConfig/default.nix +++ b/flake/lib/buildNixpkgsConfig/default.nix @@ -38,7 +38,9 @@ in platformConfig // overlays = [ inputs.topInputs.aagl.overlays.default - inputs.topInputs.nur-xddxdd.overlays.inSubTree + # xddxdd overlay use prev instead of final, we import it manually + (final: prev: { svp = final.callPackage "${inputs.topInputs.nur-xddxdd}/pkgs/uncategorized/svp" + { sources = final.callPackage "${inputs.topInputs.nur-xddxdd}/_sources/generated.nix" {}; }; }) inputs.topInputs.buildproxy.overlays.default inputs.topInputs.nix4vscode.overlays.default inputs.topInputs.bscpkgs.overlays.default @@ -125,41 +127,49 @@ in platformConfig // in builtins.listToAttrs (builtins.map (name: { inherit name; value = packages name; }) (builtins.attrNames source)) ) - # // (inputs.lib.optionalAttrs (prev.stdenv.hostPlatform.avx512Support) - # { gsl = prev.gsl.overrideAttrs { doCheck = false; }; }) - # // (inputs.lib.optionalAttrs (prev.stdenv.hostPlatform.sse4_1Support) - # { - # frei0r = final.genericPackages.frei0r; - # valkey = final.genericPackages.valkey; - # }) - # // (inputs.lib.optionalAttrs (nixpkgs.march != null) - # { - # assimp = prev.assimp.override { stdenv = final.genericPackages.stdenv; }; + // (inputs.lib.optionalAttrs (prev.stdenv.hostPlatform.avx512Support) + { gsl = prev.gsl.overrideAttrs { doCheck = false; }; }) + // (inputs.lib.optionalAttrs (prev.stdenv.hostPlatform.sse4_1Support) + { + frei0r = final.genericPackages.frei0r; + # valkey = final.genericPackages.valkey; + }) + // (inputs.lib.optionalAttrs (nixpkgs.march != null) + { + ffmpeg_8 = prev.ffmpeg_8.overrideAttrs (prev: { patches = prev.patches or [] ++ [ ./ffmpeg.patch ]; }); + ffmpeg_8-headless = prev.ffmpeg_8-headless.overrideAttrs + (prev: { patches = prev.patches or [] ++ [ ./ffmpeg.patch ]; }); + ffmpeg_8-full = prev.ffmpeg_8-full.overrideAttrs + (prev: { patches = prev.patches or [] ++ [ ./ffmpeg.patch ]; }); + ffmpeg = final.ffmpeg_8; + ffmpeg-headless = final.ffmpeg_8-headless; + ffmpeg-full = final.ffmpeg_8-full; + assimp = prev.assimp.override { stdenv = final.genericPackages.stdenv; }; # redis = prev.redis.overrideAttrs (prev: { doCheck = false; }); # wannier90 = prev.wannier90.overrideAttrs { buildFlags = [ "dynlib" ]; }; # xen = prev.xen.overrideAttrs (prev: { patches = prev.patches or [] ++ [ ./xen.patch ]; }); - # lib2geom = prev.lib2geom.overrideAttrs (prev: { doCheck = false; }); + lib2geom = prev.lib2geom.overrideAttrs (prev: { doCheck = false; }); # libreoffice-qt6-still = prev.libreoffice-qt6-still.override (prev: # { unwrapped = prev.unwrapped.overrideAttrs (prev: { postPatch = prev.postPatch or "" + # '' # sed -i '/CPPUNIT_TEST.testDubiousArrayFormulasFODS/d' sc/qa/unit/functions_array.cxx # '';});}); - # opencolorio = prev.opencolorio.overrideAttrs (prev: { doCheck = false; }); - # rapidjson = prev.rapidjson.overrideAttrs { doCheck = false; }; + opencolorio = prev.opencolorio.overrideAttrs (prev: { doCheck = false; }); + rapidjson = prev.rapidjson.overrideAttrs { doCheck = false; }; # embree = prev.embree.override { stdenv = final.genericPackages.stdenv; }; # simde = prev.simde.override { stdenv = final.genericPackages.stdenv; }; - # pythonPackagesExtensions = prev.pythonPackagesExtensions or [] ++ [(final: prev: - # { - # picosvg = prev.picosvg.overridePythonAttrs { doCheck = false; }; - # aiocache = prev.aiocache.overridePythonAttrs { doCheck = false; }; - # numpy = - # if inputs.lib.hasInfix "bar" prev.numpy.outPath then prev.numpy.overridePythonAttrs - # (prev:{ disabledTests = prev.disabledTests or [] ++ [ "test_nowrap_private_proceedures" ]; }) - # else prev.numpy; - # })]; - # ctranslate2 = prev.ctranslate2.overrideAttrs (prev: - # { cmakeFlags = prev.cmakeFlags or [] ++ [ "-DENABLE_CPU_DISPATCH=OFF" ]; }); + pythonPackagesExtensions = prev.pythonPackagesExtensions or [] ++ [(final: prev: + { + picosvg = prev.picosvg.overridePythonAttrs { doCheck = false; }; + # aiocache = prev.aiocache.overridePythonAttrs { doCheck = false; }; + # numpy = + # if inputs.lib.hasInfix "bar" prev.numpy.outPath then prev.numpy.overridePythonAttrs + # (prev:{ disabledTests = prev.disabledTests or [] ++ [ "test_nowrap_private_proceedures" ]; }) + # else prev.numpy; + })]; + ctranslate2 = prev.ctranslate2.overrideAttrs (prev: + { cmakeFlags = prev.cmakeFlags or [] ++ [ "-DENABLE_CPU_DISPATCH=OFF" ]; }); # # valkey = final.redis; - # }) + }) )]; } diff --git a/flake/lib/buildNixpkgsConfig/ffmpeg.patch b/flake/lib/buildNixpkgsConfig/ffmpeg.patch new file mode 100644 index 00000000..1c2e6c82 --- /dev/null +++ b/flake/lib/buildNixpkgsConfig/ffmpeg.patch @@ -0,0 +1,36 @@ +Index: FFmpeg/libavcodec/huffyuvdsp.c +=================================================================== +--- FFmpeg.orig/libavcodec/huffyuvdsp.c ++++ FFmpeg/libavcodec/huffyuvdsp.c +@@ -16,6 +16,13 @@ + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + ++// GCC Vectorize with AVX will break huffyuv unit tests. ++#if defined(__GNUC__) && !defined(__clang__) ++ #if (__GNUC__ > 6) ++ #pragma GCC optimize ("no-tree-vectorize") ++ #endif ++#endif ++ + #include + + #include "config.h" +Index: FFmpeg/libavcodec/huffyuvenc.c +=================================================================== +--- FFmpeg.orig/libavcodec/huffyuvenc.c ++++ FFmpeg/libavcodec/huffyuvenc.c +@@ -28,6 +28,13 @@ + * huffyuv encoder + */ + ++ // GCC Vectorize with AVX will break huffyuv unit tests. ++#if defined(__GNUC__) && !defined(__clang__) ++ #if (__GNUC__ > 6) ++ #pragma GCC optimize ("no-tree-vectorize") ++ #endif ++#endif ++ + #include "config_components.h" + + #include "avcodec.h" diff --git a/modules/packages/desktop.nix b/modules/packages/desktop.nix index abcc227c..727a9cd4 100644 --- a/modules/packages/desktop.nix +++ b/modules/packages/desktop.nix @@ -64,7 +64,7 @@ inputs: # virtualization virt-viewer bottles wineWowPackages.stagingFull genymotion playonlinux # media - nur-xddxdd.svp + svp # for kdenlive auto subtitle openai-whisper # daily management diff --git a/modules/packages/extra.nix b/modules/packages/extra.nix index 894bb867..a06b584b 100644 --- a/modules/packages/extra.nix +++ b/modules/packages/extra.nix @@ -8,12 +8,12 @@ inputs: [ ventoy-full davinci-resolve - fluffychat signal-desktop qq nur-xddxdd.wechat-uos-sandboxed cinny-desktop hexchat halloy + fluffychat signal-desktop qq cinny-desktop hexchat halloy appflowy notion-app-enhanced joplin-desktop logseq obsidian code-cursor warp-terminal rustdesk-flutter yubikey-manager-qt yubikey-personalization-gui electrum jabref john crunch - nur-xddxdd.baidupcs-go wgetpaste onedrive onedrivegui rclone + wgetpaste onedrive onedrivegui rclone ]; programs = {