| 18 Jul 2023 |
Lily Foster | Ah, yarn2nix makes me sad π₯² | 23:15:47 |
| 19 Jul 2023 |
@ambroisie:belanyi.fr | Do we have a list of pnpm packages currently in nixpkgs? | 10:35:56 |
Lily Foster | We don't have a listing anywhere. Maybe grep the tree for pnpm? | 10:38:37 |
| 21 Jul 2023 |
hellwolf | error: Package βnodejs-16.20.1β in /nix/store/w8yzl2ydv1wvb0xiw4p54rm2f0588jai-source/pkgs/development/web/nodejs/v16.nix:16 is marked as insecure, refusing to evaluate.
Known issues:
- This NodeJS release has reached its end of life. See https://nodejs.org/en/about/releases/.
| 09:16:24 |
hellwolf | Oh, but we are still missing nodejs-20_x right? Any ETA? | 09:16:50 |
@ulli:hrnz.li | 2023-04-20 | 09:24:46 |
hellwolf | huh | 09:30:53 |
hellwolf | aha, of course | 09:31:12 |
hellwolf | pkgs/top-level/aliases.nix <-- they are aliases, okay | 09:32:14 |
hellwolf | I should use 'nodejs_18' instead, not nodejs-16_x | 09:32:51 |
| 22 Jul 2023 |
gdamjan | In reply to @lily:lily.flowers Ah, yarn2nix makes me sad π₯² what would be an alternative approach? | 15:59:34 |
| 23 Jul 2023 |
Lily Foster | In reply to @gdamjan:spodeli.org what would be an alternative approach? buildYarnPackage, whenever we come back to that. It's like next on the list after a few more buildNpmPackage/fetchNpmDeps PRs I have open (see the Node.js team project board) | 00:08:12 |
Lily Foster | (there's no major technical blockers, it just needs some time put into it, and we've been dealing with too much real-life nonsense π) | 00:10:06 |
| Sandro π§ joined the room. | 21:51:42 |
Sandro π§ | How do we package things that require yarn berry? Hedgedoc is currently stuck on 1.9.7 because of that and there is soon an urgency to update. | 21:51:58 |
Lily Foster | If I get the time and mental bandwidth, I may take a stab at it this week. Right now we have no tooling for it so just generating and vendoring a package-lock.json is unfortunately probably the best solution atm if it still builds fine with npm | 22:00:40 |
| @me:indeednotjames.com joined the room. | 22:12:48 |
Sandro π§ | then I am probably going that route, we have a security update ahead... | 22:18:12 |
| 24 Jul 2023 |
@janne.hess:helsinki-systems.de | Sandro π§: | 07:57:33 |
@janne.hess:helsinki-systems.de | * Sandro π§: minimally tested, but should do: | 07:57:42 |
@janne.hess:helsinki-systems.de | { lib
, stdenv
, fetchFromGitHub
, gitMinimal
, cacert
, yarn
, makeBinaryWrapper
, nodejs
, nodePackages
, python3
, nixosTests
}: let
version = "1.9.8";
src = fetchFromGitHub {
owner = "hedgedoc";
repo = "hedgedoc";
rev = version;
sha256 = "sha256-gp1TeYHwH7ffaSMifdURb2p+U8u6Xs4JU4b4qACEIDw=";
};
offlineCache = stdenv.mkDerivation {
name = "hedgedoc-${version}-offline-cache";
inherit src;
nativeBuildInputs = [
cacert # needed for git
gitMinimal # needed for a dep
nodePackages.npm # needed for a dep
yarn
];
HOME = "/build";
buildPhase = ''
yarn config set enableTelemetry 0
yarn config set cacheFolder $out
yarn
'';
outputHashMode = "recursive";
outputHash = "sha256-4TPc9J9u0rO9WfZVbFWwVAM5WY3n5zJdhIlNYiZNRoM=";
};
in stdenv.mkDerivation rec {
pname = "hedgedoc";
inherit version src;
nativeBuildInputs = [
makeBinaryWrapper
yarn
python3 # needed for sqlite node-gyp
];
extraBuildInputs = [ python3 ];
dontConfigure = true;
HOME = "/build";
buildPhase = ''
runHook preBuild
logHook() {
cat /build/xfs-*/build.log
}
failureHooks+=(logHook)
yarn config set enableTelemetry 0
yarn config set cacheFolder ${offlineCache}
# This will fail but create the sqlite3 files we can patch
yarn --immutable-cache || :
# Ensure we don't download any node things
sed -i 's:--fallback-to-build:--build-from-source --nodedir=${nodejs}/include/node:g' node_modules/sqlite3/package.json
export CPPFLAGS="-I${nodejs}/include/node"
# Perform the actual install
yarn --immutable-cache
patchShebangs bin/*
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out
cp -R {app.js,bin,lib,locales,node_modules,package.json,public} $out
makeWrapper ${nodejs}/bin/node $out/bin/hedgedoc \
--add-flags $out/app.js \
--set NODE_PATH "$out/lib/node_modules"
runHook postInstall
'';
passthru = {
tests = { inherit (nixosTests) hedgedoc; };
};
meta = with lib; {
description = "Realtime collaborative markdown notes on all platforms";
license = licenses.agpl3;
homepage = "https://hedgedoc.org";
maintainers = with maintainers; [ SuperSandro2000 ];
platforms = platforms.linux;
};
}
| 07:57:44 |
@janne.hess:helsinki-systems.de | * { lib
, stdenv
, fetchFromGitHub
, gitMinimal
, cacert
, yarn
, makeBinaryWrapper
, nodejs
, nodePackages
, python3
, nixosTests
}: let
version = "1.9.8";
src = fetchFromGitHub {
owner = "hedgedoc";
repo = "hedgedoc";
rev = version;
sha256 = "sha256-gp1TeYHwH7ffaSMifdURb2p+U8u6Xs4JU4b4qACEIDw=";
};
offlineCache = stdenv.mkDerivation {
name = "hedgedoc-${version}-offline-cache";
inherit src;
nativeBuildInputs = [
cacert # needed for git
gitMinimal # needed for a dep
nodePackages.npm # needed for a dep
yarn
];
HOME = "/build";
buildPhase = ''
yarn config set enableTelemetry 0
yarn config set cacheFolder $out
yarn
'';
outputHashMode = "recursive";
outputHash = "sha256-4TPc9J9u0rO9WfZVbFWwVAM5WY3n5zJdhIlNYiZNRoM=";
};
in stdenv.mkDerivation rec {
pname = "hedgedoc";
inherit version src;
nativeBuildInputs = [
makeBinaryWrapper
yarn
python3 # needed for sqlite node-gyp
];
extraBuildInputs = [ python3 ];
dontConfigure = true;
HOME = "/build";
buildPhase = ''
runHook preBuild
logHook() {
cat /build/xfs-*/build.log
}
failureHooks+=(logHook)
yarn config set enableTelemetry 0
yarn config set cacheFolder ${offlineCache}
# This will fail but create the sqlite3 files we can patch
yarn --immutable-cache || :
# Ensure we don't download any node things
sed -i 's:--fallback-to-build:--build-from-source --nodedir=${nodejs}/include/node:g' node_modules/sqlite3/package.json
export CPPFLAGS="-I${nodejs}/include/node"
# Perform the actual install
yarn --immutable-cache
patchShebangs bin/*
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out
cp -R {app.js,bin,lib,locales,node_modules,package.json,public} $out
makeWrapper ${nodejs}/bin/node $out/bin/hedgedoc \
--add-flags $out/app.js \
--set NODE_PATH "$out/lib/node_modules"
runHook postInstall
'';
passthru = {
tests = { inherit (nixosTests) hedgedoc; };
};
meta = with lib; {
description = "Realtime collaborative markdown notes on all platforms";
license = licenses.agpl3;
homepage = "https://hedgedoc.org";
maintainers = with maintainers; [ SuperSandro2000 ];
platforms = platforms.linux;
};
}
| 07:57:49 |
@janne.hess:helsinki-systems.de | also does a real source download rather than taking the precompiled js files | 07:59:20 |
@janne.hess:helsinki-systems.de | * { lib
, stdenv
, fetchFromGitHub
, gitMinimal
, cacert
, yarn
, makeBinaryWrapper
, nodejs
, nodePackages
, python3
, nixosTests
}: let
version = "1.9.8";
src = fetchFromGitHub {
owner = "hedgedoc";
repo = "hedgedoc";
rev = version;
hash = "sha256-gp1TeYHwH7ffaSMifdURb2p+U8u6Xs4JU4b4qACEIDw=";
};
offlineCache = stdenv.mkDerivation {
name = "hedgedoc-${version}-offline-cache";
inherit src;
nativeBuildInputs = [
cacert # needed for git
gitMinimal # needed for a dep
nodePackages.npm # needed for a dep
yarn
];
HOME = "/build";
buildPhase = ''
yarn config set enableTelemetry 0
yarn config set cacheFolder $out
yarn
'';
outputHashMode = "recursive";
outputHash = "sha256-4TPc9J9u0rO9WfZVbFWwVAM5WY3n5zJdhIlNYiZNRoM=";
};
in stdenv.mkDerivation rec {
pname = "hedgedoc";
inherit version src;
nativeBuildInputs = [
makeBinaryWrapper
yarn
python3 # needed for sqlite node-gyp
];
extraBuildInputs = [ python3 ];
dontConfigure = true;
HOME = "/build";
buildPhase = ''
runHook preBuild
logHook() {
cat /build/xfs-*/build.log
}
failureHooks+=(logHook)
yarn config set enableTelemetry 0
yarn config set cacheFolder ${offlineCache}
# This will fail but create the sqlite3 files we can patch
yarn --immutable-cache || :
# Ensure we don't download any node things
sed -i 's:--fallback-to-build:--build-from-source --nodedir=${nodejs}/include/node:g' node_modules/sqlite3/package.json
export CPPFLAGS="-I${nodejs}/include/node"
# Perform the actual install
yarn --immutable-cache
patchShebangs bin/*
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out
cp -R {app.js,bin,lib,locales,node_modules,package.json,public} $out
makeWrapper ${nodejs}/bin/node $out/bin/hedgedoc \
--add-flags $out/app.js \
--set NODE_PATH "$out/lib/node_modules"
runHook postInstall
'';
passthru = {
tests = { inherit (nixosTests) hedgedoc; };
};
meta = with lib; {
description = "Realtime collaborative markdown notes on all platforms";
license = licenses.agpl3;
homepage = "https://hedgedoc.org";
maintainers = with maintainers; [ SuperSandro2000 ];
platforms = platforms.linux;
};
}
| 07:59:53 |
Sandro π§ | Minimal as in you deployt it and launched the editor? That broke the last time spectacularly. | 08:00:14 |
Sandro π§ | * Minimal as in you deployed it and launched the editor? That broke the last time spectacularly. | 08:00:25 |
@janne.hess:helsinki-systems.de | no even more minimal :D it builds and the binary gives the output I expect | 08:00:37 |
@janne.hess:helsinki-systems.de | let me see if I can easily run it | 08:00:41 |
Sandro π§ | You can locally start it if it gets some envs, maybe I can dig them up from my shell history later | 08:01:41 |
@janne.hess:helsinki-systems.de | got it | 08:17:08 |