lol

Merge pull request #202265 from SuperSamus/bottles

Fixes https://github.com/NixOS/nixpkgs/issues/203051

authored by

Sandro and committed by
GitHub
2dea0f4c bf76dcab

+165 -47
+13 -33
pkgs/applications/misc/bottles/default.nix
··· 14 14 , gtk4 15 15 , gtksourceview5 16 16 , libadwaita 17 - , steam 18 17 , cabextract 19 18 , p7zip 20 19 , xdpyinfo 21 20 , imagemagick 21 + , lsb-release 22 + , pciutils 22 23 , procps 23 24 , gamescope 24 25 , mangohud 26 + , vkbasalt-cli 25 27 , vmtouch 26 - , wine 27 - , bottlesExtraLibraries ? pkgs: [ ] # extra packages to add to steam.run multiPkgs 28 - , bottlesExtraPkgs ? pkgs: [ ] # extra packages to add to steam.run targetPkgs 29 28 }: 30 - 31 - let 32 - steam-run = (steam.override { 33 - # required by wine runner `caffe` 34 - extraLibraries = pkgs: with pkgs; [ libunwind libusb1 gnutls ] 35 - ++ bottlesExtraLibraries pkgs; 36 - extraPkgs = pkgs: [ ] 37 - ++ bottlesExtraPkgs pkgs; 38 - }).run; 39 - in 40 29 python3Packages.buildPythonApplication rec { 41 - pname = "bottles"; 42 - version = "2022.10.14.1"; 30 + pname = "bottles-unwrapped"; 31 + version = "2022.11.14"; 43 32 44 33 src = fetchFromGitHub { 45 34 owner = "bottlesdevs"; 46 - repo = pname; 35 + repo = "bottles"; 47 36 rev = version; 48 - sha256 = "sha256-FO91GSGlc2f3TSLrlmRDPi5p933/Y16tdEpX4RcKhL0="; 37 + sha256 = "sha256-bigrJtqx9iZURYojwxlGe7xSGWS13wSaGcrTTROP9J8="; 49 38 }; 50 39 51 40 patches = [ ./vulkan_icd.patch ]; 52 - 53 - postPatch = '' 54 - chmod +x build-aux/meson/postinstall.py 55 - patchShebangs build-aux/meson/postinstall.py 56 - 57 - substituteInPlace bottles/backend/wine/winecommand.py \ 58 - --replace \ 59 - "command = f\"{runner} {command}\"" \ 60 - "command = f\"{''' if runner == 'wine' or runner == 'wine64' else '${steam-run}/bin/steam-run '}{runner} {command}\"" \ 61 - --replace \ 62 - "command = f\"{_picked['entry_point']} {command}\"" \ 63 - "command = f\"${steam-run}/bin/steam-run {_picked['entry_point']} {command}\"" 64 - ''; 65 41 66 42 nativeBuildInputs = [ 67 43 blueprint-compiler ··· 101 77 p7zip 102 78 xdpyinfo 103 79 imagemagick 104 - procps 80 + vkbasalt-cli 105 81 106 82 gamescope 107 83 mangohud 108 84 vmtouch 109 - wine 85 + 86 + # Undocumented (subprocess.Popen()) 87 + lsb-release 88 + pciutils 89 + procps 110 90 ]; 111 91 112 92 format = "other";
+101
pkgs/applications/misc/bottles/fhsenv.nix
··· 1 + { lib 2 + , buildFHSUserEnvBubblewrap 3 + , symlinkJoin 4 + , bottles-unwrapped 5 + , extraPkgs ? pkgs: [ ] 6 + , extraLibraries ? pkgs: [ ] 7 + }: 8 + 9 + let fhsEnv = { 10 + targetPkgs = pkgs: with pkgs; [ 11 + bottles-unwrapped 12 + vkbasalt 13 + ] ++ extraPkgs pkgs; 14 + 15 + multiPkgs = 16 + let 17 + xorgDeps = pkgs: with pkgs.xorg; [ 18 + libpthreadstubs 19 + libSM 20 + libX11 21 + libXaw 22 + libxcb 23 + libXcomposite 24 + libXcursor 25 + libXdmcp 26 + libXext 27 + libXi 28 + libXinerama 29 + libXmu 30 + libXrandr 31 + libXrender 32 + libXv 33 + libXxf86vm 34 + ]; 35 + in 36 + pkgs: with pkgs; [ 37 + # https://wiki.winehq.org/Building_Wine 38 + alsa-lib 39 + cups 40 + dbus 41 + fontconfig 42 + freetype 43 + glib 44 + gnutls 45 + libglvnd 46 + gsm 47 + gst_all_1.gstreamer 48 + gst_all_1.gst-plugins-base 49 + libgphoto2 50 + libjpeg_turbo 51 + libkrb5 52 + libpcap 53 + libpng 54 + libpulseaudio 55 + libtiff 56 + libunwind 57 + libusb1 58 + libv4l 59 + libxml2 60 + mpg123 61 + ocl-icd 62 + openldap 63 + samba4 64 + sane-backends 65 + SDL2 66 + udev 67 + vulkan-loader 68 + 69 + # https://www.gloriouseggroll.tv/how-to-get-out-of-wine-dependency-hell/ 70 + alsa-plugins 71 + dosbox 72 + giflib 73 + gtk3 74 + libva 75 + libxslt 76 + ncurses 77 + openal 78 + 79 + # Steam runtime 80 + libgcrypt 81 + libgpg-error 82 + p11-kit 83 + zlib # Freetype 84 + ] ++ xorgDeps pkgs 85 + ++ extraLibraries pkgs; 86 + }; 87 + in 88 + symlinkJoin { 89 + name = "bottles"; 90 + paths = [ 91 + (buildFHSUserEnvBubblewrap (fhsEnv // { name = "bottles"; runScript = "bottles"; })) 92 + (buildFHSUserEnvBubblewrap (fhsEnv // { name = "bottles-cli"; runScript = "bottles-cli"; })) 93 + ]; 94 + postBuild = '' 95 + mkdir -p $out/share 96 + ln -s ${bottles-unwrapped}/share/applications $out/share 97 + ln -s ${bottles-unwrapped}/share/icons $out/share 98 + ''; 99 + 100 + inherit (bottles-unwrapped) meta; 101 + }
+7 -5
pkgs/applications/misc/bottles/vulkan_icd.patch
··· 1 1 diff --git a/bottles/backend/utils/vulkan.py b/bottles/backend/utils/vulkan.py 2 - index 6673493..07f70d1 100644 2 + index 6673493..9191004 100644 3 3 --- a/bottles/backend/utils/vulkan.py 4 4 +++ b/bottles/backend/utils/vulkan.py 5 - @@ -29,6 +29,8 @@ class VulkanUtils: 5 + @@ -28,7 +28,9 @@ class VulkanUtils: 6 + "/usr/share/vulkan", 6 7 "/etc/vulkan", 7 8 "/usr/local/share/vulkan", 8 - "/usr/local/etc/vulkan" 9 - + "/run/opengl-driver/share/vulkan/", 10 - + "/run/opengl-driver-32/share/vulkan/", 9 + - "/usr/local/etc/vulkan" 10 + + "/usr/local/etc/vulkan", 11 + + "/run/opengl-driver/share/vulkan", 12 + + "/run/opengl-driver-32/share/vulkan", 11 13 ] 12 14 if "FLATPAK_ID" in os.environ: 13 15 __vk_icd_dirs += [
+5 -4
pkgs/tools/graphics/vkBasalt/default.nix pkgs/tools/graphics/vkbasalt/default.nix
··· 8 8 , libX11 9 9 , spirv-headers 10 10 , vulkan-headers 11 - , vkBasalt32 11 + , vkbasalt32 12 12 }: 13 13 14 14 stdenv.mkDerivation rec { 15 - pname = "vkBasalt"; 15 + pname = "vkbasalt"; 16 16 version = "0.3.2.6"; 17 17 18 18 src = fetchFromGitHub { ··· 26 26 buildInputs = [ libX11 spirv-headers vulkan-headers ]; 27 27 mesonFlags = [ "-Dappend_libdir_vkbasalt=true" ]; 28 28 29 - # Include 32bit layer in 64bit build 30 29 postInstall = lib.optionalString (stdenv.hostPlatform.system == "x86_64-linux") '' 31 - ln -s ${vkBasalt32}/share/vulkan/implicit_layer.d/vkBasalt.json \ 30 + install -Dm 644 $src/config/vkBasalt.conf $out/share/vkBasalt/vkBasalt.conf 31 + # Include 32bit layer in 64bit build 32 + ln -s ${vkbasalt32}/share/vulkan/implicit_layer.d/vkBasalt.json \ 32 33 "$out/share/vulkan/implicit_layer.d/vkBasalt32.json" 33 34 ''; 34 35
+31
pkgs/tools/graphics/vkbasalt-cli/default.nix
··· 1 + { lib 2 + , python3Packages 3 + , fetchFromGitLab 4 + , vkbasalt 5 + }: 6 + 7 + python3Packages.buildPythonApplication rec { 8 + pname = "vkbasalt-cli"; 9 + version = "3.1.1"; 10 + 11 + src = fetchFromGitLab { 12 + owner = "TheEvilSkeleton"; 13 + repo = pname; 14 + rev = "v${version}"; 15 + sha256 = "sha256-4MFqndnvwAsqyer9kMNuCZFP/Xdl7W//AyCe7n83328="; 16 + }; 17 + 18 + postPatch = '' 19 + substituteInPlace vkbasalt/lib.py \ 20 + --replace /usr ${vkbasalt} 21 + ''; 22 + 23 + pythonImportsCheck = [ "vkbasalt.lib" ]; 24 + 25 + meta = with lib; { 26 + description = "Command-line utility for vkBasalt"; 27 + homepage = "https://gitlab.com/TheEvilSkeleton/vkbasalt-cli"; 28 + license = with licenses; [ lgpl3Only gpl3Only ]; 29 + maintainers = with maintainers; [ martfont ]; 30 + }; 31 + }
+1
pkgs/top-level/aliases.nix
··· 1567 1567 virtmanager = virt-manager; # Added 2019-10-29 1568 1568 virtmanager-qt = virt-manager-qt; # Added 2019-10-29 1569 1569 virtviewer = throw "'virtviewer' has been renamed to/replaced by 'virt-viewer'"; # Converted to throw 2022-02-22 1570 + vkBasalt = vkbasalt; # Added 2022-11-22 1570 1571 vnc2flv = throw "vnc2flv has been removed: abandoned by upstream"; # Added 2022-03-21 1571 1572 vorbisTools = throw "'vorbisTools' has been renamed to/replaced by 'vorbis-tools'"; # Converted to throw 2022-02-22 1572 1573 vtun = throw "vtune has been removed as it's unmaintained upstream"; # Added 2021-10-29
+7 -5
pkgs/top-level/all-packages.nix
··· 12652 12652 12653 12653 vix = callPackage ../tools/misc/vix { }; 12654 12654 12655 - vkBasalt = callPackage ../tools/graphics/vkBasalt { 12656 - vkBasalt32 = pkgsi686Linux.vkBasalt; 12655 + vkbasalt = callPackage ../tools/graphics/vkbasalt { 12656 + vkbasalt32 = pkgsi686Linux.vkbasalt; 12657 12657 }; 12658 + 12659 + vkbasalt-cli = callPackage ../tools/graphics/vkbasalt-cli { }; 12658 12660 12659 12661 vkmark = callPackage ../tools/graphics/vkmark { }; 12660 12662 ··· 27750 27752 27751 27753 bonzomatic = callPackage ../applications/editors/bonzomatic { }; 27752 27754 27753 - bottles = callPackage ../applications/misc/bottles { 27754 - wine = null; 27755 - }; 27755 + bottles = callPackage ../applications/misc/bottles/fhsenv.nix { }; 27756 + 27757 + bottles-unwrapped = callPackage ../applications/misc/bottles { }; 27756 27758 27757 27759 brave = callPackage ../applications/networking/browsers/brave { }; 27758 27760