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

Lutris #103

Closed
wants to merge 3 commits into from
Closed

Lutris #103

wants to merge 3 commits into from

Conversation

Thrane20
Copy link

@Thrane20 Thrane20 commented Jan 1, 2023

Fairly simple new addition.

A new base Lutris image that borrows heavily from the Steam image as an example. Image installs the necessary wine and winetricks foundation, then installs the lutris package.

Utilises the common /home/retro/ volume for subsequent lutris installs.

This image does not include any wine helping functions outside of what Lutris can do through its UI. It's a pure Lutris install only.

Copy link
Contributor

@zb140 zb140 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for this! I just pulled it and gave it a try, and it's looking pretty good. I left a couple of minor comments. Also, could you please fixing the lint warnings in the changed files? Feel free to ignore the ones in the lutris.yml though; I think we just need to disable those particular warnings globally.

One issue I ran into on launching the new container was that Lutris complained about not having i386 drivers for Vulkan. I changed the Dockerfile to also install a few more packages and that went away (libvulkan1 libvulkan1:i386 mesa-vulkan-drivers mesa-vulkan-drivers:i386). Have you seen any issues with drivers, or was that something peculiar to my setup?

Unfortunately I wasn't able to try much of the actual functionality -- I tried linking my Epic Games account but kept getting an "unauthorized" error. I don't have accounts with the other sources so I just left it at that, but the containerization seems to have gone well :-)

depends_on:
- sunshine
image: ghcr.io/games-on-whales/lutris:edge
build:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It may be a good idea to comment out the build: section in the checked-in version. Historically we've done that to help prevent confusion around whether a pre-built image was being used or not; it probably isn't necessary anymore, but most of our other files still do it.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense. This is my first PR on any github project :) - so I'll need a hand. Do I do this in my fork and then create a new PR?


# Get the latest wine && winetricks
# The following is based on gloriouseggroll's advice on how to get out of wine dependency hell
RUN dpkg --add-architecture i386
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It may be easier to maintain this going forward if we move it to a style more like the other containers (a single RUN command, a REQUIRED_PACKAGES arg, standardized setup/cleanup commands).

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Got it. I can see how you're styling this - so will follow this from now on. I have another branch I'm working on too for some other functionality I'll PR with you guys at a later date.

@zb140
Copy link
Contributor

zb140 commented Jan 5, 2023

@ABeltramo and I dug into the Epic Games issue a bit more and it looks like a Lutris bug that has been fixed. That led me to notice that this is actually installing the Lutris version from the standard Ubuntu repo, which is pretty old at this point (0.5.9.1). I think it would be better to download a more up-to-date version from the GitHub page during the build process, so we can take advantage of new features without having to wait for them to make it into a new Ubuntu LTS release.

@Murazaki
Copy link
Contributor

Murazaki commented Jan 8, 2023

Lol I've just been doing this yesterday night and did not even realized someone tried it.

I added lutris repository for latest versions on my side. Wine is not detected and complain about freetype so maybe I'm just installing it wrong, gonna follow your method and add the repo too.

Here is what I used so far

ARG BASE_APP_IMAGE

# hadolint ignore=DL3006
FROM ${BASE_APP_IMAGE}

ARG DEBIAN_FRONTEND=noninteractive

ARG REQUIRED_PACKAGES=" \
    libfreetype6 wine64 steam lutris \
    libvulkan1 libvulkan1:i386 \
    mesa-vulkan-drivers mesa-vulkan-drivers:i386 \
    libdbus-1-3 libgtk-3-0 libegl1 libsdl2-2.0-0 \
"
RUN apt-get update -y && \
    apt-get install -y --no-install-recommends wget software-properties-common && \
    echo "deb https://download.opensuse.org/repositories/home:/strycore/Debian_11/ ./" | tee /etc/apt/sources.list.d/lutris.list && \
    wget -qO- https://download.opensuse.org/repositories/home:/strycore/Debian_11/Release.key | tee /etc/apt/trusted.gpg.d/lutris.asc && \
    # \
    # Install steam (Steam is 32-bit only) \
    dpkg --add-architecture i386 && \
    add-apt-repository multiverse && \
    apt-get update -y && \
    apt-get install -y --no-install-recommends $REQUIRED_PACKAGES && \
    # \
    # Cleanup \
    apt-get remove -y software-properties-common && \
    apt-get autoremove -y && \
    rm -rf /var/lib/apt/lists/*

COPY --chmod=777 scripts/startup.sh /opt/gow/startup-app.sh

USER ${UNAME}

ENV XDG_RUNTIME_DIR=/tmp/.X11-unix

ARG IMAGE_SOURCE
LABEL org.opencontainers.image.source $IMAGE_SOURCE

Lutris is a great aggregator (though not as complete as Playnite) but a console/TV screen would be better in the end, it would be good if the API code was separated from the GTK GUI on their side.
I also was thinking about using Pegasus, but it seems in a relly alpha stage and is not compatible with jammy off the bat. I might end up trying using just Playnite on wine ?
Last issue I ran into and that I think will still remain in any situation : Humble store needs a browser to connect. I might add epiphany to it ?

@Murazaki
Copy link
Contributor

Murazaki commented Jan 8, 2023

Ended up sharing it in another PR here : #115

@ABeltramo
Copy link
Member

Superseeded by #177

@ABeltramo ABeltramo closed this Oct 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants