(command.CommandList children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<.>} {<./build.conf>}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) (C {<.>} {<./funcs.sh>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CWD) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> command_list: (command.CommandList children:[(C {<pwd>})]) ) } spids: [28] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Pipeline children: [(C {<wget>} {<--help>}) (C {<grep>} {<-q>} {(SQ <'\\-\\-show\\-progress'>)})] negated: F ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WGET_SHOW_PROGRESS) op: assign_op.Equal rhs: {(SQ <'-q --show-progress'>)} spids: [51] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WGET_OPT) op: assign_op.Equal rhs: {(SQ <'--no-check-certificate '>) (${ Id.VSub_Name WGET_SHOW_PROGRESS)} spids: [56] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MWD) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children:[(C {<pwd>})]) ) } spids: [65] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BUILD_LOG) op: assign_op.Equal rhs: {(${ Id.VSub_Name MWD) </build.log>} spids: [70] ) ] ) (command.ShFunction name: log_msg body: (command.BraceGroup children: [ (command.Sentence child: (C {<echo>} {<-e>} {(DQ ($ Id.VSub_At '$@'))}) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.Simple words: [{<echo>} {<-e>} {(DQ ($ Id.VSub_At '$@'))}] redirects: [ (redir.Redir op: <Id.Redir_DGreat '>>'> fd: -1 arg_word: {(${ Id.VSub_Name BUILD_LOG)} ) ] ) terminator: <Id.Op_Semi _> ) ] ) ) (command.ShFunction name: exit_error body: (command.BraceGroup children: [ (command.Sentence child: (C {<log_msg>} {(DQ ($ Id.VSub_At '$@'))}) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) terminator: <Id.Op_Semi _> ) ] ) ) (command.ForEach iter_name: i iter_words: [{($ Id.VSub_At '$@')}] do_arg_iter: F body: (command.DoGroup children: [ (command.Case to_match: {($ Id.VSub_DollarName '$i')} arms: [ (case_arm pat_list: [{<clean>}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DO_CLEAN) op: assign_op.Equal rhs: {<1>} spids: [157] ) ] ) terminator: <Id.Op_Semi _> ) (command.ControlFlow token:<Id.ControlFlow_Break break>) ] spids: [154 155 164 -1] ) (case_arm pat_list: [{<auto>}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:AUTO) op: assign_op.Equal rhs: {<yes>} spids: [170] ) ] ) terminator: <Id.Op_Semi _> ) (C {<shift>}) ] spids: [167 168 177 -1] ) (case_arm pat_list: [{<nopae>}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:x86_disable_pae) op: assign_op.Equal rhs: {<yes>} spids: [183] ) ] ) terminator: <Id.Op_Semi _> ) (C {<shift>}) ] spids: [180 181 190 -1] ) (case_arm pat_list: [{<pae>}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:x86_enable_pae) op: assign_op.Equal rhs: {<yes>} spids: [199] ) ] ) terminator: <Id.Op_Semi _> ) (C {<shift>}) ] spids: [196 197 206 -1] ) (case_arm pat_list: [{<i486>}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:x86_set_i486) op: assign_op.Equal rhs: {<yes>} spids: [215] ) ] ) terminator: <Id.Op_Semi _> ) (C {<shift>}) ] spids: [212 213 222 -1] ) (case_arm pat_list: [{<i686>}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:x86_set_i686) op: assign_op.Equal rhs: {<yes>} spids: [231] ) ] ) terminator: <Id.Op_Semi _> ) (C {<shift>}) ] spids: [228 229 238 -1] ) ] ) ] ) ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$DO_CLEAN')} {<Id.Lit_RBracket ']'>}) terminator: <Id.Op_Semi _> ) ] action: [ (C {<echo>} {(DQ <'Please wait...'>)}) (C {<rm>} {<-rf>} (word.BracedTree parts: [ <./> (word_part.BracedTuple words: [ {<aufs> <Id.Lit_Star '*'>} {<kernel> <Id.Lit_Star '*'>} {<build.log> <Id.Lit_Star '*'>} {<linux-> <Id.Lit_Star '*'>} ] ) ] ) ) (C {<echo>} {(DQ <'Cleaning complete'>)}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] spids: [249 259] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-f>} {<build.log>} {<Id.Lit_RBracket ']'>}) (C {<rm>} {<-f>} {<build.log>}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-f>} {<build.log.tar.bz2>} {<Id.Lit_RBracket ']'>}) (C {<mv>} {<-f>} {<build.log.> (${ Id.VSub_Name today) <.tar.bz2>}) ] ) (command.ForEach iter_name: app iter_words: [{<git>} {<gcc>} {<make>}] do_arg_iter: F body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{($ Id.VSub_DollarName '$app')} {<--version>}] redirects: [(redir.Redir op:<Id.Redir_AndGreat '&>'> fd:-1 arg_word:{</dev/null>})] ) (C {<exit_error>} {(DQ <Id.Lit_Other '\\'> <'033[1;31m'>) (DQ ($ Id.VSub_DollarName '$app') <' is not installed'>) (DQ <Id.Lit_Other '\\'> <'033[0m'>) } ) ] ) ] ) ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{<which>} {<mksquashfs>}] redirects: [(redir.Redir op:<Id.Redir_AndGreat '&>'> fd:-1 arg_word:{</dev/null>})] ) (C {<exit_error>} {(DQ <Id.Lit_Other '\\'> <'033[1;30m'>) (DQ <'mksquashfs is not installed'>) (DQ <Id.Lit_Other '\\'> <'033[0m'>) } ) ] ) (C {<log_ver>}) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{<which>} {<cc>}] redirects: [(redir.Redir op:<Id.Redir_AndGreat '&>'> fd:-1 arg_word:{</dev/null>})] ) (C {<ln>} {<-sv>} { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children:[(C {<which>} {<gcc>})]) ) } {</usr/bin/cc>} ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$AUTO'))} {<Id.Lit_Equals '='>} {(DQ <yes>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {(DQ ($ Id.VSub_DollarName '$DOTconfig_file'))} {<Id.Lit_RBracket ']'>} ) (C {<exit_error>} {(DQ <'Must specify DOTconfig_file=<file> in build.conf'>)}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {(DQ ($ Id.VSub_DollarName '$FW_PKG_URL'))} {<Id.Lit_RBracket ']'>} ) (C {<exit_error>} {(DQ <'Must specify FW_PKG_URL=<url> in build.conf'>)}) ] ) ] spids: [439 457] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {(DQ ($ Id.VSub_DollarName '$JOBS'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:JOBS) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {<grep>} {(DQ <'^processor'>)} {</proc/cpuinfo>}) (C {<wc>} {<-l>}) ] negated: F ) ] ) ) } spids: [520] ) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$JOBS')} {<-ge>} {<1>} {<Id.Lit_RBracket ']'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:JOBS) op: assign_op.Equal rhs: {(DQ <-j> (${ Id.VSub_Name JOBS))} spids: [550] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:JOBS) op: assign_op.Equal rhs: {(DQ )} spids: [560] ) ] ) ] ) ] spids: [503 517] ) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$JOBS'))} {<Id.Lit_RBracket ']'>}) (C {<log_msg>} { (DQ <'Jobs for make: '> (braced_var_sub token: <Id.VSub_Name JOBS> suffix_op: (suffix_op.Unary op_id:Id.VOp1_Pound arg_word:{<-j>}) ) ) } ) (C {<echo>}) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$DOTconfig_file'))} {<-a>} {<Id.KW_Bang '!'>} {<-f>} {(DQ ($ Id.VSub_DollarName '$DOTconfig_file'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<exit_error>} { (DQ <'File not found: '> ($ Id.VSub_DollarName '$DOTconfig_file') <' (see build.conf - DOTconfig_file=)'> ) } ) ] spids: [596 618] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {(DQ ($ Id.VSub_DollarName '$DOTconfig_file'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CONFIGS_DIR) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name DOTconfig_file> suffix_op: (suffix_op.Unary op_id: Id.VOp1_Percent arg_word: {<Id.Lit_Slash /> <'*'>} ) ) } spids: [649] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:Choice) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name DOTconfig_file> suffix_op: (suffix_op.Unary op_id: Id.VOp1_DPound arg_word: {<'*'> <Id.Lit_Slash />} ) ) } spids: [661] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$CONFIGS_DIR'))} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$Choice'))} {<Id.Lit_RBracket ']'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CONFIGS_DIR) op: assign_op.Equal rhs: {<.>} spids: [689] ) ] ) ] ) ] spids: [632 646] ) ] else_action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$AUTO'))} {<Id.Lit_Equals '='>} {(DQ <yes>)} {<Id.Lit_RBracket ']'>} ) (C {<exit_error>} {(DQ <'Must specify DOTconfig_file=<file> in build.conf'>)}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-f>} {</tmp/kernel_configs>} {<Id.Lit_RBracket ']'>}) (C {<rm>} {<-f>} {</tmp/kernel_configs>}) ] ) (command.Case to_match: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children:[(C {<uname>} {<-m>})]) ) } arms: [ (case_arm pat_list: [{<i> <Id.Lit_QMark '?'> <86>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HOST_ARCH) op: assign_op.Equal rhs: {<x86>} spids: [759] ) ] ) ] spids: [754 757 762 -1] ) (case_arm pat_list: [{<x86_64>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HOST_ARCH) op: assign_op.Equal rhs: {<x86_64>} spids: [768] ) ] ) ] spids: [765 766 771 -1] ) (case_arm pat_list: [{<arm> <Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HOST_ARCH) op: assign_op.Equal rhs: {<arm>} spids: [778] ) ] ) ] spids: [774 776 781 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HOST_ARCH) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children:[(C {<uname>} {<-m>})]) ) } spids: [787] ) ] ) ] spids: [784 785 794 -1] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CONFIGS_DIR) op: assign_op.Equal rhs: {<configs_> (${ Id.VSub_Name HOST_ARCH)} spids: [801] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CONFIGS) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (command.Simple words: [ {<ls>} {<./> (${ Id.VSub_Name CONFIGS_DIR) </DOTconfig> <Id.Lit_Star '*'>} ] redirects: [ (redir.Redir op: <Id.Redir_Great '2>'> fd: 2 arg_word: {</dev/null>} ) ] ) (C {<sed>} {(SQ <'s|.*/||'>)}) (C {<sort>} {<-n>}) ] negated: F ) ] ) ) } spids: [808] ) ] ) (C {<echo>}) (C {<echo>} {(DQ <'Select the config file you want to use'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NUM) op: assign_op.Equal rhs: {<1>} spids: [852] ) ] ) (command.ForEach iter_name: C iter_words: [{($ Id.VSub_DollarName '$CONFIGS')}] do_arg_iter: F body: (command.DoGroup children: [ (command.Simple words: [{<echo>} {(DQ (${ Id.VSub_Name NUM) <'. '> ($ Id.VSub_DollarName '$C'))}] redirects: [ (redir.Redir op: <Id.Redir_DGreat '>>'> fd: -1 arg_word: {</tmp/kernel_configs>} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NUM) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$NUM')}) right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>}) ) ) } spids: [883] ) ] ) ] ) ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<DOTconfig>} {<Id.Lit_RBracket ']'>}) terminator: <Id.Op_Semi _> ) ] action: [ (command.Simple words: [{<echo>} {(DQ <'d. Default - current DOTconfig (./DOTconfig)'>)}] redirects: [ (redir.Redir op: <Id.Redir_DGreat '>>'> fd: -1 arg_word: {</tmp/kernel_configs>} ) ] ) ] spids: [897 909] ) ] ) (command.Simple words: [{<echo>} {(DQ <'n. New DOTconfig'>)}] redirects: [(redir.Redir op:<Id.Redir_DGreat '>>'> fd:-1 arg_word:{</tmp/kernel_configs>})] ) (C {<cat>} {</tmp/kernel_configs>}) (command.Sentence child: (C {<echo>} {<-n>} {(DQ <'Enter choice: '>)}) terminator: <Id.Op_Semi _> ) (C {<read>} {<Chosen>}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {(DQ ($ Id.VSub_DollarName '$Chosen'))} {<-a>} {<Id.KW_Bang '!'>} {<-f>} {<DOTconfig>} {<Id.Lit_RBracket ']'>} ) (C {<exit_error>} {(DQ <Id.Lit_Other '\\'> <'033[1;31m'>) (DQ <'ERROR: invalid choice, start again!'>) (DQ <Id.Lit_Other '\\'> <'033[0m'>) } ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$Chosen'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:Choice) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {<grep>} { (DQ <'^'> ($ Id.VSub_DollarName '$Chosen') <Id.Lit_Other '\\'> <.> ) } {</tmp/kernel_configs>} ) (C {<cut>} {<-d>} {(SQ <' '>)} {<-f2>}) ] negated: F ) ] ) ) } spids: [1007] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {(DQ ($ Id.VSub_DollarName '$Choice'))} {<Id.Lit_RBracket ']'>} ) (C {<exit_error>} {(DQ <Id.Lit_Other '\\'> <'033[1;31m'>) (DQ <'ERROR: your choice is not sane ..quiting'>) (DQ <Id.Lit_Other '\\'> <'033[0m'>) } ) ] ) ] spids: [992 1004] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:Choice) op: assign_op.Equal rhs: {<Default>} spids: [1064] ) ] ) ] ) (C {<echo>} {<-en>} { (DQ <Id.Lit_Other '\\'> <'nYou chose '> ($ Id.VSub_DollarName '$Choice') <'. \n'> <'If this is ok hit ENTER, if not hit CTRL|C to quit: '> ) } ) (C {<read>} {<oknow>}) ] ) (command.Case to_match: {($ Id.VSub_DollarName '$Choice')} arms: [ (case_arm pat_list: [{<Default>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:kver) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {<grep>} {(SQ <'kernel_version='>)} {<DOTconfig>}) (C {<head>} {<-1>}) (C {<tr>} {<-s>} {(SQ <' '>)}) (C {<cut>} {<-d>} {(SQ <'='>)} {<-f2>}) ] negated: F ) ] ) ) } spids: [1103] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$kver'))} {<Id.Lit_Equals '='>} {(DQ )} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$kernel_ver'))} {<Id.Lit_Equals '='>} {(DQ )} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<echo>} {<-n>} {(DQ <'Enter kernel version for DOTconfig: '>)}) (C {<read>} {<kernel_version>}) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {($ Id.VSub_DollarName '$kernel_version')} {<Id.Lit_RBracket ']'>} ) (C {<echo>} {(DQ <ERROR>)}) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] ) (command.Simple words: [ {<echo>} {(DQ <'kernel_version='> (${ Id.VSub_Name kernel_version))} ] redirects: [ (redir.Redir op: <Id.Redir_DGreat '>>'> fd: -1 arg_word: {<DOTconfig>} ) ] ) ] spids: [1163 1180] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:kernel_version) op: assign_op.Equal rhs: {(${ Id.VSub_Name kernel_ver)} spids: [1237] ) ] ) ] ) ] spids: [1143 1160] ) ] ) ] spids: [1099 1100 1252 -1] ) (case_arm pat_list: [{<New>}] action: [ (C {<rm>} {<-f>} {<DOTconfig>}) (C {<echo>} {<-n>} {(DQ <'Enter kernel version (ex: 3.14.73) : '>)}) (C {<read>} {<kernel_version>}) ] spids: [1255 1256 1280 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$Choice'))} arms: [ (case_arm pat_list: [{<DOTconfig-> <Id.Lit_Star '*'>}] action: [ (command.Simple words: [{<read>} {<dconf>} {<kernel_version>} {<kernel_version_info>}] redirects: [ (redir.Redir op: <Id.Redir_TLess '<<<'> fd: -1 arg_word: {(${ Id.VSub_Name CONFIGS_DIR) </> ($ Id.VSub_DollarName '$Choice')} ) ] more_env: [(env_pair name:IFS val:{<->} spids:[1300])] ) ] spids: [1295 1297 1319 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:kernel_version) op: assign_op.Equal rhs: {(DQ )} spids: [1325] ) ] ) ] spids: [1322 1323 1329 -1] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {(DQ ($ Id.VSub_DollarName '$kernel_version'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:kver) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {<grep>} {(SQ <'kernel_version='>)} {(${ Id.VSub_Name CONFIGS_DIR) </> ($ Id.VSub_DollarName '$Choice') } ) (C {<head>} {<-1>}) (C {<tr>} {<-s>} {(SQ <' '>)}) (C {<cut>} {<-d>} {(SQ <'='>)} {<-f2>}) ] negated: F ) ] ) ) } spids: [1352] ) ] ) (C {<sed>} {<-i>} {(SQ <'/^kernel_version/d'>)} {(${ Id.VSub_Name CONFIGS_DIR) </> ($ Id.VSub_DollarName '$Choice')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:kernel_version) op: assign_op.Equal rhs: {(${ Id.VSub_Name kver)} spids: [1411] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$kernel_ver'))} {<Id.Lit_RBracket ']'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:kernel_version) op: assign_op.Equal rhs: {(${ Id.VSub_Name kernel_ver)} spids: [1427] ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$kernel_version'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.Simple words: [ {<echo>} {(DQ <'kernel_version='> (${ Id.VSub_Name kernel_version))} ] redirects: [ (redir.Redir op: <Id.Redir_DGreat '>>'> fd: -1 arg_word: {<DOTconfig>} ) ] ) (command.Simple words: [ {<echo>} {(DQ <'kernel_version_info='> (${ Id.VSub_Name kernel_version_info))} ] redirects: [ (redir.Redir op: <Id.Redir_DGreat '>>'> fd: -1 arg_word: {<DOTconfig>} ) ] ) ] spids: [1436 1448] ) ] else_action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$AUTO'))} {<Id.Lit_Equals '='>} {(DQ <yes>)} {<Id.Lit_RBracket ']'>} ) (C {<exit_error>} {(DQ <'Must specify kernel_ver=<version> in build.conf'>)}) ] ) ] ) ] spids: [1335 1349] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name CONFIGS_DIR) </> ($ Id.VSub_DollarName '$Choice'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <./DOTconfig>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<cp>} {<-afv>} {(${ Id.VSub_Name CONFIGS_DIR) </> ($ Id.VSub_DollarName '$Choice')} {<DOTconfig>} ) ] spids: [1511 1534] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {(DQ ($ Id.VSub_DollarName '$package_name_suffix'))} {<Id.Lit_RBracket ']'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:package_name_suffix) op: assign_op.Equal rhs: {(${ Id.VSub_Name kinfo)} spids: [1565] ) ] ) ] ) ] spids: [1283 1284 1571 -1] ) ] ) (C {<log_msg>} {(DQ <'kernel_version='> (${ Id.VSub_Name kernel_version))}) (C {<log_msg>} {(DQ <'kernel_version_info='> (${ Id.VSub_Name kernel_version_info))}) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$kernel_version'))} arms: [ (case_arm pat_list: [{<3.> <Id.Lit_Star '*'>} {<4.> <Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ok) op: assign_op.Equal rhs: {<1>} spids: [1610] ) ] ) ] spids: [1603 1608 1613 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [(C {<exit_error>} {(DQ <'ERROR: Unsupported kernel version'>)})] spids: [1619 1620 1628 -1] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$Choice'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <New>)} {<-a>} {<Id.KW_Bang '!'>} {<-f>} {<DOTconfig>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<exit_error>} {(DQ <Id.Lit_Other '\\'> <'033[1;31m'>) (DQ <'ERROR: No DOTconfig found ..quiting'>) (DQ <Id.Lit_Other '\\'> <'033[0m'>) } ) ] spids: [1633 1660] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FW_URL) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name FW_URL> suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {<'http:'> <Id.Lit_Slash /> <Id.Lit_Slash /> <distro.ibiblio.org> <Id.Lit_Slash /> <puppylinux> <Id.Lit_Slash /> <firmware> } ) ) } spids: [1683] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aufs_git_3) op: assign_op.Equal rhs: {(DQ <'git://git.code.sf.net/p/aufs/aufs3-standalone.git'>)} spids: [1700] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aufs_git_4) op: assign_op.Equal rhs: {(DQ <'git://github.com/sfjro/aufs4-standalone.git'>)} spids: [1705] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {(DQ ($ Id.VSub_DollarName '$kernel_mirrors'))} {<Id.Lit_RBracket ']'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:kernel_mirrors) op: assign_op.Equal rhs: {(DQ <'ftp://www.kernel.org/pub/linux/kernel'>)} spids: [1722] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ksubdir_3) op: assign_op.Equal rhs: {<v3.x>} spids: [1727] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ksubdir_4) op: assign_op.Equal rhs: {<v4.x>} spids: [1733] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rn) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.Binary op_id: Id.Arith_Percent left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike RANDOM>) right: (arith_expr.ArithWord w: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$kernel_mirrors'))}) (C {<wc>} {<-l>}) ] negated: F ) ] ) ) } ) ) right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>}) ) ) } spids: [1739] ) ] ) (command.ShAssignment pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:x) op:assign_op.Equal rhs:{<0>} spids:[1771])] ) (command.ForEach iter_name: i iter_words: [{($ Id.VSub_DollarName '$kernel_mirrors')}] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:x) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike x>) right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>}) ) ) } spids: [1787] ) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$x')} {<-eq>} {($ Id.VSub_DollarName '$rn')} {<Id.Lit_RBracket ']'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:first) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$i'))} spids: [1808] ) ] ) (command.ControlFlow token:<Id.ControlFlow_Continue continue>) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:km) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$km') <' '> ($ Id.VSub_DollarName '$i'))} spids: [1818] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:kernel_mirrors) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$first') <' '> ($ Id.VSub_DollarName '$km'))} spids: [1827] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {</etc/DISTRO_SPECS>} {<Id.Lit_RBracket ']'>}) terminator: <Id.Op_Semi _> ) ] action: [ (C {<.>} {</etc/DISTRO_SPECS>}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {(DQ ($ Id.VSub_DollarName '$package_name_suffix'))} {<Id.Lit_RBracket ']'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:package_name_suffix) op: assign_op.Equal rhs: {(${ Id.VSub_Name DISTRO_FILE_PREFIX)} spids: [1870] ) ] ) ] ) ] spids: [1838 1850] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<DOTconfig>} {<Id.Lit_RBracket ']'>}) terminator: <Id.Op_Semi _> ) ] action: [ (command.Sentence child:(C {<echo>}) terminator:<Id.Op_Semi _>) (command.Sentence child: (C {<tail>} {<-n10>} {<README>}) terminator: <Id.Op_Semi _> ) (C {<echo>}) (command.ForEach iter_name: i iter_words: [ {<Id.Lit_VarLike 'CONFIG_AUFS_FS='> <y>} {<Id.Lit_VarLike 'CONFIG_NLS_CODEPAGE_850='> <y>} ] do_arg_iter: F body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<grep>} {<-q>} {(DQ ($ Id.VSub_DollarName '$i'))} {<DOTconfig>}) (command.BraceGroup children: [ (command.Sentence child: (C {<echo>} {(DQ ($ Id.VSub_DollarName '$i') <' is ok'>)}) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.ControlFlow token:<Id.ControlFlow_Continue continue>) terminator: <Id.Op_Semi _> ) ] ) ] ) (C {<echo>} {<-e>} {(DQ <Id.Lit_Other '\\'> <'033[1;31m'>) (DQ <Id.Lit_Other '\\'> < 'n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' > <Id.Lit_Other '\\'> <n> ) (DQ <Id.Lit_Other '\\'> <'033[0m'>) } ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$i'))} {<Id.Lit_Equals '='>} {(DQ <'CONFIG_AUFS_FS=y'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<log_msg>} {(DQ <'For your kernel to boot AUFS as a built in is required:'>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fs_msg) op: assign_op.Equal rhs: {(DQ <'File systems -> Miscellaneous filesystems -> AUFS'>)} spids: [2002] ) ] ) ] spids: [1974 1992] ) ] else_action: [ (C {<log_msg>} {(DQ <'For NLS to work at boot some configs are required:'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fs_msg) op: assign_op.Equal rhs: {(DQ <'NLS Support'>)} spids: [2018] ) ] ) ] ) (C {<echo>} {(DQ ($ Id.VSub_DollarName '$i'))}) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$i'))}) (C {<grep>} {<-q>} {(DQ <'CONFIG_NLS_CODEPAGE_850=y'>)}) ] negated: F ) (C {<echo>} {(DQ <'CONFIG_NLS_CODEPAGE_852=y'>)}) ] ) (C {<log_msg>} { (DQ <'Make sure you enable this when you are given the opportunity after\n'> <'\tthe kernel has downloaded and been patched.\n'> <"\tLook under ' "> ($ Id.VSub_DollarName '$fs_msg') <"'\n"> <'\t'> ) } ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$AUTO'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <yes>)} {<Id.Lit_RBracket ']'>} ) (C {<echo>} {<-n>} {(DQ <'PRESS ENTER'>)}) (C {<read>} {<zzz>}) ] ) ] ) ) ] spids: [1878 1890] ) ] ) (C {<echo>}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$AUTO'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <yes>)} {<Id.Lit_RBracket ']'>} ) (C {<read>} {<-p>} {(DQ <'Press ENTER to begin'>)} {<dummy>}) ] ) (command.Simple words: [ {<read>} {<-r>} {<kernel_series>} {<kernel_major_version>} {<kernel_minor_version>} {<kernel_minor_revision>} ] redirects: [ (redir.Redir op: <Id.Redir_TLess '<<<'> fd: -1 arg_word: {(DQ (${ Id.VSub_Name kernel_version))} ) ] more_env: [(env_pair name:IFS val:{<.>} spids:[2146])] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:kernel_branch) op: assign_op.Equal rhs: {(${ Id.VSub_Name kernel_major_version)} spids: [2176] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:kernel_major_version) op: assign_op.Equal rhs: {(${ Id.VSub_Name kernel_series) <.> (${ Id.VSub_Name kernel_major_version)} spids: [2184] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aufs_version) op: assign_op.Equal rhs: {(${ Id.VSub_Name kernel_series)} spids: [2196] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$kernel_minor_version'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:kmv) op: assign_op.Equal rhs: {<.> (${ Id.VSub_Name kernel_minor_version)} spids: [2219] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:kernel_tarball_version) op: assign_op.Equal rhs: {(${ Id.VSub_Name kernel_version)} spids: [2226] ) ] ) ] spids: [2204 2216] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:kmv) op: assign_op.Equal rhs: {(DQ <.0>)} spids: [2238] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:kernel_version) op: assign_op.Equal rhs: {(${ Id.VSub_Name kernel_major_version) (${ Id.VSub_Name kmv)} spids: [2244] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:kernel_tarball_version) op: assign_op.Equal rhs: {(${ Id.VSub_Name kernel_major_version)} spids: [2253] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FIX_KERNEL_VER) op: assign_op.Equal rhs: {<yes>} spids: [2259] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$kernel_minor_revision'))} {<Id.Lit_RBracket ']'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:kmr) op: assign_op.Equal rhs: {<.> (${ Id.VSub_Name kernel_minor_revision)} spids: [2274] ) ] ) ] ) (C {<log_msg>} { (DQ <'Linux: '> (${ Id.VSub_Name kernel_major_version) (${ Id.VSub_Name kmv) (${ Id.VSub_Name kmr) ) } ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {($ Id.VSub_DollarName '$aufsv')} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:AUFS_BRANCHES) op: assign_op.Equal rhs: { (SQ < 'aufs3.0 aufs3.1 aufs3.11 aufs3.13 aufs3.15 aufs3.16 aufs3.17 aufs3.19 aufs3.3 aufs3.4 aufs3.5 aufs3.6 aufs3.7 aufs3.8 aufs3.9 aufs4.0 aufs4.2 aufs4.3 aufs4.4 aufs4.5 aufs4.6 aufs4.7 aufs4.8 aufs4.9 aufs4.10' > ) } spids: [2315] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Subshell command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$AUFS_BRANCHES'))}) (C {<tr>} {(SQ <' '>)} {(SQ <'\\n'>)}) (C {<grep>} {<-q>} { (DQ <'^aufs'> (${ Id.VSub_Name kernel_major_version) <Id.Lit_Other '$'> ) } ) ] negated: F ) ] ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aufsv) op: assign_op.Equal rhs: {(${ Id.VSub_Name kernel_major_version)} spids: [2364] ) ] ) ] spids: [2321 2361] ) (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name kernel_major_version))} {<Id.Lit_Equals '='>} {(DQ <3.2>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aufsv) op: assign_op.Equal rhs: {(SQ <3.2>)} spids: [2397] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<vercmp>} {(${ Id.VSub_Name kernel_version)} {<ge>} {<3.2.30>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aufsv) op: assign_op.Equal rhs: {(SQ <3.2.x>)} spids: [2418] ) ] ) ] ) ] spids: [2374 2394] ) (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name kernel_major_version))} {<Id.Lit_Equals '='>} {(DQ <3.10>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aufsv) op: assign_op.Equal rhs: {(SQ <3.10>)} spids: [2447] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<vercmp>} {(${ Id.VSub_Name kernel_version)} {<ge>} {<3.10.26>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aufsv) op: assign_op.Equal rhs: {(SQ <3.10.x>)} spids: [2465] ) ] ) ] ) ] spids: [2424 2444] ) (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name kernel_major_version))} {<Id.Lit_Equals '='>} {(DQ <3.12>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aufsv) op: assign_op.Equal rhs: {(SQ <3.12>)} spids: [2494] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<vercmp>} {(${ Id.VSub_Name kernel_version)} {<ge>} {<3.12.7>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aufsv) op: assign_op.Equal rhs: {(SQ <3.12.x>)} spids: [2512] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<vercmp>} {(${ Id.VSub_Name kernel_version)} {<ge>} {<3.12.31>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aufsv) op: assign_op.Equal rhs: {(SQ <'3.12.31+'>)} spids: [2530] ) ] ) ] ) ] spids: [2471 2491] ) (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name kernel_major_version))} {<Id.Lit_Equals '='>} {(DQ <3.14>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aufsv) op: assign_op.Equal rhs: {(SQ <3.14>)} spids: [2559] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<vercmp>} {(${ Id.VSub_Name kernel_version)} {<ge>} {<3.14.21>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aufsv) op: assign_op.Equal rhs: {(SQ <'3.14.21+'>)} spids: [2577] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<vercmp>} {(${ Id.VSub_Name kernel_version)} {<ge>} {<3.14.40>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aufsv) op: assign_op.Equal rhs: {(SQ <'3.14.40+'>)} spids: [2595] ) ] ) ] ) ] spids: [2536 2556] ) (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name kernel_major_version))} {<Id.Lit_Equals '='>} {(DQ <3.18>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aufsv) op: assign_op.Equal rhs: {(SQ <3.18>)} spids: [2624] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<vercmp>} {(${ Id.VSub_Name kernel_version)} {<ge>} {<3.18.1>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aufsv) op: assign_op.Equal rhs: {(SQ <'3.18.1+'>)} spids: [2642] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<vercmp>} {(${ Id.VSub_Name kernel_version)} {<ge>} {<3.18.25>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aufsv) op: assign_op.Equal rhs: {(SQ <'3.18.25+'>)} spids: [2660] ) ] ) ] ) ] spids: [2601 2621] ) (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name kernel_major_version))} {<Id.Lit_Equals '='>} {(DQ <4.1>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aufsv) op: assign_op.Equal rhs: {(SQ <4.1>)} spids: [2689] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<vercmp>} {(${ Id.VSub_Name kernel_version)} {<ge>} {<4.1.13>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aufsv) op: assign_op.Equal rhs: {(SQ <'4.1.13+'>)} spids: [2707] ) ] ) ] ) ] spids: [2666 2686] ) ] ) ] spids: [2300 2312] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$aufsv')} {<Id.Lit_RBracket ']'>}) (C {<exit_error>} {(DQ <"You must specify 'aufsv=version' in build.conf">)}) ] ) (C {<log_msg>} {(DQ <'aufs='> ($ Id.VSub_DollarName '$aufsv'))}) (command.Case to_match: {($ Id.VSub_DollarName '$kernel_series')} arms: [ (case_arm pat_list: [{<3>}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ksubdir) op: assign_op.Equal rhs: {(${ Id.VSub_Name ksubdir_3)} spids: [2753] ) ] ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aufs_git) op: assign_op.Equal rhs: {(${ Id.VSub_Name aufs_git_3)} spids: [2760] ) ] ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aufs_git_dir) op: assign_op.Equal rhs: {<aufs3_sources_git>} spids: [2767] ) ] ) ] spids: [2750 2751 2770 -1] ) (case_arm pat_list: [{<4>}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ksubdir) op: assign_op.Equal rhs: {(${ Id.VSub_Name ksubdir_4)} spids: [2776] ) ] ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aufs_git) op: assign_op.Equal rhs: {(${ Id.VSub_Name aufs_git_4)} spids: [2783] ) ] ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aufs_git_dir) op: assign_op.Equal rhs: {<aufs4_sources_git>} spids: [2790] ) ] ) ] spids: [2773 2774 2793 -1] ) ] ) (C {<rm>} {<-rf>} {<output/patches-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name HOST_ARCH)} ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} {<sources/kernels>} {<Id.Lit_RBracket ']'>}) (C {<mkdir>} {<-p>} {<sources/kernels>}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} {<output/patches-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name HOST_ARCH)} {<Id.Lit_RBracket ']'>} ) (C {<mkdir>} {<-p>} {<output/patches-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name HOST_ARCH)} ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} {<output>} {<Id.Lit_RBracket ']'>}) (C {<mkdir>} {<-p>} {<output>}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:today) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> command_list: (command.CommandList children: [ (C {<date>} {<Id.Lit_Other '+'> <Id.Lit_Other '%'> <d> <Id.Lit_Other '%'> <m> <Id.Lit_Other '%'> <y> } ) ] ) ) } spids: [2886] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:testing) op: assign_op.Equal rhs: (word.Empty) spids: [2915] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Pipeline children: [ (C {<echo>} { (braced_var_sub token: <Id.VSub_Name kernel_version> suffix_op: (suffix_op.Unary op_id:Id.VOp1_DPound arg_word:{<'*-'>}) ) } ) (C {<grep>} {<-q>} {(DQ <rc>)}) ] negated: F ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:testing) op: assign_op.Equal rhs: {</testing>} spids: [2937] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DOWNLOAD_KERNEL) op: assign_op.Equal rhs: {<1>} spids: [2941] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-f>} {<sources/kernels/linux-> (${ Id.VSub_Name kernel_tarball_version) <.tar.xz>} {<Id.Lit_RBracket ']'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DOWNLOAD_KERNEL) op: assign_op.Equal rhs: {<0>} spids: [2958] ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<sources/kernels/linux-> (${ Id.VSub_Name kernel_tarball_version) <.tar.xz.md5.txt>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<cd>} {<sources/kernels>}) (C {<md5sum>} {<-c>} {<linux-> (${ Id.VSub_Name kernel_tarball_version) <.tar.xz.md5.txt>}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<log_msg>} {(DQ <'md5sum FAILED: will resume kernel download...'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DOWNLOAD_KERNEL) op: assign_op.Equal rhs: {<1>} spids: [3020] ) ] ) ] spids: [2996 3010] ) ] ) (C {<cd>} {($ Id.VSub_DollarName '$MWD')}) ] spids: [2961 2977] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DOWNLOAD_KERNEL) op: assign_op.Equal rhs: {<1>} spids: [3034] ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$DOWNLOAD_KERNEL')} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KERROR) op: assign_op.Equal rhs: {<1>} spids: [3057] ) ] ) (command.ForEach iter_name: kernel_mirror iter_words: [{($ Id.VSub_DollarName '$kernel_mirrors')}] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:kernel_mirror) op: assign_op.Equal rhs: {(${ Id.VSub_Name kernel_mirror) </> (${ Id.VSub_Name ksubdir)} spids: [3074] ) ] ) (C {<log_msg>} { (DQ <'Downloading: '> (${ Id.VSub_Name kernel_mirror) (${ Id.VSub_Name testing) </linux-> (${ Id.VSub_Name kernel_tarball_version) <.tar.xz> ) } ) (command.Simple words: [ {<wget>} {(${ Id.VSub_Name WGET_OPT)} {<-c>} {<-P>} {<sources/kernels>} {(${ Id.VSub_Name kernel_mirror) (${ Id.VSub_Name testing) </linux-> (${ Id.VSub_Name kernel_tarball_version) <.tar.xz> } ] redirects: [ (redir.Redir op: <Id.Redir_DGreat '>>'> fd: -1 arg_word: {(${ Id.VSub_Name BUILD_LOG)} ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [(C {<echo>} {(DQ <Error>)})] spids: [3133 3147] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KERROR) op: assign_op.Equal rhs: (word.Empty) spids: [3160] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] ) ] ) ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$KERROR')} {<Id.Lit_RBracket ']'>}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) (C {<cd>} {<sources/kernels>}) (command.Simple words: [{<md5sum>} {<linux-> (${ Id.VSub_Name kernel_tarball_version) <.tar.xz>}] redirects: [ (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {<linux-> (${ Id.VSub_Name kernel_tarball_version) <.tar.xz.md5.txt>} ) ] ) (command.Simple words: [{<sha256sum>} {<linux-> (${ Id.VSub_Name kernel_tarball_version) <.tar.xz>}] redirects: [ (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {<linux-> (${ Id.VSub_Name kernel_tarball_version) <.tar.xz.sha256.txt>} ) ] ) (C {<cd>} {($ Id.VSub_DollarName '$MWD')}) ] spids: [3040 3054] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$LIBRE')} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:minor_version) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name kernel_version> suffix_op: (suffix_op.Unary op_id:Id.VOp1_DPound arg_word:{<'*.'>}) ) } spids: [3251] ) ] ) (command.ForEach iter_name: i iter_words: [{<deblob-> (${ Id.VSub_Name kernel_major_version)} {<deblob-check>}] do_arg_iter: F body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} {<sources/kernels/> ($ Id.VSub_DollarName '$i')} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<wget>} {(${ Id.VSub_Name WGET_OPT)} {<-O>} {<sources/kernels/> ($ Id.VSub_DollarName '$i')} {<http> <Id.Lit_Other ':'> <//linux-libre.fsfla.org/pub/linux-libre/releases/LATEST-> (${ Id.VSub_Name kernel_major_version) <.N/> ($ Id.VSub_DollarName '$i') } ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) (C {<exit_error>} { (DQ <'Error: failed to download '> ($ Id.VSub_DollarName '$i') <.>) } ) ] ) ] spids: [3276 3291] ) ] ) ] ) ) ] spids: [3234 3248] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} {</tmp/> (${ Id.VSub_Name aufs_git_dir) <_done>} {<-o>} {<Id.KW_Bang '!'>} {<-d>} {<sources/> (${ Id.VSub_Name aufs_git_dir) </.git>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<cd>} {<sources>}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} {(${ Id.VSub_Name aufs_git_dir) </.git>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<git>} {<clone>} {(${ Id.VSub_Name aufs_git)} {(${ Id.VSub_Name aufs_git_dir)}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) (C {<exit_error>} {(DQ <'Error: failed to download the Aufs sources.'>)}) ] ) (C {<touch>} {</tmp/> (${ Id.VSub_Name aufs_git_dir) <_done>}) ] spids: [3385 3402] ) ] else_action: [ (C {<cd>} {(${ Id.VSub_Name aufs_git_dir)}) (C {<git>} {<pull>} {<--all>}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<log_msg>} {(DQ <"WARNING: 'git pull --all' command failed">)}) (C {<sleep>} {<5>}) ] ) ] spids: [3463 3477] ) ] else_action: [(C {<touch>} {</tmp/> (${ Id.VSub_Name aufs_git_dir) <_done>})] ) ] ) (C {<cd>} {($ Id.VSub_DollarName '$MWD')}) ] spids: [3347 3377] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} {</tmp/aufs-util_done>} {<-o>} {<Id.KW_Bang '!'>} {<-d>} {<sources/aufs-util_git/.git>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<cd>} {<sources>}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} {<aufs-util_git/.git>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<log_msg>} {(DQ <'Downloading aufs-utils for userspace'>)}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<git>} {<clone>} {<git> <Id.Lit_Other ':'> <//git.code.sf.net/p/aufs/aufs-util.git>} {<aufs-util_git>} ) (command.Simple words: [ {<git>} {<clone>} {<https> <Id.Lit_Other ':'> <//git.code.sf.net/p/aufs/aufs-util>} {<aufs-util_git>} ] more_env: [(env_pair name:GIT_SSL_NO_VERIFY val:{<true>} spids:[3589])] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) (C {<exit_error>} {(DQ <'Error: failed to download the Aufs utils...'>)}) ] ) (C {<touch>} {</tmp/aufs-util_done>}) ] spids: [3551 3565] ) ] else_action: [ (C {<cd>} {<aufs-util_git>}) (C {<git>} {<pull>} {<--all>}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<log_msg>} {(DQ <"WARNING: 'git pull --all' command failed">)}) (C {<sleep>} {<5>}) ] ) ] spids: [3642 3656] ) ] else_action: [(C {<touch>} {</tmp/aufs-util_done>})] ) ] ) (C {<cd>} {($ Id.VSub_DollarName '$MWD')}) ] spids: [3521 3543] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$FW_PKG_URL'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fw_pkg) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name FW_PKG_URL> suffix_op: (suffix_op.Unary op_id: Id.VOp1_DPound arg_word: {<'*'> <Id.Lit_Slash />} ) ) } spids: [3711] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FDRV) op: assign_op.Equal rhs: {<fdrv.sfs-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name package_name_suffix) } spids: [3723] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} {<sources/> (${ Id.VSub_Name fw_pkg)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} {(DQ ($ Id.VSub_DollarName '$FW_PKG_URL'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<log_msg>} {(DQ <'Downloading '> ($ Id.VSub_DollarName '$FW_PKG_URL'))}) (C {<wget>} {(${ Id.VSub_Name WGET_OPT)} {<-c>} {(${ Id.VSub_Name FW_PKG_URL)} {<-P>} {<sources>} ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) (C {<exit_error>} {(DQ <'failed to download '> (${ Id.VSub_Name fw_pkg))} ) ] ) ] spids: [3754 3770] ) ] ) ] spids: [3734 3751] ) ] ) ] spids: [3696 3708] ) ] else_action: [ (C {<echo>}) (C {<log_msg>} {(DQ <'-- Pausing'>)}) (C {<log_msg>} {(DQ <'Extra firmware to be added after compiling the kernel'>)}) (C {<echo>} {(DQ <'Choose an option (generating list...):'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:tmpfw) op: assign_op.Equal rhs: {</tmp/fw> ($ Id.VSub_Dollar '$$')} spids: [3863] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:x) op: assign_op.Equal rhs: {<1>} spids: [3868] ) ] ) (command.Pipeline children: [ (C {<wget>} {<-q>} {(${ Id.VSub_Name FW_URL)} {<-O>} {<->}) (C {<sed>} {(SQ <'/href/!d; /\\.tar\\./!d; /md5\\.txt/d; s/.*href="//; s/".*//'>)}) (command.WhileUntil keyword: <Id.KW_While while> cond: [(command.Sentence child:(C {<read>} {<f>}) terminator:<Id.Op_Semi _>)] body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$f'))} {<Id.Lit_RBracket ']'>} ) (command.Simple words: [ {<echo>} {(DQ ($ Id.VSub_DollarName '$x') <' '> ($ Id.VSub_DollarName '$f'))} ] redirects: [ (redir.Redir op: <Id.Redir_DGreat '>>'> fd: -1 arg_word: {(${ Id.VSub_Name tmpfw)} ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:x) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$x')}) right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>}) ) ) } spids: [3932] ) ] ) ] ) ) ] negated: F ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:y) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> command_list: (command.CommandList children: [ (command.Pipeline children: [(C {<cat>} {(${ Id.VSub_Name tmpfw)}) (C {<wc>} {<-l>})] negated: F ) ] ) ) } spids: [3947] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$y'))} {<Id.Lit_Equals '='>} {<0>} {<Id.Lit_RBracket ']'>} ) (C {<echo>} {(DQ <'WARNING: no firmware at that URL'>)}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:x) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$x')}) right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$y')}) ) ) } spids: [3990] ) ] ) (command.Simple words: [{<echo>} {(DQ ($ Id.VSub_DollarName '$x') <" I'll copy in my own.">)}] redirects: [(redir.Redir op:<Id.Redir_DGreat '>>'> fd:-1 arg_word:{(${ Id.VSub_Name tmpfw)})] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:x) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$x')}) right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>}) ) ) } spids: [4015] ) ] ) (command.Simple words: [ {<echo>} { (DQ ($ Id.VSub_DollarName '$x') <" I'll grab the latest firmware from kernel.org. (slow)"> ) } ] redirects: [(redir.Redir op:<Id.Redir_DGreat '>>'> fd:-1 arg_word:{(${ Id.VSub_Name tmpfw)})] ) (C {<cat>} {(${ Id.VSub_Name tmpfw)}) (C {<echo>} {<-n>} {(DQ <'Enter a number, 1 to '> ($ Id.VSub_DollarName '$x') <': '>)}) (C {<read>} {<fw>}) (command.Case to_match: {($ Id.VSub_DollarName '$fw')} arms: [ (case_arm pat_list: [{<Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ok) op: assign_op.Equal rhs: {<1>} spids: [4076] ) ] ) ] spids: [4070 4074 4079 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (C {<log_msg>} { (DQ <'invalid option... falling back to option '> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$x')}) right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>}) ) ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fw) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$x')}) right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>}) ) ) } spids: [4100] ) ] ) ] spids: [4082 4083 4111 -1] ) ] ) (C {<echo>}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$fw'))} {<-gt>} {(DQ ($ Id.VSub_DollarName '$x'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [(C {<exit_error>} {(DQ <'error, wrong number'>)})] spids: [4124 4142] ) (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$fw'))} {<Id.Lit_Equals '='>} { (DQ (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$x')}) right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>}) ) ) ) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FIRMWARE_OPT) op: assign_op.Equal rhs: {<manual>} spids: [4180] ) ] ) (C {<log_msg>} {(DQ <'you will manually add firmware after the kernel is compiled'>)}) (C {<sleep>} {<6>}) ] spids: [4152 4177] ) (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$fw'))} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$x'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FIRMWARE_OPT) op: assign_op.Equal rhs: {<git>} spids: [4217] ) ] ) (C {<echo>} {(DQ <'You have chosen to get the latest firmware from kernel.org'>)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-e>} {<../linux-firmware>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-d>} {<../linux-firmware>} {<-a>} {<Id.KW_Bang '!'>} {<-h>} {<../linux-firmware>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-e>} {<../../local-repositories>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<echo>} {(DQ <' wait while we move the repository...'>)}) (C {<mv>} {<-f>} {<../linux-firmware>} {<../../local-repositories>} ) (command.Subshell command_list: (command.CommandList children: [ (command.Sentence child: (C {<cd>} {<..>}) terminator: <Id.Op_Semi _> ) (C {<ln>} {<-snf>} {<../local-repositories/linux-firmware>} {<.>} ) ] ) ) (C {<echo>} {(DQ <' repo moved!'>)}) ] spids: [4274 4284] ) ] ) ] spids: [4250 4268] ) ] ) (C {<cd>} {<../linux-firmware>}) (C {<echo>} {(DQ <'Updating the git firmware repo'>)}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<git>} {<pull>}) (C {<log_msg>} {(DQ <"Warning: 'git pull' failed">)}) ] ) ] spids: [4232 4244] ) ] else_action: [ (C {<log_msg>} {(DQ <'This may take a long time as the firmware repository is around 180MB'>)} ) (C {<cd>} {<..>}) (C {<git>} {<clone>} {<git> <Id.Lit_Other ':'> <//git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git> } ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) (command.ControlFlow token:<Id.ControlFlow_Exit exit>) ] ) ] ) (C {<cd>} {($ Id.VSub_DollarName '$CWD')}) ] spids: [4196 4214] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FIRMWARE_OPT) op: assign_op.Equal rhs: {<tarball>} spids: [4410] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fw_pkg) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> command_list: (command.CommandList children: [ (C {<grep>} {<Id.Lit_Other '^'> ($ Id.VSub_DollarName '$fw')} {(${ Id.VSub_Name tmpfw)} ) ] ) ) } spids: [4414] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fw_pkg) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name fw_pkg> suffix_op: (suffix_op.Unary op_id:Id.VOp1_DPound arg_word:{<'* '>}) ) } spids: [4429] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<sources/> (${ Id.VSub_Name fw_pkg)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<log_msg>} {(DQ <'Verifying sources/'> (${ Id.VSub_Name fw_pkg))}) (command.Simple words: [{<tar>} {<-taf>} {<sources/> (${ Id.VSub_Name fw_pkg)}] redirects: [ (redir.Redir op: <Id.Redir_AndGreat '&>'> fd: -1 arg_word: {</dev/null>} ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) (C {<exit_error>} { (DQ <'failed verify '> (braced_var_sub token: <Id.VSub_Name fw_pkg> suffix_op: (suffix_op.Unary op_id:Id.VOp1_DPound arg_word:{<'* '>}) ) ) } ) ] ) ] spids: [4437 4452] ) ] else_action: [ (C {<log_msg>} { (DQ <'You chose '> (${ Id.VSub_Name fw_pkg) <". If that isn't correct change it manually later."> ) } ) (C {<log_msg>} {(DQ <'downloading '> (${ Id.VSub_Name FW_URL) </> (${ Id.VSub_Name fw_pkg))} ) (C {<wget>} {(${ Id.VSub_Name WGET_OPT)} {<-c>} {(${ Id.VSub_Name FW_URL) </> (${ Id.VSub_Name fw_pkg)} {<-P>} {<sources>} ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) (C {<exit_error>} { (DQ <'failed to download '> (braced_var_sub token: <Id.VSub_Name fw_pkg> suffix_op: (suffix_op.Unary op_id:Id.VOp1_DPound arg_word:{<'* '>}) ) ) } ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FW_PKG_URL) op: assign_op.Equal rhs: {(${ Id.VSub_Name fw_pkg)} spids: [4578] ) ] ) ] ) ] ) (C {<log_msg>} {(DQ <'Extracting the Aufs-util sources'>)}) (C {<rm>} {<-rf>} {<aufs-util>}) (C {<cp>} {<-a>} {<sources/aufs-util_git>} {<aufs-util>}) (command.Subshell command_list: (command.CommandList children: [ (C {<cd>} {<aufs-util>}) (command.Pipeline children: [ (C {<git>} {<branch>} {<-a>}) (C {<grep>} {(DQ <aufs> ($ Id.VSub_DollarName '$kernel_series'))}) (C {<grep>} {<-v>} {<-E>} {(SQ <'rcN|\\)'>)}) (C {<cut>} {<-d>} {(SQ <.>)} {<-f2>}) (command.Simple words: [{<sort>} {<-n>}] redirects: [ (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {</tmp/aufs-util-version>} ) ] ) ] negated: F ) (command.WhileUntil keyword: <Id.KW_While while> cond: [(command.Sentence child:(C {<read>} {<line>}) terminator:<Id.Op_Semi _>)] body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$line'))} {<-le>} {(DQ ($ Id.VSub_DollarName '$kernel_branch'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:branch) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$line')} spids: [4721] ) ] ) ] spids: [4697 4715] ) ] else_action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)] ) ] ) redirects: [ (redir.Redir op: <Id.Redir_Less '<'> fd: -1 arg_word: {</tmp/aufs-util-version>} ) ] ) (C {<git>} {<checkout>} {<aufs> (${ Id.VSub_Name kernel_series) <.> (${ Id.VSub_Name branch)} ) (C {<cp>} {<Makefile>} {<Makefile-orig>}) (C {<sed>} {<-i>} {<-e>} {(SQ <'s/-static //'>)} {<-e>} {(SQ <'s|ver_test ||'>)} {<-e>} {(SQ <'s|BuildFHSM = .*||'>)} {<Makefile>} ) (command.Simple words: [{<diff>} {<-ru>} {<Makefile-orig>} {<Makefile>}] redirects: [ (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {<../output/patches-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name HOST_ARCH) </aufs-util.patch> } ) ] ) ] ) ) (C {<log_msg>} {(DQ <'Extracting the Aufs sources'>)}) (C {<rm>} {<-rf>} {<aufs_sources>}) (C {<cp>} {<-a>} {<sources/> (${ Id.VSub_Name aufs_git_dir)} {<aufs_sources>}) (command.Subshell command_list: (command.CommandList children: [ (command.Sentence child:(C {<cd>} {<aufs_sources>}) terminator:<Id.Op_Semi _>) (C {<git>} {<checkout>} {<aufs> (${ Id.VSub_Name aufsv)}) (C {<../patches/aufs_sources/apply>} {(${ Id.VSub_Name kernel_version)}) ] ) ) (C {<log_msg>} {(DQ <'Extracting the kernel sources'>)}) (command.Simple words: [ {<tar>} {<-axf>} {<sources/kernels/linux-> (${ Id.VSub_Name kernel_tarball_version) <.tar.xz>} ] redirects: [ (redir.Redir op:<Id.Redir_DGreat '>>'> fd:-1 arg_word:{(${ Id.VSub_Name BUILD_LOG)}) (redir.Redir op:<Id.Redir_GreatAnd '2>&'> fd:2 arg_word:{<1>}) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>}) terminator: <Id.Op_Semi _> ) ] action: [ (C {<rm>} {<-f>} {<sources/kernels/linux-> (${ Id.VSub_Name kernel_tarball_version) <.tar.xz>} ) (C {<exit_error>} {(DQ <'ERROR extracting kernel sources. file was deleted...'>)}) ] spids: [4896 4910] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$FIX_KERNEL_VER'))} {<Id.Lit_Equals '='>} {(DQ <yes>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<rm>} {<-rf>} {<linux-> (${ Id.VSub_Name kernel_version)}) (C {<mv>} {<-f>} {<linux-> (${ Id.VSub_Name kernel_tarball_version)} {<linux-> (${ Id.VSub_Name kernel_version)} ) ] spids: [4933 4951] ) ] ) (C {<cd>} {<linux-> (${ Id.VSub_Name kernel_version)}) (C {<log_msg>} {(DQ <'Adding Aufs to the kernel sources'>)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<mm/prfile.c>} {<Id.Lit_RBracket ']'>}) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:mmap) op: assign_op.Equal rhs: {<../aufs_sources/aufs> (${ Id.VSub_Name aufs_version) <-mmap.patch>} spids: [5019] ) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-f>} {($ Id.VSub_DollarName '$mmap')} {<Id.Lit_RBracket ']'>} ) (C {<grep>} {<-q>} {(SQ <mm/prfile.c>)} {($ Id.VSub_DollarName '$mmap')}) (C {<rm>} {<-f>} {<mm/prfile.c>}) ] ) ] spids: [5004 5016] ) ] ) (command.ForEach iter_name: i iter_words: [{<kbuild>} {<base>} {<standalone>} {<mmap>}] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:patchfile) op: assign_op.Equal rhs: {<../aufs_sources/aufs> (${ Id.VSub_Name aufs_version) <-> ($ Id.VSub_DollarName '$i') <.patch> } spids: [5081] ) ] ) (command.Subshell command_list: (command.CommandList children: [ (command.Sentence child: (C {<echo>}) terminator: <Id.Op_Semi _> ) (C {<echo>} { (DQ <'patch -N -p1 < '> (braced_var_sub token: <Id.VSub_Name patchfile> suffix_op: (suffix_op.Unary op_id: Id.VOp1_DPound arg_word: {<'*'> <Id.Lit_Slash />} ) ) ) } ) ] ) redirects: [ (redir.Redir op: <Id.Redir_AndDGreat '&>>'> fd: -1 arg_word: {(${ Id.VSub_Name BUILD_LOG)} ) ] ) (command.Simple words: [{<patch>} {<-N>} {<-p1>}] redirects: [ (redir.Redir op: <Id.Redir_Less '<'> fd: -1 arg_word: {(${ Id.VSub_Name patchfile)} ) (redir.Redir op: <Id.Redir_AndDGreat '&>>'> fd: -1 arg_word: {(${ Id.VSub_Name BUILD_LOG)} ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<log_msg>} {(DQ <'WARNING: failed to add some Aufs patches to the kernel sources.'>)} ) (C {<log_msg>} {(DQ <'Check it manually and either CRTL+C to bail or hit enter to go on'>)} ) (C {<read>} {<goon>}) ] spids: [5137 5151] ) ] ) ] ) ) (C {<cp>} {<-r>} (word.BracedTree parts: [<../aufs_sources/> (word_part.BracedTuple words:[{<fs>} {<Documentation>}])] ) {<.>} ) (command.Simple words: [{<cp>} {<../aufs_sources/include/linux/aufs_type.h>} {<include/linux>}] redirects: [(redir.Redir op:<Id.Redir_Great '2>'> fd:2 arg_word:{</dev/null>})] ) (command.Simple words: [{<cp>} {<../aufs_sources/include/uapi/linux/aufs_type.h>} {<include/linux>}] redirects: [(redir.Redir op:<Id.Redir_Great '2>'> fd:2 arg_word:{</dev/null>})] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-d>} {<../aufs_sources/include/uapi>} {<Id.Lit_RBracket ']'>}) (C {<cp>} {<-r>} {<../aufs_sources/include/uapi/linux/aufs_type.h>} {<include/uapi/linux>}) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$LIBRE')} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<cd>} {<..>}) (C {<cp>} {<-r>} {<linux-> (${ Id.VSub_Name kernel_version)} {<linux-> (${ Id.VSub_Name kernel_version) <-orig>} ) (C {<cd>} {<linux-> (${ Id.VSub_Name kernel_version)}) (command.Pipeline children: [ (command.Simple words: [{<sh>} {<../sources/kernels/deblob-> (${ Id.VSub_Name kernel_major_version)}] redirects: [(redir.Redir op:<Id.Redir_GreatAnd '2>&'> fd:2 arg_word:{<1>})] ) (C {<tee>} {<-a>} {(${ Id.VSub_Name BUILD_LOG)}) ] negated: F ) (C {<cd>} {<..>}) (command.Simple words: [ {<diff>} {<-rupN>} {<linux-> (${ Id.VSub_Name kernel_version) <-orig>} {<linux-> (${ Id.VSub_Name kernel_version)} ] redirects: [ (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {<output/patches-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name HOST_ARCH) </deblob.patch> } ) ] ) (C {<rm>} {<-rf>} {<linux-> (${ Id.VSub_Name kernel_version) <-orig>}) (C {<cd>} {<linux-> (${ Id.VSub_Name kernel_version)}) ] spids: [5234 5248] ) ] ) (C {<cp>} {<Makefile>} {<Makefile-orig>}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$remove_sublevel'))} {<Id.Lit_Equals '='>} {(DQ <yes>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<log_msg>} {(DQ <'Resetting the minor version number'>)}) (C {<sed>} {<-i>} {(DQ <'s/^SUBLEVEL =.*/SUBLEVEL = 0/'>)} {<Makefile>}) ] spids: [5364 5382] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ (${ Id.VSub_Name custom_suffix))} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$LIBRE')} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) ] ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<sed>} {<-i>} {(DQ <'s/^EXTRAVERSION =.*/EXTRAVERSION = '> (${ Id.VSub_Name custom_suffix) </>)} {<Makefile>} ) ] spids: [5410 5438] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<diff>} {<-up>} {<Makefile-orig>} {<Makefile>}) (command.Simple words: [{<diff>} {<-up>} {<Makefile-orig>} {<Makefile>}] redirects: [ (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {<../output/patches-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name HOST_ARCH) </version.patch> } ) ] ) ] ) (C {<rm>} {<Makefile-orig>}) (C {<log_msg>} {(DQ <'Reducing the number of consoles and verbosity level'>)}) (command.ForEach iter_name: i iter_words: [{<include/linux/printk.h>} {<kernel/printk/printk.c>} {<kernel/printk.c>}] do_arg_iter: F body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} {(DQ ($ Id.VSub_DollarName '$i'))} {<Id.Lit_RBracket ']'>} ) (command.ControlFlow token:<Id.ControlFlow_Continue continue>) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:z) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$i'))}) (C {<sed>} {(SQ <'s|/|_|g'>)}) ] negated: F ) ] ) ) } spids: [5530] ) ] ) (C {<cp>} {(${ Id.VSub_Name i)} {(${ Id.VSub_Name i) <.orig>}) (C {<sed>} {<-i>} {(SQ <'s|#define CONSOLE_LOGLEVEL_DEFAULT .*|#define CONSOLE_LOGLEVEL_DEFAULT 3|'>)} {($ Id.VSub_DollarName '$i')} ) (C {<sed>} {<-i>} {(SQ <'s|#define DEFAULT_CONSOLE_LOGLEVEL .*|#define DEFAULT_CONSOLE_LOGLEVEL 3|'>)} {($ Id.VSub_DollarName '$i')} ) (C {<sed>} {<-i>} {(SQ <'s|#define MAX_CMDLINECONSOLES .*|#define MAX_CMDLINECONSOLES 5|'>)} {($ Id.VSub_DollarName '$i')} ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{<diff>} {<-q>} {(${ Id.VSub_Name i) <.orig>} {(${ Id.VSub_Name i)}] redirects: [(redir.Redir op:<Id.Redir_AndGreat '&>'> fd:-1 arg_word:{</dev/null>})] ) (command.Simple words: [{<diff>} {<-up>} {(${ Id.VSub_Name i) <.orig>} {(${ Id.VSub_Name i)}] redirects: [ (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {<../output/patches-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name HOST_ARCH) </> (${ Id.VSub_Name z) <.patch> } ) ] ) ] ) ] ) ) (command.ForEach iter_name: patch iter_words: [ {<../patches/> <Id.Lit_Star '*'> <.patch>} {<../patches/> (${ Id.VSub_Name kernel_major_version) </> <Id.Lit_Star '*'> <.patch>} ] do_arg_iter: F body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} {(DQ ($ Id.VSub_DollarName '$patch'))} {<Id.Lit_RBracket ']'>} ) (command.ControlFlow token:<Id.ControlFlow_Continue continue>) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {<vercmp>} {(${ Id.VSub_Name kernel_version)} {<ge>} {<4.14>}) (C {<Id.Lit_LBracket '['>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [(C {<basename>} {(DQ ($ Id.VSub_DollarName '$patch'))})] ) ) ) } {<Id.Lit_Equals '='>} {(DQ <commoncap-symbol.patch>)} {<Id.Lit_RBracket ']'>} ) (command.ControlFlow token:<Id.ControlFlow_Continue continue>) ] ) (C {<log_msg>} {(DQ <'Applying '> ($ Id.VSub_DollarName '$patch'))}) (command.Simple words: [{<patch>} {<-p1>}] redirects: [ (redir.Redir op: <Id.Redir_Less '<'> fd: -1 arg_word: {($ Id.VSub_DollarName '$patch')} ) (redir.Redir op: <Id.Redir_DGreat '>>'> fd: -1 arg_word: {(${ Id.VSub_Name BUILD_LOG)} ) (redir.Redir op:<Id.Redir_GreatAnd '2>&'> fd:2 arg_word:{<1>}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>}) (C {<exit_error>} { (DQ <'Error: failed to apply '> ($ Id.VSub_DollarName '$patch') <' on the kernel sources.'> ) } ) ] ) (C {<cp>} {($ Id.VSub_DollarName '$patch')} {<../output/patches-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name HOST_ARCH)} ) ] ) ) (C {<log_msg>} {(DQ <'Cleaning the kernel sources'>)}) (C {<make>} {<clean>}) (C {<make>} {<mrproper>}) (C {<find>} {<.>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\('>)} {<-name>} {(SQ <'*.orig'>)} {<-o>} {<-name>} {(SQ <'*.rej'>)} {<-o>} {<-name>} {(SQ <'*~'>)} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\)'>)} {<-delete>} ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<../DOTconfig>} {<Id.Lit_RBracket ']'>}) terminator: <Id.Op_Semi _> ) ] action: [ (C {<cp>} {<../DOTconfig>} {<.config>}) (C {<sed>} {<-i>} {(SQ <'/^kernel_version/d'>)} {<.config>}) ] spids: [5833 5845] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<fs/aufs/Kconfig>} {<Id.Lit_RBracket ']'>}) terminator: <Id.Op_Semi _> ) ] action: [ (C {<sed>} {<-i>} {(SQ <'s%support"$%support"\\n\\tdefault y%'>)} {<fs/aufs/Kconfig>}) (C {<sed>} {<-i>} {(SQ <'s%aufs branch"%aufs branch"\\n\\tdefault n%'>)} {<fs/aufs/Kconfig>}) ] spids: [5871 5883] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [(C {<grep>} {<-q>} {(DQ <'CONFIG_AUFS_FS=y'>)} {<.config>})] negated: T ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<echo>} {<-e>} {(DQ <Id.Lit_Other '\\'> <'033[1;31m'>)}) (C {<log_msg>} {(DQ <'For your kernel to boot AUFS as a built in is required:'>)}) (C {<log_msg>} {(DQ <'File systems -> Miscellaneous filesystems -> AUFS'>)}) (C {<echo>} {<-e>} {(DQ <Id.Lit_Other '\\'> <'033[0m'>)}) ] spids: [5909 5925] ) ] ) (C {<i386_specific_stuff>}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-f>} {<.config>} {<-a>} {<Id.KW_Bang '!'>} {<-f>} {<../DOTconfig>} {<Id.Lit_RBracket ']'>} ) (C {<cp>} {<.config>} {<../DOTconfig>}) ] ) (command.ShFunction name: do_kernel_config body: (command.BraceGroup children: [ (C {<log_msg>} {(DQ <'make '> ($ Id.VSub_Number '$1'))}) (C {<make>} {($ Id.VSub_Number '$1')}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<.config>} {<-a>} {(DQ ($ Id.VSub_DollarName '$AUTO'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <yes>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<log_msg>} { (DQ <Id.Lit_Other '\\'> < 'nOk, kernel is configured. hit ENTER to continue, CTRL+C to quit' > ) } ) (C {<read>} {<goon>}) ] spids: [6053 6078] ) ] ) ] spids: [6036 6050] ) ] else_action: [(command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})] ) ] ) ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$AUTO'))} {<Id.Lit_Equals '='>} {(DQ <yes>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [(C {<do_kernel_config>} {<oldconfig>})] spids: [6110 6128] ) ] else_action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<.config>} {<Id.Lit_RBracket ']'>}) terminator: <Id.Op_Semi _> ) ] action: [ (C {<echo>} {<-en>} { (DQ <'\n'> <'You now should configure your kernel. The supplied .config\n'> <'should be already configured but you may want to make changes, plus\n'> <'the date should be updated.'> ) } ) ] spids: [6138 6150] ) ] else_action: [ (C {<echo>} {<-en>} {(DQ <Id.Lit_Other '\\'> <'nYou must now configure the kernel'>)}) ] ) (command.Sentence child: (C {<echo>} {<-en>} { (DQ <'\n'> <'Hit a number or s to skip:\n'> <'1. make menuconfig [default] (ncurses based)\n'> <'2. make gconfig (gtk based gui)\n'> <'3. make xconfig (qt based gui)\n'> <'4. make oldconfig\n'> <'s. skip\n'> <'\n'> <'Enter option: '> ) } ) terminator: <Id.Op_Semi _> ) (C {<read>} {<kernelconfig>}) (command.Case to_match: {($ Id.VSub_DollarName '$kernelconfig')} arms: [ (case_arm pat_list: [{<1>}] action: [(C {<do_kernel_config>} {<menuconfig>})] spids: [6212 6213 6219 -1] ) (case_arm pat_list: [{<2>}] action: [(C {<do_kernel_config>} {<gconfig>})] spids: [6222 6223 6229 -1] ) (case_arm pat_list: [{<3>}] action: [(C {<do_kernel_config>} {<xconfig>})] spids: [6232 6233 6239 -1] ) (case_arm pat_list: [{<4>}] action: [(C {<do_kernel_config>} {<oldconfig>})] spids: [6242 6243 6249 -1] ) (case_arm pat_list: [{<s>}] action: [ (C {<log_msg>} {(DQ <'skipping configuration of kernel'>)}) (C {<echo>} {(DQ <'hit ENTER to continue, CTRL+C to quit'>)}) (C {<read>} {<goon>}) ] spids: [6252 6253 6275 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [(C {<do_kernel_config>} {<menuconfig>})] spids: [6278 6279 6285 -1] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} {<.config>} {<Id.Lit_RBracket ']'>}) (C {<exit_error>} {(DQ <Id.Lit_Other '\\'> <'nNo config file, exiting...'>)}) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<grep>} {<-q>} {(SQ <'CONFIG_X86_64=y'>)} {<.config>}) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:arch) op: assign_op.Equal rhs: {<x86_64>} spids: [6337] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:karch) op: assign_op.Equal rhs: {<x86>} spids: [6341] ) ] ) ] spids: [6320 6334] ) (if_arm cond: [ (command.Sentence child: (C {<grep>} {<-q>} {(SQ <'CONFIG_X86_32=y'>)} {<.config>}) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:karch) op: assign_op.Equal rhs: {<x86>} spids: [6361] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<grep>} {<-q>} {(SQ <'CONFIG_X86_32_SMP=y'>)} {<.config>}) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:arch) op: assign_op.Equal rhs: {<i686>} spids: [6382] ) ] ) ] spids: [6365 6379] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:arch) op: assign_op.Equal rhs: {<i486>} spids: [6389] ) ] ) ] ) ] spids: [6344 6358] ) (if_arm cond: [ (command.Sentence child: (C {<grep>} {<-q>} {(SQ <'CONFIG_ARM=y'>)} {<.config>}) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:arch) op: assign_op.Equal rhs: {<arm>} spids: [6415] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:karch) op: assign_op.Equal rhs: {<arm>} spids: [6419] ) ] ) ] spids: [6398 6412] ) ] else_action: [ (C {<log_msg>} {(DQ <'Your arch is unsupported.'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:arch) op: assign_op.Equal rhs: {<unknown>} spids: [6432] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:karch) op: assign_op.Equal rhs: {<arm>} spids: [6439] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:linux_kernel_dir) op: assign_op.Equal rhs: {<linux_kernel-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name package_name_suffix)} spids: [6448] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:kheaders_dir) op: assign_op.Equal rhs: { (DQ <kernel_headers-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name package_name_suffix) <-> ($ Id.VSub_DollarName '$arch') ) } spids: [6465] ) ] ) (C {<rm>} {<-rf>} {<../output/> (${ Id.VSub_Name kheaders_dir)}) (C {<log_msg>} {(DQ <'Creating the kernel headers package'>)}) (command.Simple words: [{<make>} {<headers_check>}] redirects: [ (redir.Redir op:<Id.Redir_DGreat '>>'> fd:-1 arg_word:{(${ Id.VSub_Name BUILD_LOG)}) (redir.Redir op:<Id.Redir_GreatAnd '2>&'> fd:2 arg_word:{<1>}) ] ) (command.Simple words: [ {<make>} {<Id.Lit_VarLike 'INSTALL_HDR_PATH='> (${ Id.VSub_Name kheaders_dir) </usr>} {<headers_install>} ] redirects: [ (redir.Redir op:<Id.Redir_DGreat '>>'> fd:-1 arg_word:{(${ Id.VSub_Name BUILD_LOG)}) (redir.Redir op:<Id.Redir_GreatAnd '2>&'> fd:2 arg_word:{<1>}) ] ) (C {<find>} {(${ Id.VSub_Name kheaders_dir) </usr/include>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\('>)} {<-name>} {<.install>} {<-o>} {<-name>} {<..install.cmd>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\)'>)} {<-delete>} ) (C {<mv>} {(${ Id.VSub_Name kheaders_dir)} {<../output>}) (C {<log_msg>} {(DQ <'Building aufs-utils - userspace modules'>)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<grep>} {<-q>} {(SQ <'CONFIG_AUFS_FHSM=y'>)} {<.config>}) terminator: <Id.Op_Semi _> ) ] action: [(C {<export>} {<Id.Lit_VarLike 'MAKE='> (DQ <'make BuildFHSM=yes'>)})] spids: [6579 6593] ) ] else_action: [(C {<export>} {<Id.Lit_VarLike 'MAKE='> (DQ <'make BuildFHSM=no'>)})] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LinuxSrc) op: assign_op.Equal rhs: {(${ Id.VSub_Name CWD) </output/> (${ Id.VSub_Name kheaders_dir)} spids: [6618] ) ] ) (C {<cd>} {<../aufs-util>}) (C {<export>} {<Id.Lit_VarLike 'CPPFLAGS='> (DQ <'-I '> ($ Id.VSub_DollarName '$LinuxSrc') </usr/include>)} ) (command.Simple words: [ {<echo>} { (DQ <'export CPPFLAGS='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'-I '> ($ Id.VSub_DollarName '$LinuxSrc') </usr/include> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'\n'> <'make clean\n'> ($ Id.VSub_DollarName '$MAKE') <'\n'> <'make DESTDIR='> ($ Id.VSub_DollarName '$CWD') </output/aufs-util-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name arch) <' install\n'> ) } ] redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<compile>})] ) (command.Simple words: [{<make>} {<clean>}] redirects: [(redir.Redir op:<Id.Redir_AndGreat '&>'> fd:-1 arg_word:{</dev/null>})] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{($ Id.VSub_DollarName '$MAKE')}] redirects: [ (redir.Redir op: <Id.Redir_DGreat '>>'> fd: -1 arg_word: {(${ Id.VSub_Name BUILD_LOG)} ) (redir.Redir op:<Id.Redir_GreatAnd '2>&'> fd:2 arg_word:{<1>}) ] ) (C {<exit_error>} {(DQ <'Failed to compile aufs-util'>)}) ] ) (command.Simple words: [ {<make>} {<Id.Lit_VarLike 'DESTDIR='> ($ Id.VSub_DollarName '$CWD') </output/aufs-util-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name arch) } {<install>} ] redirects: [ (redir.Redir op:<Id.Redir_DGreat '>>'> fd:-1 arg_word:{(${ Id.VSub_Name BUILD_LOG)}) (redir.Redir op:<Id.Redir_GreatAnd '2>&'> fd:2 arg_word:{<1>}) ] ) (command.Simple words: [{<make>} {<clean>}] redirects: [ (redir.Redir op:<Id.Redir_DGreat '>>'> fd:-1 arg_word:{(${ Id.VSub_Name BUILD_LOG)}) (redir.Redir op:<Id.Redir_GreatAnd '2>&'> fd:2 arg_word:{<1>}) ] ) (C {<mkdir>} {<-p>} {($ Id.VSub_DollarName '$CWD') </output/aufs-util-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name arch) </usr/lib> } ) (command.Simple words: [ {<mv>} {<-fv>} {($ Id.VSub_DollarName '$CWD') </output/aufs-util-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name arch) </libau.so> <Id.Lit_Star '*'> } {($ Id.VSub_DollarName '$CWD') </output/aufs-util-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name arch) </usr/lib> } ] redirects: [(redir.Redir op:<Id.Redir_Great '2>'> fd:2 arg_word:{</dev/null>})] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$arch'))} {<Id.Lit_Equals '='>} {(DQ <x86_64>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<mv>} {($ Id.VSub_DollarName '$CWD') </output/aufs-util-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name arch) </usr/lib> } {($ Id.VSub_DollarName '$CWD') </output/aufs-util-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name arch) </usr/lib64> } ) ] spids: [6807 6825] ) ] ) (C {<log_msg>} {(DQ <aufs-util-> (${ Id.VSub_Name kernel_version) <' is in output'>)}) (C {<cd>} {<..>}) (C {<cd>} {<linux-> (${ Id.VSub_Name kernel_version)}) (command.Simple words: [ {<echo>} { (DQ <'make '> (${ Id.VSub_Name JOBS) <' bzImage modules\n'> <'make INSTALL_MOD_PATH='> (${ Id.VSub_Name linux_kernel_dir) <' modules_install'> ) } ] redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<compile>})] ) (command.Pipeline children: [ (C {<log_msg>} {(DQ <'Compiling the kernel'>)}) (C {<tee>} {<-a>} {(${ Id.VSub_Name BUILD_LOG)}) ] negated: F ) (command.Simple words: [{<make>} {(${ Id.VSub_Name JOBS)} {<bzImage>} {<modules>}] redirects: [ (redir.Redir op:<Id.Redir_DGreat '>>'> fd:-1 arg_word:{(${ Id.VSub_Name BUILD_LOG)}) (redir.Redir op:<Id.Redir_GreatAnd '2>&'> fd:2 arg_word:{<1>}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KCONFIG) op: assign_op.Equal rhs: { (DQ <output/DOTconfig-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name HOST_ARCH) <-> (${ Id.VSub_Name today) ) } spids: [6946] ) ] ) (C {<cp>} {<.config>} {<../> (${ Id.VSub_Name KCONFIG)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$karch'))} {<Id.Lit_Equals '='>} {(DQ <x86>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} {<arch/x86/boot/bzImage>} {<-o>} {<Id.KW_Bang '!'>} {<-f>} {<System.map>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [(C {<exit_error>} {(DQ <'Error: failed to compile the kernel sources.'>)})] spids: [6993 7015] ) ] ) ] spids: [6972 6990] ) ] else_action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} {<arch/arm/boot/zImage>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [(C {<exit_error>} {(DQ <'Error: failed to compile the kernel sources.'>)})] spids: [7030 7044] ) ] ) ] ) (C {<log_msg>} {(DQ <'Creating the kernel package'>)}) (command.Simple words: [ {<make>} {<Id.Lit_VarLike 'INSTALL_MOD_PATH='> (${ Id.VSub_Name linux_kernel_dir)} {<modules_install>} ] redirects: [ (redir.Redir op:<Id.Redir_DGreat '>>'> fd:-1 arg_word:{(${ Id.VSub_Name BUILD_LOG)}) (redir.Redir op:<Id.Redir_GreatAnd '2>&'> fd:2 arg_word:{<1>}) ] ) (C {<rm>} {<-f>} (word.BracedTree parts: [ (${ Id.VSub_Name linux_kernel_dir) </lib/modules/> (${ Id.VSub_Name kernel_version) (${ Id.VSub_Name custom_suffix) </> (word_part.BracedTuple words:[{<build>} {<source>}]) ] ) ) (C {<mkdir>} {<-p>} {(${ Id.VSub_Name linux_kernel_dir) </boot>}) (C {<mkdir>} {<-p>} {(${ Id.VSub_Name linux_kernel_dir) </etc/modules>}) (C {<cp>} {<.config>} {(${ Id.VSub_Name linux_kernel_dir) </boot/config-> (${ Id.VSub_Name kernel_version) (${ Id.VSub_Name custom_suffix) } ) (C {<cp>} {<System.map>} {(${ Id.VSub_Name linux_kernel_dir) </boot/System.map-> (${ Id.VSub_Name kernel_version) (${ Id.VSub_Name custom_suffix) } ) (C {<cp>} {<.config>} {(${ Id.VSub_Name linux_kernel_dir) </etc/modules/DOTconfig-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name today) } ) (C {<cp>} {(${ Id.VSub_Name linux_kernel_dir) </lib/modules/> (${ Id.VSub_Name kernel_version) (${ Id.VSub_Name custom_suffix) </modules.builtin> } {(${ Id.VSub_Name linux_kernel_dir) </etc/modules/modules.builtin-> (${ Id.VSub_Name kernel_version) (${ Id.VSub_Name custom_suffix) } ) (C {<cp>} {(${ Id.VSub_Name linux_kernel_dir) </lib/modules/> (${ Id.VSub_Name kernel_version) (${ Id.VSub_Name custom_suffix) </modules.order> } {(${ Id.VSub_Name linux_kernel_dir) </etc/modules/modules.order-> (${ Id.VSub_Name kernel_version) (${ Id.VSub_Name custom_suffix) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BZIMAGE) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {<find>} {<.>} {<-type>} {<f>} {<-name>} {<bzImage>}) (C {<head>} {<-1>}) ] negated: F ) ] ) ) } spids: [7242] ) ] ) (C {<cp>} {(${ Id.VSub_Name BZIMAGE)} {(${ Id.VSub_Name linux_kernel_dir) </boot>}) (C {<cp>} {(${ Id.VSub_Name BZIMAGE)} {(${ Id.VSub_Name linux_kernel_dir) </boot/vmlinuz>}) (C {<mv>} {(${ Id.VSub_Name linux_kernel_dir)} {<../output>}) (C {<mv>} {<../output/> (${ Id.VSub_Name linux_kernel_dir) </boot/vmlinuz>} {<../output/vmlinuz-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name package_name_suffix)} ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-f>} {<../output/> (${ Id.VSub_Name linux_kernel_dir) </boot/bzImage>} {<Id.Lit_RBracket ']'>} ) (C {<rm>} {<-f>} {<../output/> (${ Id.VSub_Name linux_kernel_dir) </boot/bzImage>}) ] ) (C {<log_msg>} { (DQ <'Huge kernel '> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name package_name_suffix) <' is ready in dist'> ) } ) (C {<log_msg>} {(DQ <'Cleaning the kernel sources'>)}) (command.Simple words: [{<make>} {<clean>}] redirects: [ (redir.Redir op:<Id.Redir_DGreat '>>'> fd:-1 arg_word:{(${ Id.VSub_Name BUILD_LOG)}) (redir.Redir op:<Id.Redir_GreatAnd '2>&'> fd:2 arg_word:{<1>}) ] ) (command.Simple words: [{<make>} {<prepare>}] redirects: [ (redir.Redir op:<Id.Redir_DGreat '>>'> fd:-1 arg_word:{(${ Id.VSub_Name BUILD_LOG)}) (redir.Redir op:<Id.Redir_GreatAnd '2>&'> fd:2 arg_word:{<1>}) ] ) (C {<cd>} {<..>}) (C {<log_msg>} {(DQ <'Installing aufs-utils into kernel package'>)}) (C {<cp>} {<-a>} {<--remove-destination>} {<output/aufs-util-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name arch) </> <Id.Lit_Star '*'> } {<output/> (${ Id.VSub_Name linux_kernel_dir)} ) (C {<log_msg>} {(DQ <'Creating a kernel sources SFS'>)}) (C {<mkdir>} {<-p>} {<kernel_sources-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name package_name_suffix) </usr/src> } ) (C {<mv>} {<linux-> (${ Id.VSub_Name kernel_version)} {<kernel_sources-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name package_name_suffix) </usr/src/linux> } ) (C {<mkdir>} {<-p>} {<kernel_sources-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name package_name_suffix) </lib/modules/> (${ Id.VSub_Name kernel_version) (${ Id.VSub_Name custom_suffix) } ) (C {<ln>} {<-s>} {</usr/src/linux>} {<kernel_sources-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name package_name_suffix) </lib/modules/> (${ Id.VSub_Name kernel_version) (${ Id.VSub_Name custom_suffix) </build> } ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} {<kernel_sources-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name package_name_suffix) </usr/src/linux/include/linux/version.h> } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<ln>} {<-s>} {</usr/src/linux/include/generated/uapi/linux/version.h>} {<kernel_sources-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name package_name_suffix) </usr/src/linux/include/linux/version.h> } ) ] spids: [7518 7540] ) ] ) (C {<ln>} {<-s>} {</usr/src/linux>} {<kernel_sources-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name package_name_suffix) </lib/modules/> (${ Id.VSub_Name kernel_version) (${ Id.VSub_Name custom_suffix) </source> } ) (C {<mksquashfs>} {<kernel_sources-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name package_name_suffix)} {<output/kernel_sources-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name package_name_suffix) <.sfs> } {($ Id.VSub_DollarName '$COMP')} ) (command.Simple words: [ {<md5sum>} {<output/kernel_sources-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name package_name_suffix) <.sfs> } ] redirects: [ (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {<output/kernel_sources-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name package_name_suffix) <.sfs.md5.txt> } ) ] ) (command.Simple words: [ {<sha256sum>} {<output/kernel_sources-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name package_name_suffix) <.sfs> } ] redirects: [ (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {<output/kernel_sources-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name package_name_suffix) <.sfs.sha256.txt> } ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$LIBRE')} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$FW_PKG_URL'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fw_pkg) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name FW_PKG_URL> suffix_op: (suffix_op.Unary op_id: Id.VOp1_DPound arg_word: {<'*'> <Id.Lit_Slash />} ) ) } spids: [7698] ) ] ) (command.Case to_match: {($ Id.VSub_DollarName '$fw_pkg')} arms: [ (case_arm pat_list: [{<Id.Lit_Star '*'> <.sfs>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FDRV) op: assign_op.Equal rhs: {<fdrv.sfs-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name package_name_suffix) } spids: [7722] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-f>} {(DQ ($ Id.VSub_DollarName '$FW_PKG_URL'))} {<Id.Lit_RBracket ']'>} ) (C {<cp>} {(DQ ($ Id.VSub_DollarName '$FW_PKG_URL'))} {<output/> (${ Id.VSub_Name FDRV)} ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-f>} {<sources/> (${ Id.VSub_Name fw_pkg)} {<Id.Lit_RBracket ']'>} ) (C {<cp>} {<sources/> (${ Id.VSub_Name fw_pkg)} {<output/> (${ Id.VSub_Name FDRV)} ) ] ) ] spids: [7717 7719 7786 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'> <.tar.> <Id.Lit_Star '*'>}] action: [ (C {<mkdir>} {<-p>} {<output/> (${ Id.VSub_Name linux_kernel_dir) </lib>}) (C {<tar>} {<-xaf>} {<sources/> (${ Id.VSub_Name fw_pkg)} {<-C>} {<output/> (${ Id.VSub_Name linux_kernel_dir) </lib/>} ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) (C {<exit_error>} {(DQ <'failed to unpack '> (${ Id.VSub_Name fw_pkg))}) ] ) ] spids: [7789 7792 7846 -1] ) ] ) ] spids: [7683 7695] ) ] else_action: [ (C {<log_msg>} {(DQ <'Pausing here to add extra firmware.'>)}) (command.Case to_match: {(${ Id.VSub_Name FIRMWARE_OPT)} arms: [ (case_arm pat_list: [{<manual>}] action: [ (C {<log_msg>} {(DQ <'once you have manually added firmware to '>)}) (C {<log_msg>} {(DQ <output/> (${ Id.VSub_Name linux_kernel_dir) </lib/firmware>)} ) (C {<echo>} {(DQ <'hit ENTER to continue'>)}) (C {<read>} {<firm>}) ] spids: [7871 7872 7905 -1] ) (case_arm pat_list: [{<git>}] action: [ (C {<export>} {<Id.Lit_VarLike 'GIT_ALREADY_DOWNLOADED='> <yes>}) (C {<./fw.sh>} {(${ Id.VSub_Name fw_flag)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<log_msg>} { (DQ < 'Extracting firmware from the kernel.org git repo has succeeded.' > ) } ) ] spids: [7932 7946] ) ] else_action: [ (C {<log_msg>} { (DQ < 'WARNING: Extracting firmware from the kernel.org git repo has failed.' > ) } ) (C {<log_msg>} {(DQ <'While your kernel is built, your firmware is incomplete.'>)} ) ] ) ] spids: [7908 7909 7976 -1] ) ] ) ] ) ] spids: [7662 7676] ) ] ) (C {<mksquashfs>} {<output/> (${ Id.VSub_Name linux_kernel_dir)} {<output/kernel-modules.sfs-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name package_name_suffix) } {($ Id.VSub_DollarName '$COMP')} ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<Id.Lit_Equals '='>} {<0>} {<Id.Lit_RBracket ']'>} ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) (C {<log_msg>} {(DQ <'Huge compatible kernel packages are ready to package./'>)}) (C {<log_msg>} { (DQ <'Packaging huge-'> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name package_name_suffix) <' kernel'> ) } ) (C {<cd>} {<output/>}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<tar>} {<-cjvf>} {<huge-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name package_name_suffix) <.tar.bz2>} {<vmlinuz-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name package_name_suffix)} {(${ Id.VSub_Name FDRV)} {<kernel-modules.sfs-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name package_name_suffix)} ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) (C {<echo>} { (DQ <huge-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name package_name_suffix) <'.tar.bz2 is in output'> ) } ) (command.Simple words: [ {<md5sum>} {<huge-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name package_name_suffix) <.tar.bz2>} ] redirects: [ (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {<huge-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name package_name_suffix) <.tar.bz2.md5.txt> } ) ] ) (command.Simple words: [ {<sha256sum>} {<huge-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name package_name_suffix) <.tar.bz2>} ] redirects: [ (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {<huge-> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name package_name_suffix) <.tar.bz2.sha256.txt> } ) ] ) (C {<echo>}) (C {<cd>} {<->}) (C {<log_msg>} {(DQ <'Compressing the log'>)}) (C {<bzip2>} {<-9>} {<build.log>}) (C {<cp>} {<build.log.bz2>} {<output>}) (C {<log_msg>} { (DQ <'------------------\n'> <'Output files:\n'> <'- output/huge-'> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name package_name_suffix) <'.tar.bz2\n'> <' (kernel tarball: vmlinuz, modules.sfs - used in the woof process)\n'> <' you can use this to replace vmlinuz and zdrv.sfs from the current wce puppy install..\n'> <'\n'> <'- output/kernel_sources-'> (${ Id.VSub_Name kernel_version) <-> (${ Id.VSub_Name package_name_suffix) <'.sfs\n'> <' (you can use this to compile new kernel modules - load or install first..)\n'> <------------------> ) } ) (C {<echo>} {(DQ <'Done!'>)}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-f>} {</usr/share/sounds/2barks.au>} {<Id.Lit_RBracket ']'>}) (C {<aplay>} {</usr/share/sounds/2barks.au>}) ] ) ] )