Browse code

Fix for #14924. Seperates lsb_dist detection from dist_version detection so that the latter can be distro specific.

Signed-off-by: Avi Miller <avi.miller@oracle.com>

Avi Miller authored on 2015/07/29 06:41:14
Showing 1 changed files
... ...
@@ -132,54 +132,76 @@ do_install() {
132 132
 	dist_version=''
133 133
 	if command_exists lsb_release; then
134 134
 		lsb_dist="$(lsb_release -si)"
135
-		dist_version="$(lsb_release --codename | cut -f2)"
136 135
 	fi
137 136
 	if [ -z "$lsb_dist" ] && [ -r /etc/lsb-release ]; then
138 137
 		lsb_dist="$(. /etc/lsb-release && echo "$DISTRIB_ID")"
139
-		dist_version="$(. /etc/lsb-release && echo "$DISTRIB_CODENAME")"
140
-		if [ -z "$dist_version" ]; then
141
-			dist_version="$(. /etc/lsb-release && echo "$DISTRIB_RELEASE")"
142
-			case "$lsb_dist" in
143
-				"Debian")
144
-					dist_version="$(get_debian_dist_version "$dist_version")"
145
-					;;
146
-				"Ubuntu")
147
-					case "$dist_version" in
148
-						"15.04")
149
-							dist_version="vivid"
150
-							;;
151
-						"14.04")
152
-							dist_version="trusty"
153
-							;;
154
-						"12.04")
155
-							dist_version="precise"
156
-							;;
157
-					esac
158
-					;;
159
-			esac
160
-		fi
161 138
 	fi
162 139
 	if [ -z "$lsb_dist" ] && [ -r /etc/debian_version ]; then
163 140
 		lsb_dist='debian'
164
-		dist_version="$(cat /etc/debian_version | sed 's/\/.*//' | sed 's/\..*//')"
165
-		dist_version="$(get_debian_dist_version "$dist_version")"
166 141
 	fi
167 142
 	if [ -z "$lsb_dist" ] && [ -r /etc/fedora-release ]; then
168 143
 		lsb_dist='fedora'
169
-		dist_version="$(rpm -q --whatprovides redhat-release --queryformat "%{VERSION}\n")"
144
+	fi
145
+	if [ -z "$lsb_dist" ] && [ -r /etc/oracle-release ]; then
146
+		lsb_dist='oracleserver'
170 147
 	fi
171 148
 	if [ -z "$lsb_dist" ]; then
172 149
 		if [ -r /etc/centos-release ] || [ -r /etc/redhat-release ]; then
173 150
 			lsb_dist='centos'
174
-			dist_version="$(rpm -q --whatprovides redhat-release --queryformat "%{VERSION}\n")"
175 151
 		fi
176 152
 	fi
177 153
 	if [ -z "$lsb_dist" ] && [ -r /etc/os-release ]; then
178 154
 		lsb_dist="$(. /etc/os-release && echo "$ID")"
179
-		dist_version="$(. /etc/os-release && echo "$VERSION_ID")"
180 155
 	fi
181 156
 
182 157
 	lsb_dist="$(echo "$lsb_dist" | tr '[:upper:]' '[:lower:]')"
158
+
159
+	case "$lsb_dist" in
160
+
161
+		ubuntu)
162
+			if command_exists lsb_release; then
163
+				dist_version="$(lsb_release --codename | cut -f2)"
164
+			fi
165
+			if [ -z "$dist_version" ] && [ -r /etc/lsb-release ]; then
166
+				dist_version="$(. /etc/lsb-release && echo "$DISTRIB_CODENAME")"
167
+			fi
168
+		;;
169
+
170
+		debian)
171
+			dist_version="$(cat /etc/debian_version | sed 's/\/.*//' | sed 's/\..*//')"
172
+			case "$dist_version" in
173
+				8)
174
+					dist_version="jessie"
175
+				;;
176
+				7)
177
+					dist_version="wheezy"
178
+				;;
179
+			esac
180
+		;;
181
+
182
+		oracleserver)
183
+			# need to switch lsb_dist to match yum repo URL
184
+			lsb_dist="oraclelinux"
185
+			dist_version="$(rpm -q --whatprovides redhat-release --queryformat "%{VERSION}\n" | sed 's/\/.*//' | sed 's/\..*//')"
186
+		;;
187
+
188
+		fedora|centos)
189
+			dist_version="$(rpm -q --whatprovides redhat-release --queryformat "%{VERSION}\n" | sed 's/\/.*//' | sed 's/\..*//')"
190
+		;;
191
+
192
+		*)
193
+			if command_exists lsb_release; then
194
+				dist_version="$(lsb_release --codename | cut -f2)"
195
+			fi
196
+			if [ -z "$dist_version" ] && [ -r /etc/os-release ]; then
197
+				dist_version="$(. /etc/os-release && echo "$VERSION_ID")"
198
+			fi
199
+		;;
200
+
201
+
202
+	esac
203
+		
204
+
183 205
 	case "$lsb_dist" in
184 206
 		amzn)
185 207
 			(
... ...
@@ -263,8 +285,8 @@ do_install() {
263 263
 			exit 0
264 264
 			;;
265 265
 
266
-		fedora|centos)
267
-			$sh_c "cat >/etc/yum.repos.d/docker-${repo}.repo" <<-EOF
266
+		fedora|centos|oraclelinux)
267
+			cat >/etc/yum.repos.d/docker-${repo}.repo <<-EOF
268 268
 			[docker-${repo}-repo]
269 269
 			name=Docker ${repo} Repository
270 270
 			baseurl=https://yum.dockerproject.org/repo/${repo}/${lsb_dist}/${dist_version}