diff --git a/flake.lock b/flake.lock index e9f1306..48ac42e 100644 --- a/flake.lock +++ b/flake.lock @@ -8,11 +8,11 @@ }, "locked": { "dir": "pkgs/firefox-addons", - "lastModified": 1753329806, - "narHash": "sha256-PxQVUrK1rJEQoUSp6vO7OUfvkoZZUtY98HoWUIYW69M=", + "lastModified": 1751429002, + "narHash": "sha256-ihzv16jv0mx4yW64wXuJBnTKigRVsR+aY9i/5WvS+tA=", "owner": "rycee", "repo": "nur-expressions", - "rev": "87fd18a0002b8d63a8520dd569a99de509fc43c5", + "rev": "08812a6d58b96f717f9d4a8c3e5aa9db0554eb6f", "type": "gitlab" }, "original": { @@ -23,22 +23,6 @@ } }, "flake-compat": { - "flake": false, - "locked": { - "lastModified": 1751685974, - "narHash": "sha256-NKw96t+BgHIYzHUjkTK95FqYRVKB8DHpVhefWSz/kTw=", - "ref": "refs/heads/main", - "rev": "549f2762aebeff29a2e5ece7a7dc0f955281a1d1", - "revCount": 92, - "type": "git", - "url": "https://git.lix.systems/lix-project/flake-compat.git" - }, - "original": { - "type": "git", - "url": "https://git.lix.systems/lix-project/flake-compat.git" - } - }, - "flake-compat_2": { "flake": false, "locked": { "lastModified": 1650374568, @@ -56,17 +40,14 @@ }, "flake-parts": { "inputs": { - "nixpkgs-lib": [ - "nvf", - "nixpkgs" - ] + "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1753121425, - "narHash": "sha256-TVcTNvOeWWk1DXljFxVRp+E0tzG1LhrVjOGGoMHuXio=", + "lastModified": 1749398372, + "narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "644e0fc48951a860279da645ba77fe4a6e814c5e", + "rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569", "type": "github" }, "original": { @@ -77,10 +58,7 @@ }, "flake-utils": { "inputs": { - "systems": [ - "nvf", - "systems" - ] + "systems": "systems" }, "locked": { "lastModified": 1731533236, @@ -117,7 +95,7 @@ }, "flake-utils_2": { "inputs": { - "systems": "systems_2" + "systems": "systems_3" }, "locked": { "lastModified": 1694529238, @@ -140,11 +118,11 @@ ] }, "locked": { - "lastModified": 1753294394, - "narHash": "sha256-1Dfgq09lHZ8AdYB2Deu/mYP1pMNpob8CgqT5Mzo44eI=", + "lastModified": 1751429452, + "narHash": "sha256-4s5vRtaqdNhVBnbOWOzBNKrRa0ShQTLoEPjJp3joeNI=", "owner": "nix-community", "repo": "home-manager", - "rev": "1fde6fb1be6cd5dc513dc1c287d69e4eb2de973e", + "rev": "df12269039dcf752600b1bcc176bacf2786ec384", "type": "github" }, "original": { @@ -168,13 +146,34 @@ "type": "github" } }, + "nil": { + "inputs": { + "nixpkgs": [ + "nvf", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1750047244, + "narHash": "sha256-vluLARrk4485npdyHOj8XKr0yk6H22pNf+KVRNL+i/Y=", + "owner": "oxalica", + "repo": "nil", + "rev": "870a4b1b5f12004832206703ac15aa85c42c247b", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "nil", + "type": "github" + } + }, "nixos-hardware": { "locked": { - "lastModified": 1753122741, - "narHash": "sha256-nFxE8lk9JvGelxClCmwuJYftbHqwnc01dRN4DVLUroM=", + "lastModified": 1751432711, + "narHash": "sha256-136MeWtckSHTN9Z2WRNRdZ8oRP3vyx3L8UxeBYE+J9w=", "owner": "nixos", "repo": "nixos-hardware", - "rev": "cc66fddc6cb04ab479a1bb062f4d4da27c936a22", + "rev": "497ae1357f1ac97f1aea31a4cb74ad0d534ef41f", "type": "github" }, "original": { @@ -185,11 +184,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1753250450, - "narHash": "sha256-i+CQV2rPmP8wHxj0aq4siYyohHwVlsh40kV89f3nw1s=", + "lastModified": 1751271578, + "narHash": "sha256-P/SQmKDu06x8yv7i0s8bvnnuJYkxVGBWLWHaU+tt4YY=", "owner": "nixos", "repo": "nixpkgs", - "rev": "fc02ee70efb805d3b2865908a13ddd4474557ecf", + "rev": "3016b4b15d13f3089db8a41ef937b13a9e33a8df", "type": "github" }, "original": { @@ -199,13 +198,28 @@ "type": "github" } }, + "nixpkgs-lib": { + "locked": { + "lastModified": 1748740939, + "narHash": "sha256-rQaysilft1aVMwF14xIdGS3sj1yHlI6oKQNBRTF40cc=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "656a64127e9d791a334452c6b6606d17539476e2", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, "nixpkgs_2": { "locked": { - "lastModified": 1752997324, - "narHash": "sha256-vtTM4oDke3SeDj+1ey6DjmzXdq8ZZSCLWSaApADDvIE=", + "lastModified": 1750215678, + "narHash": "sha256-Rc/ytpamXRf6z8UA2SGa4aaWxUXRbX2MAWIu2C8M+ok=", "owner": "nixos", "repo": "nixpkgs", - "rev": "7c688a0875df5a8c28a53fb55ae45e94eae0dddb", + "rev": "5395fb3ab3f97b9b7abca147249fa2e8ed27b192", "type": "github" }, "original": { @@ -233,19 +247,19 @@ }, "nvf": { "inputs": { - "flake-compat": "flake-compat", "flake-parts": "flake-parts", "flake-utils": "flake-utils", "mnw": "mnw", + "nil": "nil", "nixpkgs": "nixpkgs_2", - "systems": "systems" + "systems": "systems_2" }, "locked": { - "lastModified": 1753181140, - "narHash": "sha256-daKfPQnipcRnKnXknDzv+fzNKeEY3r/10y8YMVQ10vU=", + "lastModified": 1751186226, + "narHash": "sha256-Bt7jtmCW72JUPxOIrV73qBTAUOy4qvJXsls2ERDUcGo=", "owner": "notashelf", "repo": "nvf", - "rev": "8fbecab446afe3454ecce6a4b817ec4f123a4a34", + "rev": "5bad5dd94ce5ea3b40b08d9e6802e69d02198d21", "type": "github" }, "original": { @@ -292,7 +306,7 @@ }, "snowfall-lib": { "inputs": { - "flake-compat": "flake-compat_2", + "flake-compat": "flake-compat", "flake-utils-plus": "flake-utils-plus", "nixpkgs": [ "nixpkgs" @@ -317,11 +331,11 @@ "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1752544651, - "narHash": "sha256-GllP7cmQu7zLZTs9z0J2gIL42IZHa9CBEXwBY9szT0U=", + "lastModified": 1750119275, + "narHash": "sha256-Rr7Pooz9zQbhdVxux16h7URa6mA80Pb/G07T4lHvh0M=", "owner": "Mic92", "repo": "sops-nix", - "rev": "2c8def626f54708a9c38a5861866660395bb3461", + "rev": "77c423a03b9b2b79709ea2cb63336312e78b72e2", "type": "github" }, "original": { @@ -375,6 +389,21 @@ "repo": "default", "type": "github" } + }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } } }, "root": "root", diff --git a/overlays/cinny/default.nix b/overlays/cinny/default.nix index 3c04f0c..3b4c00e 100644 --- a/overlays/cinny/default.nix +++ b/overlays/cinny/default.nix @@ -8,16 +8,16 @@ final: prev: { awesome-flake = (prev.awesome-flake or { }) // { cinny = prev.cinny-unwrapped.overrideAttrs (_old: rec { pname = "cinny-unwrapped"; - version = "65475050d76d6e8da8c3402528215b1425e8ed4e"; + version = "325144d8b2ca53c32fc6e1eace0603968a5ddc40"; src = final.fetchFromGitHub { owner = "GigiaJ"; repo = "cinny"; rev = version; - hash = "sha256-kJZDc53mcJrGIw3Dl4ANq+1O5O2p0tcO2btQGNGRg4A="; + hash = "sha256-822P12rzSLzje7KuBF2RB70SPdfCaHZaPV/1Nr4CCnY="; }; - npmDepsHash = "sha256-GkD+CrblXBv7yPVrTBVIGkz7Wu5llWzlluNq7rmm3CE="; + npmDepsHash = "sha256-pP7JH/K9QSqyUVg0UFTDzZvRoL5CeP5pudv83eHVoTo="; npmDeps = final.fetchNpmDeps { inherit src; name = "${pname}-${version}-npm-deps"; diff --git a/overlays/prisma/default.nix b/overlays/prisma/default.nix index f25d0bd..bde091c 100644 --- a/overlays/prisma/default.nix +++ b/overlays/prisma/default.nix @@ -5,5 +5,9 @@ }: final: prev: { - inherit (channels.stable) prisma; + prisma = prev.prisma.overrideAttrs (_old: rec { + pname = "prisma"; + + meta.mainProgram = "prisma"; + }); } diff --git a/packages/linkwarden/01-localfont.patch b/packages/linkwarden/01-localfont.patch deleted file mode 100644 index 459ccc3..0000000 --- a/packages/linkwarden/01-localfont.patch +++ /dev/null @@ -1,42 +0,0 @@ -diff --git i/apps/web/components/Preservation/ReadableView.tsx w/apps/web/components/Preservation/ReadableView.tsx -index 64f14186..daff3636 100644 ---- i/apps/web/components/Preservation/ReadableView.tsx -+++ w/apps/web/components/Preservation/ReadableView.tsx -@@ -20,13 +20,13 @@ import { - } from "@linkwarden/router/highlights"; - import { Highlight } from "@linkwarden/prisma/client"; - import { useUser } from "@linkwarden/router/user"; --import { Caveat } from "next/font/google"; --import { Bentham } from "next/font/google"; -+import localFont from "next/font/local"; - import { Separator } from "../ui/separator"; - import { Button } from "../ui/button"; - --const caveat = Caveat({ subsets: ["latin"] }); --const bentham = Bentham({ subsets: ["latin"], weight: "400" }); -+ -+const caveat = localFont({ src: "../../public/caveat.ttf" }); -+const bentham = localFont({ src: "../../public/bentham.ttf" }); - - type Props = { - link: LinkIncludingShortenedCollectionAndTags; -diff --git i/apps/web/components/TextStyleDropdown.tsx w/apps/web/components/TextStyleDropdown.tsx -index a84587d9..59a291e4 100644 ---- i/apps/web/components/TextStyleDropdown.tsx -+++ w/apps/web/components/TextStyleDropdown.tsx -@@ -13,12 +13,11 @@ import { - import { Button } from "@/components/ui/button"; - import { FitWidth, FormatLineSpacing, FormatSize } from "@/components/ui/icons"; - import { useUpdateUserPreference, useUser } from "@linkwarden/router/user"; --import { Caveat } from "next/font/google"; --import { Bentham } from "next/font/google"; -+import localFont from "next/font/local"; - import { useTranslation } from "next-i18next"; - --const caveat = Caveat({ subsets: ["latin"] }); --const bentham = Bentham({ subsets: ["latin"], weight: "400" }); -+const caveat = localFont({ src: "../public/caveat.ttf" }); -+const bentham = localFont({ src: "../public/bentham.ttf" }); - - const fontSizes = [ - "12px", diff --git a/packages/linkwarden/default.nix b/packages/linkwarden/default.nix index 8258489..a262381 100644 --- a/packages/linkwarden/default.nix +++ b/packages/linkwarden/default.nix @@ -6,14 +6,13 @@ fetchYarnDeps, makeWrapper, nixosTests, + yarnBuildHook, yarnConfigHook, - fetchpatch, # dependencies bash, monolith, nodejs, openssl, - google-fonts, playwright-driver, prisma, prisma-engines, @@ -39,42 +38,28 @@ let cp -r lib $out/lib/node_modules/bcrypt/ ''; }; - - google-fonts' = google-fonts.override { - fonts = [ - "Caveat" - "Bentham" - ]; - }; in stdenvNoCC.mkDerivation rec { pname = "linkwarden"; - version = "2.11.3"; + version = "2.10.0"; src = fetchFromGitHub { owner = "linkwarden"; repo = "linkwarden"; tag = "v${version}"; - hash = "sha256-/ktAfloJBmXKAn7/Er7rloF5bWuKl/DnofRqHcIrHkg="; + hash = "sha256-mtygHx09VqrVq5eiCm8UbVM+bjA6n4MbRRT1HcWnUAo="; }; - patches = [ - ./01-localfont.patch - (fetchpatch { - url = "https://github.com/linkwarden/linkwarden/pull/1290.patch"; - hash = "sha256-kq1GIEW0chnPmzvg4eDSS/5WtRyWlrHlk41h4pSCMzg="; - }) - ]; - yarnOfflineCache = fetchYarnDeps { yarnLock = src + "/yarn.lock"; - hash = "sha256-dqkaTMQYufUjENteOeS82B+/vZxbvCMOcmaP6IODm1w="; + hash = "sha256-D6iZp7O90ZwxyiwRZ1H67eUphh3kRplu3ucOEJIRR/w="; }; nativeBuildInputs = [ makeWrapper nodejs prisma + yarnBuildHook yarnConfigHook ]; @@ -85,10 +70,12 @@ stdenvNoCC.mkDerivation rec { NODE_ENV = "production"; postPatch = '' - for f in packages/filesystem/*Folder.ts packages/filesystem/*File.ts; do + substituteInPlace package.json \ + --replace-fail "yarn worker:prod" "ts-node --transpile-only --skip-project scripts/worker.ts" + + for f in lib/api/storage/*Folder.ts lib/api/storage/*File.ts; do substituteInPlace $f \ - --replace-fail 'process.cwd(),' "" \ - --replace-fail '"../..",' "" + --replace-fail 'path.join(process.cwd(), storagePath + "/" + file' 'path.join(storagePath, file' done ''; @@ -97,18 +84,7 @@ stdenvNoCC.mkDerivation rec { export PRISMA_QUERY_ENGINE_LIBRARY="${prisma-engines}/lib/libquery_engine.node" export PRISMA_QUERY_ENGINE_BINARY="${prisma-engines}/bin/query-engine" export PRISMA_SCHEMA_ENGINE_BINARY="${prisma-engines}/bin/schema-engine" - ''; - - buildPhase = '' - runHook preBuild - - cp ${google-fonts'}/share/fonts/truetype/Bentham-* ./apps/web/public/bentham.ttf - cp ${google-fonts'}/share/fonts/truetype/Caveat* ./apps/web/public/caveat.ttf - - yarn prisma:generate - yarn web:build - - runHook postBuild + prisma generate ''; postBuild = '' @@ -121,25 +97,14 @@ stdenvNoCC.mkDerivation rec { rm -r node_modules/bcrypt node_modules/@next/swc-* ln -s ${bcrypt}/lib/node_modules/bcrypt node_modules/ - mkdir -p $out/share/linkwarden/apps/web/.next $out/bin - cp -r apps/web/.next apps/web/* $out/share/linkwarden/apps/web - cp -r apps/worker $out/share/linkwarden/apps/worker - cp -r packages $out/share/linkwarden/ - cp -r node_modules $out/share/linkwarden/ - rm -r $out/share/linkwarden/node_modules/mobile-app + mkdir -p $out/share/linkwarden/.next $out/bin + cp -r * .next $out/share/linkwarden/ echo "#!${lib.getExe bash} -e export DATABASE_URL=\''${DATABASE_URL-"postgresql://\$DATABASE_USER:\$POSTGRES_PASSWORD@\$DATABASE_HOST:\$DATABASE_PORT/\$DATABASE_NAME"} export npm_config_cache="\$LINKWARDEN_CACHE_DIR/npm" - - if [ \"\$1\" == \"worker\" ]; then - echo "Starting worker" - ${lib.getExe' nodejs "npm"} start --prefix $out/share/linkwarden/apps/worker - else - echo "Starting server" - ${lib.getExe prisma} migrate deploy --schema $out/share/linkwarden/packages/prisma/schema.prisma \ - && ${lib.getExe' nodejs "npm"} start --prefix $out/share/linkwarden/apps/web -- -H \$LINKWARDEN_HOST -p \$LINKWARDEN_PORT - fi + ${lib.getExe prisma} migrate deploy --schema $out/share/linkwarden/prisma/schema.prisma \ + && ${lib.getExe' nodejs "npm"} start --prefix $out/share/linkwarden -- -H \$LINKWARDEN_HOST -p \$LINKWARDEN_PORT " > $out/bin/start.sh chmod +x $out/bin/start.sh @@ -159,8 +124,7 @@ stdenvNoCC.mkDerivation rec { --set-default LINKWARDEN_CACHE_DIR /var/cache/linkwarden \ --set-default LINKWARDEN_HOST localhost \ --set-default LINKWARDEN_PORT 3000 \ - --set-default STORAGE_FOLDER /var/lib/linkwarden \ - --set-default NEXT_TELEMETRY_DISABLED 1 + --set-default STORAGE_FOLDER /var/lib/linkwarden runHook postInstall '';