# Maintainer: Filipp Andronov # Contributor: Marc Vertes global pkgname := 'mongodb' global pkgver := '3.4.9' global pkgrel := '0' global pkgdesc := ''A high-performance, open source, schema-free document-oriented database'' global url := ''http://www.mongodb.org'' global arch := ''x86_64'' global license := ''AGPL3'' global pkgusers := '"mongodb'" global pkggroups := '"mongodb'" global depends := '' global makedepends := '"scons paxmark libressl-dev pcre-dev snappy-dev boost-dev asio-dev libpcap-dev wiredtiger-dev zlib-dev cyrus-sasl-dev yaml-cpp-dev'" global install := ""$pkgname.pre-install"" global source := ""http://downloads.mongodb.org/src/mongodb-src-r$(pkgver).tar.gz 40-fix-elf-native-class.patch backtrace.patch fix-asio-strerror_r.patch fix-libressl.patch fix-log.patch fix-processinfo_linux.patch fix-std-string.patch set-default-stacksize.patch wiredtiger-strtouq.patch boost160.patch boost162.patch mongodb.confd mongodb.initd mongodb.logrotate mongos.confd mongos.initd "" # # 1. Force 64bits because of 40-fix-elf-native-class.patch # 2. Use system allocator as tc-malloc doesn't build # 2. Use as much system libs as possible, boost doesn't compile foe example # # TODO: proper elf-netive-class fix # TODO: check if there are more libs could be replaced by system counterparts (see libpcap does't use, for example) # TODO: proper fix for heap usage # Right now code patched to always return 0 for heap usage statistics. That is necessary because musl malloc info # isn't compatible with glibc and breaks build. It is _possible_ to patch code to return 0 # because on 64bit platform statistics is broken and returns wrong numbers, see SERVER-9168 mongo bug. # # There is a way to return propper value when tc-malloc used, but it doesn't compile for libmusl. Work is in progress, # contribution strongly welcome :D # global _builddir := ""$srcdir"/$pkgname-src-r$pkgver" global _buildopts := '" --allocator=system \ --disable-warnings-as-errors \ --use-system-boost \ --use-system-pcre \ --use-system-wiredtiger \ --use-system-snappy \ --use-system-zlib \ --use-system-yaml \ --use-sasl-client \ --ssl \ '" proc prepare { cd $_builddir var i = '' for i in [$source] { matchstr $i { *.patch { msg $i; patch -p1 -i "$srcdir"/$i || return 1} } } } proc build { cd $_builddir export SCONSFLAGS="$MAKEFLAGS" scons $_buildopts --prefix=$pkgdir/usr core } proc package { cd $_builddir # install mongo targets export SCONSFLAGS="$MAKEFLAGS" scons $_buildopts --prefix=$pkgdir/usr install # java jit requires paxmark paxmark -m "$pkgdir"/usr/bin/mongo* # install alpine specific files install -dm700 "$pkgdir/var/lib/mongodb" install -dm755 "$pkgdir/var/log/mongodb" chown mongodb:mongodb "$pkgdir/var/lib/mongodb" "$pkgdir/var/log/mongodb" install -Dm755 "$srcdir/mongodb.initd" "$pkgdir/etc/init.d/mongodb" install -Dm644 "$srcdir/mongodb.confd" "$pkgdir/etc/conf.d/mongodb" install -Dm644 "$srcdir/mongodb.logrotate" "$pkgdir/etc/logrotate.d/mongodb" install -Dm755 "$srcdir/mongos.initd" "$pkgdir/etc/init.d/mongos" install -Dm644 "$srcdir/mongos.confd" "$pkgdir/etc/conf.d/mongos" } global sha512sums := '"b6803c91e9cda8e6963359386d2014d03f68151f64d580d5baacc3c66b2adabc62ee5c2cf203b9aee7d11942934afc6f9e17364d2f3aafd238ba88d13c77f26d mongodb-src-r3.4.9.tar.gz 56db8f43afc94713ac65b174189e2dd903b5e1eff0b65f1bdac159e52ad4de6606c449865d73bd47bffad6a8fc339777e2b11395596e9a476867d94a219c7925 40-fix-elf-native-class.patch 7d097f497cb910c9cb81086cd8c222e43456d1a6de4adfe3e97a4d99add454279350fdeb7305dab84b3deca04afd824036d4065ee0fb8cdd8c03e96d98ee86af backtrace.patch f829b1ad542db3ee776d444243b8b47ab4e48a7386d9b199d7b1adafd31556cf173a5683b78ee735d6a69999ad9af5ad152fde955bbe8865f7910718991ce97c fix-asio-strerror_r.patch 8f2832f10e47b1a9f413ab44eb2b75dbb7bc47282d3ba721f35d4a93bc4fcf18b88c5f1c2f0ccf28539bbf81ee4c5715c5b71506fa680d22cde0630f9b3e2d22 fix-libressl.patch 9e109a9131e8466496e94f7046e13fd40ec750c8de703e31d65cf3f6e80830e67e1438debaefc0e1150fe2bb08dbb42cf95890c51e9d98f354cfbb396500b5d4 fix-log.patch 026d20fa1a0f1e27150b833664300250386d7e0d73c0778f81f70242e93e8a16e5607716693bbcdd1efb328fa84c7284e2c6c7e1ac92259b97a9d402975cf709 fix-processinfo_linux.patch de2523a2c0e3b2d56158ff697e69e3e5e1d65cb29e8a0f07a3a2794f6c4ba8abfe62d1871eb72c823f17399327f4741975a6424f011c95031e60e309d267ccd0 fix-std-string.patch 1492137b0e3456d90a79617c1cd5ead5c71b1cfaae9ee41c75d56cd25f404ec73a690f95ce0d8c064c0a14206daca8070aa769b7cdfa904a338a425b52c293fa set-default-stacksize.patch bbb323d428d59584703e8692bf4df7fe0d37c0324c23822bade2edd1ca78759191f778230b7107502a9d2f7f22afc84d4ea350139fc1d751ceb2fff219b9ddf8 wiredtiger-strtouq.patch 385c82875174caae433a3b381eb10f98a6fed0c8943788ddefff1de80a898e480bdbbf094a7783285cf2ae11ce3fc6878e57d58183d05be2f0837b206aaa4da6 boost160.patch 79edfd1a6eaba597b31a82e54722dccab288d8b8840a53f79140b5fca221b5acd9fbc770d99e46ea9fa0da502cdf18dd35d982c95a4aa341806c3d8b61fc732f boost162.patch 9bcd870742c31bf25f34188ddc3c414de1103e9860dea9f54eee276b89bc2cf1226abab1749c5cda6a6fb0880e541373754e5e83d63cc7189d4b9c274fd555c3 mongodb.confd 74009794d566dd9d70ec93ffd95c830ee4696165574ecf87398165637fb40799b38d182ef54c50fd0772d589be94ade7f7a49247f3d31c1f012cb4e44cc9f5df mongodb.initd 8c089b1a11f494e4148fb4646265964c925bf937633a65e395ee1361d42facf837871dd493a9a2e0f480ae0e0829dbd3ed60794c5334e2716332e131fc5c2c51 mongodb.logrotate 61d8734cef644187eeadc821c89e63a3fbf61860fe2db6e74557b1c6760fe83ba7549cb04f9e3aacea4d8e7e4d81a3b1bc0d5e29715eca33c4761adb17ea9ab7 mongos.confd 13aad7247b848ac58b2bc0b40a0d30d909e950380abd0c83fab0e2a394a42dc268a66dac53cf9feec6971739977470082cc4339cca827f41044cfe43803ef3f7 mongos.initd'" (CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgname) op:Equal rhs:{(mongodb)} spids:[6])] spids: [6] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgver) op:Equal rhs:{(3.4.9)} spids:[9])] spids: [9] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgrel) op:Equal rhs:{(0)} spids:[12])] spids: [12] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(SQ <"A high-performance, open source, schema-free document-oriented database">)} spids: [15] ) ] spids: [15] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:url) op: Equal rhs: {(SQ <"http://www.mongodb.org">)} spids: [20] ) ] spids: [20] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:arch) op:Equal rhs:{(SQ )} spids:[25])] spids: [25] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:license) op:Equal rhs:{(SQ )} spids:[30])] spids: [30] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgusers) op:Equal rhs:{(DQ (mongodb))} spids:[35])] spids: [35] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkggroups) op:Equal rhs:{(DQ (mongodb))} spids:[40])] spids: [40] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:depends) op:Equal rhs:{(SQ )} spids:[45])] spids: [45] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:makedepends) op: Equal rhs: { (DQ ("scons paxmark libressl-dev pcre-dev snappy-dev boost-dev asio-dev\n") ("\tlibpcap-dev wiredtiger-dev zlib-dev cyrus-sasl-dev yaml-cpp-dev") ) } spids: [47] ) ] spids: [47] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:install) op: Equal rhs: {(DQ ($ VSub_Name "$pkgname") (.pre-install))} spids: [53] ) ] spids: [53] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:source) op: Equal rhs: { (DQ ("http://downloads.mongodb.org/src/mongodb-src-r") (${ VSub_Name pkgver) (".tar.gz\n") ("\t40-fix-elf-native-class.patch\n") ("\tbacktrace.patch\n") ("\tfix-asio-strerror_r.patch\n") ("\tfix-libressl.patch\n") ("\tfix-log.patch\n") ("\tfix-processinfo_linux.patch\n") ("\tfix-std-string.patch\n") ("\tset-default-stacksize.patch\n") ("\twiredtiger-strtouq.patch\n") ("\tboost160.patch\n") ("\tboost162.patch\n") ("\n") (" mongodb.confd\n") (" mongodb.initd\n") (" mongodb.logrotate\n") (" mongos.confd\n") (" mongos.initd\n") ("\t") ) } spids: [59] ) ] spids: [59] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_builddir) op: Equal rhs: {(DQ ($ VSub_Name "$srcdir")) (/) ($ VSub_Name "$pkgname") (-src-r) ($ VSub_Name "$pkgver")} spids: [131] ) ] spids: [131] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_buildopts) op: Equal rhs: { (DQ ("\n") ("\t\t--allocator=system ") ("\t\t--disable-warnings-as-errors ") ("\t\t--use-system-boost ") ("\t\t--use-system-pcre ") ("\t\t--use-system-wiredtiger ") ("\t\t--use-system-snappy ") ("\t\t--use-system-zlib ") ("\t\t--use-system-yaml ") ("\t\t--use-sasl-client ") ("\t\t--ssl ") ("\t") ) } spids: [140] ) ] spids: [140] ) (FuncDef name: prepare body: (BraceGroup children: [ (C {(cd)} {(DQ ($ VSub_Name "$_builddir"))}) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:i) op:Equal spids:[184])] spids: [182] ) (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: [206 208 232 -1] ) ] spids: [199 203 235] ) ] spids: [196 238] ) spids: [192 194] ) ] spids: [171] ) spids: [167 170] ) (FuncDef name: build body: (BraceGroup children: [ (C {(cd)} {(DQ ($ VSub_Name "$_builddir"))}) (C {(export)} {(Lit_VarLike "SCONSFLAGS=") (DQ ($ VSub_Name "$MAKEFLAGS"))}) (C {(scons)} {($ VSub_Name "$_buildopts")} {(--prefix) (Lit_Other "=") ($ VSub_Name "$pkgdir") (/usr)} {(core)} ) ] spids: [247] ) spids: [243 246] ) (FuncDef name: package body: (BraceGroup children: [ (C {(cd)} {(DQ ($ VSub_Name "$_builddir"))}) (C {(export)} {(Lit_VarLike "SCONSFLAGS=") (DQ ($ VSub_Name "$MAKEFLAGS"))}) (C {(scons)} {($ VSub_Name "$_buildopts")} {(--prefix) (Lit_Other "=") ($ VSub_Name "$pkgdir") (/usr)} {(install)} ) (C {(paxmark)} {(-m)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/bin/mongo) (Lit_Other "*")}) (C {(install)} {(-dm700)} {(DQ ($ VSub_Name "$pkgdir") (/var/lib/mongodb))}) (C {(install)} {(-dm755)} {(DQ ($ VSub_Name "$pkgdir") (/var/log/mongodb))}) (C {(chown)} {(mongodb) (Lit_Other ":") (mongodb)} {(DQ ($ VSub_Name "$pkgdir") (/var/lib/mongodb))} {(DQ ($ VSub_Name "$pkgdir") (/var/log/mongodb))} ) (C {(install)} {(-Dm755)} {(DQ ($ VSub_Name "$srcdir") (/mongodb.initd))} {(DQ ($ VSub_Name "$pkgdir") (/etc/init.d/mongodb))} ) (C {(install)} {(-Dm644)} {(DQ ($ VSub_Name "$srcdir") (/mongodb.confd))} {(DQ ($ VSub_Name "$pkgdir") (/etc/conf.d/mongodb))} ) (C {(install)} {(-Dm644)} {(DQ ($ VSub_Name "$srcdir") (/mongodb.logrotate))} {(DQ ($ VSub_Name "$pkgdir") (/etc/logrotate.d/mongodb))} ) (C {(install)} {(-Dm755)} {(DQ ($ VSub_Name "$srcdir") (/mongos.initd))} {(DQ ($ VSub_Name "$pkgdir") (/etc/init.d/mongos))} ) (C {(install)} {(-Dm644)} {(DQ ($ VSub_Name "$srcdir") (/mongos.confd))} {(DQ ($ VSub_Name "$pkgdir") (/etc/conf.d/mongos))} ) ] spids: [284] ) spids: [280 283] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sha512sums) op: Equal rhs: { (DQ ( "b6803c91e9cda8e6963359386d2014d03f68151f64d580d5baacc3c66b2adabc62ee5c2cf203b9aee7d11942934afc6f9e17364d2f3aafd238ba88d13c77f26d mongodb-src-r3.4.9.tar.gz\n" ) ( "56db8f43afc94713ac65b174189e2dd903b5e1eff0b65f1bdac159e52ad4de6606c449865d73bd47bffad6a8fc339777e2b11395596e9a476867d94a219c7925 40-fix-elf-native-class.patch\n" ) ( "7d097f497cb910c9cb81086cd8c222e43456d1a6de4adfe3e97a4d99add454279350fdeb7305dab84b3deca04afd824036d4065ee0fb8cdd8c03e96d98ee86af backtrace.patch\n" ) ( "f829b1ad542db3ee776d444243b8b47ab4e48a7386d9b199d7b1adafd31556cf173a5683b78ee735d6a69999ad9af5ad152fde955bbe8865f7910718991ce97c fix-asio-strerror_r.patch\n" ) ( "8f2832f10e47b1a9f413ab44eb2b75dbb7bc47282d3ba721f35d4a93bc4fcf18b88c5f1c2f0ccf28539bbf81ee4c5715c5b71506fa680d22cde0630f9b3e2d22 fix-libressl.patch\n" ) ( "9e109a9131e8466496e94f7046e13fd40ec750c8de703e31d65cf3f6e80830e67e1438debaefc0e1150fe2bb08dbb42cf95890c51e9d98f354cfbb396500b5d4 fix-log.patch\n" ) ( "026d20fa1a0f1e27150b833664300250386d7e0d73c0778f81f70242e93e8a16e5607716693bbcdd1efb328fa84c7284e2c6c7e1ac92259b97a9d402975cf709 fix-processinfo_linux.patch\n" ) ( "de2523a2c0e3b2d56158ff697e69e3e5e1d65cb29e8a0f07a3a2794f6c4ba8abfe62d1871eb72c823f17399327f4741975a6424f011c95031e60e309d267ccd0 fix-std-string.patch\n" ) ( "1492137b0e3456d90a79617c1cd5ead5c71b1cfaae9ee41c75d56cd25f404ec73a690f95ce0d8c064c0a14206daca8070aa769b7cdfa904a338a425b52c293fa set-default-stacksize.patch\n" ) ( "bbb323d428d59584703e8692bf4df7fe0d37c0324c23822bade2edd1ca78759191f778230b7107502a9d2f7f22afc84d4ea350139fc1d751ceb2fff219b9ddf8 wiredtiger-strtouq.patch\n" ) ( "385c82875174caae433a3b381eb10f98a6fed0c8943788ddefff1de80a898e480bdbbf094a7783285cf2ae11ce3fc6878e57d58183d05be2f0837b206aaa4da6 boost160.patch\n" ) ( "79edfd1a6eaba597b31a82e54722dccab288d8b8840a53f79140b5fca221b5acd9fbc770d99e46ea9fa0da502cdf18dd35d982c95a4aa341806c3d8b61fc732f boost162.patch\n" ) ( "9bcd870742c31bf25f34188ddc3c414de1103e9860dea9f54eee276b89bc2cf1226abab1749c5cda6a6fb0880e541373754e5e83d63cc7189d4b9c274fd555c3 mongodb.confd\n" ) ( "74009794d566dd9d70ec93ffd95c830ee4696165574ecf87398165637fb40799b38d182ef54c50fd0772d589be94ade7f7a49247f3d31c1f012cb4e44cc9f5df mongodb.initd\n" ) ( "8c089b1a11f494e4148fb4646265964c925bf937633a65e395ee1361d42facf837871dd493a9a2e0f480ae0e0829dbd3ed60794c5334e2716332e131fc5c2c51 mongodb.logrotate\n" ) ( "61d8734cef644187eeadc821c89e63a3fbf61860fe2db6e74557b1c6760fe83ba7549cb04f9e3aacea4d8e7e4d81a3b1bc0d5e29715eca33c4761adb17ea9ab7 mongos.confd\n" ) ( "13aad7247b848ac58b2bc0b40a0d30d909e950380abd0c83fab0e2a394a42dc268a66dac53cf9feec6971739977470082cc4339cca827f41044cfe43803ef3f7 mongos.initd" ) ) } spids: [456] ) ] spids: [456] ) ] )