build_inf_centos: add build_inf_prepare_jenkins.sh 49/8349/4
authorJackie Huang <jackie.huang@windriver.com>
Thu, 19 May 2022 06:39:54 +0000 (14:39 +0800)
committerJackie Huang <jackie.huang@windriver.com>
Thu, 19 May 2022 13:04:15 +0000 (21:04 +0800)
Issue-ID: INF-274

Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Change-Id: Ic06833f1f18cbf32ed0f0933e22081101c7519eb

scripts/build_inf.sh
scripts/build_inf_centos/build_inf_centos.sh
scripts/build_inf_centos/build_inf_prepare_jenkins.sh [new file with mode: 0755]
scripts/build_inf_centos/stx_build_prepare_centos.sh [deleted file]

index 81be9d5..0710d89 100755 (executable)
@@ -110,6 +110,7 @@ WORKSPACE_YP=${WORKSPACE}/workspace_yocto
 WORKSPACE_CENTOS=${WORKSPACE}/workspace_centos
 SCRIPT_YP=${SCRIPTS_DIR}/build_inf_yocto/build_inf_yocto.sh
 SCRIPT_CENTOS=${SCRIPTS_DIR}/build_inf_centos/build_inf_centos.sh
+SCRIPT_CENTOS_PRE=${SCRIPTS_DIR}/build_inf_centos/build_inf_prepare_jenkins.sh
 
 prepare_workspace () {
     msg_step="Create workspace for the multi-os builds"
@@ -161,6 +162,9 @@ fi
 # dry-run is not supported yet for CentOS build
 if [ -z "${DRYRUN}" ]; then
     ${SCRIPT_CENTOS} -w ${WORKSPACE_CENTOS} ${DRYRUN}
+    if [ "$CI" = "true" ]; then
+        ${SCRIPT_CENTOS_PRE} -w ${WORKSPACE_CENTOS}
+    fi
 fi
 
 ${SCRIPT_YP} -w ${WORKSPACE_YP} ${DRYRUN} ${YP_ARGS}
index 911f524..14e70e5 100755 (executable)
@@ -93,7 +93,7 @@ while getopts "w:b:e:r:unh" OPTION; do
             ;;
         u)
             SKIP_UPDATE="No"
-           ;;
+            ;;
         h)
             help_info
             exit
@@ -230,48 +230,17 @@ repo_init_sync () {
     echo_step_end
 }
 
