Giter VIP home page Giter VIP logo

logoslinuxinstaller's Issues

Update Install Guide

As part of this rewrite, we should consider us still in alpha/beta until we rewrite the install guide. This will require that the software be in a stable enough position that we won't need to update it much before release.

  • CLI
  • TUI
  • GUI

Add an Option for Moving the Install

While an install can be moved manually, moving the install manually results in this error:

ferion11/LogosLinuxInstaller#45

If we could automate this move for people, we could bypass the above. That issue was drafted before we had some of the nicer script updates brought in in 3.0+.

The only other option would be to have an option for "update internal symlinks to new dir", or something like that. Perhaps both are needed.

Gzip'd Response causes Failed File Size Check

Expected Behavior

File Size check should deflate the url response to compute size if content-encoding: gzip is in the headers

Current Behavior

File size is taken from the content-length. Since the file on the server was sent as compressed, it is smaller than the file to be checked.

Possible Solution

The file downloads to the correct size, so maybe it gets downloaded with a temporary extension, after it completes, we check the file size of the temporary. Afterwards, remove the temporary extension before the md5 check.

Alternatively, I found this stackexchange that says to deflate and then do what you want. https://stackoverflow.com/questions/20537432/force-webserver-to-return-uncompressed-data-no-gzip

Steps to Reproduce

  1. fresh install
  2. download 10, use wine app image
  3. wait till it gets to wine tricks
  4. see error

Context (Environment)

Fedora 39, GNOME Wayland

Detailed Description

On a fresh install, the installer fails with error

2023-12-28 16:05:42 CRITICAL: Bad file size or checksum: /home/user1/Downloads/winetricks

In debug log, it shows a smaller url_size than after the size of the file downloaded:

2023-12-28 15:39:46 DEBUG: url_size = 191443 B; file_size = 904682 B

Examining the headers in firefox, github is responding with a gzip compression, so this line is returning a compressed value to be judged by the same_file size

Headers to the raw file:

HTTP/2 200 
content-encoding: gzip
content-length: 191443
cache-control: max-age=300
content-security-policy: default-src 'none'; style-src 'unsafe-inline'; sandbox
content-type: text/plain; charset=utf-8
etag: W/"6ea1078523c73e321b37fc6db2781620d63401e3320f9033c20d9b6d4fcc0c48"
strict-transport-security: max-age=31536000
x-content-type-options: nosniff
x-frame-options: deny
x-xss-protection: 1; mode=block
x-github-request-id: D7C2:63A2:3A603F:47A7B1:658DEB1C
accept-ranges: bytes
date: Thu, 28 Dec 2023 22:58:02 GMT
via: 1.1 varnish
x-served-by: cache-dfw-kdfw8210092-DFW
x-cache: HIT
x-cache-hits: 1
x-timer: S1703804282.138054,VS0,VE105
vary: Authorization,Accept-Encoding,Origin
access-control-allow-origin: *
cross-origin-resource-policy: cross-origin
x-fastly-request-id: 1fb49f40c6dfdaa7a8f773e397fb219cd5dd68f6
expires: Thu, 28 Dec 2023 23:03:02 GMT
source-age: 0
X-Firefox-Spdy: h2

LogosLinuxInstaller/utils.py Line 92

        content_length = self.headers.get('Content-Length')

Possible Implementation

Status Messages

Once we implement #42, we should have a status bar for both the TUI and GUI. As part of this, we should have them reuse a msg.status() function to reduce code duplication.

This is also a nice consolidation and coincides well for implementing #19.

Separate Optargs

Per #34, we need to separate optargs as being either runtime variable setters or actions/commands.

The Bash script did this by iterating over the optargs twice, once for setters, once for actions.

How should we best handle this?

Should the GUI app be made into one panel rather than two, by making "install" an option on the control panel?

Beautify the GUI

@n8marti has done a good job of not only making the GUI but also making its colors to reflect Logos's own.

As we near closer to a release, let us reconsider the GUI and whether or not there are ways to make it more beautiful.

This issue was opened as the current GUI's colors for an unfilled theme look like a disabled field. Can we differentiate this to make it clearer for the user?

Add *BSD Support

