One day, the Debian provided libtool started to not allow me to build my own versions of software on my own computer. Then, if I understand things correctly, the libtool people thought that the Debian reasoning for this change was good and made these changes to the tool which is available for everyone. What those changes did for me is that all of a sudden, if I wanted to to build my own gtk+, I would now need to build all of the software that uses gtk+ as well. So, for example, I like to build GIMP from the current source repository but would rather have my music player from a binary provided by Debian. The changes that were made to libtool put me into the situation where I either had to use all Debian provided gtk+ software or I had to build all of it myself. This is exactly the kind of thing that I tried avoid by learning how to do both things -- build software and work with the Debian system.
One example of when the Debian provided software quit being wanted on my computer is Firefox. Their version called "Iceweasel" one day needed to have so many additional libraries installed to continue to basically do the same thing on my computer (for me at least) that a web browser has been doing since I started to use one back in 1998. As the owner of your computer, and the way GNU software should be working is that you get the option to build your own and fine tune the building of it to suit your own needs. At least, this was the mindset that got me involved to begin with. I needed to work "around" libtool to get this piece of software back under my control. It wasn't supposed to be like that.
And GIMP! To the best of my knowlege, there are no debs provided for many of the plug-ins on a 64 bit computer, so better to build my own. Also, I prefer this application to not use libtiff. I got involved originally because it was supposed to be about affecting good change. Like making the world switch to ogg format for their computer music and also about perhaps causing the changing away from old and abused libraries (like libtiff). You know, making the world a better place kind of stuff. The world I see is fill with anything but this now. Where the old crappy way works with free software instead of the world working with new and less crappy stuff that allows everyone who wants it access. I don't like libtiff. I also don't like a gtk+ that is built with dependencies upon libjpeg and libtiff. Those dependencies are better left to the applications that use these widgets.
I am not sure what happened to Debian and to libtool that they started to make it so you have to use only binaries installed by their distribution; until I have a better understanding on what sort of politics and problems made that decision for us (users of Debian and this GNU build tool) I have this to offer:
It used to work that you could add a line /usr/local/lib to the file /etc/ld.so.conf and then you could easily build the software that you opted to build locally. This was nice because you had the option (as a user) to easily over-ride the distribution and run current versions of some software or even old versions of it if you wanted to.
Now that Debian has opted to be a software dictator and not a Linux distribution, this no longer works. When you build the software of your choice, the build process will choke on .la files that it finds in the non-local section of /usr, causing a situation where the distribution tells you what software you can use.
To change this situation, I start a special shell. Here are the pertinant parts of the shell script that I use:
ACLOCAL_FLAGS="-I $prefix/share/aclocal" export ACLOCAL_FLAGS #echo "ACLOCAL_FLAGS set to $ACLOCAL_FLAGS" PKG_CONFIG_PATH="$prefix/lib/pkgconfig:$PKG_CONFIG_PATH" export PKG_CONFIG_PATH #echo "PKG_CONFIG_PATH set to $PKG_CONFIG_PATH" LD_LIBRARY_PATH="$prefix/lib:$LD_LIBRARY_PATH" export LD_LIBRARY_PATH #echo "LD_LIBRARY_PATH set to $LD_LIBRARY_PATH" PATH="$prefix/bin:$PATH" export PATH
What is interesting about this is that they went so far as to break bash (I think) so that exporting the environment variable LD_LIBRARY_PATH doesn't work. So when running ./configure or ./autogen.sh from the commandline, you have to tell your shell this information again, like this:
Q: How did you get into artificial intelligence? A: Seemed logical -- I didn't have any real intelligence. carol@bread:~$ LD_LIBRARY_PATH=/usr/local/lib ./autogen.sh
Then, for some build scripts (so far, not gtk+ and GIMP but for example MOZILLA HEAD) you will have to set that variable when installing software:
Think twice before speaking, but don't say "think think click click". carol@bread:~$ su Password: bread:/home/carol# LD_LIBRARY_PATH=/usr/local/lib make install
It is actually stupid to assume that if they are hotplugging your display, that your root password is unknown to them. The really ignorant thing is to believe that anything you do on your computer if it is online can only be seen by you. Especially if your life and network are being run by a person whose real life experiences make him capable beyond running a computer of only knowing how to find and go to restaurants.
I officially apologize for believing in people.
Back to working around software problems that were probably made by people who don't have anything real in their lives. I actually should try to install GIMP and GTK+ with that previous example because running this software without setting that environment variable causes problems that can be seen when you try to install plug-ins that depend on other software that you might have installed for it. The most recent example of this for me was GIMP's Mathmap which depends on libgsl which I installed for it this same way.
So, just building your software this way is not enough. This problem, which I tried to explain to the libtool developers and described as the software being "ignorant" where perhaps I should have described the software making the developers themselves appear to be unnecessarily necessary, spills into your desktop and the way you start applications from yet another bunch of software.
From the commandline:
Tonight you will pay the wages of sin; Don't forget to leave a tip. carol@bread:~$ LD_LIBRARY_PATH=/usr/local/lib /usr/local/bin/gimp-2.3 &
Perhaps you have a button that starts GIMP (or other software) from the desktop. I had to use this script with the button to get the environment that XFCE4 gives me to run GIMP with the software that I built:
#!/bin/sh LD_LIBRARY_PATH="/usr/local/lib" export LD_LIBRARY_PATH exec /usr/local/bin/gimp-2.3
Make that script executable and tell the little button on your desktop to use this script when starting whatever application you wanted on your computer and built to be there.