Giter VIP home page Giter VIP logo

wineskin's Introduction

Wineskin

Build Status

Wineskin is a user-friendly tool used to make ports of Microsoft Windows software to Apple's macOS/Mac OS X.

How Does It Work?

As described in the original Wineskin's website:

The ports are in the form of normal macOS application bundle wrappers. It works like a wrapper around the Windows software, and you can share just the wrappers if you choose.

Make ports/wrappers to share with others, make ports of your own open source, free, or commercial software, or just make a port for yourself! Why install and use Windows if you don’t need to?

Wineskin relies on WINE ("WINE Is Not an Emulator") under the hood:

Instead of simulating internal Windows logic like a virtual machine or emulator, Wine translates Windows API calls into POSIX calls on-the-fly, eliminating the performance and memory penalties of other methods and allowing you to cleanly integrate Windows applications into your desktop.

Quick Start

Install Carthage via Homebrew to manage the build dependencies:

$ brew install carthage

Clone the repository and build the dependencies:

$ git clone https://github.com/vitor251093/wineskin.git
$ cd wineskin/
$ carthage update

Open Wineskin.xcworkspace in Xcode and build:

$ open Wineskin.xcworkspace

Or build via the command line:

$ xcodebuild -workspace Wineskin.xcworkspace -scheme Wineskin build
$ xcodebuild -workspace Wineskin.xcworkspace -scheme "Wineskin Winery" build
$ xcodebuild -workspace Wineskin.xcworkspace -scheme WineskinLauncher build

Changes from the original project

As you may have already noticed, this is not the original Wineskin repository. This repository counts with changes to make Wineskin more stable and its source easier to maintain. Considering this, lots of changes were made in WineskinApp and WineskinLauncher, and now both of them use ObjectiveC_Extension and some new classes to perform most of their tasks.

Changes in the Wineskin App (WineskinApp)

  • The Resolution property in Info.plist should never get corrupted ((null)x24sleep0);
  • The Auto-detect GPU feature should never cause malfunction in the port;
  • The Auto-detect GPU feature should have a much bigger accuracy and detect the memory size of integrated video cards as well;
  • Enabling Mac Driver and Decorate window checkboxes should not corrupt the wrapper registry;
  • The Retina Mode can be enabled from the Screen Options window;
  • Kill Wineskin Processes should kill ALL Wineskin processes.
  • Icons can be extracted directly from exe files;
  • Images (not .icns files) should also be accepted has wrapper icons;
  • LNK files should be able to be selected as a port's run path, so Wineskin can extract the path and flags from it;
  • Winetricks installation can be silent (with no windows) so it's much faster;
  • The first Advanced tab (Configuration) should be much more simple in the first section:
    • The Windows EXE should use Wineskin syntax, including the drive and the flags, (eg. "C:/Program Files/temp.exe" --run) instead of using a macOS reference path (eg. /Program Files/temp.exe) and the flag apart (eg. --run).

Changes in the Master Wrapper (WineskinLauncher)

  • Many fixes when dealing with newest engines.
  • WineskinX11 dropped.
  • Closes processes XQuartz on exit
  • Can use XQuartz installed via macports

Roadmap of desired changes in the Master Wrapper (WineskinLauncher)

  • A different Master Wrapper for macOS 10.6 and 10.7;

Licensing

The license is kept the same as the original material as LGPL 2.1. You can find more details in the LICENSE file.

Credits

Special credits for this version go to doh123, for creating the original Wineskin [website] [code].

wineskin's People

Contributors

chrisballinger avatar fusionx86 avatar gcenx avatar kamenf avatar marnovo avatar vitor251093 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wineskin's Issues

mainRun not functional due to startExeLine.trim

NSMutableArray* flags = [[startExeLine.trim componentsSeparatedByString:@" "] mutableCopy];
[flags addObject:[wineStartInfo getWineRunFile]];

Currently this doesn't work as expected so for testing I'm doing the following;

            NSMutableArray* flags = [NSMutableArray array];
            //�TODO: Find a better way to handle this
            if ([wineStartInfo isRunWithStartExe])
            {
                startExeLine = @"start";
                [flags addObject:startExeLine];
            }
            [flags addObject:[wineStartInfo getWineRunFile]];
            [flags addObject:[wineStartInfo getProgramFlags]];

While doing the above does function, however if an executable has any spaces within its name it will fail to launch.

Edit;
Also launch flags don't work

Edit2:
I've edited the above it now launches executabled and uses flags correctly, if the executable contains spaces it still fails to launch

