Recent Changes - Search:

edit SideBar

FAQs (Frequently Asked Questions)

still in the works, please be patient.....

Table of contents

  1. Compatibility issue with the original AIX Toolbox for Linux Applications
  2. A solution to the RPM dependency hell problem
  3. I am getting an error message that a dependent module /opt/freeware/lib/libintl.a(libintl.so.8) could not be loaded
  4. I need the functionality of gettext >= 0.17
  5. wget gives warning error message about libidn and libiconv
  6. configure does not detect shared library capability on AIX V6.1 and V7.1
  7. Why are you using RPM and not the native AIX BFF package format?

Compatibility issue with the original AIX Toolbox for Linux Applications

Please note: While I strive to keep my RPM packages 100%-compatible with the RPM packages of the AIX Toolbox for Linux Applications there are some things beyond my control.

Whenever the rpm.rte AIX LPP gets updated -- for whatever reason, e.g., a technology level update -- problems may arise if you have installed newer versions of the following three packages from my website:

The main culprit is the gettext package here, I have yet to see an error with bzip2 or zlib. Therefore, if you get the following error message

 ...
 0509-150 Dependent module /opt/freeware/lib/libintl.a(libintl.so.8) could not be loaded.
 0509-152 Member libintl.so.8 is not found in archive
 ...


you are using an old version of that program/package that is still linked against gettext version 0.17:

  • I was so unhappy about the gettext issue described further below that I completely set up my build host from scratch again and recompiled all packages requiring gettext-0.17 to remove that dependency.
  • No package released since July 2009 should need gettext 0.17 anymore!

Explanation: The reason that gettext needs to be re-installed is that whenever the rpm.rte fileset is updated (e.g., new AIX maintenance level etc.), this update blindly overwrites any newly installed versions of those three RPM packages in /opt/freeware/lib.

I consider this behavior completely broken Attach:sad_smiley.gif Δ but there is nothing in my power to change that.

What is especially unfortunate and what I don't understand is why rpm.rte (especially the rpm command) is not compiled with private shared libraries in some private directory -- which would be very easily possible -- and that would not interfere with anything newer installed in /opt/freeware/lib...

Newer versions of rpm.rte at least issue a statement during installation like that:

 Warning: the contents of the following RPM packages will be overwritten.
 If these packages did not come from the AIX Toolbox for Linux Applications,
 it may be necessary to reinstall them.

 bzip2-1.0.5-1
 gettext-0.17-1
 info-4.12-1
 zlib-1.2.3-5



A solution to the RPM dependency hell problem

I guess everybody who has installed a couple of RPM packages using rpm itself and not the help with a tool like yum ran into the following issue:

  1. You have downloaded and want to install RPM aaa.rpm.
  2. aaa.rpm has dependency on bbb.rpm and ccc.rpm.
  3. bbb.rpm has dependency on ddd.rpm and ccc.rpm on eee.rpm and fff.rpm.
  4. etc.

So you end up circling through all your RPM files and downloading all prerequisite RPM files just to install aaa.rpm. This can become quite annoying and time-consuming for packages with lots of dependencies. This is actually where a tool like yum is helping you a lot because it does all the steps outlined above for you. Unfortunately, I have so far found no way of compiling and providing YUM for AIX that could be done in a compatible manner (to the IBM provided RPM) as AIX still uses the old V3.0.5 version of RPM while all RPM-based Linux distributions have switched to RPM V4.X a long time ago. Also all recent YUM versions require at least a RPM version >= 4.4.

My solution approach to this problem

  • Basically what you want is a complete and self-contained list of dependencies for the RPM file aaa.rpm.
  • You download all the RPM packages on this list (make sure that you have downloaded them all into a separate directory which was empty before).
  • After downloading all the RPM packages on the list you can just install the RPM file aaa.rpm as easy as
    rpm -Uvh *.rpm
  • This approach mimics kind of the AIX NIM behavior of a software bundle (the list here) and a lpp_source (the separate directory containing all required RPM files).

Available RPM dependency lists

I have generated (with the help of some scripts) dependency lists for the latest and fully compatible binary RPMs for the following AIX versions:

FTP downloadHTTP download
AIX5L v5.1AIX5L v5.1
AIX5L v5.2AIX5L v5.2
AIX5L v5.3AIX5L v5.3
AIX v6.1AIX 6.1
AIX v7.1AIX 7.1


