I needed to install a program (GSAS & EXPGUI) that depends on the libg2c0 library. This library was in the repositories up to Ubuntu Jaunty (9.04), and then it was removed.
The solution is to download the Jaunty package, and then sudo dpkg --force-depends -i libg2c0_3.4.6-8ubuntu2_amd64.deb
. If found this solution not to be in the spirit of Ubuntu (is there a word for that, like Pythonic is to Python?)
In general, what are the reasons for removing a given package from newer versions?
Is there a better way to manage dependencies to no longer supported packages?
Packages are removed from the repository in newer releases for different reasons.
Often package names have a reference to its version. In this case, a newer version might exist. In this case the dependency for your package might need to be updated. However, this is rather a replacement than a pure dropping of packages.
Packages are often dropped when there is no active development anymore, and they are not in a state than is valuable. It makes no sense to keep packages with critical bugs which are not fixed.
Another reason might be that no maintainer works on the package anymore. This might even be the case in Debian, since a lot of Ubuntu's packages are synced from Debian. This is a matter of interest. If the current maintainer has no time or passion anymore, the package is put on a list of orphaned packages. This allows the community to look if someone else will step up. If not, it will be dropped after some time since it is assumed that nobody has interest in the package anymore.
In your particular case, the GNU Fortran 77 was replaced by the GNU Fortran 95 compiler. Hence the runtime libraries have been dropped too. I am not sure if that helps you, but your package should be made to run on the new Fortran compiler (which should be possible if it is open source). Then it will use the new library which is available.