Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

winePackages.{stable,unstable,staging}: * -> 9.0; winetricks: 20230212 -> 20240105 #281905

Merged
merged 5 commits into from
Jan 25, 2024

Conversation

SFrijters
Copy link
Member

Description of changes

https://gitlab.winehq.org/wine/wine/-/releases/wine-9.0

Includes #279064 for convenience.

I haven't fully tested this yet; so far winePackages.staging builds on x86_64-linux.

Closes #281752

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

Add a 👍 reaction to pull requests you find important.

@SFrijters
Copy link
Member Author

Do we want to act on

"The new WoW64 mode is not yet enabled by default. It can be enabled by passing the --enable-archs=i386,x86_64 option to configure. This is expected to work for most applications, but there are still some limitations, in particular:

  • Lack of support for 16-bit code.
  • Reduced OpenGL performance and lack of ARB_buffer_storage extension"
    support.

@nyabinary
Copy link
Contributor

Do we want to act on

"The new WoW64 mode is not yet enabled by default. It can be enabled by passing the --enable-archs=i386,x86_64 option to configure. This is expected to work for most applications, but there are still some limitations, in particular:

* Lack of support for 16-bit code.

* Reduced OpenGL performance and lack of ARB_buffer_storage extension"
  support.

In my opinion, yes, it seems worth the tradeoffs.

@kirillrdy
Copy link
Member

kirillrdy commented Jan 18, 2024

The new WoW64 mode is not yet enabled by default.

we can make it an option ?

@wegank
Copy link
Member

wegank commented Jan 19, 2024

We already have wineWow64Packages, don't we?

wineWow64 = callPackage ./base.nix {
pname = "wine-wow64";
inherit src version supportFlags patches moltenvk;
pkgArches = [ pkgs ];
mingwGccs = with pkgsCross; [ mingw32.buildPackages.gcc mingwW64.buildPackages.gcc ];
geckos = [ gecko64 ];
monos = [ mono ];
configureFlags = [ "--enable-archs=x86_64,i386" ];
platforms = [ "x86_64-linux" "x86_64-darwin" ];
mainProgram = "wine";
};

@kirillrdy
Copy link
Member

Right, so we don't need to do anything 😄

@SFrijters
Copy link
Member Author

SFrijters commented Jan 19, 2024

Result of nixpkgs-review pr 281905 run on x86_64-linux 1

3 packages failed to build:
  • airwave
  • vinegar
  • wineWow64Packages.minimal
36 packages built:
  • exactaudiocopy
  • grapejuice
  • grapejuice.dist
  • pipelight
  • playonlinux
  • protontricks
  • protontricks.dist
  • q4wine
  • synthesia
  • vkd3d
  • vkd3d-proton
  • winbox
  • wine (winePackages.stableFull ,winePackages.unstableFull)
  • wine-staging (winePackages.stagingFull)
  • wine64 (wine64Packages.stableFull ,wine64Packages.unstableFull)
  • wine64Packages.base (wine64Packages.stable ,wine64Packages.unstable)
  • winePackages.fonts (wine64Packages.fonts ,wineWow64Packages.fonts ,wineWowPackages.fonts)
  • wine64Packages.minimal
  • wine64Packages.staging
  • wine64Packages.stagingFull
  • winePackages.base (winePackages.stable ,winePackages.unstable)
  • winePackages.minimal
  • winePackages.staging
  • wineWow64Packages.base (wineWow64Packages.stable ,wineWow64Packages.unstable)
  • wineWow64Packages.full (wineWow64Packages.stableFull ,wineWow64Packages.unstableFull)
  • wineWow64Packages.staging
  • wineWow64Packages.stagingFull
  • wineWowPackages.base (wineWowPackages.stable ,wineWowPackages.unstable)
  • wineWowPackages.full (wineWowPackages.stableFull ,wineWowPackages.unstableFull)
  • wineWowPackages.minimal
  • wineWowPackages.staging
  • wineWowPackages.stagingFull
  • wineasio
  • winetricks
  • yabridge
  • yabridgectl

Build failures:

configure: error: MinGW x86_64 compiler not found.
This is an error since --enable-archs=x86_64 was requested.

@SFrijters
Copy link
Member Author

Result of nixpkgs-review pr 281905 run on x86_64-linux 1

1 package failed to build:
  • vinegar
38 packages built:
  • airwave
  • exactaudiocopy
  • grapejuice
  • grapejuice.dist
  • pipelight
  • playonlinux
  • protontricks
  • protontricks.dist
  • q4wine
  • synthesia
  • vkd3d
  • vkd3d-proton
  • winbox
  • wine (winePackages.stableFull ,winePackages.unstableFull)
  • wine-staging (winePackages.stagingFull)
  • wine64 (wine64Packages.stableFull ,wine64Packages.unstableFull)
  • wine64Packages.base (wine64Packages.stable ,wine64Packages.unstable)
  • winePackages.fonts (wine64Packages.fonts ,wineWow64Packages.fonts ,wineWowPackages.fonts)
  • wine64Packages.minimal
  • wine64Packages.staging
  • wine64Packages.stagingFull
  • winePackages.base (winePackages.stable ,winePackages.unstable)
  • winePackages.minimal
  • winePackages.staging
  • wineWow64Packages.base (wineWow64Packages.stable ,wineWow64Packages.unstable)
  • wineWow64Packages.full (wineWow64Packages.stableFull ,wineWow64Packages.unstableFull)
  • wineWow64Packages.minimal
  • wineWow64Packages.staging
  • wineWow64Packages.stagingFull
  • wineWowPackages.base (wineWowPackages.stable ,wineWowPackages.unstable)
  • wineWowPackages.full (wineWowPackages.stableFull ,wineWowPackages.unstableFull)
  • wineWowPackages.minimal
  • wineWowPackages.staging
  • wineWowPackages.stagingFull
  • wineasio
  • winetricks
  • yabridge
  • yabridgectl

