Code Monkey home page Code Monkey logo

applications's Introduction

Winepak Applications

A collection of flatpak manifest for building Microsoft Windows applications with Wine via flatpak.

Instructions

Remember run all flatpak commands as a user, root and sudo are not needed.

Sdk & Platform

First you need to build and install the winepak Sdk & Platform. You can do so at winepak/winepak-sdk-images.

Some applications use the stable branch of winepak (which uses stable wine) while others use the staging branch of winepak (which uses wine-staging). Build the branches you'll need.

Building an application

Now with the runtime installed we can build an application with wine. Flatpak will default the build to the systems arch, x86_64 = 64bit and i386 = 32bit. You can specify the arch by passing --arch=ARCH, remove this flag if you don't need it.

To build an application like tld.domain.Application we have two build options.

Repo

The repo version exports the build to a repo, in this case winepak. You then need to install the application via the local repo.

flatpak-builder --arch=ARCH --force-clean --repo=winepak builds tld.domain.Application/tld.domain.Application.yml

Now to install simple run the application. Remember if you don't build the application with a GPG key then you will be forced to install the application with --user.

flatpak install winepak tld.domain.Application

Direct

The direct method allows you to install a build directly from source without the need of a repo, this is done by running:

flatpak-builder --user --arch=ARCH --force-clean --install builds tld.domain.Application/tld.domain.Application.yml

Run the application

As easy as:

flatpak run tld.domain.Application

applications's People

Contributors

asciiwolf avatar cpba avatar julianrichen avatar mq1 avatar udev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

applications's Issues

Add osu!

I think there needs to be a .NET template in the runtimes repo for this though.

Notepad++ - X Error - X_ShmPutImage failed request

X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 130 (MIT-SHM)
Minor opcode of failed request: 3 (X_ShmPutImage)
Value in failed request: 0x460
Serial number of failed request: 2682
Current serial number in output stream: 2698

StarCraft 2 Winepak - Not Saving Games

