summaryrefslogtreecommitdiff
blob: c51937629418573123b5134c06642f4660cf5226 (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
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit autotools flag-o-matic systemd

DESCRIPTION="IPMI Management Utilities"
HOMEPAGE="https://ipmiutil.sourceforge.net/"
SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.gz"

LICENSE="BSD"
SLOT="0"
KEYWORDS="amd64 ~hppa ~ppc x86"
IUSE="static-libs"

RDEPEND=">=dev-libs/openssl-1:="
DEPEND="
	${RDEPEND}
	virtual/os-headers
"

PATCHES=(
	"${FILESDIR}"/${PN}-2.9.9-lib_symlink.patch
	"${FILESDIR}"/${PN}-3.1.8-fix-configure.patch
)

src_prepare() {
	default

	# Fix hardcoded CFLAGS
	sed -i \
		-e 's|-O2 -g|$(CFLAGS)|g' \
		-e 's|-g -O2|$(CFLAGS)|g' \
		util/Makefile.am* || die

	# The configure script makes some guarded and some blind calls to rpm &
	# rpmbuild, that trigger sandbox warnings if rpm is installed in Gentoo.
	sed -r -i -e 's/which rpm/false &/' configure.ac || die
	sed -r -i -e 's/`(rpm|rpmbuild)/`false \1/' configure.ac || die
	# Don't try to inject -O2 or hardening flags (which we set in the toolchain).
	sed -i -e '/CFLAGS="-O2"/d' -e '/cfhard=/d' configure.ac || die

	# Don't compress man pages
	sed '/gzip -nf/d' -i doc/Makefile.am || die

	eautoreconf
}

src_configure() {
	# -Werror=lto-type-mismatch
	# https://bugs.gentoo.org/863590
	# https://github.com/arcress0/ipmiutil/issues/21
	filter-lto

	local myeconfargs=(
		--disable-systemd
		--enable-sha256
		--enable-lanplus
	)
	econf "${myeconfargs[@]}"
}

src_compile() {
	# Ugly workaround. Upstream is misusing the make system here
	# and it doesn't even work.
	# Please check on each bump if this workaround is still required.
	# Yup, still needed in 3.18
	pushd lib/lanplus &>/dev/null || die
	emake
	cp libipmi_lanplus.a .. || die
	popd &>/dev/null || die

	emake
}

src_install() {
	emake DESTDIR="${D}" sysdto="${D}/$(systemd_get_systemunitdir)" install
	dodoc -r AUTHORS ChangeLog NEWS README TODO doc/UserGuide

	# Init scripts are only for Fedora
	# TODO: ship OpenRC systems for non-systemd?
	rm -r "${ED}"/etc/init.d || die 'remove initscripts failed'

	# --disable-static has no effect
	if ! use static-libs ; then
		find "${ED}" -type f -name '*.a' -delete || die
	fi

	keepdir /var/lib/ipmiutil
}