-
-
Notifications
You must be signed in to change notification settings - Fork 99
/
main.yml
141 lines (126 loc) · 5.91 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
132
133
134
135
136
137
138
139
140
141
---
#####################
# gmake from source #
#####################
# Conditions:
# Check if make is installed in /usr/local/bin/make on CentOS/RHEL on ppc64le,
# s390x, x86_64, on SLES12 on x86_64 and on Ubuntu14 on x86_64
# Proceed with downloading and installing make
# Addresses https://github.com/adoptium/infrastructure/issues/499
# For RHEL 8, use gmake 4.2.1 already installed.
- name: Set make version
set_fact: makeVersion=4.1
tags: goodmake_source
# This SHA was determined by SHA after verifying the public key pulled from ubuntu's keyserver
- name: Set make sha256sum
set_fact: makeVersionSHA=9fc7a9783d3d2ea002aa1348f851875a2636116c433677453cc1d1acc3fc4d55
tags: goodmake_source
- name: Test if self-built make {{ makeVersion }} is available
shell: /usr/local/bin/make --version >/dev/null
failed_when: false
register: goodmake_installed
changed_when: false
when:
- ((((ansible_distribution == "SLES" or ansible_distribution == "openSUSE") and ansible_distribution_major_version == "12") or
(ansible_distribution == "Ubuntu" and ansible_distribution_major_version == "14")) and
ansible_architecture == "x86_64") or
((ansible_distribution == "RedHat" or ansible_distribution == "CentOS") and ansible_distribution_major_version|int < 8)
tags: goodmake_source
- name: Download make {{ makeVersion }} source
get_url:
url: https://ftp.gnu.org/gnu/make/make-{{ makeVersion }}.tar.gz
dest: /tmp/make-{{ makeVersion }}.tar.gz
mode: 0440
checksum: sha256:{{ makeVersionSHA }}
when:
- ((((ansible_distribution == "SLES" or ansible_distribution == "openSUSE") and ansible_distribution_major_version == "12") or
(ansible_distribution == "Ubuntu" and ansible_distribution_major_version == "14")) and
ansible_architecture == "x86_64") or
((ansible_distribution == "RedHat" or ansible_distribution == "CentOS") and ansible_distribution_major_version|int < 8)
- goodmake_installed.rc != 0
tags: goodmake_source
- name: GPG Signature verification
script: ../Supporting_Scripts/package_signature_verification.sh -f /tmp/make-{{ makeVersion }}.tar.gz -sl "https://ftp.gnu.org/gnu/make/make-4.1.tar.gz.sig" -k {{ key.gmake }}
when:
- ((((ansible_distribution == "SLES" or ansible_distribution == "openSUSE") and ansible_distribution_major_version == "12") or
(ansible_distribution == "Ubuntu" and ansible_distribution_major_version == "14")) and
ansible_architecture == "x86_64") or
((ansible_distribution == "RedHat" or ansible_distribution == "CentOS") and ansible_distribution_major_version|int < 8)
- goodmake_installed.rc != 0
tags: goodmake_source
- name: Extract make {{ makeVersion }} source
unarchive:
src: /tmp/make-{{ makeVersion }}.tar.gz
dest: /tmp
copy: False
when:
- ((((ansible_distribution == "SLES" or ansible_distribution == "openSUSE") and ansible_distribution_major_version == "12") or
(ansible_distribution == "Ubuntu" and ansible_distribution_major_version == "14")) and
ansible_architecture == "x86_64") or
((ansible_distribution == "RedHat" or ansible_distribution == "CentOS") and ansible_distribution_major_version|int < 8)
- goodmake_installed.rc != 0
tags: goodmake_source
- name: Compile and install make {{ makeVersion }} from source
shell: cd /tmp/make-{{ makeVersion }} && ./configure --prefix=/usr/local && make clean && make -j {{ ansible_processor_vcpus }} && make install
when:
- ((((ansible_distribution == "SLES" or ansible_distribution == "openSUSE") and ansible_distribution_major_version == "12") or
(ansible_distribution == "Ubuntu" and ansible_distribution_major_version == "14")) and
ansible_architecture == "x86_64") or
((ansible_distribution == "RedHat" or ansible_distribution == "CentOS") and ansible_distribution_major_version|int < 8)
- goodmake_installed.rc != 0
tags: goodmake_source
- name: Create symlink for /usr/bin/gmake to our built {{ makeVersion }} in /usr/local/bin/make
file:
src: /usr/local/bin/make
dest: /usr/local/bin/gmake
owner: root
group: root
state: link
when:
- ((((ansible_distribution == "SLES" or ansible_distribution == "openSUSE") and ansible_distribution_major_version == "12") or
(ansible_distribution == "Ubuntu" and ansible_distribution_major_version == "14")) and
ansible_architecture == "x86_64") or
((ansible_distribution == "RedHat" or ansible_distribution == "CentOS") and ansible_distribution_major_version|int < 8)
- goodmake_installed.rc != 0
tags: goodmake_source
- name: Remove downloaded packages for gmake
file:
path: "{{ item }}"
state: absent
with_items:
- /tmp/make-{{ makeVersion }}
- /tmp/make-{{ makeVersion }}.tar.gz
failed_when: false
tags: goodmake_source
# Disabiling updates to system 'make' to ensure the symlink above doesn't break.
# See https://github.com/adoptium/infrastructure/issues/1106
- name: Check if /etc/yum.conf exists
stat:
path: /etc/yum.conf
register: yumconf
when:
- ((ansible_distribution == "RedHat" or ansible_distribution == "CentOS") and ansible_distribution_major_version|int < 8)
tags: goodmake_source
- name: Create /etc/yum.conf and exclude make from updates
lineinfile:
path: /etc/yum.conf
create: yes
line: [main]
when:
- ((ansible_distribution == "RedHat" or ansible_distribution == "CentOS") and ansible_distribution_major_version|int < 8)
- not yumconf.stat.exists
tags: goodmake_source
- name: Exclude make from updates if /etc/yum.conf does exist
lineinfile:
path: /etc/yum.conf
line: exclude=make
when:
- ((ansible_distribution == "RedHat" or ansible_distribution == "CentOS") and ansible_distribution_major_version|int < 8)
tags: goodmake_source
- name: Configure Apt to exclude make from updating
dpkg_selections:
name: make
state: hold
when:
- (ansible_distribution == "Ubuntu" and ansible_distribution_major_version == "14")
tags: goodmake_source