Open Source Binaries



Copy from http://wiki.midrange.com/index.php/History_of_OS/400

Release GA Date (AIX<>PASE age roughly 1–2 year prior GA)
V5R3 06/11/2004
V5R4 02/14/2006
V6R1 03/21/2008
V7R1 04/23/2010
V7R2 05/02/2014

Choose AIX RPMs for PASE (see instructions below)

Two sites:

Notes:

  • Not all RPMS run on IBM i PASE, you will have to experiment.
  • RPMs may not be compatible cross sites, works best when RPMs are associated given task (all my gcc RPMs from perzl, etc.)
  • Have CCSID issues? Junk characters? Nothing works? See IBM i actions CCSID (save you an afternoon)
  • Looking for old wwwinstall.sh? see archive

Latest IBM only version (based on AIX Toolbox rpms)

This section of the wiki is dedicated to showing you “How to download and install” pre-compiled Open Source binaries hosted on the IBM AIX Toolbox for Linux Applications web site. This information is offered “as is”, please check this License link for additional details.

Note: wwwaixtool.sh replaces wwwinstall.sh, allowing for newer versions from aix toolbox site.

  • Download click here (4 files) → rpm.rte, wget.rpm, Attach:setup.sh, Attach:wwwaixtool.sh.
    • ftp files from your PC to IBM i (binary mode)
      ftp myibmi
      > bin
      > mkdir /QOpenSys/download
      > cd /QOpenSys/download
      > put rpm.rte
      > put wget.rpm (example version: wget-1.9.1-1.aix5.1ppc.rpm)
      > put setup.sh
      > put wwwaixtool.sh
      
      On IBM i:
      call qp2term
      > cd /QOpenSys/download
      > chmod +x setup.sh          <---make executable
      > setup.sh                   <---install rpm.rte and wget.rpm (example version: wget-1.9.1-1.aix5.1ppc.rpm)
      > chmod +x wwwaixtool.sh
      > ./wwwaixtool.sh 
      
      wwwaixtool.sh release [option scan]
       release:
        aix53          - IBM i V5R4, V6R1
        aix61          - IBM i V7R1+
        rpminit        - admin setup rpm and wget
        fixiconv       - admin fix freeware/lib/libiconv.a (Dependent module libiconv.a(libiconv.so.2) could not be loaded.)
        removefreeware - admin destroy /opt/freeware and links to /opt/freeware (destructive)
        aixtoolboxwgetdirs  - admin web copy local aixtoolbox site map wget http://www-03.ibm.com/systems/power/software/aix/linux/toolbox/alpha.html (IBM only)
       option:
        help           - help customer
        list   [scan]  - list possible downloads
        count  [scan]  - count list possible downloads
        wget1  [scan]  - wget from aixtoolbox
        wget   [scan]  - wget from aixtoolbox
        wgetv  [scan]  - wget from aixtoolbox (view action only)
        rpm1   [scan]  - rpm install
        rpm    [scan]  - rpm install
        rpmv   [scan]  - rpm install (view action only)
                         [scan] - wild card rpm scan [gcc]
      
      Example:
       ./wwwaixtoolbox.sh                         -- help
       ./wwwaixtoolbox.sh aix53 count bash        -- count bash* downloads
       ./wwwaixtoolbox.sh aix53 list bash         -- list bash* downloads
       ./wwwaixtoolbox.sh aix53 wget bash-4       -- web get bash-4.2-3.aix6.1.ppc.rpm
       ./wwwaixtoolbox.sh aix53 rpm bash-4        -- rpm install bash-4.2-3.aix6.1.ppc.rpm
      

New version (based on Perzl site rpms)

Finally, V5R3/V5R4 seem relegated to the past, therefore it is time to update this part of the wiki with more current Open Source binaries. Most IBM i folks are now using binaries from the Perzl site ( perzl.org), therefore a new wwwperzl.sh script was created to web download and/or install rpms and dependencies from Perzl site.

Perzl site provides handy list of dependencies for rpms you may download ( deplists), so very useful managing rpms, therefore setup.sh below creates a local copy of Perzl *.deps tree for use with wwwperzl.sh. Note: Perzl *.deps tree is NOT optional step, www.oss4aix.org.site.dirs and www.oss4aix.org.deps.tar are included in download for setup.sh and wwwperzl.sh to work properly.

