Commit ea634600 authored by Andrea Valassi's avatar Andrea Valassi
Browse files

New gitlab-based workflow (no koji yet) for internal release 7.1.11-0

parent 25e16588
#!/bin/bash
# Copyright 2017 CERN. Licensed under LGPLv3+.
# Enable legacy builds (rpmbuild instead of koji) for 7.1/el7 and 1.0/el6?
LEGACY=false # disabled
LEGACY=true # enabled
#------------------------------------------------------------------------------
# Is this a (pre-)release-candidate tag (_0-rcXX or _0-prcXX)?
function is_rc_tag()
{
# Check arguments: expect "${rc_var} ${tag}"
if [ "$2" == "" ] || [ "$3" != "" ]; then
echo "PANIC! Wrong arguments to is_rc_tag: \"$*\"" > /dev/stderr
exit 1
fi
local _rva=$1
local _tag=$2
local _rev=$(echo $_tag | cut -d '.' -f3 | cut -d '-' -f2)
if [ "${_rev#0_rc}" != "${_rev}" ] || [ "${_rev#0_prc}" != "${_rev}" ]; then
echo "WARNING: tag ${tag} is a (pre-)release-candidate"
printf "\n"
eval ${_rva}=true
else
echo "INFO: tag ${tag} is NOT a (pre-)release-candidate"
printf "\n"
eval ${_rva}=false
fi
}
#------------------------------------------------------------------------------
# Is this a legacy tag on el7 (7.1) or el6 (1.0) using rpmbuild?
function is_legacy_tag()
{
# Check arguments: expect "${ur_var} ${tag} ${brn}"
if [ "$3" == "" ] || [ "$4" != "" ]; then
echo "PANIC! Wrong arguments to is_legacy_tag: \"$*\"" > /dev/stderr
exit 1
fi
local _uva=$1
local _tag=$2
local _brn=$3
local _vrsmaj=$(echo $_tag | cut -d '.' -f1)
local _vrsmin=$(echo $_tag | cut -d '.' -f2)
if ! $LEGACY; then
echo "INFO: will use the new default gitlab/koji workflow"
printf "\n"
eval ${_uva}=false
elif [ "${_brn}" == "el7" ] && [ "${_vrsmaj}" == "7" ] && [[ "${_vrsmin}" == "0" || "${_vrsmin}" == "1" ]]; then
echo "INFO: legacy release $_tag on $_brn"
echo "INFO: will use rpmbuild in the CI (skip koji)"
printf "\n"
eval ${_uva}=true
elif [ "${_brn}" == "el6" ] && [ "${_vrsmaj}" == "1" ] && [ "${_vrsmin}" == "0" ]; then
echo "INFO: legacy release $_tag on $_brn"
echo "INFO: will use rpmbuild in the CI (skip koji)"
printf "\n"
eval ${_uva}=true
else
echo "INFO: will use the new default gitlab/koji workflow"
printf "\n"
eval ${_uva}=false
fi
}
#------------------------------------------------------------------------------
# Analyse the spec or ctl file and determine the tag it refers to
function nam_tag_from_spec()
{
# Check arguments: expect "${snam_var} ${stag_var} ${spc} ${brn}"
# See http://www.linuxjournal.com/content/return-values-bash-functions
if [ "$4" == "" ] || [ "$5" != "" ]; then
echo "PANIC! Wrong arguments to nam_tag_from_spec: \"$*\"" > /dev/stderr
exit 1
fi
local _nva=$1
local _tva=$2
local _spc=$3
local _brn=$4
if [ ! -f ${_spc} ]; then
echo "ERROR! ${_spc} not found!?"
exit 1
fi
if grep -P '\t' ${_spc} > /dev/null; then
echo "ERROR! ${_spc} contains tabs"
exit 1
fi
# Parse the spec or control file
local _COLON=$(printf "\x3a")
if [ "${brn#ubuntu}" != ${brn} ]; then
# === CASE 1: UBUNTU
local _nam=$(cat ${_spc}| egrep "^Package${_COLON} "| awk '{print $2}')
local _vrs=$(cat ${_spc}| egrep "^Version${_COLON} "| awk '{print $2}')
local _arc=$(cat ${_spc}| egrep "^Architecture${_COLON} "| awk '{print $2}')
printf "HEP_OSlibs control file:\n ${_spc}\n"
printf "HEP_OSlibs package name:\n ${_nam}\n"
printf "HEP_OSlibs version:\n ${_vrs}\n"
printf "HEP_OSlibs architecture:\n ${_arc}\n"
printf "\n"
if [ "$arc64" != "$_arc" ]; then # Hack, would be better outside this func
echo "ERROR! Arch64 mismatch required vs spec: '$arc64' vs '$_arc'"
exit 1
fi
eval ${_nva}=${_nam}
eval ${_tva}=${_vrs}
else
# === CASE 2: REDHAT
local _nam=$(cat ${_spc}| egrep "^Name${_COLON}"| awk '{print $2}')
local _vrs=$(cat ${_spc}| egrep "^Version${_COLON}"| awk '{print $2}')
local _rls=$(cat ${_spc}| egrep "^Release${_COLON}"| awk '{split($2,a,"%");print a[1]}')
local _dis=.${_brn} # omit .cern in tag ("%{?dist}" is .el6 and .el7.cern)
printf "HEP_OSlibs spec file:\n ${_spc}\n"
printf "HEP_OSlibs package name:\n ${_nam}\n"
printf "HEP_OSlibs version:\n ${_vrs}\n"
printf "HEP_OSlibs release:\n ${_rls}${_dis}\n"
printf "\n"
# Check that the spec file contains a changelog header
if ! grep -q "%changelog" ${_spc}; then
echo "ERROR! ${_spc} has no %changelog header"
exit 1
fi
# Check that the spec file contains a changelog entry for this tag
if ! grep -q "${_vrs}-${_rls}" ${_spc}; then
echo "ERROR! ${_spc} has no changelog entry for ${_vrs}-${_rls}"
exit 1
fi
eval ${_nva}=${_nam}
eval ${_tva}=${_vrs}-${_rls}${_dis}
fi
}
#------------------------------------------------------------------------------
# Get a CERN SSO cookie
function get_gitlab_cookie()
{
# Check arguments: expect "${ckf_var}"
if [ "$1" == "" ] || [ "$2" != "" ]; then
echo "PANIC! Wrong arguments to gitlab_token: \"$*\"" > /dev/stderr
exit 1
fi
local _fva=$1
# Get a CERN SSO cookie for the current Kerberos user against gitlab.cern.ch
if [ -d ~/private/ ]; then
local _CKF=~/private/TMP-cookie.txt
\rm -rf $_CKF
else
echo "WARNING! Directory ~/private/ does not exist: use /tmp" > /dev/stderr
local _CKF=$(mktemp)
fi
cern-get-sso-cookie --krb -u https://gitlab.cern.ch/profile/account -o $_CKF
eval ${_fva}=${_CKF}
}
#------------------------------------------------------------------------------
#!/bin/bash
# Copyright 2017 CERN. Licensed under LGPLv3+.
# Load functions common to the interactive and CI scripts
. .functions.sh
# Verbose script
set -x
# Automatic exit on error
set -e
# Display the current working directory
# Display the current date and working directory
date
pwd
ls -alt
ls -lRt
# FOR QUICK TESTS
###mkdir -p build; touch build/dummy; exit 0
###mkdir build; touch build/dummy; exit 0
# Determine the git branch
if [ "$(ls README-*.md | wc -l)" != 1 ]; then echo "ERROR! There should be a single README-<branch>.md file"; exit 1; fi
......@@ -21,6 +25,18 @@ brn=$(ls README-*.md)
brn=${brn#README-}
brn=${brn%.md}
# Determine branch-specific package name, spec file suffix and 64-bit arch name
# [NB dependency lists are only computed for 64-bit meta-packages]
if [ "${brn}" == "el7" ]; then
nam=HEP_OSlibs
spc=${nam}.spec
arc64=x86_64 # Hardcoded here
elif [ "${brn}" == "el6" ]; then
nam=HEP_OSlibs_SL6
spc=${nam}.spec
arc64=x86_64 # Hardcoded here
fi
# ============================================
# === REDHAT branch (el6, el7)
# ============================================
......@@ -29,63 +45,68 @@ if [ "${brn}" == "el6" ] || [ "${brn}" == "el7" ]; then
# Display current O/S
cat /etc/redhat-release
# Install wget
yum install -y -q wget
yum history
yumid=$(yum history | grep Install | awk '{print $1; exit 0}')
# Analyse the local spec/ctl file and determine the tag it refers to
# The local spec/ctl file is the latest one in git by now
nam_tag_from_spec snam tag ${spc} ${brn}
if [ "$nam" != "$snam" ]; then
echo "ERROR! Name mismatch required vs spec: '$nam' vs '$snam'"
exit 1
fi
# Extract package name, version and release from the spec file
spc=HEP_OSlibs.spec
if [ "${brn}" == "el6" ]; then spc=HEP_OSlibs_SL6.spec; fi
COLON=$(printf "\x3a") # yaml gives CI errors otherwise...
nam=$(cat ${spc} | egrep "^Name${COLON}" | awk '{print $2}')
vrs=$(cat ${spc} | egrep "^Version${COLON}" | awk '{print $2}')
rls=$(cat ${spc} | egrep "^Release${COLON}" | awk '{split($2,a,"%"); print a[1]}')
dis=$(rpm -E "%{?dist}")
arc64=x86_64 # Hardcoded here (dependency lists are only computed for 64bit packages)
pkg64=${nam}-${vrs}-${rls}${dis}.${arc64}
# Determine the rpm filename and the koji version/release
if [ "${brn}" == "el7" ]; then
# Add back .cern from `rpm -E "%{?dist}"`
rpmsr=${nam}-${tag}.cern.src.rpm
pkg64=${nam}-${tag}.cern.${arc64}
vrs=${tag%%-*}
dis=${tag#*-}.cern
else
rpmsr=${nam}-${tag}.src.rpm
pkg64=${nam}-${tag}.${arc64}
vrs=${tag%%-*}
dis=${tag#*-}
fi
rpm64=${pkg64}.rpm
rpmsr=${nam}-${vrs}-${rls}${dis}.src.rpm
dep64=${nam}.${arc64}
# Use the output directories of rpmbuild even if rpmbuild is not called in the CI
# Is this a legacy RedHat release using rpmbuild in the CI instead of koji?
is_legacy_tag use_rpmbuild ${tag} ${brn}
# Install build/download packages
if ! ${use_rpmbuild}; then
yum install -y -q wget
else
yum install -y -q rpm-build
fi
yum history
yumid=$(yum history | grep Install | awk '{print $1; exit 0}')
# Use the output directories of rpmbuild (even when rpmbuild is not used)
rpd64=$(rpm -E %_topdir)/RPMS/${arc64}
rpdsr=$(rpm -E %_topdir)/SRPMS
mkdir -p ${rpd64}
mkdir -p ${rpdsr}
# Old el6 or el7 pkg: download from WLCG or SLC6/CC7 and test installation
# Use SLC6/CC7 for el6 releases until 1.0.8 included (WLCG was not yet used)
# Use WLCG for el6 releases from 1.0.9 included and for all el7 releases
# Many releases, including the latest 1.0.20-0.el6 and 7.1.10-0.el7, are only in WLCG
if [ "${brn}" == "el7" ]; then
###url64=http://linuxsoft.cern.ch/cern/centos/7/cern/x86_64/Packages/${rpm64}
###urlsr=http://linuxsoft.cern.ch/cern/centos/7/cern/Source/SPackages/${rpmsr}
url64=http://linuxsoft.cern.ch/wlcg/centos7/x86_64/${rpm64}
urlsr=http://linuxsoft.cern.ch/wlcg/centos7/SRPMS/${rpmsr}
elif [ "${brn}" == "el6" ]; then
vrsmaj=$(echo $vrs | cut -d '.' -f1)
vrsmin=$(echo $vrs | cut -d '.' -f2)
vrspat=$(echo $vrs | cut -d '.' -f3)
if [ "${vrsmaj}" == "1" ] && [ "${vrsmin}" == "0" ] && [[ ${vrspat} -lt 19 ]]; then
url64=http://linuxsoft.cern.ch/cern/slc6X/extras/x86_64/RPMS/${rpm64}
urlsr=http://linuxsoft.cern.ch/cern/slc6X/extras/SRPMS/${rpmsr}
else
url64=http://linuxsoft.cern.ch/wlcg/sl6/x86_64/${rpm64}
urlsr=http://linuxsoft.cern.ch/wlcg/sl6/SRPMS/${rpmsr}
fi
# Download rpm's from koji (or build them if this is a legacy tag)
if ! ${use_rpmbuild}; then
download=1
wget -q https://koji.cern.ch/kojifiles/packages/${nam}/${vrs}/${dis}/${arc64}/${rpm64} -O ${rpd64}/${rpm64}
wget -q https://koji.cern.ch/kojifiles/packages/${nam}/${vrs}/${dis}/src/${rpmsr} -O ${rpdsr}/${rpmsr} # get source rpm too, even if not really needed
else
echo "INTERNAL ERROR! Unknown branch '${brn}'"
exit 1
download=0
# Build the .rpm and .src.rpm packages
rpmbuild -ba ${spc} --target ${arc64}
ls -lt ${rpd64}
ls -lt ${rpdsr}
fi
wget -q ${url64} -O ${rpd64}/${rpm64}
wget -q ${urlsr} -O ${rpdsr}/${rpmsr}
# Check that the expected 64-bit meta-package and source rpm have been downloaded
if [ ! -f ${rpd64}/${rpm64} ]; then echo "ERROR! ${rpm64} has not been downloaded"; exit 1; else echo "${rpm64} has been downloaded"; fi
if [ ! -f ${rpdsr}/${rpmsr} ]; then echo "ERROR! ${rpmsr} has not been downloaded"; exit 1; else echo "${rpmsr} has been downloaded"; fi
# Check that the expected 64-bit meta-package has been built/downloaded
# Check also that the source rpm has been built/downloaded
if [ "${download}" != "1" ]; then built="built"; else built="downloaded"; fi
if [ ! -f ${rpd64}/${rpm64} ]; then echo "ERROR! ${rpm64} has not been ${built}"; exit 1; else echo "${rpm64} has been ${built}"; fi
if [ ! -f ${rpdsr}/${rpmsr} ]; then echo "ERROR! ${rpmsr} has not been ${built}"; exit 1; else echo "${rpmsr} has been ${built}"; fi
# Uninstall wget before dumping the packages installed by HEP_OSlibs
# Uninstall build/download packages before dumping dependency lists
yum history -y -q undo ${yumid}
yum history
......@@ -94,9 +115,14 @@ if [ "${brn}" == "el6" ] || [ "${brn}" == "el7" ]; then
# Dump the list of newly installed packages
# (compare packages in O/S before and after installation of meta-package)
rpm -qa --queryformat '%{NAME}.%{ARCH}\n' > tmp0.txt
rpm -qa --queryformat '%{NAME}.%{ARCH} %{SIZE}\n' > tmp0s.txt
if ! yum install -y ${rpd64}/${rpm64} > tmplog.txt; then cat tmplog.txt; echo "ERROR! ${rpm64} could not be installed"; exit 1; else echo "${rpm64} has been installed"; fi
rpm -qa --queryformat '%{NAME}.%{ARCH}\n' > tmp1.txt
(! diff tmp0.txt tmp1.txt ) | grep "^>" | grep -v HEP_OSlibs | awk '{split($2,p,"/"); print p[1]}' | sort -u > ./${dep64}.dependencies-installed.txt
rpm -qa --queryformat '%{NAME}.%{ARCH} %{SIZE}\n' > tmp1s.txt
(! diff tmp0.txt tmp1.txt ) | grep "^>" | grep -v HEP_OSlibs | awk '{print $2}' | sort -u > ./${dep64}.dependencies-installed.txt
(! diff tmp0s.txt tmp1s.txt ) | grep "^>" | grep -v HEP_OSlibs | awk '{print $2, $3}' | sort -u > tmp2s.txt
awk '{s+=$2}END{print "HEP_OSlibs total_installed_size(bytes): "s"\n"}' tmp2s.txt > ./${dep64}.dependencies-installed-size.txt
cat tmp2s.txt >> ./${dep64}.dependencies-installed-size.txt
# Dump the list of direct dependencies of the meta-package
rpm -qpR ${rpd64}/${rpm64} | egrep -v "^rpmlib\(" | awk -vs64='(x86-64)' -vs32='(x86-32)' '{i64=index($1,s64); i32=index($1,s32); if (i64>0) print substr($1,0,i64-1)".x86_64"; else if (i32>0) print substr($1,0,i32-1)".i686"; else print $1".noarch"}' | sort -u > ./${dep64}.dependencies-direct.txt
......@@ -111,6 +137,16 @@ if [ "${brn}" == "el6" ] || [ "${brn}" == "el7" ]; then
cat ./${dep64}.dependencies-recursive-tree.txt | awk '{for(i=1;i<=NF;++i) {if($i!="|"&&$i!="\\_"){print $i; break}}}' | grep -v HEP_OSlibs | sort -u > ./${dep64}.dependencies-recursive-flat.txt
fi
# Add a header to all dependency lists
printf "HEP_OSlibs meta-package: ${rpm64}\n" > tmph.txt
printf "HEP_OSlibs current_OS: $(cat /etc/redhat-release)\n" >> tmph.txt
for dep in ${dep64}*.txt; do
cat tmph.txt > ${dep}.new
if [ "${dep}" == "${dep%-size.txt}" ]; then printf "\n" >> ${dep}.new; fi
cat ${dep} >> ${dep}.new
mv ${dep}.new ${dep}
done
# Keep track of the O/S where dependency lists were determined
red=README-dependencies.md
echo "Dependency lists for the 64-bit meta-rpm were determined by installing it on a system running:" > ./${red}
......@@ -118,15 +154,22 @@ if [ "${brn}" == "el6" ] || [ "${brn}" == "el7" ]; then
# Upload all artifacts
mkdir build
if [ "${download}" != "1" ]; then
cp ${rpd64}/${rpm64} build/
cp ${rpdsr}/${rpmsr} build/
fi
cp ${dep64}*.txt build/
cp ${red} build/
# Finally add a timestamp
date --rfc-2822 > build/timestamp.txt
# ============================================
# === ERROR! Unknown branch
# === ERROR! Unknown or invalid branch
# ============================================
else
echo "ERROR! Unknown branch '${brn}'"
echo "ERROR! Unknown or invalid branch '${brn}'"
exit 1
fi
......@@ -57,7 +57,7 @@ build_ubuntu1604_job:
expire_in: 1h
deploy_job:
image: cern/slc6-base
image: cern/cc7-base
stage: deploy
script:
- ls -alt
......
# **HEP_OSlibs meta-package for CentOS7 and CC7**
# **HEP_OSlibs meta-package for CentOS7 and CC7 (HEP_OSlibs for el7)**
HEP_OSlibs is a meta-package that captures the Linux OS dependencies
of the software of the four LHC experiments.
......@@ -6,83 +6,107 @@ of the software of the four LHC experiments.
On CentOS7, CC7 and other el7 RedHat systems,
this meta-package is released under the name HEP_OSlibs.
## Legacy releases for CentOS7 and CC7 (HEP_OSlibs for el7)
This [README-el7.md](README-el7.md)
is the documentation page for HEP_OSlibs
on CentOS7, CC7 and other el7 RedHat systems.
- It is maintained in the [el7](/../tree/el7)
branch of this project on gitlab.cern.ch.
- For a general overview of HEP_OSlibs on all supported platforms,
please refer to the generic [master/README.md](/../blob/master/README.md)
file in the master branch.
This [README-el7.md](/README-el7.md) is the gitlab documentation page
for legacy HEP_OSlibs releases 7.0.x and 7.1.x for el7,
built before the switch to the new gitlab-based workflow in October 2017.
## CentOS7 vs CC7
The meta-package is designed to be installed on CentOS7/CC7 x86_64.
The meta-package is designed to be installed on CentOS7/CC7.
Packages may be specifically requested for CentOS7,
but the meta-rpm is only tested on CC7, not on CentOS7.
## 32-bit and 64-bit dependencies
The meta-package is designed to be installed on CentOS7/CC7 64-bit (x86_64).
Currently, **only a 64-bit meta-rpm
with 64-bit package dependencies is built on el7.**
Installing this meta-package will only pull in 64-bit dependencies.
Different policies have been used over time
for the inclusion of 32-bit and 64-bit package-dependencies
in the meta-packages on el7:
- In the 7.0 release series, a single 64-bit meta-package was built,
including both 32-bit and 64-bit package dependencies.
This is the same policy used in HEP_OSlibs_SL6 for el6.
including both 32-bit and 64-bit package dependencies.
This is the same policy used in HEP_OSlibs_SL6 for el6.
- In releases 7.1.0 to 7.1.9, separate 64-bit and 32-bit meta-packages
were built, including only the respective dependencies.
This was implemented by using ISA macros (`%{__isa}`).
- As of release 7.1.10, only the 64-bit meta-package with 64-bit
package dependencies have been built.
On CentOS7, all LHC experiments run their software in 64-bit mode only.
Legacy releases 7.0.0 to 7.1.9 were prepared using the following simple workflow:
- prepare a new spec file
- build a 64-bit meta-rpm (and a 32-bit meta-rpm where appropriate,
as described above) and the corresponding source rpm,
using `rpmbuild -bb` and `rpmbuild -bs`, respectively
- sign and install the meta-rpm('s) and the source rpm in the WLCG repository
- open a SNOW ticket asking the Linux support team at CERN
to sign and install the meta-rpm('s) and the source rpm in the SLC6 repository
Legacy release 7.1.10 was prepared using a similar workflow,
but a [koji scratch build](http://koji.cern.ch/koji/taskinfo?taskID=933948)
was used instead of `rpmbuild`.
This release has not been installed in the SLC6 repository.
During the migration to gitlab,
the following information has been committed and tagged in the git repository
for every el7 legacy release:
- the spec file for the release, extracted from the corresponding source rpm
- dependency lists for the 64-bit meta-rpm,
determined by installing this meta-package on a system running
a minimal Docker image of `cern/cc7-base` in the gitlab CI
Additional information is also available from the gitlab CI,
but has not been committed and tagged in the git repository.
## Current release: 7.1.10-0.el7
<!-- Throughout this file, all occurrences of "7.1.10-0.el7" are
were built, including only the respective dependencies.
<br/>&nbsp; -
The split of 64-bit and 32-bit dependencies was implemented
by using ISA macros (`%{__isa}`) in the spec file.
This also simplifies the port to new architectures such as ARM.
- As of release 7.1.10, only the 64-bit meta-package
with 64-bit package dependencies has been built.
On CentOS7, all LHC experiments run their software in 64-bit mode only.
## Current release: 7.1.11-0.el7
<!-- Throughout this file, all occurrences of "7.1.11-0.el7" are
automatically replaced with the latest tag by the pkg.sh script -->
This [README-el7.md](/README-el7.md) belongs to the documentation
for legacy release [7.1.10-0.el7](/../tree/7.1.10-0.el7).
The latest release of HEP_OSlibs for el7
is [7.1.11-0.el7](/../tree/7.1.11-0.el7).
This is an internal release,
which is not meant to be distributed or installed on WLCG sites.
Its goal is to test the new gitlab-based workflow, except for koji:
as on previous releases, the rpm's are built using `rpmbuild`,
but this is now done within the gitlab CI (as on Ubuntu).
The x86_64 meta-package for legacy release 7.1.10-0.el7 is available from the
[WLCG](http://linuxsoft.cern.ch/wlcg/centos7/x86_64/) repository at CERN
(this version is not available from the [centos/7/cern](http://linuxsoft.cern.ch/cern/centos/7/cern/x86_64/repoview/HEP_OSlibs.html) repository):
- download http://linuxsoft.cern.ch/wlcg/centos7/x86_64/HEP_OSlibs-7.1.10-0.el7.cern.x86_64.rpm
The 64-bit meta-rpm and the source rpm for this release
are only available as gitlab CI
[artifacts](https://gitlab.cern.ch/avalassi/heposlibs-test/builds/artifacts/7.1.11-0.el7-testing/browse/build?job=deploy_job).
The following information for this release is available in gitlab:
- the spec file used to build the package: <br>
see [HEP_OSlibs.spec](HEP_OSlibs.spec)
### Contents
The direct dependencies for the latest
release 7.1.11-0.el7 of HEP_OSlibs for el7
are declared in the corresponding rpm spec file,
which is available in gitlab:
- the rpm spec file used to build the package: <br/>
see [HEP_OSlibs.spec](/../blob/7.1.11-0.el7/HEP_OSlibs.spec)
Lists of direct and indirect dependencies have also been prepared
while testing the meta-package in the gitlab CI,
on a system running a minimal Docker image of `cern/cc7-base`.
The following four dependency lists for this release are available in gitlab:
- direct dependencies, as a list (from `rpm -qpR`): <br/>
see [HEP_OSlibs.x86_64.dependencies-direct.txt](dependencies/HEP_OSlibs.x86_64.dependencies-direct.txt)
see [HEP_OSlibs.x86_64.dependencies-direct.txt](/../blob/7.1.11-0.el7/dependencies/HEP_OSlibs.x86_64.dependencies-direct.txt)
- recursive dependencies, as a list (from `repoquery --tree-requires`): <br/>
see [HEP_OSlibs.x86_64.dependencies-recursive-flat.txt](dependencies/HEP_OSlibs.x86_64.dependencies-recursive-flat.txt)
- installed dependencies, as a list (from `rpm -qa`, before and after installation): <br/>
see [HEP_OSlibs.x86_64.dependencies-installed.txt](dependencies/HEP_OSlibs.x86_64.dependencies-installed.txt)
<!-- GITURL = https://gitlab.cern.ch/linuxsupport/rpms/HEP_OSlibs -- DO NOT DELETE! -->
The three dependency lists mentioned above, plus the following information,
see [HEP_OSlibs.x86_64.dependencies-recursive-flat.txt](/../blob/7.1.11-0.el7/dependencies/HEP_OSlibs.x86_64.dependencies-recursive-flat.txt)
- installed dependencies, as a list (from `rpm -qa`,
before and after installation): <br/>
see [HEP_OSlibs.x86_64.dependencies-installed.txt](/../blob/7.1.11-0.el7/dependencies/HEP_OSlibs.x86_64.dependencies-installed.txt)
- installed packages, as a list, with sizes in bytes (from `rpm -qa`,
before and after installation): <br/>
see [HEP_OSlibs.x86_64.dependencies-installed-size.txt](/../blob/7.1.11-0.el7/dependencies/HEP_OSlibs.x86_64.dependencies-installed-size.txt)
<!-- GITURL = https://gitlab.cern.ch/avalassi/heposlibs-test -- DO NOT DELETE! -->
The four short dependency lists mentioned above,
plus the following more detailed list,
are also available for download as gitlab CI
[artifacts](https://gitlab.cern.ch/linuxsupport/rpms/HEP_OSlibs/builds/artifacts/7.1.10-0.el7-testing/browse/build?job=deploy_job):
[artifacts](https://gitlab.cern.ch/avalassi/heposlibs-test/builds/artifacts/7.1.11-0.el7-testing/browse/build?job=deploy_job):
- recursive dependencies, as a tree (from `repoquery --tree-requires`): <br/>
download [HEP_OSlibs.x86_64.dependencies-recursive-tree.txt](https://gitlab.cern.ch/linuxsupport/rpms/HEP_OSlibs/builds/artifacts/7.1.10-0.el7-testing/raw/build/HEP_OSlibs.x86_64.dependencies-recursive-tree.txt?job=deploy_job)
download [HEP_OSlibs.x86_64.dependencies-recursive-tree.txt](https://gitlab.cern.ch/avalassi/heposlibs-test/builds/artifacts/7.1.11-0.el7-testing/raw/build/HEP_OSlibs.x86_64.dependencies-recursive-tree.txt?job=deploy_job)
### Changelog
<!-- CHANGELOG = HEP_OSlibs.spec#L167 -- DO NOT DELETE! -->
Read the changelog for release 7.1.11-0.el7 in the
[HEP_OSlibs.spec](/../blob/7.1.11-0.el7/HEP_OSlibs.spec#L167)
file.
## License
Copyright 2009-2017 CERN.
Licensed under [LGPLv3](https://www.gnu.org/licenses/lgpl-3.0.txt) or (at your option) any later version.
Licensed under [LGPLv3](https://www.gnu.org/licenses/lgpl-3.0.txt)
or (at your option) any later version.
See [COPYRIGHT.txt](COPYRIGHT.txt) for more details.
This diff is collapsed.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment