# Contributor: Carlo Landmeter # Contributor: Jakub Jirutka # Maintainer: global pkgname := 'tarantool' global pkgver := '1.7.4.335' global _series := $(pkgver%.*); global _series := $(_series%.*) # x.y global pkgrel := '2' global pkgdesc := '"Lua application server integrated with a database management system'" global url := '"https://tarantool.org'" # x86, aarch64: fails to build # armhf: zstd not available (fails to build) # ppc64le: not supported by LuaJIT w/o patches # s390x: not supported by LuaJIT global arch := '"x86_64'" global license := '"BSD-2-Clause MIT Public-Domain'" global pkgusers := $pkgname global pkggroups := $pkgname global install := ""$pkgname.pre-install"" global checkdepends := '"python2-dev py2-argparse py2-gevent py2-msgpack py2-six py2-yaml'" global makedepends := '"cmake curl-dev luajit-dev libcoro-dev libressl-dev msgpuck-dev perl python2 readline-dev yaml-dev zstd-dev'" global subpackages := ""$pkgname-dev $pkgname-doc"" global source := ""http://download.tarantool.org/tarantool/$_series/src/$pkgname-$pkgver.tar.gz $pkgname.initd unbundle-dependencies.patch tests-musl-compat.patch tests-libressl-compat.patch"" global builddir := ""$srcdir/$pkgname-$pkgver"" proc prepare { default_prepare cd $builddir # XXX: This test doesn't work, probably due to fakeroot. rm test/xlog-py/misc.test.py # msgpuck.h is in /usr/include, not /usr/include/msgpuck. find . -name '*.c' -o -name '*.cc' \ | xargs -n 1 sed -Ei 's|#include\s*["<]msgpuck/msgpuck\.h[">]|#include |' # Remove bundled libraries. rm -r src/lib/msgpuck cd third_party rm -r coro libyaml zstd } proc build { cd $builddir # Bundled libraries: # - libgopt (Public Domain): probably patched, it does not correspond # to 8.1 as stated in header # - luajit (MIT): tarantool requires non-exported symbols, so cannot link # dynamically; linking with system static libluajit doesn't work too cmake \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_CXX_FLAGS="$CXXFLAGS" \ -DCMAKE_C_FLAGS="$CFLAGS" \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_LIBDIR=lib \ -DCMAKE_INSTALL_SYSCONFDIR=/etc \ -DCMAKE_SKIP_RPATH=ON \ -DCMAKE_VERBOSE_MAKEFILE=ON \ -DENABLE_BUNDLED_LIBCORO=OFF \ -DENABLE_BUNDLED_LIBGOPT=ON \ -DENABLE_BUNDLED_LIBYAML=OFF \ -DENABLE_BUNDLED_LUAJIT=ON \ -DENABLE_BUNDLED_MSGPUCK=OFF \ -DENABLE_BUNDLED_ZSTD=OFF \ -DENABLE_DIST=ON \ -DWITH_SYSVINIT=OFF \ -DWITH_SYSTEMD=OFF make VERBOSE=1 -j2 # there's some problem with parallel build } proc check { cd "$builddir"/test ../src/tarantool --help > /dev/null # TODO: Some tests are broken, fix it! # --force means that it will not stop after first error. #python2 test-run.py --force } proc package { cd $builddir make DESTDIR="$pkgdir" install rm -R "$pkgdir"/etc/default install -Dm755 "$srcdir"/tarantool.initd "$pkgdir"/etc/init.d/tarantool } global sha512sums := '"c95a6900d9e9b9963bb038f28f3e47d0f8fd66159efef99b98b792cd08748481043d9a2a39c1c455094725e1ac213df731280587b93746ecb7bea2431deb7bf3 tarantool-1.7.4.335.tar.gz fe463c4b6ab8708ea6ec17bb6a887677ae131a489d2ce299ce951790b7c134ff356bc1a4d4745878beec3600ec702944c2329a3f02645f8ab0a0eb24edb6215a tarantool.initd b48eefdf71e20db22c4366e4573441a0d4e5f6e727fc23b2b41534e8d5cc7dc9cc08baf2bf1cf1950c7b0e211920abb4254c2d1e972ec884db25800820824f2c unbundle-dependencies.patch f6fec037780f830eb353b184d190b5dc8b481164c9cd06991f921d70be8cababb5dba43e5af96abe6fb87fda44c5573d706f7b032bc996d33debb7811b84addb tests-musl-compat.patch 146744f2e7265de2644c03d7beb6ce1657b63a99db9c4527cb603c915082dc1184a90e92ba39bfb946f2f8f7a2b866cc8343c7e865d4245fe704447a59cc4846 tests-libressl-compat.patch'" (CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgname) op:Equal rhs:{(tarantool)} spids:[9])] spids: [9] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgver) op:Equal rhs:{(1.7.4.335)} spids:[12])] spids: [12] ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_series) op: Equal rhs: { (BracedVarSub token: suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(".*")}) spids: [16 20] ) } spids: [15] ) ] spids: [15] ) terminator: ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_series) op: Equal rhs: { (BracedVarSub token: suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(".*")}) spids: [24 28] ) } spids: [23] ) ] spids: [23] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgrel) op:Equal rhs:{(2)} spids:[33])] spids: [33] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ("Lua application server integrated with a database management system"))} spids: [36] ) ] spids: [36] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:url) op: Equal rhs: {(DQ ("https://tarantool.org"))} spids: [41] ) ] spids: [41] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:arch) op:Equal rhs:{(DQ (x86_64))} spids:[58])] spids: [58] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:license) op: Equal rhs: {(DQ ("BSD-2-Clause MIT Public-Domain"))} spids: [63] ) ] spids: [63] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgusers) op: Equal rhs: {(DQ ($ VSub_Name "$pkgname"))} spids: [68] ) ] spids: [68] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkggroups) op: Equal rhs: {(DQ ($ VSub_Name "$pkgname"))} spids: [73] ) ] spids: [73] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:install) op: Equal rhs: {(DQ ($ VSub_Name "$pkgname") (.pre-install))} spids: [78] ) ] spids: [78] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:checkdepends) op: Equal rhs: {(DQ ("python2-dev py2-argparse py2-gevent py2-msgpack py2-six py2-yaml"))} spids: [84] ) ] spids: [84] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:makedepends) op: Equal rhs: { (DQ ("cmake curl-dev luajit-dev libcoro-dev libressl-dev msgpuck-dev\n") ("\tperl python2 readline-dev yaml-dev zstd-dev") ) } spids: [89] ) ] spids: [89] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:subpackages) op: Equal rhs: {(DQ ($ VSub_Name "$pkgname") ("-dev ") ($ VSub_Name "$pkgname") (-doc))} spids: [95] ) ] spids: [95] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:source) op: Equal rhs: { (DQ ("http://download.tarantool.org/tarantool/") ($ VSub_Name "$_series") (/src/) ($ VSub_Name "$pkgname") (-) ($ VSub_Name "$pkgver") (".tar.gz\n") ("\t") ($ VSub_Name "$pkgname") (".initd\n") ("\tunbundle-dependencies.patch\n") ("\ttests-musl-compat.patch\n") ("\ttests-libressl-compat.patch") ) } spids: [103] ) ] spids: [103] ) (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: [120] ) ] spids: [120] ) (FuncDef name: prepare body: (BraceGroup children: [ (C {(default_prepare)}) (C {(cd)} {(DQ ($ VSub_Name "$builddir"))}) (C {(rm)} {(test/xlog-py/misc.test.py)}) (Pipeline children: [ (C {(find)} {(.)} {(-name)} {(SQ <"*.c">)} {(-o)} {(-name)} {(SQ <"*.cc">)}) (C {(xargs)} {(-n)} {(1)} {(sed)} {(-Ei)} {(SQ <"s|#include\\s*[\"<]msgpuck/msgpuck\\.h[\">]|#include |">)} ) ] negated: False ) (C {(rm)} {(-r)} {(src/lib/msgpuck)}) (C {(cd)} {(third_party)}) (C {(rm)} {(-r)} {(coro)} {(libyaml)} {(zstd)}) ] spids: [134] ) spids: [130 133] ) (FuncDef name: build body: (BraceGroup children: [ (C {(cd)} {(DQ ($ VSub_Name "$builddir"))}) (C {(cmake)} {(-DCMAKE_BUILD_TYPE) (Lit_Other "=") (Release)} {(-DCMAKE_CXX_FLAGS) (Lit_Other "=") (DQ ($ VSub_Name "$CXXFLAGS"))} {(-DCMAKE_C_FLAGS) (Lit_Other "=") (DQ ($ VSub_Name "$CFLAGS"))} {(-DCMAKE_INSTALL_PREFIX) (Lit_Other "=") (/usr)} {(-DCMAKE_INSTALL_LIBDIR) (Lit_Other "=") (lib)} {(-DCMAKE_INSTALL_SYSCONFDIR) (Lit_Other "=") (/etc)} {(-DCMAKE_SKIP_RPATH) (Lit_Other "=") (ON)} {(-DCMAKE_VERBOSE_MAKEFILE) (Lit_Other "=") (ON)} {(-DENABLE_BUNDLED_LIBCORO) (Lit_Other "=") (OFF)} {(-DENABLE_BUNDLED_LIBGOPT) (Lit_Other "=") (ON)} {(-DENABLE_BUNDLED_LIBYAML) (Lit_Other "=") (OFF)} {(-DENABLE_BUNDLED_LUAJIT) (Lit_Other "=") (ON)} {(-DENABLE_BUNDLED_MSGPUCK) (Lit_Other "=") (OFF)} {(-DENABLE_BUNDLED_ZSTD) (Lit_Other "=") (OFF)} {(-DENABLE_DIST) (Lit_Other "=") (ON)} {(-DWITH_SYSVINIT) (Lit_Other "=") (OFF)} {(-DWITH_SYSTEMD) (Lit_Other "=") (OFF)} ) (C {(make)} {(Lit_VarLike "VERBOSE=") (1)} {(-j2)}) ] spids: [233] ) spids: [229 232] ) (FuncDef name: check body: (BraceGroup children: [ (C {(cd)} {(DQ ($ VSub_Name "$builddir")) (/test)}) (SimpleCommand words: [{(../src/tarantool)} {(--help)}] redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[406])] ) ] spids: [390] ) spids: [386 389] ) (FuncDef name: package body: (BraceGroup children: [ (C {(cd)} {(DQ ($ VSub_Name "$builddir"))}) (C {(make)} {(Lit_VarLike "DESTDIR=") (DQ ($ VSub_Name "$pkgdir"))} {(install)}) (C {(rm)} {(-R)} {(DQ ($ VSub_Name "$pkgdir")) (/etc/default)}) (C {(install)} {(-Dm755)} {(DQ ($ VSub_Name "$srcdir")) (/tarantool.initd)} {(DQ ($ VSub_Name "$pkgdir")) (/etc/init.d/tarantool)} ) ] spids: [430] ) spids: [426 429] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sha512sums) op: Equal rhs: { (DQ ( "c95a6900d9e9b9963bb038f28f3e47d0f8fd66159efef99b98b792cd08748481043d9a2a39c1c455094725e1ac213df731280587b93746ecb7bea2431deb7bf3 tarantool-1.7.4.335.tar.gz\n" ) ( "fe463c4b6ab8708ea6ec17bb6a887677ae131a489d2ce299ce951790b7c134ff356bc1a4d4745878beec3600ec702944c2329a3f02645f8ab0a0eb24edb6215a tarantool.initd\n" ) ( "b48eefdf71e20db22c4366e4573441a0d4e5f6e727fc23b2b41534e8d5cc7dc9cc08baf2bf1cf1950c7b0e211920abb4254c2d1e972ec884db25800820824f2c unbundle-dependencies.patch\n" ) ( "f6fec037780f830eb353b184d190b5dc8b481164c9cd06991f921d70be8cababb5dba43e5af96abe6fb87fda44c5573d706f7b032bc996d33debb7811b84addb tests-musl-compat.patch\n" ) ( "146744f2e7265de2644c03d7beb6ce1657b63a99db9c4527cb603c915082dc1184a90e92ba39bfb946f2f8f7a2b866cc8343c7e865d4245fe704447a59cc4846 tests-libressl-compat.patch" ) ) } spids: [479] ) ] spids: [479] ) ] )