diff --git a/slc5-cms/Dockerfile b/slc5-cms/Dockerfile index ff35877b7fd26ee55ed61c3dae16804a27230a19..fcffddfa17e51ffab9ac27c6f81f2f57003eb31a 100644 --- a/slc5-cms/Dockerfile +++ b/slc5-cms/Dockerfile @@ -53,7 +53,7 @@ RUN wget http://repository.egi.eu/sw/production/cas/1/current/repo-files/EGI yum install -y HEP_OSlibs_SL5 ca-policy-lcg ca-policy-egi-core wlcg-repo.noarch wlcg-voms-cms && \ yum clean -y all -ENV UPDATE_PATH /opt/patches +ENV UPDATE_PATH /usr/local RUN mkdir -p ${UPDATE_PATH} FROM cmssw-base AS git-update @@ -63,8 +63,7 @@ RUN chmod +x /root/update_script.sh && source /root/update_script.sh FROM cmssw-base AS slim -COPY --from=git-update ${UPDATE_PATH}/bin ${UPDATE_PATH}/bin -COPY --from=git-update ${UPDATE_PATH}/lib ${UPDATE_PATH}/lib +COPY --from=git-update ${UPDATE_PATH} ${UPDATE_PATH} RUN groupadd -g 1000 cmsusr && adduser -u 1000 -g 1000 -G root cmsusr && \ echo "cmsusr ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers && \ diff --git a/slc5-cms/entrypoint.sh b/slc5-cms/entrypoint.sh index 452889f2178a2bb5210f1b478654f8c317f4659f..98b2f5bc51ed4913a522105022f812774488233a 100755 --- a/slc5-cms/entrypoint.sh +++ b/slc5-cms/entrypoint.sh @@ -11,11 +11,11 @@ else echo "::: /cvmfs/cms.cern.ch/cmsset_default.sh not found/available" fi -export LD_LIBRARY_PATH=${UPDATE_PATH}/lib:${LD_LIBRARY_PATH} +export LD_LIBRARY_PATH=${UPDATE_PATH}/lib:${UPDATE_PATH}/lib64:${LD_LIBRARY_PATH} export PATH=${UPDATE_PATH}/bin:${PATH} echo "To use an updated version of git please run the following commands after cmsenv:" echo "export PATH=\$UPDATE_PATH/bin:\$PATH" -echo "export LD_LIBRARY_PATH=\$UPDATE_PATH/lib:\$LD_LIBRARY_PATH" +echo "export LD_LIBRARY_PATH=\$UPDATE_PATH/lib:\$UPDATE_PATH/lib64:\$LD_LIBRARY_PATH" exec "$@" diff --git a/slc5-cms/update_script.sh b/slc5-cms/update_script.sh index 7367a36f51e9dd968d3c1e8d75c91d549e270d88..5f30c41b7217a152f0b2f5b30eb790455c6901f2 100644 --- a/slc5-cms/update_script.sh +++ b/slc5-cms/update_script.sh @@ -1,5 +1,9 @@ +#!/bin/bash +set -e + yum -y install make yum -y groupinstall 'Development Tools' +yum remove -y openssl-devel export INSTALL_DIR=${UPDATE_PATH} export GETTEXT_VERSION=gettext-0.20.1 @@ -9,18 +13,17 @@ export M4_VERSION=m4-1.4.18 export AUTOCONF_VERSION=autoconf-2.69 export GIT_VERSION=git-2.21.0 export PERL_VERSION=perl-5.30.2 -export LD_LIBRARY_PATH=${INSTALL_DIR}/lib:${LD_LIBRARY_PATH} +export LD_LIBRARY_PATH=${INSTALL_DIR}/lib:${INSTALL_DIR}/lib64:${LD_LIBRARY_PATH} export PATH=${INSTALL_DIR}/bin:${PATH} -# mkdir -p ${INSTALL_DIR} cd ${INSTALL_DIR} -wget http://ftp.gnu.org/pub/gnu/gettext/${GETTEXT_VERSION}.tar.gz -wget ftp://mirrors.gethosted.online/curl-haxx/${CURL_VERSION}.tar.gz -wget http://www.openssl.org/source/${OPENSSL_VERSION}.tar.gz -wget http://mirrors.edge.kernel.org/pub/software/scm/git/${GIT_VERSION}.tar.gz -wget http://ftp.gnu.org/gnu/m4/${M4_VERSION}.tar.gz -wget http://ftp.gnu.org/gnu/autoconf/${AUTOCONF_VERSION}.tar.gz -wget http://www.cpan.org/src/5.0/${PERL_VERSION}.tar.gz +wget -q http://ftp.gnu.org/pub/gnu/gettext/${GETTEXT_VERSION}.tar.gz +wget -q ftp://mirrors.gethosted.online/curl-haxx/${CURL_VERSION}.tar.gz +wget -q http://www.openssl.org/source/${OPENSSL_VERSION}.tar.gz +wget -q http://mirrors.edge.kernel.org/pub/software/scm/git/${GIT_VERSION}.tar.gz +wget -q http://ftp.gnu.org/gnu/m4/${M4_VERSION}.tar.gz +wget -q http://ftp.gnu.org/gnu/autoconf/${AUTOCONF_VERSION}.tar.gz +wget -q http://www.cpan.org/src/5.0/${PERL_VERSION}.tar.gz tar xzf ${GETTEXT_VERSION}.tar.gz cd ${GETTEXT_VERSION} @@ -33,7 +36,7 @@ rm -rf ${GETTEXT_VERSION} tar -xzf ${PERL_VERSION}.tar.gz cd ${PERL_VERSION} -./Configure -des +./Configure -des -Dprefix=/usr/local make make install cd .. @@ -51,7 +54,7 @@ rm -rf ${OPENSSL_VERSION} tar xzf ${CURL_VERSION}.tar.gz cd ${CURL_VERSION} -./configure --with-ssl=${INSTALL_DIR} --prefix=${INSTALL_DIR} +./configure --prefix=${INSTALL_DIR} make make install cd .. @@ -61,7 +64,7 @@ rm -rf ${CURL_VERSION} tar xzf ${M4_VERSION}.tar.gz cd ${M4_VERSION} ./configure --prefix=${INSTALL_DIR} -make -j16 +make make install cd .. rm ${M4_VERSION}.tar.gz @@ -70,18 +73,32 @@ rm -rf ${M4_VERSION} tar xzf ${AUTOCONF_VERSION}.tar.gz cd ${AUTOCONF_VERSION} ./configure --prefix=${INSTALL_DIR} -make -j16 +make make install cd .. rm ${AUTOCONF_VERSION}.tar.gz rm -rf ${AUTOCONF_VERSION} -tar xzf ${GIT_VERSION}.tar.gz +tar xzf ${GIT_VERSION}.tar.gz cd ${GIT_VERSION} make configure -./configure --prefix=${INSTALL_DIR} --with-openssl=${INSTALL_DIR} --with-curl=${INSTALL_DIR} -make -j16 -make install -i +./configure --prefix=${INSTALL_DIR} +make +make strip +make install cd .. rm ${GIT_VERSION}.tar.gz rm -rf ${GIT_VERSION} + +# remove files that aren't part of standard package +rm ${INSTALL_DIR}/libexec/git-core/git-cvs* && \ +rm ${INSTALL_DIR}/libexec/git-core/git-daemon && \ +rm ${INSTALL_DIR}/libexec/git-core/git-fast-import && \ +rm ${INSTALL_DIR}/libexec/git-core/git-http-backend && \ +rm ${INSTALL_DIR}/libexec/git-core/git-instaweb && \ +rm ${INSTALL_DIR}/libexec/git-core/git-shell && \ +rm ${INSTALL_DIR}/libexec/git-core/git-svn && \ +rm ${INSTALL_DIR}/libexec/git-core/*p4* && \ +rm ${INSTALL_DIR}/libexec/git-core/mergetools/*p4* && \ +rm ${INSTALL_DIR}/libexec/git-core/*email* && \ +rm ${INSTALL_DIR}/libexec/git-core/*imap*