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