README-el7.md 8.87 KB
Newer Older
1
2
3
4
*(This documentation has been moved from its previous location in 
https://twiki.cern.ch/twiki/bin/view/LCG/CentOS7DependencyRPM,
which is no longer maintained.)*

5
# **HEP_OSlibs meta-package for CentOS7 and CC7 (HEP_OSlibs for el7)**
6
7
8
9

HEP_OSlibs is a meta-package that captures the Linux OS dependencies 
of the software of the four LHC experiments.

10
11
12
This [README-el7.md](README-el7.md)
is the documentation page for HEP_OSlibs
on CentOS7, CC7 and other el7 RedHat systems.
13
14
- It describes HEP_OSlibs releases 7.2.x and above for el7,
  built after the switch to the new gitlab-based workflow in October 2017.
15
16
17
18
19
- 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.
20

21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
## Git tags and rpm NVR (Name-Version-Release)

RPM filenames for HEP_OSlibs on RedHat
use the Name-Version-Package (NVR) format,
as described by the [RPM packaging guide](http://rpm-guide.readthedocs.io/en/latest/rpm-guide.html#what-is-a-spec-file)
and the [Fedora versioning guidelines](https://fedoraproject.org/wiki/Packaging:Versioning#Simple_versioning).
- On el7, the Name of the meta-package is HEP_OSlibs.
  There is no longer a suffix indicating the O/S as on el6,
  where the name of the meta-package was HEP_OSlibs_SL6.
- Changes in the contents (i.e. the dependencies) of the meta-package
  are reflected in changes of the "upstream" RPM Version
  (e.g. from 7.1.9 to 7.1.10).
- The RPM Release is initially equal to 1%{?dist},
  as recommended by the [Fedora versioning guidelines](https://fedoraproject.org/wiki/Packaging:Versioning#Simple_versioning);
  this value may then be incremented for new builds of the same Version.
    <br/>&nbsp; -
    Note that previous releases of the meta-package 
    built before the introduction of the gitlab-based workflow
    had an RPM Release equal to 0%{?dist}.
    <br/>&nbsp; -
    The RPM ["%{?dist}"](https://fedoraproject.org/wiki/Packaging:DistTag) tag
    is equal to ".el7.cern" on CC7, with a trailing ".cern"
    (as can be seen by `rpm -E "%{?dist}"`).

Each new release of the meta-package
is assigned a new tag in this gitlab project.
- On el7, the gitlab tag is obtained
  by removing the trailing ".cern" from the RPM
  "Version-Release" identifier. All gitlab tags for el7 thus end with ".el7".
- As an example, the gitlab tag for the latest release
51
  HEP_OSlibs-7.2.1-1.el7.x86_64.rpm is 7.2.1-1.el7.
52
53
54
55
- You may **browse here all [tags](/../tags?search=el7)
  of HEP_OSlibs for el7**,
  including tags for the legacy release series 7.0 and 7.1.

56
## CentOS7 vs CC7
57

58
59
The meta-package is designed
to be installed on CentOS7/CC7.
60
61
62
63
64
65

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

66
67
The meta-package is designed to be installed
on CentOS7/CC7 64-bit (x86_64).
68
69
70
71

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.
72
73
74
75
76

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, 
77
78
  including both 32-bit and 64-bit package dependencies.
  This is the same policy used in HEP_OSlibs_SL6 for el6.
79
- In releases 7.1.0 to 7.1.9, separate 64-bit and 32-bit meta-packages
80
81
82
83
84
85
86
87
88
  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.

89
90
## Current release: 7.2.1-1.el7
<!-- Throughout this file, all occurrences of "7.2.1-1.el7" are
91
92
automatically replaced with the latest tag by the pkg.sh script -->

93
The latest release of HEP_OSlibs for el7
94
is [7.2.1-1.el7](/../tree/7.2.1-1.el7).
95
96
97
98
99
100
101
102

*NB: (pre-)release candidates with tags x.y.z-0.prc\* or x.y.z-0.rc\*
are for internal use only and are not available for installation,
in spite of what may be written below.*

### Installation

The 64-bit meta-package for the latest release
103
7.2.1-1.el7 of HEP_OSlibs for el7 is available
104
105
106
107
from the [WLCG](http://linuxsoft.cern.ch/wlcg/centos7/x86_64/) and
[centos/7/cern](http://linuxsoft.cern.ch/cern/centos/7/cern/x86_64/Packages/)
repositories at CERN.

108
In the [workflow](/../blob/7.2.1-1.el7/workflow.md) for this release,
109
110
the meta-package is generally available earlier
in the WLCG repository than in the centos/7/cern repository.
111

112
113
114
115
116
117
118
119
The HEP_OSlibs meta-rpm's available from the two repositories
are signed with different signatures and serve different purposes.
- Those in the centos/7/cern repository 
  are used for the installation on CC7 systems at CERN (including lxplus7), 
  where the WLCG repository may not have been configured.
- Those in the WLCG repository are used for the installation
  at external Grid sites (including CentOS7 nodes),
  where the CC7 repository may not have been configured.
120

121
122
The recommended way to install HEP_OSlibs
at Grid sites outside CERN is to use the WLCG repository.
123

124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
The GPG key of the WLCG repository is needed because
the HEP_OSlibs meta-rpm's in this repository are signed with this key,
as described [here](http://linuxsoft.cern.ch/wlcg/__README__).

The easiest way to install HEP_OSlibs from the WLCG repository consists
in first installing the wlcg-repo rpm describing the wlcg repository
and then installing HEP_OSlibs, as follows:

```bash
  yum install http://linuxsoft.cern.ch/wlcg/centos7/x86_64/wlcg-repo-1.0.0-1.el7.noarch.rpm
  yum install HEP_OSlibs
```

Installing the wlcg-repo rpm creates a repo file and a GPG key, 
typically in `/etc/yum.repos.d/wlcg-centos7.repo`
and `/etc/pki/rpm-gpg/RPM-GPG-KEY-wlcg`.
140

141
142
143
### Contents

The direct dependencies for the latest
144
release 7.2.1-1.el7 of HEP_OSlibs for el7
145
146
147
are declared in the corresponding rpm spec file,
which is available in gitlab:
- the rpm spec file used to build the package: <br/>
148
  see [HEP_OSlibs.spec](/../blob/7.2.1-1.el7/HEP_OSlibs.spec)
149
150
151
152
153
154

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:
155
- direct dependencies, as a list (from `rpm -qpR`): <br/>
156
  see [HEP_OSlibs.x86_64.dependencies-direct.txt](/../blob/7.2.1-1.el7/dependencies/HEP_OSlibs.x86_64.dependencies-direct.txt)
157
- recursive dependencies, as a list (from `repoquery --tree-requires`): <br/>
158
  see [HEP_OSlibs.x86_64.dependencies-recursive-flat.txt](/../blob/7.2.1-1.el7/dependencies/HEP_OSlibs.x86_64.dependencies-recursive-flat.txt)
159
160
- installed dependencies, as a list (from `rpm -qa`,
  before and after installation): <br/>
161
  see [HEP_OSlibs.x86_64.dependencies-installed.txt](/../blob/7.2.1-1.el7/dependencies/HEP_OSlibs.x86_64.dependencies-installed.txt)
162
163
- installed packages, as a list, with sizes in bytes (from `rpm -qa`,
  before and after installation): <br/>
164
  see [HEP_OSlibs.x86_64.dependencies-installed-size.txt](/../blob/7.2.1-1.el7/dependencies/HEP_OSlibs.x86_64.dependencies-installed-size.txt)
165

166
<!-- GITURL = https://gitlab.cern.ch/linuxsupport/rpms/HEP_OSlibs -- DO NOT DELETE! -->
167
168
The four short dependency lists mentioned above,
plus the following more detailed list, 
169
are also available for download as gitlab CI
170
[artifacts](https://gitlab.cern.ch/linuxsupport/rpms/HEP_OSlibs/builds/artifacts/7.2.1-1.el7-testing/browse/build?job=deploy_job):
171
- recursive dependencies, as a tree (from `repoquery --tree-requires`): <br/>
172
  download [HEP_OSlibs.x86_64.dependencies-recursive-tree.txt](https://gitlab.cern.ch/linuxsupport/rpms/HEP_OSlibs/builds/artifacts/7.2.1-1.el7-testing/raw/build/HEP_OSlibs.x86_64.dependencies-recursive-tree.txt?job=deploy_job)
173
174

### Changelog
175
<!-- CHANGELOG = HEP_OSlibs.spec#L195 -- DO NOT DELETE! -->
176

177
178
Read the changelog for release 7.2.1-1.el7 in the
[HEP_OSlibs.spec](/../blob/7.2.1-1.el7/HEP_OSlibs.spec#L195)
179
file.
180

181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
## Updates (for developers)

To create a new release of HEP_OSlibs for el7,
read the description of the new [workflow](/../blob/el7/workflow.md)
based on koji and gitlab CI jobs.

## Contact

Please contact the [heposlibs-dev](mailto:heposlibs-dev@cern.ch)
mailing list if you have change requests for this meta-package. 

All updates to this meta-package will be communicated
via the heposlibs-users mailing list
([register](https://e-groups.cern.ch/e-groups/Egroup.do?egroupId=10106256)).

196
197
198
## License

Copyright 2009-2017 CERN. 
199
200
Licensed under [LGPLv3](https://www.gnu.org/licenses/lgpl-3.0.txt)
or (at your option) any later version.
201
See [COPYRIGHT.txt](COPYRIGHT.txt) for more details.