Lines Matching +full:binutils +full:- +full:mingw +full:- +full:w64
4 # Use of this source code is governed by a BSD-style license that can be
23 output = subprocess.check_output(["apt-cache", "dumpavail"]).decode()
31 def package_exists(package_name: str) -> bool:
38 parser.add_argument("--syms",
42 "--no-syms",
48 "--lib32",
50 help="Enable installation of 32-bit libraries, e.g. for V8 snapshot",
53 "--android",
58 "--no-android",
63 parser.add_argument("--arm",
67 "--no-arm",
73 "--chromeos-fonts",
78 "--no-chromeos-fonts",
84 "--nacl",
89 "--no-nacl",
95 "--backwards-compatible",
102 "--no-backwards-compatible",
109 parser.add_argument("--no-prompt",
113 "--quick-check",
118 "--unsupported",
134 print("try: sudo apt-get install lsb-release", file=sys.stderr)
140 return subprocess.check_output(["lsb_release", "--codename",
141 "--short"]).decode().strip()
148 distro_id = subprocess.check_output(["lsb_release", "--id",
149 "--short"]).decode().strip()
159 "dependencies by passing the `--unsupported` parameter",
171 architecture = subprocess.check_output(["uname", "-m"]).decode().strip()
179 print("Running as non-root user.", file=sys.stderr)
187 subprocess.check_call(["sudo", "dpkg", "--add-architecture", "i386"])
188 subprocess.check_call(["sudo", "apt-get", "update"])
194 "binutils",
199 "dbus-x11",
201 "dpkg-dev",
205 "git-core",
207 "libasound2-dev",
208 "libatspi2.0-dev",
209 "libbrlapi-dev",
210 "libbz2-dev",
211 "libc6-dev",
212 "libcairo2-dev",
213 "libcap-dev",
214 "libcups2-dev",
215 "libcurl4-gnutls-dev",
216 "libdrm-dev",
217 "libelf-dev",
218 "libevdev-dev",
219 "libffi-dev",
221 "libgbm-dev",
222 "libglib2.0-dev",
223 "libglu1-mesa-dev",
224 "libgtk-3-dev",
225 "libkrb5-dev",
226 "libnspr4-dev",
227 "libnss3-dev",
228 "libpam0g-dev",
229 "libpci-dev",
230 "libpulse-dev",
231 "libsctp-dev",
232 "libspeechd-dev",
233 "libsqlite3-dev",
234 "libssl-dev",
235 "libsystemd-dev",
236 "libudev-dev",
237 "libva-dev",
238 "libwww-perl",
239 "libxshmfence-dev",
240 "libxslt1-dev",
241 "libxss-dev",
242 "libxt-dev",
243 "libxtst-dev",
250 "pkg-config",
254 "uuid-dev",
256 "x11-utils",
258 "xz-utils",
264 "libbluetooth-dev",
265 "libxkbcommon-dev",
266 "mesa-common-dev",
273 if package_exists("libjpeg-dev"):
274 packages.append("libjpeg-dev")
276 packages.append("libjpeg62-dev")
292 if package_exists("libav-tools"):
293 packages.append("libav-tools")
295 if package_exists("libvulkan-dev"):
296 packages.append("libvulkan-dev")
298 if package_exists("libinput-dev"):
299 packages.append("libinput-dev")
301 # Cross-toolchain strip is needed for building the sysroots.
302 if package_exists("binutils-arm-linux-gnueabihf"):
303 packages.append("binutils-arm-linux-gnueabihf")
304 if package_exists("binutils-aarch64-linux-gnu"):
305 packages.append("binutils-aarch64-linux-gnu")
306 if package_exists("binutils-mipsel-linux-gnu"):
307 packages.append("binutils-mipsel-linux-gnu")
308 if package_exists("binutils-mips64el-linux-gnuabi64"):
309 packages.append("binutils-mips64el-linux-gnuabi64")
311 # 64-bit systems need a minimum set of 32-bit compat packages for the
312 # pre-built NaCl binaries.
313 if "ELF 64-bit" in subprocess.check_output(["file", "-L",
315 packages.extend(["libc6-i386", "lib32stdc++6"])
317 # lib32gcc-s1 used to be called lib32gcc1 in older distros.
318 if package_exists("lib32gcc-s1"):
319 packages.append("lib32gcc-s1")
326 # List of required run-time libraries
331 "libatk1.0-0",
332 "libatspi2.0-0",
336 "libcgi-session-perl",
345 "libglib2.0-0",
347 "libgtk-3-0",
350 "libpango-1.0-0",
351 "libpangocairo-1.0-0",
354 "libpixman-1-0",
357 "libsqlite3-0",
359 "libwayland-egl1",
360 "libwayland-egl1-mesa",
361 "libx11-6",
362 "libx11-xcb1",
376 "x11-utils",
381 # Run-time libraries required by chromeos only
384 "libbz2-1.0",
394 if package_exists("libpng16-16"):
395 packages.append("libpng16-16")
397 packages.append("libpng12-0")
402 packages.extend(["libnspr4-0d", "libnss3-1d"])
404 if package_exists("appmenu-gtk"):
405 packages.append("appmenu-gtk")
406 if package_exists("libgnome-keyring0"):
407 packages.append("libgnome-keyring0")
408 if package_exists("libgnome-keyring-dev"):
409 packages.append("libgnome-keyring-dev")
420 print("Skipping 32-bit libraries.", file=sys.stderr)
422 print("Including 32-bit libraries.", file=sys.stderr)
425 # 32-bit libraries needed for a 32-bit build
426 # includes some 32-bit libraries required by the Android SDK
429 "libatk-bridge2.0-0:i386",
430 "libatk1.0-0:i386",
431 "libatspi2.0-0:i386",
432 "libdbus-1-3:i386",
435 "libglib2.0-0:i386",
438 "libpango-1.0-0:i386",
439 "libpangocairo-1.0-0:i386",
441 "libwayland-egl1:i386",
442 "libx11-xcb1:i386",
449 # 32-bit libraries needed e.g. to compile V8 snapshot for Android or armhf
450 "linux-libc-dev:i386",
454 # When cross building for arm/Android on 64-bit systems the host binaries
455 # that are part of v8 need to be compiled with -m32 which means
457 if "ELF 64-bit" in subprocess.check_output(["file", "-L",
459 # gcc-multilib conflicts with the arm cross compiler but
460 # g++-X.Y-multilib gives us the 32-bit support that we need. Find out the
462 # distribution's g++-multilib package depends on.
464 ["apt-cache", "depends", "g++-multilib", "--important"]).decode()
465 pattern = re.compile(r"g\+\+-[0-9.]+-multilib")
482 "fonts-indic",
483 "fonts-ipafont",
484 "fonts-stix",
485 "fonts-thai-tlwg",
486 "fonts-tlwg-garuda",
488 "g++-4.8-multilib-arm-linux-gnueabihf",
489 "gcc-4.8-multilib-arm-linux-gnueabihf",
490 "g++-9-multilib-arm-linux-gnueabihf",
491 "gcc-9-multilib-arm-linux-gnueabihf",
492 "gcc-arm-linux-gnueabihf",
493 "g++-10-multilib-arm-linux-gnueabihf",
494 "gcc-10-multilib-arm-linux-gnueabihf",
495 "g++-10-arm-linux-gnueabihf",
496 "gcc-10-arm-linux-gnueabihf",
497 "git-svn",
498 "language-pack-da",
499 "language-pack-fr",
500 "language-pack-he",
501 "language-pack-zh-hant",
502 "libappindicator-dev",
504 "libappindicator3-1",
505 "libappindicator3-dev",
506 "libdconf-dev",
509 "libexif-dev",
512 "libgbm-dev",
513 "libgbm-dev-lts-trusty",
514 "libgbm-dev-lts-xenial",
515 "libgconf-2-4:i386",
516 "libgconf2-dev",
517 "libgl1-mesa-dev",
518 "libgl1-mesa-dev-lts-trusty",
519 "libgl1-mesa-dev-lts-xenial",
520 "libgl1-mesa-glx:i386",
521 "libgl1-mesa-glx-lts-trusty:i386",
522 "libgl1-mesa-glx-lts-xenial:i386",
523 "libgles2-mesa-dev",
524 "libgles2-mesa-dev-lts-trusty",
525 "libgles2-mesa-dev-lts-xenial",
526 "libgtk-3-0:i386",
527 "libgtk2.0-0",
528 "libgtk2.0-0:i386",
529 "libgtk2.0-dev",
530 "mesa-common-dev",
531 "mesa-common-dev-lts-trusty",
532 "mesa-common-dev-lts-xenial",
534 "python-dev",
535 "python-setuptools",
537 "ttf-dejavu-core",
538 "ttf-indic-fonts",
539 "ttf-kochi-gothic",
540 "ttf-kochi-mincho",
541 "ttf-mscorefonts-installer",
542 "xfonts-mathml",
545 if package_exists("python-is-python2"):
546 packages.extend(["python-is-python2", "python2-dev"])
550 if package_exists("python-crypto"):
551 packages.append("python-crypto")
553 if package_exists("python-numpy"):
554 packages.append("python-numpy")
556 if package_exists("python-openssl"):
557 packages.append("python-openssl")
559 if package_exists("python-psutil"):
560 packages.append("python-psutil")
562 if package_exists("python-yaml"):
563 packages.append("python-yaml")
565 if package_exists("apache2.2-bin"):
566 packages.append("apache2.2-bin")
568 packages.append("apache2-bin")
571 ("php8.1-cgi", "libapache2-mod-php8.1"),
572 ("php8.0-cgi", "libapache2-mod-php8.0"),
573 ("php7.4-cgi", "libapache2-mod-php7.4"),
574 ("php7.3-cgi", "libapache2-mod-php7.3"),
575 ("php7.2-cgi", "libapache2-mod-php7.2"),
576 ("php7.1-cgi", "libapache2-mod-php7.1"),
577 ("php7.0-cgi", "libapache2-mod-php7.0"),
578 ("php5-cgi", "libapache2-mod-php5"),
597 "libc6-dev-armhf-cross",
598 "linux-libc-dev-armhf-cross",
599 "g++-arm-linux-gnueabihf",
605 "g++-5-multilib-arm-linux-gnueabihf",
606 "gcc-5-multilib-arm-linux-gnueabihf",
607 "gcc-arm-linux-gnueabihf",
611 "g++-10-multilib-arm-linux-gnueabihf",
612 "gcc-10-multilib-arm-linux-gnueabihf",
613 "gcc-arm-linux-gnueabihf",
617 "gcc-arm-linux-gnueabihf",
618 "g++-11-arm-linux-gnueabihf",
619 "gcc-11-arm-linux-gnueabihf",
634 "g++-mingw-w64-i686",
635 "lib32z1-dev",
638 "libelf-dev:i386",
640 "libglib2.0-0:i386",
643 "lib32ncurses5-dev",
645 "libpango-1.0-0:i386",
646 "libssl-dev:i386",
647 "libtinfo-dev",
648 "libtinfo-dev:i386",
667 "xutils-dev",
672 if package_exists("libssl-dev"):
673 packages.append("libssl-dev:i386")
693 # have the -dbgsym suffix (https://wiki.debian.org/AutomaticDebugPackages).
694 # Untransitioned packages have the -dbg suffix. And on some systems, neither
697 if package_exists(package + "-dbgsym"):
698 return [package + "-dbgsym"]
699 if package_exists(package + "-dbg"):
700 return [package + "-dbg"]
718 if package_exists("libstdc++6-%s-dbg" % version):
719 packages.append("libstdc++6-%s-dbg" % version)
722 if not dbg_package_name("libatk1.0-0"):
725 if not dbg_package_name("libpango-1.0-0"):
726 packages.extend(dbg_package_name("libpango1.0-dev"))
736 # Sort all the :i386 packages to the front, to avoid confusing dpkg-query
744 ["dpkg-query", "-W", "-f", " "] + packages,
750 return [line.split(" ")[-1] for line in e.stderr.strip().splitlines()]
754 result = subprocess.run(["apt-cache", "show", package],
782 print("(maybe missing a repo or need to 'sudo apt-get update'):",
796 query_cmd = ["apt-get", "--just-print", "install"] + packages
820 quiet = ["-qq", "--assume-yes"] if options.no_prompt else []
821 subprocess.check_call(["sudo", "apt-get", "install"] + quiet + packages)
828 # An apt-get exit status of 100 indicates that a real error has occurred.
829 print("`apt-get --just-print install ...` failed", file=sys.stderr)
840 # apt-get, since install-chromeos-fonts depends on curl.
852 os.path.join(dir, "linux", "install-chromeos-fonts.py")])
857 ["stat", "-f", "-c", "%T", dir], ).decode().startswith("nfs")):
870 print("the command line option: --no-chromeos-fonts.", file=sys.stderr)
877 "da_DK.UTF-8", "fr_FR.UTF-8", "he_IL.UTF-8", "zh_TW.UTF-8"
884 ["sudo", "sed", "-i",
890 subprocess.check_call(["sudo", "locale-gen"])
892 print("Locales already up-to-date.", file=sys.stderr)
895 subprocess.check_call(["sudo", "locale-gen", locale])