diff --git a/gnu/packages/augeas.scm b/gnu/packages/augeas.scm index 0b3233e960e..8a784f48175 100644 --- a/gnu/packages/augeas.scm +++ b/gnu/packages/augeas.scm @@ -57,7 +57,7 @@ "1zzdp5bwnszza5q6cjw66hkicay8b49n5pda7cbcgfg4hbbzv2rn")))) (build-system gnu-build-system) (propagated-inputs - (list libxml2-next)) + (list libxml2)) (native-inputs (list readline pkg-config)) (home-page "https://augeas.net") diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 5d218e6a690..ef285ddf835 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -23600,7 +23600,7 @@ The output is in SAM format.") #$(this-package-input "libxml2") "/include/libxml2")))) (propagated-inputs - (list libxml2-next)) + (list libxml2)) (native-inputs (list check swig)) (home-page "https://sbml.org/Software/libSBML") diff --git a/gnu/packages/elf.scm b/gnu/packages/elf.scm index 40558a4c6ca..0b435993ef4 100644 --- a/gnu/packages/elf.scm +++ b/gnu/packages/elf.scm @@ -243,7 +243,7 @@ object or archive file), @command{eu-strip} (for discarding symbols), (list pkg-config texinfo python-sphinx python)) (propagated-inputs (list elfutils ;libabigail.la says -lelf - libxml2-next)) ;in Requires.private of libabigail.pc + libxml2)) ;in Requires.private of libabigail.pc (synopsis "Analyze application binary interfaces (ABIs)") (description "@dfn{ABIGAIL} stands for the Application Binary Interface Generic diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 0d5748b3c0d..f398fab48b5 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -1566,8 +1566,7 @@ use on a given system.") parallel perl pkg-config - python-wrapper - python-libxml2)) + python-wrapper)) (inputs (list pcre2)) (home-page "https://www.gnu.org/software/libredwg/") diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 89a0a0f6ec8..d5589fba198 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -2234,7 +2234,7 @@ between protocols to provide a unified interface for applications.") (inputs (list sqlite)) (propagated-inputs ;; telepathy-logger-0.2.pc refers to all these. - (list libxml2-next telepathy-glib)) + (list libxml2 telepathy-glib)) (synopsis "Telepathy logger library") (home-page "https://telepathy.freedesktop.org/") (description diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 255b4526243..ae2abd3bd1f 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -357,7 +357,6 @@ also known as DXTn or DXTC) for Mesa.") glslang libclc pkg-config - python-libxml2 ;for OpenGL ES 1.1 and 2.0 support python-mako python-ply python-pyyaml diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 8347359a846..acdf9268cda 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -770,7 +770,7 @@ The intltool collection can be used to do these things: "1jl7gsr7aclb9nvqazr039m86y7f7ivfhl2pixcrbfqjkb97r6kb")))) (build-system gnu-build-system) (inputs - (list bash-minimal libxml2 python-libxml2 python)) + (list bash-minimal libxml2 python)) (arguments (list #:phases @@ -858,7 +858,7 @@ by GDBus included in Glib.") pkg-config vala)) (inputs (list check python python-pygobject)) - (propagated-inputs (list glib libxml2-next sqlite)) + (propagated-inputs (list glib libxml2 sqlite)) (arguments (list #:tests? #f ;one test fails. #:imported-modules `((guix build python-build-system) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index bff88c49477..bca1a8d22ab 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -443,7 +443,7 @@ services.") "/share/gtk-doc/html")))) (native-inputs (list docbook-xml-4.1.2 gobject-introspection gtk-doc/stable pkg-config)) - (propagated-inputs (list glib libsoup-minimal-2 libxml2-next-for-grafting)) + (propagated-inputs (list glib libsoup-minimal-2 libxml2)) (synopsis "Glib library for feeds") (description "LibGRSS is a Glib abstraction to handle feeds in RSS, Atom, and other formats.") @@ -1223,7 +1223,7 @@ Library reference documentation.") ;; These inputs are required by the pkg-config file. (list glib libsoup - libxml2-next-for-grafting)) + libxml2)) (synopsis "WebDav server implementation using libsoup") (description "PhoDav was initially developed as a file-sharing mechanism for Spice, but it is generic enough to be reused in other projects, @@ -1433,7 +1433,7 @@ a debugging tool, @command{gssdp-device-sniffer}.") gsettings-desktop-schemas ;for ‘org.gnome.system.proxy’. gssdp libsoup - libxml2-next-for-grafting)) + libxml2)) (synopsis "PnP API for GNOME") (description "This package provides GUPnP, an object-oriented framework for creating UPnP devices and control points, written in C using @@ -2018,7 +2018,7 @@ and system administrators.") (inputs (list graphene gtk+ - libxml2-next-for-grafting + libxml2 libxslt poppler python-minimal @@ -2068,7 +2068,7 @@ formats like PNG, SVG, PDF and EPS.") ("json-glib" ,json-glib) ("liboauth" ,liboauth) ("libsoup" ,libsoup-minimal-2) - ("libxml2" ,libxml2-next-for-grafting))) + ("libxml2" ,libxml2))) (home-page "https://wiki.gnome.org/Projects/libgdata") (synopsis "Library for accessing online service APIs") (description @@ -3600,7 +3600,7 @@ XML/CSS rendering engine.") zlib)) (propagated-inputs (list glib - libxml2-next-for-grafting)) + libxml2)) (synopsis "G Structured File Library") (description "Libgsf aims to provide an efficient extensible I/O abstraction for dealing with different structured file formats.") @@ -4215,7 +4215,7 @@ ported to GTK+.") (inputs (list python)) ;; needed for the optional libglade-convert program (propagated-inputs - (list gtk+-2 libxml2-next-for-grafting)) ; required by libglade-2.0.pc + (list gtk+-2 libxml2)) ; required by libglade-2.0.pc (native-inputs (list pkg-config)) (home-page "https://developer.gnome.org/libglade") @@ -4254,7 +4254,7 @@ widgets built in the loading process.") ;; Therefore we must do it. (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))))))))) ;; Mentioned as Required by the .pc file - (propagated-inputs (list libxml2-next-for-grafting)) + (propagated-inputs (list libxml2)) (inputs (list popt pangox-compat libgnome libgnomecanvas libglade)) (native-inputs @@ -4911,7 +4911,7 @@ GLib and GObject, and integrates JSON with GLib data types.") ("libtool" ,libtool))) (propagated-inputs ;; Required by libxklavier.pc. - (list glib libxml2-next-for-grafting)) + (list glib libxml2)) (inputs (list iso-codes/pinned libxi libxkbfile xkbcomp xkeyboard-config)) (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/") @@ -5040,7 +5040,7 @@ files.") (list `(,glib "bin") gobject-introspection pkg-config)) (propagated-inputs ;; rest-0.7.pc refers to all these. - (list glib libsoup-minimal-2 libxml2-next-for-grafting)) + (list glib libsoup-minimal-2 libxml2)) (home-page "https://www.gtk.org/") (synopsis "RESTful web api query library") (description @@ -5202,7 +5202,7 @@ as OpenStreetMap, OpenCycleMap, OpenAerialMap and Maps.") libpsl nghttp2 ;for pkg-config `(,nghttp2 "lib") - libxml2-next-for-grafting + libxml2 sqlite zlib)) (inputs @@ -6010,7 +6010,7 @@ service via the system message bus.") (list gtk+ gdk-pixbuf json-glib - libxml2-next-for-grafting + libxml2 libsoup geocode-glib)) (inputs @@ -6129,7 +6129,7 @@ settings, themes, mouse settings, and startup of other daemons.") (list intltool `(,glib "bin") gobject-introspection pkg-config)) (propagated-inputs - (list glib gmime libarchive libgcrypt libxml2-next-for-grafting)) + (list glib gmime libarchive libgcrypt libxml2)) (inputs (list libsoup)) (home-page "https://projects.gnome.org/totem") @@ -8114,7 +8114,7 @@ to display dialog boxes from the commandline and shell scripts.") libxext libxfixes libxkbcommon - libxml2-next-for-grafting + libxml2 libxrandr mesa pango @@ -8940,7 +8940,7 @@ the available networks and allows users to easily switch between them.") (base32 "0gp8irc5ny9i6bw9fp21p8djgksi1s8l5flbn5blisgfpcb2w820")))) (build-system gnu-build-system) (propagated-inputs - (list libxml2-next-for-grafting)) ;required by .pc file + (list libxml2)) ;required by .pc file (native-inputs (list autoconf automake @@ -13877,7 +13877,7 @@ developed with the aim of being used with the Librem 5 phone.") sqlite vala)) (propagated-inputs - (list libxml2-next-for-grafting)) ; required by libgda-5.0.pc + (list libxml2)) ; required by libgda-5.0.pc (home-page "https://gitlab.gnome.org/GNOME/libgda") (synopsis "Uniform data access") (description diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 2899b4bc699..e9bdb59964f 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -613,7 +613,7 @@ diagrams.") fribidi glib gtk - libxml2-next + libxml2 pango pcre2)) (home-page "https://wiki.gnome.org/Projects/GtkSourceView") diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm index 9f2f1afd454..520ceeb0d8f 100644 --- a/gnu/packages/image-processing.scm +++ b/gnu/packages/image-processing.scm @@ -815,7 +815,7 @@ the OpenCV-Python library.") libpng (librsvg-for-system) libtiff - libxml2-next + libxml2 libwebp matio openexr diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm index a0b3cd353ae..a23b980bdf6 100644 --- a/gnu/packages/libreoffice.scm +++ b/gnu/packages/libreoffice.scm @@ -286,7 +286,7 @@ into other word processors.") (native-inputs (list cppunit gperf pkg-config)) (propagated-inputs ; in Requires or Requires.private field of .pkg - (list icu4c liblangtag librevenge libxml2-next)) + (list icu4c liblangtag librevenge libxml2)) (inputs (list boost)) (arguments @@ -372,7 +372,7 @@ working with graphics in the WPG (WordPerfect Graphics) format.") (native-inputs (list autoconf automake libtool cppunit pkg-config)) (propagated-inputs ;in Requires field of .pkg - (list curl libxml2-next)) + (list curl libxml2)) (inputs (list boost cyrus-sasl openssl)) (arguments @@ -413,7 +413,7 @@ as Alfresco or Nuxeo.") (native-inputs (list doxygen gperf perl pkg-config)) (propagated-inputs ; in Requires or Requires.private field of .pkg - (list librevenge libxml2-next)) + (list librevenge libxml2)) (inputs (list boost)) (home-page "https://wiki.documentfoundation.org/DLP/Libraries/libabw") @@ -467,7 +467,7 @@ CorelDRAW documents of all versions.") (native-inputs (list cppunit doxygen gperf pkg-config)) (propagated-inputs ; in Requires or Requires.private field of .pkg - (list liblangtag librevenge libxml2-next zlib)) + (list liblangtag librevenge libxml2 zlib)) (inputs (list boost glm mdds)) (home-page "https://wiki.documentfoundation.org/DLP/Libraries/libetonyek") diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm index 286252b6ed0..64f92318362 100644 --- a/gnu/packages/mate.scm +++ b/gnu/packages/mate.scm @@ -303,7 +303,7 @@ desktop and the mate-about program.") (propagated-inputs ;; both of these are requires.private in mateweather.pc (list libsoup-minimal-2 - libxml2-next)) + libxml2)) (home-page "https://mate-desktop.org/") (synopsis "MATE library for weather information from the Internet") (description diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 26ea6d55fe7..65de945b71d 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -300,7 +300,7 @@ XMPP-based sessions.") gtk-doc/stable pkg-config)) (inputs (list libxcrypt ncurses)) - (propagated-inputs (list glib libxml2-next)) + (propagated-inputs (list glib libxml2)) (synopsis "GLib Ncurses Toolkit") (description "GNT is an ncurses toolkit for creating text-mode graphical user interfaces in a fast and easy way. It is based on GLib and ncurses.") diff --git a/gnu/packages/patches/python-libxml2-utf8.patch b/gnu/packages/patches/python-libxml2-utf8.patch index e39672faa1b..9c4ca4fdb29 100644 --- a/gnu/packages/patches/python-libxml2-utf8.patch +++ b/gnu/packages/patches/python-libxml2-utf8.patch @@ -6,18 +6,18 @@ that 'itstool' stumbles upon when processing UTF-8 data: Patch by Jan Matejek from . ---- libxml2-2.9.5.orig/python/libxml.c -+++ libxml2-2.9.5/python/libxml.c -@@ -1620,6 +1620,7 @@ libxml_xmlErrorFuncHandler(ATTRIBUTE_UNU +--- a/python/libxml.c ++++ b/python/libxml.c +@@ -1499,6 +1499,7 @@ libxml_xmlErrorFuncHandler(ATTRIBUTE_UNUSED void *ctx, const char *msg, PyObject *message; PyObject *result; char str[1000]; + unsigned char *ptr = (unsigned char *)str; - #ifdef DEBUG_ERROR - printf("libxml_xmlErrorFuncHandler(%p, %s, ...) called\n", ctx, msg); -@@ -1636,12 +1637,20 @@ libxml_xmlErrorFuncHandler(ATTRIBUTE_UNU - str[999] = 0; + if (libxml_xmlPythonErrorFuncHandler == NULL) { + va_start(ap, msg); +@@ -1510,12 +1511,20 @@ libxml_xmlErrorFuncHandler(ATTRIBUTE_UNUSED void *ctx, const char *msg, + str[999] = 0; va_end(ap); +#if PY_MAJOR_VERSION >= 3 @@ -32,7 +32,7 @@ from . - message = libxml_charPtrConstWrap(str); + message = libxml_charPtrConstWrap(ptr); PyTuple_SetItem(list, 1, message); - result = PyEval_CallObject(libxml_xmlPythonErrorFuncHandler, list); + result = PyObject_CallObject(libxml_xmlPythonErrorFuncHandler, list); + /* Forget any errors caused in the error handler. */ + PyErr_Clear(); Py_XDECREF(list); diff --git a/gnu/packages/rdesktop.scm b/gnu/packages/rdesktop.scm index d341c59e629..bfb0bb82b55 100644 --- a/gnu/packages/rdesktop.scm +++ b/gnu/packages/rdesktop.scm @@ -252,8 +252,7 @@ of parts of the Windows API.") linux-pam openssl pixman - python - python-libxml2)) + python)) (native-inputs (append (list bison diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index a06082d9503..2f19b50d78c 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -1775,7 +1775,7 @@ to integrate other virtualization mechanisms if needed.") `(,glib "bin") vala)) (propagated-inputs ;; ‘Required:’ by the installed .pc files. - (list glib libvirt libxml2-next gobject-introspection)) + (list glib libvirt libxml2 gobject-introspection)) (home-page "https://libvirt.org") (synopsis "GLib wrapper around libvirt") (description "libvirt-glib wraps the libvirt library to provide a @@ -1901,8 +1901,8 @@ virtualization library.") libosinfo libvirt libvirt-glib + libxml2 python-minimal - python-libxml2 python-libvirt python-pycairo python-pygobject diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index f961feab3de..6d07462f4d3 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -771,7 +771,7 @@ the user specifically asks to proxy, so the @dfn{VPN} interface no longer "etc/vpnc/vpnc-script"))))) (native-inputs (list gettext-minimal pkg-config)) (inputs (list lz4 vpnc-scripts)) - (propagated-inputs (list libxml2-next gnutls zlib)) + (propagated-inputs (list libxml2 gnutls zlib)) (synopsis "Client for Cisco VPN") (description "OpenConnect is a client for Cisco's AnyConnect SSL VPN, which is diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index b7482bfbe97..20cb0e0bc85 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -37,6 +37,7 @@ ;;; Copyright © 2024 Nicolas Graves ;;; Copyright © 2024 gemmaro ;;; Copyright © 2025 Antoine Côté +;;; Copyright © 2025 John Kehayias ;;; ;;; This file is part of GNU Guix. ;;; @@ -192,15 +193,16 @@ hierarchical form with variable field lengths.") (define-public libxml2 (package (name "libxml2") - (version "2.9.14") + (version "2.14.6") (source (origin - (method url-fetch) - (uri (string-append "mirror://gnome/sources/libxml2/" - (version-major+minor version)"/libxml2-" - version ".tar.xz")) - (sha256 - (base32 - "1vnzk33wfms348lgz9pvkq9li7jm44pvm73lbr3w1khwgljlmmv0")))) + (method url-fetch) + (uri (string-append "mirror://gnome/sources/libxml2/" + (version-major+minor version)"/libxml2-" + version ".tar.xz")) + (sha256 + (base32 + "0fi0jysncjpvhvp29qcx3bydndapwphgkx7ial5kzf7ymyh5ir3w")) + (patches (search-patches "python-libxml2-utf8.patch")))) (build-system gnu-build-system) (outputs '("out" "static" "doc")) (arguments @@ -218,6 +220,13 @@ hierarchical form with variable field lengths.") (string-append "/bin/" file)) ".")) '("config.guess" "config.sub"))))) #~()) + (add-before 'configure 'configure-python + (lambda _ + (substitute* "python/setup.py.in" + ;; The build system ignores C_INCLUDE_PATH & co, so + ;; provide the absolute directory name. + (("/opt/include") + (string-append #$output "/include/libxml2"))))) (add-after 'install 'use-other-outputs (lambda _ (let ((doc (string-append #$output:doc "/share/")) @@ -245,7 +254,7 @@ hierarchical form with variable field lengths.") (native-inputs (append (if (target-loongarch64?) (list config) '()) - (list perl))) + (list perl pkg-config python-minimal))) (native-search-paths (list $SGML_CATALOG_FILES $XML_CATALOG_FILES)) (search-paths native-search-paths) @@ -254,58 +263,6 @@ hierarchical form with variable field lengths.") project (but it is usable outside of the Gnome platform).") (license license:x11))) -(define-public libxml2-next - (package - (inherit libxml2) - (name "libxml2") - (version "2.14.5") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnome/sources/libxml2/" - (version-major+minor version)"/libxml2-" - version ".tar.xz")) - (sha256 - (base32 - "0jylv2kkyzih710blg24al7b43iaqg6xsfn52qy865knagrhdl03")))) - (native-inputs (modify-inputs (package-native-inputs libxml2) - (append pkg-config - python-minimal))))) - -(define-public libxml2-next/fixed - (package - (inherit libxml2) - (properties '((hidden? . #t))) - (name "libxml2") - (version "2.14.5") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnome/sources/libxml2/" - (version-major+minor version)"/libxml2-" - version ".tar.xz")) - (sha256 - (base32 - "0jylv2kkyzih710blg24al7b43iaqg6xsfn52qy865knagrhdl03")))) - (arguments - (substitute-keyword-arguments (package-arguments libxml2-next) - ((#:phases phases #~%standard-phases) - #~(modify-phases #$phases - (add-after 'install 'symlink-hardcoded-lib-for-grafts - (lambda _ - (let ((lib (string-append #$output "/lib/libxml2.so"))) - ;; XXX: When grafting, we need to reproduce the file paths to - ;; the libraries too. - (symlink (string-append lib ".16") - (string-append lib ".2"))))))))) - (native-inputs (modify-inputs (package-native-inputs libxml2) - (append pkg-config - python-minimal))))) - -(define-public libxml2-next-for-grafting - (package - (inherit libxml2) - (replacement libxml2-next/fixed) - (properties '((hidden? . #t))))) - (define-public libxml2-xpath0 (package/inherit libxml2 (name "libxml2-xpath0") @@ -320,34 +277,7 @@ provides an @code{--xpath0} option to @command{xmllint} that enables it to output XPath results with a null delimiter."))) (define-public python-libxml2 - (package/inherit libxml2 - (name "python-libxml2") - (source (origin - (inherit (package-source libxml2)) - (patches - (append (search-patches "python-libxml2-utf8.patch") - (origin-patches (package-source libxml2)))))) - (build-system pyproject-build-system) - (outputs '("out")) - (arguments - (list - ;; XXX: Tests are specified in 'Makefile.am', but not in 'setup.py'. - #:tests? #f - #:phases - #~(modify-phases %standard-phases - (add-before 'build 'configure - (lambda* (#:key inputs #:allow-other-keys) - (chdir "python") - (let ((libxml2-headers (search-input-directory - inputs "include/libxml2"))) - (substitute* "setup.py" - ;; The build system ignores C_INCLUDE_PATH & co, so - ;; provide the absolute directory name. - (("/opt/include") - (dirname libxml2-headers))))))))) - (native-inputs (list python-setuptools)) - (inputs (list libxml2)) - (synopsis "Python bindings for the libxml2 library"))) + (deprecated-package "python-libxml2" libxml2)) (define-public libxlsxwriter (package @@ -1256,7 +1186,7 @@ XSL-T processor. It also performs any necessary post-processing.") "1shk40mpaqaf05skgyxa7qxgcarjd6i1fadn2sk0b8lakfv96bnq")))) (build-system gnu-build-system) (propagated-inputs ; according to xmlsec1.pc - (list libxml2-next libxslt)) + (list libxml2 libxslt)) (inputs (list gnutls libgcrypt libltdl)) (native-inputs