Edit3:
Edited the code again, now it works but seems the gecko issue might be caused by some other issue as some launches now cause programs to crash out

New Screen Options window

Something that would be really helpful is a change in the Screen Options window, in order to separate in more proper groups and categories.

-> (X11 / Mac Driver) & (Auto-detect GPU) & (Direct3D Boost) & (Gamma)
-> X11 -> (Automatic / Override) & (Color Depth)
-> X11 -> Override -> (Virtual Desktop / Normal Windows) & (Decorate Windows) & (Installer Options)
-> X11 -> Override -> Virtual Desktop -> (Fullscreen / Windowed) & (Resolution)

That would be a division which is closer to reality, and which only show/enable options when they are functional in a specific order. It would even open space to add more Mac Driver options, like the Retina Mode.

Switch Pause isn't used by the WineskinLauncher anymore.

User control over winetricks WINEDEBUG=? / or no logging unless in debugmode?

NSString *wineDebugLine = @"err+all,warn-all,fixme+all,trace-all";

I currently replaced with the following
WineDebugLine:[self.portManager plistObjectForKey:@"WINEDEBUG="];

To have more control over what's gets shown for bugs when using winetricks, or would it be better to link it to debug mode and disable all logging unless debugmode? (I did try to figure it out but it never worked so I read from the plist instead)

Winetricks installation should be silent, Not working

Winetricks runs the same as before with normal install windows.

Unlike Porting kit, I'm guessing the feature is meant to be working like Porting Kit's where winetricks is run silently without needing user input?

Release process documentation?

I've had trouble piecing together the various build products. Is this process documented anywhere? Ideally I want to automate nightly builds for Engines, Wrappers and Winery.

Default reg entries are not written on wrapper creation

When making a new wrapper, the default reg entries are not imported into the wrapper

Also when changing settings later via WineSkin or even winetricks to change from MAC to X11 the reg changes do not get saved

Even entering them manually via regedit entries are not saved

Linux version

I use macOS, but also Linux, and I really miss there something like Wineskin (i.e. an easy-to-use tool for creating self-contained wrappers).

Would it be possible to create a Linux version in the future? Maybe it could have been based on something like AppImage (see Bundling Windows applications in their wiki)?

Project modernization

Thank you very much for maintaining this project!

I would like to contribute, if the following proposal would work and is acceptable by the maintainers.

Before I start, I'd like to ask about something that's been bugging me. I've found quite a few repositories related to wineskin, and I'm not sure what are their purposes? This repo, to me it seems, is "the main" repo, containing project's source code; is it? Other repos could be found at https://github.com/Gcenx?tab=repositories, though there's also https://github.com/The-Wineskin-Project with many wineskin-related repos. I'd appreciate if someone could clarify 🙏

Additionally, there are many stale branches in this repo. As of this writing, it seems the most up-to-date active branch is Unoffical_Wineskin. Is there a reason for keeping other branches?

I'm not familiar with how wine works, and I haven't explored this project in detail to learn the magic of how it integrates wine and how things work in general. Though I have experience developing for Apple platforms, and am experienced with Objective-C and Swift.
I have analyzed the project and found quite a few issues with it; deprecated method usages, main thread blocking with long running operations, etc.
I would like to list some things I've found that I believe would be great to resolve. My ultimate goal is modernizing the project and keeping it up to date, by which I mean potentially moving to Swift, and one day, who knows, maybe SwiftUI for UI. I'm eager to hear what others think.

Before I continue: I haven't even been able to successfully run all the apps in this project (I did some, but had to resolve some compilation issues), but I was so hyped about improving it that I wanted to create this issue. I'd obviously need help from experienced maintainers during this process, foremost to learn about the internals.

  • ObjectiveC-Extensions
    • This is the only library installed through a dependency manager, and if I'm not mistaken, there are many things in it that either aren't needed anymore or aren't used. The library itself has many warnings which would have to be resolved, and if such a large refactor would be done, it would be much easier if this library is directly inside of the project. That way we can slowly start removing things that aren't used, and stripping the library down to only the things that are needed for Wineskin.
  • Project groups and folders
    • Xcode project's files are grouped into groups, but those groups don't represent folders on the filesystem. For example, Wineskin project's Classes, Model, Functions and Views, they're all shown as groups in Xcode but those groups don't have their corresponding folders on the filesystem. I would like to change that so that it's much easier to do code review and navigate through files in GitHub repo. As we move forward, I'd propose a different folder structure, based on how we end up organizing everything.

