How I package OpenSource Packages PDF Print E-mail
User Rating: / 0
PoorBest 
Written by Michael Felt   

The basics

Start with a fresh install of AIX – I focus on AIX 5.3 TL07 SP00.

The only “non-standard” packages are: openssh.base, bos.adt.insttools and bos.adt.libm. OpenSSH because I want it, bos.adt.insttools for the AIX command mkinstallp, and bos.adt.libm as it is needed by many things once you start compiling.


I also install my 'build' scripts – packaged as aixtools.buildaix (see http://www.aixtools.net/index.php/buildaix)


So, taking a well-written (to be portable) project such as OpenBSD – OpenSSH-portable – basic packaging is very simple – one command!


  1. install AIX with additional filesets and buildaix

  2. Download and unpack the OpenSource project

  3. change the the base directory

  4. buildaix (and wait)

     

Details


  1. Install AIX – that is your job

  2. cd /tmp
    wget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.6p1.tar.gz
    gzip -dc openssh-7.6p1.tar.gz | tar xf -

  3. cd openssh-7.6p1

  4. buildaix (need to be root for this to complete)


There is some output to inform you what is being done, and stderr messages still appear on screen. At the end you should see something such as:


+ mkinstallp.ksh /var/buildaix/tmp/openssh/7.6.0.1601 > .buildaix/mkinstallp.out

==============================

buildaix.tmp.openssh:buildaix.tmp.openssh.man.en_US:7.6.0.1601::I:T:::::N:tmp openssh man pages::::0::

buildaix.tmp.openssh:buildaix.tmp.openssh.rte:7.6.0.1601::I:T:::::N:tmp openssh 05-Dec-2017::::0::


A name such as buildaix.tmp.openssh is probably not what you are looking for.


BUILDAIX creates a LPP package name from four key variables:

$PROGRAM – by default “buildaix”

$PRODUCT – by default the name of the sub-directory

$FILESET – by default the name of the current directory – without numerics

$VRMF – by default taken from the “numerics” of the current directory.


Further when $PROGRAM == $PRODUCT or $PRODUCT == $FILESET the name is shortened.


So, lets say I want this packaged as acme.openbsd.openssh I would do the following:


# PROGRAM=acme buildaix -P openbsd

...

+ mkinstallp.ksh /var/acme/openbsd/openssh/7.6.0.1601 > .buildaix/mkinstallp.out

==============================

acme.openbsd.openssh:acme.openbsd.openssh.man.en_US:7.6.0.1601::I:T:::::N:openbsd openssh man pages::::0::

acme.openbsd.openssh:acme.openbsd.openssh.rte:7.6.0.1601::I:T:::::N:openbsd openssh 05-Dec-2017::::0::

buildaix.tmp.openssh:buildaix.tmp.openssh.man.en_US:7.6.0.1601::I:T:::::N:tmp openssh man pages::::0::

buildaix.tmp.openssh:buildaix.tmp.openssh.rte:7.6.0.1601::I:T:::::N:tmp openssh 05-Dec-2017::::0::

 

Or, use export PROGRAM=acme


So, to get the package to be called acme.openssh – use:

# export PROGRAM=acme

# buildaix -P openssh -F openssh


root@x072:[/tmp/openssh-7.6p1]export PROGRAM=acme

root@x072:[/tmp/openssh-7.6p1]buildaix -P openssh -F openssh

...

+ mkinstallp.ksh /var/acme/openssh/openssh/7.6.0.1601 > .buildaix/mkinstallp.out

==============================

acme.openbsd.openssh:acme.openbsd.openssh.man.en_US:7.6.0.1601::I:T:::::N:openbsd openssh man pages::::0::

acme.openbsd.openssh:acme.openbsd.openssh.rte:7.6.0.1601::I:T:::::N:openbsd openssh 05-Dec-2017::::0::

acme.openssh:acme.openssh.man.en_US:7.6.0.1601::I:T:::::N:openssh man pages::::0::

acme.openssh:acme.openssh.rte:7.6.0.1601::I:T:::::N:openssh 05-Dec-2017::::0::

buildaix.tmp.openssh:buildaix.tmp.openssh.man.en_US:7.6.0.1601::I:T:::::N:tmp openssh man pages::::0::

buildaix.tmp.openssh:buildaix.tmp.openssh.rte:7.6.0.1601::I:T:::::N:tmp openssh 05-Dec-2017::::0::

==============================

 
Next >