goo-engine icon indicating copy to clipboard operation
goo-engine copied to clipboard

Feature Request: Linux build is a MUST

Open jurassicjordan opened this issue 2 years ago • 12 comments

I'm very excited to see there is finally a mac build of Goo engine available. But I find it very disappointing that its not available for linux. Even though there are not a lot of folks who run linux natively as their daily driver OS (despite the Steam Deck's popularity ramping up user count significantly) there are folks who built home blender-render farms that typically run a lightweight command line linux OS. Being that this is a fork of blender, this should most definitely have release for Linux, and will be happy to join the 10/month patreon tier if this is planned for near the future. In summary, with the rising number of Linux users on Steam Deck, the utility being able to run goo engine in a render farm, and quite easy porting of the fork to linux, I am of the opinion it would be silly not to make a linux port. I appreciate all the fantastic work going into this project and hope to see this fabulous fork run on linux in the near future, thank you.

jurassicjordan avatar May 06 '23 06:05 jurassicjordan

I've been using Goo Engine for the past months on Linux just fine, however, since there are no official Linux builds, you have to build it yourself.

vignedev avatar May 06 '23 18:05 vignedev

I've been trying to build goo engine on and off on linux for a while and it won't build due to 'make update' always failing

How have you managed this? I follow the build guide on the blender website exactly, except for where I git clone goo-engine instead of blender

CometVoid avatar Jun 03 '23 05:06 CometVoid

The build process was broken because the upstream blender repository layout changed (for the precompiled libraries, make update etc.) during the move to Gitea. Please try checking out the goo-engine-v3.6-release branch and running make update again. If it still fails then delete your local repository (including the lib folder) and start over.

We likely won't ever provide precompiled linux builds, mainly because the build process is a lot easier for linux users, and because making portable builds requires quite a lot of extra setup (different glibc versions etc.)

Lateasusual avatar Jun 10 '23 13:06 Lateasusual

how long until the main branch uodates do you think?

CometVoid avatar Jun 20 '23 03:06 CometVoid

Development of features that we're currently using (or bug fixes) happens in the current goo-engine-vX.Y-release branch, which eventually get merged into goo-engine-main periodically. If you need a version of main that's more up to date with the upstream then you can just merge it locally.

Lateasusual avatar Jun 20 '23 15:06 Lateasusual

because making portable builds requires quite a lot of extra setup (different glibc versions etc.)

Would a flatpak package make this any different from a standard binary package (I.E: .rpm, .deb, etc)?

Naitrate avatar Jun 29 '23 19:06 Naitrate

Would a flatpak package make this any different from a standard binary package (I.E: .rpm, .deb, etc)?

It's more that realistically we would need to setup a docker image, VM, or some other sandboxed environment with minimal versions of all the libraries, lowest supported gcc and glibc etc. for the release to actually be compatible and stable across different distros. For example the official releases are built against a minimal Rocky 8 environment, but given how straightforward it should be to compile it yourself (especially compared to other projects of a similar size), I don't think it's that unreasonable to build from source.

Lateasusual avatar Jun 29 '23 20:06 Lateasusual

it would be simpler to build yourself if the readme was updated to say which branch you need. Would probably get you less complaints too

it was simple to build, just not simple to know that i had to build a different branch

CometVoid avatar Jun 29 '23 20:06 CometVoid

I agree that a Linux build is needed and ideally, if it was a Flatpak you'd have a single package for all Linux without any distribution differences.

zeitue avatar Jun 30 '23 04:06 zeitue

image

'the building process is a lot easier for linux users'

PurpBatBoi avatar Jul 22 '23 18:07 PurpBatBoi

@Axis4s because the building process is easier for linux users. if you can't enter your username, that's just a kill issue

CometVoid avatar Jul 25 '23 01:07 CometVoid

@Axis4s: just press enter, you don't need an account to clone, the server is just weird.

You can also use docker if you don't want to mess with the software on your computer:

FROM rockylinux:8 AS build

RUN curl https://raw.githubusercontent.com/dillongoostudios/goo-engine/goo-engine-main/build_files/build_environment/linux/linux_rocky8_setup.sh | \
    sed 's/dnf install/dnf install -y/' | bash -x

ARG BRANCH=goo-engine-v3.6-release
RUN set -x && mkdir blender && cd blender && \
  git clone --progress --depth 1 --single-branch --no-tags --branch "$BRANCH" \
  https://github.com/dillongoostudios/goo-engine

RUN mkdir blender/lib && cd blender/lib && \
    svn checkout https://svn.blender.org/svnroot/bf-blender/trunk/lib/linux_x86_64_glibc_228 && \
    make -C ../goo-engine update

RUN scl enable gcc-toolset-11 'nice make -C blender/goo-engine ninja'

FROM scratch
COPY --from=build blender/build_linux/bin /

Save it as Dockerfile into an empty directory and run it as sudo docker build --output - . | tar x --one-top-level=OUTPUT_DIR (replace OUTPUT_DIR with a directory where you want the built goo engine. You can probably use simply docker build --output OUTPUT_DIR . if your user is in the docker group) and wait (a lot. Subversion cloning is ridiculously slow). This uses rockylinux 8 like the official blender releases, so if the upstream blender binaries work for you, this should work also.

u3shit avatar Sep 12 '23 19:09 u3shit