Unverified Commit 57d3302d authored by Matteo Pacini's avatar Matteo Pacini Committed by GitHub
Browse files

homer: 25.08.1 -> 25.09.1 & simplify patching (#448954)

parents 5610fb74 caec41b9
Loading
Loading
Loading
Loading
+0 −147
Original line number Diff line number Diff line
From 0f77537ce2ba5c1a23d5c2a154bdc77450d1e0e5 Mon Sep 17 00:00:00 2001
From: Christoph Heiss <christoph@c8h4.io>
Date: Tue, 26 Aug 2025 10:23:14 +0200
Subject: [PATCH] build: enable specifying custom sass compiler path by env-var

Signed-off-by: Christoph Heiss <christoph@c8h4.io>
---
 package.json                |  5 ++++-
 patches/sass-embedded.patch | 15 +++++++++++++++
 pnpm-lock.yaml              | 27 ++++++++++++++++-----------
 3 files changed, 35 insertions(+), 12 deletions(-)
 create mode 100644 patches/sass-embedded.patch

diff --git a/package.json b/package.json
index a67d2c6..17f17b1 100644
--- a/package.json
+++ b/package.json
@@ -32,6 +32,9 @@
   "license": "Apache-2.0",
   "packageManager": "pnpm@10.14.0+sha512.ad27a79641b49c3e481a16a805baa71817a04bbe06a38d17e60e2eaee83f6a146c6a688125f5792e48dd5ba30e7da52a5cda4c3992b9ccf333f9ce223af84748",
   "pnpm": {
-    "neverBuiltDependencies": []
+    "neverBuiltDependencies": [],
+    "patchedDependencies": {
+      "sass-embedded": "patches/sass-embedded.patch"
+    }
   }
 }