These are some of the things I'd want to start with. I won't be listing many of the warnings about deprecated API usages, but those too are something I aim at solving. I also care very much about UI, so if we proceed with this, I'd be happy to revisit that one day as I've found there are many warnings in XIP files too (like missing constraints).

Let me know what you think @vitor251093 @Gcenx

WineskinLauncher build Error

~/Documents/wineskin [master ● (3faf68d)] [14:52:19]

➜ xcodebuild -workspace Wineskin.xcworkspace -scheme WineskinLauncher build
note: Using new build system
note: Planning build
note: Using build description from disk
Build system information
warning: Traditional headermap style is no longer supported; please migrate to using separate headermaps and set 'ALWAYS_SEARCH_USER_PATHS' to NO. (in target 'WineskinLauncher')

CompileC /Users/xwg/Library/Developer/Xcode/DerivedData/Wineskin-bnmtaztdqvkrklghucwimejhbqyn/Build/Intermediates.noindex/WineskinLauncher.build/Debug/WineskinLauncher.build/Objects-normal/x86_64/NSExeSelection.o /Users/xwg/Documents/wineskin/WineskinLauncher/NSExeSelection.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler (in target: WineskinLauncher)
cd /Users/xwg/Documents/wineskin/WineskinLauncher
export LANG=en_US.US-ASCII
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c -arch x86_64 -fmessage-length=87 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -fcolor-diagnostics -std=gnu99 -fobjc-arc -gmodules -Wno-trigraphs -fpascal-strings -O0 -fno-common -Wno-missing-field-initializers -Wno-missing-prototypes -Wunreachable-code -Wno-implicit-atomic-properties -Wno-objc-interface-ivars -Wno-arc-repeated-use-of-weak -Wimplicit-retain-self -Wduplicate-method-match -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wuninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wno-float-conversion -Wnon-literal-null-conversion -Wobjc-literal-conversion -Wshorten-64-to-32 -Wpointer-sign -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wundeclared-selector -Wdeprecated-implementations -DOBJC_OLD_DISPATCH_PROTOTYPES=0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -fasm-blocks -fstrict-aliasing -Wprotocol -Wdeprecated-declarations -mmacosx-version-min=10.6 -g -Wno-sign-conversion -Winfinite-recursion -Wcomma -Wblock-capture-autoreleasing -Wstrict-prototypes -Wno-semicolon-before-method-body -index-store-path /Users/xwg/Library/Developer/Xcode/DerivedData/Wineskin-bnmtaztdqvkrklghucwimejhbqyn/Index/DataStore -iquote /Users/xwg/Library/Developer/Xcode/DerivedData/Wineskin-bnmtaztdqvkrklghucwimejhbqyn/Build/Intermediates.noindex/WineskinLauncher.build/Debug/WineskinLauncher.build/WineskinLauncher-generated-files.hmap -I/Users/xwg/Library/Developer/Xcode/DerivedData/Wineskin-bnmtaztdqvkrklghucwimejhbqyn/Build/Intermediates.noindex/WineskinLauncher.build/Debug/WineskinLauncher.build/WineskinLauncher-own-target-headers.hmap -I/Users/xwg/Library/Developer/Xcode/DerivedData/Wineskin-bnmtaztdqvkrklghucwimejhbqyn/Build/Intermediates.noindex/WineskinLauncher.build/Debug/WineskinLauncher.build/WineskinLauncher-all-target-headers.hmap -iquote /Users/xwg/Library/Developer/Xcode/DerivedData/Wineskin-bnmtaztdqvkrklghucwimejhbqyn/Build/Intermediates.noindex/WineskinLauncher.build/Debug/WineskinLauncher.build/WineskinLauncher-project-headers.hmap -I/Users/xwg/Library/Developer/Xcode/DerivedData/Wineskin-bnmtaztdqvkrklghucwimejhbqyn/Build/Products/Debug/include -I/Users/xwg/Library/Developer/Xcode/DerivedData/Wineskin-bnmtaztdqvkrklghucwimejhbqyn/Build/Intermediates.noindex/WineskinLauncher.build/Debug/WineskinLauncher.build/DerivedSources/x86_64 -I/Users/xwg/Library/Developer/Xcode/DerivedData/Wineskin-bnmtaztdqvkrklghucwimejhbqyn/Build/Intermediates.noindex/WineskinLauncher.build/Debug/WineskinLauncher.build/DerivedSources -F/Users/xwg/Library/Developer/Xcode/DerivedData/Wineskin-bnmtaztdqvkrklghucwimejhbqyn/Build/Products/Debug -include /Users/xwg/Library/Developer/Xcode/DerivedData/Wineskin-bnmtaztdqvkrklghucwimejhbqyn/Build/Intermediates.noindex/PrecompiledHeaders/SharedPrecompiledHeaders/4559311797554810086/WineskinLauncher_Prefix.pch -MMD -MT dependencies -MF /Users/xwg/Library/Developer/Xcode/DerivedData/Wineskin-bnmtaztdqvkrklghucwimejhbqyn/Build/Intermediates.noindex/WineskinLauncher.build/Debug/WineskinLauncher.build/Objects-normal/x86_64/NSExeSelection.d --serialize-diagnostics /Users/xwg/Library/Developer/Xcode/DerivedData/Wineskin-bnmtaztdqvkrklghucwimejhbqyn/Build/Intermediates.noindex/WineskinLauncher.build/Debug/WineskinLauncher.build/Objects-normal/x86_64/NSExeSelection.dia -c /Users/xwg/Documents/wineskin/WineskinLauncher/NSExeSelection.m -o /Users/xwg/Library/Developer/Xcode/DerivedData/Wineskin-bnmtaztdqvkrklghucwimejhbqyn/Build/Intermediates.noindex/WineskinLauncher.build/Debug/WineskinLauncher.build/Objects-normal/x86_64/NSExeSelection.o

