mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
app-metrics/collectd: drop old
Package-Manager: Portage-2.3.44, Repoman-2.3.10
This commit is contained in:
@@ -1,2 +1 @@
|
||||
DIST collectd-5.7.2.tar.bz2 1798777 BLAKE2B 4af359a773457bb9c05b6a301d7728eea7598c200f7ca534875b07d1d011b280ab138f680d9607723f14523dd71dcbec3a41e0d8d183848c8ef809cef86c2b8f SHA512 8844b67159f8da2203b5ac57ef19fce0a01050a016174d196b48b5fb24925ad2935af9bdd9af06097ff663499abc496cdcc2d9e9a10f403f8d707c465c1a88f3
|
||||
DIST collectd-5.8.0.tar.bz2 1686017 BLAKE2B 26d995cdb9c25869bf96a056e6ba879de9f009fd4bbf1364a7dedba93b822e57c4b606ca8c84da68cc29db8e77333047695e85d7eb101080de9cee783240f5ea SHA512 1b3d0cc44e2ca54e13eebf292074f1efa8b33d6800d04405e0eaaa2dd1cb2416c6eae580729fb5aead23a5039f41ffe8a9989a907a8c18be8f867f1099fc0008
|
||||
|
||||
@@ -1,548 +0,0 @@
|
||||
# Copyright 1999-2018 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="6"
|
||||
|
||||
PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} )
|
||||
JAVA_PKG_OPT_USE="collectd_plugins_java"
|
||||
|
||||
inherit autotools fcaps flag-o-matic java-pkg-opt-2 linux-info multilib perl-functions python-single-r1 systemd tmpfiles user
|
||||
|
||||
DESCRIPTION="Collects system statistics and provides mechanisms to store the values"
|
||||
|
||||
HOMEPAGE="https://collectd.org/"
|
||||
SRC_URI="${HOMEPAGE%/}/files/${P}.tar.bz2"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="alpha amd64 arm x86"
|
||||
IUSE="contrib debug java kernel_Darwin kernel_FreeBSD kernel_linux perl selinux static-libs udev xfs"
|
||||
|
||||
# The plugin lists have to follow here since they extend IUSE
|
||||
|
||||
# Plugins that don't build (e.g. dependencies not in Gentoo)
|
||||
# apple_sensors: Requires libIOKit
|
||||
# aquaero: Requires aerotools-ng/libaquaero5
|
||||
# barometer: Requires libi2c (i2c_smbus_read_i2c_block_data)
|
||||
# dpdkstat: Requires dpdk
|
||||
# grpc: Requires libgrpc
|
||||
# intel_rdt Requires libpqos from intel-cmt-cat project
|
||||
# lpar: Requires libperfstat (AIX only)
|
||||
# mic: Requires Intel Many Integrated Core Architecture API
|
||||
# (part of Intel's Xeon Phi software)
|
||||
# netapp: Requires libnetapp (http://communities.netapp.com/docs/DOC-1110)
|
||||
# pf: Requires BSD packet filter
|
||||
# pinba: Requires MySQL Pinba engine (http://pinba.org/)
|
||||
# tape: Requires libkstat (Solaris only)
|
||||
# write_mongodb: https://github.com/collectd/collectd/issues/492
|
||||
# write_riemann: Requires riemann-c-client
|
||||
# xmms: Requires libxmms (v1)
|
||||
# zone: Solaris only...
|
||||
COLLECTD_IMPOSSIBLE_PLUGINS="apple_sensors aquaero barometer dpdkstat grpc
|
||||
intel_rdt lpar mic netapp pf pinba tape write_mongodb
|
||||
write_riemann xmms zone"
|
||||
|
||||
# Plugins that have been (compile) tested and can be enabled via COLLECTD_PLUGINS
|
||||
COLLECTD_TESTED_PLUGINS="aggregation amqp apache apcups ascent battery bind
|
||||
ceph cgroups chrony conntrack contextswitch cpu cpufreq cpusleep
|
||||
csv curl curl_json curl_xml dbi df disk dns drbd email
|
||||
entropy ethstat exec fhcount filecount fscache gmond gps hddtemp
|
||||
hugepages interface ipc ipmi iptables ipvs irq java lua
|
||||
load logfile log_logstash lvm madwifi match_empty_counter
|
||||
match_hashed match_regex match_timediff match_value mbmon md
|
||||
memcachec memcached memory modbus mqtt multimeter mysql netlink
|
||||
network network nfs nginx notify_desktop notify_email notify_nagios
|
||||
ntpd numa nut olsrd onewire openldap openvpn oracle perl ping
|
||||
postgresql powerdns processes protocols python python redis
|
||||
routeros rrdcached rrdtool sensors serial sigrok smart snmp statsd
|
||||
swap syslog table tail tail_csv target_notification target_replace
|
||||
target_scale target_set tcpconns teamspeak2 ted thermal threshold
|
||||
tokyotyrant turbostat unixsock uptime users uuid varnish virt
|
||||
vmem vserver wireless write_graphite write_http write_kafka
|
||||
write_log write_prometheus write_redis write_sensu write_tsdb
|
||||
xencpu zfs_arc zookeeper"
|
||||
|
||||
COLLECTD_DISABLED_PLUGINS="${COLLECTD_IMPOSSIBLE_PLUGINS}"
|
||||
|
||||
COLLECTD_ALL_PLUGINS=${COLLECTD_TESTED_PLUGINS}
|
||||
|
||||
for plugin in ${COLLECTD_ALL_PLUGINS}; do
|
||||
IUSE="${IUSE} collectd_plugins_${plugin}"
|
||||
done
|
||||
unset plugin
|
||||
|
||||
# Now come the dependencies.
|
||||
|
||||
COMMON_DEPEND="
|
||||
dev-libs/libgcrypt:=
|
||||
dev-libs/libltdl:0=
|
||||
perl? ( dev-lang/perl:=[ithreads] )
|
||||
udev? ( virtual/udev )
|
||||
xfs? ( sys-fs/xfsprogs )
|
||||
collectd_plugins_amqp? ( net-libs/rabbitmq-c )
|
||||
collectd_plugins_apache? ( net-misc/curl:0= )
|
||||
collectd_plugins_ascent? ( net-misc/curl:0= dev-libs/libxml2:2= )
|
||||
collectd_plugins_bind? ( net-misc/curl:0= dev-libs/libxml2:2= )
|
||||
collectd_plugins_ceph? ( dev-libs/yajl:= )
|
||||
collectd_plugins_curl? ( net-misc/curl:0= )
|
||||
collectd_plugins_curl_json? ( net-misc/curl:0= dev-libs/yajl:= )
|
||||
collectd_plugins_curl_xml? ( net-misc/curl:0= dev-libs/libxml2:2= )
|
||||
collectd_plugins_dbi? ( dev-db/libdbi )
|
||||
collectd_plugins_dns? ( net-libs/libpcap )
|
||||
collectd_plugins_gmond? ( sys-cluster/ganglia )
|
||||
collectd_plugins_gps? ( sci-geosciences/gpsd:= )
|
||||
collectd_plugins_ipmi? ( >=sys-libs/openipmi-2.0.16-r1 )
|
||||
collectd_plugins_iptables? ( >=net-firewall/iptables-1.4.13:0= )
|
||||
collectd_plugins_log_logstash? ( dev-libs/yajl:= )
|
||||
collectd_plugins_lua? ( dev-lang/lua:0= )
|
||||
collectd_plugins_lvm? ( sys-fs/lvm2 )
|
||||
collectd_plugins_memcachec? ( dev-libs/libmemcached )
|
||||
collectd_plugins_modbus? ( dev-libs/libmodbus )
|
||||
collectd_plugins_mqtt? ( app-misc/mosquitto )
|
||||
collectd_plugins_mysql? ( virtual/libmysqlclient:= )
|
||||
collectd_plugins_netlink? ( net-libs/libmnl )
|
||||
collectd_plugins_nginx? ( net-misc/curl:0= )
|
||||
collectd_plugins_notify_desktop? ( x11-libs/libnotify )
|
||||
collectd_plugins_notify_email? ( net-libs/libesmtp )
|
||||
collectd_plugins_nut? ( >=sys-power/nut-2.7.2-r2 )
|
||||
collectd_plugins_openldap? ( net-nds/openldap )
|
||||
collectd_plugins_onewire? ( >=sys-fs/owfs-3.1:= )
|
||||
collectd_plugins_oracle? ( dev-db/oracle-instantclient-basic )
|
||||
collectd_plugins_perl? ( dev-lang/perl:=[ithreads] )
|
||||
collectd_plugins_ping? ( net-libs/liboping )
|
||||
collectd_plugins_postgresql? ( dev-db/postgresql:= )
|
||||
collectd_plugins_python? ( ${PYTHON_DEPS} )
|
||||
collectd_plugins_redis? ( dev-libs/hiredis:= )
|
||||
collectd_plugins_routeros? ( net-libs/librouteros )
|
||||
collectd_plugins_rrdcached? ( net-analyzer/rrdtool:= )
|
||||
collectd_plugins_rrdtool? ( net-analyzer/rrdtool:= )
|
||||
collectd_plugins_sensors? ( sys-apps/lm_sensors )
|
||||
collectd_plugins_sigrok? ( <sci-libs/libsigrok-0.4:= dev-libs/glib:2 )
|
||||
collectd_plugins_smart? ( dev-libs/libatasmart )
|
||||
collectd_plugins_snmp? ( net-analyzer/net-snmp )
|
||||
collectd_plugins_tokyotyrant? ( net-misc/tokyotyrant )
|
||||
collectd_plugins_varnish? ( www-servers/varnish )
|
||||
collectd_plugins_virt? ( app-emulation/libvirt:= dev-libs/libxml2:2= )
|
||||
collectd_plugins_write_http? ( net-misc/curl:0= dev-libs/yajl:= )
|
||||
collectd_plugins_write_kafka? ( >=dev-libs/librdkafka-0.9.0.99:= dev-libs/yajl:= )
|
||||
collectd_plugins_write_prometheus? ( >=dev-libs/protobuf-c-1.2.1-r1:= net-libs/libmicrohttpd:= )
|
||||
collectd_plugins_write_redis? ( dev-libs/hiredis:= )
|
||||
collectd_plugins_xencpu? ( app-emulation/xen-tools:= )
|
||||
|
||||
kernel_FreeBSD? (
|
||||
collectd_plugins_disk? ( sys-libs/libstatgrab:= )
|
||||
collectd_plugins_interface? ( sys-libs/libstatgrab:= )
|
||||
collectd_plugins_load? ( sys-libs/libstatgrab:= )
|
||||
collectd_plugins_memory? ( sys-libs/libstatgrab:= )
|
||||
collectd_plugins_swap? ( sys-libs/libstatgrab:= )
|
||||
collectd_plugins_users? ( sys-libs/libstatgrab:= )
|
||||
)"
|
||||
|
||||
# Enforcing !=sys-kernel/linux-headers-4.5 > due to #577846
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
collectd_plugins_iptables? ( || ( <=sys-kernel/linux-headers-4.4 >=sys-kernel/linux-headers-4.6 ) )
|
||||
collectd_plugins_java? ( >=virtual/jdk-1.6 )
|
||||
virtual/pkgconfig"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
collectd_plugins_java? ( >=virtual/jre-1.6 )
|
||||
collectd_plugins_syslog? ( virtual/logger )
|
||||
selinux? ( sec-policy/selinux-collectd )
|
||||
!<sys-apps/openrc-0.18.2"
|
||||
|
||||
REQUIRED_USE="
|
||||
collectd_plugins_python? ( ${PYTHON_REQUIRED_USE} )
|
||||
collectd_plugins_smart? ( udev )"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-5.6.0-gentoo.patch
|
||||
"${FILESDIR}"/${PN}-5.7.2-issue-2443.patch
|
||||
"${FILESDIR}"/${PN}-5.7.2-CVE-2017-16820.patch
|
||||
"${FILESDIR}"/${PN}-5.7.2-varnish-5.2+.patch
|
||||
)
|
||||
|
||||
# @FUNCTION: collectd_plugin_kernel_linux
|
||||
# @DESCRIPTION:
|
||||
# USAGE: <plugin name> <kernel_options> <severity>
|
||||
# kernel_options is a list of kernel configurations options; the check tests whether at least
|
||||
# one of them is enabled. If no, depending on the third argument an elog, ewarn, or eerror message
|
||||
# is emitted.
|
||||
collectd_plugin_kernel_linux() {
|
||||
local multi_opt opt
|
||||
if has ${1} ${COLLECTD_ALL_PLUGINS}; then
|
||||
if use collectd_plugins_${1}; then
|
||||
for opt in ${2}; do
|
||||
if linux_chkconfig_present ${opt}; then
|
||||
return 0;
|
||||
fi
|
||||
done
|
||||
multi_opt=${2//\ /\ or\ }
|
||||
case ${3} in
|
||||
(info)
|
||||
elog "The ${1} plugin can use kernel features that are disabled now; enable ${multi_opt} in your kernel"
|
||||
;;
|
||||
(warn)
|
||||
ewarn "The ${1} plugin uses kernel features that are disabled now; enable ${multi_opt} in your kernel"
|
||||
;;
|
||||
(error)
|
||||
eerror "The ${1} plugin needs kernel features that are disabled now; enable ${multi_opt} in your kernel"
|
||||
;;
|
||||
(*)
|
||||
die "function collectd_plugin_kernel_linux called with invalid third argument"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
collectd_linux_kernel_checks() {
|
||||
if ! linux_chkconfig_present PROC_FS; then
|
||||
ewarn "/proc file system support is disabled, many plugins will not be able to read any statistics from your system unless you enable PROC_FS in your kernel"
|
||||
fi
|
||||
|
||||
if ! linux_chkconfig_present SYSFS; then
|
||||
ewarn "/sys file system support is disabled, many plugins will not be able to read any statistics from your system unless you enable SYSFS in your kernel"
|
||||
fi
|
||||
|
||||
# battery.c: /proc/pmu/battery_%i
|
||||
# battery.c: /proc/acpi/battery
|
||||
collectd_plugin_kernel_linux battery ACPI_BATTERY warn
|
||||
|
||||
# cgroups.c: /sys/fs/cgroup/
|
||||
collectd_plugin_kernel_linux cgroups CGROUPS warn
|
||||
|
||||
# cpufreq.c: /sys/devices/system/cpu/cpu%d/cpufreq/
|
||||
collectd_plugin_kernel_linux cpufreq SYSFS warn
|
||||
collectd_plugin_kernel_linux cpufreq CPU_FREQ_STAT warn
|
||||
|
||||
# drbd.c: /proc/drbd
|
||||
collectd_plugin_kernel_linux drbd BLK_DEV_DRBD warn
|
||||
|
||||
# conntrack.c: /proc/sys/net/netfilter/*
|
||||
collectd_plugin_kernel_linux conntrack NETFILTER warn
|
||||
|
||||
# fscache.c: /proc/fs/fscache/stats
|
||||
collectd_plugin_kernel_linux fscache FSCACHE warn
|
||||
|
||||
# nfs.c: /proc/net/rpc/nfs
|
||||
# nfs.c: /proc/net/rpc/nfsd
|
||||
collectd_plugin_kernel_linux nfs NFS_COMMON warn
|
||||
|
||||
# serial.c: /proc/tty/driver/serial
|
||||
# serial.c: /proc/tty/driver/ttyS
|
||||
collectd_plugin_kernel_linux serial SERIAL_CORE warn
|
||||
|
||||
# swap.c: /proc/meminfo
|
||||
collectd_plugin_kernel_linux swap SWAP warn
|
||||
|
||||
# thermal.c: /proc/acpi/thermal_zone
|
||||
# thermal.c: /sys/class/thermal
|
||||
collectd_plugin_kernel_linux thermal ACPI_THERMAL warn
|
||||
|
||||
# turbostat.c: /dev/cpu/%d/msr
|
||||
collectd_plugin_kernel_linux turbostat X86_MSR warn
|
||||
|
||||
# vmem.c: /proc/vmstat
|
||||
collectd_plugin_kernel_linux vmem VM_EVENT_COUNTERS warn
|
||||
|
||||
# vserver.c: /proc/virtual
|
||||
collectd_plugin_kernel_linux vserver VSERVER warn
|
||||
|
||||
# uuid.c: /sys/hypervisor/uuid
|
||||
collectd_plugin_kernel_linux uuid SYSFS info
|
||||
|
||||
# wireless.c: /proc/net/wireless
|
||||
collectd_plugin_kernel_linux wireless "WIRELESS MAC80211 IEEE80211" warn
|
||||
|
||||
# zfs_arc.c: /proc/spl/kstat/zfs/arcstats
|
||||
collectd_plugin_kernel_linux zfs_arc "SPL ZFS" warn
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
if use kernel_linux; then
|
||||
linux-info_pkg_setup
|
||||
|
||||
if linux_config_exists; then
|
||||
einfo "Checking your linux kernel configuration:"
|
||||
collectd_linux_kernel_checks
|
||||
else
|
||||
elog "Cannot find a linux kernel configuration. Continuing anyway."
|
||||
fi
|
||||
fi
|
||||
|
||||
if use collectd_plugins_java; then
|
||||
java-pkg-opt-2_pkg_setup
|
||||
fi
|
||||
|
||||
use collectd_plugins_python && python-single-r1_pkg_setup
|
||||
|
||||
enewgroup collectd
|
||||
enewuser collectd -1 -1 /var/lib/collectd collectd
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# There's some strange prefix handling in the default config file, resulting in
|
||||
# paths like "/usr/var/..."
|
||||
sed -i -e "s:@prefix@/var:/var:g" src/collectd.conf.in || die
|
||||
|
||||
# fix installdirs for perl, bug 444360
|
||||
sed -i -e 's/INSTALL_BASE=$(DESTDIR)$(prefix) //' bindings/Makefile.am || die
|
||||
|
||||
# Adjust upstream's systemd unit
|
||||
# - Get rid of EnvironmentFile directive; These files don't exist on Gentoo!
|
||||
# - Add User=collectd to run collectd as user "collectd" per default
|
||||
sed -i \
|
||||
-e '/^EnvironmentFile=.*/d' \
|
||||
-e '/^\[Service\]/aUser=collectd' \
|
||||
contrib/systemd.${PN}.service || die
|
||||
|
||||
if use collectd_plugins_java; then
|
||||
# Set javac -source and -target flags according to (R)DEPEND.
|
||||
sed -i -e "s/\$(JAVAC)/\0 $(java-pkg_javac-args)/g" bindings/java/Makefile.am || die
|
||||
fi
|
||||
|
||||
ebegin "Removing bundled libltdl"
|
||||
rm -rf libltdl || die
|
||||
eend 0
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# Now come the lists of os-dependent plugins. Any plugin that is not listed anywhere here
|
||||
# should work independent of the operating system.
|
||||
|
||||
local linux_plugins="barometer battery cpu cpufreq disk
|
||||
drbd entropy ethstat hugepages interface iptables
|
||||
ipvs irq ipc load memory md netlink nfs numa processes
|
||||
serial swap tcpconns thermal turbostat users vmem wireless
|
||||
zfc_arc"
|
||||
|
||||
local need_libstatgrab=0
|
||||
local libstatgrab_plugins="cpu disk interface load memory swap users"
|
||||
local bsd_plugins="cpu tcpconns ${libstatgrab_plugins} zfc_arc"
|
||||
|
||||
local darwin_plugins="apple_sensors battery cpu disk interface memory processes tcpconns"
|
||||
|
||||
local osdependent_plugins="${linux_plugins} ${bsd_plugins} ${darwin_plugins}"
|
||||
local myos_plugins=""
|
||||
if use kernel_linux; then
|
||||
einfo "Enabling Linux plugins."
|
||||
myos_plugins=${linux_plugins}
|
||||
elif use kernel_FreeBSD; then
|
||||
einfo "Enabling FreeBSD plugins."
|
||||
myos_plugins=${bsd_plugins}
|
||||
elif use kernel_Darwin; then
|
||||
einfo "Enabling Darwin plugins."
|
||||
myos_plugins=${darwin_plugins}
|
||||
fi
|
||||
|
||||
local myconf="--disable-werror"
|
||||
|
||||
# Do we debug?
|
||||
myconf+=" $(use_enable debug)"
|
||||
|
||||
# udev support?
|
||||
# Required for smart plugin via REQUIRED_USE; Optional for disk plugin
|
||||
if use udev; then
|
||||
myconf+=" --with-libudev"
|
||||
else
|
||||
myconf+=" --without-libudev"
|
||||
fi
|
||||
|
||||
local plugin
|
||||
|
||||
# Disable what needs to be disabled.
|
||||
for plugin in ${COLLECTD_DISABLED_PLUGINS}; do
|
||||
myconf+=" --disable-${plugin}"
|
||||
done
|
||||
|
||||
# Set enable/disable for each single plugin.
|
||||
for plugin in ${COLLECTD_ALL_PLUGINS}; do
|
||||
if has ${plugin} ${osdependent_plugins}; then
|
||||
# plugin is os-dependent ...
|
||||
if has ${plugin} ${myos_plugins}; then
|
||||
# ... and available in this os
|
||||
myconf+=" $(use_enable collectd_plugins_${plugin} ${plugin})"
|
||||
# ... must we link against libstatgrab? Bug #541518
|
||||
if use kernel_FreeBSD && has ${plugin} ${libstatgrab_plugins}; then
|
||||
einfo "We must link against libstatgrab due to plugin \"${plugin}\" ..."
|
||||
need_libstatgrab=1
|
||||
fi
|
||||
else
|
||||
# ... and NOT available in this os
|
||||
if use collectd_plugins_${plugin}; then
|
||||
ewarn "You try to enable the ${plugin} plugin, but it is not available for this"
|
||||
ewarn "kernel. Disabling it automatically."
|
||||
fi
|
||||
myconf+=" --disable-${plugin}"
|
||||
fi
|
||||
elif [[ "${plugin}" = "collectd_plugins_perl" ]]; then
|
||||
if use collectd_plugins_perl && ! use perl; then
|
||||
ewarn "Perl plugin disabled as perl bindings disabled by -perl use flag"
|
||||
myconf+= --disable-perl
|
||||
else
|
||||
myconf+=" $(use_enable collectd_plugins_${plugin} ${plugin})"
|
||||
fi
|
||||
else
|
||||
myconf+=" $(use_enable collectd_plugins_${plugin} ${plugin})"
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "${need_libstatgrab}" -eq 1 ]; then
|
||||
myconf+=" --with-libstatgrab"
|
||||
else
|
||||
myconf+=" --without-libstatgrab"
|
||||
fi
|
||||
|
||||
# JAVA_HOME is set by eclasses.
|
||||
if use collectd_plugins_java; then
|
||||
myconf+=" --with-java"
|
||||
fi
|
||||
|
||||
# Need libiptc ONLY for iptables. If we try to use it otherwise bug 340109 happens.
|
||||
# lots of libs are only needed for plugins, if they are disabled, also disable the lib
|
||||
use collectd_plugins_iptables || myconf+=" --with-libiptc=no"
|
||||
use collectd_plugins_openldap || myconf+=" --with-libldap=no"
|
||||
use collectd_plugins_redis || use collectd_plugins_write_redis || myconf+=" --with-libhiredis=no"
|
||||
use collectd_plugins_smart || myconf+=" --with-libatasmart=no"
|
||||
use collectd_plugins_gps || myconf+=" --with-libgps=no"
|
||||
|
||||
if use perl; then
|
||||
myconf+=" --with-perl-bindings=INSTALLDIRS=vendor"
|
||||
else
|
||||
myconf+=" --without-perl-bindings"
|
||||
fi
|
||||
|
||||
# No need for v5upgrade
|
||||
myconf+=" --disable-target_v5upgrade"
|
||||
|
||||
# Python
|
||||
if use collectd_plugins_python; then
|
||||
myconf+=" --with-libpython=yes"
|
||||
export PYTHON_CONFIG=$(python_get_PYTHON_CONFIG)
|
||||
else
|
||||
myconf+=" --with-libpython=no"
|
||||
fi
|
||||
|
||||
# XFS support
|
||||
myconf+=" $(use_enable xfs)"
|
||||
|
||||
# Finally, run econf.
|
||||
KERNEL_DIR="${KERNEL_DIR}" econf --config-cache \
|
||||
$(use_enable static-libs static) \
|
||||
--localstatedir=/var ${myconf}
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D%/}" install
|
||||
|
||||
perl_delete_localpod
|
||||
|
||||
find "${ED}"usr/ -name "*.la" -delete || die
|
||||
|
||||
if use collectd_plugins_java; then
|
||||
java-pkg_regjar "${ED}"usr/share/${PN}/java/*.jar
|
||||
fi
|
||||
|
||||
fowners root:collectd /etc/collectd.conf
|
||||
fperms u=rw,g=r,o= /etc/collectd.conf
|
||||
|
||||
dodoc AUTHORS ChangeLog README
|
||||
|
||||
if use contrib ; then
|
||||
insinto /usr/share/doc/${PF}
|
||||
doins -r contrib
|
||||
fi
|
||||
|
||||
keepdir /var/lib/${PN}
|
||||
fowners collectd:collectd /var/lib/${PN}
|
||||
|
||||
newinitd "${FILESDIR}/${PN}.initd-r2" ${PN}
|
||||
newconfd "${FILESDIR}/${PN}.confd-r2" ${PN}
|
||||
systemd_newunit "contrib/systemd.${PN}.service" ${PN}.service
|
||||
|
||||
insinto /etc/logrotate.d
|
||||
newins "${FILESDIR}/${PN}.logrotate" ${PN}
|
||||
|
||||
newtmpfiles "${FILESDIR}"/${PN}.tmpfile ${PN}.conf
|
||||
|
||||
sed -i -e 's:^.*PIDFile "/var/run/collectd.pid":#PIDFile "/run/collectd.pid":' "${ED}"etc/collectd.conf || die
|
||||
sed -i -e 's:^# SocketFile "/var/run/collectd-unixsock":# SocketFile "/run/collectd/collectd.socket":' "${ED}"etc/collectd.conf || die
|
||||
sed -i -e 's:^.*LoadPlugin perl$:# The new, correct way to load the perl plugin -- \n# <LoadPlugin perl>\n# Globals true\n# </LoadPlugin>:' "${ED}"etc/collectd.conf || die
|
||||
sed -i -e 's:^.*LoadPlugin python$:# The new, correct way to load the python plugin -- \n# <LoadPlugin python>\n# Globals true\n# </LoadPlugin>:' "${ED}"etc/collectd.conf || die
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
tmpfiles_process "${PN}.conf"
|
||||
|
||||
if use filecaps; then
|
||||
local caps=()
|
||||
use collectd_plugins_ceph && caps+=('CAP_DAC_OVERRIDE')
|
||||
use collectd_plugins_exec && caps+=('CAP_SETUID' 'CAP_SETGID')
|
||||
use collectd_plugins_iptables && caps+=('CAP_NET_ADMIN')
|
||||
use collectd_plugins_filecount && caps+=('CAP_DAC_READ_SEARCH')
|
||||
|
||||
if use collectd_plugins_dns || use collectd_plugins_ping; then
|
||||
caps+=('CAP_NET_RAW')
|
||||
fi
|
||||
|
||||
if use collectd_plugins_turbostat || use collectd_plugins_smart; then
|
||||
caps+=('CAP_SYS_RAWIO')
|
||||
fi
|
||||
|
||||
if [ ${#caps[@]} -gt 0 ]; then
|
||||
local caps_str=$(IFS=","; echo "${caps[*]}")
|
||||
fcaps ${caps_str} usr/sbin/collectd
|
||||
elog "Capabilities for ${EROOT}usr/sbin/collectd set to:"
|
||||
elog " ${caps_str}+EP"
|
||||
elog
|
||||
|
||||
local systemd_unit="$(systemd_get_systemunitdir)/collectd.service"
|
||||
if [[ -e "${systemd_unit}" ]]; then
|
||||
caps_str="${caps[*]}"
|
||||
sed -i -e "s:^CapabilityBoundingSet=.*:CapabilityBoundingSet=${caps_str}:" "${systemd_unit}" || \
|
||||
die "Failed to set CapabilityBoundingSet in '${systemd_unit}'"
|
||||
|
||||
elog "CapabilityBoundingSet in '${systemd_unit}'"
|
||||
elog "updated to match capabilities set above."
|
||||
elog
|
||||
else
|
||||
if has_version "sys-apps/systemd"; then
|
||||
# Bug 596852
|
||||
ewarn "Failed to update CapabilityBoundingSet in '${systemd_unit}'"
|
||||
ewarn "because unit was not found. Please file a bug about this."
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
elog "Note: Collectd is only the collector."
|
||||
elog " You need to install 'data' sources (applications) locally or"
|
||||
elog " remotely on your own."
|
||||
|
||||
elog
|
||||
elog "Collectd is configured to run as unprivileged user by default."
|
||||
elog "You may want to revisit the configuration."
|
||||
elog
|
||||
|
||||
if use collectd_plugins_email; then
|
||||
ewarn "The email plug-in is deprecated. To submit statistics please use the unixsock plugin."
|
||||
fi
|
||||
|
||||
if use collectd_plugins_smart; then
|
||||
elog ""
|
||||
elog "If you are using smart plugin and don't run collectd as root make sure"
|
||||
elog "that the collectd user is allowed to access the disk you want to monitor"
|
||||
elog "(can be done via udev rule for example) and that collectd has the required"
|
||||
elog "capabilities set (which is the default when package was emerged with"
|
||||
elog "'filecaps' USE flag set)."
|
||||
fi
|
||||
|
||||
if use contrib; then
|
||||
elog "The scripts in /usr/share/doc/${PF}/collection3 for generating graphs need dev-perl/HTML-Parser,"
|
||||
elog "dev-perl/config-general, dev-perl/regexp-common, and net-analyzer/rrdtool[perl] to be installed."
|
||||
fi
|
||||
}
|
||||
@@ -1,153 +0,0 @@
|
||||
From 8fe20883e248572690798e4dd1423511aa2f4e5d Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Deutschmann <whissi@gentoo.org>
|
||||
Date: Thu, 22 Sep 2016 00:53:58 +0200
|
||||
Subject: [PATCH 1/3] Remove bundled libltdl
|
||||
|
||||
---
|
||||
Makefile.am | 6 ------
|
||||
configure.ac | 8 ++++----
|
||||
2 files changed, 4 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 03bdd39..ad04a3c 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -1,11 +1,5 @@
|
||||
-ACLOCAL_AMFLAGS = -I libltdl/m4
|
||||
-
|
||||
SUBDIRS =
|
||||
|
||||
-if BUILD_INCLUDED_LTDL
|
||||
-SUBDIRS += libltdl
|
||||
-endif
|
||||
-
|
||||
SUBDIRS += proto src bindings .
|
||||
|
||||
AM_CPPFLAGS = $(LTDLINCL)
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 9a6da11..68e15e0 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -3,7 +3,6 @@ AC_PREREQ([2.60])
|
||||
AC_INIT([collectd],[m4_esyscmd(./version-gen.sh)])
|
||||
AC_CONFIG_SRCDIR(src/target_set.c)
|
||||
AC_CONFIG_HEADERS(src/config.h)
|
||||
-AC_CONFIG_AUX_DIR([libltdl/config])
|
||||
|
||||
dnl older automake's default of ARFLAGS=cru is noisy on newer binutils;
|
||||
dnl we don't really need the 'u' even in older toolchains. Then there is
|
||||
@@ -13,7 +12,6 @@ m4_divert_text([DEFAULTS], [: "${ARFLAGS=cr} ${AR_FLAGS=cr}"])
|
||||
m4_ifdef([LT_PACKAGE_VERSION],
|
||||
# libtool >= 2.2
|
||||
[
|
||||
- LT_CONFIG_LTDL_DIR([libltdl])
|
||||
LT_INIT([dlopen])
|
||||
LTDL_INIT([convenience])
|
||||
AC_DEFINE(LIBTOOL_VERSION, 2, [Define to used libtool version.])
|
||||
@@ -25,12 +23,14 @@ m4_ifdef([LT_PACKAGE_VERSION],
|
||||
AC_SUBST(LTDLINCL)
|
||||
AC_SUBST(LIBLTDL)
|
||||
AC_LIBTOOL_DLOPEN
|
||||
- AC_CONFIG_SUBDIRS(libltdl)
|
||||
AC_DEFINE(LIBTOOL_VERSION, 1, [Define to used libtool version.])
|
||||
]
|
||||
)
|
||||
|
||||
-AM_CONDITIONAL([BUILD_INCLUDED_LTDL], [test "x$LTDLDEPS" != "x"])
|
||||
+if test "x$LTDLDEPS" != "x"
|
||||
+then
|
||||
+ AC_MSG_ERROR(["system's libltdl is too old! Should never happen. Please file a bug at https://bugs.gentoo.org"])
|
||||
+fi
|
||||
|
||||
AM_INIT_AUTOMAKE([subdir-objects tar-pax dist-bzip2 no-dist-gzip foreign])
|
||||
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
||||
--
|
||||
2.10.0
|
||||
|
||||
|
||||
From 0b00f519ce183b8ceaab5cf8e56f574ecd2cb7c4 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Deutschmann <whissi@gentoo.org>
|
||||
Date: Thu, 22 Sep 2016 00:54:08 +0200
|
||||
Subject: [PATCH 2/3] Remove libhal dependency
|
||||
|
||||
X-Gentoo-Bug: 353839
|
||||
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=353839
|
||||
---
|
||||
configure.ac | 24 ------------------------
|
||||
1 file changed, 24 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 68e15e0..1700c44 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -1663,30 +1663,6 @@ AM_CONDITIONAL(BUILD_WITH_LIBRESOLV, test "x$with_libresolv" = "xyes")
|
||||
|
||||
dnl Check for HAL (hardware abstraction library)
|
||||
with_libhal="no"
|
||||
-PKG_CHECK_MODULES([HAL], [hal],
|
||||
- [
|
||||
- SAVE_LIBS="$LIBS"
|
||||
- LIBS="$HAL_LIBS $LIBS"
|
||||
- AC_CHECK_LIB([hal], [libhal_device_property_exists],
|
||||
- [
|
||||
- SAVE_CPPFLAGS="$CPPFLAGS"
|
||||
- CPPFLAGS="$HAL_CFLAGS $CPPFLAGS"
|
||||
- AC_CHECK_HEADERS([libhal.h],
|
||||
- [
|
||||
- with_libhal="yes"
|
||||
- BUILD_WITH_LIBHAL_CFLAGS="$HAL_CFLAGS"
|
||||
- BUILD_WITH_LIBHAL_LIBS="$HAL_LIBS"
|
||||
- ])
|
||||
- CPPFLAGS="$SAVE_CPPFLAGS"
|
||||
- ],
|
||||
- [ : ]
|
||||
- )
|
||||
- LIBS="$SAVE_LIBS"
|
||||
- ],
|
||||
- [ : ]
|
||||
-)
|
||||
-AC_SUBST(BUILD_WITH_LIBHAL_CFLAGS)
|
||||
-AC_SUBST(BUILD_WITH_LIBHAL_LIBS)
|
||||
|
||||
|
||||
SAVE_LIBS="$LIBS"
|
||||
--
|
||||
2.10.0
|
||||
|
||||
|
||||
From 380c61888bed5856319fa32816d8f2f4c88ee7bc Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Deutschmann <whissi@gentoo.org>
|
||||
Date: Thu, 22 Sep 2016 00:54:19 +0200
|
||||
Subject: [PATCH 3/3] Link Oracle plug-in against libocci
|
||||
|
||||
Author: Aurelien Minet
|
||||
X-Gentoo-Bug: 347607
|
||||
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=347607
|
||||
---
|
||||
configure.ac | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 1700c44..83909a0 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -3587,14 +3587,14 @@ AC_ARG_WITH(oracle, [AS_HELP_STRING([--with-oracle@<:@=ORACLE_HOME@:>@], [Path t
|
||||
])
|
||||
if test "x$ORACLE_HOME" != "x"
|
||||
then
|
||||
- with_oracle_cppflags="-I$ORACLE_HOME/rdbms/public"
|
||||
+ with_oracle_cppflags="-I$ORACLE_HOME/rdbms/public -locci"
|
||||
|
||||
if test -e "$ORACLE_HOME/lib/ldflags"
|
||||
then
|
||||
with_oracle_libs=`cat "$ORACLE_HOME/lib/ldflags"`
|
||||
fi
|
||||
#with_oracle_libs="-L$ORACLE_HOME/lib $with_oracle_libs -lclntsh"
|
||||
- with_oracle_libs="-L$ORACLE_HOME/lib -lclntsh"
|
||||
+ with_oracle_libs="-L$ORACLE_HOME/lib -lclntsh -locci"
|
||||
fi
|
||||
if test "x$with_oracle" = "xyes"
|
||||
then
|
||||
--
|
||||
2.10.0
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
CVE-2017-16820: Fix double free of request PDU
|
||||
|
||||
https://github.com/collectd/collectd/commit/d16c24542b2f96a194d43a73c2e5778822b9cb47
|
||||
|
||||
--- a/src/snmp.c
|
||||
+++ b/src/snmp.c
|
||||
@@ -1357,11 +1357,13 @@ static int csnmp_read_table(host_definition_t *host, data_definition_t *data) {
|
||||
if (oid_list_todo_num == 0) {
|
||||
/* The request is still empty - so we are finished */
|
||||
DEBUG("snmp plugin: all variables have left their subtree");
|
||||
+ snmp_free_pdu(req);
|
||||
status = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
res = NULL;
|
||||
+ /* snmp_sess_synch_response always frees our req PDU */
|
||||
status = snmp_sess_synch_response(host->sess_handle, req, &res);
|
||||
if ((status != STAT_SUCCESS) || (res == NULL)) {
|
||||
char *errstr = NULL;
|
||||
@@ -1376,8 +1378,6 @@ static int csnmp_read_table(host_definition_t *host, data_definition_t *data) {
|
||||
snmp_free_pdu(res);
|
||||
res = NULL;
|
||||
|
||||
- /* snmp_synch_response already freed our PDU */
|
||||
- req = NULL;
|
||||
sfree(errstr);
|
||||
csnmp_host_close_session(host);
|
||||
|
||||
@@ -1492,9 +1492,6 @@ static int csnmp_read_table(host_definition_t *host, data_definition_t *data) {
|
||||
snmp_free_pdu(res);
|
||||
res = NULL;
|
||||
|
||||
- if (req != NULL)
|
||||
- snmp_free_pdu(req);
|
||||
- req = NULL;
|
||||
|
||||
if (status == 0)
|
||||
csnmp_dispatch_table(host, data, instance_list_head, value_list_head);
|
||||
@@ -1,160 +0,0 @@
|
||||
turbostat: import msr-index header from linux to allow building against
|
||||
>=linux-4.12
|
||||
|
||||
Backport of https://github.com/collectd/collectd/pull/2446
|
||||
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -805,28 +805,6 @@ AC_CACHE_CHECK([whether clock_boottime and clock_monotonic are supported],
|
||||
|
||||
|
||||
# For the turbostat plugin
|
||||
-have_asm_msrindex_h="no"
|
||||
-AC_CHECK_HEADERS(asm/msr-index.h, [have_asm_msrindex_h="yes"])
|
||||
-
|
||||
-if test "x$have_asm_msrindex_h" = "xyes"
|
||||
-then
|
||||
- AC_CACHE_CHECK([whether asm/msr-index.h has MSR_PKG_C10_RESIDENCY],
|
||||
- [c_cv_have_usable_asm_msrindex_h],
|
||||
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
|
||||
-[[[
|
||||
-#include<asm/msr-index.h>
|
||||
-]]],
|
||||
-[[[
|
||||
-int y = MSR_PKG_C10_RESIDENCY;
|
||||
-return(y);
|
||||
-]]]
|
||||
- )],
|
||||
- [c_cv_have_usable_asm_msrindex_h="yes"],
|
||||
- [c_cv_have_usable_asm_msrindex_h="no"],
|
||||
- )
|
||||
- )
|
||||
-fi
|
||||
-
|
||||
have_cpuid_h="no"
|
||||
AC_CHECK_HEADERS(cpuid.h, [have_cpuid_h="yes"])
|
||||
|
||||
@@ -6108,7 +6086,7 @@ then
|
||||
then
|
||||
plugin_ipvs="yes"
|
||||
fi
|
||||
- if test "x$c_cv_have_usable_asm_msrindex_h" = "xyes" && test "x$have_cpuid_h" = "xyes"
|
||||
+ if test "x$have_cpuid_h" = "xyes"
|
||||
then
|
||||
plugin_turbostat="yes"
|
||||
fi
|
||||
--- a/src/Makefile.am
|
||||
+++ b/src/Makefile.am
|
||||
@@ -1212,7 +1212,9 @@ endif
|
||||
|
||||
if BUILD_PLUGIN_TURBOSTAT
|
||||
pkglib_LTLIBRARIES += turbostat.la
|
||||
-turbostat_la_SOURCES = turbostat.c
|
||||
+turbostat_la_SOURCES = \
|
||||
+ turbostat.c \
|
||||
+ msr-index.h
|
||||
turbostat_la_LDFLAGS = $(PLUGIN_LDFLAGS)
|
||||
endif
|
||||
|
||||
--- /dev/null
|
||||
+++ b/src/msr-index.h
|
||||
@@ -0,0 +1,88 @@
|
||||
+/*
|
||||
+ * Partial header file imported from the linux kernel
|
||||
+ * (arch/x86/include/asm/msr-index.h)
|
||||
+ * as it is not provided by the kernel sources anymore
|
||||
+ *
|
||||
+ * Only the minimal blocks of macro have been included
|
||||
+ * ----
|
||||
+ * This program is free software; you can redistribute it and/or modify it
|
||||
+ * under the terms and conditions of the GNU General Public License,
|
||||
+ * version 2, as published by the Free Software Foundation.
|
||||
+ *
|
||||
+ * This program is distributed in the hope it will be useful, but WITHOUT
|
||||
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
+ * more details.
|
||||
+ *
|
||||
+ * You should have received a copy of the GNU General Public License along with
|
||||
+ * this program; if not, write to the Free Software Foundation, Inc.,
|
||||
+ * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
+ * ----
|
||||
+ */
|
||||
+
|
||||
+#ifndef _ASM_X86_MSR_INDEX_H
|
||||
+#define _ASM_X86_MSR_INDEX_H
|
||||
+
|
||||
+/*
|
||||
+ * CPU model specific register (MSR) numbers.
|
||||
+ *
|
||||
+ * Do not add new entries to this file unless the definitions are shared
|
||||
+ * between multiple compilation units.
|
||||
+ */
|
||||
+
|
||||
+/* Intel MSRs. Some also available on other CPUs */
|
||||
+
|
||||
+/* C-state Residency Counters */
|
||||
+#define MSR_PKG_C3_RESIDENCY 0x000003f8
|
||||
+#define MSR_PKG_C6_RESIDENCY 0x000003f9
|
||||
+#define MSR_ATOM_PKG_C6_RESIDENCY 0x000003fa
|
||||
+#define MSR_PKG_C7_RESIDENCY 0x000003fa
|
||||
+#define MSR_CORE_C3_RESIDENCY 0x000003fc
|
||||
+#define MSR_CORE_C6_RESIDENCY 0x000003fd
|
||||
+#define MSR_CORE_C7_RESIDENCY 0x000003fe
|
||||
+#define MSR_KNL_CORE_C6_RESIDENCY 0x000003ff
|
||||
+#define MSR_PKG_C2_RESIDENCY 0x0000060d
|
||||
+#define MSR_PKG_C8_RESIDENCY 0x00000630
|
||||
+#define MSR_PKG_C9_RESIDENCY 0x00000631
|
||||
+#define MSR_PKG_C10_RESIDENCY 0x00000632
|
||||
+
|
||||
+/* Run Time Average Power Limiting (RAPL) Interface */
|
||||
+
|
||||
+#define MSR_RAPL_POWER_UNIT 0x00000606
|
||||
+
|
||||
+#define MSR_PKG_POWER_LIMIT 0x00000610
|
||||
+#define MSR_PKG_ENERGY_STATUS 0x00000611
|
||||
+#define MSR_PKG_PERF_STATUS 0x00000613
|
||||
+#define MSR_PKG_POWER_INFO 0x00000614
|
||||
+
|
||||
+#define MSR_DRAM_POWER_LIMIT 0x00000618
|
||||
+#define MSR_DRAM_ENERGY_STATUS 0x00000619
|
||||
+#define MSR_DRAM_PERF_STATUS 0x0000061b
|
||||
+#define MSR_DRAM_POWER_INFO 0x0000061c
|
||||
+
|
||||
+#define MSR_PP0_POWER_LIMIT 0x00000638
|
||||
+#define MSR_PP0_ENERGY_STATUS 0x00000639
|
||||
+#define MSR_PP0_POLICY 0x0000063a
|
||||
+#define MSR_PP0_PERF_STATUS 0x0000063b
|
||||
+
|
||||
+#define MSR_PP1_POWER_LIMIT 0x00000640
|
||||
+#define MSR_PP1_ENERGY_STATUS 0x00000641
|
||||
+#define MSR_PP1_POLICY 0x00000642
|
||||
+
|
||||
+
|
||||
+
|
||||
+/* Intel defined MSRs. */
|
||||
+#define MSR_IA32_TSC 0x00000010
|
||||
+#define MSR_SMI_COUNT 0x00000034
|
||||
+
|
||||
+#define MSR_IA32_MPERF 0x000000e7
|
||||
+#define MSR_IA32_APERF 0x000000e8
|
||||
+
|
||||
+#define MSR_IA32_THERM_STATUS 0x0000019c
|
||||
+
|
||||
+#define MSR_IA32_TEMPERATURE_TARGET 0x000001a2
|
||||
+
|
||||
+#define MSR_IA32_PACKAGE_THERM_STATUS 0x000001b1
|
||||
+
|
||||
+
|
||||
+#endif /* _ASM_X86_MSR_INDEX_H */
|
||||
--- a/src/turbostat.c
|
||||
+++ b/src/turbostat.c
|
||||
@@ -41,7 +41,7 @@
|
||||
#include "plugin.h"
|
||||
#include "utils_time.h"
|
||||
|
||||
-#include <asm/msr-index.h>
|
||||
+#include "msr-index.h"
|
||||
#include <cpuid.h>
|
||||
#ifdef HAVE_SYS_CAPABILITY_H
|
||||
#include <sys/capability.h>
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user