1require pcp.inc
2#inherit perlnative
3
4# NOTE: the following prog dependencies are unknown, ignoring: gtar gzip pkgmk xmlto lzma qshape md5sum pod2man publican git makedepend qmake-qt4 xconfirm true gmake xz dblatex hdiutil rpm bzip2 which mkinstallp dtrace seinfo qmake-qt5 gawk dlltool rpmbuild dpkg makepkg qmake echo
5# NOTE: unable to map the following pkg-config dependencies: libmicrohttpd libsystemd-journal
6#       (this is based on recipes that have previously been built and packaged)
7# NOTE: the following library dependencies are unknown, ignoring: nspr gen ibumad regex sasl2 pfm nss papi ibmad
8#       (this is based on recipes that have previously been built and packaged)
9DEPENDS += "perl-native bison-native flex-native python3-native python3-setuptools python3 \
10	pcp-native cairo zlib ncurses readline libx11 avahi openssl"
11
12
13SRC_URI += "file://0001-Remove-unsuitble-part-for-cross-compile.patch \
14            file://pass-options-to-AR.patch \
15            file://fix_parallel_make.patch \
16           "
17
18export PCP_DIR="${RECIPE_SYSROOT_NATIVE}"
19#export PCP_RUN_DIR="${RECIPE_SYSROOT_NATIVE}"
20EXTRA_OEMAKE = "CC="${CC}" LD="${LD}""
21inherit useradd systemd features_check python3targetconfig
22
23# Needs libx11
24REQUIRED_DISTRO_FEATURES = "x11"
25
26SYSTEMD_AUTO_ENABLE:${PN} = "enable"
27SYSTEMD_SERVICE:${PN} = "\
28                        pmie_farm_check.service \
29                        pmie_farm.service \
30                        pmfind.service \
31                        pmlogger_farm_check.service \
32                        pmcd.service \
33                        pmie.service \
34                        pmlogger_daily.service \
35                        pmlogger.service \
36                        pmlogger_farm.service \
37                        pmie_check.service \
38                        pmproxy.service \
39                        pmlogger_check.service \
40                        pmie_daily.service"
41
42USERADD_PACKAGES = "${PN}"
43USERADD_PARAM:${PN} = "--system --home ${localstatedir}/lib/pcp --no-create-home \
44                       --user-group pcp"
45
46USERADD_PACKAGES += "${PN}-testsuite"
47USERADD_PARAM:${PN}-testsuite = "--system --home ${localstatedir}/lib/pcp/testsuite --no-create-home \
48                       --user-group pcpqa"
49
50RDEPENDS:${PN} += "perl"
51RDEPENDS:${PN}-testsuite += "${PN} bash perl"
52RDEPENDS:python3-${PN} += "${PN} python3"
53
54do_configure:prepend () {
55    cp ${WORKDIR}/config.linux ${B}
56    rm -rf ${S}/include/pcp/configsz.h
57    rm -rf ${S}/include/pcp/platformsz.h
58    export SED=${TMPDIR}/hosttools/sed
59    export PYTHON=python3
60}
61
62do_compile:prepend() {
63	sed -i -e "s,#undef HAVE_64BIT_LONG,,g" \
64		-e "s,#undef HAVE_64BIT_PTR,,g" \
65		-e "s,#undef PM_SIZEOF_SUSECONDS_T,,g" \
66		-e "s,#undef PM_SIZEOF_TIME_T,,g" \
67		${S}/src/include/pcp/config.h.in
68	sed -i -e "s,HAVE_PYTHON_ORDEREDDICT = false,HAVE_PYTHON_ORDEREDDICT = true,g" \
69		${S}/src/include/builddefs
70	sed -i -e "s,TOPDIR)/python3-pcp.list,TOPDIR)/python3-pcp.list --install-lib=${PYTHON_SITEPACKAGES_DIR},g" ${S}/src/python/GNUmakefile
71	export PYTHON=python3
72	#export PYTHON3=${STAGING_BINDIR_NATIVE}/python3-native/python3
73}
74
75do_compile() {
76        oe_runmake default_pcp
77}
78
79do_install () {
80	export NO_CHOWN=true
81	oe_runmake install DIST_ROOT=${D}\
82	install_pcp
83
84	rm -rf ${D}${localstatedir}/log
85	rm -rf ${D}${localstatedir}/lib/pcp/pmcd
86	rm -rf ${D}${localstatedir}/lib/pcp/tmp
87	rm -rf ${D}${localstatedir}/run
88	mv ${D}${docdir}/C* ${D}${docdir}/pcp-doc/
89	mv ${D}${docdir}/I* ${D}${docdir}/pcp-doc/
90	mv ${D}${docdir}/R* ${D}${docdir}/pcp-doc/
91	mv ${D}${docdir}/V* ${D}${docdir}/pcp-doc/
92	sed -i "s#PCP_AWK_PROG=.*#PCP_AWK_PROG=awk#" ${D}/${sysconfdir}/pcp.conf
93	sed -i "s#PCP_SORT_PROG=.*#PCP_SORT_PROG=sort#" ${D}/${sysconfdir}/pcp.conf
94	sed -i "s#PCP_ECHO_PROG=.*#PCP_ECHO_PROG=echo#" ${D}/${sysconfdir}/pcp.conf
95	sed -i "s#PCP_WHICH_PROG=.*#PCP_WHICH_PROG=which#" ${D}/${sysconfdir}/pcp.conf
96}
97
98PACKAGES += " ${PN}-export-zabbix-agent ${PN}-testsuite \
99	libpcp-gui2  libpcp-gui2-dev \
100	libpcp-import1 libpcp-archive1 \
101	libpcp-mmv1 libpcp-mmv1-dev \
102	libpcp-pmda3 libpcp-pmda3-dev \
103	libpcp-trace2 libpcp-trace2-dev \
104	libpcp-web1 libpcp-web1-dev \
105	libpcp3 libpcp3-dev python3-${PN}\
106"
107FILES:libpcp-gui2 = "${libdir}/libpcp_gui.so.2 \
108"
109FILES:libpcp-archive1 = "${libdir}/libpcp_archive.so.1 \
110"
111FILES:libpcp-gui2-dev = " \
112	${libdir}/libpcp_gui.so \
113	${libdir}/libpcp_gui.a \
114	${includedir}/pmafm.h \
115	${includedir}/pmtime.h \
116"
117FILES:libpcp-mmv1 = " \
118	${libdir}/libpcp_mmv.so.1 \
119"
120FILES:libpcp-mmv1-dev = " \
121	${libdir}/libpcp_mmv.a \
122	${libdir}/libpcp_mmv.so \
123	${libdir}/libpcp_mmv.so \
124	${includedir}/mmv_stats.h \
125	${includedir}/mmv_dev.h \
126	${datadir}/man/man3/mmv_* \
127	${datadir}/man/man5/mmv.5.gz \
128"
129FILES:libpcp-import1 = " \
130	${libdir}/libpcp_import.so.1 \
131"
132FILES:libpcp-pmda3 = " \
133	${libdir}/libpcp_pmda.so.3 \
134"
135FILES:libpcp-pmda3-dev = " \
136	${includedir}/pmda.h \
137	${includedir}/pmdaroot.h \
138	${libdir}/libpcp_pmda.a \
139	${libdir}/libpcp_pmda.so \
140	${libdir}/pkgconfig/libpcp_pmda.pc \
141	${datadir}/man/man3/PMDA.3.gz \
142	${datadir}/man/man3/pmda* \
143"
144FILES:libpcp-trace2 = " \
145	${libdir}/libpcp_trace.so.2 \
146"
147FILES:libpcp-trace2-dev = " \
148	${includedir}/trace.h \
149	${includedir}/trace_dev.h \
150	${libdir}/libpcp_trace.a \
151	${libdir}/libpcp_trace.so \
152	${datadir}/man/man3/pmtrace* \
153"
154FILES:libpcp-web1 = " \
155	${libdir}/libpcp_web.so.1 \
156"
157FILES:libpcp-web1-dev = " \
158	${includedir}/pmhttp.h \
159	${includedir}/pmjson.h \
160	${libdir}/libpcp_web.a \
161	${libdir}/libpcp_web.so \
162	${datadir}/man/man3/pmhttp* \
163	${datadir}/man/man3/pmjson* \
164"
165FILES:libpcp3 = " \
166	${libdir}/libpcp.so.3 \
167"
168
169FILES:${PN} = " \
170	${sysconfdir}/pcp \
171	${sysconfdir}/cron.d \
172	${sysconfdir}/init.d \
173	${libexecdir} \
174	${bindir} \
175	${datadir}/bash-completion \
176	${datadir}/pcp-gui \
177	${datadir}/zsh \
178	${systemd_system_unitdir}/ \
179	${libdir}/pcp/ \
180	${libdir}/sysusers.d/pcp.conf \
181	${datadir}/pcp \
182	${libdir}/*.sh \
183	${datadir}/man \
184	${libdir}/rc-proc.sh.minimal \
185	${sysconfdir}/p* \
186	${sysconfdir}/s* \
187	${localstatedir}/lib/pcp/config \
188	${localstatedir}/lib/pcp/pmdas/ \
189	${localstatedir}/lib/pcp/pmns \
190	${libdir}/libpcp_fault.so.3 \
191"
192
193FILES:${PN}-export-zabbix-agent += " \
194	${libdir}/zabbix \
195	${sysconfdir}/zabbix \
196	${mandir}/man3/zbxpcp.3.gz \
197	${libdir}/zabbix \
198"
199FILES:${PN}-testsuite = "${localstatedir}/lib/pcp/testsuite/ ${libdir}/sysusers.d/pcp-testsuite.conf"
200FILES:python3-${PN} = "${PYTHON_SITEPACKAGES_DIR}"
201FILES:${PN}-dev += " \
202        ${includedir}/pcp \
203        ${libdir}/libpcp.a \
204        ${libdir}/libpcp.so \
205        ${localstatedir}/lib/pcp/pmdas/*/*.so \
206        ${libexecdir}/pcp/bin/install-sh \
207        ${libdir}/pkgconfig/libpcp.pc \
208        ${libdir}/zabbix/modules/*.so \
209        ${datadir}/man/man3/LOGIMPORT.3.gz \
210        ${datadir}/man/man3/P* \
211        ${datadir}/man/man3/Q* \
212        ${datadir}/man/man3/__pm* \
213        ${datadir}/man/man3/pmA* \
214        ${datadir}/man/man3/pmC* \
215        ${datadir}/man/man3/pmD* \
216        ${datadir}/man/man3/pmE* \
217        ${datadir}/man/man3/pmF* \
218        ${datadir}/man/man3/pmG* \
219        ${datadir}/man/man3/pmH* \
220        ${datadir}/man/man3/pmI* \
221        ${datadir}/man/man3/pmL* \
222        ${datadir}/man/man3/pmM* \
223        ${datadir}/man/man3/pmN* \
224        ${datadir}/man/man3/pmO* \
225        ${datadir}/man/man3/pmP* \
226        ${datadir}/man/man3/pmR* \
227        ${datadir}/man/man3/pmS* \
228        ${datadir}/man/man3/pmT* \
229        ${datadir}/man/man3/pmU* \
230        ${datadir}/man/man3/pmW* \
231        ${datadir}/man/man3/pmf* \
232        ${datadir}/man/man3/pmg* \
233        ${datadir}/man/man3/pmi* \
234        ${datadir}/man/man3/pms* \
235        ${datadir}/man/man3/pmt* \
236"
237