CompileC /Users/xwg/Library/Developer/Xcode/DerivedData/Wineskin-bnmtaztdqvkrklghucwimejhbqyn/Build/Intermediates.noindex/WineskinLauncher.build/Debug/WineskinLauncher.build/Objects-normal/x86_64/WineskinLauncherAppDelegate.o /Users/xwg/Documents/wineskin/WineskinLauncher/WineskinLauncherAppDelegate.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler (in target: WineskinLauncher)
cd /Users/xwg/Documents/wineskin/WineskinLauncher
export LANG=en_US.US-ASCII
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c -arch x86_64 -fmessage-length=87 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -fcolor-diagnostics -std=gnu99 -fobjc-arc -gmodules -Wno-trigraphs -fpascal-strings -O0 -fno-common -Wno-missing-field-initializers -Wno-missing-prototypes -Wunreachable-code -Wno-implicit-atomic-properties -Wno-objc-interface-ivars -Wno-arc-repeated-use-of-weak -Wimplicit-retain-self -Wduplicate-method-match -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wuninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wno-float-conversion -Wnon-literal-null-conversion -Wobjc-literal-conversion -Wshorten-64-to-32 -Wpointer-sign -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wundeclared-selector -Wdeprecated-implementations -DOBJC_OLD_DISPATCH_PROTOTYPES=0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -fasm-blocks -fstrict-aliasing -Wprotocol -Wdeprecated-declarations -mmacosx-version-min=10.6 -g -Wno-sign-conversion -Winfinite-recursion -Wcomma -Wblock-capture-autoreleasing -Wstrict-prototypes -Wno-semicolon-before-method-body -index-store-path /Users/xwg/Library/Developer/Xcode/DerivedData/Wineskin-bnmtaztdqvkrklghucwimejhbqyn/Index/DataStore -iquote /Users/xwg/Library/Developer/Xcode/DerivedData/Wineskin-bnmtaztdqvkrklghucwimejhbqyn/Build/Intermediates.noindex/WineskinLauncher.build/Debug/WineskinLauncher.build/WineskinLauncher-generated-files.hmap -I/Users/xwg/Library/Developer/Xcode/DerivedData/Wineskin-bnmtaztdqvkrklghucwimejhbqyn/Build/Intermediates.noindex/WineskinLauncher.build/Debug/WineskinLauncher.build/WineskinLauncher-own-target-headers.hmap -I/Users/xwg/Library/Developer/Xcode/DerivedData/Wineskin-bnmtaztdqvkrklghucwimejhbqyn/Build/Intermediates.noindex/WineskinLauncher.build/Debug/WineskinLauncher.build/WineskinLauncher-all-target-headers.hmap -iquote /Users/xwg/Library/Developer/Xcode/DerivedData/Wineskin-bnmtaztdqvkrklghucwimejhbqyn/Build/Intermediates.noindex/WineskinLauncher.build/Debug/WineskinLauncher.build/WineskinLauncher-project-headers.hmap -I/Users/xwg/Library/Developer/Xcode/DerivedData/Wineskin-bnmtaztdqvkrklghucwimejhbqyn/Build/Products/Debug/include -I/Users/xwg/Library/Developer/Xcode/DerivedData/Wineskin-bnmtaztdqvkrklghucwimejhbqyn/Build/Intermediates.noindex/WineskinLauncher.build/Debug/WineskinLauncher.build/DerivedSources/x86_64 -I/Users/xwg/Library/Developer/Xcode/DerivedData/Wineskin-bnmtaztdqvkrklghucwimejhbqyn/Build/Intermediates.noindex/WineskinLauncher.build/Debug/WineskinLauncher.build/DerivedSources -F/Users/xwg/Library/Developer/Xcode/DerivedData/Wineskin-bnmtaztdqvkrklghucwimejhbqyn/Build/Products/Debug -include /Users/xwg/Library/Developer/Xcode/DerivedData/Wineskin-bnmtaztdqvkrklghucwimejhbqyn/Build/Intermediates.noindex/PrecompiledHeaders/SharedPrecompiledHeaders/4559311797554810086/WineskinLauncher_Prefix.pch -MMD -MT dependencies -MF /Users/xwg/Library/Developer/Xcode/DerivedData/Wineskin-bnmtaztdqvkrklghucwimejhbqyn/Build/Intermediates.noindex/WineskinLauncher.build/Debug/WineskinLauncher.build/Objects-normal/x86_64/WineskinLauncherAppDelegate.d --serialize-diagnostics /Users/xwg/Library/Developer/Xcode/DerivedData/Wineskin-bnmtaztdqvkrklghucwimejhbqyn/Build/Intermediates.noindex/WineskinLauncher.build/Debug/WineskinLauncher.build/Objects-normal/x86_64/WineskinLauncherAppDelegate.dia -c /Users/xwg/Documents/wineskin/WineskinLauncher/WineskinLauncherAppDelegate.m -o /Users/xwg/Library/Developer/Xcode/DerivedData/Wineskin-bnmtaztdqvkrklghucwimejhbqyn/Build/Intermediates.noindex/WineskinLauncher.build/Debug/WineskinLauncher.build/Objects-normal/x86_64/WineskinLauncherAppDelegate.o
/Users/xwg/Documents/wineskin/WineskinLauncher/WineskinLauncherAppDelegate.m:1085
:25: error:
use of undeclared identifier 'VMMVideoCardManager'; did you mean
'VMMVideoCardNameKey'?
VMMVideoCard* vc = [VMMVideoCardManager bestInternalVideoCard];
^~~~~~~~~~~~~~~~~~~

                    VMMVideoCardNameKey

