Message ID | 1641576297-3341-4-git-send-email-leimaohui@fujitsu.com |
---|---|
State | New |
Headers | show |
Series | Updated dstat command | expand |
this needs some packaging fixes see https://errors.yoctoproject.org/Errors/Details/621867/ ERROR: QA Issue: pcp: Files/directories were installed but not shipped in any package: /etc/cron.d /etc/init.d /etc/cron.d/pcp-pmfind /etc/cron.d/pcp-pmie /etc/cron.d/pcp-pmlogger /etc/cron.d/pcp-pmlogger-daily-report /etc/init.d/pmcd /etc/init.d/pmproxy /etc/init.d/pmie /etc/init.d/pmlogger /etc/init.d/pcp Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or dele On Fri, Jan 7, 2022 at 12:25 AM leimaohui <leimaohui@fujitsu.com> wrote: > > Performance Co-Pilot is a system performance analysis toolkit > - Collect performance metrics from your systems efficiently. > - Analyze systems' performance metrics in real-time or using historical data. > - Extend the collected performance metrics in a simple way. > > Signed-off-by: Lei Maohui <leimaohui@fujitsu.com> > --- > .../recipes-support/pcp/pcp-native_5.3.5.bb | 49 ++++ > meta-oe/recipes-support/pcp/pcp.inc | 32 +++ > ...ove-unsuitble-part-for-cross-compile.patch | 45 ++++ > meta-oe/recipes-support/pcp/pcp/config.linux | 13 ++ > meta-oe/recipes-support/pcp/pcp_5.3.5.bb | 217 ++++++++++++++++++ > 5 files changed, 356 insertions(+) > create mode 100644 meta-oe/recipes-support/pcp/pcp-native_5.3.5.bb > create mode 100644 meta-oe/recipes-support/pcp/pcp.inc > create mode 100644 meta-oe/recipes-support/pcp/pcp/0001-Remove-unsuitble-part-for-cross-compile.patch > create mode 100644 meta-oe/recipes-support/pcp/pcp/config.linux > create mode 100644 meta-oe/recipes-support/pcp/pcp_5.3.5.bb > > diff --git a/meta-oe/recipes-support/pcp/pcp-native_5.3.5.bb b/meta-oe/recipes-support/pcp/pcp-native_5.3.5.bb > new file mode 100644 > index 0000000000..029a47531b > --- /dev/null > +++ b/meta-oe/recipes-support/pcp/pcp-native_5.3.5.bb > @@ -0,0 +1,49 @@ > +require pcp.inc > +inherit python3native native > +#autotools-brokensep > +DEPENDS = "python3-native python3-setuptools-native flex-native bison-native" > + > +export PCP_DIR = "${D}" > +export PCP_TMP_DIR = "${D}/tmp" > +export PCP_BIN_DIR = "${D}/usr/bin" > + > +B = "${S}" > + > +do_configure:prepend() { > + export SED=${TMPDIR}/hosttools/sed > + export AR=${TMPDIR}/hosttools/ar > +# export PYTHON=python3 > + > + rm -rf ${S}/include/pcp/configsz.h > + rm -rf ${S}/include/pcp/platformsz.h > + > +} > +do_compile:prepend() { > + sed -i -e "s,#undef HAVE_64BIT_LONG,,g" \ > + -e "s,#undef HAVE_64BIT_PTR,,g" \ > + -e "s,#undef PM_SIZEOF_SUSECONDS_T,,g" \ > + -e "s,#undef PM_SIZEOF_TIME_T,,g" \ > + ${S}/src/include/pcp/config.h.in > + > + export AR=${TMPDIR}/hosttools/ar > +# export PYTHON=python3 > +} > + > +do_compile() { > + oe_runmake default_pcp > +} > + > +do_install () { > + oe_runmake install \ > + PCP_ETC_DIR=${D}/${sysconfdir} \ > + PCP_SYSCONF_DIR=${D}/${sysconfdir} \ > + PCP_VAR_DIR=${D}/${localstatedir} \ > + PCP_SHARE_DIR=${D}/${datadir} \ > + PCP_BIN_DIR=${D}/${bindir} \ > + PCP_BINADM_DIR=${D}/${libexecdir}/pcp/bin \ > + PCP_LIBADM_DIR=${D}/${libdir} \ > + PCP_LIB_DIR=${D}/${libdir} \ > + PCP_MAN_DIR=${D}/${mandir} \ > + PCP_DOC_DIR=${D}/${docdir} > +} > + > diff --git a/meta-oe/recipes-support/pcp/pcp.inc b/meta-oe/recipes-support/pcp/pcp.inc > new file mode 100644 > index 0000000000..f6f111b0e8 > --- /dev/null > +++ b/meta-oe/recipes-support/pcp/pcp.inc > @@ -0,0 +1,32 @@ > +SUMMARY = "System-level performance monitoring and performance management" > +HOMEPAGE = "http://www.pcp.io" > +SECTION = "Applications/System" > + > +LICENSE = "GPLv2+ & LGPLv2.1" > +LIC_FILES_CHKSUM = "file://COPYING;md5=37ab75b580d5aad4ada04260efa3702f \ > + " > +COMPATIBLE_HOST:libc-musl = "null" > + > +SRC_URI = "https://performancecopilot.jfrog.io/artifactory/pcp-source-release/pcp-5.3.5.src.tar.gz \ > + file://config.linux \ > + " > + > +SRC_URI[sha256sum] = "589a610f753a49af6d2015cede87e9d469bd07880ebef26fe1607b6ded375e97" > + > +inherit distutils3-base pkgconfig autotools > + > +B = "${S}" > + > +# Specify any options you want to pass to the configure script using EXTRA_OECONF: > +CACHED_CONFIGUREVARS = "PACKAGE_DISTRIBUTION=arch" > +EXTRA_OECONF:append = " --with-dstat-symlink=yes --with-infiniband=no \ > + --with-pmdapodman=no --with-python=no --with-python3=yes --with-perl=no \ > + --with-pmdabcc=no --with-pmdajson=no --with-perfevent=no \ > + --with-pmdabcc=yes \ > + --with-rundir=${localstatedir}/run \ > + --with-sysconfigdir=${sysconfdir} \ > + --with-logdir=${localstatedir}/log \ > + --with-docdir=${docdir} \ > + " > + > + > diff --git a/meta-oe/recipes-support/pcp/pcp/0001-Remove-unsuitble-part-for-cross-compile.patch b/meta-oe/recipes-support/pcp/pcp/0001-Remove-unsuitble-part-for-cross-compile.patch > new file mode 100644 > index 0000000000..292499850e > --- /dev/null > +++ b/meta-oe/recipes-support/pcp/pcp/0001-Remove-unsuitble-part-for-cross-compile.patch > @@ -0,0 +1,45 @@ > +From db9e6a4b7a48dee62fccb662347dd638a2d286d5 Mon Sep 17 00:00:00 2001 > +From: Lei Maohui <leimaohui@fujitsu.com> > +Date: Thu, 2 Dec 2021 14:29:06 +0900 > +Subject: [PATCH] Remove unsuitble part for cross-compile. > + > +Upstream-Status: Inappropriate [OE specific] > + > +Signed-off-by: Lei Maohui <leimaohui@fujitsu.com> > +--- > + configure.ac | 6 ------ > + src/libpcp/src/GNUmakefile | 1 - > + 2 files changed, 7 deletions(-) > + > +diff --git a/configure.ac b/configure.ac > +index 5b25382..5d24714 100644 > +--- a/configure.ac > ++++ b/configure.ac > +@@ -623,12 +623,6 @@ fi > + which=$WHICH > + AC_SUBST(which) > + > +-if test -z "$AR"; then > +- AC_PATH_PROGS(AR, [gcc-ar ar], /usr/bin/ar) > +-fi > +-if test ! -x "$AR"; then > +- AC_MSG_ERROR([cannot find a valid 'ar' command.]) > +-fi > + ar=$AR > + AC_SUBST(ar) > + > +diff --git a/src/libpcp/src/GNUmakefile b/src/libpcp/src/GNUmakefile > +index 3c4ccd6..d1eba19 100644 > +--- a/src/libpcp/src/GNUmakefile > ++++ b/src/libpcp/src/GNUmakefile > +@@ -176,7 +176,6 @@ exports: exports.in mk.exports > + # cases > + # > + check.done: $(OBJECTS) > +- ./check-statics > + touch check.done > + > + ifneq ($(LIBTARGET),) > +-- > +2.25.1 > + > diff --git a/meta-oe/recipes-support/pcp/pcp/config.linux b/meta-oe/recipes-support/pcp/pcp/config.linux > new file mode 100644 > index 0000000000..191f87acc6 > --- /dev/null > +++ b/meta-oe/recipes-support/pcp/pcp/config.linux > @@ -0,0 +1,13 @@ > +sizeof_int=4 > +sizeof_long=4 > +sizeof_pointer=8 > +sizeof_suseconds_t=8 > +sizeof_time_t=8 > +bit_field_scheme=2100 > +enable_python3='yes' > +enable_python3='true' > +have_python_OrderedDict="true" > +have_python=python3 > +printf_p_prefix=0x > +printf_fmt_int64=I64d > +strtoint64=strtoll > diff --git a/meta-oe/recipes-support/pcp/pcp_5.3.5.bb b/meta-oe/recipes-support/pcp/pcp_5.3.5.bb > new file mode 100644 > index 0000000000..e6c139e1d3 > --- /dev/null > +++ b/meta-oe/recipes-support/pcp/pcp_5.3.5.bb > @@ -0,0 +1,217 @@ > +require pcp.inc > +#inherit perlnative > + > +# 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 > +# NOTE: unable to map the following pkg-config dependencies: libmicrohttpd libsystemd-journal > +# (this is based on recipes that have previously been built and packaged) > +# NOTE: the following library dependencies are unknown, ignoring: nspr gen ibumad regex sasl2 pfm nss papi ibmad > +# (this is based on recipes that have previously been built and packaged) > +DEPENDS += "perl-native bison-native flex-native python3-native python3-setuptools python3 \ > + pcp-native cairo zlib ncurses readline libx11 avahi openssl" > + > + > +SRC_URI += "file://0001-Remove-unsuitble-part-for-cross-compile.patch \ > + " > + > +export PCP_DIR="${RECIPE_SYSROOT_NATIVE}" > +#export PCP_RUN_DIR="${RECIPE_SYSROOT_NATIVE}" > +EXTRA_OEMAKE = "CC="${CC}" LD="${LD}" AR="${AR}"" > +inherit useradd systemd > + > +SYSTEMD_AUTO_ENABLE:${PN} = "enable" > +SYSTEMD_SERVICE:${PN} = "pmcd.service pmcd.service pmie_check.service pmie_farm_check.service \ > + pmlogger_daily.service pmlogger_farm_check.service pmfind.service \ > + pmie_daily.service pmlogger.service pmlogger_daily_report.service \ > + pmproxy.service pmie.service pmie_farm.service pmlogger_check.service \ > + pmlogger_farm.service" > + > +USERADD_PACKAGES = "${PN}" > +USERADD_PARAM:${PN} = "--system --home ${localstatedir}/lib/pcp --no-create-home \ > + --user-group pcp" > + > +USERADD_PACKAGES = "${PN}-testsuite" > +USERADD_PARAM:${PN}-testsuite = "--system --home ${localstatedir}/lib/pcp/testsuite --no-create-home \ > + --user-group pcpqa" > + > +RDEPENDS:${PN} += "perl" > +RDEPENDS:${PN}-testsuite += "${PN} bash perl" > +RDEPENDS:python3-${PN} += "${PN} python3" > + > +do_configure:prepend () { > + cp ${WORKDIR}/config.linux ${B} > + rm -rf ${S}/include/pcp/configsz.h > + rm -rf ${S}/include/pcp/platformsz.h > + export SED=${TMPDIR}/hosttools/sed > + export PYTHON=python3 > +} > + > +do_compile:prepend() { > + sed -i -e "s,#undef HAVE_64BIT_LONG,,g" \ > + -e "s,#undef HAVE_64BIT_PTR,,g" \ > + -e "s,#undef PM_SIZEOF_SUSECONDS_T,,g" \ > + -e "s,#undef PM_SIZEOF_TIME_T,,g" \ > + ${S}/src/include/pcp/config.h.in > + sed -i -e "s,HAVE_PYTHON_ORDEREDDICT = false,HAVE_PYTHON_ORDEREDDICT = true,g" \ > + ${S}/src/include/builddefs > + sed -i -e "s,TOPDIR)/python3-pcp.list,TOPDIR)/python3-pcp.list --install-lib=${PYTHON_SITEPACKAGES_DIR},g" ${S}/src/python/GNUmakefile > + export PYTHON=python3 > + #export PYTHON3=${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} > +} > + > +do_compile() { > + oe_runmake default_pcp > +} > + > +do_install () { > + export NO_CHOWN=true > + oe_runmake install DIST_ROOT=${D}\ > + install_pcp > + > + rm -rf ${D}${localstatedir}/log > + rm -rf ${D}${localstatedir}/lib/pcp/pmcd > + rm -rf ${D}${localstatedir}/lib/pcp/tmp > + rm -rf ${D}${localstatedir}/run > + mv ${D}${docdir}/C* ${D}${docdir}/pcp-doc/ > + mv ${D}${docdir}/I* ${D}${docdir}/pcp-doc/ > + mv ${D}${docdir}/R* ${D}${docdir}/pcp-doc/ > + mv ${D}${docdir}/V* ${D}${docdir}/pcp-doc/ > + sed -i "s#PCP_AWK_PROG=.*#PCP_AWK_PROG=awk#" ${D}/${sysconfdir}/pcp.conf > + sed -i "s#PCP_SORT_PROG=.*#PCP_SORT_PROG=sort#" ${D}/${sysconfdir}/pcp.conf > + sed -i "s#PCP_ECHO_PROG=.*#PCP_ECHO_PROG=echo#" ${D}/${sysconfdir}/pcp.conf > + sed -i "s#PCP_WHICH_PROG=.*#PCP_WHICH_PROG=which#" ${D}/${sysconfdir}/pcp.conf > +} > + > +PACKAGES += " ${PN}-export-zabbix-agent ${PN}-testsuite \ > + libpcp-gui2 libpcp-gui2-dev \ > + libpcp-import1 \ > + libpcp-mmv1 libpcp-mmv1-dev \ > + libpcp-pmda3 libpcp-pmda3-dev \ > + libpcp-trace2 libpcp-trace2-dev \ > + libpcp-web1 libpcp-web1-dev \ > + libpcp3 libpcp3-dev python3-${PN}\ > +" > +FILES:libpcp-gui2 = "${libdir}/libpcp_gui.so.2 \ > +" > +FILES:libpcp-gui2-dev = " \ > + ${libdir}/libpcp_gui.so \ > + ${libdir}/libpcp_gui.a \ > + ${includedir}/pmafm.h \ > + ${includedir}/pmtime.h \ > +" > +FILES:libpcp-mmv1 = " \ > + ${libdir}/libpcp_mmv.so.1 \ > +" > +FILES:libpcp-mmv1-dev = " \ > + ${libdir}/libpcp_mmv.a \ > + ${libdir}/libpcp_mmv.so \ > + ${libdir}/libpcp_mmv.so \ > + ${includedir}/mmv_stats.h \ > + ${includedir}/mmv_dev.h \ > + ${datadir}/man/man3/mmv_* \ > + ${datadir}/man/man5/mmv.5.gz \ > +" > +FILES:libpcp-import1 = " \ > + ${libdir}/libpcp_import.so.1 \ > +" > +FILES:libpcp-pmda3 = " \ > + ${libdir}/libpcp_pmda.so.3 \ > +" > +FILES:libpcp-pmda3-dev = " \ > + ${includedir}/pmda.h \ > + ${includedir}/pmdaroot.h \ > + ${libdir}/libpcp_pmda.a \ > + ${libdir}/libpcp_pmda.so \ > + ${libdir}/pkgconfig/libpcp_pmda.pc \ > + ${datadir}/man/man3/PMDA.3.gz \ > + ${datadir}/man/man3/pmda* \ > +" > +FILES:libpcp-trace2 = " \ > + ${libdir}/libpcp_trace.so.2 \ > +" > +FILES:libpcp-trace2-dev = " \ > + ${includedir}/trace.h \ > + ${includedir}/trace_dev.h \ > + ${libdir}/libpcp_trace.a \ > + ${libdir}/libpcp_trace.so \ > + ${datadir}/man/man3/pmtrace* \ > +" > +FILES:libpcp-web1 = " \ > + ${libdir}/libpcp_web.so.1 \ > +" > +FILES:libpcp-web1-dev = " \ > + ${includedir}/pmhttp.h \ > + ${includedir}/pmjson.h \ > + ${libdir}/libpcp_web.a \ > + ${libdir}/libpcp_web.so \ > + ${datadir}/man/man3/pmhttp* \ > + ${datadir}/man/man3/pmjson* \ > +" > +FILES:libpcp3 = " \ > + ${libdir}/libpcp.so.3 \ > +" > + > +FILES:${PN} = " \ > + ${sysconfdir}/pcp \ > + ${libexecdir} \ > + ${bindir} \ > + ${datadir}/bash-completion \ > + ${datadir}/pcp-gui \ > + ${datadir}/zsh \ > + ${systemd_system_unitdir}/ \ > + ${libdir}/pcp/ \ > + ${datadir}/pcp \ > + ${libdir}/*.sh \ > + ${datadir}/man \ > + ${libdir}/rc-proc.sh.minimal \ > + ${sysconfdir}/p* \ > + ${sysconfdir}/s* \ > + ${localstatedir}/lib/pcp/config \ > + ${localstatedir}/lib/pcp/pmdas/ \ > + ${localstatedir}/lib/pcp/pmns \ > + ${libdir}/libpcp_fault.so.3 \ > +" > + > +FILES:${PN}-export-zabbix-agent += " \ > + ${libdir}/zabbix \ > + ${sysconfdir}/zabbix \ > + ${mandir}/man3/zbxpcp.3.gz \ > + ${libdir}/zabbix \ > +" > +FILES:${PN}-testsuite = "${localstatedir}/lib/pcp/testsuite/" > +FILES:python3-${PN} = "${PYTHON_SITEPACKAGES_DIR}" > +FILES:${PN}-dev += " \ > + ${includedir}/pcp \ > + ${libdir}/libpcp.a \ > + ${libdir}/libpcp.so \ > + ${localstatedir}/lib/pcp/pmdas/*/*.so \ > + ${libexecdir}/pcp/bin/install-sh \ > + ${libdir}/pkgconfig/libpcp.pc \ > + ${libdir}/zabbix/modules/*.so \ > + ${datadir}/man/man3/LOGIMPORT.3.gz \ > + ${datadir}/man/man3/P* \ > + ${datadir}/man/man3/Q* \ > + ${datadir}/man/man3/__pm* \ > + ${datadir}/man/man3/pmA* \ > + ${datadir}/man/man3/pmC* \ > + ${datadir}/man/man3/pmD* \ > + ${datadir}/man/man3/pmE* \ > + ${datadir}/man/man3/pmF* \ > + ${datadir}/man/man3/pmG* \ > + ${datadir}/man/man3/pmH* \ > + ${datadir}/man/man3/pmI* \ > + ${datadir}/man/man3/pmL* \ > + ${datadir}/man/man3/pmM* \ > + ${datadir}/man/man3/pmN* \ > + ${datadir}/man/man3/pmO* \ > + ${datadir}/man/man3/pmP* \ > + ${datadir}/man/man3/pmR* \ > + ${datadir}/man/man3/pmS* \ > + ${datadir}/man/man3/pmT* \ > + ${datadir}/man/man3/pmU* \ > + ${datadir}/man/man3/pmW* \ > + ${datadir}/man/man3/pmf* \ > + ${datadir}/man/man3/pmg* \ > + ${datadir}/man/man3/pmi* \ > + ${datadir}/man/man3/pms* \ > + ${datadir}/man/man3/pmt* \ > +" > -- > 2.25.1 > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#94679): https://lists.openembedded.org/g/openembedded-devel/message/94679 > Mute This Topic: https://lists.openembedded.org/mt/88257328/1997914 > Group Owner: openembedded-devel+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [raj.khem@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- >
diff --git a/meta-oe/recipes-support/pcp/pcp-native_5.3.5.bb b/meta-oe/recipes-support/pcp/pcp-native_5.3.5.bb new file mode 100644 index 0000000000..029a47531b --- /dev/null +++ b/meta-oe/recipes-support/pcp/pcp-native_5.3.5.bb @@ -0,0 +1,49 @@ +require pcp.inc +inherit python3native native +#autotools-brokensep +DEPENDS = "python3-native python3-setuptools-native flex-native bison-native" + +export PCP_DIR = "${D}" +export PCP_TMP_DIR = "${D}/tmp" +export PCP_BIN_DIR = "${D}/usr/bin" + +B = "${S}" + +do_configure:prepend() { + export SED=${TMPDIR}/hosttools/sed + export AR=${TMPDIR}/hosttools/ar +# export PYTHON=python3 + + rm -rf ${S}/include/pcp/configsz.h + rm -rf ${S}/include/pcp/platformsz.h + +} +do_compile:prepend() { + sed -i -e "s,#undef HAVE_64BIT_LONG,,g" \ + -e "s,#undef HAVE_64BIT_PTR,,g" \ + -e "s,#undef PM_SIZEOF_SUSECONDS_T,,g" \ + -e "s,#undef PM_SIZEOF_TIME_T,,g" \ + ${S}/src/include/pcp/config.h.in + + export AR=${TMPDIR}/hosttools/ar +# export PYTHON=python3 +} + +do_compile() { + oe_runmake default_pcp +} + +do_install () { + oe_runmake install \ + PCP_ETC_DIR=${D}/${sysconfdir} \ + PCP_SYSCONF_DIR=${D}/${sysconfdir} \ + PCP_VAR_DIR=${D}/${localstatedir} \ + PCP_SHARE_DIR=${D}/${datadir} \ + PCP_BIN_DIR=${D}/${bindir} \ + PCP_BINADM_DIR=${D}/${libexecdir}/pcp/bin \ + PCP_LIBADM_DIR=${D}/${libdir} \ + PCP_LIB_DIR=${D}/${libdir} \ + PCP_MAN_DIR=${D}/${mandir} \ + PCP_DOC_DIR=${D}/${docdir} +} + diff --git a/meta-oe/recipes-support/pcp/pcp.inc b/meta-oe/recipes-support/pcp/pcp.inc new file mode 100644 index 0000000000..f6f111b0e8 --- /dev/null +++ b/meta-oe/recipes-support/pcp/pcp.inc @@ -0,0 +1,32 @@ +SUMMARY = "System-level performance monitoring and performance management" +HOMEPAGE = "http://www.pcp.io" +SECTION = "Applications/System" + +LICENSE = "GPLv2+ & LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=37ab75b580d5aad4ada04260efa3702f \ + " +COMPATIBLE_HOST:libc-musl = "null" + +SRC_URI = "https://performancecopilot.jfrog.io/artifactory/pcp-source-release/pcp-5.3.5.src.tar.gz \ + file://config.linux \ + " + +SRC_URI[sha256sum] = "589a610f753a49af6d2015cede87e9d469bd07880ebef26fe1607b6ded375e97" + +inherit distutils3-base pkgconfig autotools + +B = "${S}" + +# Specify any options you want to pass to the configure script using EXTRA_OECONF: +CACHED_CONFIGUREVARS = "PACKAGE_DISTRIBUTION=arch" +EXTRA_OECONF:append = " --with-dstat-symlink=yes --with-infiniband=no \ + --with-pmdapodman=no --with-python=no --with-python3=yes --with-perl=no \ + --with-pmdabcc=no --with-pmdajson=no --with-perfevent=no \ + --with-pmdabcc=yes \ + --with-rundir=${localstatedir}/run \ + --with-sysconfigdir=${sysconfdir} \ + --with-logdir=${localstatedir}/log \ + --with-docdir=${docdir} \ + " + + diff --git a/meta-oe/recipes-support/pcp/pcp/0001-Remove-unsuitble-part-for-cross-compile.patch b/meta-oe/recipes-support/pcp/pcp/0001-Remove-unsuitble-part-for-cross-compile.patch new file mode 100644 index 0000000000..292499850e --- /dev/null +++ b/meta-oe/recipes-support/pcp/pcp/0001-Remove-unsuitble-part-for-cross-compile.patch @@ -0,0 +1,45 @@ +From db9e6a4b7a48dee62fccb662347dd638a2d286d5 Mon Sep 17 00:00:00 2001 +From: Lei Maohui <leimaohui@fujitsu.com> +Date: Thu, 2 Dec 2021 14:29:06 +0900 +Subject: [PATCH] Remove unsuitble part for cross-compile. + +Upstream-Status: Inappropriate [OE specific] + +Signed-off-by: Lei Maohui <leimaohui@fujitsu.com> +--- + configure.ac | 6 ------ + src/libpcp/src/GNUmakefile | 1 - + 2 files changed, 7 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 5b25382..5d24714 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -623,12 +623,6 @@ fi + which=$WHICH + AC_SUBST(which) + +-if test -z "$AR"; then +- AC_PATH_PROGS(AR, [gcc-ar ar], /usr/bin/ar) +-fi +-if test ! -x "$AR"; then +- AC_MSG_ERROR([cannot find a valid 'ar' command.]) +-fi + ar=$AR + AC_SUBST(ar) + +diff --git a/src/libpcp/src/GNUmakefile b/src/libpcp/src/GNUmakefile +index 3c4ccd6..d1eba19 100644 +--- a/src/libpcp/src/GNUmakefile ++++ b/src/libpcp/src/GNUmakefile +@@ -176,7 +176,6 @@ exports: exports.in mk.exports + # cases + # + check.done: $(OBJECTS) +- ./check-statics + touch check.done + + ifneq ($(LIBTARGET),) +-- +2.25.1 + diff --git a/meta-oe/recipes-support/pcp/pcp/config.linux b/meta-oe/recipes-support/pcp/pcp/config.linux new file mode 100644 index 0000000000..191f87acc6 --- /dev/null +++ b/meta-oe/recipes-support/pcp/pcp/config.linux @@ -0,0 +1,13 @@ +sizeof_int=4 +sizeof_long=4 +sizeof_pointer=8 +sizeof_suseconds_t=8 +sizeof_time_t=8 +bit_field_scheme=2100 +enable_python3='yes' +enable_python3='true' +have_python_OrderedDict="true" +have_python=python3 +printf_p_prefix=0x +printf_fmt_int64=I64d +strtoint64=strtoll diff --git a/meta-oe/recipes-support/pcp/pcp_5.3.5.bb b/meta-oe/recipes-support/pcp/pcp_5.3.5.bb new file mode 100644 index 0000000000..e6c139e1d3 --- /dev/null +++ b/meta-oe/recipes-support/pcp/pcp_5.3.5.bb @@ -0,0 +1,217 @@ +require pcp.inc +#inherit perlnative + +# 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 +# NOTE: unable to map the following pkg-config dependencies: libmicrohttpd libsystemd-journal +# (this is based on recipes that have previously been built and packaged) +# NOTE: the following library dependencies are unknown, ignoring: nspr gen ibumad regex sasl2 pfm nss papi ibmad +# (this is based on recipes that have previously been built and packaged) +DEPENDS += "perl-native bison-native flex-native python3-native python3-setuptools python3 \ + pcp-native cairo zlib ncurses readline libx11 avahi openssl" + + +SRC_URI += "file://0001-Remove-unsuitble-part-for-cross-compile.patch \ + " + +export PCP_DIR="${RECIPE_SYSROOT_NATIVE}" +#export PCP_RUN_DIR="${RECIPE_SYSROOT_NATIVE}" +EXTRA_OEMAKE = "CC="${CC}" LD="${LD}" AR="${AR}"" +inherit useradd systemd + +SYSTEMD_AUTO_ENABLE:${PN} = "enable" +SYSTEMD_SERVICE:${PN} = "pmcd.service pmcd.service pmie_check.service pmie_farm_check.service \ + pmlogger_daily.service pmlogger_farm_check.service pmfind.service \ + pmie_daily.service pmlogger.service pmlogger_daily_report.service \ + pmproxy.service pmie.service pmie_farm.service pmlogger_check.service \ + pmlogger_farm.service" + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM:${PN} = "--system --home ${localstatedir}/lib/pcp --no-create-home \ + --user-group pcp" + +USERADD_PACKAGES = "${PN}-testsuite" +USERADD_PARAM:${PN}-testsuite = "--system --home ${localstatedir}/lib/pcp/testsuite --no-create-home \ + --user-group pcpqa" + +RDEPENDS:${PN} += "perl" +RDEPENDS:${PN}-testsuite += "${PN} bash perl" +RDEPENDS:python3-${PN} += "${PN} python3" + +do_configure:prepend () { + cp ${WORKDIR}/config.linux ${B} + rm -rf ${S}/include/pcp/configsz.h + rm -rf ${S}/include/pcp/platformsz.h + export SED=${TMPDIR}/hosttools/sed + export PYTHON=python3 +} + +do_compile:prepend() { + sed -i -e "s,#undef HAVE_64BIT_LONG,,g" \ + -e "s,#undef HAVE_64BIT_PTR,,g" \ + -e "s,#undef PM_SIZEOF_SUSECONDS_T,,g" \ + -e "s,#undef PM_SIZEOF_TIME_T,,g" \ + ${S}/src/include/pcp/config.h.in + sed -i -e "s,HAVE_PYTHON_ORDEREDDICT = false,HAVE_PYTHON_ORDEREDDICT = true,g" \ + ${S}/src/include/builddefs + sed -i -e "s,TOPDIR)/python3-pcp.list,TOPDIR)/python3-pcp.list --install-lib=${PYTHON_SITEPACKAGES_DIR},g" ${S}/src/python/GNUmakefile + export PYTHON=python3 + #export PYTHON3=${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} +} + +do_compile() { + oe_runmake default_pcp +} + +do_install () { + export NO_CHOWN=true + oe_runmake install DIST_ROOT=${D}\ + install_pcp + + rm -rf ${D}${localstatedir}/log + rm -rf ${D}${localstatedir}/lib/pcp/pmcd + rm -rf ${D}${localstatedir}/lib/pcp/tmp + rm -rf ${D}${localstatedir}/run + mv ${D}${docdir}/C* ${D}${docdir}/pcp-doc/ + mv ${D}${docdir}/I* ${D}${docdir}/pcp-doc/ + mv ${D}${docdir}/R* ${D}${docdir}/pcp-doc/ + mv ${D}${docdir}/V* ${D}${docdir}/pcp-doc/ + sed -i "s#PCP_AWK_PROG=.*#PCP_AWK_PROG=awk#" ${D}/${sysconfdir}/pcp.conf + sed -i "s#PCP_SORT_PROG=.*#PCP_SORT_PROG=sort#" ${D}/${sysconfdir}/pcp.conf + sed -i "s#PCP_ECHO_PROG=.*#PCP_ECHO_PROG=echo#" ${D}/${sysconfdir}/pcp.conf + sed -i "s#PCP_WHICH_PROG=.*#PCP_WHICH_PROG=which#" ${D}/${sysconfdir}/pcp.conf +} + +PACKAGES += " ${PN}-export-zabbix-agent ${PN}-testsuite \ + libpcp-gui2 libpcp-gui2-dev \ + libpcp-import1 \ + libpcp-mmv1 libpcp-mmv1-dev \ + libpcp-pmda3 libpcp-pmda3-dev \ + libpcp-trace2 libpcp-trace2-dev \ + libpcp-web1 libpcp-web1-dev \ + libpcp3 libpcp3-dev python3-${PN}\ +" +FILES:libpcp-gui2 = "${libdir}/libpcp_gui.so.2 \ +" +FILES:libpcp-gui2-dev = " \ + ${libdir}/libpcp_gui.so \ + ${libdir}/libpcp_gui.a \ + ${includedir}/pmafm.h \ + ${includedir}/pmtime.h \ +" +FILES:libpcp-mmv1 = " \ + ${libdir}/libpcp_mmv.so.1 \ +" +FILES:libpcp-mmv1-dev = " \ + ${libdir}/libpcp_mmv.a \ + ${libdir}/libpcp_mmv.so \ + ${libdir}/libpcp_mmv.so \ + ${includedir}/mmv_stats.h \ + ${includedir}/mmv_dev.h \ + ${datadir}/man/man3/mmv_* \ + ${datadir}/man/man5/mmv.5.gz \ +" +FILES:libpcp-import1 = " \ + ${libdir}/libpcp_import.so.1 \ +" +FILES:libpcp-pmda3 = " \ + ${libdir}/libpcp_pmda.so.3 \ +" +FILES:libpcp-pmda3-dev = " \ + ${includedir}/pmda.h \ + ${includedir}/pmdaroot.h \ + ${libdir}/libpcp_pmda.a \ + ${libdir}/libpcp_pmda.so \ + ${libdir}/pkgconfig/libpcp_pmda.pc \ + ${datadir}/man/man3/PMDA.3.gz \ + ${datadir}/man/man3/pmda* \ +" +FILES:libpcp-trace2 = " \ + ${libdir}/libpcp_trace.so.2 \ +" +FILES:libpcp-trace2-dev = " \ + ${includedir}/trace.h \ + ${includedir}/trace_dev.h \ + ${libdir}/libpcp_trace.a \ + ${libdir}/libpcp_trace.so \ + ${datadir}/man/man3/pmtrace* \ +" +FILES:libpcp-web1 = " \ + ${libdir}/libpcp_web.so.1 \ +" +FILES:libpcp-web1-dev = " \ + ${includedir}/pmhttp.h \ + ${includedir}/pmjson.h \ + ${libdir}/libpcp_web.a \ + ${libdir}/libpcp_web.so \ + ${datadir}/man/man3/pmhttp* \ + ${datadir}/man/man3/pmjson* \ +" +FILES:libpcp3 = " \ + ${libdir}/libpcp.so.3 \ +" + +FILES:${PN} = " \ + ${sysconfdir}/pcp \ + ${libexecdir} \ + ${bindir} \ + ${datadir}/bash-completion \ + ${datadir}/pcp-gui \ + ${datadir}/zsh \ + ${systemd_system_unitdir}/ \ + ${libdir}/pcp/ \ + ${datadir}/pcp \ + ${libdir}/*.sh \ + ${datadir}/man \ + ${libdir}/rc-proc.sh.minimal \ + ${sysconfdir}/p* \ + ${sysconfdir}/s* \ + ${localstatedir}/lib/pcp/config \ + ${localstatedir}/lib/pcp/pmdas/ \ + ${localstatedir}/lib/pcp/pmns \ + ${libdir}/libpcp_fault.so.3 \ +" + +FILES:${PN}-export-zabbix-agent += " \ + ${libdir}/zabbix \ + ${sysconfdir}/zabbix \ + ${mandir}/man3/zbxpcp.3.gz \ + ${libdir}/zabbix \ +" +FILES:${PN}-testsuite = "${localstatedir}/lib/pcp/testsuite/" +FILES:python3-${PN} = "${PYTHON_SITEPACKAGES_DIR}" +FILES:${PN}-dev += " \ + ${includedir}/pcp \ + ${libdir}/libpcp.a \ + ${libdir}/libpcp.so \ + ${localstatedir}/lib/pcp/pmdas/*/*.so \ + ${libexecdir}/pcp/bin/install-sh \ + ${libdir}/pkgconfig/libpcp.pc \ + ${libdir}/zabbix/modules/*.so \ + ${datadir}/man/man3/LOGIMPORT.3.gz \ + ${datadir}/man/man3/P* \ + ${datadir}/man/man3/Q* \ + ${datadir}/man/man3/__pm* \ + ${datadir}/man/man3/pmA* \ + ${datadir}/man/man3/pmC* \ + ${datadir}/man/man3/pmD* \ + ${datadir}/man/man3/pmE* \ + ${datadir}/man/man3/pmF* \ + ${datadir}/man/man3/pmG* \ + ${datadir}/man/man3/pmH* \ + ${datadir}/man/man3/pmI* \ + ${datadir}/man/man3/pmL* \ + ${datadir}/man/man3/pmM* \ + ${datadir}/man/man3/pmN* \ + ${datadir}/man/man3/pmO* \ + ${datadir}/man/man3/pmP* \ + ${datadir}/man/man3/pmR* \ + ${datadir}/man/man3/pmS* \ + ${datadir}/man/man3/pmT* \ + ${datadir}/man/man3/pmU* \ + ${datadir}/man/man3/pmW* \ + ${datadir}/man/man3/pmf* \ + ${datadir}/man/man3/pmg* \ + ${datadir}/man/man3/pmi* \ + ${datadir}/man/man3/pms* \ + ${datadir}/man/man3/pmt* \ +"
Performance Co-Pilot is a system performance analysis toolkit - Collect performance metrics from your systems efficiently. - Analyze systems' performance metrics in real-time or using historical data. - Extend the collected performance metrics in a simple way. Signed-off-by: Lei Maohui <leimaohui@fujitsu.com> --- .../recipes-support/pcp/pcp-native_5.3.5.bb | 49 ++++ meta-oe/recipes-support/pcp/pcp.inc | 32 +++ ...ove-unsuitble-part-for-cross-compile.patch | 45 ++++ meta-oe/recipes-support/pcp/pcp/config.linux | 13 ++ meta-oe/recipes-support/pcp/pcp_5.3.5.bb | 217 ++++++++++++++++++ 5 files changed, 356 insertions(+) create mode 100644 meta-oe/recipes-support/pcp/pcp-native_5.3.5.bb create mode 100644 meta-oe/recipes-support/pcp/pcp.inc create mode 100644 meta-oe/recipes-support/pcp/pcp/0001-Remove-unsuitble-part-for-cross-compile.patch create mode 100644 meta-oe/recipes-support/pcp/pcp/config.linux create mode 100644 meta-oe/recipes-support/pcp/pcp_5.3.5.bb