(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PORTAGE_READONLY_METADATA) op: Equal rhs: { (DQ ('DEFINED_PHASES DEPEND DESCRIPTION\n') ('\tEAPI HDEPEND HOMEPAGE INHERITED IUSE REQUIRED_USE KEYWORDS LICENSE\n') ('\tPDEPEND PROVIDE RDEPEND REPOSITORY RESTRICT SLOT SRC_URI') ) } ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PORTAGE_READONLY_VARS) op: Equal rhs: { (DQ ('D EBUILD EBUILD_PHASE EBUILD_PHASE_FUNC ') ('\tEBUILD_SH_ARGS ECLASSDIR EMERGE_FROM FILESDIR MERGE_TYPE ') ('\tPM_EBUILD_HOOK_DIR ') ('\tPORTAGE_ACTUAL_DISTDIR PORTAGE_ARCHLIST PORTAGE_BASHRC ') ('\tPORTAGE_BINPKG_FILE PORTAGE_BINPKG_TAR_OPTS PORTAGE_BINPKG_TMPFILE ') ('\tPORTAGE_BIN_PATH PORTAGE_BUILDDIR PORTAGE_BUILD_GROUP ') ('\tPORTAGE_BUILD_USER PORTAGE_BUNZIP2_COMMAND ') ('\tPORTAGE_BZIP2_COMMAND PORTAGE_COLORMAP PORTAGE_CONFIGROOT ') ('\tPORTAGE_DEBUG PORTAGE_DEPCACHEDIR PORTAGE_EBUILD_EXIT_FILE ') ('\tPORTAGE_ECLASS_LOCATIONS ') ('\tPORTAGE_GID PORTAGE_GRPNAME PORTAGE_INST_GID PORTAGE_INST_UID ') ('\tPORTAGE_INTERNAL_CALLER PORTAGE_IPC_DAEMON PORTAGE_IUSE PORTAGE_LOG_FILE ') ('\tPORTAGE_MUTABLE_FILTERED_VARS PORTAGE_OVERRIDE_EPREFIX ') ('\tPORTAGE_PYM_PATH PORTAGE_PYTHON PORTAGE_PYTHONPATH ') ('\tPORTAGE_READONLY_METADATA PORTAGE_READONLY_VARS ') ('\tPORTAGE_REPO_NAME PORTAGE_REPOSITORIES PORTAGE_RESTRICT ') ('\tPORTAGE_SAVED_READONLY_VARS PORTAGE_SIGPIPE_STATUS ') ('\tPORTAGE_TMPDIR PORTAGE_UPDATE_ENV PORTAGE_USERNAME ') ('\tPORTAGE_VERBOSE PORTAGE_WORKDIR_MODE PORTAGE_XATTR_EXCLUDE ') ('\tPORTDIR ') ('\tREPLACING_VERSIONS REPLACED_BY_VERSION T WORKDIR ') ('\t__PORTAGE_HELPER __PORTAGE_TEST_HARDLINK_LOCKS') ) } ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PORTAGE_SAVED_READONLY_VARS) op: Equal rhs: {(DQ ('A CATEGORY P PF PN PR PV PVR'))} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PORTAGE_MUTABLE_FILTERED_VARS) op: Equal rhs: {(DQ ('AA HOSTNAME'))} ) ] ) (command.ShFunction name: __filter_readonly_variables body: (command.BraceGroup children: [ (C {(local)} {(x)} {(filtered_vars)}) (C {(local)} {(Lit_VarLike 'readonly_bash_vars=') (DQ ('BASHOPTS BASHPID DIRSTACK EUID\n') ('\t\tFUNCNAME GROUPS PIPESTATUS PPID SHELLOPTS UID') ) } ) (C {(local)} {(Lit_VarLike 'bash_misc_vars=') (DQ ('BASH BASH_.* COLUMNS COMP_WORDBREAKS HISTCMD\n') ('\t\tHISTFILE HOSTNAME HOSTTYPE IFS LINENO MACHTYPE OLDPWD\n') ('\t\tOPTERR OPTIND OSTYPE POSIXLY_CORRECT PS4 PWD RANDOM\n') ('\t\tSECONDS SHLVL _') ) } ) (C {(local)} {(Lit_VarLike 'filtered_sandbox_vars=') (DQ ('SANDBOX_ACTIVE SANDBOX_BASHRC\n') ('\t\tSANDBOX_DEBUG_LOG SANDBOX_DISABLED SANDBOX_LIB\n') ('\t\tSANDBOX_LOG SANDBOX_ON') ) } ) (C {(local)} {(Lit_VarLike 'binpkg_untrusted_vars=') (DQ ('CATEGORY P PF PN PR PV PVR'))}) (C {(local)} {(Lit_VarLike 'misc_garbage_vars=') (DQ (_portage_filter_opts))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:filtered_vars) op: Equal rhs: { (DQ ($ VSub_DollarName '$readonly_bash_vars') (' ') ($ VSub_DollarName '$bash_misc_vars') ('\n') ('\t\t') ($ VSub_DollarName '$PORTAGE_READONLY_VARS') (' ') ($ VSub_DollarName '$misc_garbage_vars') ) } ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(___eapi_has_prefix_variables)}) terminator: <Op_Semi ';'> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:filtered_vars) op: PlusEqual rhs: {(DQ (' ED EPREFIX EROOT'))} ) ] ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(has)} {(--filter-sandbox)} {($ VSub_Star '$*')}) terminator: <Op_Semi ';'> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:filtered_vars) op: Equal rhs: {(DQ (${ VSub_Name filtered_vars) (' SANDBOX_.*'))} ) ] ) ] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:filtered_vars) op: Equal rhs: {(DQ (${ VSub_Name filtered_vars) (' ') (${ VSub_Name filtered_sandbox_vars))} ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(has)} {(--filter-features)} {($ VSub_Star '$*')}) terminator: <Op_Semi ';'> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:filtered_vars) op: Equal rhs: {(DQ (${ VSub_Name filtered_vars) (' FEATURES PORTAGE_FEATURES'))} ) ] ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(has)} {(--filter-path)} {($ VSub_Star '$*')}) terminator: <Op_Semi ';'> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:filtered_vars) op: PlusEqual rhs: {(DQ (' PATH'))} ) ] ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(has)} {(--filter-locale)} {($ VSub_Star '$*')}) terminator: <Op_Semi ';'> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:filtered_vars) op: PlusEqual rhs: { (DQ (' LANG LC_ALL LC_COLLATE\n') ('\t\t\tLC_CTYPE LC_MESSAGES LC_MONETARY\n') ('\t\t\tLC_NUMERIC LC_PAPER LC_TIME') ) } ) ] ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [(C {(has)} {(--allow-extra-vars)} {($ VSub_Star '$*')})] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_LBracket '[')} {(DQ (${ VSub_Name EMERGE_FROM))} {(Lit_Equals '=')} {(binary)} {(Lit_RBracket ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:filtered_vars) op: PlusEqual rhs: {(DQ (' ') (${ VSub_Name binpkg_untrusted_vars))} ) ] ) ] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:filtered_vars) op: PlusEqual rhs: {(DQ (' ') (${ VSub_Name PORTAGE_SAVED_READONLY_VARS))} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:filtered_vars) op: PlusEqual rhs: {(DQ (' ') (${ VSub_Name PORTAGE_MUTABLE_FILTERED_VARS))} ) ] ) ] ) ] ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (C { (DQ (braced_var_sub token: <VSub_Name PORTAGE_PYTHON> suffix_op: (suffix_op.Unary op_id: VTest_ColonHyphen arg_word: {(Lit_Slash /) (usr) (Lit_Slash /) (bin) (Lit_Slash /) (python)} ) ) ) } {(DQ (${ VSub_Name PORTAGE_BIN_PATH)) (/filter-bash-environment.py)} {(DQ (${ VSub_Name filtered_vars))} ) (C {(die)} {(DQ ('filter-bash-environment.py failed'))}) ] ) ] ) ) (command.ShFunction name: __preprocess_ebuild_env body: (command.BraceGroup children: [ (C {(local)} {(Lit_VarLike '_portage_filter_opts=') (DQ ('--filter-features --filter-locale --filter-path --filter-sandbox')) } ) (command.AndOr ops: [Op_DPipe] children: [ (C {(Lit_LBracket '[')} {(-f)} {(DQ (${ VSub_Name T) (/environment.raw))} {(Lit_RBracket ']')} ) (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] ) (command.AndOr ops: [Op_DPipe] children: [ (command.Simple words: [{(__filter_readonly_variables)} {($ VSub_DollarName '$_portage_filter_opts')}] redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ (${ VSub_Name T)) (/environment)} ) (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$T') (/environment.filtered))} ) ] ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {($ VSub_QMark '$?')} ) ] ) (C {(unset)} {(_portage_filter_opts)}) (command.AndOr ops: [Op_DPipe] children: [ (C {(mv)} {(DQ (${ VSub_Name T)) (/environment.filtered)} {(DQ (${ VSub_Name T)) (/environment)} ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {($ VSub_QMark '$?')} ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(rm)} {(-f)} {(DQ (${ VSub_Name T) (/environment.success))}) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {($ VSub_QMark '$?')} ) ] ) (command.Subshell command_list: (command.CommandList children: [ (C {(export)} {(Lit_VarLike 'SANDBOX_ON=') (1)}) (command.AndOr ops: [Op_DPipe] children: [ (C {(source)} {(DQ (${ VSub_Name T) (/environment))}) (command.ControlFlow token: <ControlFlow_Exit exit> arg_word: {($ VSub_QMark '$?')} ) ] ) (C {(export)} {(Lit_VarLike 'SANDBOX_ON=') (0)}) (command.AndOr ops: [Op_DPipe] children: [ (C {(source)} {(DQ (${ VSub_Name PORTAGE_BIN_PATH) (/save-ebuild-env.sh))}) (command.ControlFlow token: <ControlFlow_Exit exit> arg_word: {($ VSub_QMark '$?')} ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(__save_ebuild_env)}) (command.ControlFlow token: <ControlFlow_Exit exit> arg_word: {($ VSub_QMark '$?')} ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (command.Simple redirects: [ (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$T') (/environment.success))} ) ] ) (command.ControlFlow token: <ControlFlow_Exit exit> arg_word: {($ VSub_QMark '$?')} ) ] ) ] ) redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ (${ VSub_Name T) (/environment.filtered))} ) ] ) (C {(local)} {(retval)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_LBracket '[')} {(-e)} {(DQ (${ VSub_Name T) (/environment.success))} {(Lit_RBracket ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Simple words: [{(__filter_readonly_variables)} {(--filter-features)}] redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ (${ VSub_Name T) (/environment.filtered))} ) (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ (${ VSub_Name T) (/environment))} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:retval) op: Equal rhs: {($ VSub_QMark '$?')} ) ] ) ] ) ] else_action: [ (command.ShAssignment pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:retval) op:Equal rhs:{(1)})] ) ] ) (C {(rm)} {(-f)} (word.BracedTree parts: [ (DQ (${ VSub_Name T)) (/environment.) (word_part.BracedTuple words:[{(filtered)} {(raw)} {(success)}]) ] ) ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(${ VSub_Name retval)} ) ] ) ) (command.ShFunction name: __ebuild_phase body: (command.BraceGroup children: [ (command.AndOr ops: [Op_DAmp] children: [ (command.Simple words: [{(declare)} {(-F)} {(DQ ($ VSub_Number '$1'))}] redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})] ) (C {(__qa_call)} {($ VSub_Number '$1')}) ] ) ] ) ) (command.ShFunction name: __ebuild_phase_with_hooks body: (command.BraceGroup children: [ (C {(local)} {(x)} {(Lit_VarLike 'phase_name=') (${ VSub_Number 1)}) (command.ForEach iter_name: x iter_words: [ (word.BracedTree parts: [ (word_part.BracedTuple words:[{(pre_)} {} {(post_)}]) (${ VSub_Name phase_name) ] ) ] do_arg_iter: F body: (command.DoGroup children:[(C {(__ebuild_phase)} {(${ VSub_Name x)})]) ) ] ) ) (command.ShFunction name: __dyn_pretend body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: BoolUnary_e child: {($ VSub_DollarName '$PORTAGE_BUILDDIR') (/.pretended)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(__vecho)} { (DQ (">>> It appears that '") ($ VSub_DollarName '$PF') ("' is already pretended; skipping.") ) } ) (C {(__vecho)} { (DQ (">>> Remove '") ($ VSub_DollarName '$PORTAGE_BUILDDIR') ("/.pretended' to force pretend.") ) } ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] ) ] ) (C {(__ebuild_phase)} {(pre_pkg_pretend)}) (C {(__ebuild_phase)} {(pkg_pretend)}) (command.AndOr ops: [Op_DPipe] children: [ (command.Simple redirects: [ (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$PORTAGE_BUILDDIR') (/.pretended))} ) ] ) (C {(die)} {(DQ ('Failed to create ') ($ VSub_DollarName '$PORTAGE_BUILDDIR') (/.pretended))} ) ] ) (C {(__ebuild_phase)} {(post_pkg_pretend)}) ] ) ) (command.ShFunction name: __dyn_setup body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: BoolUnary_e child: {($ VSub_DollarName '$PORTAGE_BUILDDIR') (/.setuped)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(__vecho)} { (DQ (">>> It appears that '") ($ VSub_DollarName '$PF') ("' is already setup; skipping.") ) } ) (C {(__vecho)} { (DQ (">>> Remove '") ($ VSub_DollarName '$PORTAGE_BUILDDIR') ("/.setuped' to force setup.") ) } ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] ) ] ) (C {(__ebuild_phase)} {(pre_pkg_setup)}) (C {(__ebuild_phase)} {(pkg_setup)}) (command.AndOr ops: [Op_DPipe] children: [ (command.Simple redirects: [ (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$PORTAGE_BUILDDIR') (/.setuped))} ) ] ) (C {(die)} {(DQ ('Failed to create ') ($ VSub_DollarName '$PORTAGE_BUILDDIR') (/.setuped))} ) ] ) (C {(__ebuild_phase)} {(post_pkg_setup)}) ] ) ) (command.ShFunction name: __dyn_unpack body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: BoolUnary_f child: {(${ VSub_Name PORTAGE_BUILDDIR) (/.unpacked)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(__vecho)} {(DQ ('>>> WORKDIR is up-to-date, keeping...'))}) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_LBracket '[')} {(KW_Bang '!')} {(-d)} {(DQ (${ VSub_Name WORKDIR))} {(Lit_RBracket ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.AndOr ops: [Op_DPipe] children: [ (C {(install)} {(-m) (braced_var_sub token: <VSub_Name PORTAGE_WORKDIR_MODE> suffix_op: (suffix_op.Unary op_id:VTest_ColonHyphen arg_word:{(0700)}) ) } {(-d)} {(DQ (${ VSub_Name WORKDIR))} ) (C {(die)} {(DQ ("Failed to create dir '") (${ VSub_Name WORKDIR) ("'"))}) ] ) ] ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(cd)} {(DQ (${ VSub_Name WORKDIR))}) (C {(die)} { (DQ ('Directory change failed: ') (word_part.EscapedLiteral token:<Lit_EscapedChar '\\`'>) ("cd '") (${ VSub_Name WORKDIR) ("'") (word_part.EscapedLiteral token:<Lit_EscapedChar '\\`'>) ) } ) ] ) (C {(__ebuild_phase)} {(pre_src_unpack)}) (C {(__vecho)} {(DQ ('>>> Unpacking source...'))}) (C {(__ebuild_phase)} {(src_unpack)}) (command.AndOr ops: [Op_DPipe] children: [ (command.Simple redirects: [ (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$PORTAGE_BUILDDIR') (/.unpacked))} ) ] ) (C {(die)} {(DQ ('Failed to create ') ($ VSub_DollarName '$PORTAGE_BUILDDIR') (/.unpacked))} ) ] ) (C {(__vecho)} {(DQ ('>>> Source unpacked in ') (${ VSub_Name WORKDIR))}) (C {(__ebuild_phase)} {(post_src_unpack)}) ] ) ) (command.ShFunction name: __dyn_clean body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_LBracket '[')} {(-z)} {(DQ (${ VSub_Name PORTAGE_BUILDDIR))} {(Lit_RBracket ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('Aborting clean phase because PORTAGE_BUILDDIR is unset!'))}) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] ) (if_arm cond: [ (command.Sentence child: (C {(Lit_LBracket '[')} {(KW_Bang '!')} {(-d)} {(DQ (${ VSub_Name PORTAGE_BUILDDIR))} {(Lit_RBracket ']')} ) terminator: <Op_Semi ';'> ) ] action: [(command.ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(has)} {(chflags)} {($ VSub_DollarName '$FEATURES')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(chflags)} {(-R)} {(noschg) (Lit_Comma ',') (nouchg) (Lit_Comma ',') (nosappnd) (Lit_Comma ',') (nouappnd) } {(DQ (${ VSub_Name PORTAGE_BUILDDIR))} ) (command.Simple words: [ {(chflags)} {(-R)} {(nosunlnk) (Lit_Comma ',') (nouunlnk)} {(DQ (${ VSub_Name PORTAGE_BUILDDIR))} ] redirects: [(redir.Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})] ) ] ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(cd)} {(DQ (${ VSub_Name PORTAGE_PYM_PATH))}) (C {(die)} {(DQ ("PORTAGE_PYM_PATH does not exist: '") (${ VSub_Name PORTAGE_PYM_PATH) ("'"))} ) ] ) (C {(rm)} {(-rf)} {(DQ (${ VSub_Name PORTAGE_BUILDDIR) (/image))} {(DQ (${ VSub_Name PORTAGE_BUILDDIR) (/homedir))} ) (C {(rm)} {(-f)} {(DQ (${ VSub_Name PORTAGE_BUILDDIR) (/.installed))}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DPipe Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: BoolBinary_GlobEqual left: {($ VSub_DollarName '$EMERGE_FROM')} right: {(binary)} ) ) (command.Pipeline children: [(C {(has)} {(keeptemp)} {($ VSub_DollarName '$FEATURES')})] negated: T ) (command.Pipeline children: [(C {(has)} {(keepwork)} {($ VSub_DollarName '$FEATURES')})] negated: T ) ] ) terminator: <Op_Semi ';'> ) ] action: [(C {(rm)} {(-rf)} {(DQ (${ VSub_Name T))})] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DPipe] children: [ (command.DBracket expr: (bool_expr.Binary op_id: BoolBinary_GlobEqual left: {($ VSub_DollarName '$EMERGE_FROM')} right: {(binary)} ) ) (command.Pipeline children: [(C {(has)} {(keepwork)} {($ VSub_DollarName '$FEATURES')})] negated: T ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(rm)} {(-f)} (word.BracedTree parts: [ (DQ ($ VSub_DollarName '$PORTAGE_BUILDDIR')) (/.) (word_part.BracedTuple words: [ {(ebuild_changed)} {(logid)} {(pretended)} {(setuped)} {(unpacked)} {(prepared)} ] ) ] ) (word.BracedTree parts: [ (DQ ($ VSub_DollarName '$PORTAGE_BUILDDIR')) (/.) (word_part.BracedTuple words: [{(configured)} {(compiled)} {(tested)} {(packaged)}] ) ] ) {(DQ ($ VSub_DollarName '$PORTAGE_BUILDDIR')) (/.die_hooks)} (word.BracedTree parts: [ (DQ ($ VSub_DollarName '$PORTAGE_BUILDDIR')) (/.ipc_) (word_part.BracedTuple words: [{(KW_In in)} {(out)} {(lock)}] ) ] ) {(DQ ($ VSub_DollarName '$PORTAGE_BUILDDIR')) (/.exit_status)} ) (C {(rm)} {(-rf)} {(DQ (${ VSub_Name PORTAGE_BUILDDIR) (/build-info))}) (C {(rm)} {(-rf)} {(DQ (${ VSub_Name WORKDIR))}) (C {(rm)} {(-f)} {(DQ (${ VSub_Name PORTAGE_BUILDDIR) (/files))}) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_LBracket '[')} {(-f)} {(DQ (${ VSub_Name PORTAGE_BUILDDIR) (/.unpacked))} {(Lit_RBracket ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Pipeline children: [ (C {(find)} {(DQ (${ VSub_Name PORTAGE_BUILDDIR))} {(-type)} {(d)} {(KW_Bang '!')} {(-regex)} {(DQ ('^') (${ VSub_Name WORKDIR))} ) (C {(sort)} {(-r)}) (C {(tr)} {(DQ (Lit_Other '\\') (n))} {(DQ (Lit_Other '\\') (0))}) (command.Simple words: [{($ VSub_DollarName '$XARGS')} {(-0)} {(rmdir)}] redirects: [ (redir.Redir op: <Redir_AndGreat '&>'> fd: 16777215 arg_word: {(/dev/null)} ) ] ) ] negated: F ) ] ) ] ) (C {(rm)} {(-rf)} {(DQ (${ VSub_Name PORTAGE_BUILDDIR) (/distdir))}) (command.Simple words: [{(rmdir)} {(DQ ($ VSub_DollarName '$PORTAGE_BUILDDIR'))}] redirects: [(redir.Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})] ) (C {(true)}) ] ) ) (command.ShFunction name: __abort_handler body: (command.BraceGroup children: [ (C {(local)} {(msg)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_LBracket '[')} {(DQ ($ VSub_Number '$2'))} {(KW_Bang '!') (Lit_Equals '=')} {(DQ (fail))} {(Lit_RBracket ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:msg) op: Equal rhs: { (DQ (${ VSub_Name EBUILD) (': ') (${ VSub_Number 1) (' aborted; exiting.')) } ) ] ) ] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:msg) op: Equal rhs: {(DQ (${ VSub_Name EBUILD) (': ') (${ VSub_Number 1) (' failed; exiting.'))} ) ] ) ] ) (C {(echo)}) (C {(echo)} {(DQ ($ VSub_DollarName '$msg'))}) (C {(echo)}) (C {(eval)} {(${ VSub_Number 3)}) (C {(trap)} {(-)} {(SIGINT)} {(SIGQUIT)}) ] ) ) (command.ShFunction name: __abort_prepare body: (command.BraceGroup children: [ (C {(__abort_handler)} {(src_prepare)} {($ VSub_Number '$1')}) (C {(rm)} {(-f)} {(DQ ($ VSub_DollarName '$PORTAGE_BUILDDIR') (/.prepared))}) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] ) ) (command.ShFunction name: __abort_configure body: (command.BraceGroup children: [ (C {(__abort_handler)} {(src_configure)} {($ VSub_Number '$1')}) (C {(rm)} {(-f)} {(DQ ($ VSub_DollarName '$PORTAGE_BUILDDIR') (/.configured))}) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] ) ) (command.ShFunction name: __abort_compile body: (command.BraceGroup children: [ (C {(__abort_handler)} {(DQ (src_compile))} {($ VSub_Number '$1')}) (C {(rm)} {(-f)} {(DQ (${ VSub_Name PORTAGE_BUILDDIR) (/.compiled))}) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] ) ) (command.ShFunction name: __abort_test body: (command.BraceGroup children: [ (C {(__abort_handler)} {(DQ (__dyn_test))} {($ VSub_Number '$1')}) (C {(rm)} {(-f)} {(DQ (${ VSub_Name PORTAGE_BUILDDIR) (/.tested))}) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] ) ) (command.ShFunction name: __abort_install body: (command.BraceGroup children: [ (C {(__abort_handler)} {(DQ (src_install))} {($ VSub_Number '$1')}) (C {(rm)} {(-rf)} {(DQ (${ VSub_Name PORTAGE_BUILDDIR) (/image))}) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] ) ) (command.ShFunction name: __has_phase_defined_up_to body: (command.BraceGroup children: [ (C {(local)} {(phase)}) (command.ForEach iter_name: phase iter_words: [{(unpack)} {(prepare)} {(configure)} {(compile)} {(install)}] do_arg_iter: F body: (command.DoGroup children: [ (command.AndOr ops: [Op_DAmp] children: [ (C {(has)} {(${ VSub_Name phase)} {(${ VSub_Name DEFINED_PHASES)}) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: BoolBinary_GlobDEqual left: {(${ VSub_Name phase)} right: {($ VSub_Number '$1')} ) ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] ) ] ) ) (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) ) (command.ShFunction name: __dyn_prepare body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: BoolUnary_e child: {($ VSub_DollarName '$PORTAGE_BUILDDIR') (/.prepared)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(__vecho)} { (DQ (">>> It appears that '") ($ VSub_DollarName '$PF') ("' is already prepared; skipping.") ) } ) (C {(__vecho)} { (DQ (">>> Remove '") ($ VSub_DollarName '$PORTAGE_BUILDDIR') ("/.prepared' to force prepare.") ) } ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id:BoolUnary_d child:{($ VSub_DollarName '$S')}) ) terminator: <Op_Semi ';'> ) ] action: [(C {(cd)} {(DQ (${ VSub_Name S))})] ) (if_arm cond: [ (command.Sentence child: (C {(___eapi_has_S_WORKDIR_fallback)}) terminator: <Op_Semi ';'> ) ] action: [(C {(cd)} {(DQ (${ VSub_Name WORKDIR))})] ) (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:BoolUnary_z child:{(${ VSub_Name A)}) ) (command.Pipeline children: [(C {(__has_phase_defined_up_to)} {(prepare)})] negated: T ) ] ) terminator: <Op_Semi ';'> ) ] action: [(C {(cd)} {(DQ (${ VSub_Name WORKDIR))})] ) ] else_action: [ (C {(die)} {(DQ ("The source directory '") (${ VSub_Name S) ("' doesn't exist"))}) ] ) (C {(trap)} {(__abort_prepare)} {(SIGINT)} {(SIGQUIT)}) (C {(__ebuild_phase)} {(pre_src_prepare)}) (C {(__vecho)} {(DQ ('>>> Preparing source in ') ($ VSub_DollarName '$PWD') (' ...'))}) (C {(__ebuild_phase)} {(src_prepare)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DAmp] children: [ (C {(___eapi_has_eapply_user)}) (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: BoolUnary_f child: {(${ VSub_Name T) (/.portage_user_patches_applied)} ) ) ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(die)} {(DQ ('eapply_user (or default) must be called in src_prepare()!'))}) ] ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (command.Simple redirects: [ (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$PORTAGE_BUILDDIR') (/.prepared))} ) ] ) (C {(die)} {(DQ ('Failed to create ') ($ VSub_DollarName '$PORTAGE_BUILDDIR') (/.prepared))} ) ] ) (C {(__vecho)} {(DQ ('>>> Source prepared.'))}) (C {(__ebuild_phase)} {(post_src_prepare)}) (C {(trap)} {(-)} {(SIGINT)} {(SIGQUIT)}) ] ) ) (command.ShFunction name: __start_distcc body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DAmp] children: [ (C {(has)} {(distcc)} {($ VSub_DollarName '$FEATURES')}) (C {(has)} {(distcc-pump)} {($ VSub_DollarName '$FEATURES')}) ] ) terminator: <Op_Semi ';'> ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DPipe] children: [ (command.DBracket expr: (bool_expr.Unary op_id: BoolUnary_z child: {($ VSub_DollarName '$INCLUDE_SERVER_PORT')} ) ) (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: BoolUnary_w child: {($ VSub_DollarName '$INCLUDE_SERVER_PORT')} ) ) ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(eval)} { (command_sub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(pump)} {(--startup)}) (C {(grep)} {(-v)} {(PATH)}) ] negated: F ) ] ) ) } ) (C {(trap)} {(DQ ('pump --shutdown >/dev/null'))} {(EXIT)}) ] ) ] ) ] ) ] ) ] ) ) (command.ShFunction name: __dyn_configure body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: BoolUnary_e child: {($ VSub_DollarName '$PORTAGE_BUILDDIR') (/.configured)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(__vecho)} { (DQ (">>> It appears that '") ($ VSub_DollarName '$PF') ("' is already configured; skipping.") ) } ) (C {(__vecho)} { (DQ (">>> Remove '") ($ VSub_DollarName '$PORTAGE_BUILDDIR') ("/.configured' to force configuration.") ) } ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id:BoolUnary_d child:{($ VSub_DollarName '$S')}) ) terminator: <Op_Semi ';'> ) ] action: [(C {(cd)} {(DQ (${ VSub_Name S))})] ) (if_arm cond: [ (command.Sentence child: (C {(___eapi_has_S_WORKDIR_fallback)}) terminator: <Op_Semi ';'> ) ] action: [(C {(cd)} {(DQ (${ VSub_Name WORKDIR))})] ) (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:BoolUnary_z child:{(${ VSub_Name A)}) ) (command.Pipeline children: [(C {(__has_phase_defined_up_to)} {(configure)})] negated: T ) ] ) terminator: <Op_Semi ';'> ) ] action: [(C {(cd)} {(DQ (${ VSub_Name WORKDIR))})] ) ] else_action: [ (C {(die)} {(DQ ("The source directory '") (${ VSub_Name S) ("' doesn't exist"))}) ] ) (C {(trap)} {(__abort_configure)} {(SIGINT)} {(SIGQUIT)}) (C {(__start_distcc)}) (C {(__ebuild_phase)} {(pre_src_configure)}) (C {(__vecho)} {(DQ ('>>> Configuring source in ') ($ VSub_DollarName '$PWD') (' ...'))}) (C {(__ebuild_phase)} {(src_configure)}) (command.AndOr ops: [Op_DPipe] children: [ (command.Simple redirects: [ (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$PORTAGE_BUILDDIR') (/.configured))} ) ] ) (C {(die)} {(DQ ('Failed to create ') ($ VSub_DollarName '$PORTAGE_BUILDDIR') (/.configured))} ) ] ) (C {(__vecho)} {(DQ ('>>> Source configured.'))}) (C {(__ebuild_phase)} {(post_src_configure)}) (C {(trap)} {(-)} {(SIGINT)} {(SIGQUIT)}) ] ) ) (command.ShFunction name: __dyn_compile body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: BoolUnary_e child: {($ VSub_DollarName '$PORTAGE_BUILDDIR') (/.compiled)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(__vecho)} { (DQ (">>> It appears that '") (${ VSub_Name PF) ("' is already compiled; skipping.") ) } ) (C {(__vecho)} { (DQ (">>> Remove '") ($ VSub_DollarName '$PORTAGE_BUILDDIR') ("/.compiled' to force compilation.") ) } ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id:BoolUnary_d child:{($ VSub_DollarName '$S')}) ) terminator: <Op_Semi ';'> ) ] action: [(C {(cd)} {(DQ (${ VSub_Name S))})] ) (if_arm cond: [ (command.Sentence child: (C {(___eapi_has_S_WORKDIR_fallback)}) terminator: <Op_Semi ';'> ) ] action: [(C {(cd)} {(DQ (${ VSub_Name WORKDIR))})] ) (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:BoolUnary_z child:{(${ VSub_Name A)}) ) (command.Pipeline children: [(C {(__has_phase_defined_up_to)} {(compile)})] negated: T ) ] ) terminator: <Op_Semi ';'> ) ] action: [(C {(cd)} {(DQ (${ VSub_Name WORKDIR))})] ) ] else_action: [ (C {(die)} {(DQ ("The source directory '") (${ VSub_Name S) ("' doesn't exist"))}) ] ) (C {(trap)} {(__abort_compile)} {(SIGINT)} {(SIGQUIT)}) (C {(__start_distcc)}) (C {(__ebuild_phase)} {(pre_src_compile)}) (C {(__vecho)} {(DQ ('>>> Compiling source in ') ($ VSub_DollarName '$PWD') (' ...'))}) (C {(__ebuild_phase)} {(src_compile)}) (command.AndOr ops: [Op_DPipe] children: [ (command.Simple redirects: [ (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$PORTAGE_BUILDDIR') (/.compiled))} ) ] ) (C {(die)} {(DQ ('Failed to create ') ($ VSub_DollarName '$PORTAGE_BUILDDIR') (/.compiled))} ) ] ) (C {(__vecho)} {(DQ ('>>> Source compiled.'))}) (C {(__ebuild_phase)} {(post_src_compile)}) (C {(trap)} {(-)} {(SIGINT)} {(SIGQUIT)}) ] ) ) (command.ShFunction name: __dyn_test body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: BoolUnary_e child: {($ VSub_DollarName '$PORTAGE_BUILDDIR') (/.tested)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(__vecho)} { (DQ ('>>> It appears that ') (${ VSub_Name PN) (' has already been tested; skipping.') ) } ) (C {(__vecho)} { (DQ (">>> Remove '") (${ VSub_Name PORTAGE_BUILDDIR) ("/.tested' to force test.") ) } ) (command.ControlFlow token:<ControlFlow_Return return>) ] ) ] ) (C {(trap)} {(DQ (__abort_test))} {(SIGINT)} {(SIGQUIT)}) (C {(__start_distcc)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_LBracket '[')} {(-d)} {(DQ (${ VSub_Name S))} {(Lit_RBracket ']')}) terminator: <Op_Semi ';'> ) ] action: [(C {(cd)} {(DQ (${ VSub_Name S))})] ) ] else_action: [(C {(cd)} {(DQ (${ VSub_Name WORKDIR))})] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(has)} {(test)} {(${ VSub_Name RESTRICT)}) terminator: <Op_Semi ';'> ) ] action: [ (C {(einfo)} {(DQ ('Skipping make test/check due to ebuild restriction.'))}) (C {(__vecho)} { (DQ ('>>> Test phase [disabled because of RESTRICT=test]: ') (${ VSub_Name CATEGORY) (/) (${ VSub_Name PF) ) } ) ] ) (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: BoolBinary_GlobNEqual left: {(${ VSub_Name EBUILD_FORCE_TEST)} right: {(1)} ) ) (command.Pipeline children: [(C {(has)} {(test)} {(${ VSub_Name FEATURES)})] negated: T ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(__vecho)} { (DQ ('>>> Test phase [not enabled]: ') (${ VSub_Name CATEGORY) (/) (${ VSub_Name PF) ) } ) ] ) ] else_action: [ (C {(local)} {(Lit_VarLike 'save_sp=') (${ VSub_Name SANDBOX_PREDICT)}) (C {(addpredict)} {(/)}) (C {(__ebuild_phase)} {(pre_src_test)}) (C {(__vecho)} {(DQ ('>>> Test phase: ') (${ VSub_Name CATEGORY) (/) (${ VSub_Name PF))}) (C {(__ebuild_phase)} {(src_test)}) (C {(__vecho)} {(DQ ('>>> Completed testing ') (${ VSub_Name CATEGORY) (/) (${ VSub_Name PF))} ) (command.AndOr ops: [Op_DPipe] children: [ (command.Simple redirects: [ (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$PORTAGE_BUILDDIR') (/.tested))} ) ] ) (C {(die)} {(DQ ('Failed to create ') ($ VSub_DollarName '$PORTAGE_BUILDDIR') (/.tested))} ) ] ) (C {(__ebuild_phase)} {(post_src_test)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SANDBOX_PREDICT) op: Equal rhs: {(${ VSub_Name save_sp)} ) ] ) ] ) (C {(trap)} {(-)} {(SIGINT)} {(SIGQUIT)}) ] ) ) (command.ShFunction name: __dyn_install body: (command.BraceGroup children: [ (command.AndOr ops: [Op_DAmp] children: [ (C {(Lit_LBracket '[')} {(-z)} {(DQ ($ VSub_DollarName '$PORTAGE_BUILDDIR'))} {(Lit_RBracket ']')} ) (C {(die)} {(DQ (${ VSub_Name FUNCNAME) (': PORTAGE_BUILDDIR is unset'))}) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(has)} {(noauto)} {($ VSub_DollarName '$FEATURES')}) terminator: <Op_Semi ';'> ) ] action: [(C {(rm)} {(-f)} {(DQ (${ VSub_Name PORTAGE_BUILDDIR) (/.installed))})] ) (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: BoolUnary_e child: {($ VSub_DollarName '$PORTAGE_BUILDDIR') (/.installed)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(__vecho)} { (DQ (">>> It appears that '") (${ VSub_Name PF) ("' is already installed; skipping.") ) } ) (C {(__vecho)} { (DQ (">>> Remove '") (${ VSub_Name PORTAGE_BUILDDIR) ("/.installed' to force install.") ) } ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] ) ] ) (C {(trap)} {(DQ (__abort_install))} {(SIGINT)} {(SIGQUIT)}) (C {(__start_distcc)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: BoolUnary_n child: {($ VSub_DollarName '$QA_PREBUILT')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:QA_EXECSTACK) op: PlusEqual rhs: {(DQ (' ') ($ VSub_DollarName '$QA_PREBUILT'))} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:QA_TEXTRELS) op: PlusEqual rhs: {(DQ (' ') ($ VSub_DollarName '$QA_PREBUILT'))} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:QA_WX_LOAD) op: PlusEqual rhs: {(DQ (' ') ($ VSub_DollarName '$QA_PREBUILT'))} ) ] ) (command.ForEach iter_name: x iter_words: [{(QA_DT_NEEDED)} {(QA_FLAGS_IGNORED)} {(QA_PRESTRIPPED)} {(QA_SONAME)}] do_arg_iter: F body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: BoolBinary_GlobEqual left: { (command_sub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Simple words: [ {(declare)} {(-p)} {($ VSub_DollarName '$x')} ] redirects: [ (redir.Redir op: <Redir_Great '2>'> fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) ) } right: {(declare) (word_part.EscapedLiteral token: <Lit_EscapedChar '\\ '> ) (BoolUnary_a -a) (Lit_Other '*') } ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(eval)} { (DQ ($ VSub_DollarName '$x') ('=(') (word_part.EscapedLiteral token: <Lit_EscapedChar '\\"'> ) (word_part.EscapedLiteral token:<Lit_EscapedChar '\\$'>) ('{') ($ VSub_DollarName '$x') ('[@]}') (word_part.EscapedLiteral token: <Lit_EscapedChar '\\"'> ) (' ') (braced_var_sub token: <VSub_Name QA_PREBUILT> suffix_op: (suffix_op.PatSub pat: { (word_part.EscapedLiteral token: <Lit_EscapedChar '\\*'> ) } replace: {('.*')} replace_mode: Lit_Slash ) ) (')') ) } ) ] ) ] else_action: [ (C {(eval)} { (DQ ($ VSub_DollarName '$x') ('+=') (word_part.EscapedLiteral token: <Lit_EscapedChar '\\"'> ) (' ') (braced_var_sub token: <VSub_Name QA_PREBUILT> suffix_op: (suffix_op.PatSub pat: { (word_part.EscapedLiteral token: <Lit_EscapedChar '\\*'> ) } replace: {('.*')} replace_mode: Lit_Slash ) ) (word_part.EscapedLiteral token:<Lit_EscapedChar '\\"'>) ) } ) ] ) ] ) ) (C {(unset)} {(x)}) ] ) ] ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: BoolUnary_n child: {($ VSub_DollarName '$QA_PRESTRIPPED')} ) ) (C {(export)} {(QA_PRESTRIPPED)}) ] ) (C {(eval)} { (DQ ('[[ -n ') (word_part.EscapedLiteral token:<Lit_EscapedChar '\\$'>) (QA_PRESTRIPPED_) (braced_var_sub token: <VSub_Name ARCH> suffix_op: (suffix_op.PatSub pat:{(-)} replace:{(_)} replace_mode:Undefined_Tok) ) (' ]] && ') ('\t\texport QA_PRESTRIPPED_') (braced_var_sub token: <VSub_Name ARCH> suffix_op: (suffix_op.PatSub pat:{(-)} replace:{(_)} replace_mode:Undefined_Tok) ) ) } ) (C {(__ebuild_phase)} {(pre_src_install)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(___eapi_has_prefix_variables)}) terminator: <Op_Semi ';'> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_x) op: Equal rhs: {(${ VSub_Name ED)} ) ] ) ] ) ] else_action: [ (command.ShAssignment pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:_x) op:Equal rhs:{(${ VSub_Name D)})] ) ] ) (C {(rm)} {(-rf)} {(DQ (${ VSub_Name D))}) (C {(mkdir)} {(-p)} {(DQ (${ VSub_Name _x))}) (C {(unset)} {(_x)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id:BoolUnary_d child:{($ VSub_DollarName '$S')}) ) terminator: <Op_Semi ';'> ) ] action: [(C {(cd)} {(DQ (${ VSub_Name S))})] ) (if_arm cond: [ (command.Sentence child: (C {(___eapi_has_S_WORKDIR_fallback)}) terminator: <Op_Semi ';'> ) ] action: [(C {(cd)} {(DQ (${ VSub_Name WORKDIR))})] ) (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:BoolUnary_z child:{(${ VSub_Name A)}) ) (command.Pipeline children: [(C {(__has_phase_defined_up_to)} {(install)})] negated: T ) ] ) terminator: <Op_Semi ';'> ) ] action: [(C {(cd)} {(DQ (${ VSub_Name WORKDIR))})] ) ] else_action: [ (C {(die)} {(DQ ("The source directory '") (${ VSub_Name S) ("' doesn't exist"))}) ] ) (C {(__vecho)}) (C {(__vecho)} { (DQ ('>>> Install ') (${ VSub_Name PF) (' into ') (${ VSub_Name D) (' category ') (${ VSub_Name CATEGORY) ) } ) (C {(export)} {(S)} {(D)}) (C {(export)} {(Lit_VarLike 'DESTTREE=') (/usr)}) (C {(export)} {(Lit_VarLike 'INSDESTTREE=') (DQ )}) (C {(export)} {(Lit_VarLike '_E_EXEDESTTREE_=') (DQ )}) (C {(export)} {(Lit_VarLike '_E_DOCDESTTREE_=') (DQ )}) (C {(__ebuild_phase)} {(src_install)}) (command.AndOr ops: [Op_DPipe] children: [ (command.Simple redirects: [ (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$PORTAGE_BUILDDIR') (/.installed))} ) ] ) (C {(die)} {(DQ ('Failed to create ') ($ VSub_DollarName '$PORTAGE_BUILDDIR') (/.installed))} ) ] ) (C {(__vecho)} {(DQ ('>>> Completed installing ') (${ VSub_Name PF) (' into ') (${ VSub_Name D))} ) (C {(__vecho)}) (C {(__ebuild_phase)} {(post_src_install)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Simple words: [{(type)} {(-P)} {(du)}] redirects: [ (redir.Redir op: <Redir_AndGreat '&>'> fd: 16777215 arg_word: {(/dev/null)} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(local)} {(Lit_VarLike 'nsz=') (sh_array_literal left: <Op_LParen '('> words: [ { (command_sub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [(C {(du)} {(-ks)} {(DQ (${ VSub_Name WORKDIR))})] ) ) } ] ) } ) (C {(local)} {(Lit_VarLike 'isz=') (sh_array_literal left: <Op_LParen '('> words: [ { (command_sub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [(C {(du)} {(-ks)} {(DQ (${ VSub_Name D))})] ) ) } ] ) } ) (command.Subshell command_list: (command.CommandList children: [ (command.ShFunction name: padl body: (command.BraceGroup children: [ (C {(local)} {(Lit_VarLike 's1=') ($ VSub_Number '$1')}) (C {(local)} {(Lit_VarLike 's2=') ($ VSub_Number '$2')}) (C {(local)} {(Lit_VarLike 'width=') (braced_var_sub token: <VSub_Name s1> prefix_op: VSub_Pound ) } ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: BoolBinary_gt left: { (braced_var_sub token: <VSub_Name s2> prefix_op: VSub_Pound ) } right: {(${ VSub_Name width)} ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:width) op: Equal rhs: { (braced_var_sub token: <VSub_Name s2> prefix_op: VSub_Pound ) } ) ] ) ] ) (C {(printf)} {(DQ ('%*s'))} {(${ VSub_Name width)} {(DQ (${ VSub_Name s1))} ) ] ) ) (command.ShFunction name: human body: (command.BraceGroup children: [ (C {(local)} {(Lit_VarLike 's1=') ($ VSub_Number '$1')}) (C {(local)} {(Lit_VarLike 'units=') (sh_array_literal left: <Op_LParen '('> words: [{(KiB)} {(MiB)} {(GiB)} {(TiB)}] ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:s1) op: Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Arith_Star left: (arith_expr.VarRef token: <Lit_ArithVarLike s1> ) right: (arith_expr.ArithWord w:{(Lit_Digits 10)}) ) ) } ) ] ) (command.WhileUntil keyword: <KW_While while> cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Binary op_id: BoolBinary_gt left: {(${ VSub_Name s1)} right: {(10240)} ) right: (bool_expr.Binary op_id: BoolBinary_gt left: { (braced_var_sub token: <VSub_Name units> prefix_op: VSub_Pound bracket_op: (bracket_op.WholeArray op_id: Lit_At ) ) } right: {(1)} ) ) ) terminator: <Op_Semi ';'> ) ] body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:s1) op: Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Arith_Slash left: (arith_expr.VarRef token: <Lit_ArithVarLike s1> ) right: (arith_expr.ArithWord w: {(Lit_Digits 1024)} ) ) ) } ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:units) op: Equal rhs: { (sh_array_literal left: <Op_LParen '('> words: [ { (braced_var_sub token: <VSub_Name units> bracket_op: (bracket_op.WholeArray op_id: Lit_At ) suffix_op: (suffix_op.Slice begin: (arith_expr.ArithWord w: {(Lit_Digits 1)} ) ) ) } ] ) } ) ] ) ] ) ) (C {(local)} {(Lit_VarLike 'r=') (braced_var_sub token: <VSub_Name s1> suffix_op: (suffix_op.Slice begin: (arith_expr.Unary op_id: Node_UnaryMinus child: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:s1) op: Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Arith_Slash left: (arith_expr.VarRef token: <Lit_ArithVarLike s1> ) right: (arith_expr.ArithWord w:{(Lit_Digits 10)}) ) ) } ) ] ) (C {(printf)} {(DQ ('%s.%s %s'))} {(DQ (${ VSub_Name s1))} {(DQ (${ VSub_Name r))} { (DQ (braced_var_sub token: <VSub_Name units> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{(Lit_Digits 0)}) ) ) ) } ) ] ) ) (command.ShFunction name: size body: (command.BraceGroup children: [ (C {(local)} {(Lit_VarLike 's1=') ($ VSub_Number '$1')}) (C {(local)} {(Lit_VarLike 's2=') ($ VSub_Number '$2')}) (C {(local)} {(Lit_VarLike 'out=') (DQ (command_sub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(padl)} {(DQ (${ VSub_Name s1))} {(DQ (${ VSub_Name s2))} ) ] ) ) (' KiB') ) } ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: BoolBinary_gt left: {(${ VSub_Name s1)} right: {(1024)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:s1) op: Equal rhs: { (command_sub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(human)} {(${ VSub_Name s1)}) ] ) ) } ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: BoolBinary_gt left: {(${ VSub_Name s2)} right: {(1024)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:s2) op: Equal rhs: { (command_sub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(human)} {(${ VSub_Name s2)}) ] ) ) } ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:s1) op: Equal rhs: { (command_sub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(padl)} {(DQ (${ VSub_Name s1))} {(DQ (${ VSub_Name s2))} ) ] ) ) } ) ] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:out) op: PlusEqual rhs: {(DQ (' (') (${ VSub_Name s1) (')'))} ) ] ) ] ) ] ) (C {(echo)} {(DQ (${ VSub_Name out))}) ] ) ) (C {(einfo)} { (DQ ('Final size of build directory: ') (command_sub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(size)} { (braced_var_sub token: <VSub_Name nsz> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{(Lit_Digits 0)}) ) ) } { (braced_var_sub token: <VSub_Name isz> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{(Lit_Digits 0)}) ) ) } ) ] ) ) ) } ) (C {(einfo)} { (DQ ('Final size of installed tree: ') (command_sub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(size)} { (braced_var_sub token: <VSub_Name isz> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{(Lit_Digits 0)}) ) ) } { (braced_var_sub token: <VSub_Name nsz> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{(Lit_Digits 0)}) ) ) } ) ] ) ) ) } ) ] ) ) (C {(__vecho)}) ] ) ] ) (C {(cd)} {(DQ (${ VSub_Name PORTAGE_BUILDDIR)) (/build-info)}) (C {(KW_Set set)} {(-f)}) (C {(local)} {(f)} {(x)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:IFS) op: Equal rhs: { (single_quoted left: <Left_SingleQuoteC "$'"> tokens: [ <Char_Literals ' '> <Char_OneChar '\\t'> <Char_OneChar '\\n'> <Char_OneChar '\\r'> ] ) } ) ] ) (command.ForEach iter_name: f iter_words: [ {(CATEGORY)} {(DEFINED_PHASES)} {(FEATURES)} {(INHERITED)} {(IUSE)} {(PF)} {(PKGUSE)} {(SLOT)} {(KEYWORDS)} {(HOMEPAGE)} {(DESCRIPTION)} ] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:x) op: Equal rhs: { (command_sub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(echo)} {(-n)} {(braced_var_sub token:<VSub_Name f> prefix_op:VSub_Bang)} ) ] ) ) } ) ] ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:BoolUnary_n child:{($ VSub_DollarName '$x')}) ) (command.Simple words: [{(echo)} {(DQ ($ VSub_DollarName '$x'))}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_DollarName '$f')} ) ] ) ] ) ] ) ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: BoolBinary_GlobNEqual left: {($ VSub_DollarName '$CATEGORY')} right: {(virtual)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.ForEach iter_name: f iter_words: [ {(ASFLAGS)} {(CBUILD)} {(CC)} {(CFLAGS)} {(CHOST)} {(CTARGET)} {(CXX)} {(CXXFLAGS)} {(EXTRA_ECONF)} {(EXTRA_EINSTALL)} {(EXTRA_MAKE)} {(LDFLAGS)} {(LIBCFLAGS)} {(LIBCXXFLAGS)} {(QA_CONFIGURE_OPTIONS)} {(QA_DESKTOP_FILE)} {(QA_PREBUILT)} {(PROVIDES_EXCLUDE)} {(REQUIRES_EXCLUDE)} ] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:x) op: Equal rhs: { (command_sub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(echo)} {(-n)} { (braced_var_sub token: <VSub_Name f> prefix_op: VSub_Bang ) } ) ] ) ) } ) ] ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: BoolUnary_n child: {($ VSub_DollarName '$x')} ) ) (command.Simple words: [{(echo)} {(DQ ($ VSub_DollarName '$x'))}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_DollarName '$f')} ) ] ) ] ) ] ) ) (command.ForEach iter_name: f iter_words: [{(QA_AM_MAINTAINER_MODE)}] do_arg_iter: F body: (command.DoGroup children: [ (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: BoolUnary_n child: {(braced_var_sub token:<VSub_Name f> prefix_op:VSub_Bang)} ) ) (command.Simple words: [ {(echo)} {(DQ (braced_var_sub token:<VSub_Name f> prefix_op:VSub_Bang))} ] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_DollarName '$f')} ) ] ) ] ) ] ) ) ] ) ] ) (command.Simple words: [{(echo)} {(DQ (${ VSub_Name USE))}] redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(USE)})] ) (command.Simple words: [ {(echo)} { (DQ (braced_var_sub token: <VSub_Name EAPI> suffix_op: (suffix_op.Unary op_id:VTest_ColonHyphen arg_word:{(0)}) ) ) } ] redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(EAPI)})] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DAmp] children: [ (C {(___eapi_has_prefix_variables)}) (command.DBracket expr: (bool_expr.Unary op_id:BoolUnary_n child:{(${ VSub_Name EPREFIX)}) ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (command.Simple words: [{(echo)} {(DQ (${ VSub_Name EPREFIX))}] redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(EPREFIX)})] ) ] ) ] ) (C {(KW_Set set)} {(Lit_Other '+') (f)}) (C {(unset)} {(f)}) (C {(cd)} {(DQ (${ VSub_Name PORTAGE_PYM_PATH))}) (command.Pipeline children: [ (C {(__save_ebuild_env)} {(--exclude-init-phases)}) (command.Simple words: [ {(__filter_readonly_variables)} {(--filter-path)} {(--filter-sandbox)} {(--allow-extra-vars)} ] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ (${ VSub_Name PORTAGE_BUILDDIR)) (/build-info/environment)} ) ] ) ] negated: F ) (C {(assert)} {(DQ ('__save_ebuild_env failed'))}) (command.AndOr ops: [Op_DPipe] children: [(C {(cd)} {(DQ (${ VSub_Name PORTAGE_BUILDDIR)) (/build-info)}) (C {(die)})] ) (C {(${ VSub_Name PORTAGE_BZIP2_COMMAND)} {(-f9)} {(environment)}) (C {(cp)} {(DQ (${ VSub_Name EBUILD))} {(DQ (${ VSub_Name PF) (.ebuild))}) (command.AndOr ops: [Op_DAmp] children: [ (C {(Lit_LBracket '[')} {(-n)} {(DQ (${ VSub_Name PORTAGE_REPO_NAME))} {(Lit_RBracket ']')} ) (command.Simple words: [{(echo)} {(DQ (${ VSub_Name PORTAGE_REPO_NAME))}] redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(repository)})] ) ] ) (command.If arms: [ (if_arm cond: [ (command.AndOr ops: [Op_DPipe] children: [ (C {(has)} {(nostrip)} {(${ VSub_Name FEATURES)} {(${ VSub_Name RESTRICT)}) (C {(has)} {(strip)} {(${ VSub_Name RESTRICT)}) ] ) ] action: [ (command.Simple redirects: [ (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(DEBUGBUILD)} ) ] ) ] ) ] ) (C {(trap)} {(-)} {(SIGINT)} {(SIGQUIT)}) ] ) ) (command.ShFunction name: __dyn_help body: (command.BraceGroup children: [ (C {(echo)}) (C {(echo)} {(DQ (Portage))}) (C {(echo)} {(DQ ('Copyright 1999-2010 Gentoo Foundation'))}) (C {(echo)}) (C {(echo)} {(DQ ('How to use the ebuild command:'))}) (C {(echo)}) (C {(echo)} {(DQ ('The first argument to ebuild should be an existing .ebuild file.'))}) (C {(echo)}) (C {(echo)} {(DQ ('One or more of the following options can then be specified. If more'))}) (C {(echo)} {(DQ ('than one option is specified, each will be executed in order.'))}) (C {(echo)}) (C {(echo)} {(DQ (' help : show this help screen'))}) (C {(echo)} {(DQ (' pretend : execute package specific pretend actions'))}) (C {(echo)} {(DQ (' setup : execute package specific setup actions'))}) (C {(echo)} {(DQ (' fetch : download source archive(s) and patches'))}) (C {(echo)} {(DQ (' nofetch : display special fetch instructions'))}) (C {(echo)} {(DQ (' digest : create a manifest file for the package'))}) (C {(echo)} {(DQ (' manifest : create a manifest file for the package'))}) (C {(echo)} {(DQ (' unpack : unpack sources (auto-dependencies if needed)'))}) (C {(echo)} {(DQ (' prepare : prepare sources (auto-dependencies if needed)'))}) (C {(echo)} {(DQ (' configure : configure sources (auto-fetch/unpack if needed)'))}) (C {(echo)} {(DQ (' compile : compile sources (auto-fetch/unpack/configure if needed)'))} ) (C {(echo)} {(DQ (' test : test package (auto-fetch/unpack/configure/compile if needed)'))} ) (C {(echo)} {(DQ (' preinst : execute pre-install instructions'))}) (C {(echo)} {(DQ (' postinst : execute post-install instructions'))}) (C {(echo)} {(DQ (' install : install the package to the temporary install directory'))} ) (C {(echo)} {(DQ (' qmerge : merge image into live filesystem, recording files in db'))} ) (C {(echo)} {(DQ (' merge : do fetch, unpack, compile, install and qmerge'))}) (C {(echo)} {(DQ (' prerm : execute pre-removal instructions'))}) (C {(echo)} {(DQ (' postrm : execute post-removal instructions'))}) (C {(echo)} {(DQ (' unmerge : remove package from live filesystem'))}) (C {(echo)} {(DQ (' config : execute package specific configuration actions'))}) (C {(echo)} {(DQ (' package : create a tarball package in ') (${ VSub_Name PKGDIR) (/All))} ) (C {(echo)} {(DQ (' rpm : build a RedHat RPM package'))}) (C {(echo)} {(DQ (' clean : clean up all source and temporary files'))}) (C {(echo)}) (C {(echo)} {(DQ ('The following settings will be used for the ebuild process:'))}) (C {(echo)}) (C {(echo)} {(DQ (' package : ') (${ VSub_Name PF))}) (C {(echo)} {(DQ (' slot : ') (${ VSub_Name SLOT))}) (C {(echo)} {(DQ (' category : ') (${ VSub_Name CATEGORY))}) (C {(echo)} {(DQ (' description : ') (${ VSub_Name DESCRIPTION))}) (C {(echo)} {(DQ (' system : ') (${ VSub_Name CHOST))}) (C {(echo)} {(DQ (' c flags : ') (${ VSub_Name CFLAGS))}) (C {(echo)} {(DQ (' c++ flags : ') (${ VSub_Name CXXFLAGS))}) (C {(echo)} {(DQ (' make flags : ') (${ VSub_Name MAKEOPTS))}) (C {(echo)} {(-n)} {(DQ (' build mode : '))}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DPipe] children: [ (C {(has)} {(nostrip)} {(${ VSub_Name FEATURES)} {(${ VSub_Name RESTRICT)}) (C {(has)} {(strip)} {(${ VSub_Name RESTRICT)}) ] ) terminator: <Op_Semi ';'> ) ] action: [(C {(echo)} {(DQ ('debug (large)'))})] ) ] else_action: [(C {(echo)} {(DQ ('production (stripped)'))})] ) (C {(echo)} {(DQ (' merge to : ') (${ VSub_Name ROOT))}) (C {(echo)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_LBracket '[')} {(-n)} {(DQ ($ VSub_DollarName '$USE'))} {(Lit_RBracket ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} { (DQ ( 'Additionally, support for the following optional features will be enabled:' ) ) } ) (C {(echo)}) (C {(echo)} {(DQ (' ') (${ VSub_Name USE))}) ] ) ] ) (C {(echo)}) ] ) ) (command.ShFunction name: __ebuild_arg_to_phase body: (command.BraceGroup children: [ (command.AndOr ops: [Op_DAmp] children: [ (C {(Lit_LBracket '[')} {($ VSub_Pound '$#')} {(-ne)} {(1)} {(Lit_RBracket ']')}) (C {(die)} { (DQ ('expected exactly 1 arg, got ') ($ VSub_Pound '$#') (': ') ($ VSub_Star '$*')) } ) ] ) (C {(local)} {(Lit_VarLike 'arg=') ($ VSub_Number '$1')}) (C {(local)} {(Lit_VarLike 'phase_func=') (DQ )}) (command.Case to_match: {(DQ ($ VSub_DollarName '$arg'))} arms: [ (case_arm pat_list: [{(pretend)}] action: [ (command.AndOr ops: [Op_DAmp] children: [ (C {(___eapi_has_pkg_pretend)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:phase_func) op: Equal rhs: {(pkg_pretend)} ) ] ) ] ) ] ) (case_arm pat_list: [{(setup)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:phase_func) op: Equal rhs: {(pkg_setup)} ) ] ) ] ) (case_arm pat_list: [{(nofetch)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:phase_func) op: Equal rhs: {(pkg_nofetch)} ) ] ) ] ) (case_arm pat_list: [{(unpack)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:phase_func) op: Equal rhs: {(src_unpack)} ) ] ) ] ) (case_arm pat_list: [{(prepare)}] action: [ (command.AndOr ops: [Op_DAmp] children: [ (C {(___eapi_has_src_prepare)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:phase_func) op: Equal rhs: {(src_prepare)} ) ] ) ] ) ] ) (case_arm pat_list: [{(configure)}] action: [ (command.AndOr ops: [Op_DAmp] children: [ (C {(___eapi_has_src_configure)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:phase_func) op: Equal rhs: {(src_configure)} ) ] ) ] ) ] ) (case_arm pat_list: [{(compile)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:phase_func) op: Equal rhs: {(src_compile)} ) ] ) ] ) (case_arm pat_list: [{(test)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:phase_func) op: Equal rhs: {(src_test)} ) ] ) ] ) (case_arm pat_list: [{(install)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:phase_func) op: Equal rhs: {(src_install)} ) ] ) ] ) (case_arm pat_list: [{(preinst)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:phase_func) op: Equal rhs: {(pkg_preinst)} ) ] ) ] ) (case_arm pat_list: [{(postinst)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:phase_func) op: Equal rhs: {(pkg_postinst)} ) ] ) ] ) (case_arm pat_list: [{(prerm)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:phase_func) op: Equal rhs: {(pkg_prerm)} ) ] ) ] ) (case_arm pat_list: [{(postrm)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:phase_func) op: Equal rhs: {(pkg_postrm)} ) ] ) ] ) ] ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:BoolUnary_z child:{($ VSub_DollarName '$phase_func')}) ) (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (C {(echo)} {(DQ ($ VSub_DollarName '$phase_func'))}) (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] ) ) (command.ShFunction name: __ebuild_phase_funcs body: (command.BraceGroup children: [ (command.AndOr ops: [Op_DAmp] children: [ (C {(Lit_LBracket '[')} {($ VSub_Pound '$#')} {(-ne)} {(2)} {(Lit_RBracket ']')}) (C {(die)} { (DQ ('expected exactly 2 args, got ') ($ VSub_Pound '$#') (': ') ($ VSub_Star '$*')) } ) ] ) (C {(local)} {(Lit_VarLike 'eapi=') ($ VSub_Number '$1')}) (C {(local)} {(Lit_VarLike 'phase_func=') ($ VSub_Number '$2')}) (C {(local)} {(Lit_VarLike 'all_phases=') (DQ ('src_compile pkg_config src_configure pkg_info\n') ('\t\tsrc_install pkg_nofetch pkg_postinst pkg_postrm pkg_preinst\n') ('\t\tsrc_prepare pkg_prerm pkg_pretend pkg_setup src_test src_unpack') ) } ) (C {(local)} {(x)}) (command.ForEach iter_name: x iter_words: [{(${ VSub_Name all_phases)}] do_arg_iter: F body: (command.DoGroup children: [ (C {(eval)} { (DQ (default_) (${ VSub_Name x) ('() {\n') ('\t\t\tdie ') (word_part.EscapedLiteral token: <Lit_EscapedChar '\\"'> ) (default_) (${ VSub_Name x) ("() is not supported in EAPI='") (${ VSub_Name eapi) ("' in phase ") (${ VSub_Name phase_func) (word_part.EscapedLiteral token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\t}') ) } ) ] ) ) (C {(eval)} {(DQ ('default() {\n') ('\t\tdefault_') (${ VSub_Name phase_func) ('\n') ('\t}'))} ) (command.Case to_match: {(DQ ($ VSub_DollarName '$eapi'))} arms: [ (case_arm pat_list: [{(0)} {(1)}] action: [ (command.ForEach iter_name: x iter_words: [{(pkg_nofetch)} {(src_unpack)} {(src_test)}] do_arg_iter: F body: (command.DoGroup children: [ (command.AndOr ops: [Op_DPipe] children: [ (command.Simple words: [{(declare)} {(-F)} {($ VSub_DollarName '$x')}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(/dev/null)} ) ] ) (C {(eval)} { (DQ ($ VSub_DollarName '$x') ('() { __eapi0_') ($ VSub_DollarName '$x') ('; }') ) } ) ] ) ] ) ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (command.Simple words: [{(declare)} {(-F)} {(src_compile)}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(/dev/null)} ) ] ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (command.Case to_match: {(DQ ($ VSub_DollarName '$eapi'))} arms: [ (case_arm pat_list: [{(0)}] action: [ (command.ShFunction name: src_compile body: (command.BraceGroup children: [ (command.Sentence child: (C {(__eapi0_src_compile)}) terminator: <Op_Semi ';'> ) ] ) ) ] ) (case_arm pat_list: [{(Lit_Star '*')}] action: [ (command.ShFunction name: src_compile body: (command.BraceGroup children: [ (command.Sentence child: (C {(__eapi1_src_compile)}) terminator: <Op_Semi ';'> ) ] ) ) ] ) ] ) ] ) ] ) ] ) (case_arm pat_list: [{(Lit_Star '*')}] action: [ (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: BoolBinary_GlobDEqual left: {(${ VSub_Name phase_func)} right: {(pkg_nofetch)} ) ) (command.ShFunction name: default_pkg_nofetch body: (command.BraceGroup children: [ (command.Sentence child: (C {(__eapi0_pkg_nofetch)}) terminator: <Op_Semi ';'> ) ] ) ) ] ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: BoolBinary_GlobDEqual left: {(${ VSub_Name phase_func)} right: {(src_unpack)} ) ) (command.ShFunction name: default_src_unpack body: (command.BraceGroup children: [ (command.Sentence child: (C {(__eapi0_src_unpack)}) terminator: <Op_Semi ';'> ) ] ) ) ] ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: BoolBinary_GlobDEqual left: {(${ VSub_Name phase_func)} right: {(src_test)} ) ) (command.ShFunction name: default_src_test body: (command.BraceGroup children: [ (command.Sentence child: (C {(__eapi0_src_test)}) terminator: <Op_Semi ';'> ) ] ) ) ] ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: BoolBinary_GlobDEqual left: {(${ VSub_Name phase_func)} right: {(src_prepare)} ) ) (command.ShFunction name: default_src_prepare body: (command.BraceGroup children: [ (command.Sentence child: (C {(__eapi2_src_prepare)}) terminator: <Op_Semi ';'> ) ] ) ) ] ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: BoolBinary_GlobDEqual left: {(${ VSub_Name phase_func)} right: {(src_configure)} ) ) (command.ShFunction name: default_src_configure body: (command.BraceGroup children: [ (command.Sentence child: (C {(__eapi2_src_configure)}) terminator: <Op_Semi ';'> ) ] ) ) ] ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: BoolBinary_GlobDEqual left: {(${ VSub_Name phase_func)} right: {(src_compile)} ) ) (command.ShFunction name: default_src_compile body: (command.BraceGroup children: [ (command.Sentence child: (C {(__eapi2_src_compile)}) terminator: <Op_Semi ';'> ) ] ) ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (command.Simple words: [{(declare)} {(-F)} {(pkg_nofetch)}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(/dev/null)} ) ] ) (command.ShFunction name: pkg_nofetch body: (command.BraceGroup children: [ (command.Sentence child: (C {(default)}) terminator: <Op_Semi ';'> ) ] ) ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (command.Simple words: [{(declare)} {(-F)} {(src_unpack)}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(/dev/null)} ) ] ) (command.ShFunction name: src_unpack body: (command.BraceGroup children: [ (command.Sentence child: (C {(default)}) terminator: <Op_Semi ';'> ) ] ) ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (command.Simple words: [{(declare)} {(-F)} {(src_prepare)}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(/dev/null)} ) ] ) (command.ShFunction name: src_prepare body: (command.BraceGroup children: [ (command.Sentence child: (C {(default)}) terminator: <Op_Semi ';'> ) ] ) ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (command.Simple words: [{(declare)} {(-F)} {(src_configure)}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(/dev/null)} ) ] ) (command.ShFunction name: src_configure body: (command.BraceGroup children: [ (command.Sentence child: (C {(default)}) terminator: <Op_Semi ';'> ) ] ) ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (command.Simple words: [{(declare)} {(-F)} {(src_compile)}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(/dev/null)} ) ] ) (command.ShFunction name: src_compile body: (command.BraceGroup children: [ (command.Sentence child: (C {(default)}) terminator: <Op_Semi ';'> ) ] ) ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (command.Simple words: [{(declare)} {(-F)} {(src_test)}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(/dev/null)} ) ] ) (command.ShFunction name: src_test body: (command.BraceGroup children: [ (command.Sentence child: (C {(default)}) terminator: <Op_Semi ';'> ) ] ) ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [(C {(has)} {(${ VSub_Name eapi)} {(2)} {(3)})] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: BoolBinary_GlobDEqual left: {(${ VSub_Name phase_func)} right: {(src_install)} ) ) (command.ShFunction name: default_src_install body: (command.BraceGroup children: [ (command.Sentence child: (C {(__eapi4_src_install)}) terminator: <Op_Semi ';'> ) ] ) ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (command.Simple words: [{(declare)} {(-F)} {(src_install)}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(/dev/null)} ) ] ) (command.ShFunction name: src_install body: (command.BraceGroup children: [ (command.Sentence child: (C {(default)}) terminator: <Op_Semi ';'> ) ] ) ) ] ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (C {(has)} {(${ VSub_Name eapi)} {(2)} {(3)} {(4)} {(4-python)} {(4-slot-abi)} {(5)} {(5-progress)} {(5-hdepend)} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: BoolBinary_GlobDEqual left: {(${ VSub_Name phase_func)} right: {(src_prepare)} ) ) (command.ShFunction name: default_src_prepare body: (command.BraceGroup children: [ (command.Sentence child: (C {(__eapi6_src_prepare)}) terminator: <Op_Semi ';'> ) ] ) ) ] ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: BoolBinary_GlobDEqual left: {(${ VSub_Name phase_func)} right: {(src_install)} ) ) (command.ShFunction name: default_src_install body: (command.BraceGroup children: [ (command.Sentence child: (C {(__eapi6_src_install)}) terminator: <Op_Semi ';'> ) ] ) ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (command.Simple words: [{(declare)} {(-F)} {(src_prepare)}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(/dev/null)} ) ] ) (command.ShFunction name: src_prepare body: (command.BraceGroup children: [ (command.Sentence child: (C {(default)}) terminator: <Op_Semi ';'> ) ] ) ) ] ) ] ) ] ) ] ) ] ) ] ) ) (command.ShFunction name: __ebuild_main body: (command.BraceGroup children: [ (C {(export)} {(Lit_VarLike 'EBUILD_MASTER_PID=') (braced_var_sub token: <VSub_Name BASHPID> suffix_op: (suffix_op.Unary op_id: VTest_ColonHyphen arg_word: { (command_sub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children:[(C {(__bashpid)})]) ) } ) ) } ) (C {(trap)} {(SQ <'exit 1'>)} {(SIGTERM)}) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:BoolUnary_z child:{(${ VSub_Name S)}) ) (C {(export)} {(Lit_VarLike 'S=') (${ VSub_Name WORKDIR) (/) (${ VSub_Name P)}) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: BoolUnary_s child: {($ VSub_DollarName '$SANDBOX_LOG')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(local)} {(Lit_VarLike 'x=')}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id:BoolUnary_n child:{(SANDBOX_ON)}) ) terminator: <Op_Semi ';'> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:x) op: Equal rhs: {($ VSub_DollarName '$SANDBOX_ON')} ) ] ) (C {(export)} {(Lit_VarLike 'SANDBOX_ON=') (0)}) ] ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(rm)} {(-f)} {(DQ ($ VSub_DollarName '$SANDBOX_LOG'))}) (C {(die)} { (DQ ("failed to remove stale sandbox log: '") ($ VSub_DollarName '$SANDBOX_LOG') ("'") ) } ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: BoolUnary_n child: {($ VSub_DollarName '$x')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(export)} {(Lit_VarLike 'SANDBOX_ON=') ($ VSub_DollarName '$x')}) ] ) ] ) (C {(unset)} {(x)}) ] ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(has)} {(ccache)} {($ VSub_DollarName '$FEATURES')}) (C {(export)} {(Lit_VarLike 'CCACHE_DISABLE=') (1)}) ] ) (C {(local)} {(Lit_VarLike 'phase_func=') (command_sub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(__ebuild_arg_to_phase)} {(DQ ($ VSub_DollarName '$EBUILD_PHASE'))}) ] ) ) } ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:BoolUnary_n child:{($ VSub_DollarName '$phase_func')}) ) (C {(__ebuild_phase_funcs)} {(DQ ($ VSub_DollarName '$EAPI'))} {(DQ ($ VSub_DollarName '$phase_func'))} ) ] ) (C {(unset)} {(phase_func)}) (C {(__source_all_bashrcs)}) (command.Case to_match: {(${ VSub_Number 1)} arms: [ (case_arm pat_list: [{(nofetch)}] action: [(C {(__ebuild_phase_with_hooks)} {(pkg_nofetch)})] ) (case_arm pat_list: [{(prerm)} {(postrm)} {(preinst)} {(postinst)} {(config)} {(info)}] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DAmp] children: [ (C {(has)} {(DQ (${ VSub_Number 1))} {(config)} {(info)}) (command.Pipeline children: [ (command.Simple words: [{(declare)} {(-F)} {(DQ (pkg_) (${ VSub_Number 1))}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(/dev/null)} ) ] ) ] negated: T ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(ewarn)} { (DQ (pkg_) (${ VSub_Number 1) ("() is not defined: '") (braced_var_sub token: <VSub_Name EBUILD> suffix_op: (suffix_op.Unary op_id: VOp1_DPound arg_word: {('*') (Lit_Slash /)} ) ) ("'") ) } ) ] ) ] ) (C {(export)} {(Lit_VarLike 'SANDBOX_ON=') (DQ (0))}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DPipe] children: [ (C {(Lit_LBracket '[')} {(DQ (${ VSub_Name PORTAGE_DEBUG))} {(KW_Bang '!') (Lit_Equals '=')} {(DQ (1))} {(Lit_RBracket ']')} ) (C {(Lit_LBracket '[')} { (DQ (braced_var_sub token: <VSub_Hyphen -> suffix_op: (suffix_op.PatSub pat: {(x)} replace: (word.Empty) replace_mode: Undefined_Tok ) ) ) } {(KW_Bang '!') (Lit_Equals '=')} {(DQ ($ VSub_Hyphen '$-'))} {(Lit_RBracket ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [(C {(__ebuild_phase_with_hooks)} {(pkg_) (${ VSub_Number 1)})] ) ] else_action: [ (C {(KW_Set set)} {(-x)}) (C {(__ebuild_phase_with_hooks)} {(pkg_) (${ VSub_Number 1)}) (C {(KW_Set set)} {(Lit_Other '+') (x)}) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: BoolUnary_n child: {($ VSub_DollarName '$PORTAGE_UPDATE_ENV')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(cd)} {(DQ (${ VSub_Name PORTAGE_PYM_PATH))}) (command.Pipeline children: [ (C {(__save_ebuild_env)} {(--exclude-init-phases)}) (C {(__filter_readonly_variables)} {(--filter-path)} {(--filter-sandbox)} {(--allow-extra-vars)} ) (command.Simple words: [{(${ VSub_Name PORTAGE_BZIP2_COMMAND)} {(-c)} {(-f9)}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$PORTAGE_UPDATE_ENV'))} ) ] ) ] negated: F ) (C {(assert)} {(DQ ('__save_ebuild_env failed'))}) ] ) ] ) ] ) (case_arm pat_list: [{(unpack)} {(prepare)} {(configure)} {(compile)} {(test)} {(clean)} {(install)}] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: BoolBinary_GlobEqual left: { (braced_var_sub token: <VSub_Name SANDBOX_DISABLED> suffix_op: (suffix_op.Unary op_id: VTest_ColonHyphen arg_word: {(0)} ) ) } right: {(0)} ) ) terminator: <Op_Semi ';'> ) ] action: [(C {(export)} {(Lit_VarLike 'SANDBOX_ON=') (DQ (1))})] ) ] else_action: [(C {(export)} {(Lit_VarLike 'SANDBOX_ON=') (DQ (0))})] ) (command.Case to_match: {(DQ (${ VSub_Number 1))} arms: [ (case_arm pat_list: [{(configure)} {(compile)}] action: [ (C {(local)} {(x)}) (command.ForEach iter_name: x iter_words: [ {(ASFLAGS)} {(CCACHE_DIR)} {(CCACHE_SIZE)} {(CFLAGS)} {(CXXFLAGS)} {(LDFLAGS)} {(LIBCFLAGS)} {(LIBCXXFLAGS)} ] do_arg_iter: F body: (command.DoGroup children: [ (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: BoolBinary_GlobEqual left: { (braced_var_sub token: <VSub_Name x> prefix_op: VSub_Bang suffix_op: (suffix_op.Unary op_id: VTest_Plus arg_word: {(set)} ) ) } right: {(set)} ) ) (C {(export)} {($ VSub_DollarName '$x')}) ] ) ] ) ) (C {(unset)} {(x)}) (command.AndOr ops: [Op_DAmp Op_DAmp Op_DAmp] children: [ (C {(has)} {(distcc)} {($ VSub_DollarName '$FEATURES')}) (command.DBracket expr: (bool_expr.Unary op_id: BoolUnary_n child: {($ VSub_DollarName '$DISTCC_DIR')} ) ) (command.DBracket expr: (bool_expr.Binary op_id: BoolBinary_GlobEqual left: { (braced_var_sub token: <VSub_Name SANDBOX_WRITE> suffix_op: (suffix_op.PatSub pat: {($ VSub_DollarName '$DISTCC_DIR')} replace_mode: Undefined_Tok ) ) } right: {($ VSub_DollarName '$SANDBOX_WRITE')} ) ) (C {(addwrite)} {(DQ ($ VSub_DollarName '$DISTCC_DIR'))}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:x) op: Equal rhs: {(LIBDIR_) ($ VSub_DollarName '$ABI')} ) ] ) (command.AndOr ops: [Op_DAmp] children: [ (C {(Lit_LBracket '[')} {(-z)} {(DQ ($ VSub_DollarName '$PKG_CONFIG_PATH'))} {(-a)} {(-n)} {(DQ ($ VSub_DollarName '$ABI'))} {(-a)} {(-n)} {(DQ (braced_var_sub token:<VSub_Name x> prefix_op:VSub_Bang))} {(Lit_RBracket ']')} ) (C {(export)} {(Lit_VarLike 'PKG_CONFIG_PATH=') (${ VSub_Name EPREFIX) (/usr/) (braced_var_sub token: <VSub_Name x> prefix_op: VSub_Bang ) (/pkgconfig) } ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DAmp] children: [ (C {(has)} {(noauto)} {($ VSub_DollarName '$FEATURES')}) (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: BoolUnary_f child: {($ VSub_DollarName '$PORTAGE_BUILDDIR') (/.unpacked) } ) ) ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)}) (C {(echo)} {(DQ ("!!! We apparently haven't unpacked..."))} {(DQ ('This is probably not what you'))} ) (C {(echo)} {(DQ ('!!! want to be doing... You are using'))} {(DQ ("FEATURES=noauto so I'll assume"))} ) (C {(echo)} {(DQ ('!!! that you know what you are doing...'))} {(DQ ('You have 5 seconds to abort...'))} ) (C {(echo)}) (C {(sleep)} {(5)}) ] ) ] ) (C {(cd)} {(DQ ($ VSub_DollarName '$PORTAGE_BUILDDIR'))}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_LBracket '[')} {(KW_Bang '!')} {(-d)} {(build-info)} {(Lit_RBracket ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(mkdir)} {(build-info)}) (C {(cp)} {(DQ ($ VSub_DollarName '$EBUILD'))} {(DQ (build-info/) ($ VSub_DollarName '$PF') (.ebuild))} ) ] ) ] ) (C {(export)} {(S)} {(D)}) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DPipe] children: [ (C {(Lit_LBracket '[')} {(DQ (${ VSub_Name PORTAGE_DEBUG))} {(KW_Bang '!') (Lit_Equals '=')} {(DQ (1))} {(Lit_RBracket ']')} ) (C {(Lit_LBracket '[')} { (DQ (braced_var_sub token: <VSub_Hyphen -> suffix_op: (suffix_op.PatSub pat: {(x)} replace: (word.Empty) replace_mode: Undefined_Tok ) ) ) } {(KW_Bang '!') (Lit_Equals '=')} {(DQ ($ VSub_Hyphen '$-'))} {(Lit_RBracket ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [(C {(__dyn_) (${ VSub_Number 1)})] ) ] else_action: [ (C {(KW_Set set)} {(-x)}) (C {(__dyn_) (${ VSub_Number 1)}) (C {(KW_Set set)} {(Lit_Other '+') (x)}) ] ) (C {(export)} {(Lit_VarLike 'SANDBOX_ON=') (DQ (0))}) ] ) (case_arm pat_list: [{(help)} {(pretend)} {(setup)}] action: [ (C {(export)} {(Lit_VarLike 'SANDBOX_ON=') (DQ (0))}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DPipe] children: [ (C {(Lit_LBracket '[')} {(DQ (${ VSub_Name PORTAGE_DEBUG))} {(KW_Bang '!') (Lit_Equals '=')} {(DQ (1))} {(Lit_RBracket ']')} ) (C {(Lit_LBracket '[')} { (DQ (braced_var_sub token: <VSub_Hyphen -> suffix_op: (suffix_op.PatSub pat: {(x)} replace: (word.Empty) replace_mode: Undefined_Tok ) ) ) } {(KW_Bang '!') (Lit_Equals '=')} {(DQ ($ VSub_Hyphen '$-'))} {(Lit_RBracket ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [(C {(__dyn_) (${ VSub_Number 1)})] ) ] else_action: [ (C {(KW_Set set)} {(-x)}) (C {(__dyn_) (${ VSub_Number 1)}) (C {(KW_Set set)} {(Lit_Other '+') (x)}) ] ) ] ) (case_arm pat_list:[{(_internal_test)}]) (case_arm pat_list: [{(Lit_Star '*')}] action: [ (C {(export)} {(Lit_VarLike 'SANDBOX_ON=') (DQ (1))}) (C {(echo)} {(DQ ("Unrecognized arg '") (${ VSub_Number 1) ("'"))}) (C {(echo)}) (C {(__dyn_help)}) (command.ControlFlow token: <ControlFlow_Exit exit> arg_word: {(1)} ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (C {(has)} {(DQ (${ VSub_Number 1))} {(clean)} {(help)} {(info)} {(nofetch)}) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(umask)} {(002)}) (C {(cd)} {(DQ (${ VSub_Name PORTAGE_PYM_PATH))}) (command.Pipeline children: [ (C {(__save_ebuild_env)}) (command.Simple words: [{(__filter_readonly_variables)} {(--filter-features)}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$T') (/environment))} ) ] ) ] negated: F ) (C {(assert)} {(DQ ('__save_ebuild_env failed'))}) (C {(chgrp)} { (DQ (braced_var_sub token: <VSub_Name PORTAGE_GRPNAME> suffix_op: (suffix_op.Unary op_id:VTest_ColonHyphen arg_word:{(portage)}) ) ) } {(DQ ($ VSub_DollarName '$T') (/environment))} ) (C {(chmod)} {(g) (Lit_Other '+') (w)} {(DQ ($ VSub_DollarName '$T') (/environment))}) ] ) ] ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: BoolUnary_n child: {($ VSub_DollarName '$PORTAGE_EBUILD_EXIT_FILE')} ) ) (command.Simple redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$PORTAGE_EBUILD_EXIT_FILE'))} ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: BoolUnary_n child: {($ VSub_DollarName '$PORTAGE_IPC_DAEMON')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: BoolUnary_s child: {($ VSub_DollarName '$SANDBOX_LOG')} ) ) ) (C {(DQ ($ VSub_DollarName '$PORTAGE_BIN_PATH')) (/ebuild-ipc)} {(ControlFlow_Exit exit)} {($ VSub_QMark '$?')} ) ] ) ] ) ] ) ) ] )