In file included from /Users/xwg/Documents/wineskin/WineskinLauncher/WineskinLauncherAppDelegate.m:11:
In file included from /Users/xwg/Library/Developer/Xcode/DerivedData/Wineskin-bnmtaztdqvkrklghucwimejhbqyn/Build/Products/Debug/ObjectiveC_Extension.framework/Headers/ObjectiveC_Extension.h:59:
In file included from /Users/xwg/Library/Developer/Xcode/DerivedData/Wineskin-bnmtaztdqvkrklghucwimejhbqyn/Build/Products/Debug/ObjectiveC_Extension.framework/Headers/VMMComputerInformation.h:188:
/Users/xwg/Library/Developer/Xcode/DerivedData/Wineskin-bnmtaztdqvkrklghucwimejhbqyn/Build/Products/Debug/ObjectiveC_Extension.framework/Headers/VMMVideoCard.h:17:34: note
:
'VMMVideoCardNameKey' declared here
static NSString * _Nonnull const VMMVideoCardNameKey = @"...
^

/Users/xwg/Documents/wineskin/WineskinLauncher/WineskinLauncherAppDelegate.m:1085:45: error:
no visible @interface for 'NSString'
declares the selector
'bestInternalVideoCard'
VMMVideoCard* vc = [VMMVideoCardManager bestInternalVideoCard];
~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~

2 errors generated.

** BUILD FAILED **

The following build commands failed:
CompileC /Users/xwg/Library/Developer/Xcode/DerivedData/Wineskin-bnmtaztdqvkrklghucwimejhbqyn/Build/Intermediates.noindex/WineskinLauncher.build/Debug/WineskinLauncher.build/Objects-normal/x86_64/WineskinLauncherAppDelegate.o /Users/xwg/Documents/wineskin/WineskinLauncher/WineskinLauncherAppDelegate.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)

Screen options - issues.

Sometimes when swapping between MAC/X11 is does not save the selection so it needs to be done over. (related to the removal of the Done button I guess?)

"Retina Mode"
Should not be enable by default, its great for some applications but some Windows applications have the scaling issue, this is not text related since the scaling factor is still based on Windows XP scaling system not all applications will scale up looking tiny even with the font scaling you implemented.

EDIT:
It even changed my driver from MAC to X11 on another test thats weird....

Establish community fork?

Since it looks like upstream is no longer maintained, it would probably be helpful to formally establish a new fork. I invited both of you @vitor251093 and @Gcenx to a new WineskinCommunity GitHub organization and created a new import of the upstream repo here containing both of your latest changes: https://github.com/WineskinCommunity/Wineskin

I'd suggest adopting something like the Moya community guidelines to encourage outside collaboration. Basically the idea is to invite people the organization early and often, and just protect the master branch by always requiring code review from another member.

debug.log on desktop after each run?

I might have missed something, but when ever launched I find a debug.log on the desktop did I miss something as I don't remember this happening at first.

Quit apps with Cmnd+Q

In the original Wineskin you can quit apps with the Mac Os standard shortcut CMD+Q, in your fork I have to press CMD+ALT+Q.
Is there some way to have the standard quit shortcut?
I use Wineskin with an old app for Windows, "Mailwasher", it is a spam filter for email and I launch it tons of time in a day.
Thanks.

WineskinLauncher build error VMMVideoCardManager