-create_build_docker () {
-    msg_step="Create build environment docker container"
-    echo_step_start
-
-    cd ${MY_REPO_ROOT_DIR}/stx-tools/
-    export PATH=$PATH:$PWD
-
-    echo "MYUNAME=${USER}" > localrc
-    echo "PROJECT=${PRJ_NAME}" >> localrc
-    echo "HOST_PREFIX=${WORKSPACE}" >> localrc
-    echo "HOST_MIRROR_DIR=${WORKSPACE}/mirror" >> localrc
-    echo "LAYER=${LAYER}" >> localrc
-    echo "MY_EMAIL=jackie.huang@windriver.com" >> localrc
-
-    # workarounds
-    #git checkout master
-    #sed -i 's/docker /sudo docker /' tb.sh
-
-    #RUN_CMD="tb.sh create"
-    #run_cmd "Create build environment docker image"
-
-    RUN_CMD="tb.sh run"
-    run_cmd "Create build environment docker container"
+code_adjust () {
+    echo_step_start "Some codes need to be adjusted for INF project"
 
+    sed -i "s|/import/mirrors|${STX_MIRROR_DIR}|" \
+        $MY_REPO/stx/metal/installer/pxe-network-installer/centos/build_srpm.data
     echo_step_end
 }
 
-exec_build_docker () {
-    msg_step="Enter a bash shell within the build environment container"
-    echo_step_start
-
-    cd ${MY_REPO_ROOT_DIR}/stx-tools/
-    export PATH=$PATH:$PWD
-
-    RUN_CMD="tb.sh exec"
-    run_cmd "Enter a bash shell within the build environment container"
-
-    #cd $MY_REPO_ROOT_DIR/stx-tools/centos-mirror-tools/
-    #RUN_CMD="sudo -E ./download_mirror.sh"
-    #run_cmd "Download rpms"
-
-    echo_step_end
+populate_dl () {
+    ${MY_REPO_ROOT_DIR}/stx-tools/toCOPY/generate-centos-repo.sh ${STX_MIRROR_DIR}/stx-6.0
+    ${MY_REPO_ROOT_DIR}/stx-tools/toCOPY/populate_downloads.sh ${STX_MIRROR_DIR}/stx-6.0
 }
 
 # To be removed:
@@ -283,9 +252,8 @@ ISO_UP_VER=6.0.0
 ISO_UP=http://mirror.starlingx.cengn.ca/mirror/starlingx/release/${ISO_UP_VER}/centos/flock/outputs/iso/${ISO_STX_COS}
 ISO_INF_COS=inf-image-centos-all-x86-64.iso
 
-
-build_image () {
-    echo_step_start "Build CentOS images"
+build_image_rm () {
+    echo_step_start "Build CentOS images: To be removed"
 
     mkdir -p ${STX_PRJ_OUTPUT}
     cd ${STX_PRJ_OUTPUT}
@@ -297,6 +265,24 @@ build_image () {
     echo_info "Build succeeded, you can get the image in ${STX_PRJ_OUTPUT}/${ISO_INF_COS}"
 }
 
+build_image () {
+    echo_step_start "Build CentOS images"
+
+    mkdir -p ${STX_PRJ_OUTPUT}
+    cd ${MY_BUILD_DIR}
+    RUN_CMD="build-pkgs --build-avoidance"
+    run_cmd "Build pkgs"
+
+    RUN_CMD="build-iso"
+    run_cmd "Build ISO image"
+
+    cp ${MY_BUILD_DIR}/export/bootimage.iso ${STX_PRJ_OUTPUT}/${ISO_INF_COS}
+
+    echo_step_end
+
+    echo_info "Build succeeded, you can get the image in ${STX_PRJ_OUTPUT}/${ISO_INF_COS}"
+}
+
 
 #########################################################################
 # Main process
@@ -304,7 +290,8 @@ build_image () {
 
 prepare_workspace
 create_env
-#repo_init_sync
-#create_build_docker
-#exec_build_docker
-build_image
+repo_init_sync
+code_adjust
+populate_dl
+build_image_rm
+build_image || true
diff --git a/scripts/build_inf_centos/build_inf_prepare_jenkins.sh b/scripts/build_inf_centos/build_inf_prepare_jenkins.sh
new file mode 100755 (executable)
index 0000000..751073d
--- /dev/null
@@ -0,0 +1,297 @@
+#!/bin/sh
+#
+# Copyright (C) 2022 Wind River Systems, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# Ensure we fail the job if any steps fail.
+set -e -o pipefail
+
+#########################################################################
+# Variables
+#########################################################################
+WORKSPACE=""
+MIRROR_CONTAINER_IMG=infbuilder/inf-centos-mirror:2022.05-stx.6.0
+
+export BUILD_GROUP="jenkins"
+export WGET_OPENDEV="wget --no-check-certificate"
+export LOCALDISK="${WORKSPACE}/localdisk"
+export MIRROR_DIR="${WORKSPACE}/mirror"
+
+#########################################################################
+# Common Functions
+#########################################################################
+
+help_info () {
+cat << ENDHELP
+Usage:
+$(basename $0) [-w WORKSPACE_DIR] [-h]
+where:
+    -w WORKSPACE_DIR is the path for the builds
+    -h this help info
+examples:
+$0
+$0 -w workspace_1234
+ENDHELP
+}
+
+echo_step_start() {
+    [ -n "$1" ] && msg_step=$1
+    echo "#########################################################################################"
+    echo "## STEP START: ${msg_step}"
+    echo "#########################################################################################"
+}
+
+echo_step_end() {
+    [ -n "$1" ] && msg_step=$1
+    echo "#########################################################################################"
+    echo "## STEP END: ${msg_step}"
+    echo "#########################################################################################"
+    echo
+}
+
+
+while getopts "w:h" OPTION; do
+    case ${OPTION} in
+        w)
+            WORKSPACE=`readlink -f ${OPTARG}`
+            ;;
+        h)
+            help_info
+            exit
+            ;;
+    esac
+done
+
+get_mirror () {
+    msg_step="Get rpm mirror from dockerhub image"
+    echo_step_start
+
+    docker pull ${MIRROR_CONTAINER_IMG}
+    docker create -ti --name inf-centos-mirror-${i} ${MIRROR_CONTAINER_IMG} sh
+    docker cp inf-centos-mirror:/mirror ${MIRROR_DIR}
+    docker rm inf-centos-mirror
+
+    echo_step_end
+}
+
+
+#########################################################################
+# Main process
+#########################################################################
+
+sudo mkdir -p ${LOCALDISK}/loadbuild/mock-cache
+sudo mkdir -p ${LOCALDISK}/loadbuild/mock
+mkdir -p ${LOCALDISK}/designer
+mkdir -p ${LOCALDISK}/loadbuild
+
+#sudo mkdir -p ${MIRROR_DIR}/CentOS
+get_mirror
+
+sudo chmod 775 ${LOCALDISK}/loadbuild/mock
+sudo chown root:mock ${LOCALDISK}/loadbuild/mock
+sudo chmod 775 ${LOCALDISK}/loadbuild/mock-cache
+sudo chown root:mock ${LOCALDISK}/loadbuild/mock-cache
+
+# Download required dependencies by mirror/build processes.
+sudo yum install -y \
+    anaconda \
+    anaconda-runtime \
+    autoconf-archive \
+    autogen \
+    automake \
+    bc \
+    bind \
+    bind-utils \
+    bison \
+    cpanminus \
+    createrepo \
+    createrepo_c \
+    deltarpm \
+    docker-client \
+    expat-devel \
+    flex \
+    isomd5sum \
+    gcc \
+    gettext \
+    git \
+    libguestfs-tools \
+    libtool \
+    libxml2 \
+    lighttpd \
+    lighttpd-fastcgi \
+    lighttpd-mod_geoip \
+    net-tools \
+    mkisofs \
+    mongodb \
+    mongodb-server \
+    pax \
+    perl-CPAN \
+    python-deltarpm \
+    python-pep8 \
+    python-pip \
+    python-psutil \
+    python2-psutil \
+    python36-psutil \
+    python36-requests \
+    python3-devel \
+    python-sphinx \
+    python-subunit \
+    python-virtualenv \
+    python-yaml \
+    python2-ruamel-yaml \
+    postgresql \
+    qemu-kvm \
+    quilt \
+    rpm-build \
+    rpm-sign \
+    rpm-python \
+    squashfs-tools \
+    sudo \
+    systemd \
+    syslinux \
+    udisks2 \
+    vim-enhanced \
+    wget
+
+# clone the tools repo
+cd ~
+git clone https://opendev.org/starlingx/tools.git
+
+# mock custumizations
+# forcing chroots since a couple of packages naughtily insist on network access and
+# we dont have nspawn and networks happy together.
+sudo useradd -s /sbin/nologin -u 9001 -g 9001 mockbuild
+sudo rmdir /var/lib/mock
+sudo ln -s ${LOCALDISK}/loadbuild/mock /var/lib/mock
+sudo rmdir /var/cache/mock
+sudo ln -s ${LOCALDISK}/loadbuild/mock-cache /var/cache/mock
+echo "config_opts['use_nspawn'] = False" | sudo tee -a /etc/mock/site-defaults.cfg
+echo "config_opts['rpmbuild_networking'] = True" | sudo tee -a /etc/mock/site-defaults.cfg
+echo | sudo tee -a /etc/mock/site-defaults.cfg
+
+# cpan modules, installing with cpanminus to avoid stupid questions since cpan is whack
+sudo cpanm --notest Fatal
+sudo cpanm --notest XML::SAX
+sudo cpanm --notest XML::SAX::Expat
+sudo cpanm --notest XML::Parser
+sudo cpanm --notest XML::Simple
+
+# Install repo tool
+sudo wget https://storage.googleapis.com/git-repo-downloads/repo -O /usr/local/bin/repo
+sudo chmod a+x /usr/local/bin/repo
+
+# installing go and setting paths
+export GOPATH="/usr/local/go"
+export PATH="${GOPATH}/bin:${PATH}"
+sudo yum install -y golang
+sudo mkdir -p ${GOPATH}/bin
+curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sudo sh
+
+# pip installs
+# Install required python modules globally; versions are in the constraints file.
+# Be careful not to replace modules provided by RPMs as it may break
+# other system packages. Look for warnings similar to "Uninstalling a
+# distutils installed project has been deprecated" from pip.
+sudo pip install -c ~/tools/toCOPY/builder-constraints.txt \
+    testrepository \
+    fixtures \
+    pbr \
+    git-review \
+    python-subunit \
+    junitxml \
+    testtools
+
+# Create a sane py27 virtualenv
+virtualenv /opt/py27 && \
+    source /opt/py27/bin/activate && \
+    sudo pip install -c ~/tools/toCOPY/builder-opt-py27-constraints.txt \
+            tox \
+        && \
+    for prog in tox ; do \
+        ln -s /opt/py27/bin/$prog /usr/bin ; \
+    done
+
+# Inherited  tools for mock stuff
+# we at least need the mock_cache_unlock tool
+# they install into /usr/bin
+sudo cp -rf ~/tools/toCOPY/mock_overlay /opt/mock_overlay
+cd /opt/mock_overlay
+make
+sudo make install
+
+# This image requires a set of scripts and helpers
+# for working correctly, in this section they are
+# copied inside the image.
+sudo cp ~/tools/toCOPY/finishSetup.sh /usr/local/bin
+sudo cp ~/tools/toCOPY/populate_downloads.sh /usr/local/bin
+sudo cp ~/tools/toCOPY/generate-local-repo.sh /usr/local/bin
+sudo cp ~/tools/toCOPY/generate-centos-repo.sh /usr/local/bin
+sudo cp ~/tools/toCOPY/lst_utils.sh /usr/local/bin
+
+# centos locales are broken. this needs to be run after the last yum install/update
+sudo localedef -i en_US -f UTF-8 en_US.UTF-8
+
+# setup
+sudo mkdir -p /www/run
+sudo mkdir -p /www/logs
+sudo mkdir -p /www/home
+sudo mkdir -p /www/root/htdocs/localdisk
+sudo ln -s ${LOCALDISK}/loadbuild /www/root/htdocs/localdisk/loadbuild
+sudo ln -s ${MIRROR_DIR}/CentOS /www/root/htdocs/CentOS
+sudo ln -s ${LOCALDISK}/designer /www/root/htdocs/localdisk/designer
+sudo ln -s ${WORKSPACE} /www/root/htdocs/workspace
+
+# lighthttpd setup
+# chmod for /var/log/lighttpd fixes a centos issue
+# in place sed for server root since it's expanded soon thereafter
+#     echo "server.bind = \"localhost\"" >> /etc/lighttpd/lighttpd.conf && \
+sudo mkdir -p  /var/log/lighttpd
+sudo chmod a+rwx /var/log/lighttpd/
+sudo sed -i -e 's%^var\.log_root.*$%var.log_root = "/www/logs"%g' \
+    -e 's%^var\.server_root.*$%var.server_root = "/www/root"%g' \
+    -e 's%^var\.home_dir.*$%var.home_dir = "/www/home"%g' \
+    -e 's%^var\.state_dir.*$%var.state_dir = "/www/run"%g' \
+    -e "s/server.port/#server.port/g" \
+    -e "s/server.use-ipv6/#server.use-ipv6/g" \
+    -e "s/server.username/#server.username/g" \
+    -e "s/server.groupname/#server.groupname/g" \
+    -e "s/server.bind/#server.bind/g" \
+    -e "s/server.document-root/#server.document-root/g" \
+    -e "s/server.dirlisting/#server.dirlisting/g" \
+    -e "s/dir-listing.activate/#dir-listing.activate/g" \
+    /etc/lighttpd/lighttpd.conf
+
+echo "server.port = 8088" | sudo tee -a /etc/lighttpd/lighttpd.conf 
+echo "server.use-ipv6 = \"disable\"" | sudo tee -a /etc/lighttpd/lighttpd.conf 
+echo "server.username = \"$USER\"" | sudo tee -a /etc/lighttpd/lighttpd.conf 
+echo "server.groupname = \"$BUILD_GROUP\"" | sudo tee -a /etc/lighttpd/lighttpd.conf 
+echo "server.bind = \"localhost\"" | sudo tee -a /etc/lighttpd/lighttpd.conf 
+echo "server.document-root   = \"/www/root/htdocs\"" | sudo tee -a /etc/lighttpd/lighttpd.conf 
+echo "dir-listing.activate = \"enable\"" | sudo tee -a /etc/lighttpd/conf.d/dirlisting.conf
+
+sudo /usr/sbin/lighttpd  -f /etc/lighttpd/lighttpd.conf
+
+sudo chmod a+x /usr/local/bin/*
+
+# Customizations for mirror creation
+sudo rm -f /etc/yum.repos.d/*
+sudo cp -f ~/tools/centos-mirror-tools/yum.repos.d/* /etc/yum.repos.d/
+sudo cp -f ~/tools/centos-mirror-tools/rpm-gpg-keys/* /etc/pki/rpm-gpg/
+
+# Import GPG keys
+sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
+
+# Try to continue a yum command even if a StarlingX repo is unavailable.
+sudo yum-config-manager --setopt=StarlingX\*.skip_if_unavailable=1 --save
diff --git a/scripts/build_inf_centos/stx_build_prepare_centos.sh b/scripts/build_inf_centos/stx_build_prepare_centos.sh
deleted file mode 100644 (file)
index c4d9ec5..0000000
+++ /dev/null
@@ -1,340 +0,0 @@
-#!/bin/sh
-
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-#
-# Common env
-#
-# username to build
-export MYUNAME=stxbuilder
-export MYUID=1001
-export MY_EMAIL="oran.inf@windriver.com"
-export WGET_OPENDEV="wget --no-check-certificate"
-export LOCALDISK="/localdisk"
-export MIRROR_DIR="/import/mirrors"
-
-groupadd cgts
-echo "mock:x:751:root" >> /etc/group
-echo "mockbuild:x:9001:" >> /etc/group
-
-useradd -r -u $MYUID -g cgts -m $MYUNAME
-echo "Li69nux*"|sudo passwd --stdin ${MYUNAME}
-
-gpasswd -a $MYUNAME mock
-
-mkdir -p ${LOCALDISK}/loadbuild/mock-cache
-mkdir -p ${LOCALDISK}/loadbuild/mock
-mkdir -p ${LOCALDISK}/designer
-mkdir -p ${MIRROR_DIR}/CentOS
-
-chmod 775 ${LOCALDISK}/loadbuild/mock
-chown root:mock ${LOCALDISK}/loadbuild/mock
-chmod 775 ${LOCALDISK}/loadbuild/mock-cache
-chown root:mock ${LOCALDISK}/loadbuild/mock-cache
-
-
-# Proxy configuration
-export http_proxy="http://147.11.252.42:9090"
-export https_proxy="http://147.11.252.42:9090"
-export ftp_proxy="http://147.11.252.42:9090"
-
-echo "proxy=$http_proxy" >> /etc/yum.conf && \
-    echo -e "export http_proxy=$http_proxy\nexport https_proxy=$https_proxy\n\
-export ftp_proxy=$ftp_proxy" >> /root/.bashrc
-
-
-# CentOS & EPEL URLs that match the base image
-# Override these with --build-arg if you have a mirror
-CENTOS_7_8_URL=https://vault.centos.org/centos/7.8.2003
-CENTOS_7_9_URL=http://mirror.centos.org/centos-7/7.9.2009
-EPEL_7_8_URL=https://archives.fedoraproject.org/pub/archive/epel/7.2020-04-20
-
-# Lock down centos & epel repos
-rm -f /etc/yum.repos.d/*
-cd /etc/yum.repos.d/
-${WGET_OPENDEV} https://opendev.org/starlingx/tools/raw/branch/master/toCOPY/yum.repos.d/centos-7.9.repo
-${WGET_OPENDEV} https://opendev.org/starlingx/tools/raw/branch/master/toCOPY/yum.repos.d/centos.repo
-${WGET_OPENDEV} https://opendev.org/starlingx/tools/raw/branch/master/toCOPY/yum.repos.d/epel.repo
-
-cd /etc/pki/rpm-gpg/
-${WGET_OPENDEV} https://opendev.org/starlingx/tools/raw/branch/master/centos-mirror-tools/rpm-gpg-keys/RPM-GPG-KEY-EPEL-7
-
-cd -
-rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY* && \
-    echo "http_caching=packages" >> /etc/yum.conf && \
-    echo "skip_missing_names_on_install=0" >>/etc/yum.conf && \
-    # yum variables must be in lower case ; \
-    echo "$CENTOS_7_8_URL" >/etc/yum/vars/centos_7_8_url && \
-    echo "$EPEL_7_8_URL" >/etc/yum/vars/epel_7_8_url && \
-    echo "$CENTOS_7_9_URL" >/etc/yum/vars/centos_7_9_url && \
-    # disable fastestmirror plugin because we are not using mirrors ; \
-    # FIXME: use a mirrorlist URL for centos/vault/epel archives. I couldn't find one.
-    sed -i 's/enabled=1/enabled=0/' /etc/yum/pluginconf.d/fastestmirror.conf && \
-    echo "[main]" >> /etc/yum/pluginconf.d/subscription-manager.conf && \
-    echo "enabled=0" >> /etc/yum/pluginconf.d/subscription-manager.conf && \
-    yum clean all && \
-    yum makecache && \
-    yum install -y deltarpm
-
-
-# root CA cert expired on October 1st, 2021
-yum update -y --enablerepo=centos-7.9-updates ca-certificates
-
-# Download required dependencies by mirror/build processes.
-yum install -y \
-        anaconda \
-        anaconda-runtime \
-        autoconf-archive \
-        autogen \
-        automake \
-        bc \
-        bind \
-        bind-utils \
-        bison \
-        cpanminus \
-        createrepo \
-        createrepo_c \
-        deltarpm \
-        docker-client \
-        expat-devel \
-        flex \
-        isomd5sum \
-        gcc \
-        gettext \
-        git \
-        libguestfs-tools \
-        libtool \
-        libxml2 \
-        lighttpd \
-        lighttpd-fastcgi \
-        lighttpd-mod_geoip \
-        net-tools \
-        mkisofs \
-        mongodb \
-        mongodb-server \
-        pax \
-        perl-CPAN \
-        python-deltarpm \
-        python-pep8 \
-        python-pip \
-        python-psutil \
-        python2-psutil \
-        python36-psutil \
-        python36-requests \
-        python3-devel \
-        python-sphinx \
-        python-subunit \
-        python-virtualenv \
-        python-yaml \
-        python2-ruamel-yaml \
-        postgresql \
-        qemu-kvm \
-        quilt \
-        rpm-build \
-        rpm-sign \
-        rpm-python \
-        squashfs-tools \
-        sudo \
-        systemd \
-        syslinux \
-        udisks2 \
-        vim-enhanced \
-        wget
-
-# clone the tools repo
-cd ~
-git clone https://opendev.org/starlingx/tools.git
-
-# Finally install a locked down version of mock
-yum install -y https://mirrors.xlhy1.com/centos/7/updates/x86_64/Packages/python36-rpm-4.11.3-7.el7.x86_64.rpm
-yum install -y \
-    http://mirror.starlingx.cengn.ca/mirror/centos/epel/dl.fedoraproject.org/pub/epel/7/x86_64/Packages/m/mock-1.4.16-1.el7.noarch.rpm \
-    http://mirror.starlingx.cengn.ca/mirror/centos/epel/dl.fedoraproject.org/pub/epel/7/x86_64/Packages/m/mock-core-configs-31.6-1.el7.noarch.rpm
-
-# mock custumizations
-# forcing chroots since a couple of packages naughtily insist on network access and
-# we dont have nspawn and networks happy together.
-useradd -s /sbin/nologin -u 9001 -g 9001 mockbuild && \
-    rmdir /var/lib/mock && \
-    ln -s ${LOCALDISK}/loadbuild/mock /var/lib/mock && \
-    rmdir /var/cache/mock && \
-    ln -s ${LOCALDISK}/loadbuild/mock-cache /var/cache/mock && \
-    echo "config_opts['use_nspawn'] = False" >> /etc/mock/site-defaults.cfg && \
-    echo "config_opts['rpmbuild_networking'] = True" >> /etc/mock/site-defaults.cfg && \
-    echo  >> /etc/mock/site-defaults.cfg
-
-# cpan modules, installing with cpanminus to avoid stupid questions since cpan is whack
-cpanm --notest Fatal && \
-    cpanm --notest XML::SAX  && \
-    cpanm --notest XML::SAX::Expat && \
-    cpanm --notest XML::Parser && \
-    cpanm --notest XML::Simple
-
-# Install repo tool
-curl https://storage.googleapis.com/git-repo-downloads/repo > /usr/local/bin/repo && \
-    chmod a+x /usr/local/bin/repo
-
-# installing go and setting paths
-export GOPATH="/usr/local/go"
-export PATH="${GOPATH}/bin:${PATH}"
-yum install -y golang && \
-    mkdir -p ${GOPATH}/bin && \
-    curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh
-
-# Uprev git, repo
-yum install -y dh-autoreconf curl-devel expat-devel gettext-devel openssl-devel perl-devel zlib-devel asciidoc xmlto docbook2X && \
-    cd /tmp && \
-    wget https://github.com/git/git/archive/v2.29.2.tar.gz -O git-2.29.2.tar.gz && \
-    tar xzvf git-2.29.2.tar.gz && \
-    cd git-2.29.2 && \
-    make configure && \
-    ./configure --prefix=/usr/local && \
-    make all doc && \
-    make install install-doc && \
-    cd /tmp && \
-    rm -rf git-2.29.2.tar.gz git-2.29.2
-
-# Systemd Enablement
-#(cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \
-#    rm -f /lib/systemd/system/multi-user.target.wants/*;\
-#    rm -f /etc/systemd/system/*.wants/*;\
-#    rm -f /lib/systemd/system/local-fs.target.wants/*; \
-#    rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
-#    rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
-#    rm -f /lib/systemd/system/basic.target.wants/*;\
-#    rm -f /lib/systemd/system/anaconda.target.wants/*
-
-# pip installs
-# Install required python modules globally; versions are in the constraints file.
-# Be careful not to replace modules provided by RPMs as it may break
-# other system packages. Look for warnings similar to "Uninstalling a
-# distutils installed project has been deprecated" from pip.
-pip install -c ~/tools/toCOPY/builder-constraints.txt \
-        testrepository \
-        fixtures \
-        pbr \
-        git-review \
-        python-subunit \
-        junitxml \
-        testtools
-
-# Create a sane py27 virtualenv
-virtualenv /opt/py27 && \
-    source /opt/py27/bin/activate && \
-    pip install -c ~/tools/toCOPY/builder-opt-py27-constraints.txt \
-            tox \
-        && \
-    for prog in tox ; do \
-        ln -s /opt/py27/bin/$prog /usr/bin ; \
-    done
-
-# Inherited  tools for mock stuff
-# we at least need the mock_cache_unlock tool
-# they install into /usr/bin
-cp -rf ~/tools/toCOPY/mock_overlay /opt/mock_overlay
-cd /opt/mock_overlay && \
-    make && \
-    make install
-
-# This image requires a set of scripts and helpers
-# for working correctly, in this section they are
-# copied inside the image.
-cp ~/tools/toCOPY/finishSetup.sh /usr/local/bin
-cp ~/tools/toCOPY/populate_downloads.sh /usr/local/bin
-cp ~/tools/toCOPY/generate-local-repo.sh /usr/local/bin
-cp ~/tools/toCOPY/generate-centos-repo.sh /usr/local/bin
-cp ~/tools/toCOPY/lst_utils.sh /usr/local/bin
-cp ~/tools/toCOPY/.inputrc /home/$MYUNAME/
-chown $MYUNAME:cgts /home/$MYUNAME/.inputrc
-
-# Thes are included for backward compatibility, and
-# should be removed after a reasonable time.
-cp ~/tools/toCOPY/generate-cgcs-tis-repo /usr/local/bin
-cp ~/tools/toCOPY/generate-cgcs-centos-repo.sh /usr/local/bin
-
-#  ENV setup
-echo "# Load stx-builder configuration" >> /etc/profile.d/stx-builder-conf.sh && \
-    echo "if [[ -r \${HOME}/buildrc ]]; then" >> /etc/profile.d/stx-builder-conf.sh && \
-    echo "    source \${HOME}/buildrc" >> /etc/profile.d/stx-builder-conf.sh && \
-    echo "    export PROJECT SRC_BUILD_ENVIRONMENT MYPROJECTNAME MYUNAME" >> /etc/profile.d/stx-builder-conf.sh && \
-    echo "    export MY_BUILD_CFG MY_BUILD_CFG_RT MY_BUILD_CFG_STD MY_BUILD_DIR MY_BUILD_ENVIRONMENT MY_BUILD_ENVIRONMENT_FILE MY_BUILD_ENVIRONMENT_FILE_RT MY_BUILD_ENVIRONMENT_FILE_STD MY_DEBUG_BUILD_CFG_RT MY_DEBUG_BUILD_CFG_STD MY_LOCAL_DISK MY_MOCK_ROOT MY_REPO MY_REPO_ROOT_DIR MY_SRC_RPM_BUILD_DIR MY_RELEASE MY_WORKSPACE LAYER" >> /etc/profile.d/stx-builder-conf.sh && \
-    echo "fi" >> /etc/profile.d/stx-builder-conf.sh && \
-    echo "export FORMAL_BUILD=0" >> /etc/profile.d/stx-builder-conf.sh && \
-    echo "export PATH=\$MY_REPO/build-tools:\$PATH" >> /etc/profile.d/stx-builder-conf.sh
-
-# centos locales are broken. this needs to be run after the last yum install/update
-localedef -i en_US -f UTF-8 en_US.UTF-8
-
-# setup
-mkdir -p /www/run && \
-    mkdir -p /www/logs && \
-    mkdir -p /www/home && \
-    mkdir -p /www/root/htdocs/localdisk && \
-    chown -R $MYUID:cgts /www && \
-    ln -s ${LOCALDISK}/loadbuild /www/root/htdocs/localdisk/loadbuild && \
-    ln -s ${MIRROR_DIR}/CentOS /www/root/htdocs/CentOS && \
-    ln -s ${LOCALDISK}/designer /www/root/htdocs/localdisk/designer
-
-# lighthttpd setup
-# chmod for /var/log/lighttpd fixes a centos issue
-# in place sed for server root since it's expanded soon thereafter
-#     echo "server.bind = \"localhost\"" >> /etc/lighttpd/lighttpd.conf && \
-echo "$MYUNAME ALL=(ALL:ALL) NOPASSWD:ALL" >> /etc/sudoers && \
-    mkdir -p  /var/log/lighttpd  && \
-    chmod a+rwx /var/log/lighttpd/ && \
-    sed -i 's%^var\.log_root.*$%var.log_root = "/www/logs"%g' /etc/lighttpd/lighttpd.conf  && \
-    sed -i 's%^var\.server_root.*$%var.server_root = "/www/root"%g' /etc/lighttpd/lighttpd.conf  && \
-    sed -i 's%^var\.home_dir.*$%var.home_dir = "/www/home"%g' /etc/lighttpd/lighttpd.conf  && \
-    sed -i 's%^var\.state_dir.*$%var.state_dir = "/www/run"%g' /etc/lighttpd/lighttpd.conf  && \
-    sed -i "s/server.port/#server.port/g" /etc/lighttpd/lighttpd.conf  && \
-    sed -i "s/server.use-ipv6/#server.use-ipv6/g" /etc/lighttpd/lighttpd.conf && \
-    sed -i "s/server.username/#server.username/g" /etc/lighttpd/lighttpd.conf && \
-    sed -i "s/server.groupname/#server.groupname/g" /etc/lighttpd/lighttpd.conf && \
-    sed -i "s/server.bind/#server.bind/g" /etc/lighttpd/lighttpd.conf && \
-    sed -i "s/server.document-root/#server.document-root/g" /etc/lighttpd/lighttpd.conf && \
-    sed -i "s/server.dirlisting/#server.dirlisting/g" /etc/lighttpd/lighttpd.conf && \
-    echo "server.port = 8088" >> /etc/lighttpd/lighttpd.conf && \
-    echo "server.use-ipv6 = \"disable\"" >> /etc/lighttpd/lighttpd.conf && \
-    echo "server.username = \"$MYUNAME\"" >> /etc/lighttpd/lighttpd.conf && \
-    echo "server.groupname = \"cgts\"" >> /etc/lighttpd/lighttpd.conf && \
-    echo "server.bind = \"localhost\"" >> /etc/lighttpd/lighttpd.conf && \
-    echo "server.document-root   = \"/www/root/htdocs\"" >> /etc/lighttpd/lighttpd.conf && \
-    sed -i "s/dir-listing.activate/#dir-listing.activate/g" /etc/lighttpd/conf.d/dirlisting.conf && \
-    echo "dir-listing.activate = \"enable\"" >> /etc/lighttpd/conf.d/dirlisting.conf
-
-#systemctl enable lighttpd
-#systemctl start lighttpd
-/usr/sbin/lighttpd  -f /etc/lighttpd/lighttpd.conf
-
-
-echo "export PATH=/usr/local/bin:${LOCALDISK}/designer/$MYUNAME/bin:\$PATH" >> /home/$MYUNAME/.bashrc
-chmod a+x /usr/local/bin/*
-
-# Genrate a git configuration file in order to save an extra step
-# for end users, this file is required by "repo" tool.
-cd /home/$MYUNAME/
-runuser -u $MYUNAME -- git config --global user.email $MY_EMAIL && \
-    runuser -u $MYUNAME -- git config --global user.name $MYUNAME && \
-    runuser -u $MYUNAME -- git config --global color.ui false
-
-# Customizations for mirror creation
-rm -f /etc/yum.repos.d/*
-cp -f ~/tools/centos-mirror-tools/yum.repos.d/* /etc/yum.repos.d/
-cp -f ~/tools/centos-mirror-tools/rpm-gpg-keys/* /etc/pki/rpm-gpg/
-
-# Import GPG keys
-rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
-
-# Try to continue a yum command even if a StarlingX repo is unavailable.
-yum-config-manager --setopt=StarlingX\*.skip_if_unavailable=1 --save