openjfx{17,21,23}: add update script

This commit is contained in:
Emily 2024-10-18 05:52:44 +01:00
parent bb161ee138
commit f3b30d484e

View File

@ -5,7 +5,6 @@
stdenv,
pkgs,
fetchFromGitHub,
fetchpatch2,
gradle,
@ -28,6 +27,11 @@
writeText,
_experimental-update-script-combinators,
nixpkgs-openjdk-updater,
writeShellScript,
path,
withMedia ? true,
withWebKit ? false,
@ -45,7 +49,10 @@
let
sourceFile = ./. + "/${featureVersion}/source.json";
sourceInfo = lib.importJSON sourceFile;
source = nixpkgs-openjdk-updater.openjdkSource {
inherit sourceFile;
featureVersionPrefix = featureVersion;
};
atLeast21 = lib.versionAtLeast featureVersion "21";
atLeast23 = lib.versionAtLeast featureVersion "23";
@ -58,10 +65,9 @@ assert lib.assertMsg (lib.pathExists sourceFile)
stdenv.mkDerivation {
pname = "openjfx-modular-sdk";
version = lib.removePrefix "refs/tags/" sourceInfo.rev;
version = lib.removePrefix "refs/tags/" source.src.rev;
# TODO: Tighten up after update scripts are run.
src = fetchFromGitHub sourceInfo;
inherit (source) src;
patches =
if featureVersion == "23" then
@ -166,6 +172,32 @@ stdenv.mkDerivation {
gradle_openjfx.jdk
];
passthru.updateScript = _experimental-update-script-combinators.sequence [
source.updateScript
{
command = [
# We need to do this separate script rather than simply using
# `finalAttrs.mitmCache.updateScript` because the Gradle update
# script captures the source at the time of evaluation, making
# it miss the update.
(writeShellScript "update-openjfx-deps.sh" ''
eval "$(
nix-build "$1" \
-A openjfx${featureVersion}.mitmCache.updateScript
)"
'')
# This has to be a separate argument so that
# `maintainers/scripts/update.py` can rewrite it to the
# appropriate Git work tree.
path
];
supportedFeatures = [ "silent" ];
}
];
meta = {
description = "Next-generation Java client toolkit";
homepage = "https://openjdk.org/projects/openjfx/";