diff --git a/patches/sass-embedded.patch b/patches/sass-embedded.patch
new file mode 100644
index 0000000..5e02bed
--- /dev/null
+++ b/patches/sass-embedded.patch
@@ -0,0 +1,15 @@
+diff --git a/dist/lib/src/compiler-path.js b/dist/lib/src/compiler-path.js
+index ae33aa3028e1a120d9e84b043bb19a71f1083b96..7a49d16a54982312ad638632d6750d7bec670f02 100644
+--- a/dist/lib/src/compiler-path.js
++++ b/dist/lib/src/compiler-path.js
+@@ -8,6 +8,10 @@ const p = require("path");
+ const compiler_module_1 = require("./compiler-module");
+ /** The full command for the embedded compiler executable. */
+ exports.compilerCommand = (() => {
++    const binPath = process.env.SASS_EMBEDDED_BIN_PATH;
++    if (binPath) {
++        return [binPath];
++    }
+     try {
+         return [
+             require.resolve(`${compiler_module_1.compilerModule}/dart-sass/src/dart` +
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 8f98554..44d1691 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -4,6 +4,11 @@ settings:
   autoInstallPeers: true
   excludeLinksFromLockfile: false
 
+patchedDependencies:
+  sass-embedded:
+    hash: 24d35db63138795a11bb26b230cf743c82f571c7e2ee061db58263799d659e20
+    path: patches/sass-embedded.patch
+
 importers:
 
   .:
@@ -29,7 +34,7 @@ importers:
         version: 9.32.0
       '@vitejs/plugin-vue':
         specifier: ^6.0.1
-        version: 6.0.1(vite@7.0.6(sass-embedded@1.90.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1))(vue@3.5.18)
+        version: 6.0.1(vite@7.0.6(sass-embedded@1.90.0(patch_hash=24d35db63138795a11bb26b230cf743c82f571c7e2ee061db58263799d659e20))(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1))(vue@3.5.18)
       '@vue/eslint-config-prettier':
         specifier: ^10.2.0
         version: 10.2.0(eslint@9.32.0)(prettier@3.6.2)
@@ -50,13 +55,13 @@ importers:
         version: 3.6.2
       sass-embedded:
         specifier: ^1.90.0
-        version: 1.90.0
+        version: 1.90.0(patch_hash=24d35db63138795a11bb26b230cf743c82f571c7e2ee061db58263799d659e20)
       vite:
         specifier: ^7.0.6
-        version: 7.0.6(sass-embedded@1.90.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1)
+        version: 7.0.6(sass-embedded@1.90.0(patch_hash=24d35db63138795a11bb26b230cf743c82f571c7e2ee061db58263799d659e20))(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1)
       vite-plugin-pwa:
         specifier: ^1.0.2
-        version: 1.0.2(vite@7.0.6(sass-embedded@1.90.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1))(workbox-build@7.3.0)(workbox-window@7.3.0)
+        version: 1.0.2(vite@7.0.6(sass-embedded@1.90.0(patch_hash=24d35db63138795a11bb26b230cf743c82f571c7e2ee061db58263799d659e20))(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1))(workbox-build@7.3.0)(workbox-window@7.3.0)
 
 packages:
 
@@ -3634,10 +3639,10 @@ snapshots:
 
   '@types/trusted-types@2.0.7': {}
 
-  '@vitejs/plugin-vue@6.0.1(vite@7.0.6(sass-embedded@1.90.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1))(vue@3.5.18)':
+  '@vitejs/plugin-vue@6.0.1(vite@7.0.6(sass-embedded@1.90.0(patch_hash=24d35db63138795a11bb26b230cf743c82f571c7e2ee061db58263799d659e20))(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1))(vue@3.5.18)':
     dependencies:
       '@rolldown/pluginutils': 1.0.0-beta.29
-      vite: 7.0.6(sass-embedded@1.90.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1)
+      vite: 7.0.6(sass-embedded@1.90.0(patch_hash=24d35db63138795a11bb26b230cf743c82f571c7e2ee061db58263799d659e20))(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1)
       vue: 3.5.18
 
   '@vue/compiler-core@3.5.18':
@@ -4869,7 +4874,7 @@ snapshots:
   sass-embedded-win32-x64@1.90.0:
     optional: true
 
-  sass-embedded@1.90.0:
+  sass-embedded@1.90.0(patch_hash=24d35db63138795a11bb26b230cf743c82f571c7e2ee061db58263799d659e20):
     dependencies:
       '@bufbuild/protobuf': 2.6.3
       buffer-builder: 0.2.0
@@ -5184,18 +5189,18 @@ snapshots:
 
   varint@6.0.0: {}
 
-  vite-plugin-pwa@1.0.2(vite@7.0.6(sass-embedded@1.90.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1))(workbox-build@7.3.0)(workbox-window@7.3.0):
+  vite-plugin-pwa@1.0.2(vite@7.0.6(sass-embedded@1.90.0(patch_hash=24d35db63138795a11bb26b230cf743c82f571c7e2ee061db58263799d659e20))(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1))(workbox-build@7.3.0)(workbox-window@7.3.0):
     dependencies:
       debug: 4.4.1
       pretty-bytes: 6.1.1
       tinyglobby: 0.2.14
-      vite: 7.0.6(sass-embedded@1.90.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1)
+      vite: 7.0.6(sass-embedded@1.90.0(patch_hash=24d35db63138795a11bb26b230cf743c82f571c7e2ee061db58263799d659e20))(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1)
       workbox-build: 7.3.0
       workbox-window: 7.3.0
     transitivePeerDependencies:
       - supports-color
 
-  vite@7.0.6(sass-embedded@1.90.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1):
+  vite@7.0.6(sass-embedded@1.90.0(patch_hash=24d35db63138795a11bb26b230cf743c82f571c7e2ee061db58263799d659e20))(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1):
     dependencies:
       esbuild: 0.25.8
       fdir: 6.4.6(picomatch@4.0.3)
@@ -5206,7 +5211,7 @@ snapshots:
     optionalDependencies:
       fsevents: 2.3.3
       sass: 1.90.0
-      sass-embedded: 1.90.0
+      sass-embedded: 1.90.0(patch_hash=24d35db63138795a11bb26b230cf743c82f571c7e2ee061db58263799d659e20)
       terser: 5.43.1
       yaml: 2.8.1
 
-- 
2.50.1
+11 −8
Original line number Diff line number Diff line
@@ -11,12 +11,12 @@

stdenvNoCC.mkDerivation rec {
  pname = "homer";
  version = "25.08.1";
  version = "25.09.1";
  src = fetchFromGitHub {
    owner = "bastienwirtz";
    repo = "homer";
    rev = "v${version}";
    hash = "sha256-DA2gdh6o67QDC4y+N5DVG0ktjt/ORNbycU/y2cUjUE0=";
    hash = "sha256-MwDDnfp21MoQ9hh0+cjUo+sc+u69rx1K9ATbBB6RX78=";
  };

  pnpmDeps = pnpm_10.fetchDeps {
@@ -24,15 +24,12 @@ stdenvNoCC.mkDerivation rec {
      pname
      version
      src
      patches

      ;
    fetcherVersion = 2;
    hash = "sha256-y/4f/39NOVV46Eg3h7fw8K43/kUIBqtiokTRRlX7398=";
    hash = "sha256-2cozIe70PGo1WRUeWrY8W1B6U2QYLbWYcwN5WllRwkg=";
  };

  # Enables specifying a custom Sass compiler binary path via `SASS_EMBEDDED_BIN_PATH` environment variable.
  patches = [ ./0001-build-enable-specifying-custom-sass-compiler-path-by.patch ];

  nativeBuildInputs = [
    nodejs
    dart-sass
@@ -42,7 +39,9 @@ stdenvNoCC.mkDerivation rec {
  buildPhase = ''
    runHook preBuild

    export SASS_EMBEDDED_BIN_PATH="${dart-sass}/bin/sass"
    # force the sass npm dependency to use our own sass binary instead of the bundled one
    substituteInPlace node_modules/sass-embedded/dist/lib/src/compiler-path.js \
      --replace-fail 'compilerCommand = (() => {' 'compilerCommand = (() => { return ["${lib.getExe dart-sass}"];'
    pnpm build

    runHook postBuild
@@ -54,6 +53,10 @@ stdenvNoCC.mkDerivation rec {
    mkdir -p $out
    cp -R dist/* $out/

    # Remove sample/demo files from output
    rm -f $out/assets/*.yml.dist
    rm -f $out/assets/*.css.sample

    runHook postInstall
  '';