Perzl site claims hosted rpms are compatible with AIX Toolbox, but i find simply easier to start over from nothing on my IBM i using wwwclean.sh. You do NOT have to use wwwclean.sh to use wwwperzl.sh, but you may want to delete or move older /QOpenSys/download/*.rpms, in favor of newer *.rpm versions from Perzl site.

Check your PASE and Perzl vintage year match: Not all binaries on Perzl will run on IBM i PASE, especially “latest / greatest” AIX (everyone instinctively wants latest), due to IBM i PASE lagging behind AIX technology releases, to wit, PASE is ALWAYS an older version. I suggest often best using older versions from perzl (save you an afternoon).

  • Check vintage year of perzl binaries, look into the directory of each rpm you intend to download ftp://www.oss4aix.org/RPMS.
  • Second, check your IBM i version vintage year of PASE shipped with the IBM i release (below).
    • You do not need an exact match year, often perzl binaries a few years after the release will still work on the older PASE vintage, but if you run into loader issues not covered below, then you may need to remove/install an older perzl binary. If i may add … before becoming overly upset with IBM PASE-2-AIX “currency”, recall IBM i customers do not update latest IBM i versions quickly, in fact, often run same IBM i release for many years, skipping one or more IBM i release upgrades, therefore PASE can become very old compared to AIX (and perzl).

This information and scripts are offered “as is”, please check ( perzl.org) License link for additional details.

If you have PASE loader issues ‘not load dependent module’ (libiconv/libidn), see fix tip ./wwwperzl.sh aix53 fix.

Download:

  • Attach:download-2.0.tar.zip (required)
    • Attach:setup2.sh — setup replace in download
    • Attach:wwwperzl.sh — wwwperzl.sh replace in download (libiconv shr4.0 fix 2015-Mar-10)
      rpm originates older AIX toolbox,
      common error during rpm installs:
         Could not load program /opt/freeware/bin/rpm:
         Could not load module /opt/freeware/lib/libintl.a(libintl.so.1).
              Dependent module /opt/freeware/lib/libiconv.a(shr4.o) could not be loaded.
              Member shr4.o is not found in archive 
      
      Manually fix libiconv.a(shr4.o):
        ./wwwperzl.sh aix53 fix
        ./wwwperzl.sh aix61 fix
      *note: 
         Replacement version wwwperzl.sh monitors new libiconv rpm
         installs to avoid rpm libiconv.a(shr4.o) issues.
      
      Output:
      /opt/freeware/lib/libiconv.a fixed (ok)
      
    • README.txt (partial)
      README.txt                    -- this file
      
      http://www.oss4aix.org (perzl site compatible with IBM site)
      wwwperzl.sh                   -- perzl download newer AIX *.rpms (V5R4+)
      www.oss4aix.org.deps.tar      -- perzl copy *.deps
      www.oss4aix.org.site.dirs     -- perzl copy RPMS/ structure (names only)
      
      
      ftp://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox (IBM site)
      setup.sh                      -- setup rpm for use (obsolete/removed)
      setup2.sh                     -- setup rpm for use (replace setup.sh)
      rpm.rte                       -- aixtoolbox copy of rpm.rte
      wget-1.9.1-1.aix5.1.ppc.rpm   -- aixtoolbox copy of wget
      wwwinstall.sh                 -- aixtoolbox download older AIX *.rpms (V5R3)
      
      admin:
      wwwclean.sh                   -- destroy (complete delete/remove/clean)
                                       /QOpenSys/download
                                       /QOpenSys/opt/freeware
                                       /opt/freeware
                                       /usr/bin (freeware/bin symbolic links)
                                       /usr/lib (freeware/lib symbolic links)
                                       (start all over from scratch)
      

Instructions:

1) Download (laptop):
unzip download-2.0.tar.zip  (will create download-2.0.tar)

2) FTP 
ftp myibmi
> cd /QOpenSys
> bin
> put download-2.0.tar

2) Setup rpm and perzl *.deps (local copy)
call qp2term (or ssh uid@myibmi)
> cd /QOpenSys
> tar -xf download-2.0.tar
> cd /QOpenSys/download
> ./setup2.sh
  (a) setup installs rpm.rte
  (b) setup rpm install wget
  (c) setup untar perzl deplists  (www.oss4aix.org/rpmdb/deplists/aix53,aix61)
      Note: (c) can take significant time (setting up prezl depend tree ...)

Script help ./wwwperzl.sh help

call qp2term (or ssh uid@myibmi)
> cd /QOpenSys/download
> ./wwwperzl.sh help
customer:
--------------
wwwperzl.sh aix53|aix61 option [scan]
required:
 aix53|aix61
optional:
 option [scan]
 help          - help customer
 admin         - admin help, PASE releases, perzl site copy functions, etc.
 list   [scan] - list possible downloads
 count  [scan] - count list possible downloads
 wget1  [scan] - wget from perzl
 wget   [scan] - wget plus depends from perzl
 wgetv  [scan] - wget plus depends from perzl (view action only)
 rpm1   [scan] - rpm install local (post wget)
 rpm    [scan] - rpm install plus depends (post wget)
 rpmv   [scan] - rpm install plus depends (view action only)
                (*)[scan] - wild card rpm scan [gcc*]

pase->aix release:
 --------------
 V5R3 -> aix52
 V5R4 -> aix53
 V6R1 -> aix53
 V7R1 -> aix61

Ready for download/install:

call qp2term (or ssh uid@myibmi)
> cd /QOpenSys/download
> ./wwwperzl.sh aix53 list curl
> ./wwwperzl.sh aix53 wgetv curl-7.27.0-1   (view rpm list)
> ./wwwperzl.sh aix53 wget curl-7.27.0-1    (do wget)
> ./wwwperzl.sh aix53 rpmv curl-7.27.0-1    (view rpm install -- see tip)
> ./wwwperzl.sh aix53 rpm curl-7.27.0-1     (do rpm install)
:
> ./wwwperzl.sh aix53 wget gcc-4.8.2-1
> ./wwwperzl.sh aix53 rpm gcc-4.8.2-1
:

Note:
you need specify enough version information for unique download,
or a message will be displayed saying "not found' ...

> ./wwwperzl.sh aix53 wget curl       
search [curl] unique version not found
curl-7.27.0-1.aix5.1.ppc.deps
curl-devel-7.27.0-1.aix5.1.ppc.deps

Tip: To avoid conflicts with your PASE installation, best practice use ‘rpmv’ option ( /wwwperzl.sh aix53 rpmv] ), where rpmv does not take rpm install action, but simply outputs the planned action. In curl example below openssl and zlib are ALSO provided by IBM product SC1, therefore you may chose to experiment with mixing Perzl/IBM by executing selected rpm commands manually instead of using script ‘rpm’.

Included Perzl *.deps are nice, in fact, required for wwwperzl.sh to work (setup.sh), but *.deps files are liberal with notion of ‘dependency’, therefore, you may find you do not actually need all listed dependency rpms (aka. bash is nice, but not required for curl).

> ./wwwperzl.sh aix53 rpmv curl-7.27.0-1
[adc@oc7083008330 rpm]$ ./wwwperzl.sh aix53 rpmv curl-7.27.0-1
rpm --ignoreos --ignorearch --nodeps --replacepkgs -hUv bash-4.2-10.aix5.1.ppc.rpm
rpm --ignoreos --ignorearch --nodeps --replacepkgs -hUv gdbm-1.10-1.aix5.1.ppc.rpm
rpm --ignoreos --ignorearch --nodeps --replacepkgs -hUv gettext-0.10.40-8.aix5.2.ppc.rpm
rpm --ignoreos --ignorearch --nodeps --replacepkgs -hUv info-4.13a-2.aix5.1.ppc.rpm
rpm --ignoreos --ignorearch --nodeps --replacepkgs -hUv libgcc-4.7.2-1.aix5.3.ppc.rpm
rpm --ignoreos --ignorearch --nodeps --replacepkgs -hUv libiconv-1.14-2.aix5.1.ppc.rpm
rpm --ignoreos --ignorearch --nodeps --replacepkgs -hUv libidn-1.25-1.aix5.1.ppc.rpm
rpm --ignoreos --ignorearch --nodeps --replacepkgs -hUv libssh2-1.4.2-2.aix5.1.ppc.rpm
rpm --ignoreos --ignorearch --nodeps --replacepkgs -hUv openssl-1.0.1c-1.aix5.1.ppc.rpm
rpm --ignoreos --ignorearch --nodeps --replacepkgs -hUv perl-5.8.8-2.aix5.1.ppc.rpm
rpm --ignoreos --ignorearch --nodeps --replacepkgs -hUv zlib-1.2.3-4.aix5.2.ppc.rpm
rpm --ignoreos --ignorearch --nodeps --replacepkgs -hUv openldap-2.4.23-0.3.aix5.1.ppc.rpm
rpm --ignoreos --ignorearch --nodeps --replacepkgs -hUv curl-7.27.0-1.aix5.1.ppc.rpm

I have NOT experienced any difficulties running both Perzl and IBM version on my machine, but maybe a good idea to run ‘rpmv, before running total dependencies install ‘rpm’, so you understand what you are installing.

bash-4.2$ ls -l /usr/lib*ssl*
/usr/lib*ssl* not found
bash-4.2$ ls -l /usr/lib/*ssl*
lrwxrwxrwx    1 qsys     0               118 Nov  5 17:20 /usr/lib/libssl.a -> ../../QIBM/ProdData/SC1/OpenSSL/openssl-0.9.8j/lib/libssl.a
lrwxrwxrwx    1 rwatkin  0                96 Nov 16 2011  /usr/lib/libssl.a.new -> /QOpenSys/QIBM/ProdData/SC1/OpenSSL/lib/libssl.a
bash-4.2$ ls -l /opt/freeware/lib/*ssl*
-rw-r--r--    1 adc      0           4477977 Jun 11 2012  /opt/freeware/lib/libssl.a
lrwxrwxrwx    1 adc      0                30 Apr 11 15:11 /opt/freeware/lib/libssl.so -> libssl.so.1.0.1
-rw-r--r--    1 adc      0            362538 Jun 11 2012  /opt/freeware/lib/libssl.so.0.9.7
-rw-r--r--    1 adc      0            507145 Jun 11 2012  /opt/freeware/lib/libssl.so.0.9.8
-rwxr-xr-x    1 adc      0            558117 Jun 11 2012  /opt/freeware/lib/libssl.so.1.0.0
-rwxr-xr-x    1 adc      0            620182 Jun 11 2012  /opt/freeware/lib/libssl.so.1.0.1
bash-4.2$ 

Tip Perzl *.rpms common problem exists with libiconv/libidn that causes utilities to fail with ‘dependent module cannot load’, to fix use following command. I have only found this single instance of libiconv/libidn issue for all perzl RPMs i use, so maybe one hack/fix will do the trick. It should be noted, oss4aix_fix_libiconv check/fix auto-runs after any wwwperzl.sh rpm command.

FYI — Just in case … should you find you need to deploy PASE/AIX trick for another /freeware/lib/lib*.a ‘not load dependent module’ message, i included oss4aix_fix_libiconv script technique from wwwperzl.sh below, you may enter ar -x and ar -av commands manually in call qp2term (ssh).

> ./wwwperzl.sh aix53 fix   (runs oss4aix_fix_libiconv below)

# oss4aix_fix_libiconv
#   na
# output
#   na
function oss4aix_fix_libiconv {
  cnt=$(ar -t /opt/freeware/lib/libiconv.a | grep -c shr4)
  if (($cnt==0))
  then
    echo "fixing /opt/freeware/lib/libiconv.a ..."
    ar -x /usr/lib/libiconv.a
    ar -rv /opt/freeware/lib/libiconv.a shr4.o
    ar -rv /opt/freeware/lib/libiconv.a shr.o
    echo "... complete"
  else
    echo "/opt/freeware/lib/libiconv.a fixed (ok)"
  fi
}

Note:
  'ar' hack/technique ... 
     lists:    ar -t /opt/freeware/lib/libiconv.a(shr4.0,...)
     extracts: ar -x /usr/lib/libiconv.a(shr4.o,shr.o)
     archives: ar -rv /opt/freeware/lib/libiconv.a(shr4.o,shr.o,...)

Having PHP ssl trouble?

bash-4.2$ php -v
Could not load program php:
        Dependent module /usr/local/lib/libssl.a(libssl.so.0) could not be loaded.
        Member libssl.so.0 is not found in archive 
bash-4.2$ mkdir libssl
bash-4.2$ cd libssl/
bash-4.2$ ar -x /usr/local/lib/libssl.a
bash-4.2$ ls
libssl.so.0.9.7  libssl.so.0.9.8  libssl.so.1.0.0  libssl.so.1.0.1
bash-4.2$ cp libssl.so.1.0.1 libssl.so.0    
bash-4.2$ ar -ruv /usr/local/lib/libssl.a libssl.so.0
a - libssl.so.0
bash-4.2$ php -v
Could not load program php:
        Dependent module /usr/local/lib/libcrypto.a(libcrypto.so.0) could not be loaded.
        Member libcrypto.so.0 is not found in archive 
bash-4.2$ ar -x /usr/local/lib/libcrypto.a
bash-4.2$ ls
libcrypto.so.0.9.7  libcrypto.so.1.0.0  libssl.so.0         libssl.so.0.9.8     libssl.so.1.0.1
libcrypto.so.0.9.8  libcrypto.so.1.0.1  libssl.so.0.9.7     libssl.so.1.0.0
bash-4.2$ cp libcrypto.so.1.0.1 libcrypto.so.0    
bash-4.2$ ar -ruv /usr/local/lib/libcrypto.a libcrypto.so.0
a - libcrypto.so.0
bash-4.2$ php -v
PHP 5.3.6 (cli) (built: Apr  7 2011 09:37:14) 

Troubles some versions gcc …

Tip For those uncomfortable with many possibilities of wwwperzl.sh, having difficulties beyond documented areas below, you may want to try the gcc package in the wiki GCC. I suggest you delete your old attempts related to /opt/freeware if you decide to switch methods (wwwclean.sh).

bash-4.2$ gcc 
Could not load program gcc:
        Dependent module /opt/freeware/lib/libiconv.a(libiconv.so.2) could not be loaded.
Could not load module /opt/freeware/lib/libiconv.a(libiconv.so.2).
System error: No such file or directory
bash-4.2$ ls -l /opt/freeware/lib/libiconv.a
/opt/freeware/lib/libiconv.a not found
bash-4.2$ pwd
/QOpenSys/download
bash-4.2$ ./wwwperzl.sh aix61 wget libiconv-1.14-2
:
bash-4.2$ ./wwwperzl.sh aix61 rpm libiconv-1.14-2


don't forget paths ..

export PATH=/usr/local/bin:$PATH
export LIBPATH=/usr/local/lib:$LIBPATH


you may have to add symbolic links ...
cd /usr/local/lib
ln -sf gcc/powerpc-ibm-aix6.1.0.0/4.8.2/libatomic.a libatomic.a
ln -sf gcc/powerpc-ibm-aix6.1.0.0/4.8.2/libgcc.a libgcc.a      
ln -sf gcc/powerpc-ibm-aix6.1.0.0/4.8.2/libgcc_eh.a libgcc_eh.a
ln -sf gcc/powerpc-ibm-aix6.1.0.0/4.8.2/libgcc_s.a libgcc_s.a  
ln -sf gcc/powerpc-ibm-aix6.1.0.0/4.8.2/libgcov.a libgcov.a  

cd /usr/lib
ln -sf ../../opt/freeware/lib/libatomic.a libatomic.a
ln -sf ../../opt/freeware/lib/libgcc.a libgcc.a      
ln -sf ../../opt/freeware/lib/libgcc_eh.a libgcc_eh.a
ln -sf ../../opt/freeware/lib/libgcc_s.a libgcc_s.a  
ln -sf ../../opt/freeware/lib/libgcov.a libgcov.a  


Author(s)

Tony “Ranger” Cairns - IBM i PHP / PASE