@Amanse
Copy link
Contributor

Amanse commented Jan 19, 2024

https://bugs.winehq.org/show_bug.cgi?id=55604 so we may need to modify the patch if we want to keep it @nyanbinary

small typo in username, @nyabinary is the correct one

@nyabinary
Copy link
Contributor

nyabinary commented Jan 19, 2024

Yeah the patches need to be updated for Wine 9.0 for Vinegar. (The patch is required for Roblox to run properly which is why we need it in the first place, to clarify.)

@nyabinary
Copy link
Contributor

Also isn't Wayland support in mainline Wine 9.0 now? (Just disabled by default though)

@Amanse
Copy link
Contributor

Amanse commented Jan 19, 2024

Also isn't Wayland support in mainline Wine 9.0 now? (Just disabled by default though)

yes, just need to add one registry entry in your prefix, no compile step or anything needed

@SFrijters
Copy link
Member Author

small typo in username

Oops, I used the maintainer attribute from the package.nix file directly, but the actual GitHub username is different.

@SuperSamus
Copy link
Contributor

no compile step or anything needed

It does need a few extra dependencies, though, which here are added only if the supportFlag waylandSupport is true.
Looking at the code, it is enabled only with wine-wayland, which is an old fork of Wine. This means that it's disabled on regular Wine (full supportFlags don't enable it).

(Thinking about it, is there any point on still having wine-wayland?)

@SFrijters
Copy link
Member Author

Is the latest commit I added a step in the right direction w.r.t. wayland?

@Amanse
Copy link
Contributor

Amanse commented Jan 19, 2024

which here are added only if the supportFlag waylandSupport is true.

ah yes, that makes sense, but it does compile without adding any extra dependency, i only changed source and it worked, did not check if wayland was working on the result, probably should check that

(Thinking about it, is there any point on still having wine-wayland?)

not really, will it even be updated now?

@SuperSamus
Copy link
Contributor

SuperSamus commented Jan 19, 2024

I'd say that it's better to add waylandSupport = true to the full set, instead of having a dedicated wine-wayland package only for it. (Consider that the user also has to make some registry edits, it's something that is intentionally hidden. Making a dedicated package makes no sense, IMO)

Then, when it'll be more stable, it could be supported by base as well (or even right now, if it doesn't make the derivation significant bigger).

(BTW, relevant discussion on Arch)

@SuperSamus
Copy link
Contributor

SuperSamus commented Jan 19, 2024

Also, the extra packages for Wayland are:
https://github.com/NixOS/nixpkgs/blob/21ab626da4ecc7ee570c32ff51f2690bf1ba18be/pkgs/applications/emulators/wine/base.nix#L102-L105

That was for wine-wayland, are all of them still needed?

@Amanse
Copy link
Contributor

Amanse commented Jan 19, 2024

Then, when it'll be more stable, it could be supported by base as well (or even right now, if it doesn't make the derivation significant bigger).

Doing it right now seems fine, it is available in the base package in every other distro anyway

other distros being the distros where Wine gives official binary like debian,ubuntu and fedora

@Amanse
Copy link
Contributor

Amanse commented Jan 19, 2024

are all of them still needed?

wine docs haven't updated yet on winehq but the patches in wine were from the same dev, so proobably? otherwise will need to compile and check

@SFrijters
Copy link
Member Author

As I'm not a wayland user myself I propose to leave that particular cleanup out of this update and someone can make a followup for that? Or someone can add an update to this - I've stripped my proposed wayland change.

@Amanse
Copy link
Contributor

Amanse commented Jan 19, 2024

I am trying to compile right now, changes that should be made according to me

  • waylandSupport flag set same as x11Support
  • not adding the -wayland prefix based on the supportFlag

Will it be better to remove wayland sources now all together or should they be kept to make a seperate wayland package?

Will report back with the results of compiling

edit: still compiling lol

@Amanse
Copy link
Contributor

Amanse commented Jan 19, 2024

It compiles, i can put the commit in this PR if that is okay, although since it also removes the -wayland package maybe it should be different? or should that package stay?

@nyabinary
Copy link
Contributor

Could we make wine-staging support overrideAttrs with this too?

isn't that possible with overlays?

wine-staging supports & uses overrideDerivation not overrideAttrs currently:

(lib.overrideDerivation wineUnstable (self: {

did anyone do this btw?

@Amanse
Copy link
Contributor

Amanse commented Feb 16, 2024

i tried with 9.1 but 9.1 has some patch mismatch (regardless of overrideDerivation or overrideAttrs) and wasn't compiling for me

@reckenrode
Copy link
Contributor

reckenrode commented Feb 16, 2024

I can do it with my Darwin cleanup. I use wine-staging in another derivation and need to add the msync patch. The lack of overrideAttrs is a bit painful. I’ll try to get something out next week regardless of the status of the overrideSDK changes.

@nyabinary
Copy link
Contributor

nyabinary commented Feb 16, 2024

I can do it with my Darwin cleanup. I use wine-staging in another derivation and need to add the msync patch. The lack of overrtideAttrs is a bit painful. I’ll try to get something out next week regardless of the status of the overrideSDK changes.

Nice, keep me posted! :3

coreyoconnor pushed a commit to coreyoconnor/nixpkgs that referenced this pull request Feb 26, 2024
winePackages.{stable,unstable,staging}: * -> 9.0; winetricks: 20230212 -> 20240105
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Update request: wine 8.0.2 → 9.0
9 participants