From 87433dc22c7aba98922ccaa9fca17bdc51c9e78b Mon Sep 17 00:00:00 2001 From: Laszlo Valko Date: Thu, 21 Jul 2022 13:11:01 +0200 Subject: [PATCH] Updated sys-apps/wsmancli to stop using custom autotools-utils eclass. --- eclass/autotools-utils.eclass | 386 ------------------------ sys-apps/wsmancli/Manifest | 3 +- sys-apps/wsmancli/files/autotools.patch | 49 +++ sys-apps/wsmancli/wsmancli-2.6.0.ebuild | 27 +- 4 files changed, 62 insertions(+), 403 deletions(-) delete mode 100644 eclass/autotools-utils.eclass create mode 100644 sys-apps/wsmancli/files/autotools.patch diff --git a/eclass/autotools-utils.eclass b/eclass/autotools-utils.eclass deleted file mode 100644 index 19a1de8..0000000 --- a/eclass/autotools-utils.eclass +++ /dev/null @@ -1,386 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# @DEAD -# @ECLASS: autotools-utils.eclass -# @MAINTAINER: -# Maciej Mrozowski -# Michał Górny -# @SUPPORTED_EAPIS: 4 5 -# @BLURB: common ebuild functions for autotools-based packages -# @DEPRECATED: out-of-source -# @DESCRIPTION: -# autotools-utils.eclass is autotools.eclass(5) and base.eclass(5) wrapper -# providing all inherited features along with econf arguments as Bash array, -# out of source build with overridable build dir location, static archives -# handling, libtool files removal. -# -# Please note that autotools-utils does not support mixing of its phase -# functions with regular econf/emake calls. If necessary, please call -# autotools-utils_src_compile instead of the latter. -# -# @EXAMPLE: -# Typical ebuild using autotools-utils.eclass: -# -# @CODE -# EAPI="2" -# -# inherit autotools-utils -# -# DESCRIPTION="Foo bar application" -# HOMEPAGE="http://example.org/foo/" -# SRC_URI="mirror://sourceforge/foo/${P}.tar.bz2" -# -# LICENSE="LGPL-2.1" -# KEYWORDS="" -# SLOT="0" -# IUSE="debug doc examples qt4 static-libs tiff" -# -# CDEPEND=" -# media-libs/libpng:0 -# qt4? ( -# dev-qt/qtcore:4 -# dev-qt/qtgui:4 -# ) -# tiff? ( media-libs/tiff:0 ) -# " -# RDEPEND="${CDEPEND} -# !media-gfx/bar -# " -# DEPEND="${CDEPEND} -# doc? ( app-doc/doxygen ) -# " -# -# # bug 123456 -# AUTOTOOLS_IN_SOURCE_BUILD=1 -# -# DOCS=(AUTHORS ChangeLog README "Read me.txt" TODO) -# -# PATCHES=( -# "${FILESDIR}/${P}-gcc44.patch" # bug 123458 -# "${FILESDIR}/${P}-as-needed.patch" -# "${FILESDIR}/${P}-unbundle_libpng.patch" -# ) -# -# src_configure() { -# local myeconfargs=( -# $(use_enable debug) -# $(use_with qt4) -# $(use_enable threads multithreading) -# $(use_with tiff) -# ) -# autotools-utils_src_configure -# } -# -# src_compile() { -# autotools-utils_src_compile -# use doc && autotools-utils_src_compile docs -# } -# -# src_install() { -# use doc && HTML_DOCS=("${BUILD_DIR}/apidocs/html/") -# autotools-utils_src_install -# if use examples; then -# dobin "${BUILD_DIR}"/foo_example{1,2,3} \\ -# || die 'dobin examples failed' -# fi -# } -# -# @CODE - -# Keep variable names synced with cmake-utils and the other way around! - -case ${EAPI:-0} in - 6) die "${ECLASS}.eclass is banned in EAPI ${EAPI}";; - 4|5) ;; - *) die "EAPI=${EAPI} is not supported" ;; -esac - -# @ECLASS-VARIABLE: AUTOTOOLS_AUTORECONF -# @DEFAULT_UNSET -# @DESCRIPTION: -# Set to a non-empty value before calling inherit to enable running autoreconf -# in src_prepare() and adding autotools dependencies. -# -# This is usually necessary when using live sources or applying patches -# modifying configure.ac or Makefile.am files. Note that in the latter case -# setting this variable is obligatory even though the eclass will work without -# it (to add the necessary dependencies). -# -# The eclass will try to determine the correct autotools to run including a few -# external tools: gettext, glib-gettext, intltool, gtk-doc, gnome-doc-prepare. -# If your tool is not supported, please open a bug and we'll add support for it. -# -# Note that dependencies are added for autoconf, automake and libtool only. -# If your package needs one of the external tools listed above, you need to add -# appropriate packages to DEPEND yourself. -[[ ${AUTOTOOLS_AUTORECONF} ]] || : ${AUTOTOOLS_AUTO_DEPEND:=no} - -# eutils for eqawarn, path_exists -inherit autotools epatch eutils libtool ltprune - -EXPORT_FUNCTIONS src_prepare src_configure src_compile src_install src_test - -# @ECLASS-VARIABLE: BUILD_DIR -# @DEFAULT_UNSET -# @DESCRIPTION: -# Build directory, location where all autotools generated files should be -# placed. For out of source builds it defaults to ${WORKDIR}/${P}_build. -# -# This variable has been called AUTOTOOLS_BUILD_DIR formerly. -# It is set under that name for compatibility. - -# @ECLASS-VARIABLE: AUTOTOOLS_IN_SOURCE_BUILD -# @DEFAULT_UNSET -# @DESCRIPTION: -# Set to enable in-source build. - -# @ECLASS-VARIABLE: ECONF_SOURCE -# @DEFAULT_UNSET -# @DESCRIPTION: -# Specify location of autotools' configure script. By default it uses ${S}. - -# @ECLASS-VARIABLE: DOCS -# @DEFAULT_UNSET -# @DESCRIPTION: -# Array containing documents passed to dodoc command. -# -# In EAPIs 4+, can list directories as well. -# -# Example: -# @CODE -# DOCS=( NEWS README ) -# @CODE - -# @ECLASS-VARIABLE: HTML_DOCS -# @DEFAULT_UNSET -# @DESCRIPTION: -# Array containing documents passed to dohtml command. -# -# Example: -# @CODE -# HTML_DOCS=( doc/html/ ) -# @CODE - -# @ECLASS-VARIABLE: PATCHES -# @DEFAULT_UNSET -# @DESCRIPTION: -# PATCHES array variable containing all various patches to be applied. -# -# Example: -# @CODE -# PATCHES=( "${FILESDIR}"/${P}-mypatch.patch ) -# @CODE - -# @ECLASS-VARIABLE: AUTOTOOLS_PRUNE_LIBTOOL_FILES -# @DEFAULT_UNSET -# @DESCRIPTION: -# Sets the mode of pruning libtool files. The values correspond to -# prune_libtool_files parameters, with leading dashes stripped. -# -# Defaults to pruning the libtool files when static libraries are not -# installed or can be linked properly without them. Libtool files -# for modules (plugins) will be kept in case plugin loader needs them. -# -# If set to 'modules', the .la files for modules will be removed -# as well. This is often the preferred option. -# -# If set to 'all', all .la files will be removed unconditionally. This -# option is discouraged and shall be used only if 'modules' does not -# remove the files. -# -# If set to 'none', no .la files will be pruned ever. Use in corner -# cases only. - -# Determine using IN or OUT source build -_check_build_dir() { - : ${ECONF_SOURCE:=${S}} - # Respect both the old variable and the new one, depending - # on which one was set by the ebuild. - if [[ ! ${BUILD_DIR} && ${AUTOTOOLS_BUILD_DIR} ]]; then - eqawarn "The AUTOTOOLS_BUILD_DIR variable has been renamed to BUILD_DIR." - eqawarn "Please migrate the ebuild to use the new one." - - # In the next call, both variables will be set already - # and we'd have to know which one takes precedence. - _RESPECT_AUTOTOOLS_BUILD_DIR=1 - fi - - if [[ ${_RESPECT_AUTOTOOLS_BUILD_DIR} ]]; then - BUILD_DIR=${AUTOTOOLS_BUILD_DIR:-${WORKDIR}/${P}_build} - else - if [[ -n ${AUTOTOOLS_IN_SOURCE_BUILD} ]]; then - : ${BUILD_DIR:=${ECONF_SOURCE}} - else - : ${BUILD_DIR:=${WORKDIR}/${P}_build} - fi - fi - - # Backwards compatibility for getting the value. - AUTOTOOLS_BUILD_DIR=${BUILD_DIR} - echo ">>> Working in BUILD_DIR: \"${BUILD_DIR}\"" -} - -# @FUNCTION: autotools-utils_src_prepare -# @DESCRIPTION: -# The src_prepare function. -# -# Supporting PATCHES array and user patches. See base.eclass(5) for reference. -autotools-utils_src_prepare() { - debug-print-function ${FUNCNAME} "$@" - - local want_autoreconf=${AUTOTOOLS_AUTORECONF} - - [[ ${PATCHES} ]] && epatch "${PATCHES[@]}" - - at_checksum() { - find '(' -name 'Makefile.am' \ - -o -name 'configure.ac' \ - -o -name 'configure.in' ')' \ - -exec cksum {} + | sort -k2 - } - - [[ ! ${want_autoreconf} ]] && local checksum=$(at_checksum) - epatch_user - if [[ ! ${want_autoreconf} ]]; then - if [[ ${checksum} != $(at_checksum) ]]; then - einfo 'Will autoreconfigure due to user patches applied.' - want_autoreconf=yep - fi - fi - - [[ ${want_autoreconf} ]] && eautoreconf - elibtoolize --patch-only -} - -# @FUNCTION: autotools-utils_src_configure -# @DESCRIPTION: -# The src_configure function. For out of source build it creates build -# directory and runs econf there. Configuration parameters defined -# in myeconfargs are passed here to econf. Additionally following USE -# flags are known: -# -# IUSE="static-libs" passes --enable-shared and either --disable-static/--enable-static -# to econf respectively. - -# @VARIABLE: myeconfargs -# @DEFAULT_UNSET -# @DESCRIPTION: -# Optional econf arguments as Bash array. Should be defined before calling src_configure. -# @CODE -# src_configure() { -# local myeconfargs=( -# --disable-readline -# --with-confdir="/etc/nasty foo confdir/" -# $(use_enable debug cnddebug) -# $(use_enable threads multithreading) -# ) -# autotools-utils_src_configure -# } -# @CODE -autotools-utils_src_configure() { - debug-print-function ${FUNCNAME} "$@" - - [[ -z ${myeconfargs+1} || $(declare -p myeconfargs) == 'declare -a'* ]] \ - || die 'autotools-utils.eclass: myeconfargs has to be an array.' - - # Common args - local econfargs=() - - _check_build_dir - if "${ECONF_SOURCE}"/configure --help 2>&1 | grep -q '^ *--docdir='; then - econfargs+=( - --docdir="${EPREFIX}"/usr/share/doc/${PF} - ) - fi - - # Handle static-libs found in IUSE, disable them by default - if in_iuse static-libs; then - econfargs+=( - --enable-shared - $(use_enable static-libs static) - ) - fi - - # Append user args - econfargs+=("${myeconfargs[@]}") - - mkdir -p "${BUILD_DIR}" || die - pushd "${BUILD_DIR}" > /dev/null || die - econf "${econfargs[@]}" "$@" - popd > /dev/null || die -} - -# @FUNCTION: autotools-utils_src_compile -# @DESCRIPTION: -# The autotools src_compile function, invokes emake in specified BUILD_DIR. -autotools-utils_src_compile() { - debug-print-function ${FUNCNAME} "$@" - - _check_build_dir - pushd "${BUILD_DIR}" > /dev/null || die - emake "$@" || die 'emake failed' - popd > /dev/null || die -} - -# @FUNCTION: autotools-utils_src_install -# @DESCRIPTION: -# The autotools src_install function. Runs emake install, unconditionally -# removes unnecessary static libs (based on shouldnotlink libtool property) -# and removes unnecessary libtool files when static-libs USE flag is defined -# and unset. -# -# DOCS and HTML_DOCS arrays are supported. See base.eclass(5) for reference. -autotools-utils_src_install() { - debug-print-function ${FUNCNAME} "$@" - - _check_build_dir - pushd "${BUILD_DIR}" > /dev/null || die - emake DESTDIR="${D}" "$@" install || die "emake install failed" - popd > /dev/null || die - - # XXX: support installing them from builddir as well? - if declare -p DOCS &>/dev/null; then - # an empty list == don't install anything - if [[ ${DOCS[@]} ]]; then - # dies by itself - dodoc -r "${DOCS[@]}" - fi - else - local f - # same list as in PMS - for f in README* ChangeLog AUTHORS NEWS TODO CHANGES \ - THANKS BUGS FAQ CREDITS CHANGELOG; do - if [[ -s ${f} ]]; then - dodoc "${f}" || die "(default) dodoc ${f} failed" - fi - done - fi - if [[ ${HTML_DOCS} ]]; then - dohtml -r "${HTML_DOCS[@]}" || die "dohtml failed" - fi - - # Remove libtool files and unnecessary static libs - local prune_ltfiles=${AUTOTOOLS_PRUNE_LIBTOOL_FILES} - if [[ ${prune_ltfiles} != none ]]; then - prune_libtool_files ${prune_ltfiles:+--${prune_ltfiles}} - fi -} - -# @FUNCTION: autotools-utils_src_test -# @DESCRIPTION: -# The autotools src_test function. Runs emake check in build directory. -autotools-utils_src_test() { - debug-print-function ${FUNCNAME} "$@" - - _check_build_dir - pushd "${BUILD_DIR}" > /dev/null || die - - if make -ni check "${@}" &>/dev/null; then - emake check "${@}" || die 'emake check failed.' - elif make -ni test "${@}" &>/dev/null; then - emake test "${@}" || die 'emake test failed.' - fi - - popd > /dev/null || die -} diff --git a/sys-apps/wsmancli/Manifest b/sys-apps/wsmancli/Manifest index 0d1079d..274450b 100644 --- a/sys-apps/wsmancli/Manifest +++ b/sys-apps/wsmancli/Manifest @@ -1,2 +1,3 @@ +AUX autotools.patch 1103 BLAKE2B 311c9dad47037741db1fb5b10646b4eb72fe46e417bd3f4cb3f66afefc543977859760df83a703c2f745dfa734c85ddc699181d584da3fae5e0aba3ec617feb9 SHA512 80f542650125aee7d374704ec7321ace1b3a29ef2d71751a6fa59b52b8e04e677fffeec35b4b461e4ef1b477bcb21a36339966ebbe692c07594c2d6e74795e9f DIST wsmancli-2.6.0.tar.gz 42913 BLAKE2B 9482153e3e0efe0b31d88f58862e6f9b3a0162dcdaaf74500fb6663e1502485a0877808ba517d6660226bd68d2a9b8d68351544c74f3eaf9ebe3172ce8502543 SHA512 40f69dfefd5cfc9c1d137c5c58bd0e84e1bb460ecb6770e1c56b023477f7521769f04e041682686d267796477704c7465d437f6fdb4068268a51d1136d5c8a56 -EBUILD wsmancli-2.6.0.ebuild 788 BLAKE2B 8968b9ac2cebdeecf38071e938335fda7d759c13c5cdab96f6703f6421e694842c6fbbf3c38db648b95e7f217a977153f64546dc56e8138d68a051f812dbf8ea SHA512 d108d48a174fe0709724b1db06d78f72b1187847fcf8b0df56146bd527019c053d3c61e95580a826715a61e96636beb7db7fb4c51b22723a7464686d14632f71 +EBUILD wsmancli-2.6.0.ebuild 633 BLAKE2B b78cd1e7bda4895e08aea6058e7f1bc302a2c061d8da3f8e8d75272adf2905263f42df0145cae31c336de7d417bc1cbcaf8382c44f3ba6f1b981a68afed57421 SHA512 4c5f1b021813e3744292eb90dd52fac7d311bd7fb03ef4f5d5112679afeca48aeb4b901c4cd9c6c3b7a9671d6e2f9f1aac7284bda1493b50b70c4ccb66e277ea diff --git a/sys-apps/wsmancli/files/autotools.patch b/sys-apps/wsmancli/files/autotools.patch new file mode 100644 index 0000000..f925907 --- /dev/null +++ b/sys-apps/wsmancli/files/autotools.patch @@ -0,0 +1,49 @@ +--- wsmancli-2.6.0/configure.in.orig 2022-07-21 12:57:35.481177325 +0200 ++++ wsmancli-2.6.0/configure.in 2022-07-21 13:03:17.834808466 +0200 +@@ -1,17 +1,14 @@ + dnl Process this file with autoconf to produce a configure script. + +-AC_INIT(wsmancli, 2.6.0) ++AC_INIT([wsmancli], [2.6.0]) + AC_CONFIG_SRCDIR(wsmancli.spec.in) +-AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION) +-AM_CONFIG_HEADER(config.h) ++AM_INIT_AUTOMAKE ++AC_CONFIG_HEADERS(config.h) + AM_MAINTAINER_MODE + +-AC_ISC_POSIX + AC_PROG_CC + AC_PROG_CXX +-AM_PROG_CC_STDC +-AC_HEADER_STDC +-AM_PROG_LIBTOOL ++LT_INIT + + WSMAN_PKG=$PACKAGE_NAME + AC_SUBST(WSMAN_PKG) +@@ -49,7 +46,7 @@ + -Wunused -Werror" + fi + +-AC_OUTPUT([ ++AC_CONFIG_FILES([ + wsmancli.spec + Makefile + src/Makefile +@@ -60,4 +57,4 @@ + tests/cunit/Makefile + man/Makefile + ]) +- ++AC_OUTPUT +--- wsmancli-2.6.0/tests/cunit/Makefile.am.orig 2015-06-11 10:50:04.000000000 +0200 ++++ wsmancli-2.6.0/tests/cunit/Makefile.am 2022-07-21 13:06:59.696086534 +0200 +@@ -1,6 +1,6 @@ + AM_CFLAGS = @CFLAGS@ + +-INCLUDES = \ ++AM_CPPFLAGS = \ + $(OPENWSMAN_CFLAGS) + + diff --git a/sys-apps/wsmancli/wsmancli-2.6.0.ebuild b/sys-apps/wsmancli/wsmancli-2.6.0.ebuild index 4773ec9..b47e338 100644 --- a/sys-apps/wsmancli/wsmancli-2.6.0.ebuild +++ b/sys-apps/wsmancli/wsmancli-2.6.0.ebuild @@ -1,11 +1,10 @@ # Copyright 1999-2017 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -EAPI=5 +EAPI=7 WANT_AUTOCONF=2.5 -WANT_AUTOMAKE=1.11 -inherit autotools-utils +inherit autotools DESCRIPTION="Opensource Implementation of WS-Management - Command line utility" HOMEPAGE="https://github.com/Openwsman" @@ -14,7 +13,7 @@ SRC_URI="https://github.com/Openwsman/wsmancli/archive/v2.6.0.tar.gz -> ${P}.tar LICENSE="BSD" SLOT="0" KEYWORDS="x86 amd64" -IUSE="test examples static-libs" +IUSE="static-libs" CDEPEND=" net-misc/curl[idn] @@ -22,19 +21,15 @@ CDEPEND=" " RDEPEND="${CDEPEND}" -DEPEND="${CDEPEND} - test? ( dev-util/cunit ) - " +DEPEND="${CDEPEND}" + +PATCHES=( + "${FILESDIR}"/autotools.patch +) src_prepare() { + default + + mv configure.{in,ac} || die ./bootstrap } - -src_configure() { - local myeconfargs=( - $(use_with test) - $(use_with examples) - ) - autotools-utils_src_configure -} -# TODO patch vconfigure option to work exmaples=yes