You are not logged in.

#1 2022-01-26 20:53:13

Batou
Member
Registered: 2017-01-03
Posts: 259

Programs that require old libraries

Hi,

How do you guys deal with old programs that rely on old libraries and are not compatible with new libraries that ship with Arch? Updating the program to use new versions of the library would be a lot of work.

How do official Arch maintainers and packagers deal with this problem? I've always wondered that.

Thanks!


Please vote for all the AUR packages you're using. You can mass-vote for all of them by doing: "pacman -Qqm | xargs aurvote -v" (make sure to run "aurvote --configure"  first)

Offline

#2 2022-01-26 20:59:50

Trilby
Inspector Parrot
Registered: 2011-11-29
Posts: 29,447
Website

Re: Programs that require old libraries

Do you have any examples?  There are several "old" libaries available in aur packages that can be installed alongside their current counterparts.  This is likely the only reasonable general approach, but in any given specific case there might be other alternatives - some of which might make more sense.


"UNIX is simple and coherent..." - Dennis Ritchie, "GNU's Not UNIX" -  Richard Stallman

Offline

#3 2022-01-26 21:22:10

Morn
Member
Registered: 2012-09-02
Posts: 886

Re: Programs that require old libraries

I occasionally run some late 1990s binaries on Arch by setting their "LD_LIBRARY_PATH" environment variable to a directory with the old libs.

Works very well, but is really only necessary for me for closed source software where recompiling is not possible...

Offline

#4 2022-01-26 22:57:09

icar
Member
From: Catalunya
Registered: 2020-07-31
Posts: 442

Re: Programs that require old libraries

You can also take a look at Fedora's toolbox (which works with Arch). It allows to create an isolated environment where you can install older libraries.

Offline

#5 2022-01-27 00:23:54

Batou
Member
Registered: 2017-01-03
Posts: 259

Re: Programs that require old libraries

Trilby wrote:

Do you have any examples?  There are several "old" libaries available in aur packages that can be installed alongside their current counterparts.  This is likely the only reasonable general approach, but in any given specific case there might be other alternatives - some of which might make more sense.

Yesterday I was trying to compile one of the old X11 games from this list: https://cyber.dabamos.de/unix/x11/ and could only get it working with old libs. Hence the question on how to deal with this issue.

Trilby, do you know how Arch maintainers deal with libraries that change their APIs and programs that are not updated to reflect that. Do they delay library rollout? Or work on patches?

Morn wrote:

I occasionally run some late 1990s binaries on Arch by setting their "LD_LIBRARY_PATH" environment variable to a directory with the old libs.

Works very well, but is really only necessary for me for closed source software where recompiling is not possible...

Yep, I do the same. I wanted to know how to distribute such packages. You can't expect an end user to set their envs. And there's also an issue where to install such libs and how to name them.

icar wrote:

You can also take a look at Fedora's toolbox (which works with Arch). It allows to create an isolated environment where you can install older libraries.

Never heard of this! Thank you.

Last edited by Batou (2022-01-27 00:27:57)


Please vote for all the AUR packages you're using. You can mass-vote for all of them by doing: "pacman -Qqm | xargs aurvote -v" (make sure to run "aurvote --configure"  first)

Offline

#6 2022-01-27 07:40:27

seth
Member
Registered: 2012-09-03
Posts: 49,992

Re: Programs that require old libraries

Batou wrote:

I wanted to know how to distribute such packages. You can't expect an end user to set their envs. And there's also an issue where to install such libs and how to name them.

Local, in a game specific path - stay away from system paths - especially! if the binary resolves an untagged version (foo.so instead of foo.so.1.2.3)
You're essentially in the dll-hell.

As for the environment, make the main executable a script that sets the proper environment and calls the actual binary.

Offline

#7 2022-01-27 12:29:26

Morn
Member
Registered: 2012-09-02
Posts: 886

Re: Programs that require old libraries

Batou wrote:

