(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pkgname) op: assign_op.Equal rhs: {<sane>} spids: [9] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_pkgname) op: assign_op.Equal rhs: {<sane-backends>} spids: [12] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pkgver) op: assign_op.Equal rhs: {<1.0.27>} spids: [15] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pkgrel) op: assign_op.Equal rhs: {<1>} spids: [18] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pkgdesc) op: assign_op.Equal rhs: {(DQ <'Scanner Access Now Easy - an universal scanner interface'>)} spids: [21] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:url) op: assign_op.Equal rhs: {(DQ <'http://www.sane-project.org/'>)} spids: [26] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:arch) op: assign_op.Equal rhs: {(DQ <'x86 x86_64'>)} spids: [31] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:license) op: assign_op.Equal rhs: {(DQ <'GPLv2.0+ GPLv2.0+-with-sane-exception public-domain'>)} spids: [36] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:depends) op: assign_op.Equal rhs: {(DQ )} spids: [41] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:depends_dev) op: assign_op.Equal rhs: {(DQ )} spids: [45] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:makedepends) op: assign_op.Equal rhs: { (DQ < 'diffutils file libtool libusb-dev v4l-utils-dev net-snmp-dev avahi-dev libpng-dev\n' > <'\tlibjpeg-turbo-dev tiff-dev libgphoto2-dev libieee1284-dev linux-headers'> ) } spids: [49] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:install) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$pkgname') <'-saned.pre-install '> ($ Id.VSub_DollarName '$pkgname') <.pre-install> ) } spids: [55] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pkgusers) op: assign_op.Equal rhs: {(DQ <saned>)} spids: [63] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pkggroups) op: assign_op.Equal rhs: {(DQ <scanner>)} spids: [68] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_backends) op: assign_op.Equal rhs: { (DQ < 'abaton agfafocus apple artec artec_eplus48u as6e avision bh canon canon630u canon_dr canon_pp cardscan\n' > < '\tcoolscan coolscan2 coolscan3 dc25 dc210 dc240 dell1600n_net dmc epjitsu epson epson2 epsonds fujitsu genesys\n' > < '\tgphoto2 gt68xx hp hp3500 hp3900 hp4200 hp5400 hp5590 hpsj5s hpljm1005 hs2p ibm kodak kodakaio kvs1025 kvs20xx\n' > < '\tkvs40xx leo lexmark ma1509 magicolor matsushita microtek microtek2 mustek mustek_pp mustek_usb mustek_usb2\n' > < '\tnec net niash pie pieusb pixma plustek plustek_pp ricoh rts8891 s9036 sceptre sharp sm3600 sm3840 snapscan\n' > <'\tsp15c st400 stv680 tamarack teco1 teco2 teco3 test u12 umax umax_pp umax1220u v4l xerox_mfp p5'> ) } spids: [73] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$CARCH'))} arms: [ (case_arm pat_list: [{<x86> <Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_backends) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$_backends') <' qcam'>)} spids: [95] ) ] ) ] spids: [91 93 100 -1] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_pkgdesc_dell1600n_net) op: assign_op.Equal rhs: { (DQ < 'SANE backend for Dell 1600n that supports colour and monochrome scans over ethernet, usb not supported' > ) } spids: [105] ) ] ) (command.ForEach iter_name: _backend iter_words: [{($ Id.VSub_DollarName '$_backends')}] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:subpackages) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$subpackages') <' '> ($ Id.VSub_DollarName '$pkgname') <-backend-> ($ Id.VSub_DollarName '$_backend') <':_backend'> ) } spids: [122] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:subpackages) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$pkgname') <'-doc '> ($ Id.VSub_DollarName '$pkgname') <'-dev '> ($ Id.VSub_DollarName '$subpackages') <' '> ($ Id.VSub_DollarName '$pkgname') <'-utils '> ($ Id.VSub_DollarName '$pkgname') <'-saned\n'> <'\t'> ($ Id.VSub_DollarName '$pkgname') <'-udev::noarch '> ($ Id.VSub_DollarName '$_pkgname') <'::noarch'> ) } spids: [134] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:source) op: assign_op.Equal rhs: { (DQ <'https://alioth.debian.org/frs/download.php/file/4224/'> ($ Id.VSub_DollarName '$_pkgname') <-> ($ Id.VSub_DollarName '$pkgver') <'.tar.gz\n'> <'\t'> ($ Id.VSub_DollarName '$pkgname') <'-saned.initd\n'> <'\tinclude.patch\n'> <'\tnetwork.patch\n'> <'\tpidfile.patch\n'> <'\tcheck.patch\n'> <'\t'> ) } spids: [153] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:builddir) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$srcdir')) <'/'> ($ Id.VSub_DollarName '$_pkgname') <-> ($ Id.VSub_DollarName '$pkgver') } spids: [170] ) ] ) (command.ShFunction name: build body: (BraceGroup children: [ (C {<cd>} {(DQ ($ Id.VSub_DollarName '$builddir'))}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<'./configure'>} {<--prefix> <Id.Lit_Equals '='> <'/usr'>} {<--sysconfdir> <Id.Lit_Equals '='> <'/etc'>} {<--with-docdir> <Id.Lit_Equals '='> <'/usr/share/doc/'> ($ Id.VSub_DollarName '$pkgname')} {<--with-usb>} {<--enable-avahi>} {<--disable-rpath>} {<--disable-locking>} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) (C {<make>}) ] ) ) (command.ShFunction name: check body: (BraceGroup children: [(C {<cd>} {(DQ ($ Id.VSub_DollarName '$builddir'))}) (C {<make>} {<check>})] ) ) (command.ShFunction name: package body: (BraceGroup children: [ (C {<cd>} {(DQ ($ Id.VSub_DollarName '$builddir'))}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<make>} {<Id.Lit_VarLike 'DESTDIR='> (DQ ($ Id.VSub_DollarName '$pkgdir'))} {<install>} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) (command.Simple words: [{<echo>} {<-n>} {(DQ )}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/etc/'> ($ Id.VSub_DollarName '$pkgname') <'.d/dll.conf'> } ) ] do_fork: T ) (C {<install>} {<-Dm644>} {<'backend/dll.aliases'>} {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/etc/'> ($ Id.VSub_DollarName '$pkgname') <'.d/dll.aliases'> } ) ] ) ) (command.ShFunction name: doc body: (BraceGroup children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<default_doc>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/share/licenses/'> ($ Id.VSub_DollarName '$_pkgname') } ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) (C {<mv>} {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/share/doc/'> ($ Id.VSub_DollarName '$_pkgname') <'/LICENSE'> } {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/share/licenses/'> ($ Id.VSub_DollarName '$_pkgname')} ) ] ) ) (command.ShFunction name: saned body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'name='> (braced_var_sub token: <Id.VSub_Name subpkgname> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Pound '#'> arg_word: {($ Id.VSub_DollarName '$pkgname') <->} ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pkgdesc) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$pkgdesc') <' (network scanner server)'>)} spids: [400] ) ] ) (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/etc/'> ($ Id.VSub_DollarName '$pkgname') <.d> } {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr'>} ) (C {<mv>} {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/etc/'> ($ Id.VSub_DollarName '$pkgname') <'.d/'> ($ Id.VSub_DollarName '$name') <.conf> } {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/etc/'> ($ Id.VSub_DollarName '$pkgname') <.d>} ) (C {<mv>} {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/sbin'>} {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/'>} ) (C {<install>} {<-Dm755>} {(DQ ($ Id.VSub_DollarName '$srcdir')) <'/'> ($ Id.VSub_DollarName '$pkgname') <-> ($ Id.VSub_DollarName '$name') <.initd> } {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/etc/init.d/'> ($ Id.VSub_DollarName '$name')} ) ] ) ) (command.ShFunction name: utils body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pkgdesc) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$pkgdesc') <' (utilities)'>)} spids: [485] ) ] ) (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr'>}) (C {<mv>} {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/bin'>} {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr'>} ) (C {<rm>} {<-fr>} {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/share'>}) ] ) ) (command.ShFunction name: udev body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pkgdesc) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$pkgdesc') <' (udev rules)'>)} spids: [534] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:install_if) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$pkgname') <'='> ($ Id.VSub_DollarName '$pkgver') <-r> ($ Id.VSub_DollarName '$pkgrel') <' udev'> ) } spids: [541] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<install>} {<-Dm644>} {(DQ ($ Id.VSub_DollarName '$builddir')) <'/tools/udev/lib'> ($ Id.VSub_DollarName '$pkgname') <.rules> } {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/lib/udev/rules.d/49-'> ($ Id.VSub_DollarName '$pkgname') <.rules> } ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) (C {<sed>} {<-i>} {(SQ <'s|NAME="%k", ||g'>)} {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/lib/udev/rules.d/49-'> ($ Id.VSub_DollarName '$pkgname') <.rules> } ) ] ) ) (command.ShFunction name: backends body: (BraceGroup children: [ (command.Sentence child:(C {<local>} {<_backend>}) terminator:<Id.Op_Semi _>) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pkgdesc) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$pkgdesc') <' (metapackage)'>)} spids: [610] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:depends) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$pkgname') <'-utils '> ($ Id.VSub_DollarName '$pkgname') <-saned> ) } spids: [617] ) ] ) (command.ForEach iter_name: _backend iter_words: [{($ Id.VSub_DollarName '$_backends')}] do_arg_iter: F body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$_backend'))} {<Id.Lit_Equals '='>} {(DQ <test>)} {<Id.Lit_RBracket ']'>} ) (command.ControlFlow token: <Id.ControlFlow_Continue continue> ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:depends) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$depends') <' '> ($ Id.VSub_DollarName '$pkgname') <-backend-> ($ Id.VSub_DollarName '$_backend') ) } spids: [657] ) ] ) ] ) ) (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$subpkgdir'))}) ] ) ) (command.ShFunction name: _backend body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'name='> (braced_var_sub token: <Id.VSub_Name subpkgname> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Pound '#'> arg_word: {($ Id.VSub_DollarName '$pkgname') <-backend->} ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:depends) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$pkgname'))} spids: [699] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pkgdesc) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<eval>} {<echo>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <_pkgdesc_> ($ Id.VSub_DollarName '$name') } ) ) } spids: [705] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {(DQ ($ Id.VSub_DollarName '$pkgdesc'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pkgdesc) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [{<tr>} {(SQ <'\\n'>)} {(SQ <' '>)}] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {(DQ ($ Id.VSub_DollarName '$builddir')) <'/doc/'> ($ Id.VSub_DollarName '$pkgname') <-> ($ Id.VSub_DollarName '$name') <.man> } ) ] do_fork: T ) ) } spids: [737] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pkgdesc) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name pkgdesc> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Pound '#'> arg_word: {<Id.Lit_Other '*'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\-'> ) <' '> } ) ) } spids: [762] ) ] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pkgdesc) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name pkgdesc> suffix_op: (suffix_op.Unary tok: <Id.VOp1_DPercent '%%'> arg_word: {<' .SH '> <Id.Lit_Other '*'>} ) ) } spids: [772] ) ] ) terminator: <Id.Op_Semi _> ) ] spids: [717 730] ) ] ) (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/lib/'> ($ Id.VSub_DollarName '$pkgname') } {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/etc/'> ($ Id.VSub_DollarName '$pkgname') <'.d/dll.d'>} ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<mv>} {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/lib/'> ($ Id.VSub_DollarName '$pkgname') <'/lib'> ($ Id.VSub_DollarName '$pkgname') <-> ($ Id.VSub_DollarName '$name') <.> <Id.Lit_Star '*'> } {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/lib/'> ($ Id.VSub_DollarName '$pkgname')} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) (command.Simple words: [{<echo>} {(DQ ($ Id.VSub_DollarName '$name'))}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/etc/'> ($ Id.VSub_DollarName '$pkgname') <'.d/dll.d/'> ($ Id.VSub_DollarName '$name') } ) ] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/etc/'> ($ Id.VSub_DollarName '$pkgname') <'.d/'> ($ Id.VSub_DollarName '$name') <.conf> } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<mv>} {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/etc/'> ($ Id.VSub_DollarName '$pkgname') <'.d/'> ($ Id.VSub_DollarName '$name') <.conf> } {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/etc/'> ($ Id.VSub_DollarName '$pkgname') <.d>} ) ] spids: [851 869] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/bin/'> ($ Id.VSub_DollarName '$name') } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/bin'>}) (C {<mv>} {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/bin/'> ($ Id.VSub_DollarName '$name') } {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/bin'>} ) ] spids: [896 911] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:sha512sums) op: assign_op.Equal rhs: { (DQ < 'c6552768bfc10216730fc11011c82f74ca0952182019ded3916072147ec09be5c975ce1d37dc3ccea050c488dbdf983c2ca17dcd702644060ba796ae2591f9c5 sane-backends-1.0.27.tar.gz\n' > < '0a06eaa28b345202f2bdf8361e06f843bb7a010b7d8f80132f742672c94249c43f64031cefa161e415e2e2ab3a53b23070fb63854283f9e040f5ff79394ac7d1 sane-saned.initd\n' > < '1779ff8beb1ba5f9238c25d819a7f0045f7e257c19b511315feb85650e445ca86450a9e1d7ff8650499d3dae808589a6c2e358d5f3f39a3f40ce4999179b86d6 include.patch\n' > < '9cb595841f59b5105ecc85e4c0ad8781c52caa2354fb823c920ec467e88afbe47f2b3f4a7a3980bef5dbf22983c5786f051a9d10aea97b4bf7c4a05378592029 network.patch\n' > < '09505943f9441854a6c333f19e2535b4a646a8cc060fe82c6261e7d29c72773ebe98d43a91acc951f4336a3c8b4c84ab7c7b0763426136b4b59d9546bc2fa8c0 pidfile.patch\n' > < 'cfa327209efd9a2a2db7cbcf571852959823aaa19b43d5f6415834cd5ae38b6324ecae16779f6f896aa0d7ac890fe23244100b7d6a68e5e9d52cd38ec82bfac8 check.patch' > ) } spids: [943] ) ] ) ] )