Most software that you can obtain the source code for will compile and work on the PowerPC. Several Open Source Linux programs known to work with PowerPC Linux are mentioned below.
Why Won't A Program Work with PowerPC Linux?
No PowerPC Specific Binaries
If the source code is not avalible, and there is no pre-compiled PowerPC Linux binary it won't work on PowerPC Linux. PowerPC Linux is NOT binary compatible with x86/Intel Linux or other Linuxes. It is however compatible with MkLinux binaries, and all PowerPC Linux binaries support all platforms that support PowerPC Linux. Mac OS and Mac OS X binaries will NOT work on PowerPC Linux, nor will they work on Mac OS or Mac OS X. However, you can run these programs on-top of the free Virtual Machine Mac-on-Linux, assuming you also have the required OS booted and running.
iMacs, iBooks and PowerMacs (which use the PowerPC CPU) are big endian, while x86 machines are little endian. Endianess is the way the CPU reads binary numbers, if a program assumes it's running on a little endian machine and a not big endian machine it will be seriously broken on the PowerPC. An example of this is many of the Napster-clones are broken on the PowerPC. Thankfully, many of them (including gnapster and knapster) have been patched, so they work correctly on the PowerPC.
i386 (Or Other Platform) Assembly
Assembly Code is low level processor instructions. This makes it dependent on a certain CPU. This means things like x86 binutils (really fast common utilities written in assembly) won't work the PowerPC. The only way to make such code work on the PowerPC is re-write it in a higher level language (C, C++, Perl, etc.) or re-write it in PowerPC assembly.
PowerPC Little Endian Sound
For compatibility reasons PowerPC Linux has little endian sound drivers. Some programs (like EsounD) expect big endian sound on big endian systems. MkLinux and old versions of PowerPC Linux (pre-2.1.24) use big endian sound.
Accessing Special x86 Features
Some apps like those that measure CPU temp. won't work do to PowerPC processors work different then there x86 equivalents (note this example does not apply to G4 processors running Linux 2.4 with Tempeture in /proc.)
PowerPC Linux's File-system is Little Endian ext2fs
Old versions of MkLinux and LinuxPPC used to use a big endian version ext2fs, however all modern versions are little endian (like the x86). This could possibly break some tools that directly access the filesytem, and assume that on a big endian system the filesytem is big endian.
GCC 2.95 is Very Strict
gcc is very strict about the C++ standard, it will stop compiling certain programs due to certain errors. Try opening the Makefile in the directory where it fails, and add to the CXXFLAGS= and CPPFLAGS= lines the flag -fpermissive.
v_align Works Different on The PowerPC
This function works quite differently on the PowerPC then on i386 machines. This can cause all kinds of problems compiling on the PowerPC, it's best to ask about this kind of question on linuxppc-dev mailing list.
Relies on Libraries or Software non-Existent on the PowerPC
Most of the libraries that are avalible on the i386 are also avalible on the PowerPC. There are a few exceptions however -- such as binary only ones (such as the Mp3.com secure software), GNUstep (currently broken on the PowerPC because of other problems), WINE (a port is happening, with an x86 emulator, but it's far from usable), etc.