tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
lol
0
fork
atom
overview
issues
pulls
pipelines
fastddsgen: convert to gradle setup hook
chayleaf
2 years ago
346bfec1
3304e8a0
+114
-52
2 changed files
expand all
collapse all
unified
split
pkgs
development
tools
fastddsgen
default.nix
deps.json
+21
-52
pkgs/development/tools/fastddsgen/default.nix
···
1
-
{ lib, stdenv, runtimeShell, writeText, fetchFromGitHub, gradle_7, openjdk17, git, perl, cmake }:
2
let
3
pname = "fastddsgen";
4
version = "3.3.0";
5
0
0
0
0
0
0
6
src = fetchFromGitHub {
7
owner = "eProsima";
8
repo = "Fast-DDS-Gen";
···
11
hash = "sha256-oqbSIzsYUwD8bTqGKZ9he9d18EDq9mHZFoNUp0RK0qU=";
12
};
13
14
-
gradle = gradle_7;
15
16
-
# fake build to pre-download deps into fixed-output derivation
17
-
deps = stdenv.mkDerivation {
18
-
pname = "${pname}-deps";
19
-
inherit src version;
20
-
nativeBuildInputs = [ gradle openjdk17 perl ];
21
-
22
-
buildPhase = ''
23
-
export GRADLE_USER_HOME=$(mktemp -d);
24
-
gradle --no-daemon -x submodulesUpdate assemble
25
-
'';
26
-
27
-
# perl code mavenizes paths (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar)
28
-
installPhase = ''
29
-
find $GRADLE_USER_HOME/caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \
30
-
| perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \
31
-
| sh
32
-
'';
33
-
34
-
dontStrip = true;
35
-
36
-
outputHashAlgo = "sha256";
37
-
outputHashMode = "recursive";
38
-
outputHash = "sha256-YkVRp6TXI7/5O+u0DDYiCq7DITfGJ4lT/L4hT90JOL8=";
39
};
40
-
in
41
-
stdenv.mkDerivation {
42
-
inherit pname src version;
43
44
-
nativeBuildInputs = [ gradle openjdk17 ];
45
-
46
-
# use our offline deps
47
-
postPatch = ''
48
-
sed -ie '1i\
49
-
pluginManagement {\
50
-
repositories {\
51
-
maven { url "${deps}" }\
52
-
}\
53
-
}' thirdparty/idl-parser/settings.gradle
54
-
sed -ie "s#mavenCentral()#maven { url '${deps}' }#g" build.gradle
55
-
sed -ie "s#mavenCentral()#maven { url '${deps}' }#g" thirdparty/idl-parser/build.gradle
56
-
'';
57
-
58
-
buildPhase = ''
59
-
runHook preBuild
60
61
-
export GRADLE_USER_HOME=$(mktemp -d)
62
-
63
-
# Run gradle with daemon to make installPhase faster
64
-
gradle --offline -x submodulesUpdate assemble
65
-
66
-
runHook postBuild
67
-
'';
68
69
installPhase = ''
70
runHook preInstall
71
72
-
gradle --offline -x submodulesUpdate install --install_path=$out
73
74
# Override the default start script to use absolute java path
75
cat <<EOF >$out/bin/fastddsgen
···
79
chmod a+x "$out/bin/fastddsgen"
80
81
runHook postInstall
0
0
0
0
0
0
0
82
'';
83
84
meta = with lib; {
···
1
+
{ lib, stdenv, runtimeShell, fetchFromGitHub, gradle_7, openjdk17 }:
2
let
3
pname = "fastddsgen";
4
version = "3.3.0";
5
6
+
gradle = gradle_7;
7
+
8
+
in
9
+
stdenv.mkDerivation {
10
+
inherit pname version;
11
+
12
src = fetchFromGitHub {
13
owner = "eProsima";
14
repo = "Fast-DDS-Gen";
···
17
hash = "sha256-oqbSIzsYUwD8bTqGKZ9he9d18EDq9mHZFoNUp0RK0qU=";
18
};
19
20
+
nativeBuildInputs = [ gradle openjdk17 ];
21
22
+
mitmCache = gradle.fetchDeps {
23
+
inherit pname;
24
+
data = ./deps.json;
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
25
};
0
0
0
26
27
+
__darwinAllowLocalNetworking = true;
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
28
29
+
gradleFlags = [ "-x" "submodulesUpdate" ];
0
0
0
0
0
0
30
31
installPhase = ''
32
runHook preInstall
33
34
+
gradle install --install_path=$out
35
36
# Override the default start script to use absolute java path
37
cat <<EOF >$out/bin/fastddsgen
···
41
chmod a+x "$out/bin/fastddsgen"
42
43
runHook postInstall
44
+
'';
45
+
46
+
postGradleUpdate = ''
47
+
cd thirdparty/idl-parser
48
+
# fix "Task 'submodulesUpdate' not found"
49
+
gradleFlags=
50
+
gradle nixDownloadDeps
51
'';
52
53
meta = with lib; {
+93
pkgs/development/tools/fastddsgen/deps.json
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
1
+
{
2
+
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
3
+
"!version": 1,
4
+
"https://repo.maven.apache.org/maven2": {
5
+
"com/ibm/icu#icu4j/72.1": {
6
+
"jar": "sha256-PfVyskCmjRO1zXeK0jk+iF0mQRQ0zY8JisWYfqLmTOM=",
7
+
"pom": "sha256-Pe8rKa9KGa2AXLFTBWklqJqQP5L77hre4S7S/BTETug="
8
+
},
9
+
"org/abego/treelayout#org.abego.treelayout.core/1.0.3": {
10
+
"jar": "sha256-+l4xOVw5wufUasoPgfcgYJMWB7L6Qb02A46yy2+5MyY=",
11
+
"pom": "sha256-o7KyI3lDcDVeeSQzrwEvyZNmfAMxviusrYTbwJrOSgw="
12
+
},
13
+
"org/antlr#ST4/4.3.4": {
14
+
"jar": "sha256-+SesOExG10n4texolypTrtIeADE1CSmWFu23O/oV/zM=",
15
+
"pom": "sha256-nnwfPkiZGUQOjBMInlljcp1bf4D3AjO/uuMJxkmryj4="
16
+
},
17
+
"org/antlr#antlr-master/3.5.3": {
18
+
"pom": "sha256-6p43JQ9cTC52tlOL6XtX8zSb2lhe31PzypfiB7OFuJU="
19
+
},
20
+
"org/antlr#antlr-runtime/3.5.3": {
21
+
"jar": "sha256-aL+fWjPfyzQDNJXFh+Yja+9ON6pmEpGfWx6EO5Bmn7k=",
22
+
"pom": "sha256-EymODgqvr0FP99RAZCfKtuxPv6NkJ/bXEDxDLzLAfSU="
23
+
},
24
+
"org/antlr#antlr4-master/4.13.0": {
25
+
"pom": "sha256-IiBv17pJUVLlJvUO/sn8j03QX8tD38+PJk6Dffa2Qk8="
26
+
},
27
+
"org/antlr#antlr4-runtime/4.13.0": {
28
+
"jar": "sha256-vX97XQe8CwR/EJFbMspLsd6eV9gEkJiILkRTyIwHal0=",
29
+
"pom": "sha256-GY40+1rHWXsaPDGTAwHgjOlB5cpQQRbdVKOnU3iRSn8="
30
+
},
31
+
"org/antlr#antlr4/4.13.0": {
32
+
"jar": "sha256-HA3rJpklFJIvuLmWGRmPCcMveYQkbcatHDu8SYPeHTU=",
33
+
"pom": "sha256-OdLSWEk8QnvL1EAGP34PQqt4j6wVp4wP73RK5hk2d8k="
34
+
},
35
+
"org/apiguardian#apiguardian-api/1.1.0": {
36
+
"jar": "sha256-qarp/4rj4XoqGPeRdegrFiZ8JG+708qd+7spCwjc/dQ=",
37
+
"pom": "sha256-qUW5y1zZt3sscRhE5lnEPsBw71nZ9Qn6n0wYYbSGJxE="
38
+
},
39
+
"org/junit/jupiter#junit-jupiter-api/5.5.2": {
40
+
"jar": "sha256-JJov29OTGYfAKY0AygjtJISW4PwR4EY8CMT4LgzHmxw=",
41
+
"pom": "sha256-dqFdgNhYehpaOlsULSzrNzBPvZEZi6QlSG5X920IiGA="
42
+
},
43
+
"org/junit/jupiter#junit-jupiter-engine/5.5.2": {
44
+
"jar": "sha256-bXd9qYduLvegM26PCY+NdKWmT4EKo6Si9fO3Zs6Xg3s=",
45
+
"pom": "sha256-Ay/vTiVjCE05fq5IGjiAEPRDQBr2JSv9N312MH9vi/4="
46
+
},
47
+
"org/junit/platform#junit-platform-commons/1.5.2": {
48
+
"jar": "sha256-/ESv38DyDIXnGmbnlDKBrvO8Hg/WLS1po2y2kB5oLBA=",
49
+
"pom": "sha256-O9DU3tYyqK+MpYf7Z2QBnedxsda8uJrNViQ1oQCfqto="
50
+
},
51
+
"org/junit/platform#junit-platform-engine/1.5.2": {
52
+
"jar": "sha256-/yC6StjADvF7rvnFVRL5wC2aaHQPfxrAGppqoCOZMfg=",
53
+
"pom": "sha256-LUuVVVwh4IXrwd299C156x1VZA3Bk7G35hACQP0vGJ8="
54
+
},
55
+
"org/openjdk/nashorn#nashorn-core/15.4": {
56
+
"jar": "sha256-b4FuhN/WOoHU6qeCnAgze7r/PsaD/zv2u9kNAXoA3G8=",
57
+
"pom": "sha256-aan3ueR+zPR7vO5yGtT7A5yn2bZQF05thgKq23flrCM="
58
+
},
59
+
"org/opentest4j#opentest4j/1.2.0": {
60
+
"jar": "sha256-WIEt5giY2Xb7ge87YtoFxmBMGP1KJJ9QRCgkefwoavI=",
61
+
"pom": "sha256-qW5nGBbB/4gDvex0ySQfAlvfsnfaXStO4CJmQFk2+ZQ="
62
+
},
63
+
"org/ow2#ow2/1.5": {
64
+
"pom": "sha256-D4obEW52C4/mOJxRuE5LB6cPwRCC1Pk25FO1g91QtDs="
65
+
},
66
+
"org/ow2/asm#asm-analysis/7.3.1": {
67
+
"jar": "sha256-Rrio79S5T6y1q0s1r+MO4FRq56Q9LGTm3vVsLxaP76U=",
68
+
"pom": "sha256-be7rsjbIAyhFrcO3XuWrEiPr1T5M8+hTQsMTvaBtVH8="
69
+
},
70
+
"org/ow2/asm#asm-commons/7.3.1": {
71
+
"jar": "sha256-h82Ls8a/a8uzP8pIBgxQZfZuv2o9fem/GL/1G88Vbrw=",
72
+
"pom": "sha256-2jEe/3FqEUJ8JCS1iFvR+0lC2QNml2zW1aVae6DfWkA="
73
+
},
74
+
"org/ow2/asm#asm-tree/7.3.1": {
75
+
"jar": "sha256-+RpKiqhoxcRmW7T9E0AZqR+fi5IWUn+6KV48i1Qit4s=",
76
+
"pom": "sha256-yrFmzVNdMJgzasVcG2du7WYxZbWG+gPXmWBSO+0f8Ew="
77
+
},
78
+
"org/ow2/asm#asm-util/7.3.1": {
79
+
"jar": "sha256-GCEoWSdC7UiDrIK/IF8Te2v74SNMaOb+sTdZ51qFtyk=",
80
+
"pom": "sha256-DzYMMOEoeTfh1C/txvrWmCT9Vl5P//7RQS7I2HMD+8o="
81
+
},
82
+
"org/ow2/asm#asm/7.3.1": {
83
+
"jar": "sha256-L2fhHO7IGevYjd7lMAq6aZscurLiDCLpfPAn076TlZs=",
84
+
"pom": "sha256-6s3NUA1lJ+ljiI2u2jGSPkvCQaJUJNzDisyi5gHn/eI="
85
+
},
86
+
"org/sonatype/oss#oss-parent/7": {
87
+
"pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
88
+
},
89
+
"org/sonatype/oss#oss-parent/9": {
90
+
"pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno="
91
+
}
92
+
}
93
+
}