PDA

View Full Version : Problem with backward compatibility



leonardevens
25th May 2007, 03:22 AM
I am trying to use an old version of a program which ran under Fedora Core 3. The program has its own set of libraries and links---including a link for libc.so.6. In order to get it to work previously, I had to link the local libc.so.6 to an older version of libc, namely libc.2.3.4.so, which I found on another machine where the program works. I tried the same thing under Fedora Core 6, but I then get all sorts of error messages having to do with the fact that this libc doesn't recognize GLIBC_2.4, and that is needed by various X libraries. So I linked instead to the system /lib/libc.so.6 which is a link to libc-2.5.so. Those error messages go away, but I then get an error messages indicating that one of the other local libraries can't find GLIB_2.0. ldd -v run on that library shows it asks for that, but then libc-2.5.so doesn't show it. On the other machine it did.

I don't have the option of recompiling the program, and a new copy of it costs about $1,000. I am reluctant to lay that out, and even I did, I could have exactly the same problem with the next version of Linux.

Does anyone have any suggestions? Even a clue about where to start might be helpful.

marcrblevins
25th May 2007, 07:21 AM
What is the $1000 program called?

leonardevens
25th May 2007, 02:33 PM
The program is called Maple. It is a symbolic manipulation program. The version I have is an an earlier version, I obtained as part of a site license at my university, but the terms of that site license have changed for the latest version, so it is not available for my use. I would have to purchase it indepdenently, and the list price is $995.

pete_1967
25th May 2007, 02:58 PM
I would have to purchase it indepdenently, and the list price is $995.

Out of curiosity had a look at their site and looks to me, you can have it for $99 (http://www.maplesoft.com/pricing/):


Student Use
Use of the software is for personal study purposes only. Maplesoft reserves the right to deny orders in situations where student status cannot be verified.

RupertPupkin
25th May 2007, 03:14 PM
I've also run into this same problem with older programs. The way I fixed it was to install the libraries that each of the programs needed in a special library directory just for that program. Then I add that directory to the /etc/ld.so.conf file and run ldconfig. The trick is installing the libraries in a special location. If you have the libraries on another machine then you could just copy them. But if you only have the RPMs for the libraries, then you have to extract the libraries manually from the RPM and then copy them to the right place. You can't just install the RPMs because then they'd possibly overwrite existing newer versions. The way I do it is something like this:

1. cd /tmp
2. mkdir old
3. cp /some/path/to/some_old_package.rpm old
4. cd old
5. rpm2cpio some_old_package.rpm | cpio -ivd

This will put all the RPM contents under the /tmp/old directory, you can then copy them wherever you want.

leonardevens
25th May 2007, 04:06 PM
I am not a student. I am a (retire0 faculty member. But, I will call them and see what they will do.

leonardevens
25th May 2007, 04:10 PM
I've also run into this same problem with older programs. The way I fixed it was to install the libraries that each of the programs needed in a special library directory just for that program. Then I add that directory to the /etc/ld.so.conf file and run ldconfig. The trick is installing the libraries in a special location. If you have the libraries on another machine then you could just copy them. But if you only have the RPMs for the libraries, then you have to extract the libraries manually from the RPM and then copy them to the right place. You can't just install the RPMs because then they'd possibly overwrite existing newer versions. The way I do it is something like this:

1. cd /tmp
2. mkdir old
3. cp /some/path/to/some_old_package.rpm old
4. cd old
5. rpm2cpio some_old_package.rpm | cpio -ivd

This will put all the RPM contents under the /tmp/old directory, you can then copy them wherever you want.


I got some compatibility libraries for RedHat 5 and installed them, but I still can't get it to work. But perhaps you are right and I have to get a complete set of old libraries and everything they use and put them somewhere. Also, I think I have to have the maple components look there first. I will keep trying, but I'm not sure I can get it to work.