Skip to content

Commit

Permalink
dev-libs/libxml2: add 2.12.3
Browse files Browse the repository at this point in the history
Note that upstream have undone some of the header changes which means
many of the failures we hit are now gone (or hidden, rather).

Closes: https://bugs.gentoo.org/917537
Signed-off-by: Sam James <[email protected]>
  • Loading branch information
thesamesam committed Dec 13, 2023
1 parent 1d6e404 commit fa200a4
Show file tree
Hide file tree
Showing 2 changed files with 197 additions and 0 deletions.
1 change: 1 addition & 0 deletions dev-libs/libxml2/Manifest
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ DIST libxml2-2.11.4.tar.xz 2626756 BLAKE2B 5d7e6388291a8473195131f5cb22aee9a4182
DIST libxml2-2.11.5.tar.xz 2628132 BLAKE2B 4af53ef7c19cfcddcf3de5c694a1b03cf4212f8e4c4cb3d873a897fddd8a89d7a52d049a8b85e96c6cdb471689aa385512d87b9710074e90583bf7ad46319172 SHA512 8f087cdaf61957567f04280facc70211c09ca131a532fd13ed4bfc38ddec50e44b1f842b108e635bd4205232036a3e1097904ac016f1fd135bacd17aebb04272
DIST libxml2-2.11.6.tar.xz 2628652 BLAKE2B 0a1776ca44b21143c538665b6cf7a50962bb1bda6c85f45e4fd4fb7c36ecb4d592d1f5a8d38015bac06a3acb6f7adb1d4afa10fe95987197509f4c1f45b15962 SHA512 43d244450b494c7dbd3521287b87cba0c11267be8d7940a1ecd49dbf0ebefdd052c4c3472c3f267b0d8c431d9b5b964b05067af9e38bc4b0e4f46bc0445b6201
DIST libxml2-2.12.2.tar.xz 2642336 BLAKE2B 3ea65b6f6d634899d8a8accbf29c61c18de9291bc0c837b3b0410d05f61e37a6838b71aa407bbb3983bf5e4f5e4e15b1f068b918e012179d5d4f95302a731b1f SHA512 4511e03dfd08ffad6a633d79828a6049e75769a2ad9fb93ef0f553b3668e517863b648c0923c71d9b58ff7452530fdf789e611720aed8dea60bbdfe476cde1d2
DIST libxml2-2.12.3.tar.xz 2641720 BLAKE2B 12a7c25d2a13d839aac918268b0948a9bd3c352bc29dd09bb975a9b4ff99d299a0e157b1a90f01bdce8ddc36ede9a6834b0dc26635ac775a41bd28d9b2ad7cff SHA512 3d2f83b0a9a3db66320f2a6514e1e7b3e60c3b02bbfcd72074b22a61688b00e5b346c8ff5a59d68dfe1bb5fa8d06da2cae89b3be60e18bdf9b886077ca973aa0
DIST xmlts20130923.tar.gz 641522 BLAKE2B 63a47bc69278ef510cd0b3779aed729e1b309e30efa0015d28ed051cc03f9dfddb447ab57b07b3393e8f47393d15473b0e199c34cb1f5f746b15ddfaa55670be SHA512 d5c4d26b324ed21f4e0641cd7f8b76dbf9de80df8b519982e44d41c960df29fd03618e02e9693b2d11ad06d19c4a965274c95a048ec3b9653eacb919a7f8b733
DIST xsts-2002-01-16.tar.gz 6894439 BLAKE2B 1e9ec63d2c104655e64249e07440a04d862fcbcd4d4e19745d81b34994319b510a531c9d6df1491fae1e90b5d0764f0f1a827251ca8df5d613178b0eab01ef25 SHA512 43300af6d39c1e2221b0ed7318fe14c7464eeb6eb030ed1e22eb29b4ab17f014e2a4c8887c3a46ae5d243e3072da27f00f4e285498ae6f1288177d38d1108288
DIST xsts-2004-01-14.tar.gz 2761085 BLAKE2B 41545995fb3a65d053257c376c07d45ffd1041a433bfbdb46d4dd87a5afb60c18c8629a3d988323f9e7a1d709775b5a7e5930276a7121c0725a22705c0976e36 SHA512 32854388d7e720ad67156baf50bf2bae7bd878ca3e35fd7e44e57cad3f434f69d56bbbedd61509f8a1faf01c9eae74a078df8fe130780b182c05c05cb1c39ebe
196 changes: 196 additions & 0 deletions dev-libs/libxml2/libxml2-2.12.3.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,196 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

# Note: Please bump in sync with dev-libs/libxslt

PYTHON_COMPAT=( python3_{10..12} )
PYTHON_REQ_USE="xml(+)"
inherit flag-o-matic python-r1 multilib-minimal

XSTS_HOME="http://www.w3.org/XML/2004/xml-schema-test-suite"
XSTS_NAME_1="xmlschema2002-01-16"
XSTS_NAME_2="xmlschema2004-01-14"
XSTS_TARBALL_1="xsts-2002-01-16.tar.gz"
XSTS_TARBALL_2="xsts-2004-01-14.tar.gz"
XMLCONF_TARBALL="xmlts20130923.tar.gz"

DESCRIPTION="XML C parser and toolkit"
HOMEPAGE="https://gitlab.gnome.org/GNOME/libxml2/-/wikis/home"
if [[ ${PV} == 9999 ]] ; then
EGIT_REPO_URI="https://gitlab.gnome.org/GNOME/libxml2"
inherit autotools git-r3
else
inherit gnome.org libtool
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
fi

