PKI TechNote Build Infrastructure

From Dogtag
Jump to: navigation, search

Build Infrastructure

PKI Subversion Repository

Each PKI component within the PKI subversion repository build infrastructure consists of two bash scripts, one dynamically generated bash script, and three Ant XML files. Additionally, autoconf files are required for the osutil, pki-native-tools, pki-symkey, and pki-tps components.

When invoked from the PKI subversion repository, each PKI component contains the following files related to its build infrastructure:

   build_{flavor} --> config/build_{flavor}_pki --> release --> config/release.xml --> build.xml

where:

File Type Purpose
build_{flavor} bash script user-invoked script used to build, verify, document, distribute, and create RPMs and SRPMs specific to this PKI component
config/build_{flavor}_pki bash script contains common shared script code used to generate the release script for this PKI component
release bash script a generated script containing the commands needed to build and release this PKI component; this file only exists in the SRPM
config/release.xml XML file contains the Ant commands used to create RPM and SRPM releases of this PKI component
build.xml XML file contains the Ant commands used to build, verify, document, and distribute this PKI component
config/product.xml XML file contains shared properties common to all PKI components; included in both build.xml and config/release.xml

IMPORTANT:   Currently, "{flavor}" equals "dogtag"!

PKI subversion repository build infrastructure options include the following:

   ./build_{flavor} help 
   Usage:  build_{flavor} [target]
   
           where [target] is one of the optional values:
   
                   help --> display '<PKI Component>' usage statement
                  clean --> remove component directories
               download --> download dependent components
           compile_java --> compile java source code into classes
             build_jars --> generate jar files
      build_jni_headers --> generate jni header files
                  build --> build classes, jars, and jni headers
    compile_junit_tests --> compile junit test source code
        run_junit_tests --> execute junit tests
                 verify --> build and execute junit tests
         clean_javadocs --> remove javadocs directory
       compose_javadocs --> generate javadocs
               document --> remove old javadocs and compose new javadocs
    distribute_binaries --> create the zip and gzipped tar binary distributions
      distribute_source --> create the zip and gzipped tar source distributions
             distribute --> create binary and source component distributions
                   main --> clean, build, verify, document, distribute [default]

PKI Component SRPM

Each PKI component within the PKI component SRPM build infrastructure consists of a single bash script, and three Ant XML files. Additionally, autoconf files are required for the osutil, pki-native-tools, pki-symkey, and pki-tps components.

When invoked from its PKI component SRPM, each PKI component contains the following build infrastructure:

   release --> config/release.xml --> build.xml

where:

File Type Purpose
release bash script user-invoked script used to build, verify, document, distribute, and create RPMs and SRPMs specific to this PKI component
config/release.xml XML file contains the Ant commands used to create RPM and SRPM releases of this PKI component
build.xml XML file contains the Ant commands used to build, verify, document, and distribute this PKI component
config/product.xml XML file contains shared properties common to all PKI components; included in both build.xml and config/release.xml

PKI component SRPM build infrastructure options include the following:

   ./release help 
   Usage:  release [target]
   
           where [target] is one of the optional values:
   
                   help --> display '<PKI Component>' usage statement
                  clean --> remove component directories
               download --> download dependent components
           compile_java --> compile java source code into classes
             build_jars --> generate jar files
      build_jni_headers --> generate jni header files
                  build --> build classes, jars, and jni headers
    compile_junit_tests --> compile junit test source code
        run_junit_tests --> execute junit tests
                 verify --> build and execute junit tests
         clean_javadocs --> remove javadocs directory
       compose_javadocs --> generate javadocs
               document --> remove old javadocs and compose new javadocs
    distribute_binaries --> create the zip and gzipped tar binary distributions
      distribute_source --> create the zip and gzipped tar source distributions
             distribute --> create binary and source component distributions
                   main --> clean, build, verify, document, distribute [default]