Unverified Commit a81011bc authored by Olli Helenius's avatar Olli Helenius
Browse files

gradle: add udev to the JNA library path

Running `gradle build --scan` results in this warning:

    Did not find udev library in operating system.
    Some features may not work.

The udev library is looked up using JNA, which searches
`jna.library.path` in addition to the standard locations. Adding
`udev` to the lookup path in the wrapper ensures that Gradle can find
the library.

Fixes: #358166.
parent 96ae4461
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ rec {
    , unzip
    , ncurses5
    , ncurses6
    , udev
    , testers
    , runCommand
    , writeText
@@ -91,6 +92,7 @@ rec {
          };
          varDefs = concatStringsSep "\n" (map (x: "  --set ${x} \\")
            ([ "JAVA_HOME ${java}" ] ++ toolchain.varDefs));
          jnaLibraryPath = lib.makeLibraryPath [ udev ];
        in ''
          mkdir -pv $out/lib/gradle/
          cp -rv lib/ $out/lib/gradle/
@@ -99,6 +101,7 @@ rec {
          test -f $gradle_launcher_jar
          makeWrapper ${java}/bin/java $out/bin/gradle \
            ${varDefs}
            --add-flags "-Djna.library.path=${jnaLibraryPath}" \
            --add-flags "-classpath $gradle_launcher_jar org.gradle.launcher.GradleMain${toolchain.property}"
        '';

@@ -129,6 +132,7 @@ rec {
        # Gradle will refuse to start without _both_ 5 and 6 versions of ncurses.
        echo ${ncurses5} >> $out/nix-support/manual-runtime-dependencies
        echo ${ncurses6} >> $out/nix-support/manual-runtime-dependencies
        echo ${udev} >> $out/nix-support/manual-runtime-dependencies
      '';

      passthru.tests = {