Commit 07f776a2 authored by dish's avatar dish
Browse files

elmPackages.elm-pages: drop

Was broken and seemingly unmaintained.
parent 9357c567
Loading
Loading
Loading
Loading
+2 −19
Original line number Diff line number Diff line
@@ -23,19 +23,7 @@ let
      ;
  };

  # Patched, originally npm-downloaded, packages
  patchedNodePkgs = import ./packages/node {
    inherit
      pkgs
      lib
      nodejs
      makeWrapper
      ;
  };

  assembleScope =
    self: basics:
    (hs98Pkgs self).elmPkgs // (hs96Pkgs self).elmPkgs // (patchedNodePkgs self) // basics;
  assembleScope = self: basics: (hs98Pkgs self).elmPkgs // (hs96Pkgs self).elmPkgs // basics;
in
lib.makeScope pkgs.newScope (
  self:
@@ -44,12 +32,6 @@ lib.makeScope pkgs.newScope (
    {
      inherit fetchElmDeps nodejs;

      /*
        Node/NPM based dependencies can be upgraded using script `packages/generate-node-packages.sh`.

        * Packages which depend on npm installation of elm can be patched using
          `patchNpmElm` function defined in `packages/lib.nix`.
      */
      elmLib = import ./lib {
        inherit lib;
        inherit (pkgs) writeScriptBin stdenv;
@@ -90,6 +72,7 @@ lib.makeScope pkgs.newScope (
    }
    // lib.optionalAttrs config.allowAliases {
      create-elm-app = throw "'elmPackages.create-elm-app' has not had a release since December 2020, so it was removed."; # Added 2025-11-15
      elm-pages = throw "'elmPackages.elm-pages' has been removed, as it was broken in nixpkgs and was not maintained."; # Added 2025-11-15
    }
  )
)
+1 −3
Original line number Diff line number Diff line
@@ -9,6 +9,4 @@ Please refer to [nix documentation](https://nixos.org/nixpkgs/manual/#how-to-cre
and [cabal2nix readme](https://github.com/NixOS/cabal2nix#readme) for more information. Elm-format [update scripts](https://github.com/avh4/elm-format/tree/master/package/nix)
is part of its repository.

Node dependencies are defined in [node-packages.json](node/node-packages.json).
[Node2nix](https://github.com/svanderburg/node2nix) is used for generating nix expression
from this file. Use [generate-node-packages.sh](node/generate-node-packages.sh) for updates of nix expressions.
Node dependencies are defined with [`buildNpmPackage`](https://nixos.org/manual/nixpkgs/stable/#javascript-buildNpmPackage).
+0 −27
Original line number Diff line number Diff line
{
  pkgs,
  lib,
  nodejs,
  makeWrapper,
}:
self:

let
  # Untouched npm-downloaded packages
  nodePkgs = pkgs.callPackage ./node-composition.nix {
    inherit pkgs nodejs;
    inherit (pkgs.stdenv.hostPlatform) system;
  };
in
{
  elm-pages = import ./elm-pages {
    inherit
      nodePkgs
      pkgs
      lib
      makeWrapper
      ;
  };

  elm-land = pkgs.elm-land; # Alias
}
+0 −67
Original line number Diff line number Diff line
{
  nodePkgs,
  pkgs,
  lib,
  makeWrapper,
}:

let
  ESBUILD_BINARY_PATH = lib.getExe (
    pkgs.esbuild.override {
      buildGoModule =
        args:
        pkgs.buildGoModule (
          args
          // rec {
            version = "0.25.5";
            src = pkgs.fetchFromGitHub {
              owner = "evanw";
              repo = "esbuild";
              rev = "v${version}";
              hash = "sha256-jemGZkWmN1x2+ZzJ5cLp3MoXO0oDKjtZTmZS9Be/TDw=";
            };
            vendorHash = "sha256-+BfxCyg0KkDQpHt/wycy/8CTG6YBA/VJvJFhhzUnSiQ=";
          }
        );
    }
  );
in
nodePkgs."elm-pages".overrideAttrs (old: {
  inherit ESBUILD_BINARY_PATH;
  nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [
    makeWrapper
    old.nodejs.pkgs.node-gyp-build
  ];

  # can't use `patches = [ <patch_file> ]` with a nodePkgs derivation;
  # need to patch in one of the build phases instead.
  # see upstream issue https://github.com/dillonkearns/elm-pages/issues/305 for dealing with the read-only problem
  preFixup = ''
    patch $out/lib/node_modules/elm-pages/generator/src/codegen.js ${./fix-read-only.patch}
    patch $out/lib/node_modules/elm-pages/generator/src/init.js ${./fix-init-read-only.patch}
  '';

  postFixup = ''
    wrapProgram $out/bin/elm-pages --prefix PATH : ${
      with pkgs.elmPackages;
      lib.makeBinPath [
        elm
        elm-review
        elm-optimize-level-2
      ]
    }
  '';

  meta =
    with lib;
    nodePkgs."elm-pages".meta
    // {
      description = "Statically typed site generator for Elm";
      homepage = "https://github.com/dillonkearns/elm-pages";
      license = licenses.bsd3;
      maintainers = [
        maintainers.turbomack
        maintainers.jali-clarke
      ];
    };
})
+0 −39
Original line number Diff line number Diff line
diff --git a/generator/src/init.js b/generator/src/init.js
index 06386ff..7127dae 100644
--- a/generator/src/init.js
+++ b/generator/src/init.js
@@ -6,6 +6,20 @@ import { fileURLToPath } from "url";
 const __filename = fileURLToPath(import.meta.url);
 const __dirname = path.dirname(__filename);
 
+let walknDo = function(somePath, doStuff) {
+  doStuff(somePath, true);
+  const dir = fs.readdirSync(somePath)
+  dir.forEach((i) => {
+    let p = path.join(somePath, i);
+    const s = fs.statSync(p)
+    if (s.isDirectory()) {
+      walknDo(p, doStuff)
+    } else {
+      doStuff(p);
+    }
+  });
+}
+
 /**
  * @param {string} name
  */
@@ -18,6 +32,13 @@ export async function run(name) {
   if (!fs.existsSync(name)) {
     try {
       await fsExtra.copy(template, appRoot);
+      walknDo(appRoot, (file, isDir) => {
+        if (isDir) {
+          fs.chmodSync(file, 0o755);
+        } else {
+          fs.chmodSync(file, 0o644);
+        }
+      });
       fs.renameSync(
         path.resolve(appRoot, "gitignore"),
         path.resolve(appRoot, ".gitignore")
Loading