summaryrefslogtreecommitdiffstats
path: root/pki/dogtag/scripts/build_ca
diff options
context:
space:
mode:
Diffstat (limited to 'pki/dogtag/scripts/build_ca')
-rwxr-xr-xpki/dogtag/scripts/build_ca178
1 files changed, 178 insertions, 0 deletions
diff --git a/pki/dogtag/scripts/build_ca b/pki/dogtag/scripts/build_ca
new file mode 100755
index 000000000..ceb4fb6d6
--- /dev/null
+++ b/pki/dogtag/scripts/build_ca
@@ -0,0 +1,178 @@
+#!/bin/bash
+# BEGIN COPYRIGHT BLOCK
+# (C) 2007 Red Hat, Inc.
+# All rights reserved.
+# END COPYRIGHT BLOCK
+
+# Always switch into the base directory three levels
+# above this shell script prior to executing it so
+# that all of its output is written to this directory
+cd `dirname $0`/../../..
+
+# Retrieve the name of this base directory
+PKI_PWD=`pwd`
+
+# Establish the release directory
+PKI_RELEASE_ROOT="${PKI_PWD}/release"
+
+# Establish the name of the machine
+PKI_HOSTNAME=`hostname`
+
+# Set pre-defined variables
+PKI_DIR="pki"
+PKI_SRC_DIR="base"
+ROOT_UID=0
+
+# This script may ONLY be run on Linux!
+PKI_OS=`uname`
+if [ "${PKI_OS}" != "Linux" ]; then
+ printf "The '$0' script is ONLY executable\n"
+ printf "on a 'Linux' machine!\n"
+ exit 255
+fi
+
+# Set Dogtag variables
+PKI_FLAVOR="dogtag"
+PKI_UI_DIR="${PKI_DIR}/${PKI_FLAVOR}"
+PKI_BUILD_SCRIPT_DIR="${PKI_PWD}/${PKI_UI_DIR}"
+PKI_BUILD_SCRIPT="build_dogtag"
+
+# Set packaging variables
+YUM_EXE="/usr/bin/yum"
+YUM_EXE_OPTIONS="-y --nogpgcheck install"
+RPM_DIR="dist/rpmpkg/RPMS/*/"
+RPM_EXT="-[0-9]*.rpm"
+
+# Set sudo variables
+PKI_SUDO="/usr/bin/sudo"
+PKI_SUDOERS="/etc/sudoers"
+
+# Set user identity variables
+PKI_EUID=`/usr/bin/id -u`
+PKI_UID=`/usr/bin/id -ur`
+PKI_USERNAME=`/usr/bin/id -un`
+
+# Make sure that this script is NOT being run as root!
+if [ ${PKI_UID} -eq ${ROOT_UID} ] ||
+ [ ${PKI_EUID} -eq ${ROOT_UID} ]; then
+ printf "The '$0' script may NOT be run as root!\n"
+ exit 255
+fi
+
+# Check for the presence of the 'sudo' executable
+if [ ! -x "${PKI_SUDO}" ]; then
+ printf "The '$0' script requires the '${PKI_SUDO}' executable\n"
+ printf "to be available on '${PKI_HOSTNAME}'!\n"
+ exit 255
+fi
+
+# Check for the presence of the 'sudoers' file
+if [ ! -e "${PKI_SUDOERS}" ]; then
+ printf "The '$0' script requires the '${PKI_SUDOERS}' file\n"
+ printf "to be available on '${PKI_HOSTNAME}'!\n"
+ exit 255
+fi
+
+# Check for the presence of the required sudoers command
+PKI_SUDOERS_COMMAND="(root) NOPASSWD: ${YUM_EXE}"
+PKI_SUDOERS_LINE="${PKI_USERNAME} ALL = NOPASSWD: ${YUM_EXE}"
+printf "Checking if '${PKI_USERNAME}' has the appropriate '${PKI_SUDO}' permissions . . .\n"
+printf "[NOTE: A password prompt may appear requiring ${PKI_USERNAME}'s password.]\n"
+`${PKI_SUDO} -l | grep "${PKI_SUDOERS_COMMAND}" > /dev/null 2>&1`
+if [ $? -ne 0 ]; then
+ printf "The '$0' script requires that the\n"
+ printf "'${PKI_SUDOERS}' file MUST contain this line:\n\n"
+ printf " '${PKI_SUDOERS_LINE}'\n\n"
+ exit 255
+fi
+
+# Establish release subdirectories
+PKI_RELEASE_DIR="${PKI_RELEASE_ROOT}/${PKI_DIR}/${PKI_SRC_DIR}"
+PKI_RELEASE_UI_DIR="${PKI_RELEASE_ROOT}/${PKI_UI_DIR}"
+
+# Establish common PKI package names
+OSUTIL=osutil${RPM_EXT}
+PKI_SYMKEY=pki-symkey${RPM_EXT}
+PKI_NATIVE_TOOLS=pki-native-tools${RPM_EXT}
+PKI_UTIL=pki-util${RPM_EXT}
+PKI_UTIL_JAVADOC=pki-util-javadoc${RPM_EXT}
+PKI_SETUP=pki-setup${RPM_EXT}
+PKI_JAVA_TOOLS=pki-java-tools${RPM_EXT}
+PKI_JAVA_TOOLS_JAVADOC=pki-java-tools-javadoc${RPM_EXT}
+PKI_COMMON_UI=${PKI_FLAVOR}-pki-common-ui${RPM_EXT}
+PKI_COMMON=pki-common${RPM_EXT}
+PKI_COMMON_JAVADOC=pki-common-javadoc${RPM_EXT}
+PKI_SELINUX=pki-selinux${RPM_EXT}
+PKI_SILENT=pki-silent${RPM_EXT}
+
+# Establish PKI subsystem package names
+PKI_CA_UI=${PKI_FLAVOR}-pki-ca-ui${RPM_EXT}
+PKI_CA=pki-ca${RPM_EXT}
+
+# Establish optional PKI package names
+PKI_CONSOLE_UI=${PKI_FLAVOR}-pki-console-ui${RPM_EXT}
+PKI_CONSOLE=pki-console${RPM_EXT}
+
+# Always start with a new release root directory
+rm -rf ${PKI_RELEASE_ROOT}
+mkdir -p ${PKI_RELEASE_ROOT}
+
+# Build and install 'osutil' packages
+${PKI_BUILD_SCRIPT_DIR}/osutil/${PKI_BUILD_SCRIPT}
+${PKI_SUDO} ${YUM_EXE} ${YUM_EXE_OPTIONS} ${PKI_RELEASE_DIR}/osutil/${RPM_DIR}/${OSUTIL}
+
+# Build and install 'pki-symkey' packages
+${PKI_BUILD_SCRIPT_DIR}/symkey/${PKI_BUILD_SCRIPT}
+${PKI_SUDO} ${YUM_EXE} ${YUM_EXE_OPTIONS} ${PKI_RELEASE_DIR}/symkey/${RPM_DIR}/${PKI_SYMKEY}
+
+# Build and install 'pki-native-tools' packages
+${PKI_BUILD_SCRIPT_DIR}/native-tools/${PKI_BUILD_SCRIPT}
+${PKI_SUDO} ${YUM_EXE} ${YUM_EXE_OPTIONS} ${PKI_RELEASE_DIR}/native-tools/${RPM_DIR}/${PKI_NATIVE_TOOLS}
+
+# Build and install 'pki-util' packages
+${PKI_BUILD_SCRIPT_DIR}/util/${PKI_BUILD_SCRIPT}
+${PKI_SUDO} ${YUM_EXE} ${YUM_EXE_OPTIONS} ${PKI_RELEASE_DIR}/util/${RPM_DIR}/${PKI_UTIL}
+${PKI_SUDO} ${YUM_EXE} ${YUM_EXE_OPTIONS} ${PKI_RELEASE_DIR}/util/${RPM_DIR}/${PKI_UTIL_JAVADOC}
+
+# Build and install 'pki-setup' packages
+${PKI_BUILD_SCRIPT_DIR}/setup/${PKI_BUILD_SCRIPT}
+${PKI_SUDO} ${YUM_EXE} ${YUM_EXE_OPTIONS} ${PKI_RELEASE_DIR}/setup/${RPM_DIR}/${PKI_SETUP}
+
+# Build and install 'pki-java-tools' packages
+${PKI_BUILD_SCRIPT_DIR}/java-tools/${PKI_BUILD_SCRIPT}
+${PKI_SUDO} ${YUM_EXE} ${YUM_EXE_OPTIONS} ${PKI_RELEASE_DIR}/java-tools/${RPM_DIR}/${PKI_JAVA_TOOLS}
+${PKI_SUDO} ${YUM_EXE} ${YUM_EXE_OPTIONS} ${PKI_RELEASE_DIR}/java-tools/${RPM_DIR}/${PKI_JAVA_TOOLS_JAVADOC}
+
+# Build and install 'pki-common-ui' packages
+${PKI_BUILD_SCRIPT_DIR}/common-ui/${PKI_BUILD_SCRIPT}
+${PKI_SUDO} ${YUM_EXE} ${YUM_EXE_OPTIONS} ${PKI_RELEASE_UI_DIR}/common-ui/${RPM_DIR}/${PKI_COMMON_UI}
+
+# Build and install 'pki-common' packages
+${PKI_BUILD_SCRIPT_DIR}/common/${PKI_BUILD_SCRIPT}
+${PKI_SUDO} ${YUM_EXE} ${YUM_EXE_OPTIONS} ${PKI_RELEASE_DIR}/common/${RPM_DIR}/${PKI_COMMON}
+${PKI_SUDO} ${YUM_EXE} ${YUM_EXE_OPTIONS} ${PKI_RELEASE_DIR}/common/${RPM_DIR}/${PKI_COMMON_JAVADOC}
+
+# Build and install 'pki-selinux' packages
+${PKI_BUILD_SCRIPT_DIR}/selinux/${PKI_BUILD_SCRIPT}
+${PKI_SUDO} ${YUM_EXE} ${YUM_EXE_OPTIONS} ${PKI_RELEASE_DIR}/selinux/${RPM_DIR}/${PKI_SELINUX}
+
+# Build and install 'pki-silent' packages
+${PKI_BUILD_SCRIPT_DIR}/silent/${PKI_BUILD_SCRIPT}
+${PKI_SUDO} ${YUM_EXE} ${YUM_EXE_OPTIONS} ${PKI_RELEASE_DIR}/silent/${RPM_DIR}/${PKI_SILENT}
+
+# Build and install 'pki-ca-ui' packages
+${PKI_BUILD_SCRIPT_DIR}/ca-ui/${PKI_BUILD_SCRIPT}
+${PKI_SUDO} ${YUM_EXE} ${YUM_EXE_OPTIONS} ${PKI_RELEASE_UI_DIR}/ca-ui/${RPM_DIR}/${PKI_CA_UI}
+
+# Build and install 'pki-ca' packages
+${PKI_BUILD_SCRIPT_DIR}/ca/${PKI_BUILD_SCRIPT}
+${PKI_SUDO} ${YUM_EXE} ${YUM_EXE_OPTIONS} ${PKI_RELEASE_DIR}/ca/${RPM_DIR}/${PKI_CA}
+
+# Build and install 'pki-console-ui' packages
+${PKI_BUILD_SCRIPT_DIR}/console-ui/${PKI_BUILD_SCRIPT}
+${PKI_SUDO} ${YUM_EXE} ${YUM_EXE_OPTIONS} ${PKI_RELEASE_UI_DIR}/console-ui/${RPM_DIR}/${PKI_CONSOLE_UI}
+
+# Build and install 'pki-console' packages
+${PKI_BUILD_SCRIPT_DIR}/console/${PKI_BUILD_SCRIPT}
+${PKI_SUDO} ${YUM_EXE} ${YUM_EXE_OPTIONS} ${PKI_RELEASE_DIR}/console/${RPM_DIR}/${PKI_CONSOLE}
+