Update custom packages
This commit is contained in:
parent
43cb5b4932
commit
0e0b85b060
4 changed files with 962 additions and 1403 deletions
|
@ -2,10 +2,10 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "jdtls";
|
pname = "jdtls";
|
||||||
version = "0.50.0";
|
version = "0.55.0";
|
||||||
src = pkgs.fetchurl {
|
src = pkgs.fetchurl {
|
||||||
url = "http://download.eclipse.org/${pname}/milestones/${version}/jdt-language-server-${version}-202002171858.tar.gz";
|
url = "http://download.eclipse.org/${pname}/milestones/${version}/jdt-language-server-${version}-202004300028.tar.gz";
|
||||||
sha256 = "bf72084dc7988f76e01668d778c826c7490c287ee96a9f82e9e11afb6b722ab7";
|
sha256 = "0kxx4l7yqvzxbcb0j8yvrpvq6rba50j173dl71p4kqz14878m17w";
|
||||||
};
|
};
|
||||||
sourceRoot = ".";
|
sourceRoot = ".";
|
||||||
buildPhase = "true";
|
buildPhase = "true";
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# This file has been generated by node2nix 1.7.0. Do not edit!
|
# This file has been generated by node2nix 1.8.0. Do not edit!
|
||||||
|
|
||||||
{ pkgs ? import <nixpkgs> {
|
{ pkgs ? import <nixpkgs> {
|
||||||
inherit system;
|
inherit system;
|
||||||
|
|
|
@ -37,29 +37,26 @@ let
|
||||||
};
|
};
|
||||||
includeDependencies = { dependencies }:
|
includeDependencies = { dependencies }:
|
||||||
stdenv.lib.optionalString (dependencies != [ ])
|
stdenv.lib.optionalString (dependencies != [ ])
|
||||||
(
|
(stdenv.lib.concatMapStrings
|
||||||
stdenv.lib.concatMapStrings
|
(dependency:
|
||||||
(
|
''
|
||||||
dependency:
|
# Bundle the dependencies of the package
|
||||||
''
|
mkdir -p node_modules
|
||||||
# Bundle the dependencies of the package
|
cd node_modules
|
||||||
mkdir -p node_modules
|
|
||||||
cd node_modules
|
|
||||||
|
|
||||||
# Only include dependencies if they don't exist. They may also be bundled in the package.
|
# Only include dependencies if they don't exist. They may also be bundled in the package.
|
||||||
if [ ! -e "${dependency.name}" ]
|
if [ ! -e "${dependency.name}" ]
|
||||||
then
|
then
|
||||||
${composePackage dependency}
|
${composePackage dependency}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cd ..
|
cd ..
|
||||||
''
|
''
|
||||||
) dependencies
|
) dependencies);
|
||||||
);
|
|
||||||
|
|
||||||
# Recursively composes the dependencies of a package
|
# Recursively composes the dependencies of a package
|
||||||
composePackage = { name, packageName, src, dependencies ? [ ], ... }@args:
|
composePackage = { name, packageName, src, dependencies ? [ ], ... }@args:
|
||||||
''
|
builtins.addErrorContext "while evaluating node package '${packageName}'" ''
|
||||||
DIR=$(pwd)
|
DIR=$(pwd)
|
||||||
cd $TMPDIR
|
cd $TMPDIR
|
||||||
|
|
||||||
|
@ -362,7 +359,7 @@ let
|
||||||
|
|
||||||
npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${stdenv.lib.optionalString production "--production"} rebuild
|
npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${stdenv.lib.optionalString production "--production"} rebuild
|
||||||
|
|
||||||
if [ "$dontNpmInstall" != "1" ]
|
if [ "''${dontNpmInstall-}" != "1" ]
|
||||||
then
|
then
|
||||||
# NPM tries to download packages even when they already exist if npm-shrinkwrap is used.
|
# NPM tries to download packages even when they already exist if npm-shrinkwrap is used.
|
||||||
rm -f npm-shrinkwrap.json
|
rm -f npm-shrinkwrap.json
|
||||||
|
@ -393,57 +390,57 @@ let
|
||||||
extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" ];
|
extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" ];
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation
|
stdenv.mkDerivation
|
||||||
(
|
({
|
||||||
{
|
name = "node_${name}-${version}";
|
||||||
name = "node_${name}-${version}";
|
buildInputs = [ tarWrapper python nodejs ]
|
||||||
buildInputs = [ tarWrapper python nodejs ]
|
|
||||||
++ stdenv.lib.optional (stdenv.isLinux) utillinux
|
++ stdenv.lib.optional (stdenv.isLinux) utillinux
|
||||||
++ stdenv.lib.optional (stdenv.isDarwin) libtool
|
++ stdenv.lib.optional (stdenv.isDarwin) libtool
|
||||||
++ buildInputs;
|
++ buildInputs;
|
||||||
|
|
||||||
inherit dontStrip; # Stripping may fail a build for some package deployments
|
inherit nodejs;
|
||||||
inherit dontNpmInstall preRebuild unpackPhase buildPhase;
|
|
||||||
|
|
||||||
compositionScript = composePackage args;
|
inherit dontStrip; # Stripping may fail a build for some package deployments
|
||||||
pinpointDependenciesScript = pinpointDependenciesOfPackage args;
|
inherit dontNpmInstall preRebuild unpackPhase buildPhase;
|
||||||
|
|
||||||
passAsFile = [ "compositionScript" "pinpointDependenciesScript" ];
|
compositionScript = composePackage args;
|
||||||
|
pinpointDependenciesScript = pinpointDependenciesOfPackage args;
|
||||||
|
|
||||||
installPhase = ''
|
passAsFile = [ "compositionScript" "pinpointDependenciesScript" ];
|
||||||
# Create and enter a root node_modules/ folder
|
|
||||||
mkdir -p $out/lib/node_modules
|
|
||||||
cd $out/lib/node_modules
|
|
||||||
|
|
||||||
# Compose the package and all its dependencies
|
installPhase = ''
|
||||||
source $compositionScriptPath
|
# Create and enter a root node_modules/ folder
|
||||||
|
mkdir -p $out/lib/node_modules
|
||||||
|
cd $out/lib/node_modules
|
||||||
|
|
||||||
${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
|
# Compose the package and all its dependencies
|
||||||
|
source $compositionScriptPath
|
||||||
|
|
||||||
# Create symlink to the deployed executable folder, if applicable
|
${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
|
||||||
if [ -d "$out/lib/node_modules/.bin" ]
|
|
||||||
then
|
|
||||||
ln -s $out/lib/node_modules/.bin $out/bin
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Create symlinks to the deployed manual page folders, if applicable
|
# Create symlink to the deployed executable folder, if applicable
|
||||||
if [ -d "$out/lib/node_modules/${packageName}/man" ]
|
if [ -d "$out/lib/node_modules/.bin" ]
|
||||||
then
|
then
|
||||||
mkdir -p $out/share
|
ln -s $out/lib/node_modules/.bin $out/bin
|
||||||
for dir in "$out/lib/node_modules/${packageName}/man/"*
|
fi
|
||||||
do
|
|
||||||
mkdir -p $out/share/man/$(basename "$dir")
|
|
||||||
for page in "$dir"/*
|
|
||||||
do
|
|
||||||
ln -s $page $out/share/man/$(basename "$dir")
|
|
||||||
done
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Run post install hook, if provided
|
# Create symlinks to the deployed manual page folders, if applicable
|
||||||
runHook postInstall
|
if [ -d "$out/lib/node_modules/${packageName}/man" ]
|
||||||
'';
|
then
|
||||||
} // extraArgs
|
mkdir -p $out/share
|
||||||
);
|
for dir in "$out/lib/node_modules/${packageName}/man/"*
|
||||||
|
do
|
||||||
|
mkdir -p $out/share/man/$(basename "$dir")
|
||||||
|
for page in "$dir"/*
|
||||||
|
do
|
||||||
|
ln -s $page $out/share/man/$(basename "$dir")
|
||||||
|
done
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Run post install hook, if provided
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
} // extraArgs);
|
||||||
|
|
||||||
# Builds a development shell
|
# Builds a development shell
|
||||||
buildNodeShell =
|
buildNodeShell =
|
||||||
|
@ -466,54 +463,52 @@ let
|
||||||
let
|
let
|
||||||
extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ];
|
extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ];
|
||||||
nodeDependencies = stdenv.mkDerivation
|
nodeDependencies = stdenv.mkDerivation
|
||||||
(
|
({
|
||||||
{
|
name = "node-dependencies-${name}-${version}";
|
||||||
name = "node-dependencies-${name}-${version}";
|
|
||||||
|
|
||||||
buildInputs = [ tarWrapper python nodejs ]
|
buildInputs = [ tarWrapper python nodejs ]
|
||||||
++ stdenv.lib.optional (stdenv.isLinux) utillinux
|
++ stdenv.lib.optional (stdenv.isLinux) utillinux
|
||||||
++ stdenv.lib.optional (stdenv.isDarwin) libtool
|
++ stdenv.lib.optional (stdenv.isDarwin) libtool
|
||||||
++ buildInputs;
|
++ buildInputs;
|
||||||
|
|
||||||
inherit dontStrip; # Stripping may fail a build for some package deployments
|
inherit dontStrip; # Stripping may fail a build for some package deployments
|
||||||
inherit dontNpmInstall unpackPhase buildPhase;
|
inherit dontNpmInstall unpackPhase buildPhase;
|
||||||
|
|
||||||
includeScript = includeDependencies { inherit dependencies; };
|
includeScript = includeDependencies { inherit dependencies; };
|
||||||
pinpointDependenciesScript = pinpointDependenciesOfPackage args;
|
pinpointDependenciesScript = pinpointDependenciesOfPackage args;
|
||||||
|
|
||||||
passAsFile = [ "includeScript" "pinpointDependenciesScript" ];
|
passAsFile = [ "includeScript" "pinpointDependenciesScript" ];
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out/${packageName}
|
mkdir -p $out/${packageName}
|
||||||
cd $out/${packageName}
|
cd $out/${packageName}
|
||||||
|
|
||||||
source $includeScriptPath
|
source $includeScriptPath
|
||||||
|
|
||||||
# Create fake package.json to make the npm commands work properly
|
# Create fake package.json to make the npm commands work properly
|
||||||
cp ${src}/package.json .
|
cp ${src}/package.json .
|
||||||
chmod 644 package.json
|
chmod 644 package.json
|
||||||
${stdenv.lib.optionalString bypassCache ''
|
${stdenv.lib.optionalString bypassCache ''
|
||||||
if [ -f ${src}/package-lock.json ]
|
if [ -f ${src}/package-lock.json ]
|
||||||
then
|
then
|
||||||
cp ${src}/package-lock.json .
|
cp ${src}/package-lock.json .
|
||||||
fi
|
fi
|
||||||
''}
|
''}
|
||||||
|
|
||||||
# Go to the parent folder to make sure that all packages are pinpointed
|
# Go to the parent folder to make sure that all packages are pinpointed
|
||||||
cd ..
|
cd ..
|
||||||
${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
|
${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
|
||||||
|
|
||||||
${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
|
${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
|
||||||
|
|
||||||
# Expose the executables that were installed
|
# Expose the executables that were installed
|
||||||
cd ..
|
cd ..
|
||||||
${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
|
${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
|
||||||
|
|
||||||
mv ${packageName} lib
|
mv ${packageName} lib
|
||||||
ln -s $out/lib/node_modules/.bin $out/bin
|
ln -s $out/lib/node_modules/.bin $out/bin
|
||||||
'';
|
'';
|
||||||
} // extraArgs
|
} // extraArgs);
|
||||||
);
|
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "node-shell-${name}-${version}";
|
name = "node-shell-${name}-${version}";
|
||||||
|
@ -532,8 +527,8 @@ let
|
||||||
# Provide the dependencies in a development shell through the NODE_PATH environment variable
|
# Provide the dependencies in a development shell through the NODE_PATH environment variable
|
||||||
inherit nodeDependencies;
|
inherit nodeDependencies;
|
||||||
shellHook = stdenv.lib.optionalString (dependencies != [ ]) ''
|
shellHook = stdenv.lib.optionalString (dependencies != [ ]) ''
|
||||||
export NODE_PATH=$nodeDependencies/lib/node_modules
|
export NODE_PATH=${nodeDependencies}/lib/node_modules
|
||||||
export PATH="$nodeDependencies/bin:$PATH"
|
export PATH="${nodeDependencies}/bin:$PATH"
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue