sys-power/acpid: phase out legacy LFS interfaces

acpid comes with its own implementation of isfdtype() for standard
libraries which do not define it, like musl. This implementation used
LFS interfaces, which are now deprecated and which since musl-1.2.4
no longer are a part of the _GNU_SOURCE feature set. musl documentation
says "just switch to standard interfaces" so let's do just that.

Closes: https://bugs.gentoo.org/906189
Signed-off-by: Marek Szuba <marecki@gentoo.org>
This commit is contained in:
Marek Szuba
2023-08-21 17:24:32 +01:00
parent 4cb9998d48
commit ee41125693
2 changed files with 79 additions and 0 deletions

View File

@@ -0,0 +1,60 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit linux-info systemd
DESCRIPTION="Daemon for Advanced Configuration and Power Interface"
HOMEPAGE="https://sourceforge.net/projects/acpid2/"
SRC_URI="mirror://sourceforge/${PN}2/${P}.tar.xz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~loong ~riscv ~x86"
IUSE="selinux"
RDEPEND="selinux? ( sec-policy/selinux-apm )"
DEPEND=">=sys-kernel/linux-headers-3"
PATCHES=(
"${FILESDIR}"/${PN}-2.0.34-lfs.patch
)
pkg_pretend() {
local CONFIG_CHECK="~INPUT_EVDEV"
local WARNING_INPUT_EVDEV="CONFIG_INPUT_EVDEV is required for ACPI button event support."
[[ ${MERGE_TYPE} != buildonly ]] && check_extra_config
}
pkg_setup() { :; }
src_install() {
emake DESTDIR="${D}" install
newdoc kacpimon/README README.kacpimon
dodoc -r samples
rm -f "${D}"/usr/share/doc/${PF}/COPYING || die
exeinto /etc/acpi
newexe "${FILESDIR}"/${PN}-1.0.6-default.sh default.sh
exeinto /etc/acpi/actions
newexe samples/powerbtn/powerbtn.sh powerbtn.sh
insinto /etc/acpi/events
newins "${FILESDIR}"/${PN}-1.0.4-default default
newinitd "${FILESDIR}"/${PN}-2.0.26-init.d ${PN}
newconfd "${FILESDIR}"/${PN}-2.0.16-conf.d ${PN}
systemd_dounit "${FILESDIR}"/${PN}.{service,socket}
}
pkg_postinst() {
if [[ -z ${REPLACING_VERSIONS} ]]; then
elog
elog "You may wish to read the Gentoo Linux Power Management Guide,"
elog "which can be found online at:"
elog "https://wiki.gentoo.org/wiki/Power_management/Guide"
elog
fi
}

View File

@@ -0,0 +1,19 @@
Since version 1.2.4 musl no longer enables legacy LFS interfaces as part
of _GNU_SOURCE, and will remove them altogether in a future release [1].
Just switch to the standard interfaces.
[1] https://musl.libc.org/releases.html
--- a/sock.c
+++ b/sock.c
@@ -54,8 +54,8 @@
static int
isfdtype(int fd, int fdtype)
{
- struct stat64 st;
- if (fstat64(fd, &st) != 0)
+ struct stat st;
+ if (fstat(fd, &st) != 0)
return -1;
return ((st.st_mode & S_IFMT) == (mode_t)fdtype);
}