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

feat: Linux compatibility #249

Closed
2 tasks
BinToss opened this issue Oct 23, 2021 · 0 comments
Closed
2 tasks

feat: Linux compatibility #249

BinToss opened this issue Oct 23, 2021 · 0 comments
Assignees
Labels
AREA_HXE Issue applies to HXE projects AREA_SPV3 Issue applies to SPV3 projects enhancement New feature or request

Comments

@BinToss
Copy link
Member

BinToss commented Oct 23, 2021

This GitHub Issue has been closed, promoting HaloSPV3/Gemini#54 to the the top-level issue.


ROAD PLAN

This can go one of two ways...

STOPGAP

Platform-dependent code paths will be determined at runtime. This implies the following:

  • Check the value of System.Environment.OSVersion.Platform to determine which OS we're running on. In most cases, we'll see either Win32NT or Unix. All possible values.
MS Docs Example:
// This example demonstrates the PlatformID enumeration.
using System;

class Sample
{
    public static void Main()
    {
    string msg1 = "This is a Windows operating system.";
    string msg2 = "This is a Unix operating system.";
    string msg3 = "ERROR: This platform identifier is invalid.";

// Assume this example is run on a Windows operating system.

    OperatingSystem os = Environment.OSVersion;
    PlatformID     pid = os.Platform;
    switch (pid)
        {
        case PlatformID.Win32NT:
        case PlatformID.Win32S:
        case PlatformID.Win32Windows:
        case PlatformID.WinCE:
            Console.WriteLine(msg1);
            break;
        case PlatformID.Unix:
            Console.WriteLine(msg2);
            break;
        default:
            Console.WriteLine(msg3);
            break;
        }
    }
}
/*
This example produces the following results:

This is a Windows operating system.
*/

REWORK

  • Compile apps as native Linux apps.
  • Proton and WINE settings would be automated (or informed to the user) for convenience.
  • WPF and WinForms would be replaced by UNO, .NET 6's MAUI, or another GUI framework to assist in maintaining our WPF-reliant, MahApps.Metro-powered GUI.
  • All Windows Registry interaction would need to be disabled entirely or adapted to work with Proton and WINE. The Windows Registry is required to determine if Retail or Custom Edition was installed legally. How does Proton and WINE handle that?
@BinToss BinToss added enhancement New feature or request AREA_HXE Issue applies to HXE projects AREA_SPV3 Issue applies to SPV3 projects labels Oct 23, 2021
@BinToss BinToss self-assigned this Oct 23, 2021
@BinToss BinToss closed this as completed Oct 23, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
AREA_HXE Issue applies to HXE projects AREA_SPV3 Issue applies to SPV3 projects enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant