buildaix

From AIXTOOLS
Jump to: navigation, search

Packages|Tools|aixtools.buildaix.2.0.14.0.I
Report Issues (via Forums) and/or TWEET:@rootvgnet

MD5 Checksum

676E9EF71AA3F25E66FBBCDA950DD10E aixtools.buildaix.2.0.14.0.I
18E75B61FF7B941D1A8E10C503124B64 aixtools.buildaix.2.0.13.0.I
4C3D9A8AE00D014C97E40DB7AE95974F aixtools.buildaix.2.0.11.0.I

Contents

News

--Michael Felt (talk) 22:13, 8 February 2017 (UTC) cleaned up some logic bugs - improving the -D -P -F and -V arguments

--Michael Felt (talk) 06:23, 28 September 2016 (UTC)

I have been using this version for nearly a month - so time to get it out!

For the curious I moved the the links to the OLD versions to the bottom of the page

And the changes - since I last posted the CHANGELOG contents

$Id: CHANGELOG 213 2016-08-24 21:06:16Z michael $
buildaix 2.0.11.0: 2016-08-24
 * removed remaining comments for the aborted 64-bit packaging - finishing the purge of version 2.0.8.0
 * add a call to ./buildaix/bin/prep_install.ksh, if exists, for project processing
 ** before mkinstallp packaging begins
 * add -qarch=pwr4 and -qmaxmem=-1 to CFLAGS (assumes xlc as compiler!) - bug with gcc
 * fixed bug with -p OPTARG processing
 * changed -e to not depend on ${prefix}, i.e., not always be a subdir of ${prefix}
 * Modify Fileset Description: to always include ${PRODUCT} ${FILESET}
 * make sure opt/lib/charset.alias has a unique name, TBD .post_i processing to set symbolic link

buildaix 2.0.10.1: 2016-06-06
 * make sure .I files are world-readable regadless of umask setting
 * restore a lost addition - namely to add a requisites line such as:
   ">0 { *prereq idsldap.clt32bit62.rte 6.2.0.0 *prereq idsldap.clt32bit63.rte 6.3.0.0 }"
   i.e., to add a group requisite specification of needing one or more of a group, e.g., >0 is at least 1 of { ..
. }

buildaix 2.0.10.0: 2016-05-24
 * corrected a typo in buildaix.ksh - so TARGETDIR is provided everywhere in option -D output
 * improved interaction between buildaix and mkinstallp when using buildaix -D

buildaix 2.0.9.0: 2016-04-11
 * corrected a bug where the TARGETDIR was not getting updated soon enough (-V argument processing)

--Michael Felt (talk) 11:51, 25 May 2016 (UTC) Version 2.0.10.0: Much improved option -D for packaging a directory

--Michael Felt (talk) 09:20, 11 April 2016 (UTC)

Version 2.0.9.0 - small bug corrected (-V processing)

Version 2.0.8.0 - removed Linux like attempt at lib64 processing when OBJECT_MODE=64. Shall manually combine packages with multi-proc bit-mode support is needed/expected.

--Michael Felt (talk) 22:51, 6 March 2016 (UTC) Released version 2.0.7 - See the ChangeLog for the important changes.

I shall work on a HOWTO to describe how I use buildaix - from download of a project, through debugging, to installing what has been built. Now I am getting feedback telling me it is not as straight forward as I had hoped. Real Soon!

--Michael Felt (talk) 20:13, 7 October 2015 (UTC)

$Id: CHANGELOG 193 2016-03-04 11:28:43Z michael $
buildaix 2.0.8.0: starting 2016-03-04
 * remove 64-bit 'mangling' of the filesets packaging - want autotools to modify dirnames, not buildaix scripts

buildaix 2.0.7.0: starting 2016-03-02
 * add ' ' (space) as character to catch (buildaix:filename_cleanup())
 * use ':' to seperate old:new name fo file (for later function to move files to original name)
 * TODO : put moved in lpp:root component as a file
 * remove ${AIXVER} from .I filename - might be needed in special cases! but off for now

buildaix 2.0.6.0: starting 2016-02-04
 * default uid:gid is bin:bin rather than root:system
 * finish initial proposal for argument -D|c prepare a proposal for packaging a directory

