diff --git a/pkgs/by-name/fa/fastddsgen/493-addendum.patch b/pkgs/by-name/fa/fastddsgen/493-addendum.patch new file mode 100644 index 000000000000..69cd3e731b9a --- /dev/null +++ b/pkgs/by-name/fa/fastddsgen/493-addendum.patch @@ -0,0 +1,17 @@ + Fix gradle error + + https://docs.gradle.org/9.1.0/userguide/validation_problems.html#private_method_must_not_be_annotated + +diff --git a/build.gradle b/build.gradle +index c6d537e..9029aae 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -69,7 +69,7 @@ public abstract class InstallPath extends DefaultTask { + * Install Task Action that copies the script and jar files + */ + @TaskAction +- private void install() { ++ public void install() { + if (Os.isFamily(Os.FAMILY_WINDOWS)) { + final String install_path = (path != null && !path.isEmpty()) ? path : "C:\\Program Files\\fastddsgen\\"; + diff --git a/pkgs/by-name/fa/fastddsgen/package.nix b/pkgs/by-name/fa/fastddsgen/package.nix index 9167ff012b5b..175daf70105f 100644 --- a/pkgs/by-name/fa/fastddsgen/package.nix +++ b/pkgs/by-name/fa/fastddsgen/package.nix @@ -3,36 +3,53 @@ stdenv, makeWrapper, fetchFromGitHub, - gradle_7, - openjdk17, + fetchpatch2, + gradle, + openjdk, + testers, }: -let +stdenv.mkDerivation (finalAttrs: { pname = "fastddsgen"; version = "4.2.0"; - gradle = gradle_7; - -in -stdenv.mkDerivation { - inherit pname version; - src = fetchFromGitHub { owner = "eProsima"; repo = "Fast-DDS-Gen"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; fetchSubmodules = true; hash = "sha256-weGS340MvPitWMgWx1cWTgYgGcQfJSTUus8EcBob7hY="; }; + patches = [ + # Note: PR is not yet merged + # Select commit from https://github.com/eProsima/IDL-Parser/pull/179 + (fetchpatch2 { + url = "https://github.com/eProsima/IDL-Parser/commit/801ed2f671322c0134b8db180529c9a400d5ed2b.patch"; + stripLen = 1; + extraPrefix = "thirdparty/idl-parser/"; + includes = [ "thirdparty/idl-parser/build.gradle" ]; + hash = "sha256-OzywQ02yaMnya+536DeHWeKwZefI4meYqmZcp3onwR8="; + }) + + # Note: PR is not yet merged + # Select commit from https://github.com/eProsima/Fast-DDS-Gen/pull/493 + (fetchpatch2 { + url = "https://github.com/eProsima/Fast-DDS-Gen/commit/b1b66d587f38d4fd6227aa1969c3a10c2095ae7d.patch"; + hash = "sha256-qVp9Xk8og8Ga2BMiqt2BFM0lAtDnmmwzteceievfcXE="; + }) + + ./493-addendum.patch + ]; + nativeBuildInputs = [ gradle - openjdk17 + openjdk makeWrapper ]; mitmCache = gradle.fetchDeps { - inherit pname; + inherit (finalAttrs) pname; data = ./deps.json; }; @@ -51,7 +68,7 @@ stdenv.mkDerivation { # Override the default start script to use absolute java path. # Make the unwrapped "cpp" available in the path, since the wrapped "cpp" # passes additional flags and produces output incompatible with fastddsgen. - makeWrapper ${openjdk17}/bin/java $out/bin/fastddsgen \ + makeWrapper ${openjdk}/bin/java $out/bin/fastddsgen \ --add-flags "-jar $out/share/fastddsgen/java/fastddsgen.jar" \ --prefix PATH : ${lib.makeBinPath [ stdenv.cc.cc ]} @@ -65,6 +82,11 @@ stdenv.mkDerivation { gradle nixDownloadDeps ''; + passthru.tests = testers.testVersion { + command = "${finalAttrs.meta.mainProgram} -version"; + package = finalAttrs.finalPackage; + }; + meta = with lib; { description = "Fast-DDS IDL code generator tool"; mainProgram = "fastddsgen"; @@ -79,6 +101,6 @@ stdenv.mkDerivation { used to publish or subscribe. ''; maintainers = with maintainers; [ wentasah ]; - platforms = openjdk17.meta.platforms; + platforms = openjdk.meta.platforms; }; -} +})