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",
382 # Run-time libraries required by chromeos only
385 "libbz2-1.0",
395 if package_exists("libpng16-16"):
396 packages.append("libpng16-16")
398 packages.append("libpng12-0")
403 packages.extend(["libnspr4-0d", "libnss3-1d"])
405 if package_exists("appmenu-gtk"):
406 packages.append("appmenu-gtk")
407 if package_exists("libgnome-keyring0"):
408 packages.append("libgnome-keyring0")
409 if package_exists("libgnome-keyring-dev"):
410 packages.append("libgnome-keyring-dev")
421 print("Skipping 32-bit libraries.", file=sys.stderr)
423 print("Including 32-bit libraries.", file=sys.stderr)
426 # 32-bit libraries needed for a 32-bit build
427 # includes some 32-bit libraries required by the Android SDK
430 "libatk-bridge2.0-0:i386",
431 "libatk1.0-0:i386",
432 "libatspi2.0-0:i386",
433 "libdbus-1-3:i386",
436 "libglib2.0-0:i386",
439 "libpango-1.0-0:i386",
440 "libpangocairo-1.0-0:i386",
442 "libwayland-egl1:i386",
443 "libx11-xcb1:i386",
450 # 32-bit libraries needed e.g. to compile V8 snapshot for Android or armhf
451 "linux-libc-dev:i386",
455 # When cross building for arm/Android on 64-bit systems the host binaries
456 # that are part of v8 need to be compiled with -m32 which means
458 if "ELF 64-bit" in subprocess.check_output(["file", "-L",
460 # gcc-multilib conflicts with the arm cross compiler but
461 # g++-X.Y-multilib gives us the 32-bit support that we need. Find out the
463 # distribution's g++-multilib package depends on.
465 ["apt-cache", "depends", "g++-multilib", "--important"]).decode()
466 pattern = re.compile(r"g\+\+-[0-9.]+-multilib")
483 "fonts-indic",
484 "fonts-ipafont",
485 "fonts-stix",
486 "fonts-thai-tlwg",
487 "fonts-tlwg-garuda",
489 "g++-4.8-multilib-arm-linux-gnueabihf",
490 "gcc-4.8-multilib-arm-linux-gnueabihf",
491 "g++-9-multilib-arm-linux-gnueabihf",
492 "gcc-9-multilib-arm-linux-gnueabihf",
493 "gcc-arm-linux-gnueabihf",
494 "g++-10-multilib-arm-linux-gnueabihf",
495 "gcc-10-multilib-arm-linux-gnueabihf",
496 "g++-10-arm-linux-gnueabihf",
497 "gcc-10-arm-linux-gnueabihf",
498 "git-svn",
499 "language-pack-da",
500 "language-pack-fr",
501 "language-pack-he",
502 "language-pack-zh-hant",
503 "libappindicator-dev",
505 "libappindicator3-1",
506 "libappindicator3-dev",
507 "libdconf-dev",
510 "libexif-dev",
513 "libgbm-dev",
514 "libgbm-dev-lts-trusty",
515 "libgbm-dev-lts-xenial",
516 "libgconf-2-4:i386",
517 "libgconf2-dev",
518 "libgl1-mesa-dev",
519 "libgl1-mesa-dev-lts-trusty",
520 "libgl1-mesa-dev-lts-xenial",
521 "libgl1-mesa-glx:i386",
522 "libgl1-mesa-glx-lts-trusty:i386",
523 "libgl1-mesa-glx-lts-xenial:i386",
524 "libgles2-mesa-dev",
525 "libgles2-mesa-dev-lts-trusty",
526 "libgles2-mesa-dev-lts-xenial",
527 "libgtk-3-0:i386",
528 "libgtk2.0-0",
529 "libgtk2.0-0:i386",
530 "libgtk2.0-dev",
531 "mesa-common-dev",
532 "mesa-common-dev-lts-trusty",
533 "mesa-common-dev-lts-xenial",
535 "python-dev",
536 "python-setuptools",
538 "ttf-dejavu-core",
539 "ttf-indic-fonts",
540 "ttf-kochi-gothic",
541 "ttf-kochi-mincho",
542 "ttf-mscorefonts-installer",
543 "xfonts-mathml",
546 if package_exists("python-is-python2"):
547 packages.extend(["python-is-python2", "python2-dev"])
551 if package_exists("python-crypto"):
552 packages.append("python-crypto")
554 if package_exists("python-numpy"):
555 packages.append("python-numpy")
557 if package_exists("python-openssl"):
558 packages.append("python-openssl")
560 if package_exists("python-psutil"):
561 packages.append("python-psutil")
563 if package_exists("python-yaml"):
564 packages.append("python-yaml")
566 if package_exists("apache2.2-bin"):
567 packages.append("apache2.2-bin")
569 packages.append("apache2-bin")
572 ("php8.1-cgi", "libapache2-mod-php8.1"),
573 ("php8.0-cgi", "libapache2-mod-php8.0"),
574 ("php7.4-cgi", "libapache2-mod-php7.4"),
575 ("php7.3-cgi", "libapache2-mod-php7.3"),
576 ("php7.2-cgi", "libapache2-mod-php7.2"),
577 ("php7.1-cgi", "libapache2-mod-php7.1"),
578 ("php7.0-cgi", "libapache2-mod-php7.0"),
579 ("php5-cgi", "libapache2-mod-php5"),
598 "libc6-dev-armhf-cross",
599 "linux-libc-dev-armhf-cross",
600 "g++-arm-linux-gnueabihf",
606 "g++-5-multilib-arm-linux-gnueabihf",
607 "gcc-5-multilib-arm-linux-gnueabihf",
608 "gcc-arm-linux-gnueabihf",
612 "g++-10-multilib-arm-linux-gnueabihf",
613 "gcc-10-multilib-arm-linux-gnueabihf",
614 "gcc-arm-linux-gnueabihf",
618 "gcc-arm-linux-gnueabihf",
619 "g++-11-arm-linux-gnueabihf",
620 "gcc-11-arm-linux-gnueabihf",
635 "g++-mingw-w64-i686",
636 "lib32z1-dev",
639 "libelf-dev:i386",
641 "libglib2.0-0:i386",
644 "lib32ncurses5-dev",
646 "libpango-1.0-0:i386",
647 "libssl-dev:i386",
648 "libtinfo-dev",
649 "libtinfo-dev:i386",
668 "xutils-dev",
673 if package_exists("libssl-dev"):
674 packages.append("libssl-dev:i386")
694 # have the -dbgsym suffix (https://wiki.debian.org/AutomaticDebugPackages).
695 # Untransitioned packages have the -dbg suffix. And on some systems, neither
698 if package_exists(package + "-dbgsym"):
699 return [package + "-dbgsym"]
700 if package_exists(package + "-dbg"):
701 return [package + "-dbg"]
719 if package_exists("libstdc++6-%s-dbg" % version):
720 packages.append("libstdc++6-%s-dbg" % version)
723 if not dbg_package_name("libatk1.0-0"):
726 if not dbg_package_name("libpango-1.0-0"):
727 packages.extend(dbg_package_name("libpango1.0-dev"))
737 # Sort all the :i386 packages to the front, to avoid confusing dpkg-query
745 ["dpkg-query", "-W", "-f", " "] + packages,
752 line.split(" ")[-1] for line in e.stderr.decode().strip().splitlines()
757 result = subprocess.run(["apt-cache", "show", package], capture_output=True)
784 print("(maybe missing a repo or need to 'sudo apt-get update'):",
798 query_cmd = ["apt-get", "--just-print", "install"] + packages
822 quiet = ["-qq", "--assume-yes"] if options.no_prompt else []
823 subprocess.check_call(["sudo", "apt-get", "install"] + quiet + packages)
830 # An apt-get exit status of 100 indicates that a real error has occurred.
831 print("`apt-get --just-print install ...` failed", file=sys.stderr)
842 # apt-get, since install-chromeos-fonts depends on curl.
854 os.path.join(dir, "linux", "install-chromeos-fonts.py")])
859 ["stat", "-f", "-c", "%T", dir], ).decode().startswith("nfs")):
872 print("the command line option: --no-chromeos-fonts.", file=sys.stderr)
879 "da_DK.UTF-8", "en_US.UTF-8", "fr_FR.UTF-8", "he_IL.UTF-8", "zh_TW.UTF-8"
886 ["sudo", "sed", "-i",
892 subprocess.check_call(["sudo", "locale-gen"])
894 print("Locales already up-to-date.", file=sys.stderr)
897 subprocess.check_call(["sudo", "locale-gen", locale])