# Contributor: Jakub Jirutka # Maintainer: Jakub Jirutka global pkgname := 'ruby-ffi' global _gemname := 'ffi' global pkgver := '1.9.18' global pkgrel := '0' global pkgdesc := '"Ruby FFI library'" global url := '"https://github.com/ffi/ffi'" global arch := '"all'" global license := '"BSD'" global makedepends := '"libffi-dev ruby ruby-dev'" global install := ""$pkgname.post-install"" global source := ""$pkgname-$pkgver.tar.gz::https://github.com/ffi/$_gemname/archive/$pkgver.tar.gz"" global builddir := ""$srcdir/$_gemname-$pkgver"" global options := '"!check'" # does not work with PaX (it'd need paxmark -m /usr/bin/ruby) proc build { cd $builddir gem build $_gemname.gemspec gem install --local \ --install-dir dist \ --ignore-dependencies \ --no-document \ --verbose \ $_gemname-$pkgver.gem } proc check { cd $builddir # Install missing development dependencies needed and used only for running # tests. We can't install them easily with bundler, because there's # no way how to force it to NOT update already satisifed dependencies. # We can't install them directly with gem either, because there's no # way how to force it to instally only dependencies, not the gem itself. var dev_deps = $[gem install --explain --development --minimal-deps $_gemname-$pkgver.gem \ | head -n -1 | sed -En 's/-([^-]+)$/:\1/p] gem install --instal-dir=.gem --conservative $dev_deps env GEM_PATH='dist:.gem' .gem/bin/rspec } proc package { var gemdir = ""$pkgdir/$[ruby -rubygems -e 'puts Gem.default_dir]"" var carch = '' matchstr $CARCH { x86 { carch := '"i386'"} arm* { carch := '"arm'"} ppc64le { carch := '"powerpc64'"} * { carch := $CARCH} } cd "$builddir"/dist mkdir -p $gemdir cp -r extensions gems specifications "$gemdir"/ # Remove unnecessary files and rubbish... find "$gemdir"/extensions/ -name mkmf.log -delete cd "$gemdir"/gems/$_gemname-$pkgver rm -r ext/ gen/ libtest/ spec/ lib/*.so Rakefile *.md || true find lib/ffi/platform/* -prune ! -name "$carch-linux" -exec rm -rf {} + } global sha512sums := '"49c52e5e42e436b7969c35a34b28bd7929d75372638ac5373486a1d624026c12dc682009bc101e4a2c8f1442ed6f1ba17b438cda2e02d4256622b489c4bd9945 ruby-ffi-1.9.18.tar.gz'" (CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgname) op:Equal rhs:{(ruby-ffi)} spids:[6])] spids: [6] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:_gemname) op:Equal rhs:{(ffi)} spids:[9])] spids: [9] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgver) op:Equal rhs:{(1.9.18)} 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 ("Ruby FFI library"))} spids: [18] ) ] spids: [18] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:url) op: Equal rhs: {(DQ ("https://github.com/ffi/ffi"))} 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 (BSD))} spids:[33])] spids: [33] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:makedepends) op: Equal rhs: {(DQ ("libffi-dev ruby ruby-dev"))} spids: [38] ) ] spids: [38] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:install) op: Equal rhs: {(DQ ($ VSub_Name "$pkgname") (.post-install))} spids: [43] ) ] spids: [43] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:source) op: Equal rhs: { (DQ ($ VSub_Name "$pkgname") (-) ($ VSub_Name "$pkgver") (".tar.gz::https://github.com/ffi/") ($ VSub_Name "$_gemname") (/archive/) ($ VSub_Name "$pkgver") (.tar.gz) ) } spids: [49] ) ] spids: [49] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:builddir) op: Equal rhs: {(DQ ($ VSub_Name "$srcdir") (/) ($ VSub_Name "$_gemname") (-) ($ VSub_Name "$pkgver"))} spids: [61] ) ] spids: [61] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:options) op:Equal rhs:{(DQ ("!check"))} spids:[70])] spids: [70] ) (FuncDef name: build body: (BraceGroup children: [ (C {(cd)} {(DQ ($ VSub_Name "$builddir"))}) (C {(gem)} {(build)} {($ VSub_Name "$_gemname") (.gemspec)}) (C {(gem)} {(install)} {(--local)} {(--install-dir)} {(dist)} {(--ignore-dependencies)} {(--no-document)} {(--verbose)} {($ VSub_Name "$_gemname") (-) ($ VSub_Name "$pkgver") (.gem)} ) ] spids: [83] ) spids: [79 82] ) (FuncDef name: check body: (BraceGroup children: [ (C {(cd)} {(DQ ($ VSub_Name "$builddir"))}) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:dev_deps) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(gem)} {(install)} {(--explain)} {(--development)} {(--minimal-deps)} {($ VSub_Name "$_gemname") (-) ($ VSub_Name "$pkgver") (.gem)} ) (C {(head)} {(-n)} {(-1)}) (C {(sed)} {(-En)} {(SQ <"s/-([^-]+)$/:\\1/p">)}) ] negated: False ) ] ) left_token: spids: [174 209] ) } spids: [173] ) ] spids: [171] ) (C {(gem)} {(install)} {(--instal-dir) (Lit_Other "=") (.gem)} {(--conservative)} {($ VSub_Name "$dev_deps")} ) (SimpleCommand words: [{(.gem/bin/rspec)}] more_env: [(env_pair name:GEM_PATH val:{(SQ <"dist:.gem">)} spids:[226])] ) ] spids: [140] ) spids: [136 139] ) (FuncDef name: package body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:gemdir) op: Equal rhs: { (DQ ($ VSub_Name "$pkgdir") (/) (CommandSubPart command_list: (CommandList children: [ (C {(ruby)} {(-rubygems)} {(-e)} {(SQ <"puts Gem.default_dir">)}) ] ) left_token: spids: [249 259] ) ) } spids: [245] ) ] spids: [243] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:carch) op:Equal spids:[266])] spids: [264] ) (Case to_match: {(DQ ($ VSub_Name "$CARCH"))} arms: [ (case_arm pat_list: [{(x86)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:carch) op: Equal rhs: {(DQ (i386))} spids: [281] ) ] spids: [281] ) ] spids: [278 279 285 -1] ) (case_arm pat_list: [{(arm) (Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:carch) op: Equal rhs: {(DQ (arm))} spids: [292] ) ] spids: [292] ) ] spids: [288 290 296 -1] ) (case_arm pat_list: [{(ppc64le)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:carch) op: Equal rhs: {(DQ (powerpc64))} spids: [302] ) ] spids: [302] ) ] spids: [299 300 306 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:carch) op: Equal rhs: {(DQ ($ VSub_Name "$CARCH"))} spids: [312] ) ] spids: [312] ) ] spids: [309 310 316 -1] ) ] spids: [269 275 319] ) (C {(cd)} {(DQ ($ VSub_Name "$builddir")) (/dist)}) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$gemdir"))}) (C {(cp)} {(-r)} {(extensions)} {(gems)} {(specifications)} {(DQ ($ VSub_Name "$gemdir")) (/)}) (C {(find)} {(DQ ($ VSub_Name "$gemdir")) (/extensions/)} {(-name)} {(mkmf.log)} {(-delete)}) (C {(cd)} {(DQ ($ VSub_Name "$gemdir")) (/gems/) ($ VSub_Name "$_gemname") (-) ($ VSub_Name "$pkgver") } ) (AndOr children: [ (C {(rm)} {(-r)} {(ext/)} {(gen/)} {(libtest/)} {(spec/)} {(lib/) (Lit_Other "*") (.so)} {(Rakefile)} {(Lit_Other "*") (.md)} ) (C {(true)}) ] op_id: Op_DPipe ) (C {(find)} {(lib/ffi/platform/) (Lit_Other "*")} {(-prune)} {(KW_Bang "!")} {(-name)} {(DQ ($ VSub_Name "$carch") (-linux))} {(-exec)} {(rm)} {(-rf)} {(Lit_LBrace "{") (Lit_RBrace "}")} {(Lit_Other "+")} ) ] spids: [240] ) spids: [236 239] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sha512sums) op: Equal rhs: { (DQ ( "49c52e5e42e436b7969c35a34b28bd7929d75372638ac5373486a1d624026c12dc682009bc101e4a2c8f1442ed6f1ba17b438cda2e02d4256622b489c4bd9945 ruby-ffi-1.9.18.tar.gz" ) ) } spids: [444] ) ] spids: [444] ) ] )