Yesterday I was trying to compile one of the old X11 games from this list: https://cyber.dabamos.de/unix/x11/ and could only get it working with old libs. Hence the question on how to deal with this issue.

Which game? There are several.

Most of the programs on that page seem to build fine on FreeBSD. So maybe you should look at https://www.freshports.org/ and determine what patches are applied for the FreeBSD port.

Offline

#8 2022-01-27 13:33:50

latalante1
Member
Registered: 2018-08-30
Posts: 110

Re: Programs that require old libraries

Batou wrote:

Yesterday I was trying to compile one of the old X11 games from this list: https://cyber.dabamos.de/unix/x11/ and could only get it working with old libs. Hence the question on how to deal with this issue.

Please specify which application you have a problem with. What exactly are you doing and what exactly doesn't work.

In my opinion, about 99% of these applications should compile, launch, and run.
The old X code is really compatible with the latest Xorg, X11,...
I recommend Keith Packard's blog entry.
https://keithp.com/blogs/kgames/

Besides, some of these applications can be found in the archlinux repository.
Some are still available in debian. For example, sunclock. A really very unusual interface. You have to sweat, work hard to learn how to operate it. I was running.
https://ftp.debian.org/debian/pool/main/s/sunclock/
Xboard version Xaw was compiled and run under archlinux (version gtk2 is in the repository).

I omit xterm, gvim, xclock, xcalc, xfontsel, xev,.... These are still in common circulation.

Offline

#9 2022-01-27 13:46:10

Trilby
Inspector Parrot
Registered: 2011-11-29
Posts: 29,447
Website

Re: Programs that require old libraries

latalante1 wrote:

Please specify which application you have a problem with. What exactly are you doing and what exactly doesn't work.

+1

I just grabbed the first one on the list (3dpong) and it built just fine.  The makefile includes some unneeded include path specifications that I thought might need editing, but they don't actually matter as they just add irrelevant extra include paths - the compiler still finds the correct headers.

This all really sounds like "what's the general process of troubleshooting a problem".  There isn't one specific way.  If you see a problem, you diganose it, identify the source, and then fix it.  Sometimes this involves patching a source file but much more often IMHO adjusting a Makefile or similar build file would be sufficient.

Where these patches come from also depends on the software.  But the only general answer is "whoever cares enough to patch it."  If we're talking about open source software, once someone patches old software that patch is likely available somewhere.  Distro devs / packagers may often be on the front line for doing such patching, but largely by coincidence.  Packagers generally have a say in which packages they are responsible for - sure they might get "assigned" some, and they may take on many they feel qualified for as a service to the community even if they don't use them; but there is almost certainly an over-representation of packages devs personally care about in the list they maintain (at least compared to a random shuffling of assignments).  So if they see a package they use / care about no longer builds, they'll be motivated to figure out how to fix it.

Then once any package in any notable distro makes a patch for said software to build on current systems, it'll be publicly available and other packagers from other distros can pick it up.  So all it really takes is one person who cares enough about the software to patch it, and the patch will filter through the various communities.  And if there isn't one person who cares enough about the software ... well, then, quite literally, who cares if it doesn't build anymore.


"UNIX is simple and coherent..." - Dennis Ritchie, "GNU's Not UNIX" -  Richard Stallman

Offline

#10 2022-01-27 15:26:43

latalante1
Member
Registered: 2018-08-30
Posts: 110

Re: Programs that require old libraries

The oldest WM that I have compiled and run was Siemens RTL tiled window system from 1987. Not under archlinux, but PLD linux (i686), a few years ago. Although it seems feasible to me and under Archlinux (though due to the architecture, more complications).
To work (and compile properly) it required the very rare liboldX library.
https://xorg.freedesktop.org/archive/in … .1.tar.bz2

I highly recommend watching the video. Really endearing.
http://www.ibiblio.org/openvideo/video/ … _04_m4.mp4

Another link with information on how to run it.
https://dev.suckless.narkive.com/ZzbkXS … ow-manager

Offline

Board footer

Powered by FluxBB