···2412 };
2413 };
24142415+ ms-python.black-formatter = buildVscodeMarketplaceExtension {
2416+ mktplcRef = {
2417+ name = "black-formatter";
2418+ publisher = "ms-python";
2419+ version = "2023.4.1";
2420+ sha256 = "sha256-IJaLke0WF1rlKTiuwJHAXDQB1SS39AoQhc4iyqqlTyY=";
2421+ };
2422+ meta = with lib; {
2423+ description = "Formatter extension for Visual Studio Code using black";
2424+ downloadPage = "https://marketplace.visualstudio.com/items?itemName=ms-python.black-formatter";
2425+ homepage = "https://github.com/microsoft/vscode-black-formatter";
2426+ license = licenses.mit;
2427+ maintainers = with maintainers; [ sikmir ];
2428+ };
2429+ };
2430+2431+ ms-python.isort = buildVscodeMarketplaceExtension {
2432+ mktplcRef = {
2433+ name = "isort";
2434+ publisher = "ms-python";
2435+ version = "2023.10.1";
2436+ sha256 = "sha256-NRsS+mp0pIhGZiqxAMXNZ7SwLno9Q8pj+RS1WB92HzU=";
2437+ };
2438+ meta = with lib; {
2439+ description = "Import sorting extension for Visual Studio Code using isort";
2440+ downloadPage = "https://marketplace.visualstudio.com/items?itemName=ms-python.isort";
2441+ homepage = "https://github.com/microsoft/vscode-isort";
2442+ license = licenses.mit;
2443+ maintainers = with maintainers; [ sikmir ];
2444+ };
2445+ };
2446+2447 ms-python.python = callPackage ./ms-python.python { };
24482449 ms-python.vscode-pylance = buildVscodeMarketplaceExtension {
+1-1
pkgs/applications/emulators/yuzu/generic.nix
···110 # This changes `ir/opt` to `ir/var/empty` in `externals/dynarmic/src/dynarmic/CMakeLists.txt`
111 # making the build fail, as that path does not exist
112 dontFixCmake = true;
113- patches = [./vulkan_version.patch];
114 cmakeFlags = [
115 # actually has a noticeable performance impact
116 "-DYUZU_ENABLE_LTO=ON"
···110 # This changes `ir/opt` to `ir/var/empty` in `externals/dynarmic/src/dynarmic/CMakeLists.txt`
111 # making the build fail, as that path does not exist
112 dontFixCmake = true;
113+114 cmakeFlags = [
115 # actually has a noticeable performance impact
116 "-DYUZU_ENABLE_LTO=ON"
···1-Yuzu requires a version of Vulkan that has not yet been released as a stable Vulkan SDK. In case this patch fails, check which version Yuzu is currently using and verify that it still works with the version shipped in Nixpkgs.
2-3---- a/CMakeLists.txt
4-+++ b/CMakeLists.txt
5-@@ -314,7 +314,7 @@
6- find_package(zstd 1.5 REQUIRED)
7-8- if (NOT YUZU_USE_EXTERNAL_VULKAN_HEADERS)
9-- find_package(Vulkan 1.3.256 REQUIRED)
10-+ find_package(Vulkan 1.3.250 REQUIRED)
11- endif()
12-13- if (ENABLE_LIBUSB)
···68 ] ++ lib.optionals (stdenv.hostPlatform.useLLVM or false) [
69 "-DLLVM_ENABLE_LIBCXX=ON"
70 "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
71+ ] ++ lib.optionals ((stdenv.hostPlatform.useLLVM or false) ||
72+ (stdenv.hostPlatform.isDarwin && enableShared)) [
73+ # libcxxabi's CMake looks as though it treats -nostdlib++ as implying -nostdlib,
74+ # but that does not appear to be the case for example when building
75+ # pkgsLLVM.libcxxabi (which uses clangNoCompilerRtWithLibc).
76+ "-DCMAKE_EXE_LINKER_FLAGS=-nostdlib"
77+ "-DCMAKE_SHARED_LINKER_FLAGS=-nostdlib"
78 ] ++ lib.optionals stdenv.hostPlatform.isWasm [
79 "-DLIBCXXABI_ENABLE_THREADS=OFF"
80 "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF"
···32 ++ lib.optional stdenv.isDarwin xcbuild.xcrun;
33 buildInputs = lib.optional stdenv.hostPlatform.isDarwin libcxxabi;
3435+ env.NIX_CFLAGS_COMPILE = toString ([
36 "-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0"
37+ ] ++ lib.optionals (!haveLibc) [
38+ # The compiler got stricter about this, and there is a usellvm patch below
39+ # which patches out the assert include causing an implicit definition of
40+ # assert. It would be nicer to understand why compiler-rt thinks it should
41+ # be able to #include <assert.h> in the first place; perhaps it's in the
42+ # wrong, or perhaps there is a way to provide an assert.h.
43+ "-Wno-error=implicit-function-declaration"
44+ ]);
4546 cmakeFlags = [
47 "-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON"
···109 '' + lib.optionalString stdenv.isDarwin ''
110 substituteInPlace cmake/config-ix.cmake \
111 --replace 'set(COMPILER_RT_HAS_TSAN TRUE)' 'set(COMPILER_RT_HAS_TSAN FALSE)'
112+ '' + lib.optionalString (useLLVM && !haveLibc) ''
113 substituteInPlace lib/builtins/int_util.c \
114 --replace "#include <stdlib.h>" ""
115 substituteInPlace lib/builtins/clear_cache.c \
···124 '' + lib.optionalString (useLLVM) ''
125 ln -s $out/lib/*/clang_rt.crtbegin-*.o $out/lib/crtbegin.o
126 ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/crtend.o
127+ # Note the history of crt{begin,end}S in previous versions of llvm in nixpkg:
128+ # The presence of crtbegin_shared has been added and removed; it's possible
129+ # people have added/removed it to get it working on their platforms.
130+ # Try each in turn for now.
131+ ln -s $out/lib/*/clang_rt.crtbegin-*.o $out/lib/crtbeginS.o
132+ ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/crtendS.o
133 ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/crtbeginS.o
134 ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/crtendS.o
135 '' + lib.optionalString doFakeLibgcc ''
···254 [ "-rtlib=compiler-rt"
255 "-Wno-unused-command-line-argument"
256 "-B${targetLlvmLibraries.compiler-rt}/lib"
257+258+ # Combat "__cxxabi_config.h not found". Maybe this could be fixed by
259+ # copying these headers into libcxx? Note that building libcxx
260+ # outside of monorepo isn't supported anymore, might be related to
261+ # https://github.com/llvm/llvm-project/issues/55632
262+ # ("16.0.3 libcxx, libcxxabi: circular build dependencies")
263+ # Looks like the machinery changed in https://reviews.llvm.org/D120727.
264+ "-I${lib.getDev targetLlvmLibraries.libcxx.cxxabi}/include/c++/v1"
265 ]
266 ++ lib.optional (!stdenv.targetPlatform.isWasm) "--unwindlib=libunwind"
267 ++ lib.optional
···68 ] ++ lib.optionals (stdenv.hostPlatform.useLLVM or false) [
69 "-DLLVM_ENABLE_LIBCXX=ON"
70 "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
71+ ] ++ lib.optionals ((stdenv.hostPlatform.useLLVM or false) ||
72+ (stdenv.hostPlatform.isDarwin && enableShared)) [
73+ # libcxxabi's CMake looks as though it treats -nostdlib++ as implying -nostdlib,
74+ # but that does not appear to be the case for example when building
75+ # pkgsLLVM.libcxxabi (which uses clangNoCompilerRtWithLibc).
76+ "-DCMAKE_EXE_LINKER_FLAGS=-nostdlib"
77+ "-DCMAKE_SHARED_LINKER_FLAGS=-nostdlib"
78 ] ++ lib.optionals stdenv.hostPlatform.isWasm [
79 "-DLIBCXXABI_ENABLE_THREADS=OFF"
80 "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF"
···313 # what stdenv we use here, as long as CMake is happy.
314 cxx-headers = callPackage ./libcxx {
315 inherit llvm_meta;
0000000000000316 headersOnly = true;
317 };
318
···313 # what stdenv we use here, as long as CMake is happy.
314 cxx-headers = callPackage ./libcxx {
315 inherit llvm_meta;
316+ # Note that if we use the regular stdenv here we'll get cycle errors
317+ # when attempting to use this compiler in the stdenv.
318+ #
319+ # The final stdenv pulls `cxx-headers` from the package set where
320+ # hostPlatform *is* the target platform which means that `stdenv` at
321+ # that point attempts to use this toolchain.
322+ #
323+ # So, we use `stdenv_` (the stdenv containing `clang` from this package
324+ # set, defined below) to sidestep this issue.
325+ #
326+ # Because we only use `cxx-headers` in `libcxxabi` (which depends on the
327+ # clang stdenv _anyways_), this is okay.
328+ stdenv = stdenv_;
329 headersOnly = true;
330 };
331
···68 ] ++ lib.optionals (stdenv.hostPlatform.useLLVM or false) [
69 "-DLLVM_ENABLE_LIBCXX=ON"
70 "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
71+ ] ++ lib.optionals ((stdenv.hostPlatform.useLLVM or false) ||
72+ (stdenv.hostPlatform.isDarwin && enableShared)) [
73+ # libcxxabi's CMake looks as though it treats -nostdlib++ as implying -nostdlib,
74+ # but that does not appear to be the case for example when building
75+ # pkgsLLVM.libcxxabi (which uses clangNoCompilerRtWithLibc).
76+ "-DCMAKE_EXE_LINKER_FLAGS=-nostdlib"
77+ "-DCMAKE_SHARED_LINKER_FLAGS=-nostdlib"
78 ] ++ lib.optionals stdenv.hostPlatform.isWasm [
79 "-DLIBCXXABI_ENABLE_THREADS=OFF"
80 "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF"
···14, libXrandr
15, spirv-headers
16, vulkan-headers
017, wayland
18}:
1920let
21 robin-hood-hashing = callPackage ./robin-hood-hashing.nix {};
22-23- # Current VVL version requires a newer spirv-headers than the latest release tag.
24- # This should hopefully not be too common and the override should be removed after
25- # the next SPIRV headers release.
26- # FIXME: if this ever becomes common, figure out a way to pull revisions directly
27- # from upstream known-good.json
28- spirv-headers' = spirv-headers.overrideAttrs(_: {
29- version = "unstable-2023-04-27";
30-31- src = fetchFromGitHub {
32- owner = "KhronosGroup";
33- repo = "SPIRV-Headers";
34- rev = "7f1d2f4158704337aff1f739c8e494afc5716e7e";
35- hash = "sha256-DHOYIZQqP5uWDYdb+vePpMBaQDOCB5Pcg8wPBMF8itk=";
36- };
37-38- postPatch = "";
39- });
40in
41stdenv.mkDerivation rec {
42 pname = "vulkan-validation-layers";
43- version = "1.3.254";
4445 # If we were to use "dev" here instead of headers, the setupHook would be
46 # placed in that output instead of "out".
···51 owner = "KhronosGroup";
52 repo = "Vulkan-ValidationLayers";
53 rev = "v${version}";
54- hash = "sha256-hh/lCXSKq8xmygVsFFOGu79DvBvBPcc1l1e5wQskK7M=";
55 };
5657 nativeBuildInputs = [
···68 libffi
69 libxcb
70 vulkan-headers
071 wayland
72 ];
7374 cmakeFlags = [
75 "-DGLSLANG_INSTALL_DIR=${glslang}"
76- "-DSPIRV_HEADERS_INSTALL_DIR=${spirv-headers'}"
77 "-DROBIN_HOOD_HASHING_INSTALL_DIR=${robin-hood-hashing}"
78 "-DBUILD_LAYER_SUPPORT_FILES=ON"
79 "-DPKG_CONFIG_EXECUTABLE=${pkg-config}/bin/pkg-config"
···14, libXrandr
15, spirv-headers
16, vulkan-headers
17+, vulkan-utility-libraries
18, wayland
19}:
2021let
22 robin-hood-hashing = callPackage ./robin-hood-hashing.nix {};
00000000000000000023in
24stdenv.mkDerivation rec {
25 pname = "vulkan-validation-layers";
26+ version = "1.3.261";
2728 # If we were to use "dev" here instead of headers, the setupHook would be
29 # placed in that output instead of "out".
···34 owner = "KhronosGroup";
35 repo = "Vulkan-ValidationLayers";
36 rev = "v${version}";
37+ hash = "sha256-4kE3pkyYu6hnbv19fHhON+hI2HU4vLm31tNlp5fhndM=";
38 };
3940 nativeBuildInputs = [
···51 libffi
52 libxcb
53 vulkan-headers
54+ vulkan-utility-libraries
55 wayland
56 ];
5758 cmakeFlags = [
59 "-DGLSLANG_INSTALL_DIR=${glslang}"
60+ "-DSPIRV_HEADERS_INSTALL_DIR=${spirv-headers}"
61 "-DROBIN_HOOD_HASHING_INSTALL_DIR=${robin-hood-hashing}"
62 "-DBUILD_LAYER_SUPPORT_FILES=ON"
63 "-DPKG_CONFIG_EXECUTABLE=${pkg-config}/bin/pkg-config"
···833 kexpand = throw "kexpand awless has been dropped due to the lack of maintenance from upstream since 2017"; # Added 2022-06-01
834 keybase-go = throw "'keybase-go' has been renamed to/replaced by 'keybase'"; # Converted to throw 2022-02-22
835 keysmith = libsForQt5.kdeGear.keysmith; # Added 2021-07-14
0836 kgx = gnome-console; # Added 2022-02-19
837 kibana7-oss = throw "kibana7-oss has been removed, as the distribution is no longer provided by upstream. https://github.com/NixOS/nixpkgs/pull/114456"; # Added 2021-06-09
838 kicad-with-packages3d = kicad; # Added 2019-11-25
···833 kexpand = throw "kexpand awless has been dropped due to the lack of maintenance from upstream since 2017"; # Added 2022-06-01
834 keybase-go = throw "'keybase-go' has been renamed to/replaced by 'keybase'"; # Converted to throw 2022-02-22
835 keysmith = libsForQt5.kdeGear.keysmith; # Added 2021-07-14
836+ kfctl = throw "kfctl is broken and has been archived by upstream" ; # Added 2023-08-21
837 kgx = gnome-console; # Added 2022-02-19
838 kibana7-oss = throw "kibana7-oss has been removed, as the distribution is no longer provided by upstream. https://github.com/NixOS/nixpkgs/pull/114456"; # Added 2021-06-09
839 kicad-with-packages3d = kicad; # Added 2019-11-25