1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
|
SUMMARY = "High performance data logging and graphing system for time series data"
HOMEPAGE = "http://oss.oetiker.ch/rrdtool/"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=39df84cfd8a5e18bf988f277f7946676"
DEPENDS = "libpng zlib glib-2.0 libxml2 groff-native python3-setuptools-native"
SRCREV = "3af04acd38bbc61bbdcdd931dcf234c971aa5336"
PV = "1.8.0"
SRC_URI = "\
git://github.com/oetiker/rrdtool-1.x.git;protocol=https;branch=master \
file://b76e3c578f1e9f582e9c28f50d82b1f569602075.patch \
"
S = "${WORKDIR}/git"
inherit cpan autotools-brokensep gettext pkgconfig python3native python3-dir systemd
BBCLASSEXTEND = "native"
SYSTEMD_PACKAGES = "rrdcached"
SYSTEMD_SERVICE:rrdcached = "rrdcached.socket rrdcached.service"
EXTRA_AUTORECONF = "-I m4 --exclude=autopoint"
PACKAGECONFIG ??= "perl graph ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
PACKAGECONFIG[python] = "--enable-python=yes \
am_cv_python_pythondir=${STAGING_LIBDIR}/python${PYTHON_BASEVERSION}/site-packages \
am_cv_python_pyexecdir=${STAGING_LIBDIR}/python${PYTHON_BASEVERSION}/site-packages,\
--disable-python,python,"
PACKAGECONFIG[perl] = \
"--enable-perl=yes --with-perl-options='INSTALLDIRS="vendor" CCFLAGS="${CFLAGS}" NO_PACKLIST=1 NO_PERLLOCAL=1' \
ac_cv_path_PERL_CC='${CC}', \
--disable-perl,perl,"
PACKAGECONFIG[dbi] = "--enable-libdbi,--disable-libdbi,libdbi"
PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,--without-systemdsystemunitdir,systemd,"
PACKAGECONFIG[graph] = "--enable-rrd_graph,--disable-rrd_graph,pango cairo"
EXTRA_OECONF = " \
--enable-shared \
--disable-libwrap \
--program-prefix='' \
rd_cv_ieee_works=yes \
--disable-ruby \
--disable-lua \
--disable-tcl \
--disable-rpath \
--enable-nls=${USE_NLS} \
--disable-docs \
"
export STAGING_LIBDIR
export STAGING_INCDIR
# emulate cpan_do_configure
EXTRA_OEMAKE = ' CC="${CC} -Wno-incompatible-pointer-types" PERL5LIB="${PERL_ARCHLIB}" '
# Avoid do_configure error on some hosts
do_configure() {
unset PERLHOSTLIB
#fix the pkglib problem with newer automake
#perl
sed -i -e "s|-Wl,--rpath -Wl,\$rp||g" \
${S}/bindings/perl-shared/Makefile.PL
#python
sed -i -e '/PYTHON_INCLUDES="-I${/c \
PYTHON_INCLUDES="-I=/usr/include/python${PYTHON_BASEVERSION}"' \
${S}/m4/acinclude.m4
#remove the useless RPATH from the rrdtool.so
sed -i -e 's|LD_RUN_PATH=$(libdir)||g' ${S}/bindings/Makefile.am
autotools_do_configure
#modify python sitepkg
#remove the dependency of perl-shared:Makefile
#or perl-shared/Makefile will be regenerated
#if any code touch bindings/Makefile after below perl bindings code
sed -i -e "s:python/setup.py install:python/setup.py install \
--install-lib=${PYTHON_SITEPACKAGES_DIR}:" \
-e "s:perl-shared/Makefile.PL Makefile:perl-shared/Makefile.PL:" \
${B}/bindings/Makefile
#redo the perl bindings
(
cd ${S}/bindings/perl-shared;
perl Makefile.PL INSTALLDIRS="vendor" INSTALLPRIVLIB="abc";
cd ../../bindings/perl-piped;
perl Makefile.PL INSTALLDIRS="vendor";
)
#change the interpreter in file
sed -i -e "s|^PERL = ${STAGING_BINDIR_NATIVE}/.*|PERL = /usr/bin/perl|g" \
${B}/examples/Makefile
sed -i -e "s|${STAGING_BINDIR_NATIVE}/perl-native/perl|/usr/bin/perl|g" \
${B}/examples/*.pl
}
do_install:append:class-native() {
# Replace the shebang line in cgi-demo.cgi
sed -i '1s|^.*$|#!/usr/bin/env rrdcgi|' ${D}${datadir}/rrdtool/examples/cgi-demo.cgi
}
PACKAGES =+ "${PN}-perl ${PN}-python"
PACKAGES =+ "rrdcached"
DESCRIPTION:rrdcached = \
"The rrdcached package contains the data caching daemon for RRDtool."
FILES:rrdcached = "${bindir}/rrdcached \
${systemd_unitdir}/system/rrdcached.service \
${systemd_unitdir}/system/rrdcached.socket"
FILES:${PN}-doc += "${datadir}/rrdtool/examples"
DESCRIPTION:${PN}-perl = \
"The ${PN}-perl package includes RRDtool bindings for perl."
FILES:${PN}-perl = "${libdir}/perl/vendor_perl/*/*.pm \
${libdir}/perl/vendor_perl/*/auto/RRDs/RRDs.*"
RDEPENDS:${PN}-perl = "perl perl-module-lib perl-module-getopt-long perl-module-time-hires \
perl-module-io-file perl-module-ipc-open2 perl-module-io-socket"
DESCRIPTION:${PN}-python = \
"The ${PN}-python package includes RRDtool bindings for python."
FILES:${PN}-python = "${PYTHON_SITEPACKAGES_DIR}/*"
RDEPENDS:${PN}-python = "python3"
FILES:${PN}-dbg += "${libdir}/perl/vendor_perl/*/auto/RRDs/.debug \
${PYTHON_SITEPACKAGES_DIR}/.debug"
# http://errors.yoctoproject.org/Errors/Details/766911/
# rrd_tune.c:239:35: error: passing argument 3 of 'optparse_init' from incompatible pointer type [-Wincompatible-pointer-types]
CFLAGS += "-Wno-error=incompatible-pointer-types"
|