blob: 319833f053e5787fb2a75efe95fd51dd3e154ab1 [file] [log] [blame]
Andrew Geissler517393d2023-01-13 08:55:19 -06001SUMMARY = "XML C Parser Library and Toolkit"
2DESCRIPTION = "The XML Parser Library allows for manipulation of XML files. Libxml2 exports Push and Pull type parser interfaces for both XML and HTML. It can do DTD validation at parse time, on a parsed document instance or with an arbitrary DTD. Libxml2 includes complete XPath, XPointer and Xinclude implementations. It also has a SAX like interface, which is designed to be compatible with Expat."
3HOMEPAGE = "https://gitlab.gnome.org/GNOME/libxml2"
4BUGTRACKER = "http://bugzilla.gnome.org/buglist.cgi?product=libxml2"
5SECTION = "libs"
6LICENSE = "MIT"
7LIC_FILES_CHKSUM = "file://Copyright;md5=2044417e2e5006b65a8b9067b683fcf1 \
8 file://hash.c;beginline=6;endline=15;md5=e77f77b12cb69e203d8b4090a0eee879 \
9 file://list.c;beginline=4;endline=13;md5=b9c25b021ccaf287e50060602d20f3a7 \
10 file://trio.c;beginline=5;endline=14;md5=cd4f61e27f88c1d43df112966b1cd28f"
11
12DEPENDS = "zlib virtual/libiconv"
13
Patrick Williamsac13d5f2023-11-24 18:59:46 -060014GNOMEBASEBUILDCLASS = "autotools"
Andrew Geissler517393d2023-01-13 08:55:19 -060015inherit gnomebase
16
17SRC_URI += "http://www.w3.org/XML/Test/xmlts20130923.tar;subdir=${BP};name=testtar \
18 file://run-ptest \
Andrew Geissler517393d2023-01-13 08:55:19 -060019 file://install-tests.patch \
Andrew Geissler517393d2023-01-13 08:55:19 -060020 "
21
Andrew Geissler5082cc72023-09-11 08:41:39 -040022SRC_URI[archive.sha256sum] = "3727b078c360ec69fa869de14bd6f75d7ee8d36987b071e6928d4720a28df3a6"
Andrew Geissler517393d2023-01-13 08:55:19 -060023SRC_URI[testtar.sha256sum] = "c6b2d42ee50b8b236e711a97d68e6c4b5c8d83e69a2be4722379f08702ea7273"
24
Patrick Williamsac13d5f2023-11-24 18:59:46 -060025# Disputed as a security issue, but fixed in d39f780
26CVE_STATUS[CVE-2023-45322] = "disputed: issue requires memory allocation to fail"
27
Andrew Geissler517393d2023-01-13 08:55:19 -060028BINCONFIG = "${bindir}/xml2-config"
29
Andrew Geissler517393d2023-01-13 08:55:19 -060030PACKAGECONFIG ??= "python \
31 ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
32"
33PACKAGECONFIG[python] = "--with-python=${PYTHON},--without-python,python3"
34PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
35
36inherit autotools pkgconfig binconfig-disabled ptest
37
38inherit ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3targetconfig', '', d)}
39
Patrick Williams520786c2023-06-25 16:20:36 -050040LDFLAGS:append:riscv64 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld ptest', ' -fuse-ld=bfd', '', d)}"
41
Patrick Williams8e7b46e2023-05-01 14:19:06 -050042RDEPENDS:${PN}-ptest += "bash make locale-base-en-us ${@bb.utils.contains('PACKAGECONFIG', 'python', 'libgcc python3-core python3-logging python3-shell python3-stringold python3-threading python3-unittest ${PN}-python', '', d)}"
Andrew Geissler517393d2023-01-13 08:55:19 -060043
44RDEPENDS:${PN}-python += "${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3-core', '', d)}"
45
Patrick Williams8e7b46e2023-05-01 14:19:06 -050046RDEPENDS:${PN}-ptest:append:libc-musl = " musl-locales"
Andrew Geissler517393d2023-01-13 08:55:19 -060047RDEPENDS:${PN}-ptest:append:libc-glibc = " glibc-gconv-ebcdic-us \
48 glibc-gconv-ibm1141 \
49 glibc-gconv-iso8859-5 \
50 glibc-gconv-euc-jp \
Andrew Geissler517393d2023-01-13 08:55:19 -060051 "
52
53# WARNING: zlib is required for RPM use
54EXTRA_OECONF = "--without-debug --without-legacy --with-catalog --with-c14n --without-lzma --with-fexceptions"
55EXTRA_OECONF:class-native = "--without-legacy --with-c14n --without-lzma --with-zlib"
56EXTRA_OECONF:class-nativesdk = "--without-legacy --with-c14n --without-lzma --with-zlib"
57EXTRA_OECONF:linuxstdbase = "--with-debug --with-legacy --with-c14n --without-lzma --with-zlib"
58
59python populate_packages:prepend () {
60 # autonamer would call this libxml2-2, but we don't want that
61 if d.getVar('DEBIAN_NAMES'):
62 d.setVar('PKG:libxml2', '${MLPREFIX}libxml2')
63}
64
65PACKAGE_BEFORE_PN += "${PN}-utils"
66PACKAGES += "${PN}-python"
67
68FILES:${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/*.a"
69FILES:${PN}-utils = "${bindir}/*"
70FILES:${PN}-python = "${PYTHON_SITEPACKAGES_DIR}"
71
72do_configure:prepend () {
73 # executables take longer to package: these should not be executable
74 find ${S}/xmlconf/ -type f -exec chmod -x {} \+
75}
76
77do_install_ptest () {
78 oe_runmake DESTDIR=${D} ptestdir=${PTEST_PATH} install-test-data
79
80 cp -r ${S}/xmlconf ${D}${PTEST_PATH}
81
82 if ! ${@bb.utils.contains('PACKAGECONFIG', 'python', 'true', 'false', d)}; then
83 rm -rf ${D}${PTEST_DIR}/python
84 fi
85}
86
Patrick Williams8e7b46e2023-05-01 14:19:06 -050087# with musl we need to enable icu support explicitly for these tests
88do_install_ptest:append:libc-musl () {
89 rm -rf ${D}/${PTEST_PATH}/test/icu_parse_test.xml
90}
91
Andrew Geissler517393d2023-01-13 08:55:19 -060092do_install:append:class-native () {
93 # Docs are not needed in the native case
94 rm ${D}${datadir}/gtk-doc -rf
95
96 create_wrapper ${D}${bindir}/xmllint 'XML_CATALOG_FILES=${XML_CATALOG_FILES:-${sysconfdir}/xml/catalog}'
97}
98do_install[vardepsexclude] += "XML_CATALOG_FILES:-${sysconfdir}/xml/catalog"
99
100BBCLASSEXTEND = "native nativesdk"