-
-
Notifications
You must be signed in to change notification settings - Fork 150
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
libpng12 (Ubuntu 16.04 default) is too old #84
Comments
Just got confirmation that it's a problem on default installation of Debian Sid as well. So the current installation instructions in README.md are incorrect for many users. |
Great we got feedback so quickly; fail fast, like they say. |
This issue is Linux, or maybe even Ubuntu-specific. We already knew, that libsdl somehow depends on libpng… and now we know why. SDL1.2 depends on libcaca, which in turns depends on libpng. Unfortunately, on Ubuntu 16.04 that dependency is fixed to libpng1.2 (SDL1.2 dev and libpng1.6 dev packages cannot be installed at the same time in the result). This is rather bad, as we do not care about any functionality provided by libcaca but are held back because of it. SDL2 does not have this problem - it dropped libcaca dependency, so #29 will resolve the conundrum. As far as I can tell, we have following options:
@krcroft what do you think? I would go with (3) |
I also prefer (3) because it disconnects DOSBox from directly using libpng and/or a specific version of libpng. We still directly depend on SDL 1.2, however the user's operating system (however new or old it might be), is free to bring in whatever baggage is needed to satisfy SDL 1.2 - be it libpng 1.2/1.5/1.6, libcacca, and so on. Another option is static linking. SDL 1.2 is long past its support period and now frozen in time, so modern benefits of dynamic linking (like getting new security/bug/performance fixed libraries) are lost with SDL 1.2. (For SDL 2, dynamic linking makes great sense as the community is still plowing fixes into it while retaining API compatibility). The static option also lets us hand-pick the newest libPNG and "best" SDL 1.2 (containing the post-1.2 fixes that Ryan and team have sitting in their mercurial repo, now many years old), which maybe some old distros haven't picked up. So a static binary would give those user only older systems a better experience. I think the way to do a static build is add more So definitely agree to go with (3). |
This is a temporary fix for Ubuntu-based distributions. When SDL1 will be replaced by SDL2, we'll be able to revert this change. Fixes: #84
This is a temporary fix for Ubuntu-based distributions. When SDL1 will be replaced by SDL2, we'll be able to revert this change. Fixes: #84
When implementing release builds I presumed libpng12 will be available everywhere while libpng16 might be missing… as it turns out, the opposite might be true.
It seems like libpng12 is available everywhere… except Ubuntu > 16.04… And some packages might bundle their own copies of libpng12 so that might result in the package working for some users and failing for others.
It seems like most distributions transitioned to libpng16 by default due to security issues.
I need to investigate what package is pulled by SDL or preinstalled by default on major distributions and adjust our scripts and instructions accordingly.
The text was updated successfully, but these errors were encountered: