Skip to content

Commit a027962

Browse files
committed
feat(launchDoctor): package mappings for Ubuntu 20.04
This teaches Launch Doctor to print a command to install missing packages on Ubuntu 20.04. References microsoft#2745
1 parent 1455cae commit a027962

File tree

1 file changed

+90
-2
lines changed

1 file changed

+90
-2
lines changed

src/server/validateDependencies.ts

+90-2
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,15 @@ export async function validateDependencies(browserPath: string, browser: Browser
4646
const missingPackages = new Set();
4747

4848
const ubuntuVersion = await getUbuntuVersion();
49-
if (ubuntuVersion === '18.04') {
49+
let libraryToPackageNameMapping = null;
50+
if (ubuntuVersion === '18.04')
51+
libraryToPackageNameMapping = LIBRARY_TO_PACKAGE_NAME_UBUNTU_18_04;
52+
else if (ubuntuVersion === '20.04')
53+
libraryToPackageNameMapping = LIBRARY_TO_PACKAGE_NAME_UBUNTU_20_04;
54+
if (libraryToPackageNameMapping) {
5055
// Translate missing dependencies to package names to install with apt.
5156
for (const missingDep of missingDeps) {
52-
const packageName = LIBRARY_TO_PACKAGE_NAME_UBUNTU_18_04[missingDep];
57+
const packageName = libraryToPackageNameMapping[missingDep];
5358
if (packageName) {
5459
missingPackages.add(packageName);
5560
missingDeps.delete(missingDep);
@@ -207,3 +212,86 @@ const LIBRARY_TO_PACKAGE_NAME_UBUNTU_18_04: { [s: string]: string} = {
207212
'libxslt.so.1': 'libxslt1.1',
208213
};
209214

215+
const LIBRARY_TO_PACKAGE_NAME_UBUNTU_20_04: { [s: string]: string} = {
216+
'libglib-2.0.so.0': 'libglib2.0-0',
217+
'libX11.so.6': 'libx11-6',
218+
'libxcb.so.1': 'libxcb1',
219+
'libGL.so.1': 'libgl1',
220+
'libEGL.so.1': 'libegl1',
221+
'libnotify.so.4': 'libnotify4',
222+
'libgdk_pixbuf-2.0.so.0': 'libgdk-pixbuf2.0-0',
223+
'libgio-2.0.so.0': 'libglib2.0-0',
224+
'libgobject-2.0.so.0': 'libglib2.0-0',
225+
'libvpx.so.6': 'libvpx6',
226+
'libopus.so.0': 'libopus0',
227+
'libxml2.so.2': 'libxml2',
228+
'libicui18n.so.66': 'libicu66',
229+
'libicuuc.so.66': 'libicu66',
230+
'libxslt.so.1': 'libxslt1.1',
231+
'libwoff2dec.so.1.0.2': 'libwoff1',
232+
'libcairo.so.2': 'libcairo2',
233+
'libfontconfig.so.1': 'libfontconfig1',
234+
'libfreetype.so.6': 'libfreetype6',
235+
'libharfbuzz.so.0': 'libharfbuzz0b',
236+
'libharfbuzz-icu.so.0': 'libharfbuzz-icu0',
237+
'libgstapp-1.0.so.0': 'libgstreamer-plugins-base1.0-0',
238+
'libgstbase-1.0.so.0': 'libgstreamer1.0-0',
239+
'libgstreamer-1.0.so.0': 'libgstreamer1.0-0',
240+
'libgstpbutils-1.0.so.0': 'libgstreamer-plugins-base1.0-0',
241+
'libgstaudio-1.0.so.0': 'libgstreamer-plugins-base1.0-0',
242+
'libgsttag-1.0.so.0': 'libgstreamer-plugins-base1.0-0',
243+
'libgstvideo-1.0.so.0': 'libgstreamer-plugins-base1.0-0',
244+
'libgstgl-1.0.so.0': 'libgstreamer-gl1.0-0',
245+
'libgstcodecparsers-1.0.so.0': 'libgstreamer-plugins-bad1.0-0',
246+
'libgstfft-1.0.so.0': 'libgstreamer-plugins-base1.0-0',
247+
'libjpeg.so.8': 'libjpeg-turbo8',
248+
'libpng16.so.16': 'libpng16-16',
249+
'libopenjp2.so.7': 'libopenjp2-7',
250+
'libwebpdemux.so.2': 'libwebpdemux2',
251+
'libwebp.so.6': 'libwebp6',
252+
'libsoup-2.4.so.1': 'libsoup2.4-1',
253+
'libenchant.so.1': 'libenchant1c2a',
254+
'libgmodule-2.0.so.0': 'libglib2.0-0',
255+
'libsecret-1.so.0': 'libsecret-1-0',
256+
'libhyphen.so.0': 'libhyphen0',
257+
'libXcomposite.so.1': 'libxcomposite1',
258+
'libXdamage.so.1': 'libxdamage1',
259+
'libwayland-server.so.0': 'libwayland-server0',
260+
'libwayland-egl.so.1': 'libwayland-egl1',
261+
'libwayland-client.so.0': 'libwayland-client0',
262+
'libgtk-3.so.0': 'libgtk-3-0',
263+
'libgdk-3.so.0': 'libgtk-3-0',
264+
'libpango-1.0.so.0': 'libpango-1.0-0',
265+
'libatk-1.0.so.0': 'libatk1.0-0',
266+
'libxkbcommon.so.0': 'libxkbcommon0',
267+
'libepoxy.so.0': 'libepoxy0',
268+
'libatk-bridge-2.0.so.0': 'libatk-bridge2.0-0',
269+
'libX11-xcb.so.1': 'libx11-xcb1',
270+
'libXcursor.so.1': 'libxcursor1',
271+
'libXext.so.6': 'libxext6',
272+
'libXfixes.so.3': 'libxfixes3',
273+
'libXi.so.6': 'libxi6',
274+
'libXrender.so.1': 'libxrender1',
275+
'libdbus-glib-1.so.2': 'libdbus-glib-1-2',
276+
'libdbus-1.so.3': 'libdbus-1-3',
277+
'libpangocairo-1.0.so.0': 'libpangocairo-1.0-0',
278+
'libcairo-gobject.so.2': 'libcairo-gobject2',
279+
'libxcb-shm.so.0': 'libxcb-shm0',
280+
'libpangoft2-1.0.so.0': 'libpangoft2-1.0-0',
281+
'libXt.so.6': 'libxt6',
282+
'libgthread-2.0.so.0': 'libglib2.0-0',
283+
'libgtk-x11-2.0.so.0': 'libgtk2.0-0',
284+
'libgdk-x11-2.0.so.0': 'libgtk2.0-0',
285+
'libnss3.so': 'libnss3',
286+
'libnssutil3.so': 'libnss3',
287+
'libsmime3.so': 'libnss3',
288+
'libnspr4.so': 'libnspr4',
289+
'libxcb-dri3.so.0': 'libxcb-dri3-0',
290+
'libXtst.so.6': 'libxtst6',
291+
'libcups.so.2': 'libcups2',
292+
'libdrm.so.2': 'libdrm2',
293+
'libXrandr.so.2': 'libxrandr2',
294+
'libgbm.so.1': 'libgbm1',
295+
'libasound.so.2': 'libasound2',
296+
'libatspi.so.0': 'libatspi2.0-0',
297+
};

0 commit comments

Comments
 (0)