Unverified Commit 25aeabae authored by Austin Horstman's avatar Austin Horstman Committed by GitHub
Browse files

vinegar: 1.8.1 -> 1.9.3 (#478101)

parents e7ca3b81 28266763
Loading
Loading
Loading
Loading
+87 −17
Original line number Diff line number Diff line
@@ -2,7 +2,6 @@
  lib,
  buildGoModule,
  wine64Packages,
  fetchpatch,
  fetchFromGitHub,
  glib,
  makeBinaryWrapper,
@@ -24,8 +23,18 @@
  nix-update-script,
}:
let
  # Based on wine 10.20
  kombuchaPatches = fetchFromGitHub {
    name = "kombucha";
    owner = "vinegarhq";
    repo = "kombucha";
    rev = "80f87fdbaae2a42bd66e41319054798fdf30fbe6";
    hash = "sha256-ePBJj1YyHVdlDzyE6dLVl6FMImw3SJFw04vP2o1Tk6M=";
    meta.license = lib.licenses.unfree; # No license
  };

  wine =
    (wine64Packages.staging.override {
    (wine64Packages.unstable.override {
      dbusSupport = true;
      embedInstallers = true;
      pulseaudioSupport = true;
@@ -33,7 +42,7 @@ let
      waylandSupport = true;
    }).overrideAttrs
      (oldAttrs: {
        # https://github.com/flathub/org.vinegarhq.Vinegar/blob/a3c2f1249dec9548bd870027f55edcc58343b685/wine.yml#L31-L38
        # https://github.com/vinegarhq/kombucha/blob/80f87fdbaae2a42bd66e41319054798fdf30fbe6/.github/workflows/wine.yml
        # --with-wayland is added by waylandSupport = true;
        configureFlags = oldAttrs.configureFlags or [ ] ++ [
          "--disable-tests"
@@ -42,33 +51,91 @@ let
          "--with-pulse"
          "--with-x"
          "--without-oss"
          "--without-capi"
          "--without-cups"
          "--without-gphoto"
          "--without-gssapi"
          "--without-gstreamer"
          "--without-krb5"
          "--without-netapi"
          "--without-opencl"
          "--without-pcap"
          "--without-sane"
          "--without-v4l2"
        ];

        patches = oldAttrs.patches or [ ] ++ [
          (fetchpatch {
            name = "loader-prefer-winedllpath.patch";
            url = "https://raw.githubusercontent.com/flathub/org.vinegarhq.Vinegar/3e07606350d803fa386eb4c358836a230819380d/patches/wine/loader-prefer-winedllpath.patch";
            hash = "sha256-89wnr2rIbyw490hHwckB9g1GKCXm6BERnplfwEUlNOg=";
          })
        patches =
          oldAttrs.patches or [ ]
          ++ map (name: "${kombuchaPatches}/patches/${name}") [
            /*
              We can't apply these because they have binary content:

              "0001-fonts-Add-Liberation-Sans-as-an-Arial-replacement.-v.patch"
              "0002-fonts-Add-Liberation-Serif-as-an-Times-New-Roman-rep.patch"
              "0003-fonts-Add-Liberation-Mono-as-an-Courier-New-replacem.patch"
              "0004-fonts-Add-WenQuanYi-Micro-Hei-as-a-Microsoft-Yahei-r.patch"
              "0005-Add-licenses-for-fonts-as-separate-files.patch"
            */
            "0006-winecfg-Add-staging-tab-for-CSMT.patch"
            "0007-winecfg-Add-checkbox-to-enable-disable-vaapi-GPU-dec.patch"
            "0008-winecfg-Add-checkbox-to-enable-disable-EAX-support.patch"
            "0009-winecfg-Add-checkbox-to-enable-disable-HideWineExpor.patch"
            "0010-winecfg-Add-option-to-enable-disable-GTK3-theming.patch"
            "0011-winecfg-Move-input-config-options-to-a-dedicated-tab.patch"
            "0012-winex11-Always-create-the-HKCU-configuration-registr.patch"
            "0013-winex11-Write-supported-keyboard-layout-list-in-regi.patch"
            "0014-winecfg-Add-a-keyboard-layout-selection-config-optio.patch"
            "0015-winex11-Use-the-user-configured-keyboard-layout-if-a.patch"
            "0016-winecfg-Add-a-keyboard-scancode-detection-toggle-opt.patch"
            "0017-winex11-Use-scancode-high-bit-to-set-KEYEVENTF_EXTEN.patch"
            "0018-winex11-Support-fixed-X11-keycode-to-scancode-conver.patch"
            "0019-winex11-Disable-keyboard-scancode-auto-detection-by-.patch"
            "0020-win32u-Update-the-window-client-surface-even-with-no.patch"
            "0021-wined3d-Create-release-the-window-DCs-with-the-swapc.patch"
            "0022-win32u-Avoid-a-crash-when-drawable-fails-to-be-creat.patch"
            "0023-win32u-Check-internal-drawables-before-trying-to-cre.patch"
            "0024-win32u-Update-window-state-after-setting-internal-pi.patch"
            "0025-win32u-Fix-clipping-out-of-vulkan-and-other-process-.patch"
            "0026-win32u-Don-t-set-window-pixel-format-if-drawable-cre.patch"
            "0027-win32u-Iterate-the-client-surfaces-rather-than-the-t.patch"
            "0028-wined3d-Remove-now-unnecessary-pixel-format-restorat.patch"
            "0029-wined3d-Do-not-set-context_gl-needs_set-in-wined3d_c.patch"
            "0030-wined3d-Get-rid-of-the-restore_pf-field-from-struct-.patch"
            "0031-win32u-Remove-unnecessary-drawable-flush-in-context_.patch"
            "0032-win32u-Don-t-load-bitmap-only-TTF-fonts-without-bitm.patch"
            "0033-winex11-Move-Xfixes-extension-query-to-process_attac.patch"
            "0034-winex11-Add-Xwayland-check.patch"
            "0035-winex11-Use-XFixes-to-hide-cursor-before-warping-it.patch"
            "0036-winex11-Always-ignore-MotionNotify-event-after-SetCu.patch"
            "0037-Revert-winecfg-Allow-configuring-default-MIDI-device.patch"
            "0038-wined3d-Update-the-context-DC-from-its-swapchain-if-.patch"
            "0039-wined3d-Only-invalidate-enabled-clip-planes.patch"
            "0040-wined3d-gl-Only-check-GL-context-when-accessing-onsc.patch"
            "0041-winex11-Request-drawable-presentation-explicitly-on-.patch"
            "0042-wined3d-Add-some-missing-states-to-wined3d_statebloc.patch"
            "0043-wined3d-Avoid-some-invalidation-when-the-vertex-decl.patch"
            "0044-wined3d-Avoid-some-invalidation-when-the-viewport-is.patch"
            "0045-wined3d-Avoid-some-invalidation-when-texture-states-.patch"
            "0046-wined3d-Invalidate-fog-constants-only-when-the-VS-is.patch"
            "0047-wined3d-Avoid-some-invalidation-when-render-states-a.patch"
            "0048-wined3d-gl-Split-UBOs-to-separate-chunks.patch"
            "0049-winedbg-Disable.patch"
            "0050-wine.inf-Disable-unused-services.patch"
          ];

        postInstall = ''
          cp $out/bin/wine $out/bin/wine64
        '';
      });
in
buildGoModule (finalAttrs: {
  pname = "vinegar";
  version = "1.8.1";
  version = "1.9.3";

  src = fetchFromGitHub {
    owner = "vinegarhq";
    repo = "vinegar";
    tag = "v${finalAttrs.version}";
    hash = "sha256-7rc6LKZx0OOZDedtTpHIQT4grx1FejRiVnJnVDUddy4=";
    hash = "sha256-0MNUkfhbsvOJdN89VGTuf3zHUFhimiCNuoY47V03Cgo=";
  };

  vendorHash = "sha256-TZhdwHom4DTgLs4z/eADeoKakMtyFrvVljDg4JJp7dc=";
  vendorHash = "sha256-gzy7Lw7AP1evPSDSzMQb/yzn+8uVtyk8TOBL2fjE3R8=";

  nativeBuildInputs = [
    glib
@@ -98,6 +165,9 @@ buildGoModule (finalAttrs: {

  postPatch = ''
    substituteInPlace Makefile --replace-fail 'gtk-update-icon-cache' '${lib.getExe' gtk4 "gtk4-update-icon-cache"}'
    substituteInPlace internal/config/values.go \
      --replace-fail 'return dirs.WinePath' 'return "${wine}"' \
      --replace-fail '"github.com/vinegarhq/vinegar/internal/dirs"' ""
  '';

  buildPhase = ''