#661211 librrd4 huge dependency bloat (20+ MB)

#661211#5
Date:
2012-02-25 01:31:11 UTC
From:
To:
The librrd4 package seems (from the outside) to consist of two very
different parts:

1. A small efficient library for storing collected time series
data.  This is used by important system components such as
sensord and is thus likely to be installed on small headless
systems.

2. A larger GUI for inspecting such data in a way preferred by the
upstream of rrdtool.  Most indirect librrd users don't need this
part at all.

Unfortunately, the two parts are currently packaged together with
the result that simply installing sensord to get hardware
monitoring events (such as CPU temperature) logged to the system
logs forces the installation of slightly more than 20MB of GUI
dependencies even on a completely headless semi-embedded system.
These dependencies (direct and indirect) include such large items
as the Cairo 2D library, the Pango East-Asian font library and the
Defoma font management system, none of which serve any purpose
when just logging the system health on a slow embedded system.

I suggest splitting the librrd shared library package into two
library packages: librrdN for the basic data storage code needed
by system software such as sensord, and librrd-guiN for the
additional GUI functions needed mostly by closely related packages
such as some other packages built from the rrdtool source package.

As for the librrd bindings for languages such as perl, python, lua
etc. those may or may not benefit from a similar packaging split,
depending on their reverse dependencies in Debian as a whole.

#661211#10
Date:
2014-04-25 19:21:47 UTC
From:
To:
Hi,

sorry for the huge delay :-/
[…]

This has come up several times in the past and various approaches were
discussed. If you dig through the rrdtool-developers mailinglist, you'll
find some discussions around this.

Unfortunately, nobody has stepped up so far to actually implement any of
that.

Please note that there's some discussion around rewriting RRDtool from
the ground up. This is currently tracked as rrdtool-2 on Github. This
specific issue is tracked as
https://github.com/oetiker/rrdtool-2.x/issues/33

Cheers,
Sebastian

#661211#17
Date:
2015-07-28 12:25:29 UTC
From:
To:
Version 1.5 of rrdtool allows one to disable graphs.

So it would be possible to build a simplified version of librrd4, in an
alternative package.

$ ./configure --help | grep rrd_graph
  --disable-rrd_graph     disable all rrd_graph functions