SRC_URI+="
test? (
${XSTS_HOME}/${XSTS_NAME_1}/${XSTS_TARBALL_1}
${XSTS_HOME}/${XSTS_NAME_2}/${XSTS_TARBALL_2}
https://www.w3.org/XML/Test/${XMLCONF_TARBALL}
)
"
S="${WORKDIR}/${PN}-${PV%_rc*}"

LICENSE="MIT"
SLOT="2"
IUSE="debug examples +ftp icu lzma +python readline static-libs test"
RESTRICT="!test? ( test )"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"

RDEPEND="
virtual/libiconv
>=sys-libs/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}]
icu? ( >=dev-libs/icu-51.2-r1:=[${MULTILIB_USEDEP}] )
lzma? ( >=app-arch/xz-utils-5.0.5-r1:=[${MULTILIB_USEDEP}] )
python? ( ${PYTHON_DEPS} )
readline? ( sys-libs/readline:= )
"
DEPEND="${RDEPEND}"
BDEPEND="virtual/pkgconfig"

if [[ ${PV} == 9999 ]] ; then
BDEPEND+=" dev-util/gtk-doc-am"
fi

MULTILIB_CHOST_TOOLS=(
/usr/bin/xml2-config
)

src_unpack() {
if [[ ${PV} == 9999 ]] ; then
git-r3_src_unpack
else
local tarname=${P/_rc/-rc}.tar.xz

# ${A} isn't used to avoid unpacking of test tarballs into ${WORKDIR},
# as they are needed as tarballs in ${S}/xstc instead and not unpacked
unpack ${tarname}

if [[ -n ${PATCHSET_VERSION} ]] ; then
unpack ${PN}-${PATCHSET_VERSION}.tar.xz
fi
fi

cd "${S}" || die

if use test ; then
cp "${DISTDIR}/${XSTS_TARBALL_1}" \
"${DISTDIR}/${XSTS_TARBALL_2}" \
"${S}"/xstc/ \
|| die "Failed to install test tarballs"
unpack ${XMLCONF_TARBALL}
fi
}

src_prepare() {
default

if [[ ${PV} == 9999 ]] ; then
eautoreconf
else
# Please do not remove, as else we get references to PORTAGE_TMPDIR
# in /usr/lib/python?.?/site-packages/libxml2mod.la among things.
elibtoolize
fi
}

multilib_src_configure() {
# Filter seemingly problematic CFLAGS (bug #26320)
filter-flags -fprefetch-loop-arrays -funroll-loops

# Notes:
# The meaning of the 'debug' USE flag does not apply to the --with-debug
# switch (enabling the libxml2 debug module). See bug #100898.
libxml2_configure() {
ECONF_SOURCE="${S}" econf \
--enable-ipv6 \
$(use_with ftp) \
$(use_with debug run-debug) \
$(use_with icu) \
$(use_with lzma) \
$(use_enable static-libs static) \
$(multilib_native_use_with readline) \
$(multilib_native_use_with readline history) \
"$@"
}

# Build python bindings separately
libxml2_configure --without-python

multilib_is_native_abi && use python &&
python_foreach_impl run_in_build_dir libxml2_configure --with-python
}

libxml2_py_emake() {
pushd "${BUILD_DIR}"/python >/dev/null || die

emake top_builddir="${NATIVE_BUILD_DIR}" "$@"

popd >/dev/null || die
}

multilib_src_compile() {
default

if multilib_is_native_abi && use python ; then
NATIVE_BUILD_DIR="${BUILD_DIR}"
python_foreach_impl run_in_build_dir libxml2_py_emake all
fi
}

multilib_src_test() {
ln -s "${S}"/xmlconf || die

emake check

multilib_is_native_abi && use python &&
python_foreach_impl run_in_build_dir libxml2_py_emake check
}

multilib_src_install() {
emake DESTDIR="${D}" install

multilib_is_native_abi && use python &&
python_foreach_impl run_in_build_dir libxml2_py_emake DESTDIR="${D}" install

# Hack until automake release is made for the optimise fix
# https://git.savannah.gnu.org/cgit/automake.git/commit/?id=bde43d0481ff540418271ac37012a574a4fcf097
multilib_is_native_abi && use python && python_foreach_impl python_optimize
}

multilib_src_install_all() {
einstalldocs

if ! use examples ; then
rm -rf "${ED}"/usr/share/doc/${PF}/examples || die
rm -rf "${ED}"/usr/share/doc/${PF}/python/examples || die
fi

rm -rf "${ED}"/usr/share/doc/${PN}-python-${PVR} || die

find "${ED}" -name '*.la' -delete || die
}

pkg_postinst() {
# We don't want to do the xmlcatalog during stage1, as xmlcatalog will not
# be in / and stage1 builds to ROOT=/tmp/stage1root. This fixes bug #208887.
if [[ -n "${ROOT}" ]]; then
elog "Skipping XML catalog creation for stage building (bug #208887)."
else
# Need an XML catalog, so no-one writes to a non-existent one
CATALOG="${EROOT}/etc/xml/catalog"

# We don't want to clobber an existing catalog though,
# only ensure that one is there
# <[email protected]>
if [[ ! -e "${CATALOG}" ]]; then
[[ -d "${EROOT}/etc/xml" ]] || mkdir -p "${EROOT}/etc/xml"
"${EPREFIX}"/usr/bin/xmlcatalog --create > "${CATALOG}"
einfo "Created XML catalog in ${CATALOG}"
fi
fi
}

0 comments on commit fa200a4

Please sign in to comment.