Opened 23 months ago
Closed 4 months ago
#27921 closed enhancement (fixed)
Script package for checking presence of system libxml2 (polymake and igraph prerequisite)
Reported by:  mkoeppe  Owned by:  

Priority:  major  Milestone:  sage9.3 
Component:  packages: optional  Keywords:  
Cc:  dimpase, dcoudert  Merged in:  
Authors:  Matthias Koeppe  Reviewers:  Dima Pasechnik, David Coudert 
Report Upstream:  N/A  Work issues:  
Branch:  256ddfc (Commits, GitHub, GitLab)  Commit:  256ddfc662322cdf730bc505e9b199741050f3d7 
Dependencies:  Stopgaps: 
Description (last modified by )
Apparently some Linux systems don't come with libxml2 installed, which is a polymake prerequisite.
mkoeppe.sphere$ make polymake ... [polymake3.4] checking libxml2 installation ... Could not find configuration program xml2config for library libxml2. [polymake3.4] Probably you need to install development package for it; [polymake3.4] usually it is called libxml2devel or similarly. [polymake3.4] If the library is installed at a nonstandard location, [polymake3.4] please specify it in option withlibxml2
We add spkgconfigure
and system package information
Change History (24)
comment:1 Changed 23 months ago by
 Description modified (diff)
comment:2 Changed 23 months ago by
comment:3 followup: ↓ 5 Changed 23 months ago by
I appreciate your efforts with spkgconfigure.m4; but I don't support adding more prerequisites to Sage. Sagethedistribution works well for installing lots of math software on poorly maintained university computers. My goal in this ticket is to bring the polymake package to the same standard  make it as easy to install as other sage packages.
comment:4 Changed 23 months ago by
 Branch set to u/mkoeppe/package_libxml2__polymake_prerequisite_
comment:5 in reply to: ↑ 3 Changed 23 months ago by
 Commit set to dfc25f32f3b440f569af6ba0de8eb6e7d4772ff9
comment:6 Changed 23 months ago by
 Status changed from new to needs_review
comment:7 Changed 23 months ago by
 Status changed from needs_review to needs_work
comment:8 Changed 23 months ago by
 Commit changed from dfc25f32f3b440f569af6ba0de8eb6e7d4772ff9 to 3d4e80709134779115c9608432990cb13a7c689c
Branch pushed to git repo; I updated commit sha1. New commits:
3d4e807  fix typo

comment:9 Changed 23 months ago by
a library should only be vendored if on a system supported by Sage it is either not available, or broken. Otherwise it is a bloat that is killing the project, rather than improving it.
there are already other optional packages, e.g. igraph, in Sage that require libxml2.
comment:10 Changed 23 months ago by
 Commit changed from 3d4e80709134779115c9608432990cb13a7c689c to e5f95ad607f633c2959b12ecb788f98695dc475a
Branch pushed to git repo; I updated commit sha1. New commits:
e5f95ad  Add libxml2 as dependency of igraph

comment:11 Changed 23 months ago by
 Status changed from needs_work to needs_review
 Summary changed from Package libxml2 (polymake prerequisite) to Package libxml2 (polymake and igraph prerequisite)
comment:12 Changed 23 months ago by
there is also R package xml2, which uses libxml2, and which some people install  and which this ticket potentially breaks.
this is yet another reason why I don't like vendoring standard libraries  because you end up spending all your time chasing up stuff like this, and it ends up like iconv package, which is still there, but we don't install it on anything but (maybe) cygwin, or (broken platform) solaris.
comment:13 Changed 23 months ago by
 Milestone changed from sage8.8 to sagewishlist
 Status changed from needs_review to needs_info
Lots of good points. Turns out on the system where I was trying to compile polymake, also perldevel
and Term::ReadKey
are missing.
So I'm setting this ticket to 'wishlist' status for now.
comment:14 Changed 4 months ago by
 Description modified (diff)
 Milestone changed from sagewishlist to sage9.3
 Status changed from needs_info to needs_work
 Summary changed from Package libxml2 (polymake and igraph prerequisite) to Script package for checking presence of system libxml2 (polymake and igraph prerequisite)
comment:15 Changed 4 months ago by
 Commit changed from e5f95ad607f633c2959b12ecb788f98695dc475a to ef9da1dc802eedba0164ef63782994782d3d62fc
comment:16 Changed 4 months ago by
 Commit changed from ef9da1dc802eedba0164ef63782994782d3d62fc to ead2598744ed2c8990f9c6778db630c3fb178a59
Branch pushed to git repo; I updated commit sha1. New commits:
ead2598  build/pkgs/libxml2: Make it a script package

comment:17 Changed 4 months ago by
 Commit changed from ead2598744ed2c8990f9c6778db630c3fb178a59 to 05ad4972456156c286c8ae2edfb514f836491f71
comment:18 Changed 4 months ago by
 Commit changed from 05ad4972456156c286c8ae2edfb514f836491f71 to 22904ffaae73158c0931e5df04a2c49c49add13c
Branch pushed to git repo; I updated commit sha1. New commits:
22904ff  build/pkgs/libxml2: Add distros/

comment:19 Changed 4 months ago by
 Cc dcoudert added
 Status changed from needs_work to needs_review
comment:20 Changed 4 months ago by
 Commit changed from 22904ffaae73158c0931e5df04a2c49c49add13c to 256ddfc662322cdf730bc505e9b199741050f3d7
Branch pushed to git repo; I updated commit sha1. New commits:
256ddfc  build/pkgs/igraph/spkginstall.in: Remove test for libxml here

comment:21 Changed 4 months ago by
I installed libxml2 with homebrew and tried this ticket (.bootstrap, source .hombrewbuildenv, ./configure, make build) on macOS 10.15.7. Compilation went well, libxml2 was detected and used.
I don't know what else I can do to test this ticket.
comment:22 Changed 4 months ago by
 Reviewers set to Dima Pasechnik, David Coudert
 Status changed from needs_review to positive_review
lgtm
comment:23 Changed 4 months ago by
Thanks to both of you for the review!
comment:24 Changed 4 months ago by
 Branch changed from u/mkoeppe/package_libxml2__polymake_prerequisite_ to 256ddfc662322cdf730bc505e9b199741050f3d7
 Resolution set to fixed
 Status changed from positive_review to closed
I would rather add this to general Sage prereqs. And a test for it in the main configure.ac. Let us try to stop vendoring everything that comes across...