Unverified Commit 368b2d71 authored by Jörg Thalheim's avatar Jörg Thalheim Committed by GitHub
Browse files

Merge pull request #307130 from toastal/movim-no-parallel

movim: include authentication patch & remove parallel dependency
parents e40ae4e4 13852fc9
Loading
Loading
Loading
Loading
+10 −12
Original line number Diff line number Diff line
@@ -103,22 +103,20 @@ let
          lib.concatStringsSep "\n" [
            (lib.optionalString brotli.enable ''
              echo -n "Precompressing static files with Brotli …"
              find ${appDir}/public -type f ${findTextFileNames} \
                | ${lib.getExe pkgs.parallel} ${lib.escapeShellArgs [
                    "--will-cite"
                    "-j $NIX_BUILD_CORES"
                    "${lib.getExe brotli.package} --keep --quality=${builtins.toString brotli.compressionLevel} --output={}.br {}"
                   ]}
              find ${appDir}/public -type f ${findTextFileNames} -print0 \
                | xargs -0 -n 1 -P $NIX_BUILD_CORES ${pkgs.writeShellScript "movim_precompress_broti" ''
                    file="$1"
                    ${lib.getExe brotli.package} --keep --quality=${builtins.toString brotli.compressionLevel} --output=$file.br $file
                  ''}
              echo " done."
            '')
            (lib.optionalString gzip.enable ''
              echo -n "Precompressing static files with Gzip …"
              find ${appDir}/public -type f ${findTextFileNames} \
                | ${lib.getExe pkgs.parallel} ${lib.escapeShellArgs [
                    "--will-cite"
                    "-j $NIX_BUILD_CORES"
                    "${lib.getExe gzip.package} -c -${builtins.toString gzip.compressionLevel} {} > {}.gz"
                   ]}
              find ${appDir}/public -type f ${findTextFileNames} -print0 \
                | xargs -0 -n 1 -P $NIX_BUILD_CORES ${pkgs.writeShellScript "movim_precompress_broti" ''
                    file="$1"
                    ${lib.getExe gzip.package} -c -${builtins.toString gzip.compressionLevel} $file > $file.gz
                  ''}
              echo " done."
            '')
          ];
+31 −34
Original line number Diff line number Diff line
{ lib
, fetchpatch
, fetchFromGitHub
, writeShellScript
, dash
, php
, phpCfg ? null
, withPgsql ? true # “strongly recommended” according to docs
, withMysql ? false
, minifyStaticFiles ? false # default files are often not minified
, parallel
, esbuild
, lightningcss
, scour
@@ -48,6 +48,13 @@ php.buildComposerProject (finalAttrs: {
    hash = "sha256-t63POjywZLk5ulppuCedFhhEhOsnB90vy3k/HhM3MGc=";
  };

  patches = [
    (fetchpatch {
      url = "https://github.com/movim/movim/commit/4dd2842f4617f3baaa166157892a532ad07df80d.patch";
      hash = "sha256-32MLS5g60Rhm8HQDBPnUo9k+aB7L8dNMcnSjPIlooks=";
    })
  ];

  php = php.buildEnv ({
    extensions = ({ all, enabled }:
      enabled
@@ -60,8 +67,7 @@ php.buildComposerProject (finalAttrs: {
  });

  nativeBuildInputs =
    lib.optional (lib.any (x: x.enable) (lib.attrValues minify)) parallel
    ++ lib.optional minify.script.enable esbuild
    lib.optional minify.script.enable esbuild
    ++ lib.optional minify.style.enable lightningcss
    ++ lib.optional minify.svg.enable scour;

@@ -94,39 +100,30 @@ php.buildComposerProject (finalAttrs: {
  '';

  preBuild = lib.optionalString minify.script.enable ''
    find ./public -type f -iname "*.js" \
      | parallel ${lib.escapeShellArgs [
          "--will-cite"
          "-j $NIX_BUILD_CORES"
          ''
    find ./public -type f -iname "*.js" -print0 \
      | xargs -0 -n 1 -P $NIX_BUILD_CORES ${writeShellScript "movim_script_minify" ''
          file="$1"
          tmp="$(mktemp)"
            esbuild {} --minify --target=${lib.escapeShellArg minify.script.target} --outfile=$tmp
            [[ "$(stat -c %s $tmp)" -lt "$(stat -c %s {})" ]] && mv $tmp {}
          ''
        ]}
          esbuild $file --minify --target=${lib.escapeShellArg minify.script.target} --outfile=$tmp
          [[ "$(stat -c %s $tmp)" -lt "$(stat -c %s $file)" ]] && mv $tmp $file
        ''}
  '' + lib.optionalString minify.style.enable ''
    export BROWSERLIST=${lib.escapeShellArg minify.style.browserslist}
    find ./public -type f -iname "*.css" \
      | parallel ${lib.escapeShellArgs [
          "--will-cite"
          "-j $NIX_BUILD_CORES"
          ''
    find ./public -type f -iname "*.css" -print0 \
      | xargs -0 -n 1 -P $NIX_BUILD_CORES ${writeShellScript "movim_style_minify" ''
          export BROWSERLIST="${lib.escapeShellArg minify.style.browserslist}"
          file="$1"
          tmp="$(mktemp)"
            lightningcss {} --minify --browserslist --output-file=$tmp
            [[ "$(stat -c %s $tmp)" -lt "$(stat -c %s {})" ]] && mv $tmp {}
          ''
        ]}
          lightningcss $file --minify --browserslist --output-file=$tmp
          [[ "$(stat -c %s $tmp)" -lt "$(stat -c %s $file)" ]] && mv $tmp $file
        ''}
  '' + lib.optionalString minify.svg.enable ''
    find ./public -type f -iname "*.svg" -a -not -path "*/emojis/*" \
      | parallel ${lib.escapeShellArgs [
          "--will-cite"
          "-j $NIX_BUILD_CORES"
          ''
    find ./public -type f -iname "*.svg" -a -not -path "*/emojis/*" -print0 \
      | xargs -0 -n 1 -P $NIX_BUILD_CORES ${writeShellScript "movim_svg_minify" ''
          file="$1"
          tmp="$(mktemp)"
            scour -i {} -o $tmp --disable-style-to-xml --enable-comment-stripping --enable-viewboxing --indent=tab
            [[ "$(stat -c %s $tmp)" -lt "$(stat -c %s {})" ]] && mv $tmp {}
          ''
        ]}
          scour -i $file -o $tmp --disable-style-to-xml --enable-comment-stripping --enable-viewboxing --indent=tab
          [[ "$(stat -c %s $tmp)" -lt "$(stat -c %s $file)" ]] && mv $tmp $file
        ''}
  '';

  postInstall = ''