You have exactly one list for each binary RPM file and the naming convention is as follows:
If the RPM file is called aaa.aix5.1.ppc.rpm then the dependency list file is named aaa.aix5.1.ppc.deps, i.e., the extension .rpm is replaced with .deps.

Downloading RPMs contained in a RPM dependency list

  • How to download the files contained in a RPM dependency lists?
    • The easiest way to download the files contained in a RPM dependency list would be using wget.
  • Where to download the files contained in a RPM dependency lists?
  • Using the example from above you would have downloaded the file aaa.aix5.1.ppc.rpm and would then issue the following command:
 # either download with FTP protocol
 while read i; do
     wget ftp://www.oss4aix.org/everything/RPMS/${i}
 done < aaa.aix5.1.ppc.deps


 # or download with HTTP protocol
 while read i; do
     wget http://www.oss4aix.org/download/everything/RPMS/${i}
 done < aaa.aix5.1.ppc.deps


Please note: While the command above shows what intended action are, a better alternative (no loop at all) would be to combine wget's -B and -i switches:

 # either download with FTP protocol
 wget -B ftp://www.oss4aix.org/everything/RPMS/ -i aaa.aix5.1.ppc.deps

 # or download with HTTP protocol
 wget -B http://www.oss4aix.org/download/everything/RPMS/ -i aaa.aix5.1.ppc.deps


Combining RPM dependency lists

So what do you have to do if you want to combine multiple RPM dependency lists into one, e.g., you want a combined list for Apache and PHP. Those are the required steps (in the example I use AIX 6.1 and please note that the exact version numbers might vary):

 cat httpd-2.4.3-1.aix5.1.ppc.deps mod_php_ap24-5.4.6-1.aix5.1.ppc.deps | sort | uniq > httpd+php.deps


  • Afterwards you have a dependency lists (httpd+php.deps) for Apache and PHP that you can then use to download all required RPMs as described above.

I am getting an error message that a dependent module /opt/freeware/lib/libintl.a(libintl.so.8) could not be loaded

In this case you are still using an old version of the program/package that is producing this error message. Please download and install a newer version of that package. All packages released since July 2009 are linked against the older gettext version 0.10.40 so that error message can not occur anymore.


I need the functionality of gettext >= 0.17

No, you don't.
If you really need functionality of gettext >= 0.10.40 (the version compatible with the original AIX Toolbox for Linux applications) you should install the gettext-progs package that provides the binaries of gettext which are statically linked in order to avoid this error message.


wget gives warning message about libidn and libiconv

wget produces a warning message similar to this one:

 # wget <URI>
 ...
 libidn: warning: libiconv not installed, cannot convert data to UTF-8
 ...


Starting with version 1.12 GNU wget added support for Internationalized Resource Identifiers (IRIs, RFC 3987). When support is enabled (requires GNU libidn and GNU libiconv), links with non-ASCII bytes are translated from their source encoding to UTF-8 before percent-encoding. This requires also libidn to be compiled with GNU libiconv support which was not the case before.
This is now fixed in wget versions starting with:

  • wget 1.12-3
  • wget 1.13.4-3

configure does not detect shared library capability on AIX V6.1 and V7.1

If configure shows the following output lines

 ...
 checking whether to build shared libraries... no
 checking whether to build static libraries... yes
 ...


then you must be alerted because then in the earlier output you should have seen the following lines:

 ...
 checking build system type... rs6000-ibm-aix
 checking host system type... rs6000-ibm-aix
 ...


In this case you should check the following items:

  • Make sure that your autoconf, automake, libtool, m4 versions are not older than January, 2008!
  • Check that the config.guess script knows about AIX V6.1 and V7.1!
    • Older versions still have explicit checks like "aix4* | aix5*)" in these scripts, thus neglecting AIX V6.1/7.1 while the newer versions have checks like “aix[4-9]*)“
  • config.guess tries to "guess" the correct value for the OS
    Wrong: rs6000-ibm-aix
    Correct: powerpc-ibm-aix6.1.0.0 (or powerpc-ibm-aix7.1.0.0, respectively)
  • A "grep AIX config.guess" must return the following output:
    Wrong: *:AIX:*:[45])
    Correct: *:AIX:*:[4567]) or *:AIX:*:[4-9])
  • Check if the situation after an autoreconf has improved?



Why are you using RPM and not the native AIX BFF package format?

To be completed....

Edit - History - Print - Recent Changes - Search
Page last modified on November 05, 2013, at 02:42 PM