blob: bd09985af3ca395cb7da3e36ecf488a808f0b349 [file] [log] [blame]
Andrew Geissler595f6302022-01-24 19:11:47 +00001require 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
22
23SYSTEMD_AUTO_ENABLE:${PN} = "enable"
24SYSTEMD_SERVICE:${PN} = "pmcd.service pmcd.service pmie_check.service pmie_farm_check.service \
25 pmlogger_daily.service pmlogger_farm_check.service pmfind.service \
26 pmie_daily.service pmlogger.service pmlogger_daily_report.service \
27 pmproxy.service pmie.service pmie_farm.service pmlogger_check.service \
28 pmlogger_farm.service"
29
30USERADD_PACKAGES = "${PN}"
31USERADD_PARAM:${PN} = "--system --home ${localstatedir}/lib/pcp --no-create-home \
32 --user-group pcp"
33
34USERADD_PACKAGES = "${PN}-testsuite"
35USERADD_PARAM:${PN}-testsuite = "--system --home ${localstatedir}/lib/pcp/testsuite --no-create-home \
36 --user-group pcpqa"
37
38RDEPENDS:${PN} += "perl"
39RDEPENDS:${PN}-testsuite += "${PN} bash perl"
40RDEPENDS:python3-${PN} += "${PN} python3"
41
42do_configure:prepend () {
43 cp ${WORKDIR}/config.linux ${B}
44 rm -rf ${S}/include/pcp/configsz.h
45 rm -rf ${S}/include/pcp/platformsz.h
46 export SED=${TMPDIR}/hosttools/sed
47 export PYTHON=python3
48}
49
50do_compile:prepend() {
51 sed -i -e "s,#undef HAVE_64BIT_LONG,,g" \
52 -e "s,#undef HAVE_64BIT_PTR,,g" \
53 -e "s,#undef PM_SIZEOF_SUSECONDS_T,,g" \
54 -e "s,#undef PM_SIZEOF_TIME_T,,g" \
55 ${S}/src/include/pcp/config.h.in
56 sed -i -e "s,HAVE_PYTHON_ORDEREDDICT = false,HAVE_PYTHON_ORDEREDDICT = true,g" \
57 ${S}/src/include/builddefs
58 sed -i -e "s,TOPDIR)/python3-pcp.list,TOPDIR)/python3-pcp.list --install-lib=${PYTHON_SITEPACKAGES_DIR},g" ${S}/src/python/GNUmakefile
59 export PYTHON=python3
60 #export PYTHON3=${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN}
61}
62
63do_compile() {
64 oe_runmake default_pcp
65}
66
67do_install () {
68 export NO_CHOWN=true
69 oe_runmake install DIST_ROOT=${D}\
70 install_pcp
71
72 rm -rf ${D}${localstatedir}/log
73 rm -rf ${D}${localstatedir}/lib/pcp/pmcd
74 rm -rf ${D}${localstatedir}/lib/pcp/tmp
75 rm -rf ${D}${localstatedir}/run
76 mv ${D}${docdir}/C* ${D}${docdir}/pcp-doc/
77 mv ${D}${docdir}/I* ${D}${docdir}/pcp-doc/
78 mv ${D}${docdir}/R* ${D}${docdir}/pcp-doc/
79 mv ${D}${docdir}/V* ${D}${docdir}/pcp-doc/
80 sed -i "s#PCP_AWK_PROG=.*#PCP_AWK_PROG=awk#" ${D}/${sysconfdir}/pcp.conf
81 sed -i "s#PCP_SORT_PROG=.*#PCP_SORT_PROG=sort#" ${D}/${sysconfdir}/pcp.conf
82 sed -i "s#PCP_ECHO_PROG=.*#PCP_ECHO_PROG=echo#" ${D}/${sysconfdir}/pcp.conf
83 sed -i "s#PCP_WHICH_PROG=.*#PCP_WHICH_PROG=which#" ${D}/${sysconfdir}/pcp.conf
84}
85
86PACKAGES += " ${PN}-export-zabbix-agent ${PN}-testsuite \
87 libpcp-gui2 libpcp-gui2-dev \
88 libpcp-import1 \
89 libpcp-mmv1 libpcp-mmv1-dev \
90 libpcp-pmda3 libpcp-pmda3-dev \
91 libpcp-trace2 libpcp-trace2-dev \
92 libpcp-web1 libpcp-web1-dev \
93 libpcp3 libpcp3-dev python3-${PN}\
94"
95FILES:libpcp-gui2 = "${libdir}/libpcp_gui.so.2 \
96"
97FILES:libpcp-gui2-dev = " \
98 ${libdir}/libpcp_gui.so \
99 ${libdir}/libpcp_gui.a \
100 ${includedir}/pmafm.h \
101 ${includedir}/pmtime.h \
102"
103FILES:libpcp-mmv1 = " \
104 ${libdir}/libpcp_mmv.so.1 \
105"
106FILES:libpcp-mmv1-dev = " \
107 ${libdir}/libpcp_mmv.a \
108 ${libdir}/libpcp_mmv.so \
109 ${libdir}/libpcp_mmv.so \
110 ${includedir}/mmv_stats.h \
111 ${includedir}/mmv_dev.h \
112 ${datadir}/man/man3/mmv_* \
113 ${datadir}/man/man5/mmv.5.gz \
114"
115FILES:libpcp-import1 = " \
116 ${libdir}/libpcp_import.so.1 \
117"
118FILES:libpcp-pmda3 = " \
119 ${libdir}/libpcp_pmda.so.3 \
120"
121FILES:libpcp-pmda3-dev = " \
122 ${includedir}/pmda.h \
123 ${includedir}/pmdaroot.h \
124 ${libdir}/libpcp_pmda.a \
125 ${libdir}/libpcp_pmda.so \
126 ${libdir}/pkgconfig/libpcp_pmda.pc \
127 ${datadir}/man/man3/PMDA.3.gz \
128 ${datadir}/man/man3/pmda* \
129"
130FILES:libpcp-trace2 = " \
131 ${libdir}/libpcp_trace.so.2 \
132"
133FILES:libpcp-trace2-dev = " \
134 ${includedir}/trace.h \
135 ${includedir}/trace_dev.h \
136 ${libdir}/libpcp_trace.a \
137 ${libdir}/libpcp_trace.so \
138 ${datadir}/man/man3/pmtrace* \
139"
140FILES:libpcp-web1 = " \
141 ${libdir}/libpcp_web.so.1 \
142"
143FILES:libpcp-web1-dev = " \
144 ${includedir}/pmhttp.h \
145 ${includedir}/pmjson.h \
146 ${libdir}/libpcp_web.a \
147 ${libdir}/libpcp_web.so \
148 ${datadir}/man/man3/pmhttp* \
149 ${datadir}/man/man3/pmjson* \
150"
151FILES:libpcp3 = " \
152 ${libdir}/libpcp.so.3 \
153"
154
155FILES:${PN} = " \
156 ${sysconfdir}/pcp \
157 ${sysconfdir}/cron.d \
158 ${sysconfdir}/init.d \
159 ${libexecdir} \
160 ${bindir} \
161 ${datadir}/bash-completion \
162 ${datadir}/pcp-gui \
163 ${datadir}/zsh \
164 ${systemd_system_unitdir}/ \
165 ${libdir}/pcp/ \
166 ${datadir}/pcp \
167 ${libdir}/*.sh \
168 ${datadir}/man \
169 ${libdir}/rc-proc.sh.minimal \
170 ${sysconfdir}/p* \
171 ${sysconfdir}/s* \
172 ${localstatedir}/lib/pcp/config \
173 ${localstatedir}/lib/pcp/pmdas/ \
174 ${localstatedir}/lib/pcp/pmns \
175 ${libdir}/libpcp_fault.so.3 \
176"
177
178FILES:${PN}-export-zabbix-agent += " \
179 ${libdir}/zabbix \
180 ${sysconfdir}/zabbix \
181 ${mandir}/man3/zbxpcp.3.gz \
182 ${libdir}/zabbix \
183"
184FILES:${PN}-testsuite = "${localstatedir}/lib/pcp/testsuite/"
185FILES:python3-${PN} = "${PYTHON_SITEPACKAGES_DIR}"
186FILES:${PN}-dev += " \
187 ${includedir}/pcp \
188 ${libdir}/libpcp.a \
189 ${libdir}/libpcp.so \
190 ${localstatedir}/lib/pcp/pmdas/*/*.so \
191 ${libexecdir}/pcp/bin/install-sh \
192 ${libdir}/pkgconfig/libpcp.pc \
193 ${libdir}/zabbix/modules/*.so \
194 ${datadir}/man/man3/LOGIMPORT.3.gz \
195 ${datadir}/man/man3/P* \
196 ${datadir}/man/man3/Q* \
197 ${datadir}/man/man3/__pm* \
198 ${datadir}/man/man3/pmA* \
199 ${datadir}/man/man3/pmC* \
200 ${datadir}/man/man3/pmD* \
201 ${datadir}/man/man3/pmE* \
202 ${datadir}/man/man3/pmF* \
203 ${datadir}/man/man3/pmG* \
204 ${datadir}/man/man3/pmH* \
205 ${datadir}/man/man3/pmI* \
206 ${datadir}/man/man3/pmL* \
207 ${datadir}/man/man3/pmM* \
208 ${datadir}/man/man3/pmN* \
209 ${datadir}/man/man3/pmO* \
210 ${datadir}/man/man3/pmP* \
211 ${datadir}/man/man3/pmR* \
212 ${datadir}/man/man3/pmS* \
213 ${datadir}/man/man3/pmT* \
214 ${datadir}/man/man3/pmU* \
215 ${datadir}/man/man3/pmW* \
216 ${datadir}/man/man3/pmf* \
217 ${datadir}/man/man3/pmg* \
218 ${datadir}/man/man3/pmi* \
219 ${datadir}/man/man3/pms* \
220 ${datadir}/man/man3/pmt* \
221"
Andrew Geissler7e0e3c02022-02-25 20:34:39 +0000222#| chkacc1.c:8:10: fatal error: localconfig.h: No such file or directory
223#| 8 | #include "localconfig.h"
224#| | ^~~~~~~~~~~~~~~
225PARALLEL_MAKE = ""