`bash-5.0$ xcodebuild -workspace Wineskin.xcworkspace -scheme WineskinLauncher build
note: Using new build system
note: Planning build
note: Using build description from disk
warning: Traditional headermap style is no longer supported; please migrate to using separate headermaps and set 'ALWAYS_SEARCH_USER_PATHS' to NO. (in target 'WineskinLauncher' from project 'WineskinLauncher')
CompileC /Users/user001/Library/Developer/Xcode/DerivedData/Wineskin-azotkdkrkrfzeseyxjkqlusdxxkh/Build/Intermediates.noindex/WineskinLauncher.build/Debug/WineskinLauncher.build/Objects-normal/x86_64/WineskinLauncherAppDelegate.o /Users/user001/Documents/wineskin/WineskinLauncher/WineskinLauncherAppDelegate.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler (in target 'WineskinLauncher' from project 'WineskinLauncher')
cd /Users/user001/Documents/wineskin/WineskinLauncher
export LANG=en_US.US-ASCII
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c -target x86_64-apple-macos10.6 -fmessage-length=248 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -fcolor-diagnostics -std=gnu99 -fobjc-arc -gmodules -Wno-trigraphs -fpascal-strings -O0 -fno-common -Wno-missing-field-initializers -Wno-missing-prototypes -Wunreachable-code -Wno-implicit-atomic-properties -Wno-objc-interface-ivars -Wno-arc-repeated-use-of-weak -Wimplicit-retain-self -Wduplicate-method-match -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wuninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wno-float-conversion -Wnon-literal-null-conversion -Wobjc-literal-conversion -Wshorten-64-to-32 -Wpointer-sign -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wundeclared-selector -Wdeprecated-implementations -DOBJC_OLD_DISPATCH_PROTOTYPES=0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -fasm-blocks -fstrict-aliasing -Wprotocol -Wdeprecated-declarations -g -Wno-sign-conversion -Winfinite-recursion -Wcomma -Wblock-capture-autoreleasing -Wstrict-prototypes -Wno-semicolon-before-method-body -index-store-path /Users/user001/Library/Developer/Xcode/DerivedData/Wineskin-azotkdkrkrfzeseyxjkqlusdxxkh/Index/DataStore -iquote /Users/user001/Library/Developer/Xcode/DerivedData/Wineskin-azotkdkrkrfzeseyxjkqlusdxxkh/Build/Intermediates.noindex/WineskinLauncher.build/Debug/WineskinLauncher.build/WineskinLauncher-generated-files.hmap -I/Users/user001/Library/Developer/Xcode/DerivedData/Wineskin-azotkdkrkrfzeseyxjkqlusdxxkh/Build/Intermediates.noindex/WineskinLauncher.build/Debug/WineskinLauncher.build/WineskinLauncher-own-target-headers.hmap -I/Users/user001/Library/Developer/Xcode/DerivedData/Wineskin-azotkdkrkrfzeseyxjkqlusdxxkh/Build/Intermediates.noindex/WineskinLauncher.build/Debug/WineskinLauncher.build/WineskinLauncher-all-target-headers.hmap -iquote /Users/user001/Library/Developer/Xcode/DerivedData/Wineskin-azotkdkrkrfzeseyxjkqlusdxxkh/Build/Intermediates.noindex/WineskinLauncher.build/Debug/WineskinLauncher.build/WineskinLauncher-project-headers.hmap -I/Users/user001/Library/Developer/Xcode/DerivedData/Wineskin-azotkdkrkrfzeseyxjkqlusdxxkh/Build/Products/Debug/include -I/Users/user001/Library/Developer/Xcode/DerivedData/Wineskin-azotkdkrkrfzeseyxjkqlusdxxkh/Build/Intermediates.noindex/WineskinLauncher.build/Debug/WineskinLauncher.build/DerivedSources-normal/x86_64 -I/Users/user001/Library/Developer/Xcode/DerivedData/Wineskin-azotkdkrkrfzeseyxjkqlusdxxkh/Build/Intermediates.noindex/WineskinLauncher.build/Debug/WineskinLauncher.build/DerivedSources/x86_64 -I/Users/user001/Library/Developer/Xcode/DerivedData/Wineskin-azotkdkrkrfzeseyxjkqlusdxxkh/Build/Intermediates.noindex/WineskinLauncher.build/Debug/WineskinLauncher.build/DerivedSources -F/Users/user001/Library/Developer/Xcode/DerivedData/Wineskin-azotkdkrkrfzeseyxjkqlusdxxkh/Build/Products/Debug -include /Users/user001/Library/Developer/Xcode/DerivedData/Wineskin-azotkdkrkrfzeseyxjkqlusdxxkh/Build/Intermediates.noindex/PrecompiledHeaders/SharedPrecompiledHeaders/4028258763941737393/WineskinLauncher_Prefix.pch -MMD -MT dependencies -MF /Users/user001/Library/Developer/Xcode/DerivedData/Wineskin-azotkdkrkrfzeseyxjkqlusdxxkh/Build/Intermediates.noindex/WineskinLauncher.build/Debug/WineskinLauncher.build/Objects-normal/x86_64/WineskinLauncherAppDelegate.d --serialize-diagnostics /Users/user001/Library/Developer/Xcode/DerivedData/Wineskin-azotkdkrkrfzeseyxjkqlusdxxkh/Build/Intermediates.noindex/WineskinLauncher.build/Debug/WineskinLauncher.build/Objects-normal/x86_64/WineskinLauncherAppDelegate.dia -c /Users/user001/Documents/wineskin/WineskinLauncher/WineskinLauncherAppDelegate.m -o /Users/user001/Library/Developer/Xcode/DerivedData/Wineskin-azotkdkrkrfzeseyxjkqlusdxxkh/Build/Intermediates.noindex/WineskinLauncher.build/Debug/WineskinLauncher.build/Objects-normal/x86_64/WineskinLauncherAppDelegate.o
/Users/user001/Documents/wineskin/WineskinLauncher/WineskinLauncherAppDelegate.m:1085:25: error: use of undeclared identifier 'VMMVideoCardManager'; did you mean 'VMMVideoCardNameKey'?
VMMVideoCard* vc = [VMMVideoCardManager bestInternalVideoCard];
^~~~~~~~~~~~~~~~~~~
VMMVideoCardNameKey
In file included from /Users/user001/Documents/wineskin/WineskinLauncher/WineskinLauncherAppDelegate.m:11:
In file included from /Users/user001/Library/Developer/Xcode/DerivedData/Wineskin-azotkdkrkrfzeseyxjkqlusdxxkh/Build/Products/Debug/ObjectiveC_Extension.framework/Headers/ObjectiveC_Extension.h:59:
In file included from /Users/user001/Library/Developer/Xcode/DerivedData/Wineskin-azotkdkrkrfzeseyxjkqlusdxxkh/Build/Products/Debug/ObjectiveC_Extension.framework/Headers/VMMComputerInformation.h:188:
/Users/user001/Library/Developer/Xcode/DerivedData/Wineskin-azotkdkrkrfzeseyxjkqlusdxxkh/Build/Products/Debug/ObjectiveC_Extension.framework/Headers/VMMVideoCard.h:17:34: note: 'VMMVideoCardNameKey' declared here
static NSString * _Nonnull const VMMVideoCardNameKey = @"sppci_model";
^
/Users/user001/Documents/wineskin/WineskinLauncher/WineskinLauncherAppDelegate.m:1085:45: error: no visible @interface for 'NSString' declares the selector 'bestInternalVideoCard'
VMMVideoCard* vc = [VMMVideoCardManager bestInternalVideoCard];
~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~
2 errors generated.

** BUILD FAILED **

The following build commands failed:
CompileC /Users/user001/Library/Developer/Xcode/DerivedData/Wineskin-azotkdkrkrfzeseyxjkqlusdxxkh/Build/Intermediates.noindex/WineskinLauncher.build/Debug/WineskinLauncher.build/Objects-normal/x86_64/WineskinLauncherAppDelegate.o /Users/user001/Documents/wineskin/WineskinLauncher/WineskinLauncherAppDelegate.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)
bash-5.0$
`

