#761817 RFP: arangodb -- ArangoDB is a multi-model mostly-memory database with a flexible data model for documents and graphs.

Package:
wnpp
Source:
wnpp
Submitter:
Kjetil Kjernsmo
Date:
2018-12-12 13:21:03 UTC
Severity:
wishlist
#761817#5
Date:
2014-09-16 08:36:43 UTC
From:
To:
* Package name    : arangodb
  Version         : 2.2.3
* URL             : https://www.arangodb.org/
* License         : Apache 2.0
  Programming Lang: C, C++, Javascript, Ruby
  Description     : ArangoDB is a multi-model mostly-memory database with a flexible data model for documents and graphs.


ArangoDB is a multi-purpose open-source database with a flexible data
model for documents, graphs and key-values. You can easily build high
performance applications using a convenient SQL-like query language or
JavaScript extensions.

The database server arangod stores all documents and serves them using
a REST interface. There are drivers for all major languages like Ruby,
Python, PHP, JavaScript, and Perl. In the following sections we will
use the JavaScript shell to communicate with the database and
demonstrate some of ArangoDB's features using JavaScript.

The project provides Debian packages already, so packaging it has
already a start.

#761817#10
Date:
2017-04-16 07:28:57 UTC
From:
To:
Kjetil Kjernsmo wrote...
(...)

As somebody else asked me to bring arangodb into Debian, I did some
research and wish to share the result:

While upstream does provide Debian packages, the packaging itself is not
included: There are no sources in the repository[1], and the sources at
github do not include a debian/ directory.

Furthermore, the sources include several code copies that have to be
replaced with the according packages in Debian, or need separate
packaging first. In detail, as found in arangodb 3.1.7:

                ,-Version as included in the ArangoDB sources
                |           ,- Debian stretch
                |           |               ,- Debian jessie

boost           1.62.0      1.62.0+dfsg-4   1.55.0+dfsg-3(!)
curl            7.50.3      7.52.1-4        7.38.0-4
linenoise-ng    ?           -               -
rocksdb         4.8.0       4.5.1-2         -
snappy          1.1.3       1.1.3-3         1.1.2-3(!)
v8              5.0.71.39   3.14.5.8-11(!)  3.14.5.8-8.1(!)
valgrind        ?           1:3.12.0~svn20160714-1+b1
                                            1:3.10.0-4
velocypack      ?           -               -
zlib            1.2.8       1:1.2.8.dfsg-5  1:1.2.8.dfsg-2+b1


Now, linenoise-ng and velocypack have to be packaged first, I did not
even see an RFP/ITP yet. They should be easly tasks though in both
packaging and license. The big issue however is v8 which is horribly
outdated in Debian for reasons I don't know. And even if that old
version should work, it has no security support[2].

Therefore, packaging arangodb for Debian requires some work and might
still be impossible to achieve. As always, maintaining a Debian package
should be done by someone who uses that software constantly. That would
not be me.

    Christoph

[1] https://www.arangodb.com/repositories/arangodb31/Debian_8.0/
[2] https://sources.debian.net/src/libv8-3.14/3.14.5.8-11/debian/README.Debian.security/

#761817#15
Date:
2018-12-12 13:17:27 UTC
From:
To:
Hi Christop,
Thanks for giving us a heads up regarding the key life time.
I've read through:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=761817

(which is probably related to this mail?)
and have some remarks:

  - V8 does not provide a stable API across versions, so you need
exactly the version that we use (or that release series).
  - we apply some patches to V8, mostly build system related, however
some of them patch away some "Resources empty? Geronimo!!!!" code which
is not nice to have in a database - that will auto-terminate without any
feedback then.
  - Rocksdb - same here. While we send patches of our changes upstream,
they may only become available in later versions which may not be api
compatible - so if I strongly sugest to use the version shipped with
arangodb.
  - Boost - you most probably need the version we use, it should be ok
to use a system provided version
  - snappy - whatever is newer probably is better. needs to work with
rocksdb.
  - s2 (not yet in your list) - probably needs to be exactly the shipped
version with ArangoDB 3.4
  - curl - you can probably use newer versions.
  - velocypack - our binary json representation
https://github.com/arangodb/velocypack/ - to be honest we didn't yet
work with tags here so you could identify whats released with which
arangodb - we need to fix this.
  - fuerte - our binary transport c++ library - issues see velocypack.
  - iresearch - needs to be a matching version, however upstream is also
maintained by us.
  - ICU - we use the one bundled with V8 - don't know whether there is a
good way to include a system one

Up to arangodb we used cpack to generate debian packages, accompanying
scripts can be found in Installation/debian; This is probably why you
don't find a debian/ directory.
With ArangoDB 3.4 we migrated to statically linked binaries with libmusl
- compile once, bundle into tar/rpm/deb; The currently used debian
scripts can be found here:
https://github.com/arangodb/oskar/tree/master/debian/3.4

Since we need to be able to ship bugfix versions, we do this with the
third version digit incrementing. So Arangodb 3.3.20 can be treated as a
bugfix version of 3.3.19.

The current arangodb cmake build is intended to bundle and bring all
required 3rd party libraries, I don't know how well it can be configured
to prefer system installed ones.

If you have more questions regarding compiling arangodb don't hesitate
to ping me via slack or github issues.

Cheers,
Willi

ps: there are only rspec / ruby tests remaining which probably shouldn't
be represented in the final package, the ruby tag of the initial wnpp
can probably be removed.