The Python program is now *BSD compatible (ferion11/LogosLinuxInstaller#150), more or less. There may still be some Linux code, but the Python app puts us in a much better location.

We need to determine what package names are for *BSD and have tests done to see if Logos can be booted on *BSD.

GitHub API Limits

GitHub has a 60 request per hour limit per IP with its unauthenticated Rest API. This limit was reached during testing. This in general shouldn't be an issue for an average user. Should we account for this? Can we catch this easily? Do we add the ability to authenticate a user's API requests, i.e., add GitHub oauth2 support, if desired?

AppImage handling

In order to get to beta, we need to make sure our AppImage functionality is properly working as this is how we provide the most stable base install.

We want the new application to be able to download the latest AppImage from the repo, set the AppImage to a newly downloaded exe, or update the appimage in repo to the latest in our repository.

  • Convert checkAppImages(). See ferion11/LogosLinuxInstaller@bfefb3c
    • Another way to describe this would be: scan for additional AppImages (in Downloads only?) and add them to the binary list
  • Modify AppImage code to check branch version (see #32 and #38)
  • Fix set_appimage()
    • This option should only be presented if the user installed using an AppImage. See #56.
    • Update/Modify the config. See #36.
    • We should present our recommended AppImages from the FaithLife-Community repo. See #5 (comment). See #54.
    • We should also present those downloaded by the user and which are available in their Logos APPDIR_BINDIR. See #36.
  • Add update_appimage()
    • This is similar to set_appimage() but bypasses the selection of any binary and simply updates to the latest installed if needed, sort of a quick action set_appimage().
    • This option should only be presented if the user installed using an AppImage. See #56.
    • The user should be able to click a button or run a command to update to the latest recommended AppImage. See #5 (comment).
    • This also will need the ability to check GitHub for new releases. See #5 (comment). See #54.
    • Make app use the https://github.com/FaithLife-Community/wine-appimages repo. See 1d7024a.
      • Delete AppImage releases from this repo, but only after the above is done
  • Detect if AppImage Launcher is running, and, if so, prompt to disable it and warn that a reboot is necessary to proceed. See #5 (comment). See #52.

We may want to have Logos launch and automatically check to see if there is a newer (recommended, as in, in repo) AppImage available.

Pre-4.0.0 Config Files Cannot Be Used and Need Migrated

Attempting to run the binary with -h|--help reports the following error when the program hasn't been run at least once:

./dist/LogosLinuxInstaller -h

ERROR:root:Error decoding config file /home/thwright/.config/Logos_on_Linux/Logos_on_Linux.conf: Expecting value: line 1 column 1 (char 0)
Traceback (most recent call last):
  File "LogosLinuxInstaller.py", line 241, in <module>
  File "LogosLinuxInstaller.py", line 146, in main
    switch_logging()
  File "config.py", line 104, in set_config_env
    logos_error(f"Error: Unable to get config at {config_file_path}")
NameError: name 'logos_error' is not defined
[11339] Failed to execute script 'LogosLinuxInstaller' due to unhandled exception!

This also applies to running the main script:

./LogosLinuxInstaller.py -h

ERROR:root:Error decoding config file /home/thwright/.config/Logos_on_Linux/Logos_on_Linux.conf: Expecting value: line 1 column 1 (char 0)
Traceback (most recent call last):
  File "/home/thwright/Dev/LogosLinuxInstaller/./LogosLinuxInstaller.py", line 223, in <module>
    main()
  File "/home/thwright/Dev/LogosLinuxInstaller/./LogosLinuxInstaller.py", line 128, in main
    config.set_config_env(config.CONFIG_FILE)
  File "/home/thwright/Dev/LogosLinuxInstaller/config.py", line 104, in set_config_env
    logos_error(f"Error: Unable to get config at {config_file_path}")
    ^^^^^^^^^^^
NameError: name 'logos_error' is not defined

Installer should exit if connection times out

2024-02-19 15:16:47 DEBUG: Comparing size of https://github.com/FaithLife-Community/wine-appimages/releases/download/8.19-devel/wine-devel_8.19-x86_64.AppImage and /home/nate/Téléchargements/wine-devel_8.19-x86_64.AppImage.
2024-02-19 15:16:47 DEBUG: Getting headers from https://github.com/FaithLife-Community/wine-appimages/releases/download/8.19-devel/wine-devel_8.19-x86_64.AppImage.
2024-02-19 15:16:47 DEBUG: Starting new HTTPS connection (1): github.com:443
2024-02-19 15:17:01 ERROR: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
2024-02-19 15:17:01 DEBUG: Getting headers from https://github.com/FaithLife-Community/wine-appimages/releases/download/8.19-devel/wine-devel_8.19-x86_64.AppImage.
2024-02-19 15:17:01 DEBUG: Starting new HTTPS connection (1): github.com:443
2024-02-19 15:17:14 ERROR: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
2024-02-19 15:17:14 DEBUG: Getting headers from https://github.com/FaithLife-Community/wine-appimages/releases/download/8.19-devel/wine-devel_8.19-x86_64.AppImage.
2024-02-19 15:17:14 DEBUG: Starting new HTTPS connection (1): github.com:443
2024-02-19 15:17:27 ERROR: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
2024-02-19 15:17:27 DEBUG: url_size = None B; file_size = 929280344 B
2024-02-19 15:17:27 INFO: /home/nate/Téléchargements/wine-devel_8.19-x86_64.AppImage is the wrong size.
2024-02-19 15:17:27 INFO: Incomplete file: /home/nate/Téléchargements/wine-devel_8.19-x86_64.AppImage.
2024-02-19 15:17:27 INFO: Downloading 'https://github.com/FaithLife-Community/wine-appimages/releases/download/8.19-devel/wine-devel_8.19-x86_64.AppImage' to '/home/nate/Téléchargements/wine-devel_8.19-x86_64.AppImage'

A poor connection resulted in the installer not being able to download the file header information. It then compared the None result to the existing file size and tried to download a new copy. It should exit after the Connection aborted. error rather than try to continue.

Downloaded binary is not executable

If you download the "LogosLinuxInstaller" binary from the "Releases" page it will not be executable. The user has to either chmod +x LogosLinuxInstaller or use the file manager context menu to make it executable.

It looks like there are only 2 possibilities:

  1. Keep it as-is, inform users how to make it executable after downloading.
  2. Release it as a .tar.gz file, which will retain the file permissions but then require the user to extract it after download.
    References:

Arch on python version < 3.12, causing install script to error

The script errors out complaining about Python 3.12 or highter for .rglob() flag 'case-sentitive'

Downloading release list for Logos 10... Traceback (most recent call last): File "/home/andy/code/LogosLinuxInstaller/LogosLinuxInstaller.py", line 324, in <module> main() File "/home/andy/code/LogosLinuxInstaller/LogosLinuxInstaller.py", line 320, in main run_control_panel() File "/home/andy/code/LogosLinuxInstaller/LogosLinuxInstaller.py", line 238, in run_control_panel tui_app.control_panel_app() File "/home/andy/code/LogosLinuxInstaller/tui_app.py", line 69, in control_panel_app installer.install() File "/home/andy/code/LogosLinuxInstaller/installer.py", line 497, in install prepare_install() File "/home/andy/code/LogosLinuxInstaller/installer.py", line 506, in prepare_install choose_install_method() # We ask user for his desired install method. ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/andy/code/LogosLinuxInstaller/installer.py", line 132, in choose_install_method utils.find_appimage_files(), ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/andy/code/LogosLinuxInstaller/utils.py", line 1196, in find_appimage_files raise RuntimeError("Python 3.12 or higher is required for .rglob() flag case-sensitive") RuntimeError: Python 3.12 or higher is required for .rglob() flagcase-sensitive

Add ARM/AARCH64 Support

Options for ELF translation:

https://github.com/ptitSeb/box64/

https://github.com/FEX-Emu/FEX/

https://github.com/AndreRH/hangover/

qemu-user would be another option, but I think the above are better suited/targeted. Hangover would be best, but I am not sure of its box64/FEX integration at the current time, or how it would collide with our ability to choose our own wine version, and may for that reason be less than ideal.

This should also work for RISC-V.

This will require a new get_architecture() command and storing it in the config.

Further, it will need a new package line for detecting the presence of the above solutions.

This may also require the ability to download the x86_64bit packages from the appropriate non-Arch repo.

Logos 30+ Support

When attempting to install the latest Logos versions, the install will report that the Windows version is outdated.

We need to determine what new wine DLLs are needed. @jg00dman has been working on this one in particular. He has made some progress passed an initial hurdle, but at present he has hit a wall and said we need to pray for God's help.

ferion11/LogosLinuxInstaller#219

We no longer need the environment variable workaround in the Python script for this as we give users the option of selecting a Logos release version on install. Further, with this commit b33870d, we now filter out unusable Logos versions.


From John:

The issue has to do with the new dependency for Two system DLLs:

  • icuuc.dll (this is the ICU "common" library)
  • icuin.dll (this is the ICU "i18n" library)

You can install them, but you need to install both the 32bit and the 64 bit versions for the installer to work due to an oddity in the way the installer checks for the libraries.

The problem is that's only part of the battle. Once installed you have a version of Logos which will only crash. I need to get that crash fixed before we move forward.

Linux Mint installation failed with Proton and v30 also fails with appimage

Hello

I tried to install Logos with the older Skript from the old repo which failed completely. The Logos installer says windows needs to be updated. I then tried tmanuall ylink the prodon dir but it then only found win64 and not winserver.

So i tried now the alpha:

To thet the python script working i aditianlly needed next to install the requirements.txt:

  • sudo apt install python3-tk
  • pip3 install distro

I then tried to Install using proton by also passing the custom path (On my machine i installed steam via the app store provided by Linux mint and htere the steamapps and also Proton Folder seems to be different than the default one). This failed with following error:

./LogosLinuxInstaller.py --custom-binary-path /home/joshua/.steam/debian-installation/steamapps/common/Proton\ 8.0/dist/bin
Installer log file: /home/joshua/.local/state/Logos_on_Linux/install.log
                                                                        Logos Linux Installer, 4.0.0-alpha.1 by Ferion11, John Goodman, T. H. Wright, N. Marti.
Paketlisten werden gelesen… Fertig
Abhängigkeitsbaum wird aufgebaut… Fertig
Statusinformationen werden eingelesen… Fertig
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
                                                                           Downloading release list for Logos 10...
Traceback (most recent call last):
                                    File "/home/joshua/Dokumente/git/LogosLinuxInstaller/wine.py", line 128, in wineBinaryVersionCheck
                                                                                                                                          version, release = version_string.split()
       ValueError: not enough values to unpack (expected 2, got 1)

                                                                  During handling of the above exception, another exception occurred:

                                                                                                                                     Traceback (most recent call last):
                                                                                                                                                                         File "/home/joshua/Dokumente/git/LogosLinuxInstaller/./LogosLinuxInstaller.py", line 254, in <module>
                                                                                                      main()
                                                                                                              File "/home/joshua/Dokumente/git/LogosLinuxInstaller/./LogosLinuxInstaller.py", line 221, in main
                                       install()
                                                  File "/home/joshua/Dokumente/git/LogosLinuxInstaller/installer.py", line 453, in install
                                                                                                                                              prepare_install()
                                                                                                                                                                 File "/home/joshua/Dokumente/git/LogosLinuxInstaller/installer.py", line 461, in prepare_install
                                                                                         chooseInstallMethod()  # We ask user for his desired install method.
                                                                                                                                                               File "/home/joshua/Dokumente/git/LogosLinuxInstaller/installer.py", line 172, in chooseInstallMethod
                                                                                           binaries = createWineBinaryList()
                                                                                                                              File "/home/joshua/Dokumente/git/LogosLinuxInstaller/wine.py", line 90, in createWineBinaryList
                                                     output1, output2 = wineBinaryVersionCheck(binary)
                                                                                                        File "/home/joshua/Dokumente/git/LogosLinuxInstaller/wine.py", line 131, in wineBinaryVersionCheck
                                  release = get_wine_branch(TESTBINARY)
                                                                         File "/home/joshua/Dokumente/git/LogosLinuxInstaller/wine.py", line 326, in get_wine_branch
                                                                                                                                                                        appimage, appimage_type = is_appimage(binary_obj)
                                               File "/home/joshua/Dokumente/git/LogosLinuxInstaller/utils.py", line 856, in is_appimage
                                                                                                                                           return (elf_sig == b'ELF' and ai_sig == b'AI', int.from_bytes(v_sig))
                                    TypeError: from_bytes() missing required argument 'byteorder' (pos 2)

This error i tried to fix manually, by adjusting the line to following:

    return (elf_sig == b'ELF' and ai_sig == b'AI', int.from_bytes(v_sig, byteorder='little'))

Then i got following error (It seems not to get version correctly:

./LogosLinuxInstaller.py -p ~/.steam/debian-installation/steamapps/common/Proton*/dist/bin
Installer log file: /home/joshua/.local/state/Logos_on_Linux/install.log
                                                                       Logos Linux Installer, 4.0.0-alpha.1 by Ferion11, John Goodman, T. H. Wright, N. Marti.
Paketlisten werden gelesen… Fertig
Abhängigkeitsbaum wird aufgebaut… Fertig
Statusinformationen werden eingelesen… Fertig
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
                                                                          Downloading release list for Logos 10...
/home/joshua/.steam/debian-installation/steamapps/common/Proton 8.0/dist/bin/wine64has binary
                                                                                            Traceback (most recent call last):
                                                                                                                                File "/home/joshua/Dokumente/git/LogosLinuxInstaller/./LogosLinuxInstaller.py", line 254, in <module>
                                                             main()
                                                                     File "/home/joshua/Dokumente/git/LogosLinuxInstaller/./LogosLinuxInstaller.py", line 221, in main
                                                                                                                                                                          install()
         File "/home/joshua/Dokumente/git/LogosLinuxInstaller/installer.py", line 453, in install
                                                                                                     prepare_install()
                                                                                                                        File "/home/joshua/Dokumente/git/LogosLinuxInstaller/installer.py", line 461, in prepare_install
                                                chooseInstallMethod()  # We ask user for his desired install method.
                                                                                                                      File "/home/joshua/Dokumente/git/LogosLinuxInstaller/installer.py", line 172, in chooseInstallMethod
                                                  binaries = createWineBinaryList()
                                                                                     File "/home/joshua/Dokumente/git/LogosLinuxInstaller/wine.py", line 92, in createWineBinaryList
            output1, output2 = wineBinaryVersionCheck(binary)
                                                               File "/home/joshua/Dokumente/git/LogosLinuxInstaller/wine.py", line 137, in wineBinaryVersionCheck
                                                                                                                                                                     release = release.lstrip('(').rstrip(')').lower() # remove parentheses
                                                               AttributeError: 'NoneType' object has no attribute 'lstrip'

I then tried the appImage version of the installation. THe latest v30.0 Version seems to have failed:
image

v29 i could install.

But i have two questions:

  • How to set scaling. It seems to small to be readable at all. Like the installation screen on screenshot above it is really small.
  • Is it possible to have a desktop shortcut?

Updating Non-AppImage Wine Binaries

In general, if a user is not using an AppImage, then the path to their binary is stable, i.e., /usr/bin/wine64. If the user is using Proton though, a couple of things could move the location of that binary or require updating the path. This would require manually editing the config file, which works. But it still requires user modification. I have gotten around this on my system using Proton by creating a symlink at /home/thwright/bin/wine64 and /home/thwright/bin/wineserver. I no longer need to modify the config, but I now have to maintain the symlink.

We could automate this by allowing the user to trigger installer.choose_install_method() and utils.get_wine_options() from the control panel to update the binary path.

The trouble with using the existing code is that it assumes the menu being created should display all options (i.e., binaries and appimages) because it assumes this is a first run. Conditional logic should make this easy to get around by checking the WINEBIN_CODE config and only supplying binaries of the same code. Checking the WINEBIN_CODE config is necessary as I have seen issues in trying to switch from an AppImage to a binary or from Proton to a system binary. Perhaps there is something else going on.

A more heavy hammer would be cleaning the wine bottle of everything pertaining to the current WINEBIN_CODE, moving the Logos install to a backup, then rerunning the creation of the wine bottle as during a first install, then moving the Logos install from backup back into position, sort of a combination of set new binary and backup and restore.

Should we add such an option? How could we do it well?

Debian Cannot Find `ldconfig`

def have_lib(library, ld_library_path):
ldconfig_cmd = ["ldconfig", "-N", "-v", ":".join(ld_library_path.split(':'))]
try:
result = subprocess.run(ldconfig_cmd, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL, check=True, text=True)
return library in result.stdout
except subprocess.CalledProcessError:
return False

This function needs an additional test to try ldconfig with sudo or doas if it fails to find the command as a regular user.

Add A Self-Update Command

It would be great if we had our own built-in update utility for our binary. This would make it even easier for the average user.

I would think the work we do on implementing #5 would help us accomplish this same task, namely pulling updates from GitHub.

Tk window needs an app icon

When LogosLinuxInstaller is run with the Tk GUI there is a blank icon in the panel. This should be fixable in the LogosLinuxInstaller.spec file.

TUI Improvements

  • Add Curses file selector in place of curses_get_user_input() for file selections. See #99 and fc44b00
  • Create a tui_screen.TextScreen (see #99) that shows the list of required packages and show them being scanned/checked off when found, as a form of user feedback, during the dependency checking.
  • Add a status line. See #99.
    • When the TUI is running, we cannot see the CLI itself. We may want to consider making the TUI a full app, as in do not return to the CLI but keep the TUI open even on a blank screen, so as not to obscure output.
  • Add a progress bar. See #85.
  • Rework using curses.wrapper() for error handling. See 8183588.
  • Add a progress spinner/wheel to show that we are still working and not stalled. See #99.
  • Reduce number of screens by having multiple choices on one??? Probably too painful to generate nicely.
  • Implement doupdate instead of refresh

GUI doesn't update "Install" button to "Run" after installation.

GUI doesn't update "Install" button to "Run" after installation. The user has to close and re-open the app to see the button changed to "Run Logos".

The solution has to do with somehow signalling the Control Panel window from the Installer window that the installation has finished.

ChromeOS Compositor Issues

Our main ChromeOS user has reported that ChromeOS's containerization works with Logos, but it draws black bockes (i.e., compositor issues). Is this solely on ChromeOS's side? Is there anything we need to do or can do on our side?

Test get_os and get_package_manager functionality

This is part of alpha testing. To get to beta, we need to verify the following.

  • get_os() properly detects the host's operating system
    • Debian variants, apt
    • RHEL variants, dnf
    • RHEL variants, yum (this should be deprecated by now)
    • Arch variants, pacman
    • Arch variants, pamac
  • get_package_manager() properly detects the host's package manager
    • apt
    • dnf
    • yum
    • pacman
    • pamac
  • verify the necessary packages for installation.
    • This requires a fresh ISO
    • Logos 9 necessary packages.
      • Should we update the Logos 9 install routine or just use the Bash one? See #53.
    • Debian. See #90.
    • Ubuntu. See #90.
    • Fedora
    • CentOS (or another RHEL alternative)
    • Arch. See #82.
    • Manjaro. See #95.
    • SteamOS. See #82.

The python rewrite reduces the number of dependencies in the application because we are now using python modules instead.

Stretch Goals

Potential GUI Improvements

  • Modify CSS of installer panel so that the disabled fields are more distinct from the active fields
  • Make the installer panel's get release list run automatically to reduce clicks (?)
  • Make the installer panel's get exe list run automatically (?)

Update README

After all alpha work is done, update the README to reflect the current state of the program.

Test optargs and menu options

This is part of alpha testing. To get to beta, we need to verify the following.

  • All optargs available function as intended
  • All CLI menu options available function as intended
  • All GUI menu options available function as intended

Add ChromeOS Support

The bash script works on ChromeOS. This issue is more like, "Verify the Python app works on ChromeOS as Bash did", and is something closer to a regression check. We also should add necessary instructions to the README. See #7.

Remove Logos 9 Support

After posting a discussion and calling the community to respond in Telegram/Matrix, after being open for three weeks we have not had any response pertaining to keeping Logos 9 support.

#44

I suggest that we remove Logos 9 support. We can keep most of the infrastructure we have in place should a Logos 11 be forthcoming and we need to manage both versions. This would obviate the need to have a version selection menu/dropdown.

In general, I am in favor of supporting only the latest release of Logos, given that it is proprietary software. Of course #22 is an exception to this rule.

Cannot Detect If On Devel Branch

@n8marti and I discussed this issue and we do not see a good solution. Beginning with 8.16+ (IIRC) we no longer need to use staging but can use devel. Unfortunately, our method for detecting the branch used can distinguish between staging and stable but not between devel and stable, or put another way, our current check can determine if we are using staging or if stable/devel.

What this means is that the script errors on a valid wine devel version, not presenting it as an option for install. Meaning we are effectively back to using staging.

At present, the only option would be to detect the branch based on an operating system specific check, which we have available with the get_os() implemented in the rewrite, but this feels like overkill.

Add an option to reinstall winetricks

To get to beta, we need to add an option to reinstall winetricks in case the user deletes it. This is also necessary for something like #3.

  • optarg
  • CLI menu
  • GUI menu

Clean up #TODO and #FIXME

As we code, we might add TODOs and FIXMEs along the way. Verify that none of these remain before release, or most of them are fixed, or outstanding ones are converted to git issues.

  • TODO
  • FIXME
  • ERR
  • Redundant config vars
  • Convert var names to Python
  • Convert from config.VAR to config[VAR]?
  • Clean up PEP8 warnings

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.