buildaix 2.0.5.0: 2016-01-19
 * look in ../src/${dirname} to make use of autotools ability to seperate source and build directories
 * make the .rte comment more human readable - was cryptic builddate numbers
 * change universale pages to universal files for .share description

buildaix 2.0.4.0: 2015-11-06
 * correct type where the requisites file got wiped with application specifics (mkinstallp.ksh)
 * initial support for discovery of and modifications for 64-bit support (not finished yet)
 ** aixinfo and buildaix.ksh
 * added bzlib.h (for libbz2 v1.05 default AIX supported version)

buildaix 2.0.3.1: 2015-10-07
 * remove the files in /tmp I had been leaving around for debug info
 * corrected error in cleanup function, reduced debug messages
 * make sure requisites file is truncated

--Michael Felt (talk) 14:15, 7 August 2015 (UTC)

  • new version of buildaix (v2.0.3)
    • the templates are activated via option -T rather than -i
    • bug corrections

--Michael Felt (talk) 12:55, 5 April 2015 (UTC)

  • Added link to new version of buildaix. To use the templates run buildaix -i. This will create two subdirectories: buildaix and buildaix/root and put copies of script templates in them. Add commands that you want executed in one of the different phases: pre_i (in user) and config (in root) are probably where you will want to spend your most effort - initially. The unconfig and unpre_i - for want you want to undo during failed install and/or removal of the software.
  • "Support" as much as I can give and/or feature requests via http://forums.rootvg.net/aixtools

--Michael Felt (talk) 16:22, 1 April 2015 (UTC)

  • Added details about a new! version 2.0 with automated script processing - see new Details section below

--Michael Felt (talk) 10:55, 12 March 2015 (UTC)

  • Currently working on a new release (V1.1). The distinguishing improvement over version 1.0 is:
    • better use of the LPP naming scheme: (LPP is IBM speak for Licensed Program Product) The new default naming scheme is buildaix.project-family.project. So, rather than be buildaix.openssh the LPP name would be buildaix.openbsd.openssh - because openssh is maintained by openbsd. Likewise, buildaix.gettext will become buildaix.gnu.gettext.
  • This will make it easy (was always possible, just messy) to have more than one project in a single LPP. Perhaps I will go a new version higher (to 1.2) when I have automated combining filesets belonging to a common project-(family|source). For example, GNU is a project-family while sourceforge is a product-source.

--Michael Felt (talk) 14:46, 29 October 2013 (CET) * download.aixtools.net/tools/aixtools.buildaix

  • For comments, feedback etc please post on rootvg.net forums[1].

--Michael Felt (talk) 22:57, 4 December 2013 (CET)

  • Updated to version 1.0.7. Now includes some .h files that are often needed by opensource -

and prevents needing to load certain RPM packages because rpm.rte (which contains a symbolic link in /usr/lib/libz.a to a libz.a in /opt/freeware/lib but does not include a link for /usr/include/zlib.h or /usr/lib/zconf.h (buildaix puts the files in /opt/include and add -I/opt/include to CFLAGS)

ABOUT

BUILDAIX is my first submission to SourceForge as project SourceForge BUILDAIX. This project/package simplifies the use of the AIX tool mkinstallp.

The initial goals are:

  • simplify (read automate) mkinstall template generation
  • include missing include files that autoconf is expecting -- because the libraries are already available on AIX, just not the include files that are used to test linking.
  • position the software in a location better suited for WPAR support --prefix=/opt and --localestate=/var and put man pages in /usr/share/man rather than somewhere non-standard

For most projects the instructions will be:

  1. install base AIX
  2. install bos.adt.libm, bos.adt.syscalls, bos.adt.insttools
  3. install compiler (IBM VAC/xlc or GCC) - mixing compilers creates its own issues
  4. install aixtools.buildaix.rte currently at [2]
    1. maybe also install more tools: e.g. aixtools.wget.rte, aixtools.xz.rte, aixtools.bash.rte, aixtools.autoconf.rte, and/or aixtools.automake.rte.
    2. Recommended: aixtools.coreutils.rte and/or GNU make aixtools.make.rte - as the AIX install and make do not always work as expected with GNU-model based open-source projects (i.e., use install from coreutils) and some projects require specific features in gmake.
  5. modify PATH to include compiler and /opt/bin - /opt/bin is the default PATH directory for tools, scripts, applications.
  6. download or wget an application source
  7. uncompress using gzip, bzip2, or xz (add argument -dc to decompress in place) | tar xf -
  8. cd unpacked-sources
  9. # buildaix
  10. # installp -d . -L

The assumption is that you will use installp -d . all (or something more selective) to install the compiled software rather than "make install".

DETAILS

Installation

Version 2.0 includes automated support for pre, post and config steps when installing, or uninstalling software.

For install (only when there is a previous version already present will the pre_rm scripts run) the order looks something like this

# installp -d . -F aixtools.something.rte

FILESET STATISTICS 
------------------
    1  Selected to be installed, of which:
        1  Passed pre-installation verification
  ----
    1  Total to be installed

+-----------------------------------------------------------------------------+
                         Installing Software...
+-----------------------------------------------------------------------------+

installp:  APPLYING software for:
        aixtools.something.rte 6.8.0.1

+---------------------------- PRE_RM -----------------------------------------+
+-----------------------------------------------------------------------------+
+---------------------------- PRE_RM -----------------------------------------+
+---------------------------- PRE_I ------------------------------------------+
+-----------------------------------------------------------------------------+
+---------------------------- PRE_I ------------------------------------------+
+---------------------------- POST_I -----------------------------------------+
+-----------------------------------------------------------------------------+
+---------------------------- POST_I -----------------------------------------+
+---------------------------- CONFIG -----------------------------------------+
+-----------------------------------------------------------------------------+
+---------------------------- CONFIG -----------------------------------------+
+---------------------------- PRE_I ------------------------------------------+
+-----------------------------* R O O T *-------------------------------------+
+---------------------------- PRE_I ------------------------------------------+
+---------------------------- POST_I -----------------------------------------+
+-----------------------------* R O O T *-------------------------------------+
+---------------------------- POST_I -----------------------------------------+
+---------------------------- CONFIG -----------------------------------------+
+------------------------------ R O O T --------------------------------------+
+---------------------------- CONFIG -----------------------------------------+
Finished processing all filesets.  (Total time:  2 secs).

+-----------------------------------------------------------------------------+
                                Summaries:
+-----------------------------------------------------------------------------+

So, take note - the USR scripts are run first and ROOT scripts are run last. This implies that the 'normal' non-root pre_i (pre_install) is the first script run for a new install and the root-part config script runs as very last.

Failed Install processing

When a script returns a non-zero exit status instal (spelling is correct!) has failed and the un* scripts are run.

+-----------------------------------------------------------------------------+
                         Installing Software...
+-----------------------------------------------------------------------------+

installp:  APPLYING software for:
        aixtools.something.rte 6.8.0.1

+---------------------------- PRE_RM -----------------------------------------+
+-----------------------------------------------------------------------------+
+---------------------------- PRE_RM -----------------------------------------+
+---------------------------- PRE_I ------------------------------------------+
+-----------------------------------------------------------------------------+
+---------------------------- PRE_I ------------------------------------------+
+---------------------------- POST_I -----------------------------------------+
+-----------------------------------------------------------------------------+
+---------------------------- POST_I -----------------------------------------+
+---------------------------- CONFIG -----------------------------------------+
+-----------------------------------------------------------------------------+
+---------------------------- CONFIG -----------------------------------------+
+---------------------------- PRE_I ------------------------------------------+
+-----------------------------* R O O T *-------------------------------------+
+---------------------------- PRE_I ------------------------------------------+
+---------------------------- POST_I -----------------------------------------+
+-----------------------------* R O O T *-------------------------------------+
+---------------------------- POST_I -----------------------------------------+
+---------------------------- CONFIG -----------------------------------------+
+------------------------------ R O O T --------------------------------------+
+---------------------------- CONFIG -----------------------------------------+
instal:  Failed while executing the aixtools.openbsd.openssh.rte.config script.


0503-464 installp:  The installation has FAILED for the "root" part 
        of the following filesets:
        aixtools.openbsd.openssh.rte 6.8.0.1601

installp:  Cleaning up software for:
        aixtools.something.rte 6.8.0.1

+---------------------------- UNCONFIG ---------------------------------------+
+------------------------------ R O O T --------------------------------------+
+---------------------------- UNCONFIG ---------------------------------------+
+---------------------------- UNPOST_I----------------------------------------+
+-----------------------------* R O O T *-------------------------------------+
+---------------------------- UNPOST_I----------------------------------------+
+---------------------------- UNPRE_I ----------------------------------------+
+-----------------------------* R O O T *-------------------------------------+
+---------------------------- UNPRE_I ----------------------------------------+
Finished processing all filesets.  (Total time:  2 secs).

+-----------------------------------------------------------------------------+
                                Summaries:
+-----------------------------------------------------------------------------+

Installation Summary
--------------------
Name                        Level           Part        Event       Result
-------------------------------------------------------------------------------
aixtools.something.rte      6.8.0.1         USR         APPLY       SUCCESS    
aixtools.something.rte      6.8.0.1         ROOT        APPLY       FAILED     
aixtools.something.rte      6.8.0.1         ROOT        CLEANUP     SUCCESS    

Post Install Verification

After a situation like this (was previously installed, root install failed) the command lslpp -l is okay while lslpp -L is not. lslpp -v gives us the details.

root@x064:[/data/prj/openbsd/openssh/openssh-6.8p1]lslpp -l aixtools.openbsd.openssh.rte
  Fileset                      Level  State      Description         
  ----------------------------------------------------------------------------
Path: /usr/lib/objrepos
  aixtools.something.rte
                          6.8.0.1     COMMITTED  1513 0401 1555
root@x064:[/data/prj/openbsd/openssh/openssh-6.8p1]lslpp -L aixtools.openbsd.openssh.rte
  Fileset                      Level  State  Type  Description (Uninstaller)
  ----------------------------------------------------------------------------
  aixtools.something.rte
                          6.8.0.1       ?     F    1513 0401 1555


State codes: 
 A -- Applied. 
 B -- Broken. 
 C -- Committed. 
 E -- EFIX Locked. 
 O -- Obsolete.  (partially migrated to newer version) 
 ? -- Inconsistent State...Run lppchk -v.

Type codes: 
 F -- Installp Fileset 
 P -- Product 
 C -- Component 
 T -- Feature 
 R -- RPM Package 
root@x064:[/data/prj/openbsd/openssh/openssh-6.8p1]lppchk -v  aixtools.openbsd.openssh.rte
lppchk:  The following filesets need to be installed or corrected to bring
         the system to a consistent state:

  aixtools.something.rte 6.8.0.1 (usr: COMMITTED, root: not installed)

Uninstall

Normal uninstall starts with the ROOT scripts, root files are removed, and then the USR scripts.

+-----------------------------------------------------------------------------+
                           Deinstalling Software...
+-----------------------------------------------------------------------------+

installp:  DEINSTALLING software for:
        aixtools.something.rte 6.8.0.1

+---------------------------- UNCONFIG ---------------------------------------+
+------------------------------ R O O T --------------------------------------+
+---------------------------- UNCONFIG ---------------------------------------+
+---------------------------- UNPOST_I----------------------------------------+
+-----------------------------* R O O T *-------------------------------------+
+---------------------------- UNPOST_I----------------------------------------+
+---------------------------- UNPRE_I ----------------------------------------+
+-----------------------------* R O O T *-------------------------------------+
+---------------------------- UNPRE_I ----------------------------------------+
+---------------------------- UNCONFIG ---------------------------------------+
+-----------------------------------------------------------------------------+
+---------------------------- UNCONFIG ---------------------------------------+
+---------------------------- UNPOST_I----------------------------------------+
+-----------------------------------------------------------------------------+
+---------------------------- UNPOST_I----------------------------------------+
+---------------------------- UNPRE_I ----------------------------------------+
+-----------------------------------------------------------------------------+
+---------------------------- UNPRE_I ----------------------------------------+
Finished processing all filesets.  (Total time:  1 secs).

Old Versions

F92BDFF5B01F60C04D1B7F305397C6F0 aixtools.buildaix.2.0.10.1.I
3579392D548CC23621CBB065602B146D aixtools.buildaix.2.0.10.0.I
437BB8E89CA22559C0BDC81BF070CA18 aixtools.buildaix.2.0.9.0.I
AA0C587AFA8975BD6331C83E9C8B0CB1 aixtools.buildaix.2.0.8.0.I
B562331C3B62A074EF444B37A1FC38CD aixtools.buildaix.2.0.7.0.I
Personal tools
Namespaces

Variants
Actions
Navigation
Downloads
Toolbox