(List (FunctionDef usage [] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Usage: "][VarSub 0][LIT_CHARS " [--options]"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Options:"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "--[no-]syms: enable or disable installation of debugging symbols"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "--lib32: enable installation of 32-bit libraries, e.g. for V8 snapshot"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "--[no-]arm: enable or disable installation of arm cross toolchain"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "--[no-]chromeos-fonts: enable or disable installation of Chrome OS"]]} {[DQ [LIT_CHARS fonts]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "--[no-]nacl: enable or disable installation of prerequisites for"]]} {[DQ [LIT_CHARS "building standalone NaCl and all its toolchains"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "--no-prompt: silently select standard options/defaults"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "--quick-check: quickly try to determine if dependencies are installed"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " (this avoids interactive prompts and sudo commands,"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " so might not be 100% accurate)"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "--unsupported: attempt installation even on unsupported systems"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Script will prompt interactively if options not given."]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (FunctionDef package_exists [] (Pipeline (Com {[LIT_CHARS apt-cache]} {[LIT_CHARS pkgnames]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS -x]} {[DQ [VarSub 1]]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) ) ) (= scope= flags=0 words=[] bindings=[('do_inst_arm', {[LIT_CHARS 1]})]) (= scope= flags=0 words=[] bindings=[('do_inst_nacl', {[LIT_CHARS 1]})]) (While (Com {[LIT_CHARS test]} {[DQ [VarSub 1]]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[DQ ]}) (List (Case to_match={[DQ [VarSub 1]]}, pat_word_list=[[{[LIT_CHARS --syms]}], [{[LIT_CHARS --no-syms]}], [{[LIT_CHARS --lib32]}], [{[LIT_CHARS --arm]}], [{[LIT_CHARS --no-arm]}], [{[LIT_CHARS --chromeos-fonts]}], [{[LIT_CHARS --no-chromeos-fonts]}], [{[LIT_CHARS --nacl]}], [{[LIT_CHARS --no-nacl]}], [{[LIT_CHARS --no-prompt]}], [{[LIT_CHARS --quick-check]}], [{[LIT_CHARS --unsupported]}], [{[LIT_OTHER "*"]}]] (= scope= flags=0 words=[] bindings=[('do_inst_syms', {[LIT_CHARS 1]})]) (= scope= flags=0 words=[] bindings=[('do_inst_syms', {[LIT_CHARS 0]})]) (= scope= flags=0 words=[] bindings=[('do_inst_lib32', {[LIT_CHARS 1]})]) (= scope= flags=0 words=[] bindings=[('do_inst_arm', {[LIT_CHARS 1]})]) (= scope= flags=0 words=[] bindings=[('do_inst_arm', {[LIT_CHARS 0]})]) (= scope= flags=0 words=[] bindings=[('do_inst_chromeos_fonts', {[LIT_CHARS 1]})]) (= scope= flags=0 words=[] bindings=[('do_inst_chromeos_fonts', {[LIT_CHARS 0]})]) (= scope= flags=0 words=[] bindings=[('do_inst_nacl', {[LIT_CHARS 1]})]) (= scope= flags=0 words=[] bindings=[('do_inst_nacl', {[LIT_CHARS 0]})]) (List (= scope= flags=0 words=[] bindings=[('do_default', {[LIT_CHARS 1]})]) (= scope= flags=0 words=[] bindings=[('do_quietly', {[DQ [LIT_CHARS "-qq --assume-yes"]]})]) ) (= scope= flags=0 words=[] bindings=[('do_quick_check', {[LIT_CHARS 1]})]) (= scope= flags=0 words=[] bindings=[('do_unsupported', {[LIT_CHARS 1]})]) (Com {[LIT_CHARS usage]}) ) (Com {[LIT_CHARS shift]}) ) ) (If (Com {[LIT_CHARS test]} {[DQ [VarSub do_inst_arm]]} {[LIT_OTHER "="]} {[DQ [LIT_CHARS 1]]}) (= scope= flags=0 words=[] bindings=[('do_inst_lib32', {[LIT_CHARS 1]})]) ) (If (Pipeline! (Com {[LIT_CHARS which]} {[LIT_CHARS lsb_release]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: lsb_release not found in "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS PATH]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (= scope= flags=0 words=[] bindings=[('lsb_release', {[ComSub (Com {[LIT_CHARS lsb_release]} {[LIT_CHARS --codename]} {[LIT_CHARS --short]})]})]) (= scope= flags=0 words=[] bindings=[('ubuntu_codenames', {[DQ [LIT_CHARS "(precise|quantal|raring|saucy|trusty|utopic)"]]})]) (If (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[LIT_CHARS 0]} {[LIT_CHARS -eq]} {[DQ [VarSub do_unsupported test_op=VS_TEST_HYPHEN {[LIT_CHARS 0]}]]} {[LIT_OTHER "]"]}) (Com {[LIT_OTHER "["]} {[LIT_CHARS 0]} {[LIT_CHARS -eq]} {[DQ [VarSub do_quick_check test_op=VS_TEST_HYPHEN {[LIT_CHARS 0]}]]} {[LIT_OTHER "]"]}) ) (List (If (DBracket {B! {B2 BINARY_STRING_TILDE_EQUAL {[VarSub lsb_release]} {[VarSub ubuntu_codenames]}}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: Only Ubuntu 12.04 (precise) through 14.10 (utopic) are"]]} {[DQ [LIT_CHARS "currently supported"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (If (Pipeline! (Com {[LIT_CHARS uname]} {[LIT_CHARS -m]}) (Com {[LIT_CHARS egrep]} {[LIT_CHARS -q]} {[DQ [LIT_CHARS "i686|x86_64"]]}) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Only x86 architectures are currently supported"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]}) ) ) ) ) (If (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[DQ [LIT_CHARS x][ComSub (Com {[LIT_CHARS id]} {[LIT_CHARS -u]})]]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[LIT_CHARS x0]} {[LIT_OTHER "]"]}) (Com {[LIT_OTHER "["]} {[LIT_CHARS 0]} {[LIT_CHARS -eq]} {[DQ [VarSub do_quick_check test_op=VS_TEST_HYPHEN {[LIT_CHARS 0]}]]} {[LIT_OTHER "]"]}) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Running as non-root user."]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "You might have to enter your password one or more times for 'sudo'."]]}) (Com {[LIT_CHARS echo]}) ) ) (= scope= flags=0 words=[] bindings=[('chromeos_dev_list', {[DQ [LIT_CHARS "libbluetooth-dev libxkbcommon-dev"]]})]) (= scope= flags=0 words=[] bindings=[('dev_list', {[DQ [LIT_CHARS "apache2.2-bin bison cdbs curl dpkg-dev elfutils devscripts fakeroot\n"][LIT_CHARS " flex fonts-thai-tlwg g++ git-core git-svn gperf language-pack-da\n"][LIT_CHARS " language-pack-fr language-pack-he language-pack-zh-hant\n"][LIT_CHARS " libapache2-mod-php5 libasound2-dev libbrlapi-dev libav-tools\n"][LIT_CHARS " libbz2-dev libcairo2-dev libcap-dev libcups2-dev libcurl4-gnutls-dev\n"][LIT_CHARS " libdrm-dev libelf-dev libexif-dev libgconf2-dev libgl1-mesa-dev\n"][LIT_CHARS " libglib2.0-dev libglu1-mesa-dev libgnome-keyring-dev libgtk2.0-dev\n"][LIT_CHARS " libkrb5-dev libnspr4-dev libnss3-dev libpam0g-dev libpci-dev\n"][LIT_CHARS " libpulse-dev libsctp-dev libspeechd-dev libsqlite3-dev libssl-dev\n"][LIT_CHARS " libudev-dev libwww-perl libxslt1-dev libxss-dev libxt-dev libxtst-dev\n"][LIT_CHARS " mesa-common-dev openbox patch perl php5-cgi pkg-config python\n"][LIT_CHARS " python-cherrypy3 python-crypto python-dev python-numpy python-opencv\n"][LIT_CHARS " python-openssl python-psutil rpm ruby subversion ttf-dejavu-core\n"][LIT_CHARS " ttf-indic-fonts ttf-kochi-gothic ttf-kochi-mincho wdiff xfonts-mathml\n"][LIT_CHARS " zip "][VarSub chromeos_dev_list]]})]) (If (Pipeline (Com {[LIT_CHARS file]} {[LIT_CHARS /sbin/init]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS -q]} {[SQ ]}) ) (= scope= flags=0 words=[] bindings=[('dev_list', {[DQ [VarSub dev_list][LIT_CHARS " libc6-i386 lib32gcc1 lib32stdc++6"]]})]) ) (= scope= flags=0 words=[] bindings=[('chromeos_lib_list', {[DQ [LIT_CHARS "libpulse0 libbz2-1.0"]]})]) (= scope= flags=0 words=[] bindings=[('lib_list', {[DQ [LIT_CHARS "libatk1.0-0 libc6 libasound2 libcairo2 libcap2 libcups2 libexpat1\n"][LIT_CHARS " libexif12 libfontconfig1 libfreetype6 libglib2.0-0 libgnome-keyring0\n"][LIT_CHARS " libgtk2.0-0 libpam0g libpango1.0-0 libpci3 libpcre3 libpixman-1-0\n"][LIT_CHARS " libpng12-0 libspeechd2 libstdc++6 libsqlite3-0 libx11-6\n"][LIT_CHARS " libxau6 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxdmcp6\n"][LIT_CHARS " libxext6 libxfixes3 libxi6 libxinerama1 libxrandr2 libxrender1\n"][LIT_CHARS " libxtst6 zlib1g "][VarSub chromeos_lib_list]]})]) (= scope= flags=0 words=[] bindings=[('dbg_list', {[DQ [LIT_CHARS "libatk1.0-dbg libc6-dbg libcairo2-dbg libfontconfig1-dbg\n"][LIT_CHARS " libglib2.0-0-dbg libgtk2.0-0-dbg libpango1.0-0-dbg libpcre3-dbg\n"][LIT_CHARS " libpixman-1-0-dbg libsqlite3-0-dbg libx11-6-dbg libxau6-dbg\n"][LIT_CHARS " libxcb1-dbg libxcomposite1-dbg libxcursor1-dbg libxdamage1-dbg\n"][LIT_CHARS " libxdmcp6-dbg libxext6-dbg libxfixes3-dbg libxi6-dbg libxinerama1-dbg\n"][LIT_CHARS " libxrandr2-dbg libxrender1-dbg libxtst6-dbg zlib1g-dbg\n"][LIT_CHARS " libstdc++6-4.6-dbg"]]})]) (= scope= flags=0 words=[] bindings=[('lib32_list', {[DQ [LIT_CHARS "linux-libc-dev:i386"]]})]) (= scope= flags=0 words=[] bindings=[('arm_list', {[DQ [LIT_CHARS "libc6-dev-armhf-cross\n"][LIT_CHARS " linux-libc-dev-armhf-cross\n"][LIT_CHARS " g++-arm-linux-gnueabihf"]]})]) (= scope= flags=0 words=[] bindings=[('naclports_list', {[DQ [LIT_CHARS "ant autoconf bison cmake gawk intltool xutils-dev xsltproc"]]})]) (= scope= flags=0 words=[] bindings=[('nacl_list', {[DQ [LIT_CHARS "g++-mingw-w64-i686 lib32z1-dev\n"][LIT_CHARS " libasound2:i386 libcap2:i386 libelf-dev:i386 libexif12:i386\n"][LIT_CHARS " libfontconfig1:i386 libgconf-2-4:i386 libglib2.0-0:i386 libgpm2:i386\n"][LIT_CHARS " libgtk2.0-0:i386 libncurses5:i386 lib32ncurses5-dev\n"][LIT_CHARS " libnss3:i386 libpango1.0-0:i386\n"][LIT_CHARS " libssl0.9.8:i386 libtinfo-dev libtinfo-dev:i386 libtool\n"][LIT_CHARS " libxcomposite1:i386 libxcursor1:i386 libxdamage1:i386 libxi6:i386\n"][LIT_CHARS " libxrandr2:i386 libxss1:i386 libxtst6:i386 texinfo xvfb\n"][LIT_CHARS " "][VarSub naclports_list]]})]) (= scope= flags=0 words=[] bindings=[('mesa_variant', {[DQ ]})]) (For variant [{[DQ [LIT_CHARS -lts-quantal]]}, {[DQ [LIT_CHARS -lts-raring]]}, {[DQ [LIT_CHARS -lts-saucy]]}, {[DQ [LIT_CHARS -lts-trusty]]}]) (If (Com {[ComSub (Pipeline (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS dpkg-query]} {[LIT_CHARS -Wf] [SQ ]} {[LIT_CHARS libgl1-mesa-glx] [VarSub variant]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS -q]} {[DQ [LIT_CHARS " ok installed"]]}) )]}) (= scope= flags=0 words=[] bindings=[('mesa_variant', {[DQ [VarSub variant]]})]) ) ) (= scope= flags=0 words=[] bindings=[('dev_list', {[DQ [VarSub dev_list][LIT_CHARS " libgbm-dev"][VarSub mesa_variant][LIT_CHARS "\n"][LIT_CHARS " libgles2-mesa-dev"][VarSub mesa_variant]]})]) (= scope= flags=0 words=[] bindings=[('nacl_list', {[DQ [VarSub nacl_list][LIT_CHARS " libgl1-mesa-glx"][VarSub mesa_variant][LIT_CHARS ":i386"]]})]) (If (Com {[LIT_CHARS package_exists]} {[LIT_CHARS ttf-mscorefonts-installer]}) (= scope= flags=0 words=[] bindings=[('dev_list', {[DQ [VarSub dev_list][LIT_CHARS " ttf-mscorefonts-installer"]]})]) (ElseTrue) (= scope= flags=0 words=[] bindings=[('dev_list', {[DQ [VarSub dev_list][LIT_CHARS " msttcorefonts"]]})]) ) (If (Com {[LIT_CHARS package_exists]} {[LIT_CHARS libnspr4-dbg]}) (List (= scope= flags=0 words=[] bindings=[('dbg_list', {[DQ [VarSub dbg_list][LIT_CHARS " libnspr4-dbg libnss3-dbg"]]})]) (= scope= flags=0 words=[] bindings=[('lib_list', {[DQ [VarSub lib_list][LIT_CHARS " libnspr4 libnss3"]]})]) ) (ElseTrue) (List (= scope= flags=0 words=[] bindings=[('dbg_list', {[DQ [VarSub dbg_list][LIT_CHARS " libnspr4-0d-dbg libnss3-1d-dbg"]]})]) (= scope= flags=0 words=[] bindings=[('lib_list', {[DQ [VarSub lib_list][LIT_CHARS " libnspr4-0d libnss3-1d"]]})]) ) ) (If (Com {[LIT_CHARS package_exists]} {[LIT_CHARS libjpeg-dev]}) (= scope= flags=0 words=[] bindings=[('dev_list', {[DQ [VarSub dev_list][LIT_CHARS " libjpeg-dev"]]})]) (ElseTrue) (= scope= flags=0 words=[] bindings=[('dev_list', {[DQ [VarSub dev_list][LIT_CHARS " libjpeg62-dev"]]})]) ) (If (Com {[LIT_CHARS package_exists]} {[LIT_CHARS libudev1]}) (List (= scope= flags=0 words=[] bindings=[('dev_list', {[DQ [VarSub dev_list][LIT_CHARS " libudev1"]]})]) (= scope= flags=0 words=[] bindings=[('nacl_list', {[DQ [VarSub nacl_list][LIT_CHARS " libudev1:i386"]]})]) ) (ElseTrue) (List (= scope= flags=0 words=[] bindings=[('dev_list', {[DQ [VarSub dev_list][LIT_CHARS " libudev0"]]})]) (= scope= flags=0 words=[] bindings=[('nacl_list', {[DQ [VarSub nacl_list][LIT_CHARS " libudev0:i386"]]})]) ) ) (If (Com {[LIT_CHARS package_exists]} {[LIT_CHARS libbrlapi0.6]}) (= scope= flags=0 words=[] bindings=[('dev_list', {[DQ [VarSub dev_list][LIT_CHARS " libbrlapi0.6"]]})]) (ElseTrue) (= scope= flags=0 words=[] bindings=[('dev_list', {[DQ [VarSub dev_list][LIT_CHARS " libbrlapi0.5"]]})]) ) (If (Com {[LIT_CHARS package_exists]} {[LIT_CHARS appmenu-gtk]}) (= scope= flags=0 words=[] bindings=[('lib_list', {[DQ [VarSub lib_list][LIT_CHARS " appmenu-gtk"]]})]) ) (If (Pipeline (Com {[LIT_CHARS file]} {[LIT_CHARS /sbin/init]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS -q]} {[SQ ]}) ) (List (= scope= flags=0 words=[] bindings=[('multilib_package', {[ComSub (Pipeline (Com {[LIT_CHARS apt-cache]} {[LIT_CHARS depends]} {[LIT_CHARS g] [LIT_OTHER "+"] [LIT_OTHER "+"] [LIT_CHARS -multilib]} {[LIT_CHARS --important]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS -E]} {[LIT_CHARS --color] [LIT_OTHER "="] [LIT_CHARS never]} {[LIT_CHARS --only-matching]} {[SQ ]}) )]})]) (= scope= flags=0 words=[] bindings=[('lib32_list', {[DQ [VarSub lib32_list][LIT_CHARS " "][VarSub multilib_package]]})]) ) ) (FunctionDef yes_no [] (List (If (Com {[LIT_OTHER "["]} {[LIT_CHARS 0]} {[LIT_CHARS -ne]} {[DQ [VarSub do_default test_op=VS_TEST_HYPHEN {[LIT_CHARS 0]}]]} {[LIT_OTHER "]"]}) (List (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[VarSub 1]} {[LIT_CHARS -eq]} {[LIT_CHARS 0]} {[LIT_OTHER "]"]}) (AndOr OP_OR_IF (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS Y]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS N]]}) ) ) (Com {[LIT_CHARS return]} {[VarSub 1]}) ) ) (= scope= flags=0 words=[{[LIT_CHARS c]}] bindings=[]) (While (Com {[LIT_OTHER ":"]}) (List (= scope= flags=0 words=[] bindings=[('c', {[DQ [ComSub (List (Com {[LIT_CHARS trap]} {[SQ /dev/null">]} {[LIT_CHARS EXIT]} {[LIT_CHARS INT]} {[LIT_CHARS TERM]} {[LIT_CHARS QUIT]}) (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS stty]} {[LIT_CHARS -echo]} {[LIT_CHARS iuclc]} {[LIT_CHARS -icanon]}) (Pipeline (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS dd]} {[LIT_VAR_LIKE "count="] [LIT_CHARS 1] =} {[LIT_VAR_LIKE "bs="] [LIT_CHARS 1] =}) (Com {[LIT_CHARS od]} {[LIT_CHARS -An]} {[LIT_CHARS -tx1]}) ) )]]})]) (Case to_match={[DQ [VarSub c]]}, pat_word_list=[[{[DQ [LIT_CHARS " 0a"]]}], [{[DQ [LIT_CHARS " 79"]]}], [{[DQ [LIT_CHARS " 6e"]]}], [{[DQ ]}], [{[LIT_OTHER "*"]}]] (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -n]} {[DQ [VarSub 1]]} {[LIT_OTHER "]"]}) (List (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[VarSub 1]} {[LIT_CHARS -eq]} {[LIT_CHARS 0]} {[LIT_OTHER "]"]}) (AndOr OP_OR_IF (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS Y]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS N]]}) ) ) (Com {[LIT_CHARS return]} {[VarSub 1]}) ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS Y]]}) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]}) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS N]]}) (Com {[LIT_CHARS return]} {[LIT_CHARS 1]}) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS Aborted]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) (Subshell (Com {[LIT_CHARS tput]} {[LIT_CHARS bel]}) ) ) ) ) ) ) (If (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[DQ [VarSub do_inst_syms]]} {[LIT_OTHER "="]} {[DQ ]}) (Com {[LIT_CHARS test]} {[LIT_CHARS 0]} {[LIT_CHARS -eq]} {[VarSub do_quick_check test_op=VS_TEST_HYPHEN {[LIT_CHARS 0]}]}) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "This script installs all tools and libraries needed to build Chromium."]]}) (Com {[LIT_CHARS echo]} {[DQ ]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "For most of the libraries, it can also install debugging symbols, which"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "will allow you to debug code in the system libraries. Most developers"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "won't need these symbols."]]}) (Com {[LIT_CHARS echo]} {[LIT_CHARS -n]} {[DQ [LIT_CHARS "Do you want me to install them for you (y/N) "]]}) (If (Com {[LIT_CHARS yes_no]} {[LIT_CHARS 1]}) (= scope= flags=0 words=[] bindings=[('do_inst_syms', {[LIT_CHARS 1]})]) ) ) ) (If (Com {[LIT_CHARS test]} {[DQ [VarSub do_inst_syms]]} {[LIT_OTHER "="]} {[DQ [LIT_CHARS 1]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Including debugging symbols."]]}) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Skipping debugging symbols."]]}) (= scope= flags=0 words=[] bindings=[('dbg_list', {[SQ ]})]) ) ) (If (Com {[LIT_CHARS test]} {[DQ [VarSub do_inst_lib32]]} {[LIT_OTHER "="]} {[DQ [LIT_CHARS 1]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Including 32-bit libraries for ARM/Android."]]}) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Skipping 32-bit libraries for ARM/Android."]]}) (= scope= flags=0 words=[] bindings=[('lib32_list', {[SQ ]})]) ) ) (If (Com {[LIT_CHARS test]} {[DQ [VarSub do_inst_arm]]} {[LIT_OTHER "="]} {[DQ [LIT_CHARS 1]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Including ARM cross toolchain."]]}) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Skipping ARM cross toolchain."]]}) (= scope= flags=0 words=[] bindings=[('arm_list', {[SQ ]})]) ) ) (If (Com {[LIT_CHARS test]} {[DQ [VarSub do_inst_nacl]]} {[LIT_OTHER "="]} {[DQ [LIT_CHARS 1]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Including NaCl, NaCl toolchain, NaCl ports dependencies."]]}) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Skipping NaCl, NaCl toolchain, NaCl ports dependencies."]]}) (= scope= flags=0 words=[] bindings=[('nacl_list', {[SQ ]})]) ) ) (= scope= flags=0 words=[] bindings=[('packages', {[DQ [ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub dev_list][LIT_CHARS " "][VarSub lib_list][LIT_CHARS " "][VarSub dbg_list][LIT_CHARS " "][VarSub lib32_list][LIT_CHARS " "][VarSub arm_list]]} {[DQ [VarSub nacl_list]]}) (Com {[LIT_CHARS tr]} {[DQ [LIT_CHARS " "]]} {[DQ [\ LIT_ESCAPED_CHAR "\\n"]]}) (Com {[LIT_CHARS sort]} {[LIT_CHARS -u]}) (Com {[LIT_CHARS tr]} {[DQ [\ LIT_ESCAPED_CHAR "\\n"]]} {[DQ [LIT_CHARS " "]]}) )]]})]) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS 1]} {[LIT_CHARS -eq]} {[DQ [VarSub do_quick_check test_op=VS_TEST_HYPHEN {[LIT_CHARS 0]}]]} {[LIT_OTHER "]"]}) (List (= scope= flags=0 words=[] bindings=[('failed_check', {[DQ [ComSub (AndOr OP_OR_IF (Pipeline (Com redirects=[(DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2)]{[LIT_CHARS dpkg-query]} {[LIT_CHARS -W]} {[LIT_CHARS -f]} {[SQ ]} {[VarSub packages]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS -v]} {[DQ [LIT_CHARS "ok installed"]]}) ) (Com {[LIT_OTHER ":"]}) )]]})]) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -n]} {[DQ [VarSub failed_check]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS echo]}) (= scope= flags=0 words=[] bindings=[('nomatch', {[DQ [ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub failed_check]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/^No packages found matching "][\ LIT_ESCAPED_CHAR "\\("][LIT_CHARS ".*"][\ LIT_ESCAPED_CHAR "\\)"][LIT_CHARS .][LIT_OTHER "$"][LIT_CHARS /][\ LIT_ESCAPED_CHAR "\\1"][LIT_CHARS "/;t;d"]]}) )]]})]) (= scope= flags=0 words=[] bindings=[('missing', {[DQ [ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub failed_check]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "/^No packages found matching/d;s/^"][\ LIT_ESCAPED_CHAR "\\("][LIT_CHARS ".*"][\ LIT_ESCAPED_CHAR "\\)"][LIT_CHARS ":.*"][LIT_OTHER "$"][LIT_CHARS /][\ LIT_ESCAPED_CHAR "\\1"][LIT_CHARS /]]}) )]]})]) (If (Com {[LIT_OTHER "["]} {[DQ [VarSub nomatch]]} {[LIT_OTHER "]"]}) (List (= scope= flags=0 words=[] bindings=[('unknown', {[DQ ]})]) (For p [{[VarSub nomatch]}]) (If (Com {[LIT_CHARS apt-cache]} {[LIT_CHARS show]} {[VarSub p]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) (= scope= flags=0 words=[] bindings=[('missing', {[DQ [VarSub p][\ LIT_ESCAPED_CHAR "\\n"][VarSub missing]]})]) (ElseTrue) (= scope= flags=0 words=[] bindings=[('unknown', {[DQ [VarSub p][\ LIT_ESCAPED_CHAR "\\n"][VarSub unknown]]})]) ) ) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -n]} {[DQ [VarSub unknown]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "WARNING: The following packages are unknown to your system"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "(maybe missing a repo or need to 'sudo apt-get update'):"]]}) (Pipeline (Com {[LIT_CHARS echo]} {[LIT_CHARS -e]} {[DQ [VarSub unknown]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/^/ /"]]}) ) ) ) ) ) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -n]} {[DQ [VarSub missing]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "WARNING: The following packages are not installed:"]]}) (Pipeline (Com {[LIT_CHARS echo]} {[LIT_CHARS -e]} {[DQ [VarSub missing]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/^/ /"]]}) ) ) ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 0]}) ) ) (If (AndOr OP_OR_IF (Com {[LIT_CHARS test]} {[DQ [VarSub do_inst_lib32]]} {[LIT_OTHER "="]} {[DQ [LIT_CHARS 1]]}) (Com {[LIT_CHARS test]} {[DQ [VarSub do_inst_nacl]]} {[LIT_OTHER "="]} {[DQ [LIT_CHARS 1]]}) ) (If (DBracket {B! {B2 BINARY_STRING_TILDE_EQUAL {[VarSub lsb_release]} {[LIT_CHARS "("] [LIT_CHARS precise] [LIT_CHARS "|"] [LIT_CHARS quantal] [LIT_CHARS "|"] [LIT_CHARS raring] [LIT_CHARS ")"]}}}) (Com {[LIT_CHARS sudo]} {[LIT_CHARS dpkg]} {[LIT_CHARS --add-architecture]} {[LIT_CHARS i386]}) ) ) (Com {[LIT_CHARS sudo]} {[LIT_CHARS apt-get]} {[LIT_CHARS update]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Finding missing packages..."]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Packages required: "]]} {[VarSub packages]}) (Com {[LIT_CHARS echo]}) (= scope= flags=0 words=[] bindings=[('new_list_cmd', {[DQ [LIT_CHARS "sudo apt-get install --reinstall "][ComSub (Com {[LIT_CHARS echo]} {[VarSub packages]})]]})]) (If (= scope= flags=0 words=[] bindings=[('new_list', {[DQ [ComSub (Pipeline (Com {[LIT_CHARS yes]} {[LIT_CHARS n]}) (Com more_env=[('LANGUAGE', {[LIT_CHARS en]}), ('LANG', {[LIT_CHARS C]})] {[VarSub new_list_cmd]}) )]]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "No missing packages, and the packages are up-to-date."]]}) (Com {[LIT_OTHER "["]} {[VarSub ?]} {[LIT_CHARS -eq]} {[LIT_CHARS 1]} {[LIT_OTHER "]"]}) (List (= scope= flags=0 words=[] bindings=[('new_list', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub new_list]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[SQ ]}) )]})]) (= scope= flags=0 words=[] bindings=[('new_list', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub new_list]]}) (Com {[LIT_CHARS sed]} {[SQ ]}) )]})]) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -z]} {[DQ [VarSub new_list]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "No missing packages, and the packages are up-to-date."]]}) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Installing missing packages: "][VarSub new_list][LIT_CHARS .]]}) (Com {[LIT_CHARS sudo]} {[LIT_CHARS apt-get]} {[LIT_CHARS install]} {[VarSub do_quietly test_op=VS_TEST_HYPHEN {}]} {[VarSub new_list]}) ) ) (Com {[LIT_CHARS echo]}) ) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "The following command failed: "]]} {[VarSub new_list_cmd]}) (Com {[LIT_CHARS echo]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "It produces the following output:"]]}) (AndOr OP_OR_IF (Pipeline (Com {[LIT_CHARS yes]} {[LIT_CHARS n]}) (Com {[VarSub new_list_cmd]}) ) (Com {[LIT_CHARS true]}) ) (Com {[LIT_CHARS echo]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "You will have to install the above packages yourself."]]}) (Com {[LIT_CHARS echo]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 100]}) ) ) (If (Com {[LIT_CHARS test]} {[DQ [VarSub do_inst_chromeos_fonts]]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[DQ [LIT_CHARS 0]]}) (List (Com {[LIT_CHARS echo]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Installing Chrome OS fonts."]]}) (= scope= flags=0 words=[] bindings=[('dir', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[VarSub 0]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -r]} {[LIT_CHARS -e]} {[SQ ]}) )]})]) (If (Pipeline! (Com {[LIT_CHARS sudo]} {[VarSub dir] [LIT_CHARS /linux/install-chromeos-fonts.py]}) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: The installation of the Chrome OS default fonts failed."]]}) (If (Com {[LIT_OTHER "["]} {[ComSub (Com {[LIT_CHARS stat]} {[LIT_CHARS -f]} {[LIT_CHARS -c]} {[LIT_OTHER "%"] [LIT_CHARS T]} {[VarSub dir]})]} {[LIT_OTHER "="] [LIT_OTHER "="]} {[DQ [LIT_CHARS nfs]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "The reason is that your repo is installed on a remote file system."]]}) (ElseTrue) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "This is expected if your repo is installed on a remote file system."]]}) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "It is recommended to install your repo on a local file system."]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "You can skip the installation of the Chrome OS default founts with"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "the command line option: --no-chromeos-fonts."]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) ) (ElseTrue) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Skipping installation of Chrome OS fonts."]]}) ) (If (Com {[LIT_CHARS test]} {[DQ [VarSub do_inst_nacl]]} {[LIT_OTHER "="]} {[DQ [LIT_CHARS 1]]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Installing symbolic links for NaCl."]]}) (If (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -r]} {[LIT_CHARS /usr/lib/i386-linux-gnu/libcrypto.so]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS sudo]} {[LIT_CHARS ln]} {[LIT_CHARS -fs]} {[LIT_CHARS libcrypto.so.0.9.8]} {[LIT_CHARS /usr/lib/i386-linux-gnu/libcrypto.so]}) ) (If (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -r]} {[LIT_CHARS /usr/lib/i386-linux-gnu/libssl.so]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS sudo]} {[LIT_CHARS ln]} {[LIT_CHARS -fs]} {[LIT_CHARS libssl.so.0.9.8]} {[LIT_CHARS /usr/lib/i386-linux-gnu/libssl.so]}) ) ) (ElseTrue) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Skipping symbolic links for NaCl."]]}) ) )