mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-09-22 04:57:56 +03:00
hedgedoc: 1.9.7 -> 1.9.8 and redo package
- Yarnify - Do a full source build - Clean up the wrapper things
This commit is contained in:
parent
672d4bac9c
commit
d6cb7c46b2
@ -1,76 +1,101 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchzip
|
||||
, makeWrapper
|
||||
, which
|
||||
, fetchFromGitHub
|
||||
, gitMinimal
|
||||
, cacert
|
||||
, yarn
|
||||
, makeBinaryWrapper
|
||||
, nodejs
|
||||
, mkYarnPackage
|
||||
, fetchYarnDeps
|
||||
, python3
|
||||
, nixosTests
|
||||
}:
|
||||
|
||||
mkYarnPackage rec {
|
||||
let
|
||||
version = "1.9.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hedgedoc";
|
||||
repo = "hedgedoc";
|
||||
rev = version;
|
||||
hash = "sha256-gp1TeYHwH7ffaSMifdURb2p+U8u6Xs4JU4b4qACEIDw=";
|
||||
};
|
||||
|
||||
# we cannot use fetchYarnDeps because that doesn't support yarn 2/berry lockfiles
|
||||
offlineCache = stdenv.mkDerivation {
|
||||
name = "hedgedoc-${version}-offline-cache";
|
||||
inherit src;
|
||||
|
||||
nativeBuildInputs = [
|
||||
cacert # needed for git
|
||||
gitMinimal # needed to download git dependencies
|
||||
nodejs # needed for npm to download git dependencies
|
||||
yarn
|
||||
];
|
||||
|
||||
buildPhase = ''
|
||||
export HOME=$(mktemp -d)
|
||||
yarn config set enableTelemetry 0
|
||||
yarn config set cacheFolder $out
|
||||
yarn config set --json supportedArchitectures.os '[ "linux" ]'
|
||||
yarn config set --json supportedArchitectures.cpu '["arm", "arm64", "ia32", "x64"]'
|
||||
yarn
|
||||
'';
|
||||
|
||||
outputHashMode = "recursive";
|
||||
outputHash = "sha256-/jsBFGH/rYSovidmvIf7xpuHpxdW8QFYC08PNi38LH8=";
|
||||
};
|
||||
|
||||
in stdenv.mkDerivation {
|
||||
pname = "hedgedoc";
|
||||
version = "1.9.7";
|
||||
inherit version src;
|
||||
|
||||
# we use the upstream compiled js files because yarn2nix cannot handle different versions of dependencies
|
||||
# in development and production and the web assets muts be compiled with js-yaml 3 while development
|
||||
# uses js-yaml 4 which breaks the text editor
|
||||
src = fetchzip {
|
||||
url = "https://github.com/hedgedoc/hedgedoc/releases/download/${version}/hedgedoc-${version}.tar.gz";
|
||||
hash = "sha256-tPkhnnKDS5TICsW66YCOy7xWFj5usLyDMbYMYQ3Euoc=";
|
||||
};
|
||||
nativeBuildInputs = [
|
||||
makeBinaryWrapper
|
||||
yarn
|
||||
python3 # needed for sqlite node-gyp
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ which makeWrapper ];
|
||||
extraBuildInputs = [ python3 ];
|
||||
|
||||
packageJSON = ./package.json;
|
||||
yarnFlags = [ "--production" ];
|
||||
|
||||
offlineCache = fetchYarnDeps {
|
||||
yarnLock = src + "/yarn.lock";
|
||||
sha256 = "0qkc26ks33vy00jgpv4445wzgxx1mzi70pkm1l8y9amgd9wf9aig";
|
||||
};
|
||||
|
||||
configurePhase = ''
|
||||
cp -r "$node_modules" node_modules
|
||||
chmod -R u+w node_modules
|
||||
'';
|
||||
dontConfigure = true;
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
pushd node_modules/sqlite3
|
||||
export HOME=$(mktemp -d)
|
||||
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"
|
||||
npm run install --build-from-source --nodedir=${nodejs}/include/node
|
||||
popd
|
||||
|
||||
# Perform the actual install
|
||||
yarn --immutable-cache
|
||||
yarn run build
|
||||
|
||||
patchShebangs bin/*
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
dontInstall = true;
|
||||
|
||||
distPhase = ''
|
||||
runHook preDist
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out
|
||||
cp -R {app.js,bin,lib,locales,node_modules,package.json,public} $out
|
||||
|
||||
cat > $out/bin/hedgedoc <<EOF
|
||||
#!${stdenv.shell}/bin/sh
|
||||
${nodejs}/bin/node $out/app.js
|
||||
EOF
|
||||
chmod +x $out/bin/hedgedoc
|
||||
wrapProgram $out/bin/hedgedoc \
|
||||
makeWrapper ${nodejs}/bin/node $out/bin/hedgedoc \
|
||||
--add-flags $out/app.js \
|
||||
--set NODE_ENV production \
|
||||
--set NODE_PATH "$out/lib/node_modules"
|
||||
|
||||
runHook postDist
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit offlineCache;
|
||||
tests = { inherit (nixosTests) hedgedoc; };
|
||||
};
|
||||
|
||||
|
@ -1,213 +0,0 @@
|
||||
{
|
||||
"name": "HedgeDoc",
|
||||
"version": "1.9.7",
|
||||
"description": "The best platform to write and share markdown.",
|
||||
"main": "app.js",
|
||||
"license": "AGPL-3.0",
|
||||
"scripts": {
|
||||
"test": "npm run-script eslint && npm run-script jsonlint && npm run-script mocha-suite",
|
||||
"eslint": "node_modules/.bin/eslint --max-warnings 0 lib public test app.js",
|
||||
"jsonlint": "find . -not -path './node_modules/*' -type f -name '*.json' -o -type f -name '*.json.example' | while read json; do echo $json ; jq . $json; done",
|
||||
"markdownlint": "remark .",
|
||||
"mocha-suite": "NODE_ENV=test CMD_DB_URL=\"sqlite::memory:\" mocha --exit",
|
||||
"standard": "echo 'standard is no longer being used, use `npm run eslint` instead!' && exit 1",
|
||||
"dev": "webpack --config webpack.dev.js --progress --watch",
|
||||
"heroku-prebuild": "bin/heroku",
|
||||
"build": "webpack --config webpack.prod.js --progress",
|
||||
"start": "node app.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"@passport-next/passport-openid": "^1.0.0",
|
||||
"Idle.Js": "git+https://github.com/shawnmclean/Idle.js",
|
||||
"archiver": "^5.0.2",
|
||||
"async": "^3.0.0",
|
||||
"aws-sdk": "^2.1243.0",
|
||||
"azure-storage": "^2.7.0",
|
||||
"base64url": "^3.0.0",
|
||||
"body-parser": "^1.15.2",
|
||||
"chance": "^1.0.4",
|
||||
"cheerio": "^0.22.0",
|
||||
"clean-webpack-plugin": "^4.0.0",
|
||||
"compression": "^1.6.2",
|
||||
"connect-flash": "^0.1.1",
|
||||
"connect-session-sequelize": "^7.1.2",
|
||||
"cookie": "^0.5.0",
|
||||
"cookie-parser": "^1.4.3",
|
||||
"deep-freeze": "^0.0.1",
|
||||
"diff-match-patch": "git+https://github.com/hackmdio/diff-match-patch.git",
|
||||
"ejs": "^3.0.0",
|
||||
"express": ">=4.14",
|
||||
"express-session": "^1.14.2",
|
||||
"file-type": "^18.0.0",
|
||||
"formidable": "^2.0.0",
|
||||
"graceful-fs": "^4.1.11",
|
||||
"helmet": "^4.5.0",
|
||||
"i18n": "^0.15.0",
|
||||
"is-svg": "^4.3.1",
|
||||
"jsdom-nogyp": "^0.8.3",
|
||||
"lodash": "^4.17.20",
|
||||
"lutim": "^1.0.2",
|
||||
"lz-string": "git+https://github.com/hackmdio/lz-string.git",
|
||||
"mariadb": "^3.0.2",
|
||||
"markdown-it": "^13.0.0",
|
||||
"markdown-it-abbr": "^1.0.4",
|
||||
"markdown-it-container": "^3.0.0",
|
||||
"markdown-it-deflist": "^2.0.1",
|
||||
"markdown-it-emoji": "^2.0.0",
|
||||
"markdown-it-footnote": "^3.0.1",
|
||||
"markdown-it-imsize": "^2.0.1",
|
||||
"markdown-it-ins": "^3.0.0",
|
||||
"markdown-it-mark": "^3.0.0",
|
||||
"markdown-it-mathjax": "^2.0.0",
|
||||
"markdown-it-regexp": "^0.4.0",
|
||||
"markdown-it-sub": "^1.0.0",
|
||||
"markdown-it-sup": "^1.0.0",
|
||||
"mattermost": "^3.4.0",
|
||||
"meta-marked": "git+https://github.com/hedgedoc/meta-marked",
|
||||
"method-override": "^3.0.0",
|
||||
"minimist": "^1.2.0",
|
||||
"minio": "7.0.32",
|
||||
"moment": "^2.17.1",
|
||||
"morgan": "^1.7.0",
|
||||
"mysql2": "^3.0.0",
|
||||
"node-fetch": "^2.6.1",
|
||||
"passport": "^0.6.0",
|
||||
"passport-dropbox-oauth2": "^1.1.0",
|
||||
"passport-facebook": "^3.0.0",
|
||||
"passport-github": "^1.1.0",
|
||||
"passport-gitlab2": "^5.0.0",
|
||||
"passport-google-oauth20": "^2.0.0",
|
||||
"passport-ldapauth": "^3.0.0",
|
||||
"passport-local": "^1.0.0",
|
||||
"passport-oauth2": "^1.4.0",
|
||||
"passport-saml": "^3.1.2",
|
||||
"passport-twitter": "^1.0.4",
|
||||
"passport.socketio": "^3.7.0",
|
||||
"pdfobject": "^2.0.201604172",
|
||||
"pg": "^8.2.1",
|
||||
"pg-hstore": "^2.3.3",
|
||||
"prom-client": "^14.0.0",
|
||||
"prometheus-api-metrics": "^3.2.0",
|
||||
"randomcolor": "^0.6.0",
|
||||
"readline-sync": "^1.4.7",
|
||||
"rimraf": "^4.0.0",
|
||||
"sanitize-filename": "^1.6.3",
|
||||
"scrypt-kdf": "^2.0.1",
|
||||
"sequelize": "^5.21.1",
|
||||
"shortid": "2.2.16",
|
||||
"socket.io": "^2.1.1",
|
||||
"sqlite3": "^5.0.8",
|
||||
"store": "^2.0.12",
|
||||
"string": "^3.3.3",
|
||||
"toobusy-js": "^0.5.1",
|
||||
"umzug": "^2.3.0",
|
||||
"uuid": "^9.0.0",
|
||||
"validator": "^13.0.0",
|
||||
"winston": "^3.1.0",
|
||||
"xss": "^1.0.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^14.13.1 || 16.x"
|
||||
},
|
||||
"bugs": "https://github.com/hedgedoc/hedgedoc/issues",
|
||||
"keywords": [
|
||||
"Collaborative",
|
||||
"Markdown",
|
||||
"Notes"
|
||||
],
|
||||
"homepage": "https://hedgedoc.org",
|
||||
"maintainers": [
|
||||
{
|
||||
"name": "Claudius Coenen",
|
||||
"url": "https://www.claudiuscoenen.de/"
|
||||
},
|
||||
{
|
||||
"name": "Christoph (Sheogorath) Kern",
|
||||
"email": "codimd@sheogorath.shivering-isles.com",
|
||||
"url": "https://shivering-isles.com"
|
||||
},
|
||||
{
|
||||
"name": "David Mehren",
|
||||
"email": "hedgedoc@herrmehren.de"
|
||||
}
|
||||
],
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/hedgedoc/hedgedoc.git"
|
||||
},
|
||||
"devDependencies": {
|
||||
"abcjs": "6.1.9",
|
||||
"babel-cli": "6.26.0",
|
||||
"babel-core": "6.26.3",
|
||||
"babel-loader": "7.1.5",
|
||||
"babel-plugin-transform-runtime": "6.23.0",
|
||||
"babel-polyfill": "6.26.0",
|
||||
"babel-preset-env": "1.7.0",
|
||||
"babel-runtime": "6.26.0",
|
||||
"bootstrap": "3.4.1",
|
||||
"bootstrap-validator": "0.11.9",
|
||||
"codemirror": "git+https://github.com/hedgedoc/CodeMirror.git#hedgedoc/1.9.7",
|
||||
"copy-webpack-plugin": "6.4.1",
|
||||
"css-loader": "5.2.7",
|
||||
"emojify.js": "1.1.0",
|
||||
"esbuild-loader": "3.0.1",
|
||||
"escape-html": "1.0.3",
|
||||
"eslint": "8.34.0",
|
||||
"eslint-config-standard": "17.0.0",
|
||||
"eslint-plugin-import": "2.27.5",
|
||||
"eslint-plugin-n": "15.6.1",
|
||||
"eslint-plugin-node": "11.1.0",
|
||||
"eslint-plugin-promise": "6.1.1",
|
||||
"eslint-plugin-standard": "4.1.0",
|
||||
"exports-loader": "1.1.1",
|
||||
"expose-loader": "1.0.3",
|
||||
"file-loader": "6.2.0",
|
||||
"file-saver": "2.0.5",
|
||||
"flowchart.js": "1.17.1",
|
||||
"fork-awesome": "1.2.0",
|
||||
"gist-embed": "2.6.0",
|
||||
"highlight.js": "10.7.3",
|
||||
"html-webpack-plugin": "4.5.2",
|
||||
"imports-loader": "1.2.0",
|
||||
"ionicons": "2.0.1",
|
||||
"jquery": "3.6.3",
|
||||
"jquery-mousewheel": "3.1.13",
|
||||
"jquery-ui": "1.13.2",
|
||||
"js-cookie": "3.0.1",
|
||||
"js-sequence-diagrams": "git+https://github.com/hedgedoc/js-sequence-diagrams.git",
|
||||
"js-yaml": "3.14.1",
|
||||
"jsonlint": "1.6.3",
|
||||
"keymaster": "1.6.2",
|
||||
"less": "4.1.3",
|
||||
"less-loader": "7.3.0",
|
||||
"list.js": "2.3.1",
|
||||
"mathjax": "2.7.9",
|
||||
"mermaid": "9.1.7",
|
||||
"mini-css-extract-plugin": "1.6.2",
|
||||
"mocha": "10.2.0",
|
||||
"mock-require": "3.0.3",
|
||||
"optimize-css-assets-webpack-plugin": "6.0.1",
|
||||
"prismjs": "1.29.0",
|
||||
"raphael": "2.3.0",
|
||||
"remark-cli": "11.0.0",
|
||||
"remark-preset-lint-markdown-style-guide": "5.1.2",
|
||||
"reveal.js": "3.9.2",
|
||||
"select2": "3.5.2-browserify",
|
||||
"socket.io-client": "2.5.0",
|
||||
"spin.js": "4.1.1",
|
||||
"string-loader": "0.0.1",
|
||||
"turndown": "7.1.1",
|
||||
"url-loader": "4.1.1",
|
||||
"velocity-animate": "1.5.2",
|
||||
"visibilityjs": "2.0.2",
|
||||
"viz.js": "1.8.2",
|
||||
"webpack": "4.46.0",
|
||||
"webpack-cli": "4.10.0",
|
||||
"webpack-merge": "5.8.0",
|
||||
"wurl": "2.5.4"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"bufferutil": "^4.0.0",
|
||||
"utf-8-validate": "^6.0.0"
|
||||
}
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -I nixpkgs=../../../../ -i bash -p nix wget prefetch-yarn-deps jq
|
||||
set -euo pipefail
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
if [ "$#" -gt 1 ] || [[ "$1" == -* ]]; then
|
||||
echo "Regenerates packaging data for the hedgedoc packages."
|
||||
echo "Usage: $0 [git release tag]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
version="$1"
|
||||
|
||||
if [ -z "$version" ]; then
|
||||
version="$(wget -O- "https://api.github.com/repos/hedgedoc/hedgedoc/releases?per_page=1" | jq -r '.[0].tag_name')"
|
||||
fi
|
||||
|
||||
src="https://raw.githubusercontent.com/hedgedoc/hedgedoc/$version"
|
||||
|
||||
wget "$src/package.json" -O package.json
|
||||
wget "$src/yarn.lock" -O yarn.lock
|
||||
|
||||
src_old_hash=$(nix-prefetch-url --unpack "https://github.com/hedgedoc/hedgedoc/releases/download/$version/hedgedoc-$version.tar.gz")
|
||||
src_hash=$(nix hash to-sri --type sha256 $src_old_hash)
|
||||
yarn_hash=$(prefetch-yarn-deps yarn.lock)
|
||||
|
||||
sed -i "s|version = \".*\"|version = \"$version\"|" default.nix
|
||||
sed -i "s|hash = \".*\"|hash = \"$src_hash\"|" default.nix
|
||||
sed -i "s|sha256 = \".*\"|sha256 = \"$yarn_hash\"|" default.nix
|
||||
|
||||
rm yarn.lock
|
Loading…
Reference in New Issue
Block a user