# Contributor: Michael Mason # Contributor: Leonardo Arena # Maintainer: Natanael Copa global pkgname := 'snort' global pkgver := '2.9.9.0' global pkgrel := '0' global pkgdesc := '"An open source network intrusion prevention and detection system'" global url := '"http://www.snort.org/'" global arch := '"all'" global license := '"GPL'" global depends := '' global makedepends := '"pcre-dev libpcap-dev libnet-dev libdnet-dev daq-dev bison flex zlib-dev libtirpc-dev'" global install := ""$pkgname.pre-install"" global subpackages := ""$pkgname-doc $pkgname-dev"" global source := ""https://www.snort.org/downloads/snort/snort-$pkgver.tar.gz snort.initd snort.confd "" global pkgusers := '"snort'" global pkggroups := '"snort'" global _builddir := ""$srcdir/$pkgname-$pkgver"" proc prepare { cd $_builddir for i in [$source] { matchstr $i { *.patch { msg $i; patch -p1 -i "$srcdir"/$i || return 1} } } # fix parallel builds # sed -i -e 's/^all-local:.*/all-local: $(LTLIBRARIES)/' \ # src/dynamic-preprocessors/*/Makefile.am || return 1 # correct paths in default config file sed -i -e 's|/usr/local|/usr|' etc/snort.conf || return 1 sed -i -e 's|\.\./|/var/lib/snort/|' etc/snort.conf || return 1 } proc build { cd $_builddir export CFLAGS="$CFLAGS $[pkgconf --cflags libtirpc]" export LDFLAGS="$LDFLAGS $[pkgconf --libs libtirpc]" ./configure \ --build=$CBUILD \ --host=$CHOST \ --prefix=/usr \ --sysconfdir=/etc \ --mandir=/usr/share/man \ --infodir=/usr/share/info \ --enable-ipv6 \ --enable-gre \ --enable-non-ether-decoders \ || return 1 make || return 1 } proc package { cd $_builddir make -j1 DESTDIR="$pkgdir" install install -D -m 755 ../snort.initd "$pkgdir"/etc/init.d/snort install -D -m 644 ../snort.confd "$pkgdir"/etc/conf.d/snort install -D -m 644 etc/snort.conf "$pkgdir"/etc/snort/snort.conf install -D -m 644 rpm/snort.logrotate "$pkgdir"/etc/logrotate.d/snort mkdir -p "$pkgdir"/usr/lib/snort_dynamicrules mkdir -p "$pkgdir"/var/lib/snort/rules mkdir -m 770 -p "$pkgdir"/var/log/snort && chown snort.snort "$pkgdir"/var/log/snort for file in [classification.config reference.config threshold.conf \ unicode.map] { ln -s /var/lib/snort/etc/$file "$pkgdir"/etc/snort/$file } touch "$pkgdir"/var/lib/snort/rules/white_list.rules touch "$pkgdir"/var/lib/snort/rules/black_list.rules } global md5sums := '"fd3012bf36710481d66b40ad046b231d snort-2.9.9.0.tar.gz f163599315be80d682a51f8d22849ab5 snort.initd 446f8d2b3435b8a6be738da978670605 snort.confd'" global sha256sums := '"71b147125e96390a12f3d55796ed5073df77206bd3563d84d3e5a1f19e7d7a56 snort-2.9.9.0.tar.gz d447f1481a49543878030d361c8c31a6538c41b2c57e1c0cffd858cc5f83f70b snort.initd d504cb31ffcce9acc8fc7b68123a31a53b491444c52730339ea9a4e986521f71 snort.confd'" global sha512sums := '"2c17539c80484c90198a2e5d5efd1e70f26afb79ce7c28e745ded356b6f1a1f97763ff21fde986652af1768fa3bcdafbbcc3c82ee8ad6d2ef0471f360cfcab83 snort-2.9.9.0.tar.gz c71d11f4cde4aba432641d3915faec8070e9fea5b33c71f6b2872b2208871180b3c7dbbadd2ddaebe5f3280adf7c5c9daf1585afd331fe552486a675ff676e52 snort.initd abc0846ea6e08029c772f24e213f211a39219701e6e2c8b3aa112632318479db7b21014c5f2c4987cb2981cafce0ea744549c3ce754e9145cba9ec5604ae66f3 snort.confd'" (CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgname) op:Equal rhs:{(snort)} spids:[9])] spids: [9] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgver) op:Equal rhs:{(2.9.9.0)} spids:[12])] spids: [12] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgrel) op:Equal rhs:{(0)} spids:[15])] spids: [15] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ("An open source network intrusion prevention and detection system"))} spids: [18] ) ] spids: [18] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:url) op: Equal rhs: {(DQ ("http://www.snort.org/"))} spids: [23] ) ] spids: [23] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:arch) op:Equal rhs:{(DQ (all))} spids:[28])] spids: [28] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:license) op:Equal rhs:{(DQ (GPL))} spids:[33])] spids: [33] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:depends) op:Equal rhs:{(SQ )} spids:[38])] spids: [38] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:makedepends) op: Equal rhs: { (DQ ("pcre-dev libpcap-dev libnet-dev libdnet-dev daq-dev\n") ("\tbison flex zlib-dev libtirpc-dev") ) } spids: [40] ) ] spids: [40] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:install) op: Equal rhs: {(DQ ($ VSub_Name "$pkgname") (.pre-install))} spids: [46] ) ] spids: [46] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:subpackages) op: Equal rhs: {(DQ ($ VSub_Name "$pkgname") ("-doc ") ($ VSub_Name "$pkgname") (-dev))} spids: [52] ) ] spids: [52] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:source) op: Equal rhs: { (DQ ("https://www.snort.org/downloads/snort/snort-") ($ VSub_Name "$pkgver") (".tar.gz\n") (" snort.initd\n") (" snort.confd\n") ("\t") ) } spids: [60] ) ] spids: [60] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgusers) op:Equal rhs:{(DQ (snort))} spids:[70])] spids: [70] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkggroups) op:Equal rhs:{(DQ (snort))} spids:[75])] spids: [75] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_builddir) op: Equal rhs: {(DQ ($ VSub_Name "$srcdir") (/) ($ VSub_Name "$pkgname") (-) ($ VSub_Name "$pkgver"))} spids: [81] ) ] spids: [81] ) (FuncDef name: prepare body: (BraceGroup children: [ (C {(cd)} {(DQ ($ VSub_Name "$_builddir"))}) (ForEach iter_name: i iter_words: [{($ VSub_Name "$source")}] do_arg_iter: False body: (DoGroup children: [ (Case to_match: {($ VSub_Name "$i")} arms: [ (case_arm pat_list: [{(Lit_Other "*") (.patch)}] action: [ (Sentence child: (C {(msg)} {($ VSub_Name "$i")}) terminator: ) (AndOr children: [ (C {(patch)} {(-p1)} {(-i)} {(DQ ($ VSub_Name "$srcdir")) (/) ($ VSub_Name "$i")} ) (ControlFlow token: arg_word: {(1)} ) ] op_id: Op_DPipe ) ] spids: [123 125 149 -1] ) ] spids: [116 120 152] ) ] spids: [113 155] ) spids: [109 111] ) (AndOr children: [ (C {(sed)} {(-i)} {(-e)} {(SQ <"s|/usr/local|/usr|">)} {(etc/snort.conf)}) (ControlFlow token: arg_word:{(1)}) ] op_id: Op_DPipe ) (AndOr children: [ (C {(sed)} {(-i)} {(-e)} {(SQ <"s|\\.\\./|/var/lib/snort/|">)} {(etc/snort.conf)}) (ControlFlow token: arg_word:{(1)}) ] op_id: Op_DPipe ) ] spids: [94] ) spids: [90 93] ) (FuncDef name: build body: (BraceGroup children: [ (C {(cd)} {(DQ ($ VSub_Name "$_builddir"))}) (C {(export)} {(Lit_VarLike "CFLAGS=") (DQ ($ VSub_Name "$CFLAGS") (" ") (CommandSubPart command_list: (CommandList children:[(C {(pkgconf)} {(--cflags)} {(libtirpc)})]) left_token: spids: [233 239] ) ) } ) (C {(export)} {(Lit_VarLike "LDFLAGS=") (DQ ($ VSub_Name "$LDFLAGS") (" ") (CommandSubPart command_list: (CommandList children:[(C {(pkgconf)} {(--libs)} {(libtirpc)})]) left_token: spids: [249 255] ) ) } ) (AndOr children: [ (C {(./configure)} {(--build) (Lit_Other "=") ($ VSub_Name "$CBUILD")} {(--host) (Lit_Other "=") ($ VSub_Name "$CHOST")} {(--prefix) (Lit_Other "=") (/usr)} {(--sysconfdir) (Lit_Other "=") (/etc)} {(--mandir) (Lit_Other "=") (/usr/share/man)} {(--infodir) (Lit_Other "=") (/usr/share/info)} {(--enable-ipv6)} {(--enable-gre)} {(--enable-non-ether-decoders)} ) (ControlFlow token: arg_word:{(1)}) ] op_id: Op_DPipe ) (AndOr children: [(C {(make)}) (ControlFlow token: arg_word:{(1)})] op_id: Op_DPipe ) ] spids: [217] ) spids: [213 216] ) (FuncDef name: package body: (BraceGroup children: [ (C {(cd)} {(DQ ($ VSub_Name "$_builddir"))}) (C {(make)} {(-j1)} {(Lit_VarLike "DESTDIR=") (DQ ($ VSub_Name "$pkgdir"))} {(install)}) (C {(install)} {(-D)} {(-m)} {(755)} {(../snort.initd)} {(DQ ($ VSub_Name "$pkgdir")) (/etc/init.d/snort)} ) (C {(install)} {(-D)} {(-m)} {(644)} {(../snort.confd)} {(DQ ($ VSub_Name "$pkgdir")) (/etc/conf.d/snort)} ) (C {(install)} {(-D)} {(-m)} {(644)} {(etc/snort.conf)} {(DQ ($ VSub_Name "$pkgdir")) (/etc/snort/snort.conf)} ) (C {(install)} {(-D)} {(-m)} {(644)} {(rpm/snort.logrotate)} {(DQ ($ VSub_Name "$pkgdir")) (/etc/logrotate.d/snort)} ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/lib/snort_dynamicrules)}) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$pkgdir")) (/var/lib/snort/rules)}) (AndOr children: [ (C {(mkdir)} {(-m)} {(770)} {(-p)} {(DQ ($ VSub_Name "$pkgdir")) (/var/log/snort)}) (C {(chown)} {(snort.snort)} {(DQ ($ VSub_Name "$pkgdir")) (/var/log/snort)}) ] op_id: Op_DAmp ) (ForEach iter_name: file iter_words: [ {(classification.config)} {(reference.config)} {(threshold.conf)} {(unicode.map)} ] do_arg_iter: False body: (DoGroup children: [ (C {(ln)} {(-s)} {(/var/lib/snort/etc/) ($ VSub_Name "$file")} {(DQ ($ VSub_Name "$pkgdir")) (/etc/snort/) ($ VSub_Name "$file")} ) ] spids: [482 499] ) spids: [470 -1] ) (C {(touch)} {(DQ ($ VSub_Name "$pkgdir")) (/var/lib/snort/rules/white_list.rules)}) (C {(touch)} {(DQ ($ VSub_Name "$pkgdir")) (/var/lib/snort/rules/black_list.rules)}) ] spids: [333] ) spids: [329 332] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:md5sums) op: Equal rhs: { (DQ ("fd3012bf36710481d66b40ad046b231d snort-2.9.9.0.tar.gz\n") ("f163599315be80d682a51f8d22849ab5 snort.initd\n") ("446f8d2b3435b8a6be738da978670605 snort.confd") ) } spids: [520] ) ] spids: [520] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sha256sums) op: Equal rhs: { (DQ ( "71b147125e96390a12f3d55796ed5073df77206bd3563d84d3e5a1f19e7d7a56 snort-2.9.9.0.tar.gz\n" ) ("d447f1481a49543878030d361c8c31a6538c41b2c57e1c0cffd858cc5f83f70b snort.initd\n") ("d504cb31ffcce9acc8fc7b68123a31a53b491444c52730339ea9a4e986521f71 snort.confd") ) } spids: [527] ) ] spids: [527] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sha512sums) op: Equal rhs: { (DQ ( "2c17539c80484c90198a2e5d5efd1e70f26afb79ce7c28e745ded356b6f1a1f97763ff21fde986652af1768fa3bcdafbbcc3c82ee8ad6d2ef0471f360cfcab83 snort-2.9.9.0.tar.gz\n" ) ( "c71d11f4cde4aba432641d3915faec8070e9fea5b33c71f6b2872b2208871180b3c7dbbadd2ddaebe5f3280adf7c5c9daf1585afd331fe552486a675ff676e52 snort.initd\n" ) ( "abc0846ea6e08029c772f24e213f211a39219701e6e2c8b3aa112632318479db7b21014c5f2c4987cb2981cafce0ea744549c3ce754e9145cba9ec5604ae66f3 snort.confd" ) ) } spids: [534] ) ] spids: [534] ) ] )