!aRKdLCkUeIFjRPZuJT:nixos.org

NixOS JVM

133 Members
28 Servers

Load older messages


SenderMessageTime
14 May 2026
@msgilligan:matrix.orgmsgilligan And once the above fix is merged, https://github.com/NixOS/nixpkgs/pull/519958 can be merged to remove jextract-21 which is obsolete and unmaintained. (cc: emily ) 00:23:40
@drupol:matrix.orgPol changed their display name from Pol to Pol (out, touching grass).07:38:38
@drupol:matrix.orgPol changed their display name from Pol (out, touching grass) to Pol.16:32:49
21 May 2026
@msgilligan:matrix.orgmsgilligan

In this comment on a PR to update maven, Benedikt Ritter (britter) says:

a ton of seemingly unrelated packages are being rebuilt, because igraph (a C library for analysis of networks) depends on Apache FOP (an XML formatter) which is built with maven. igraph only requires FOP for building it's documentation but this dependency still has rippling effects, e.g. the python packages now have a transitive dependency to maven because of that.

I've been doing some investigation and think I have a fix.

18:22:58
@msgilligan:matrix.orgmsgilligan

It turns out that igraph is simply copying its DocBook source to it's doc output and is not running either the html or pdf CMake targets that render the documentation. So I want to make a PR to do the following:

  1. Actually enable the rendering of the HTML documentation.
  2. Remove the dependency on FOP.

This should stop a lot of rebuilds (especially in Python packages) based on fop <- maven <- jdk.

18:26:19
@msgilligan:matrix.orgmsgilliganFor Nixpkgs, would it be best to make this one or two PRs?18:27:23
@msgilligan:matrix.orgmsgilligan Or one PR with two commits: one to remove FOP and the other to add the html target and some missing dependencies it actually needs? 18:29:43
@britter:yatrix.orgBenedikt Ritter (britter)I think this is a change to igraphs doc build with a nice side effect. So could be one PR.19:13:22
@britter:yatrix.orgBenedikt Ritter (britter)Thanks a lot for looking into this!19:13:29
@britter:yatrix.orgBenedikt Ritter (britter) We should review other downstream builds that look suspicious and try to remove ourselfs as much as possible, esp from "foundational" packages like igraph. 19:14:28
@msgilligan:matrix.orgmsgilliganHere it is: https://github.com/NixOS/nixpkgs/pull/52276219:14:44
@msgilligan:matrix.orgmsgilligan

It is two commits, and I have verified that the first one (removing fop) works independently, so it could be made into a separate PR if there is some objection to how the HTML docs are being generated, etc.

The removal of fop should make the pending Maven update less breaking and might be worth expediting.

19:21:55
22 May 2026
@chayleaf:matrix.pavluk.orgchayleaf changed their profile picture.08:42:54
@jonhermansen:matrix.orgJon Hermansen changed their display name from jonhermansen to Jon Hermansen.19:18:42
@msgilligan:matrix.orgmsgilligan The igraph PR has been merged. Can someone rebase maven: 3.9.12 -> 3.9.16? 19:58:58
@msgilligan:matrix.orgmsgilligan

The igraph update should reduce the number of package-build failures from 109 to about 40. And most (possibly even all) of the remaining failures are due to packages not having Stable Maven plugins as described in the Nixpkgs Manual:

Maven defines default versions for its core plugins, e.g. maven-compiler-plugin. If your project does not override these versions, an upgrade of Maven will change the version of the used plugins, and therefore the derivation and hash.

When maven is upgraded, mvnHash for the derivation must be updated as well: otherwise, the project will be built on the derivation of old plugins, and fail because the requested plugins are missing.

20:04:39
@msgilligan:matrix.orgmsgilligan

So to get an up-to-date Maven without breaking ~40 dependencies, for each dependency we need to either:

  • Add a pom.xml patch, like this merged fix for fop: https://github.com/NixOS/nixpkgs/pull/522916
  • Update the mavnHash, like in this unmerged commit for kotlin-interactive-shell: https://github.com/NixOS/nixpkgs/pull/522831/commits/7b6b4f8df72ba56b644e32c7719437e2ec6328e1
21:20:09
@msgilligan:matrix.orgmsgilligan *

So to get an up-to-date Maven without breaking ~40 dependencies, for each dependency we need to either:

  • Add a pom.xml patch, like this merged fix for fop: https://github.com/NixOS/nixpkgs/pull/522916
  • Update the mvnHash in the package.nix, like in this unmerged commit for kotlin-interactive-shell: https://github.com/NixOS/nixpkgs/pull/522831/commits/7b6b4f8df72ba56b644e32c7719437e2ec6328e1
21:21:09
@msgilligan:matrix.orgmsgilligan The advantage to the pom.xml approach is that it can be done independently (i.e. before) the Maven upgrade and won't break upon future Maven upgrades. 21:23:17
@msgilligan:matrix.orgmsgilligan The mvnHash update must occur in the same commit as the Maven update because there is effectively a circular dependency. 21:24:09
23 May 2026
@britter:yatrix.orgBenedikt Ritter (britter)Maybe we can convince some of the upstream maintainers to fix plugin versions, so we don't have to.14:42:37
@msgilligan:matrix.orgmsgilliganhttps://issues.apache.org/jira/browse/FOP-331814:43:36
@britter:yatrix.orgBenedikt Ritter (britter)You're everywhere 😏14:44:22
@msgilligan:matrix.orgmsgilligan"The turtles in the rabbit hole go all the way down" or something like that.14:44:50
@msgilligan:matrix.orgmsgilliganSince I made the PR to fix FOP, I figure I should at least open an issue upstream with a link to it.14:46:51
@britter:yatrix.orgBenedikt Ritter (britter)I think this can be helpful to identify more packages like igraph: https://github.com/craigmbooth/nix-visualize We should try to use it on Java packages and look for nodes that produce lots of downstream dependencies. So basically nodes that depend on something like Maven and then are depended upon by many others.14:47:34
@britter:yatrix.orgBenedikt Ritter (britter)Submitting the patch as a PR seems the logical next step.14:48:06
@msgilligan:matrix.orgmsgilliganYeah. I asked the Nixpkgs maintainer of FOP to open an issue and a PR (after he said it was a good idea) and he said he was too busy.14:48:52
@msgilligan:matrix.orgmsgilliganI'be been thinking if there is a way to automate this.14:49:21
@msgilligan:matrix.orgmsgilligan The rough idea I have is that there should be a way to compose Maven repository entries for packages. I think the mechanism behind mvnHash might be doing something like this. Perhaps the maven package itself could have an output that is a mini-Maven-repo with its default plugin dependencies in it. Then a package like fop could access that through a symlink. 14:53:02

Show newer messages


Back to Room ListRoom Version: 6