(List (Com {[LIT_CHARS set]} {[LIT_CHARS -e]}) (If (Com {[LIT_OTHER "["]} {[DQ [VarSub VERBOSE]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS set]} {[LIT_CHARS -x]}) ) (Com {[LIT_CHARS set]} {[LIT_CHARS -u]}) (FunctionDef gen_spec [] (List (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[DQ [VarSub SPEC]]}) (= scope= flags=0 words=[] bindings=[('PACKAGE_FILENAME', {[DQ [VarSub PACKAGE]]})]) (If (Com {[LIT_OTHER "["]} {[DQ [VarSub CHANNEL]]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[DQ [LIT_CHARS stable]]} {[LIT_OTHER "]"]}) (List (= scope= flags=0 words=[] bindings=[('INSTALLDIR', {[DQ [VarSub INSTALLDIR][LIT_CHARS -][VarSub CHANNEL]]})]) (= scope= flags=0 words=[] bindings=[('PACKAGE_FILENAME', {[DQ [VarSub PACKAGE][LIT_CHARS -][VarSub CHANNEL]]})]) (= scope= flags=0 words=[] bindings=[('MENUNAME', {[DQ [VarSub MENUNAME][LIT_CHARS " ("][VarSub CHANNEL][LIT_CHARS ")"]]})]) ) ) (Com {[LIT_CHARS process_template]} {[DQ [VarSub SCRIPTDIR][LIT_CHARS /chrome.spec.template]]} {[DQ [VarSub SPEC]]}) ) ) (FunctionDef prep_staging_rpm [] (List (Com {[LIT_CHARS prep_staging_common]}) (Com {[LIT_CHARS install]} {[LIT_CHARS -m]} {[LIT_CHARS 755]} {[LIT_CHARS -d]} {[DQ [VarSub STAGEDIR][LIT_CHARS /etc/cron.daily]]}) ) ) (FunctionDef stage_install_rpm [] (List (If (Com {[LIT_OTHER "["]} {[DQ [VarSub CHANNEL]]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[DQ [LIT_CHARS stable]]} {[LIT_OTHER "]"]}) (List (= scope= flags=0 words=[] bindings=[('SXS_USER_DATA_DIR', {[DQ [\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "{XDG_CONFIG_HOME:-"][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "{HOME}/.config}/"][VarSub PACKAGE][LIT_CHARS -][VarSub CHANNEL]]})]) (= scope= flags=0 words=[] bindings=[('DEFAULT_FLAGS', {[DQ [LIT_CHARS "--user-data-dir="][\ LIT_ESCAPED_CHAR "\\\""][VarSub SXS_USER_DATA_DIR][\ LIT_ESCAPED_CHAR "\\\""]]})]) (= scope= flags=0 words=[] bindings=[('PACKAGE', {[DQ [VarSub PACKAGE][LIT_CHARS -][VarSub CHANNEL]]})]) (= scope= flags=0 words=[] bindings=[('INSTALLDIR', {[DQ [VarSub INSTALLDIR][LIT_CHARS -][VarSub CHANNEL]]})]) (= scope= flags=0 words=[] bindings=[('MENUNAME', {[DQ [VarSub MENUNAME][LIT_CHARS " ("][VarSub CHANNEL][LIT_CHARS ")"]]})]) ) ) (Com {[LIT_CHARS prep_staging_rpm]}) (Com {[LIT_CHARS stage_install_common]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Staging RPM install files in '"][VarSub STAGEDIR][LIT_CHARS "'..."]]}) (Com {[LIT_CHARS process_template]} {[DQ [VarSub BUILDDIR][LIT_CHARS /installer/common/rpmrepo.cron]]} {[DQ [VarSub STAGEDIR][LIT_CHARS /etc/cron.daily/][VarSub PACKAGE]]}) (Com {[LIT_CHARS chmod]} {[LIT_CHARS 755]} {[DQ [VarSub STAGEDIR][LIT_CHARS /etc/cron.daily/][VarSub PACKAGE]]}) ) ) (FunctionDef do_package [] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Packaging "][VarSub ARCHITECTURE][LIT_CHARS ...]]}) (= scope= flags=0 words=[] bindings=[('PROVIDES', {[DQ [VarSub PACKAGE]]})]) (= scope= flags=0 words=[] bindings=[('REPS', {[DQ [VarSub REPLACES]]})]) (= scope= flags=0 words=[] bindings=[('REPLACES', {[DQ ]})]) (For rep [{[VarSub REPS]}]) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -z]} {[DQ [VarSub REPLACES]]} {[LIT_OTHER "]"]}) (= scope= flags=0 words=[] bindings=[('REPLACES', {[DQ [VarSub PACKAGE][LIT_CHARS -][VarSub rep]]})]) (ElseTrue) (= scope= flags=0 words=[] bindings=[('REPLACES', {[DQ [VarSub REPLACES][LIT_CHARS " "][VarSub PACKAGE][LIT_CHARS -][VarSub rep]]})]) ) ) (= scope= flags=0 words=[] bindings=[('ADDITIONAL_CONFLICTS', {[DQ [LIT_CHARS "xorg-x11-libX11 < 7.6_1 libX11 < 1.4.99"]]})]) (= scope= flags=0 words=[] bindings=[('REPLACES', {[DQ [VarSub REPLACES][LIT_CHARS " "][VarSub ADDITIONAL_CONFLICTS]]})]) (If (Com {[LIT_OTHER "["]} {[DQ [VarSub ARCHITECTURE]]} {[LIT_OTHER "="]} {[DQ [LIT_CHARS x86_64]]} {[LIT_OTHER "]"]}) (List (= scope= flags=0 words=[] bindings=[('EMPTY_VERSION', {[DQ [LIT_CHARS "()"]]})]) (= scope= flags=0 words=[] bindings=[('PKG_ARCH', {[DQ [LIT_CHARS "(64bit)"]]})]) ) (Com {[LIT_OTHER "["]} {[DQ [VarSub ARCHITECTURE]]} {[LIT_OTHER "="]} {[DQ [LIT_CHARS i386]]} {[LIT_OTHER "]"]}) (List (= scope= flags=0 words=[] bindings=[('EMPTY_VERSION', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('PKG_ARCH', {[DQ ]})]) ) ) (= scope= flags=0 words=[] bindings=[('DETECTED_DEPENDS', {[DQ [ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub BUILDDIR][LIT_CHARS /chrome]]}) (Com {[LIT_CHARS /usr/lib/rpm/find-requires]}) )]]})]) (= scope= flags=0 words=[] bindings=[('BAD_DIFF', {[LIT_CHARS 0]})]) (AndOr OP_OR_IF (Com {[LIT_CHARS diff]} {[DQ [VarSub SCRIPTDIR][LIT_CHARS /expected_deps_][VarSub ARCHITECTURE]]} {[ComSub (Com {[LIT_CHARS echo]} {[DQ [VarSub DETECTED_DEPENDS]]})]}) (= scope= flags=0 words=[] bindings=[('BAD_DIFF', {[LIT_CHARS 1]})]) ) (If (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[VarSub BAD_DIFF]} {[LIT_CHARS -ne]} {[LIT_CHARS 0]} {[LIT_OTHER "]"]}) (Com {[LIT_OTHER "["]} {[LIT_CHARS -z]} {[DQ [VarSub IGNORE_DEPS_CHANGES test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_OTHER "]"]}) ) (List (Com {[LIT_CHARS echo]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: Shared library dependencies changed!"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "If this is intentional, please update:"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS chrome/installer/linux/rpm/expected_deps_i386]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS chrome/installer/linux/rpm/expected_deps_x86_64]]}) (Com {[LIT_CHARS echo]}) (Com {[LIT_CHARS exit]} {[VarSub BAD_DIFF]}) ) ) (= scope= flags=0 words=[] bindings=[('DEPENDS', {[DQ [LIT_CHARS "lsb >= 4.0, "][LIT_CHARS " libcurl.so.4"][VarSub EMPTY_VERSION][VarSub PKG_ARCH][LIT_CHARS ", "][LIT_CHARS " libnss3.so(NSS_3.14.3)"][VarSub PKG_ARCH][LIT_CHARS ", "][LIT_CHARS " wget, "][LIT_CHARS " xdg-utils, "][LIT_CHARS " zlib, "][LIT_CHARS " "][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub DETECTED_DEPENDS]]}) (Com {[LIT_CHARS tr]} {[SQ ]} {[SQ ]}) )]]})]) (Com {[LIT_CHARS gen_spec]}) (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('RPMBUILD_DIR', {[ComSub (Com {[LIT_CHARS mktemp]} {[LIT_CHARS -d]} {[LIT_CHARS -t]} {[LIT_CHARS rpmbuild.XXXXXX]})]})]) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub RPMBUILD_DIR][LIT_CHARS /BUILD]]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub RPMBUILD_DIR][LIT_CHARS /RPMS]]}) (Com {[LIT_CHARS fakeroot]} {[LIT_CHARS rpmbuild]} {[LIT_CHARS -bb]} {[LIT_CHARS --target] [LIT_OTHER "="] [DQ [VarSub ARCHITECTURE]]} {[LIT_CHARS --rmspec]} {[LIT_CHARS --define]} {[DQ [LIT_CHARS "_topdir "][VarSub RPMBUILD_DIR]]} {[LIT_CHARS --define]} {[DQ [LIT_CHARS "_binary_payload w9.xzdio"]]} {[LIT_CHARS --define]} {[DQ [LIT_CHARS "__os_install_post %{nil}"]]} {[DQ [VarSub SPEC]]}) (= scope= flags=0 words=[] bindings=[('PKGNAME', {[DQ [VarSub PACKAGE][LIT_CHARS -][VarSub CHANNEL][LIT_CHARS -][VarSub VERSION][LIT_CHARS -][VarSub PACKAGE_RELEASE]]})]) (Com {[LIT_CHARS mv]} {[DQ [VarSub RPMBUILD_DIR][LIT_CHARS /RPMS/][VarSub ARCHITECTURE][LIT_CHARS /][VarSub PKGNAME][LIT_CHARS .][VarSub ARCHITECTURE][LIT_CHARS .rpm]]} {[DQ [VarSub OUTPUTDIR]]}) (Com {[LIT_CHARS chmod]} {[LIT_CHARS a] [LIT_OTHER "+"] [LIT_CHARS r]} {[DQ [VarSub OUTPUTDIR][LIT_CHARS /][VarSub PKGNAME][LIT_CHARS .][VarSub ARCHITECTURE][LIT_CHARS .rpm]]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub RPMBUILD_DIR]]}) ) ) (FunctionDef cleanup [] (List (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub STAGEDIR]]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub TMPFILEDIR]]}) ) ) (FunctionDef usage [] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "usage: "][ComSub (Com {[LIT_CHARS basename]} {[VarSub 0]})][LIT_CHARS " [-c channel] [-a target_arch] [-o 'dir']"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " [-b 'dir']"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "-c channel the package channel (trunk, asan, unstable, beta, stable)"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "-a arch package architecture (ia32 or x64)"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "-o dir package output directory ["][VarSub OUTPUTDIR][LIT_CHARS "]"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "-b dir build input directory ["][VarSub BUILDDIR][LIT_CHARS "]"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "-h this help message"]]}) ) ) (FunctionDef verify_channel [] (Case to_match={[VarSub CHANNEL]}, pat_word_list=[[{[LIT_CHARS stable]}], [{[LIT_CHARS unstable]}, {[LIT_CHARS dev]}, {[LIT_CHARS alpha]}], [{[LIT_CHARS testing]}, {[LIT_CHARS beta]}], [{[LIT_CHARS trunk]}, {[LIT_CHARS asan]}], [{[LIT_OTHER "*"]}]] (List (= scope= flags=0 words=[] bindings=[('CHANNEL', {[LIT_CHARS stable]})]) (= scope= flags=0 words=[] bindings=[('REPLACES', {[DQ [LIT_CHARS dummy]]})]) ) (List (= scope= flags=0 words=[] bindings=[('CHANNEL', {[LIT_CHARS unstable]})]) (= scope= flags=0 words=[] bindings=[('REPLACES', {[DQ [LIT_CHARS dummy]]})]) ) (List (= scope= flags=0 words=[] bindings=[('CHANNEL', {[LIT_CHARS beta]})]) (= scope= flags=0 words=[] bindings=[('REPLACES', {[DQ [LIT_CHARS dummy]]})]) ) (List (= scope= flags=0 words=[] bindings=[('REPLACES', {[DQ [LIT_CHARS dummy]]})]) (= scope= flags=0 words=[] bindings=[('REPOCONFIG', {[DQ ]})]) ) (List (Com {[LIT_CHARS echo]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: '"][VarSub CHANNEL][LIT_CHARS "' is not a valid channel type."]]}) (Com {[LIT_CHARS echo]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) ) (FunctionDef process_opts [] (While (Com {[LIT_CHARS getopts]} {[DQ [LIT_CHARS ":o:b:c:a:h"]]} {[LIT_CHARS OPTNAME]}) (Case to_match={[VarSub OPTNAME]}, pat_word_list=[[{[LIT_CHARS o]}], [{[LIT_CHARS b]}], [{[LIT_CHARS c]}], [{[LIT_CHARS a]}], [{[LIT_CHARS h]}], [{[\ LIT_ESCAPED_CHAR "\\:"]}], [{[LIT_OTHER "*"]}]] (List (= scope= flags=0 words=[] bindings=[('OUTPUTDIR', {[ComSub (Com {[LIT_CHARS readlink]} {[LIT_CHARS -f]} {[DQ [VarSub OPTARG]]})]})]) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub OUTPUTDIR]]}) ) (= scope= flags=0 words=[] bindings=[('BUILDDIR', {[ComSub (Com {[LIT_CHARS readlink]} {[LIT_CHARS -f]} {[DQ [VarSub OPTARG]]})]})]) (List (= scope= flags=0 words=[] bindings=[('CHANNEL', {[DQ [VarSub OPTARG]]})]) (Com {[LIT_CHARS verify_channel]}) ) (= scope= flags=0 words=[] bindings=[('TARGETARCH', {[DQ [VarSub OPTARG]]})]) (List (Com {[LIT_CHARS usage]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 0]}) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "'-"][VarSub OPTARG][LIT_CHARS "' needs an argument."]]}) (Com {[LIT_CHARS usage]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "invalid command-line option: "][VarSub OPTARG]]}) (Com {[LIT_CHARS usage]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) ) ) (= scope= flags=0 words=[] bindings=[('SCRIPTDIR', {[ComSub (Com {[LIT_CHARS readlink]} {[LIT_CHARS -f]} {[DQ [ComSub (Com {[LIT_CHARS dirname]} {[DQ [VarSub 0]]})]]})]})]) (= scope= flags=0 words=[] bindings=[('OUTPUTDIR', {[DQ [VarSub PWD]]})]) (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('STAGEDIR', {[ComSub (Com {[LIT_CHARS mktemp]} {[LIT_CHARS -d]} {[LIT_CHARS -t]} {[LIT_CHARS rpm.build.XXXXXX]})]})]) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('TMPFILEDIR', {[ComSub (Com {[LIT_CHARS mktemp]} {[LIT_CHARS -d]} {[LIT_CHARS -t]} {[LIT_CHARS rpm.tmp.XXXXXX]})]})]) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) (= scope= flags=0 words=[] bindings=[('CHANNEL', {[DQ [LIT_CHARS trunk]]})]) (If (Com {[LIT_OTHER "["]} {[DQ [ComSub (Com {[LIT_CHARS uname]} {[LIT_CHARS -m]})]]} {[LIT_OTHER "="]} {[DQ [LIT_CHARS x86_64]]} {[LIT_OTHER "]"]}) (= scope= flags=0 words=[] bindings=[('TARGETARCH', {[DQ [LIT_CHARS x64]]})]) (ElseTrue) (= scope= flags=0 words=[] bindings=[('TARGETARCH', {[DQ [LIT_CHARS ia32]]})]) ) (= scope= flags=0 words=[] bindings=[('SPEC', {[DQ [VarSub TMPFILEDIR][LIT_CHARS /chrome.spec]]})]) (Com {[LIT_CHARS trap]} {[LIT_CHARS cleanup]} {[LIT_CHARS 0]}) (Com {[LIT_CHARS process_opts]} {[DQ [VarSub @]]}) (= scope= flags=0 words=[] bindings=[('BUILDDIR', {[VarSub BUILDDIR test_op=VS_TEST_COLON_EQUALS {[ComSub (Com {[LIT_CHARS readlink]} {[LIT_CHARS -f]} {[DQ [VarSub SCRIPTDIR][LIT_CHARS /../../../../out/Release]]})]}]})]) (Com {[LIT_CHARS source]} {[VarSub BUILDDIR] [LIT_CHARS /installer/common/installer.include]}) (Com {[LIT_CHARS get_version_info]}) (If (Com {[LIT_OTHER "["]} {[DQ [VarSub CHROMIUM_BUILD]]} {[LIT_OTHER "="]} {[DQ [LIT_CHARS _google_chrome]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS source]} {[DQ [VarSub BUILDDIR][LIT_CHARS /installer/common/google-chrome.info]]}) (ElseTrue) (Com {[LIT_CHARS source]} {[DQ [VarSub BUILDDIR][LIT_CHARS /installer/common/chromium-browser.info]]}) ) (Com {[LIT_CHARS eval]} {[ComSub (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/^"][\ LIT_ESCAPED_CHAR "\\("][LIT_CHARS "[^=]"][\ LIT_ESCAPED_CHAR "\\+"][\ LIT_ESCAPED_CHAR "\\)"][LIT_CHARS "="][\ LIT_ESCAPED_CHAR "\\("][LIT_CHARS ".*"][\ LIT_ESCAPED_CHAR "\\)"][LIT_OTHER "$"][LIT_CHARS "/export "][\ LIT_ESCAPED_CHAR "\\1"][LIT_CHARS "='"][\ LIT_ESCAPED_CHAR "\\2"][LIT_CHARS "'/"]]} {[DQ [VarSub BUILDDIR][LIT_CHARS /installer/theme/BRANDING]]})]}) (= scope= flags=0 words=[] bindings=[('REPOCONFIG', {[DQ [LIT_CHARS "http://dl.google.com/linux/"][VarSub PACKAGE transform_ops=[VS_UNARY_POUND {[LIT_CHARS google-]}]][LIT_CHARS /rpm/stable]]})]) (Com {[LIT_CHARS verify_channel]}) (= scope= flags=1 words=[] bindings=[('USR_BIN_SYMLINK_NAME', {[DQ [VarSub PACKAGE][LIT_CHARS -][VarSub CHANNEL]]})]) (Com {[LIT_CHARS cd]} {[DQ [VarSub OUTPUTDIR]]}) (Case to_match={[DQ [VarSub TARGETARCH]]}, pat_word_list=[[{[LIT_CHARS ia32]}], [{[LIT_CHARS x64]}], [{[LIT_OTHER "*"]}]] (List (= scope= flags=1 words=[] bindings=[('ARCHITECTURE', {[DQ [LIT_CHARS i386]]})]) (Com {[LIT_CHARS stage_install_rpm]}) ) (List (= scope= flags=1 words=[] bindings=[('ARCHITECTURE', {[DQ [LIT_CHARS x86_64]]})]) (Com {[LIT_CHARS stage_install_rpm]}) ) (List (Com {[LIT_CHARS echo]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: Don't know how to build RPMs for '"][VarSub TARGETARCH][LIT_CHARS "'."]]}) (Com {[LIT_CHARS echo]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (Com {[LIT_CHARS do_package]}) )