gancio: remove mkYarnPackage usage
This commit is contained in:
parent
5b13e7dfe6
commit
6bd3ff7838
@ -1,145 +0,0 @@
|
||||
{
|
||||
"name": "gancio",
|
||||
"version": "1.19.4",
|
||||
"description": "A shared agenda for local communities",
|
||||
"author": "lesion",
|
||||
"scripts": {
|
||||
"build": "nuxt build --modern",
|
||||
"start:inspect": "NODE_ENV=production node --inspect node_modules/.bin/nuxt start --modern",
|
||||
"dev": "nuxt dev",
|
||||
"dev:inspect": "node --inspect node_modules/.bin/nuxt dev",
|
||||
"test-sqlite": "export NODE_ENV=test; export DB=sqlite; jest --forceExit --runInBand --bail=1 --testTimeout=10000",
|
||||
"test-mariadb": "export NODE_ENV=test; export DB=mariadb; jest --runInBand --bail=1",
|
||||
"test-postgresql": "export NODE_ENV=test; export DB=postgresql; jest --runInBand --bail=1",
|
||||
"start": "nuxt start --modern",
|
||||
"doc": "cd docs && bundle exec jekyll b",
|
||||
"doc:dev": "cd docs && bundle exec jekyll s --drafts",
|
||||
"migrate": "NODE_ENV=production sequelize db:migrate",
|
||||
"migrate:dev": "sequelize db:migrate",
|
||||
"analyze": "nuxt build --analyze",
|
||||
"build:wc": "cd webcomponents; yarn build:lib; cp dist/gancio-events.js ../wp-plugin/js/gancio-events.es.js; cp dist/gancio-events.js ../assets/gancio-events.es.js; cp dist/gancio-events.js ../docs/assets/js/gancio-events.es.js; cp dist/gancio-events.js ../static/gancio-events.es.js;"
|
||||
},
|
||||
"files": [
|
||||
"server/",
|
||||
"assets/",
|
||||
"modules/",
|
||||
"nuxt.config.js",
|
||||
"static/",
|
||||
"views/",
|
||||
"locales/email/",
|
||||
"locales/",
|
||||
"store/",
|
||||
".nuxt/",
|
||||
"gancio_plugins",
|
||||
"yarn.lock"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=14 <=22"
|
||||
},
|
||||
"dependencies": {
|
||||
"@mdi/js": "^7.4.47",
|
||||
"@nuxtjs/auth": "^4.9.1",
|
||||
"@nuxtjs/axios": "^5.13.6",
|
||||
"@nuxtjs/i18n": "^7.3.1",
|
||||
"@nuxtjs/sitemap": "^2.4.0",
|
||||
"@peertube/http-signature": "^1.7.0",
|
||||
"accept-language": "^3.0.18",
|
||||
"bcryptjs": "^2.4.3",
|
||||
"body-parser": "^2.0.0-beta.2",
|
||||
"cookie-parser": "^1.4.6",
|
||||
"cookie-session": "^2.1.0",
|
||||
"cookie-universal-nuxt": "^2.2.2",
|
||||
"cors": "^2.8.5",
|
||||
"dayjs": "^1.11.11",
|
||||
"dompurify": "^3.1.5",
|
||||
"email-templates": "^11.1.1",
|
||||
"express": "^4.19.2",
|
||||
"express-async-errors": "^3.1.1",
|
||||
"express-rate-limit": "^7.3.1",
|
||||
"https-proxy-agent": "^7.0.4",
|
||||
"ical.js": "^2.0.1",
|
||||
"ics": "^3.7.6",
|
||||
"jsdom": "^24.1.0",
|
||||
"leaflet": "^1.9.4",
|
||||
"linkify-html": "^4.1.3",
|
||||
"linkifyjs": "4.1.3",
|
||||
"lodash": "^4.17.21",
|
||||
"luxon": "^3.4.4",
|
||||
"mariadb": "^2.5.6",
|
||||
"memory-cache": "^0.2.0",
|
||||
"microformat-node": "^2.0.4",
|
||||
"minify-css-string": "^1.0.0",
|
||||
"mkdirp": "^3.0.1",
|
||||
"multer": "^1.4.5-lts.1",
|
||||
"nuxt-edge": "2.17.2-28258581.6132947",
|
||||
"oauth2orize": "^1.12.0",
|
||||
"passport": "^0.7.0",
|
||||
"passport-anonymous": "^1.0.1",
|
||||
"passport-custom": "^1.1.1",
|
||||
"passport-http": "^0.3.0",
|
||||
"passport-http-bearer": "^1.0.1",
|
||||
"passport-oauth2-client-password": "^0.1.2",
|
||||
"passport-oauth2-client-public": "^0.0.1",
|
||||
"pg": "^8.12.0",
|
||||
"semver": "^7.6.2",
|
||||
"sequelize": "^6.37.3",
|
||||
"sequelize-slugify": "^1.6.2",
|
||||
"sharp": "^0.27.2",
|
||||
"sqlite3": "^5.1.7",
|
||||
"telegraf": "^4.16.3",
|
||||
"tiptap": "^1.32.2",
|
||||
"tiptap-extensions": "^1.35.2",
|
||||
"umzug": "^2.3.0",
|
||||
"v-calendar": "^2.4.2",
|
||||
"vue2-leaflet": "^2.7.1",
|
||||
"vuetify": "2.6.14",
|
||||
"winston": "^3.13.0",
|
||||
"winston-daily-rotate-file": "^5.0.0",
|
||||
"yargs": "^17.7.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@nuxtjs/vuetify": "^1.12.3",
|
||||
"@vue/language-plugin-pug": "^1.8.27",
|
||||
"jest": "^29.7.0",
|
||||
"jest-environment-node": "^29.7.0",
|
||||
"prettier": "^2.8.8",
|
||||
"pug": "^3.0.3",
|
||||
"pug-plain-loader": "^1.1.0",
|
||||
"sass": "^1.77.6",
|
||||
"sequelize-cli": "^6.6.2",
|
||||
"supertest": "^6.3.4",
|
||||
"webpack": "^4.47.0",
|
||||
"webpack-cli": "^4.10.0"
|
||||
},
|
||||
"resolutions": {
|
||||
"vue": "2.7.16",
|
||||
"vue-template-compiler": "2.7.16",
|
||||
"vue-server-renderer": "2.7.16"
|
||||
},
|
||||
"bin": {
|
||||
"gancio": "server/cli.js"
|
||||
},
|
||||
"bugs": {
|
||||
"email": "lesion@autistici.org",
|
||||
"url": "https://framagit.org/les/gancio/issues"
|
||||
},
|
||||
"homepage": "https://gancio.org",
|
||||
"keywords": [
|
||||
"AP",
|
||||
"gancio",
|
||||
"events",
|
||||
"federation",
|
||||
"activitypub",
|
||||
"event",
|
||||
"server",
|
||||
"self-host",
|
||||
"app"
|
||||
],
|
||||
"license": "AGPL-3.0",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://framagit.org/les/gancio"
|
||||
},
|
||||
"snyk": true,
|
||||
"packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
|
||||
}
|
@ -1,89 +1,71 @@
|
||||
{
|
||||
mkYarnPackage,
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitLab,
|
||||
fetchYarnDeps,
|
||||
python3,
|
||||
|
||||
yarnConfigHook,
|
||||
yarnBuildHook,
|
||||
yarnInstallHook,
|
||||
nodejs,
|
||||
pkg-config,
|
||||
nodePackages,
|
||||
node-gyp,
|
||||
|
||||
vips,
|
||||
lib,
|
||||
sqlite,
|
||||
|
||||
nixosTests,
|
||||
}:
|
||||
mkYarnPackage rec {
|
||||
inherit (nodePackages) nodejs;
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "gancio";
|
||||
version = "1.19.4";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "framagit.org";
|
||||
owner = "les";
|
||||
repo = "gancio";
|
||||
rev = "v${version}";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-x8s7eBVmHCY3kAjHjACotCncvZq6OBiLPJGF6hvfawE=";
|
||||
};
|
||||
|
||||
offlineCache = fetchYarnDeps {
|
||||
yarnLock = src + "/yarn.lock";
|
||||
yarnLock = finalAttrs.src + "/yarn.lock";
|
||||
hash = "sha256-LXeAyxZSZOm6GxRuJb5rlHTlQpYa1fdKSENVjwLY4tU=";
|
||||
};
|
||||
|
||||
packageJSON = ./package.json;
|
||||
|
||||
# for pkg-config dependencies:
|
||||
yarnPreBuild = ''
|
||||
export npm_config_nodedir=${nodePackages.nodejs}
|
||||
'';
|
||||
# So that sqlite can be found:
|
||||
pkgConfig.sqlite3 = {
|
||||
nativeBuildInputs = [
|
||||
yarnConfigHook
|
||||
yarnBuildHook
|
||||
yarnInstallHook
|
||||
nodejs
|
||||
(nodejs.python.withPackages (ps: [ ps.setuptools ]))
|
||||
pkg-config
|
||||
nodePackages.prebuild-install
|
||||
node-gyp
|
||||
python3
|
||||
];
|
||||
postInstall = ''
|
||||
yarn --offline run install
|
||||
'';
|
||||
};
|
||||
# Sharp need to find a vips library
|
||||
pkgConfig.sharp = {
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
python3
|
||||
node-gyp
|
||||
nodePackages.semver
|
||||
|
||||
buildInputs = [
|
||||
vips
|
||||
sqlite
|
||||
];
|
||||
buildInputs = [ vips ];
|
||||
|
||||
# generate .node binaries
|
||||
preBuild = ''
|
||||
npm rebuild --verbose --nodedir=${nodejs} --sqlite=${lib.getDev sqlite}
|
||||
'';
|
||||
|
||||
# the node_modules directory will be regenerated by yarnInstallHook, so we save our .node binaries
|
||||
preInstall = ''
|
||||
cp node_modules/sharp/build/Release/sharp.node .
|
||||
cp node_modules/sqlite3/build/Release/node_sqlite3.node .
|
||||
'';
|
||||
|
||||
# and then place them where they belong
|
||||
postInstall = ''
|
||||
yarn --offline run install
|
||||
'';
|
||||
};
|
||||
|
||||
# build need a writeable node_modules
|
||||
configurePhase = ''
|
||||
runHook preConfigure
|
||||
|
||||
cp -r $node_modules node_modules
|
||||
chmod -R +w node_modules
|
||||
|
||||
runHook postConfigure
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
export HOME=$(mktemp -d)
|
||||
yarn --offline build
|
||||
yarn --offline pack --filename gancio.tgz
|
||||
mkdir -p deps/gancio
|
||||
tar -C deps/gancio/ --strip-components=1 -xf gancio.tgz
|
||||
rm gancio.tgz
|
||||
|
||||
runHook postBuild
|
||||
install -Dm755 sharp.node -t $out/lib/node_modules/gancio/node_modules/sharp/build/Release
|
||||
install -Dm755 node_sqlite3.node -t $out/lib/node_modules/gancio/node_modules/sqlite3/build/Release
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = ./update.sh;
|
||||
inherit nodejs;
|
||||
tests = {
|
||||
inherit (nixosTests) gancio;
|
||||
};
|
||||
@ -98,4 +80,4 @@ mkYarnPackage rec {
|
||||
mainProgram = "gancio";
|
||||
maintainers = with lib.maintainers; [ jbgi ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
@ -1,19 +0,0 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p curl common-updater-scripts jq nix prefetch-yarn-deps
|
||||
|
||||
set -eux -o pipefail
|
||||
|
||||
latest_version=$(curl -s https://framagit.org/api/v4/projects/48668/repository/tags | jq --raw-output '.[0].name' | sed 's/^v//')
|
||||
|
||||
nixFile=$(nix-instantiate --eval --strict -A "gancio.meta.position" | sed -re 's/^"(.*):[0-9]+"$/\1/')
|
||||
nixFolder=$(dirname "$nixFile")
|
||||
|
||||
curl -o "$nixFolder/package.json" -s "https://framagit.org/les/gancio/-/raw/v$latest_version/package.json"
|
||||
curl -o "$nixFolder/yarn.lock" -s "https://framagit.org/les/gancio/-/raw/v$latest_version/yarn.lock"
|
||||
|
||||
old_yarn_hash=$(nix-instantiate --eval --strict -A "gancio.offlineCache.outputHash" | tr -d '"' | sed -re 's|[+]|\\&|g')
|
||||
new_yarn_hash=$(nix hash to-sri --type sha256 $(prefetch-yarn-deps "$nixFolder/yarn.lock"))
|
||||
sed -i "$nixFile" -re "s|\"$old_yarn_hash\"|\"$new_yarn_hash\"|"
|
||||
rm "$nixFolder/yarn.lock"
|
||||
|
||||
update-source-version gancio "$latest_version"
|
Loading…
Reference in New Issue
Block a user