summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-libs/openipmi')
-rw-r--r--sys-libs/openipmi/Manifest2
-rw-r--r--sys-libs/openipmi/files/openipmi-2.0.33-c99.patch56
-rw-r--r--sys-libs/openipmi/metadata.xml2
-rw-r--r--sys-libs/openipmi/openipmi-2.0.33-r1.ebuild (renamed from sys-libs/openipmi/openipmi-2.0.29.ebuild)50
-rw-r--r--sys-libs/openipmi/openipmi-2.0.33.ebuild97
5 files changed, 179 insertions, 28 deletions
diff --git a/sys-libs/openipmi/Manifest b/sys-libs/openipmi/Manifest
index 4628288dee82..ae49ecaf283a 100644
--- a/sys-libs/openipmi/Manifest
+++ b/sys-libs/openipmi/Manifest
@@ -1 +1 @@
-DIST OpenIPMI-2.0.29.tar.gz 3119530 BLAKE2B 5c60b04e828699c396cb7ce29dca7665109d7b39c3d64535fafdca328c01eab0af9cc4d7fd1a30aa254836f6ce10a16e491fb7239777dc4d57edc65c20998504 SHA512 ff23aadfe4b9002574d1f06dda3d61f7a03ef1df2c61855516b7d67bd6d3272c53af74e3412e1045242dcb845f50b7c542083e918805c0efac424dd86e720a10
+DIST OpenIPMI-2.0.33.tar.gz 3141439 BLAKE2B 02634ac8e17abf6a95f37e1b6825fe1f493e1990d7a5b0f6e87f7d9527f2a778f9faf0b12566529a3c87ecce893346e5125c51da988b95fbb56145282194ed16 SHA512 615fccd1ffd4af18584c1b0e54667ba2de60b6d42b44e7448f27808114180fa3b31b4834276bdf69c3df1e5210df871fd888deec8186377524838390fe41e641
diff --git a/sys-libs/openipmi/files/openipmi-2.0.33-c99.patch b/sys-libs/openipmi/files/openipmi-2.0.33-c99.patch
new file mode 100644
index 000000000000..b7786c3ceab1
--- /dev/null
+++ b/sys-libs/openipmi/files/openipmi-2.0.33-c99.patch
@@ -0,0 +1,56 @@
+https://sourceforge.net/p/openipmi/patches/38/
+
+C type errors in the SWIG-generated Perl bindings
+
+The first change fixes an error with newer compilers:
+
+OpenIPMI_wrap.c: In function ‘_wrap_strconstarray_val_set’:
+OpenIPMI_wrap.c:10491:27: error: assignment to ‘const char **’ from incompatible pointer type ‘char **’
+10491 | if (arg1) (arg1)->val = arg2;
+ | ^
+
+The second change is also about a compiler error:
+
+In file included from /usr/lib64/perl5/CORE/perl.h:4530,
+ from OpenIPMI_wrap.c:751:
+OpenIPMI_wrap.c: In function ‘_wrap_ipmi_sol_conn_t_write’:
+/usr/lib64/perl5/CORE/sv.h:1952:31: error: passing argument 3 of ‘Perl_SvPV_helper’ from incompatible pointer type
+ 1952 | Perl_SvPV_helper(aTHX_ sv, &len, flags, SvPVnormal_type_, \
+/usr/lib64/perl5/CORE/sv.h:1972:37: note: in expansion of macro ‘SvPV_flags’
+ 1972 | #define SvPV(sv, len) SvPV_flags(sv, len, SV_GMAGIC)
+ | ^~~~~~~~~~
+OpenIPMI_wrap.c:27664:24: note: in expansion of macro ‘SvPV’
+27664 | (&arg2)->val = SvPV(tempsv, (&arg2)->len);
+ | ^~~~
+In file included from /usr/lib64/perl5/CORE/perl.h:7812:
+/usr/lib64/perl5/CORE/sv_inline.h:908:33: note: expected ‘STRLEN * const’ {aka ‘long unsigned int * const’} but argument is of type ‘int *’
+ 908 | STRLEN * const lp,
+ | ~~~~~~~~~~~~~~~^~
+
+But the existing code looks broken on big-endian 64-bit architectures,
+too.
+
+--- a/swig/OpenIPMI.i
++++ b/swig/OpenIPMI.i
+@@ -359,7 +359,7 @@ typedef struct iargarray
+ %}
+ typedef struct strconstarray
+ {
+- char **val;
++ const char **val;
+ int len;
+ } strconstarray;
+ typedef struct argarray
+--- a/swig/perl/OpenIPMI_lang.i
++++ b/swig/perl/OpenIPMI_lang.i
+@@ -292,7 +292,9 @@
+ $1.val = NULL;
+ $1.len = 0;
+ } else {
+- $1.val = SvPV(tempsv, $1.len);
++ STRLEN len;
++ $1.val = SvPV(tempsv, len);
++ $1.len = len;
+ }
+ }
+
diff --git a/sys-libs/openipmi/metadata.xml b/sys-libs/openipmi/metadata.xml
index beb9542e8460..4d0f157f33c9 100644
--- a/sys-libs/openipmi/metadata.xml
+++ b/sys-libs/openipmi/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>sysadmin@gentoo.org</email>
diff --git a/sys-libs/openipmi/openipmi-2.0.29.ebuild b/sys-libs/openipmi/openipmi-2.0.33-r1.ebuild
index aa52f4eaaaa8..6e166c3062b9 100644
--- a/sys-libs/openipmi/openipmi-2.0.29.ebuild
+++ b/sys-libs/openipmi/openipmi-2.0.33-r1.ebuild
@@ -1,46 +1,49 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-PYTHON_COMPAT=( python3_{7..9} )
+PYTHON_COMPAT=( python3_{10..12} )
inherit autotools python-single-r1
-DESCRIPTION="Library interface to IPMI"
-HOMEPAGE="https://sourceforge.net/projects/openipmi/"
MY_PN="OpenIPMI"
MY_P="${MY_PN}-${PV/_/-}"
-SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.gz"
+DESCRIPTION="Library interface to IPMI"
+HOMEPAGE="https://sourceforge.net/projects/openipmi/"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${MY_P}.tar.gz"
+S="${WORKDIR}/${MY_P}"
LICENSE="LGPL-2.1 GPL-2"
SLOT="0"
-KEYWORDS="amd64 ~arm64 ~hppa ~ia64 ppc ppc64 x86"
+KEYWORDS="amd64 ~arm arm64 ~hppa ~ia64 ~loong ppc ppc64 ~riscv x86"
IUSE="crypt snmp perl python static-libs tcl"
-S="${WORKDIR}/${MY_P}"
-RESTRICT='test'
RDEPEND="
dev-libs/glib:2
+ dev-libs/popt
sys-libs/gdbm:=
- sys-libs/ncurses:0=
- sys-libs/readline:0=
- crypt? ( dev-libs/openssl:0= )
+ sys-libs/ncurses:=
+ sys-libs/readline:=
+ crypt? ( dev-libs/openssl:= )
snmp? ( net-analyzer/net-snmp )
perl? ( dev-lang/perl:= )
python? ( ${PYTHON_DEPS} )
- tcl? ( dev-lang/tcl:0= )"
-DEPEND="${RDEPEND}
- >=dev-lang/swig-1.3.21"
-BDEPEND="virtual/pkgconfig"
+ tcl? ( dev-lang/tcl:= )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ >=dev-lang/swig-1.3.21
+ virtual/pkgconfig
+"
# Gui is broken!
# python? ( tcl? ( tk? ( dev-lang/tk dev-tcltk/tix ) ) )"
-
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
PATCHES=(
- "${FILESDIR}/${PN}-2.0.26-tinfo.patch" #501510
+ "${FILESDIR}/${PN}-2.0.26-tinfo.patch" # bug #501510
+ "${FILESDIR}/${PN}-2.0.33-c99.patch"
)
pkg_setup() {
@@ -50,19 +53,13 @@ pkg_setup() {
src_prepare() {
default
- # Bug #298250: parallel install fix.
- sed -r -i \
- -e '/^install-data-local:/s,$, install-exec-am,g' \
- cmdlang/Makefile.{am,in} || die
-
- # We touch the .in and .am above because if we use the below, the Perl stuff
- # is very fragile, and often fails to link.
+ # For tinfo patch
eautoreconf
}
src_configure() {
local myconf=(
- # these binaries are for root!
+ # These binaries are for root!
--bindir="${EPREFIX}"/usr/sbin
--with-glib
--with-glibver=2.0
@@ -95,6 +92,7 @@ src_install() {
use python && python_optimize
find "${ED}" -name "*.la" -delete || die
+
if ! use static-libs ; then
find "${ED}" -name "*.a" -delete || die
fi
diff --git a/sys-libs/openipmi/openipmi-2.0.33.ebuild b/sys-libs/openipmi/openipmi-2.0.33.ebuild
new file mode 100644
index 000000000000..153a8bbd3b52
--- /dev/null
+++ b/sys-libs/openipmi/openipmi-2.0.33.ebuild
@@ -0,0 +1,97 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..11} )
+inherit autotools python-single-r1
+
+MY_PN="OpenIPMI"
+MY_P="${MY_PN}-${PV/_/-}"
+DESCRIPTION="Library interface to IPMI"
+HOMEPAGE="https://sourceforge.net/projects/openipmi/"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${MY_P}.tar.gz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="LGPL-2.1 GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm arm64 hppa ~ia64 ~loong ppc ppc64 ~riscv x86"
+IUSE="crypt snmp perl python static-libs tcl"
+
+RDEPEND="
+ dev-libs/glib:2
+ dev-libs/popt
+ sys-libs/gdbm:=
+ sys-libs/ncurses:=
+ sys-libs/readline:=
+ crypt? ( dev-libs/openssl:= )
+ snmp? ( net-analyzer/net-snmp )
+ perl? ( dev-lang/perl:= )
+ python? ( ${PYTHON_DEPS} )
+ tcl? ( dev-lang/tcl:= )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ >=dev-lang/swig-1.3.21
+ virtual/pkgconfig
+"
+
+# Gui is broken!
+# python? ( tcl? ( tk? ( dev-lang/tk dev-tcltk/tix ) ) )"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-2.0.26-tinfo.patch" # bug #501510
+)
+
+pkg_setup() {
+ use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ # For tinfo patch
+ eautoreconf
+}
+
+src_configure() {
+ local myconf=(
+ # These binaries are for root!
+ --bindir="${EPREFIX}"/usr/sbin
+ --with-glib
+ --with-glibver=2.0
+ --with-swig
+ --without-tkinter
+ $(use_with snmp ucdsnmp yes)
+ $(use_with crypt openssl yes)
+ $(use_with perl perl yes)
+ $(use_with tcl tcl yes)
+ $(use_with python python yes)
+ )
+
+ # GUI is broken
+ #use tk && use python && use !tcl && \
+ # ewarn "Not building Tk GUI because it needs both Python AND Tcl"
+ #if use python && use tcl; then
+ # myconf+=( $(use_with tk tkinter) )
+ #else
+ # myconf+=( --without-tkinter )
+ #fi
+
+ econf "${myconf[@]}"
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+ dodoc README* FAQ ChangeLog TODO doc/IPMI.pdf lanserv/README.vm
+ newdoc cmdlang/README README.cmdlang
+
+ use python && python_optimize
+
+ find "${ED}" -name "*.la" -delete || die
+
+ if ! use static-libs ; then
+ find "${ED}" -name "*.a" -delete || die
+ fi
+}