Comments (18)
Now .deb file installed game and it even started! Good work!
I found bug though. For some reason there is problem with controls. In menu up arrow and left arrow doesn't work. If you can get to game, your choice of character will run constantly to the left.
from jazz2-native.
It seems there is nothing wrong in the log. I can try it myself, but it's probably some bug in GLFW library (and also it could be already fixed in newer versions). Just use the SDL version if it works for you.
from jazz2-native.
ubuntu-18.04
GitHub Runner is deprecated and I would like to keep using ubuntu-latest
. So should I replace libglew2.2
with libglew2.0
? I'm not really familiar with this, so I'll take suggestions.
from jazz2-native.
It is necessary to use older dependencies (thus building on older distros) when supporting older GNU/Linux systems via native packages. Launchpad builds them for each distro separately, making it possible to use the latest dependencies provided by the OS. There are other ways tho, if you want to bundle dependencies, most notably Appimages and other distribution formats including Snaps or Flatpaks that includes dependencies bundled at the cost of binary size. Another way is static compilation (e.g. https://johnvansickle.com/ffmpeg/) or shipping the libraries alongside binaries (like on Windows), also universal installers come to mind (those with the .run
extension - Virtualbox, Nvidia drivers).
Packages should usually be built for OS releases that are still maintained upstream (in this case, those colored yellow and green here: https://en.wikipedia.org/wiki/Ubuntu#Releases). Practicality is more important, except when features and security updates are involved. So I would say, target the oldest (yellow colored) Ubuntu (18.04 is quickly reaching EOL so you might want to skip that as you said) and its dependencies if you want to universally support multiple releases at once or try to bundle them statically.
from jazz2-native.
I changed GLEW to 2.1 and it seems I can't run it on Ubuntu 22 anymore, because there is no GLEW 2.1, only GLEW 2.2. So any suggestions before I roll it back? Is static linking of GLEW the only way?
Also Flatpak and Appimage as another option could be great, but I don't know how to build them.
from jazz2-native.
I changed GLEW to 2.1 and it seems I can't run it on Ubuntu 22 anymore, because there is no GLEW 2.1, only GLEW 2.2. So any suggestions before I roll it back? Is static linking of GLEW the only way?
Probably. Makes sense as compiled binaries tend to require specific versions of libraries. Maybe include a separate static workflow? You can also strip the binary and compress it using UPX.
from jazz2-native.
OK, I changed Linux build to use static GLEW, so it should work correctly now. I wonder if binary is already stripped or not. Windows version is stripped. I would like to avoid UPX, binaries are not that big.
from jazz2-native.
I tested commit 3cd8dc3 and it's .deb file in Focal. Now it allows to install it with success, but there is still problem to run program itself.
./jazz2: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by ./jazz2)
./jazz2: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by ./jazz2)
./jazz2: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./jazz2)
Focal's libc6 is listed as 2.31.
Bionic's libc6 is listed as 2.27 (If you are interested to support almost EOL package base.)
from jazz2-native.
So I have to build it directly on corresponding OS version, right? Is there any other way?
ubuntu-18.04
runner is already deprecated, so it can be removed anytime and it will probably be very soon. I can add workflow with ubuntu-20.04
if you need it though.
from jazz2-native.
So I have to build it directly on corresponding OS version, right? Is there any other way?
Pretty much what I said. libc6 is usually the wall at which point I give up satisfying dependencies. This is why you have to use older OS releases because dependencies go deep to core system level (e.g. Virtualbox use EL6 to build .run
packages which is 12 years old atm, but still being supported via Extended Life Phase till 2024).
Regarding stripping ELF binaries, I was using https://web.archive.org/web/20190921150039/https://tep.shoutwiki.com/wiki/Building to do that (this is how executables are stripped when buliding Actually, the .deb
packages from source), but you can use other methods like the install -s
or something.file
command tells you whether the binary is stripped or not.
from jazz2-native.
ubuntu-18.04
runner is already deprecated, so it can be removed anytime and it will probably be very soon. I can add workflow withubuntu-20.04
if you need it though.
Focal is supported until 2025, and many people (me included) likes to use more matured version of their distro.
This means there are many users who use Ubuntu 20.04, Linux Mint 20.3, Pop!_OS 20.04 and many other distros that use Focal as their package base until the newer ones are matured enough for them. I even remember there was article about it some years ago.
from jazz2-native.
I added https://github.com/deathkiller/jazz2-native/actions/workflows/linux_legacy.yml with ubuntu-20.04
. Also, I disabled GLEW for Linux builds, because it seems it's not needed there. Everything should be fine now.
from jazz2-native.
Send me log from terminal and also try both SDL and GLFW versions.
from jazz2-native.
SDL version worked fine. No problem there it seems.
GLFW version not so much.
from jazz2-native.
I'm experiencing the same issue (on Debian 11).
I read the comments but didn't quite understand how to solve it...
Running $ jazz2
returns:
jazz2: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by jazz2)
jazz2: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by jazz2)
jazz2: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by jazz2)
from jazz2-native.
It seems the binary is not compatible with your system. You can try to download build for older Linux versions - https://github.com/deathkiller/jazz2-native/actions/workflows/linux_legacy.yml [in GitHub Actions > Linux (Legacy)] - or build the game yourself. Distributed binaries are precompiled on the latest ubuntu and because it's Linux, there are compatibility issues when you try to run it on different/older OS versions.
from jazz2-native.
Thanks Dan, that did the trick! (:
from jazz2-native.
That's great. You're welcome!
from jazz2-native.
Related Issues (20)
- Have the FMV Cutscenes played at the correct aspect ratio (4:3) HOT 4
- Graphical Glitches on intel iMac HOT 3
- Can't use the optional source paths on Android 13 HOT 2
- Issue with the Dock icons in Ubuntu 22.04+ HOT 3
- Passing arguments to macOS version HOT 3
- DualSense controller doesn't work correctly on Android (but Xbox controller does) HOT 18
- WASM version crashes on start HOT 7
- Opening cutscene is missing the sound effects HOT 2
- "Save & exit" doesn't save the game progress on Android HOT 1
- Building for older macOS HOT 2
- Port for handheld retrogaming consoles HOT 4
- opengl won't allow it to start HOT 22
- Multiplayer Netplay support. HOT 2
- build broken on OpenSuse Leap 15.4 (gcc-13) HOT 2
- Flatpak Build HOT 7
- Jazz2 SDL binary doesn't recognize DS4 controller properly HOT 4
- Assigning multiple controller buttons to the same action HOT 2
- How to run JJ2 on Mac HOT 7
- Compile failure, possibly glibc related. HOT 23
- Issue with bluetooth gamepad HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jazz2-native.