Not sure what type of issue this might be, but I was playing the StarCraft 2 Winepak as featured here, playing in Campaign (haven't tried multi-player yet), and I had to save my game because I couldn't finish a campaign mission in one sitting. I saved it through the menu and even verified through the load game menu that the saved data was there, waiting. Although, after opening the game up again, the saved data is no longer there and I have to start from the beginning on that campaign mission! Is there any solution to this?

Typical error with paths

wine54 \"C:/Games/World_of_Tanks/WoTLauncher.exe\" is bad 'cause wine extreme badly handle the local dlls.

The right way is 'cd /path/to/game && wine game.exe.'

Add Navicat products

Navicat offer a number of database products0 for Windows, macOS and Linux. Their 'Linux' clients are just the Windows GUI with Wine, although an old version (2.0.1 as of now).

info.cemu.Cemu doesn't load games

Nothing happens after trying to load a game with cemu, the window is unchanged, except for the "load" option being greyed out.

The only error messages shown in terminal are the following:

wine: Call from 0x7b44b1c7 to unimplemented function msvcp140.dll.?_Syserror_map@std@@YAPEBDH@Z, aborting
wine: Unimplemented function msvcp140.dll.?_Syserror_map@std@@YAPEBDH@Z called at address 0x7b44b1c7 (thread 002d), starting debugger...
Can't attach process 002c: error 5

This is shown upon loading cemu, it doesn't show any further output after trying to load a game.

Add Fortnite Battle Royal

This issues tracks support for Fortnite, and more specifically the Battle Royal mode.

A manifest currently exists in the master branch, however, is blocked for two reasons:

  1. Can't install Epic Games Launcher
  2. Fortnite Battle Royal is known to fail on wine due to Battleye Anti-cheat

For issue 1 the WineHQ tracker says it's possible to install the launcher but I was unable to reproduce. Epic's support site claims the need for d3dx9, vcrun2010, vcrun2012, vcrun2013, and vcrun2015. In my own tests and with the vrcun20* extensions added with winepak/winepak-sdk@cbe1f6e I was still not able to launch the game.

Battleye support may change in the future so it would be nice to get a working manifest, even if users can't play atm.

Base Battle.Net app error

I tried installing the base Battle.net app to test it. Unfortunately It didn't work. Here are the logs:

$ flatpak run com.blizzard.BattleNet.BaseApp
# Huge logs that I ommit because they should be irrelevant ...
# Relevant part below:
Create Battle.net config
Installing application...
<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="http://www.blizzard.com/404">here</a>.</h2>
</body></html>
GIF89a��Ç    ,����D�;<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="http://www.blizzard.com/404">here</a>.</h2>
</body></html>
GIF89a��Ç    ,����D�;<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="http://www.blizzard.com/404">here</a>.</h2>
</body></html>
GIF89a��Ç    ,����D�;<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="http://www.blizzard.com/404">here</a>.</h2>
</body></html>
GIF89a��Ç    ,����D�;wine: cannot find L"C:\\windows\\system32\\winemenubuilder.exe"
GIF89a��Ç    ,����D�;<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="http://www.blizzard.com/404">here</a>.</h2>
</body></html>
wine: Call from 0x7b43c35c to unimplemented function msvcp140.dll.?uncaught_exceptions@std@@YAHXZ, aborting
Delete SystemSurvey.exe...
Delete Battle.net Helper.exe...
$

In particular the wine: cannot find L"C:\\windows\\system32\\winemenubuilder.exe" error is the same as when trying to use the starcraft2 flaptak #23 .

Additionally wine says that it didn't find a required dll:

bnet-error

Cause again may be the nvidia card.

Pak Request: Diablo II: Lord of Destruction

Lately I have been having more trouble than usual on certain machines with wine and D2, where my screen will go out of sync when the game changes resolution. I eventually used the custom Diablo II glidewrapper files with "-3dfx" added to the wine command which fixed the problem. If anybody is willing to give packaging this a chance, all you should need is the glidewrapper version for D2 to get the game to function. You may need to mess with a few winetricks to get battlenet working but I think it's comctl32 that you need for that.

I may try building it myself if I can wrap my head around how to properly build flatpaks.
Thanks

Fortnite not available in repo

Fortnite is not available in the repo.
Here is the output of flatpak remote-ls winepak:
Ref com.blizzard.Overwatch com.blizzard.WoW com.leagueoflegends.Client com.oskarstalberg.Planet com.pathofexile.Client com.worldoftanks.Client info.cemu.Cemu org.notepad_plus_plus.Notepad-plus-plus org.winepak.Platform org.winepak.Platform.Compat32 org.winepak.Platform.Extension.corefonts org.winepak.Platform.Extension.d3dx9 org.winepak.Platform.Extension.msls31 org.winepak.Platform.Extension.vcrun2010 org.winepak.Platform.Extension.vcrun2012 org.winepak.Platform.Extension.vcrun2013 org.winepak.Platform.Extension.vcrun2015 org.winepak.Platform.Wine org.winepak.Platform.Wine.Compat32 org.winepak.Sdk

I have directly tried using flatpak install winepak com.epicgames.Fortnite but I get: error: Error searching remote winepak: Can't find ref com.epicgames.Fortnite.
I am using Flatpak 0.10.4 installed from the repo on Fedora 27 x86_64

[Overwatch] Unable to create graphics context

When starting Overwatch, after logging in, I get the message 'unable to create graphics context'
Changing graphics acceleration option in the settings doesn't change the error.
Output:
~> flatpak run com.blizzard.Overwatch
wine: cannot find L"C:\\windows\\system32\\winemenubuilder.exe"
wine: Unhandled exception 0xc0000417 in thread 6c at address 0x523586 (thread 006c), starting debugger...
wine: Unhandled exception 0x80000003 in thread f6 at address 0x130d60d3 (thread 00f6), starting debugger...

If I can provide any additional information please let me know.

nodepad++ font is ugly

First of all, thank you for developing winepak application platform. I installed org.notepad_plus_plus.Notepad-plus-plus unfortunately font rendering is primitive and ugly. I also installed org.winepak.Platform.Extension.corefonts hoping that it would fix it but nothing changed.
How do we apply anti-alising for application fonts?

Opera 32 bit

Hey yo!

Could you add Opera 32 bit Windows version to Winepak? I really need that in my notebook which has 32 architecture.

Adobe CS2/CC Apps

This is pretty much the only thing that keeps a lot of people away (especially, premiere and after effects). Since these do now work under flatpak, would it be possible to bundle them?

watch and learn from the scripts on lutris.net

https://lutris.net/ is a project providing community written scripts to set up wine environments fitting for games. I would say this platform has the major part of the up-to-date wine-gaming community.

You could have a look at those scripts and try to fill your applications with this existing information.

com.leagueoflegends.Client

  • Client - works.
  • Game - crash on start.

ERROR log string:

000001.718|  ERROR| Missing file on r3dGFile open :C:/Riot Games/League of Legends/RADS/solutions/lol_game_client_sln/releases/0.0.1.219/deploy/Data/Menu/IMEConfig.xml
000001.718|  ERROR| Missing file on r3dGFile open :\Bin\Data\C:/Riot Games/League of Legends/RADS/solutions/lol_game_client_sln/releases/0.0.1.219/deploy/Data/Menu/IMEConfig.xml

Add MagicaVoxel

Hello, would it be possible to add MagicaVoxel?
It's a free software that let us make some voxel creations.
Thanks!

App Magic: The Gathering Arena

Rated "Gold" on WIneHQ for last close-beta version even if setup is not straightforward.
Could winepak simplify the process?

[com.blizzard.Overwatch] Game crashes after short period

With commit 60885ed Overwath now "works", however, it will sometimes crash after a short while of playing a game. In fact it's so bad it can lock-up the desktop.

Commit 60885ed "fixed" Overwatch by using the --devel flag, however, --devel tells flatpak to use the Sdk instead of the Runtime and allows some system calls. Overwatch really shound't need these options and I believe it's the cause of the issue.

This issue tracks progress for removing --devel and fixing the crashes.

Unified winetricks cache directory

Currently winetricks downloads it's cache to each games cache dir, eg. $HOME/.var/app/tld.domain.Application/cache/winetricks.

It would save diskspace and bandwidth to download to a generic Platform/Sdk cache dir. I briefly looked over changing the winetricks cache dir but it wouldn't listen to me. Might have been doing wrong, need to revisit.

winetricks is inconsistent

winetricks seems to act very inconsistent in a number of the installers. Sometimes 32bit wine freaks out and breaks in 64bit prefix, and other times it doesn't. For example running winetricks --unattended d3dx9 will sometimes produce a return error of 1 with:

$ winetricks --unattended d3dx9
....
Executing wine regedit /S C:\windows\Temp\_d3dx9\override-dll.reg
wine: '/home/julian/.var/app/tld.domain.Application/data/wine-win64' is a 64-bit installation, it cannot be used with a 32-bit wineserver.
------------------------------------------------------
Note: command wine regedit /S C:\windows\Temp\_d3dx9\override-dll.reg returned status 1. Aborting.
------------------------------------------------------

While other times it works fine:

$ winetricks --unattended d3dx9
....
Executing wine regedit /S C:\windows\Temp\_d3dx9\override-dll.reg
Executing wine64 regedit /S C:\windows\Temp\_d3dx9\override-dll.reg
Using native override for following DLLs: d3dx9_31 d3dx9_32 d3dx9_33 d3dx9_34 d3dx9_35 d3dx9_36 d3dx9_37
Executing wine regedit /S C:\windows\Temp\_d3dx9\override-dll.reg
Executing wine64 regedit /S C:\windows\Temp\_d3dx9\override-dll.reg
Using native override for following DLLs: d3dx9_38 d3dx9_39 d3dx9_40 d3dx9_41 d3dx9_42 d3dx9_43
Executing wine regedit /S C:\windows\Temp\_d3dx9\override-dll.reg
Executing wine64 regedit /S C:\windows\Temp\_d3dx9\override-dll.reg

Simply deleting the /home/julian/.var/app/tld.domain.Application/data/wine-win64 directory and re-running the installer fixes it. Considering that flatpak is fairly reproducible this is probably an issue with winetricks.

It might be the way winetricks picks-up the platform type (Unix or Windows). Maybe I'm not setting a variable correctly before running?


Edit: I hate to duplicate work but I did play around with having winetricks equivalent installers as extensions to the Platform. So if you need d3dx9 you include org.winepak.Platform.Extension.d3dx9 with your manifest. Benefits also include data (like dlls, exes, fonts, etcs..) being pre-downloaded in a central place and during download process from the flatpak repo instead of during the installer. Tighter integration with flatpak and all that...

Not sure if it's the right way but might offer a better experience... need to experiment again now that I have a better understanding of extensions in flatpak.

[com.leagueoflegends.Client] Device does not support Pixel Shader 2.0

Well, that's weird, a previous flatpak of mine (archived, most of it is at the PR I've made, you can still see here worked out just fine.

There was a couple of changes since the day i've used my older flatpak, these include:

  • Wine update (wine does seem to break the game sometimes after an update, will try 3.8 tomorrow)
  • The d3dx9 extension

WoW64 isn't the problem, since it doesn't work on both 32 and 64-bit.

Game log:
rr3dRenderLayer::InitDevice: Device does not support pixel shader 2.0

After a quick search, it seems to be related to DirectX.

Skyrim and Its tools?

The trickiest part of running Skyrim on Linux is having some of its mods work. Would it be a valid user case to have Mod Organizer, ENB, LOOT, and some of the most popular modding tools as extensions for Skyrim?

Unified installer script

Currently applications each have their own installer script, like so:

{
    "type": "script",
    "only-arches": ["x86_64"],
    "dest-filename": "@APPLICATION_BIN@-installer",
    "commands": [
    	"if [ -z \"$WINEPREFIX\" ] ; then",
    	"    \"No wine prefix set or is empty, abort.\"",
        "    exit 1",
        "fi",
        "",
        "if [ -e \"${WINEPREFIX}/dosdevices/c:/PATH/TO/GAME/DIRECTORY\" ] ; then",
        "    echo \"This prefix already has an exisiting '@APPLICATION_NAME@' install at ${WINEPREFIX}\"",
        "    echo \"In order to install '@APPLICATION_NAME@' you must move or delete the current prefix. \"",
        "    exit 1",
        "fi",
        "",
        "echo \"Downloading installer...\"",
        "curl --progress-bar --output \"${XDG_DATA_HOME}/cache/@[email protected]\" \"protocol://domain.tld/installer.exe\"",
        "",
        "echo \"Setting-up wine prefix...\"",
        "wineboot",
        "",
        "echo \"Installing Extension(s)...\"",
        "",
        "echo \"Performing tweak(s)...\"",
        "",
        "echo \"Installing application...\"",
        "wine64 \"${XDG_DATA_HOME}/cache/@[email protected]\"",
        "",
        "echo \"Installer finished\""
    ]
}

This is less then ideal because:

  • Duplicate installer which are nearly identical in each application
  • Duplicate installer for 64bit/32bit
  • Can't be updated easily
  • No GUI option

Regarding the GUI. Each installer normally has to download a third-party executable/installer which can't be checksum-ed since the link is for the latest installer, many windows games do this. Using apply_extra and extra-data is out of the question as updating the checksum daily would be impossible. Since the installer downloads the script in the background if users don't launch the flatpak via the terminal for the first time they won't see the download progress via curl and might assume the flatpak is not working. Adding a GUI option would launch an "Installing " window with progress and a terminal output. The GUI would be optional.

The unified installer will probably be written in Python so Tkinter could be used, so no need for an extra toolkit.

Example commands:

# Pick-up app-id, name, prefix, arch from enviroment

winepak installer init
    +- shortcut for -> winepak installer run wineboot
winepak installer download "protocol://domain.tld/installer.exe"
winepak installer extensions d3dx9,example2
winepak installer tweaks win7,example2
winepak installer run installer.exe

One line...

winepak installer --download "protocol://domain.tld/installer.exe"
                  --extensions d3dx9,example2
                  --tweaks win7,example2
                  --run installer.exe

Maybe add the ability to write the installer in a json manifest:

winepak installer manifest.json
# or...
winepak installer manifest.json

GUI option:

winepak installer --gui manifest.json
# or...
winepak installer -g manifest.json

App Microsoft Office (2010 - 2013 - 2016)

Hello,

Really enjoying winepak so far. It would be great if you could add the Microsoft Office Suite.
I am mainly using Ubuntu 18.04 and I can't make it work with PlayOnLinux.

Most apps I have found on winehq look like they're Installer Only though, not sure that will apply to flatpak correctly.

Thanks in advance.

[com.blizzard.BattleNet.BaseApp] Setup fails

  1. flatpak run com.blizzard.BattleNet.BaseApp : setup starts then fails due to a missing DLL
  2. flatpak run com.blizzard.BattleNet.BaseApp : getting this error :

This prefix already has an exisiting 'Battle.Net' install at /var/data/wine
In order to install 'Battle.Net' you must move or delete the current prefix.

  1. Event after unintalling via flatpak uninstall com.blizzard.BattleNet.BaseApp and a second setup, I'm still getting the same error

Support StarCraft2

I read about this project today at linuxuprising.com and was immediately excited! Thank you for your great work!

I would like to request packaging Starcraft2 if possible (it's the only thing I miss after I ditched windows for good).

I don't know much (anything) about developing with flatpaks (and I couldn't make startcraft on top of wine staging work when I tried) but I can help with testing and bug reports on an Optimus laptop.

AQUAD

I have read about the project and I love the idea. Hoping that the focus is not only games, I would like to propose to support AQUAD, a free and opensource (GPL) QDA software, but only available for Windows.
QDA software is very scarce in GNU/Linux, and the few products available are very expensive for students or researchers with few resources.

World of tanks do not start.

Error:

Downloading installer...
######################################################################## 100.0%
Setting-up wine prefix...
Installing Extension(s)...
/app/bin/wot-installer: line 20: /app/lib/extension/d3dx9/bin/d3dx9-install64: No such file or directory

Possible missing extension?
Edit :org.winepak.Platform.Extension.d3dx9 is missing.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.