Binary releases

Do you plan to provide binary releases (at least for every minor non-beta release)?

Build Error: Undeclared 'VMMVideoCardManager'

Is VMMVideoCardManager one of the dependencies that Carthage should have setup for me first?

I'm getting two build errors for WineskinLauncher while following the README steps for building, both for the same line (WineskinApp and Wineskin Winery built fine):

use of undeclared identifier 'VMMVideoCardManager'; did you mean 'VMMVideoCardNameKey'?

    VMMVideoCard* vc = [VMMVideoCardManager bestInternalVideoCard];
                        ^~~~~~~~~~~~~~~~~~~
                        VMMVideoCardNameKey

and

no visible @interface for 'NSString' declares the selector 'bestInternalVideoCard'

    VMMVideoCard* vc = [VMMVideoCardManager bestInternalVideoCard];

VMMVideoCard* vc = [VMMVideoCardManager bestInternalVideoCard];

Add Travis-CI

If you enable the repo on https://travis-ci.org/ I can contribute a .travis.yml file. In addition to ensuring build are not accidentally broken, we can use it to automatically build and host debug builds.

WineskinX11 is outdated - removal?

Since WineskinX11 is a very old custom version of XQuartz why not just remove it?

Currently creating a new wrappers launches WineskinX11 but that is not needed anymore Wine2.0 had a stable Mac driver and is used by default since then.
Removing would help future updates to Wineskin. Instead of needing to make a new version (+patches etc) have the user required to install xorg from homebrew/macports if they really need X11 support.

Doing so would have have another useful benefit; needing less dylibs inside the master wrapper, so less of a headache with needing to update them to work with every system 10.6 > 10.13. I would would go as far as change the minimal requirement of Wineskin to 10.8+

Remove Graphics=x11 from remakedefaults.reg

Since Mac Driver is used most of the time, and Wine uses Mac Driver by default since 1.5.28, we can remove that line so Wine can decide which one it's going to use. In that way, X11-only compatible engines will still work, and Mac Driver compatible engines will give a preference to it.

Need two more branches legacy & post Mojave

As the title says

Gonna need a legacy branch for that 10.6.8 support & one for post Mojave.

I already have a working branch for post Mojave with some caveats;

Still needs a 64bit replacement for 7zip for Wineskin/winery & wsgamma I believe is only 32bit so need a replacement for that.

That’s all Mojave beta complained about Wineskin/winery of course it still complains about WINE but that’s not really on us to implement.

Not compatible with Porting-kit when using 64bit Wine

I was using the Porting Kit and needed to use a 64bit Wine version.
During creation it complained about the wrapper already running so winetricks failed.
The timeout might need to be extended in Porting Kit for Wine 64bit as they take longer to be created or because of the change between 32bit and 64bit modes.

Winery engines ordering

Based in the Discord discussion, I've added the ordering system that is present today in PK to Winery :)

Like we discussed, I've added the change to a branch instead of merging it directly.

Use macdriver & overrider issue

Once MAC driver is enabled "decorate windows" check box is disabled but still yet (not an issue)

Once overried is selected "decorate windows" check box is still disabled if you have macdriver enabled before using orerride option, to undo this need to exit screen settings or swap bad and enable and disable macdriver to enable "decorate windows" is usable again.

Also

Decorate Windows when using VirtualDesktop, even when checked manually is not respected now, loaded up a Virtual Desktop with it enabled and the application looks like a Windows Application

Drop Engine repacking - Directly use Winehq portable releases

The idea we floated, that would speed everything up.

The idea, download winehq portable release directly.
When making a wrapper, unpackaged the portable release making the usual wswine.bundle.

Unless we also drop wswine.bundle and instead extract the contents into /Resources/wine (but this would require more backend changes) meaning later signing/notarizing might be simpler.

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.