Skip to content

Commit abfadc3

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 bec34db commit abfadc3

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)