Update custom packages

This commit is contained in:
Charlotte Van Petegem 2020-05-06 15:57:54 +02:00
parent 43cb5b4932
commit 0e0b85b060
4 changed files with 962 additions and 1403 deletions

View file

@ -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";

View file

@ -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;

View file

@ -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