-
Notifications
You must be signed in to change notification settings - Fork 22
/
main.yml
131 lines (108 loc) · 4.51 KB
/
main.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# Defaults file for the compatibility layer role.
---
eessi_version: "2023.06"
custom_overlays:
- name: eessi
source: git
url: https://github.com/EESSI/gentoo-overlay.git
eclass-overrides: true
cvmfs_repository: software.eessi.io
gentoo_prefix_path: /cvmfs/{{ cvmfs_repository }}/versions/{{ eessi_version }}/compat/{{ eessi_host_os }}/{{ eessi_host_arch }}
# How to build the prefix.
gentoo_git_repo: https://github.com/gentoo/gentoo.git
# Select a specific commit in the gentoo_git_repo that should be used for the bootstrap,
# e.g. by checking: https://github.com/gentoo/gentoo/commits/master
# April 17 (29492845e41ea6a0a4a9769c7e0ce287d106079b) commit is after fix for Lmod
# gentoo_git_commit: 29492845e41ea6a0a4a9769c7e0ce287d106079b
# June 8 (aab8473aa90e0287553b3348a5c5b17872df4b7b) commit that was current when fetching luaposix
gentoo_git_commit: aab8473aa90e0287553b3348a5c5b17872df4b7b
prefix_required_space: 15 GB
prefix_user_defined_trusted_dirs:
- "/cvmfs/{{ cvmfs_repository }}/host_injections/{{ eessi_version }}/compat/{{ eessi_host_os }}/{{ eessi_host_arch }}/lib"
prefix_mask_packages: |
# stick to GCC 10.x; using a too recent compiler in the compat layer complicates stuff in the software layer,
# see for example https://github.com/EESSI/software-layer/issues/151
>=sys-devel/gcc-11
# mask OpenSSL 3.x, stick to OpenSSL 1.1.x for now to avoid problems with:
# - older versions of Rust (see https://github.com/EESSI/software-layer/issues/257)
# - older versions of cryptograhy in Python (see https://github.com/EESSI/software-layer/issues/258)
>=dev-libs/openssl-3
prefix_unmask_packages: |
# unmask older GCC to make it installable
=sys-devel/gcc-9*
prefix_bootstrap_use_flags: |
# only build libnss, don't build the daemon (use the one from the host)
sys-auth/nss-pam-ldapd -nslcd
# don't build the SSSD daemon (and man pages) either
sys-auth/sssd -daemon -man
# make sure that gold linker is installed with binutils
sys-devel/binutils gold
# only install Python 3.11
*/* PYTHON_TARGETS: -* python3_11
*/* PYTHON_SINGLE_TARGET: -* python3_11
prefix_use_builtin_bootstrap: false
prefix_custom_bootstrap_script:
local: "{{ playbook_dir }}/../../bootstrap-prefix.sh"
remote: /tmp/bootstrap-prefix.sh
prefix_source_options: "{{ gentoo_prefix_path }} noninteractive"
prefix_install: >-
{{ prefix_use_builtin_bootstrap | ternary('/usr/local/bin/bootstrap-prefix.sh', prefix_custom_bootstrap_script.remote) }}
{{ prefix_source_options }}
# Reproducibility settings
prefix_reprod_dir: reprod
prefix_packages_file: packages.txt
prefix_metadata_json: build.json
# Logging
eessi_log_dir: "/tmp/eessi-logs"
prefix_build_log: "{{ eessi_log_dir }}/prefix-build.log"
emerge_log: "{{ gentoo_prefix_path }}/var/log/emerge.log"
prefix_locales:
- en_US.UTF-8 UTF-8
# By default, we install an architecture-specific set
package_sets:
- "eessi-{{ eessi_version }}-{{ eessi_host_os }}-{{ eessi_host_arch }}"
prefix_packages:
prefix_remove_packages:
- app-eselect/eselect-rust
- dev-lang/go
- dev-lang/go-bootstrap
- dev-lang/rust
- dev-lang/rust-bin
- dev-python/setuptools-rust
- dev-util/cmake
- dev-util/ninja
- virtual/rust
reframe_venv_dir: /tmp/reframe_venv
# List of locations that should get a symlink $EPREFIX/$LOCATION -> $LOCATION.
# This ensures that things like user/group ids are correct/looked up in the right way in the Prefix environment.
symlinks_to_host:
# required to ensure local user groups are known
- /etc/group
# required to ensure local users are known (see https://github.com/EESSI/compatibility-layer/issues/15)
- /etc/passwd
# required to ensure that hosts specified in the host's hosts file can be resolved by tools in the Prefix
- /etc/hosts
# required to ensure name-service information is taken from the right source (e.g. ldap)
# - /etc/nsswitch.conf
# required to use the DNS resolver from the host (should be done automatically)
- /etc/resolv.conf
# required to pick up the right timezone from the host
- /etc/localtime
# required if Centrify is used in nsswitch.conf
- /lib64/libnss_centrifydc.so.2
# required if LDAP is used in nsswitch.conf
# - /lib64/libnss_ldap.so.2
# required if SSSD is used in nsswitch.conf
# - /lib64/libnss_sss.so.2
# required to make runtime data available for lots of tools (including who and w)
# - /var/run
# required by the last command
# - /var/log/wtmp
# - /var/lib/munge
# - /var/lib/unbound
# - /var/lib/VirtualGL
# - /var/log/munge
# - /var/spool
# - /var/tmp
# - /run/dbus
# - /tmp