Bug 262288 - textproc/libxml2: Update to 2.9.13 & textproc/libxslt: Update to 1.1.35 (exp-run)
Summary: textproc/libxml2: Update to 2.9.13 & textproc/libxslt: Update to 1.1.35 (exp-...
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Port Management Team
URL:
Keywords:
Depends on: 262409
Blocks:
  Show dependency treegraph
 
Reported: 2022-03-02 05:56 UTC by Daniel Engberg
Modified: 2022-03-25 17:17 UTC (History)
2 users (show)

See Also:
diizzy: exp-run?


Attachments
exp-run patch (84.89 KB, patch)
2022-03-02 05:56 UTC, Daniel Engberg
no flags Details | Diff
diff between outputs of old and new libxml2+libxslt ports, respectively, without doc/ (86.15 KB, patch)
2022-03-08 20:56 UTC, Matthias Andree
no flags Details | Diff
exp-run patch v2 (86.85 KB, patch)
2022-03-12 15:38 UTC, Daniel Engberg
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Daniel Engberg freebsd_committer freebsd_triage 2022-03-02 05:56:31 UTC
Created attachment 232198 [details]
exp-run patch

Hi

The attached patch combines https://reviews.freebsd.org/D34338 and https://reviews.freebsd.org/D34384 and I'd like to request exp-run (discussed with tcberner)

Thanks in advance!
Comment 2 Matthias Andree freebsd_committer freebsd_triage 2022-03-07 19:13:48 UTC
@Daniel, you need to continue shipping libxml.m4 and libxslt.m4 from the respective ports. These are include files for some autotools (just like .h are include files for C users of your library). 

In particular, installing libxml.m4 fixes the dvdauthor build (which still has issues around not listing libicu dependencies properly).

Other ports might be jammed by libxslt.m4 missing.
Comment 3 Tobias C. Berner freebsd_committer freebsd_triage 2022-03-07 19:29:16 UTC
(In reply to Matthias Andree from comment #2)
dvdauthor can likely be fixed by taking https://github.com/ldo/dvdauthor/commit/45705ece5ec5d7d6b9ab3e7a68194796a398e855
Comment 4 commit-hook freebsd_committer freebsd_triage 2022-03-08 13:34:41 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=b521617606a43e62d9003db36d35f2afc5ab1085

commit b521617606a43e62d9003db36d35f2afc5ab1085
Author:     Daniel Engberg <diizzy@FreeBSD.org>
AuthorDate: 2022-03-08 13:29:45 +0000
Commit:     Daniel Engberg <diizzy@FreeBSD.org>
CommitDate: 2022-03-08 13:33:33 +0000

    multimedia/dvdauthor: Update to latest upstream commit as of 20220308

    This makes dvdauthor use pkg-config to detect libxml2

    PR:             262288
    Differential Revision:  https://reviews.freebsd.org/D34338

 multimedia/dvdauthor/Makefile | 5 ++---
 multimedia/dvdauthor/distinfo | 6 +++---
 2 files changed, 5 insertions(+), 6 deletions(-)
Comment 5 Daniel Engberg freebsd_committer freebsd_triage 2022-03-08 13:38:43 UTC
audio/icecast-kh (mark broken and deprecate?) and devel/tclxml still needs fixing
Comment 6 Matthias Andree freebsd_committer freebsd_triage 2022-03-08 14:40:10 UTC
TL;DR: see last paragraph of this comment.

(In reply to Tobias C. Berner from comment #3)
I see that the dvdauthor upstream has fixed that detection, so for dvdauthor we are set now. That out of the way, 

PLEASE STOP - WE ARE GOING IN THE WRONG DIRECTION.

The switch to cmake, as a coincidencidental regression, stops installing the libxml2.m4 or libxslt.m4 files. 

However these .m4 files need to be installed verbatim alongside the C headers and other bindings all the time because they are not part of the package's build tool or build configuration, but they are part of the output file set. They are part of libxslt's or libxml2's SDK if you wish to word it that way, or the respective -devel packages on Linux distros.

As seen, lots of users depend on them and libxml2 changing its build tool has no command over what the libxml2/libxslt downstream dependencies are doing, and harms future porting of new ports that would use libxml2 or libxslt. We have no command over fourth party packages and should not encumber ourselves with such NEEDLESS changes.

I understand that some people steer clear of autotools because they don't understand autotools or the resulting packages configure and build somewhat slower than needed, but really the proper fix is to fix the packaging regression and install the libxml2.m4 or libxslt.m4 file, respectively.

The -exp run has flagged a fault in the libxml2/libxslt packaging, not a fault in the packages using libxml2/libxslt. 
The fix is at most a three-line fix per requisite (worst case is post-install: ${INSTALL_DATA} + one line in pkg-plist)?


TL;DR: Please reinstate the libxml.m4 and libxslt.m4 ports into the respective packages, revert the autotools-breakage related changes to dependee ports that use libxml2 or libxslt, and re-do the exp run with libxml.m4 and libxslt.m4 installed.

Thanks.
Comment 7 Matthias Andree freebsd_committer freebsd_triage 2022-03-08 14:41:39 UTC
(In reply to Matthias Andree from comment #6)
change ports -> files here:

TL;DR: Please reinstate the libxml.m4 and libxslt.m4 (ports) FILES into the respective packages, revert the autotools-breakage related changes to dependee ports that use libxml2 or libxslt, and re-do the exp run with libxml.m4 and libxslt.m4 installed.
Comment 8 Daniel Engberg freebsd_committer freebsd_triage 2022-03-08 15:12:36 UTC
To be fair, Linux distros are also moving away from the issues we're fixing which is mainly using pkgconfig instead of scripts relying on libxml2-config and/or libxslt-config and doing odd assumptions (which is what's causing breakage in the first place) and this is only a handful of ports which many aren't even packaging anymore or at all.
Comment 9 Matthias Andree freebsd_committer freebsd_triage 2022-03-08 19:36:49 UTC
To add a strong vote, and with a note that I pity sunk cost, I
STRONGLY OBJECT to switching libxml2 to a build system that is "mainly for Windows" while Autotools are intended for POSIX systems such as the BSDs. 

Source: https://gitlab.gnome.org/GNOME/libxml2/-/blob/a075d256fd9ff15590b86d981b75a50ead124fca/README.md#build-instructions

Please either fix the cmake build such that it provides the same features including libxml.m4 that the Autotools build would render, and stop shoving pkg-config down other ports. pkg-config fails miserably in some BSD configurations, not the least of which is our lack of an openssl.pc in the base system. It is also very hard to reliably choose LOCALBASE for pkg-config IME.
Comment 10 Matthias Andree freebsd_committer freebsd_triage 2022-03-08 20:02:46 UTC
Meeting minutes, ad-hoc discussion on IRC #bsdports with diizzy, tcberner, vishwin, myself, around 2022-03-08T20:00Z and concluded that the libxml.m4 and libxslt.m4 files are going to be re-added to the ports/packages.
Comment 11 Matthias Andree freebsd_committer freebsd_triage 2022-03-08 20:56:49 UTC
Created attachment 232326 [details]
diff between outputs of old and new libxml2+libxslt ports, respectively, without doc/

Please carefully review the libxslt configuration changes, they seem to be breaking those ports using either pkg-config to look for libxslt paths, and ports using xslt-config (for instance audio/icecast-kh).

After you've fixed libxslt, you can probably kill a lot of pkg-config related patches to dependees.
Comment 12 Matthias Andree freebsd_committer freebsd_triage 2022-03-08 21:03:53 UTC
I am not sure if we should add the version into the path of 
lib/cmake/libxml2/libxml2-config.cmake and move it to 
lib/cmake/libxml2-2.9.13/libxml2-config-version.cmake either. 

This looks fishy since a port that wants to include some libxml2-config from its cmake files (CMakeLists.txt for instance), may not find it easily.
Comment 13 Daniel Engberg freebsd_committer freebsd_triage 2022-03-12 15:38:48 UTC
Created attachment 232403 [details]
exp-run patch v2

Please re-run using this patch, it should fix all issues found
Comment 15 commit-hook freebsd_committer freebsd_triage 2022-03-19 19:50:08 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=3f8a4349680cd01439ce8846f8addc55723ff7de

commit 3f8a4349680cd01439ce8846f8addc55723ff7de
Author:     Matthias Andree <mandree@FreeBSD.org>
AuthorDate: 2022-03-19 19:20:14 +0000
Commit:     Daniel Engberg <diizzy@FreeBSD.org>
CommitDate: 2022-03-19 19:49:06 +0000

    devel/tclxml: Prepare for libxml2 update

    The build passes CC arguments to LD.
    Convert to using CC for linking.

    Add missing library dependencies that get picked up automatically,
    to ensure a consistent build as a port (outside poudriere).

    Sort Makefile to canonical portlint/portclippy ordering.

    * This patch was submitted privately and I'd like to thank Matthias
      for guidance and fixing remaining issues *

    PR:             262288
    Reported by:    antoine (via exp-run)
    Approved by:    portmgr (blanket)

 devel/tclxml/Makefile                    | 19 +++++++++++--------
 devel/tclxml/files/patch-configure (new) | 20 ++++++++++++++++++++
 2 files changed, 31 insertions(+), 8 deletions(-)
Comment 16 Daniel Engberg freebsd_committer freebsd_triage 2022-03-24 06:48:30 UTC
All fallouts have been fixed, is it good to go?
Comment 17 Antoine Brodin freebsd_committer freebsd_triage 2022-03-24 09:36:53 UTC
(In reply to Daniel Engberg from comment #16)
If you tested tclxml then this is fine.
Comment 18 Matthias Andree freebsd_committer freebsd_triage 2022-03-24 10:08:15 UTC
Daniel, do we have an idea of how many of the "prepare-for-libx*" patches are now unnecessary because the .m4 has been added and the pkg-config red herring is no longer required?

Let us try to avoid all the fourth-party patching.
Comment 19 Matthias Andree freebsd_committer freebsd_triage 2022-03-24 10:10:35 UTC
(In reply to commit-hook from comment #15)
Note that the nature of the fix to tclxml suggests that the fix is required independently. Most ports that might somehow acquire a "-pthread" option (FreeBSD specific) do not support linking with LD but require the CC driver instead. tclxml was one such port (I did not check whether the original tclxml required the fix, but if so, consider it a robustness change for other potential LDFLAGS issues).
Comment 20 Daniel Engberg freebsd_committer freebsd_triage 2022-03-24 17:51:02 UTC
(In reply to Matthias Andree from comment #18)
No additional ports were patched with additional patches, all fixes (2) were either version bump or adjustment of port Makefile
Comment 21 commit-hook freebsd_committer freebsd_triage 2022-03-25 17:15:08 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=a13ec21cd733f67a9fc0dc00ab45268bdc236246

commit a13ec21cd733f67a9fc0dc00ab45268bdc236246
Author:     Daniel Engberg <diizzy@FreeBSD.org>
AuthorDate: 2022-03-25 16:51:30 +0000
Commit:     Daniel Engberg <diizzy@FreeBSD.org>
CommitDate: 2022-03-25 17:14:39 +0000

    textproc/libxml2: Update to 2.9.13 and migrate to CMake

    Depend on ICU and (lib)readline to follow other distros

    Changelog: https://gitlab.gnome.org/GNOME/libxml2/-/tags/v2.9.13

    I'd like to thank both tcberner and mandree for reviewing,
    suggesting improvements and helping out in general. I'd also like
    thank antoine for doing exp-runs.

    PR:             262288
    Reviewed by:    tcberner, mandree
    Approved by:    desktop (tcberner)
    Differential Revision:  https://reviews.freebsd.org/D34338
    Exp-run by:     antoine

 textproc/libxml2/Makefile                          |  83 +++---
 textproc/libxml2/distinfo                          |   6 +-
 textproc/libxml2/files/LICENSE.TRIO (gone)         |  12 -
 textproc/libxml2/files/extra-patch-docs (new)      |  11 +
 textproc/libxml2/files/patch-CMakeLists.txt (new)  |  29 ++
 textproc/libxml2/files/patch-Makefile.in (gone)    |  47 ----
 textproc/libxml2/files/patch-config.h.in (gone)    |  11 -
 textproc/libxml2/files/patch-configure (gone)      |  11 -
 ...85b1792e37b131e7a51af98a37f92472e8de5f3f (gone) | 211 ---------------
 ...-b66ce0bba83febe2f4d119097a0391f5d886c3b4 (new) |  86 ++++++
 ...13ad8736d294536da4cbcd70a96b0a2fbf47070c (gone) |  46 ----
 ...3e1aad4fe584747fd7d17cc7b2863a78e2d21a77 (gone) |  31 ---
 ...92d9ab4c28842a09ca2b76d3ff2f933e01b6cd6f (gone) |  43 ---
 .../patch-libxml-2.0-uninstalled.pc.in (gone)      |   9 -
 textproc/libxml2/files/patch-libxml-2.0.pc.in      |  10 +-
 .../libxml2/files/patch-python_Makefile.in (gone)  |  20 --
 .../files/patch-python_tests_Makefile.in (gone)    |  11 -
 textproc/libxml2/files/patch-xml2Conf.sh.in (gone) |  15 --
 textproc/libxml2/pkg-plist                         | 296 ++++++++++++++++++++-
 textproc/py-libxml2/Makefile                       |  42 +--
 20 files changed, 482 insertions(+), 548 deletions(-)
Comment 22 commit-hook freebsd_committer freebsd_triage 2022-03-25 17:16:09 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=8c8cb32a53d3fd85f39dcb75c331d63a8d4219b8

commit 8c8cb32a53d3fd85f39dcb75c331d63a8d4219b8
Author:     Daniel Engberg <diizzy@FreeBSD.org>
AuthorDate: 2022-03-25 17:09:55 +0000
Commit:     Daniel Engberg <diizzy@FreeBSD.org>
CommitDate: 2022-03-25 17:14:39 +0000

    textproc/libxslt: Update to 1.1.35 and migrate to CMake

    Changelog: https://gitlab.gnome.org/GNOME/libxslt/-/releases#v1.1.35

    I'd like to thank both tcberner and mandree for reviewing,
    suggesting improvements and helping out in general. I'd also like
    thank antoine for doing exp-runs.

    PR:             262288
    Reviewed by:    tcberner, mandree
    Approved by:    desktop (tcberner)
    Differential Revision:  https://reviews.freebsd.org/D34384
    Exp-run by:     antoine

 textproc/libxslt/Makefile                          |  43 +-
 textproc/libxslt/distinfo                          |   6 +-
 textproc/libxslt/files/extra-patch-docs (new)      |  11 +
 textproc/libxslt/files/patch-CMakeLists.txt (new)  |  20 +
 ...9ae2f94df1721e002941b40665efb762aefcea1a (gone) |  37 -
 ...824657768aea2cce9c23e72ba8085cb5e44350c7 (gone) |  42 -
 ...77c26bad0433541f486b1e7ced44ca9979376908 (gone) |  70 --
 textproc/libxslt/files/patch-man-xsltproc (gone)   | 921 ---------------------
 .../libxslt/files/patch-python__Makefile.in (gone) |  22 -
 .../files/patch-python__tests__Makefile.in (gone)  |  11 -
 textproc/libxslt/pkg-descr                         |   2 +-
 textproc/libxslt/pkg-plist                         | 182 +++-
 12 files changed, 234 insertions(+), 1133 deletions(-)