blob: 90d472ac05e751a8707754ed2ca9e8d584c9c327 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
|
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit linux-info systemd toolchain-funcs multilib-minimal
DESCRIPTION="Hardware Monitoring user-space utilities"
HOMEPAGE="https://hwmon.wiki.kernel.org/ https://github.com/lm-sensors/lm-sensors"
if [[ "${PV}" =~ .*_p[[:digit:]]{8}.* ]] ; then
COMMIT="2c8cca3d6cd60121b401734c1a24cfec7daed4fc"
SRC_URI="https://github.com/lm-sensors/${PN}/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}/${PN}-${COMMIT}"
else
SRC_URI="https://github.com/lm-sensors/lm-sensors/archive/V$(ver_rs 1- -).tar.gz -> ${P}.tar.gz"
S="${WORKDIR}/${PN}-$(ver_rs 1- -)"
fi
LICENSE="GPL-2+ LGPL-2.1"
# SUBSLOT based on SONAME of libsensors.so
SLOT="0/5.0.0"
KEYWORDS="~alpha amd64 arm arm64 ~ia64 ~loong ~mips ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux"
IUSE="contrib selinux sensord static-libs"
COMMON_DEPS="
sensord? (
net-analyzer/rrdtool
virtual/logger
)"
RDEPEND="${COMMON_DEPS}
dev-lang/perl
!<sys-apps/openrc-0.36
selinux? ( sec-policy/selinux-sensord )"
DEPEND="${COMMON_DEPS}
app-alternatives/yacc
app-alternatives/lex"
CONFIG_CHECK="~HWMON ~I2C_CHARDEV ~I2C"
WARNING_HWMON="${PN} requires CONFIG_HWMON to be enabled for use."
WARNING_I2C_CHARDEV="sensors-detect requires CONFIG_I2C_CHARDEV to be enabled."
WARNING_I2C="${PN} requires CONFIG_I2C to be enabled for most sensors."
PATCHES=(
"${FILESDIR}"/${PN}-3.5.0-sensors-detect-gentoo.patch
"${FILESDIR}"/${PN}-3.6.0-no-which.patch
"${FILESDIR}"/${PN}-3.6.0-w83627ehf-nct6775.patch
)
DOCS=( CHANGES CONTRIBUTORS INSTALL README )
DOCS+=( doc/{donations,fancontrol.txt,fan-divisors,libsensors-API.txt,progs,temperature-sensors,vid} )
src_prepare() {
default
if [[ -n "${COMMIT}" ]]; then
local _version="${PV%_*}+git_${COMMIT}"
sed -i \
-e "s:LM_VERSION.*:LM_VERSION \"${_version}\":" \
version.h || \
die "Failed to update version.h"
sed -i \
-e "s/^\$revision = '.*/\$revision = '${_version}';/" \
-e "/^\$revision =~ s.*/d" \
prog/detect/sensors-detect || \
die "Failed to set revision in prog/detect/sensors-detect"
sed -i \
-e "s/^echo \"# pwmconfig revision.*/echo \"# pwmconfig revision ${_version}\"/" \
-e "/^REVISION=.*/d" \
-e "/^REVDATE=.*/d" \
-e "s:^PIDFILE=\".*:PIDFILE=\"/run/fancontrol.pid\":" \
prog/pwm/pwmconfig || \
die "Failed to adjust prog/pwm/pwmconfig"
else
sed -i \
-e "s:^PIDFILE=\".*:PIDFILE=\"/run/fancontrol.pid\":" \
prog/pwm/pwmconfig || \
die "Failed to adjust PIDFILE in prog/pwm/pwmconfig"
fi
# Respect LDFLAGS
sed -i -e 's/\$(LIBDIR)$/\$(LIBDIR) \$(LDFLAGS)/g' Makefile || \
die "Failed to sed in LDFLAGS"
sed -i \
-e "s:^PIDFILE=\".*:PIDFILE=\"/run/fancontrol.pid\":" \
prog/pwm/fancontrol || \
die "Failed to adjust PIDFILE of prog/pwm/fancontrol"
# Don't use EnvironmentFile in systemd unit
sed -i \
-e '/^EnvironmentFile=/d' \
-e '/^Exec.*modprobe.*/d' \
prog/init/lm_sensors.service || \
die "Failed to remove EnvironmentFile from systemd unit file"
if ! use static-libs; then
sed -i -e '/^BUILD_STATIC_LIB/d' Makefile || \
die "Failed to disable static building"
fi
# Don't show outdated user instructions
sed -i -e '/^ @echo "\*\*\* /d' Makefile || \
die "Failed to remove outdated user instructions"
multilib_copy_sources
}
multilib_src_configure() {
default
if multilib_is_native_abi && use sensord; then
# sensord requires net-analyzer/rrdtool which doesn't have real multilib
# support. To prevent errors like
#
# skipping incompatible /usr/lib/librrd.so when searching for -lrrd
# cannot find -lrrd
#
# we only build sensord when we are building for profile's native ABI
# (it doesn't affect libsensors.so).
sed -i -e 's:^#\(PROG_EXTRA.*\):\1:' Makefile || \
die "Failed to enable building of sensord"
fi
}
multilib_src_compile() {
emake \
CC="$(tc-getCC)" \
CXX="$(tc-getCXX)" \
LD="$(tc-getLD)" \
AR="$(tc-getAR)"
}
multilib_src_install() {
# We need to set CC and friends again here to avoid recompilation for cross
# bug #799851
emake \
CC="$(tc-getCC)" \
CXX="$(tc-getCXX)" \
LD="$(tc-getLD)" \
AR="$(tc-getAR)" \
DESTDIR="${ED}" \
PREFIX="/usr" \
MANDIR="/usr/share/man" \
ETCDIR="/etc" \
LIBDIR="/usr/$(get_libdir)" \
install
}
multilib_src_install_all() {
newinitd "${FILESDIR}"/lm_sensors.initd lm_sensors
newconfd "${FILESDIR}"/lm_sensors.confd lm_sensors
systemd_dounit prog/init/lm_sensors.service
newinitd "${FILESDIR}"/fancontrol.initd fancontrol
newconfd "${FILESDIR}"/fancontrol.confd fancontrol
systemd_newunit "${FILESDIR}"/fancontrol.service-r1 fancontrol.service
if use sensord; then
newconfd "${FILESDIR}"/sensord.confd sensord
newinitd "${FILESDIR}"/sensord.initd sensord
systemd_newunit "${FILESDIR}"/sensord.service-r1 sensord.service
fi
einstalldocs
docinto developers
dodoc doc/developers/applications
if use contrib; then
insinto /usr/share/lm_sensors
doins -r "${S}"/configs
fi
}
pkg_postinst() {
local _new_loader='3.4.0_p20160725'
local _v
for _v in ${REPLACING_VERSIONS}; do
if ! ver_test "${_v}" -gt "${_new_loader}"; then
# This is an upgrade which require migration
elog ""
elog "Since version 3.4.0_p20160725 ${PN} no longer loads modules on its own"
elog "instead it is using \"modules-load\" services provided by OpenRC or systemd."
elog ""
elog "To migrate your configuration you have 2 options:"
elog ""
elog " a) Re-create a new configuration using \"/usr/sbin/sensors-detect\""
elog ""
elog " b) Copy existing \"modules_<n>\", \"HWMON_MODULES\" or \"BUS_MODULES\""
elog " variables from \"/etc/conf.d/lm_modules\" to"
elog " \"/etc/modules-load.d/lm_sensors.conf\" and adjust format."
elog ""
elog " For details see https://wiki.gentoo.org/wiki/Systemd#Automatic_module_loading"
elog ""
elog " Important: Don't forget to migrate your module's argument"
elog " (modules_<name>_args variable) if your are not already"
elog " using \"/etc/modprobe.d\" (which is recommended)."
# Show this elog only once
break
fi
done
if [[ -z "${REPLACING_VERSIONS}" ]]; then
# New installation
elog ""
elog "Please run \`/usr/sbin/sensors-detect' in order to setup"
elog "\"/etc/modules-load.d/lm_sensors.conf\"."
elog ""
elog "You might want to add lm_sensors to your default runlevel to make"
elog "sure the sensors get initialized on the next startup."
elog ""
elog "Be warned, the probing of hardware in your system performed by"
elog "sensors-detect could freeze your system."
fi
}
|