about summary refs log tree commit diff
path: root/nixos/modules/system/boot
diff options
context:
space:
mode:
authorOrivej Desh <orivej@gmx.fr>2017-11-06 06:18:38 +0000
committerGitHub <noreply@github.com>2017-11-06 06:18:38 +0000
commit4435bb8ba8f7f46d1c2bb43a837547cd49217283 (patch)
tree8397397a2666ed88f7f87511f3d2731b3c26326d /nixos/modules/system/boot
parent30bd9947243818db1924d241f468baac7e90214a (diff)
parente6a199b95d5bb24485c7b8eb7f2c51cadebaa558 (diff)
downloadnixlib-4435bb8ba8f7f46d1c2bb43a837547cd49217283.tar
nixlib-4435bb8ba8f7f46d1c2bb43a837547cd49217283.tar.gz
nixlib-4435bb8ba8f7f46d1c2bb43a837547cd49217283.tar.bz2
nixlib-4435bb8ba8f7f46d1c2bb43a837547cd49217283.tar.lz
nixlib-4435bb8ba8f7f46d1c2bb43a837547cd49217283.tar.xz
nixlib-4435bb8ba8f7f46d1c2bb43a837547cd49217283.tar.zst
nixlib-4435bb8ba8f7f46d1c2bb43a837547cd49217283.zip
Merge pull request #30665 from michaelpj/imp/plymouth-themes
plymouth: fix breeze-plymouth (and other themes)
Diffstat (limited to 'nixos/modules/system/boot')
-rw-r--r--nixos/modules/system/boot/plymouth.nix18
1 files changed, 16 insertions, 2 deletions
diff --git a/nixos/modules/system/boot/plymouth.nix b/nixos/modules/system/boot/plymouth.nix
index 0938d22a45b8..4b0c498424b5 100644
--- a/nixos/modules/system/boot/plymouth.nix
+++ b/nixos/modules/system/boot/plymouth.nix
@@ -97,12 +97,26 @@ in
       moduleName="$(sed -n 's,ModuleName *= *,,p' ${themesEnv}/share/plymouth/themes/${cfg.theme}/${cfg.theme}.plymouth)"
 
       mkdir -p $out/lib/plymouth/renderers
-      cp ${plymouth}/lib/plymouth/{text,details,$moduleName}.so $out/lib/plymouth
+      # module might come from a theme
+      cp ${themesEnv}/lib/plymouth/{text,details,$moduleName}.so $out/lib/plymouth
       cp ${plymouth}/lib/plymouth/renderers/{drm,frame-buffer}.so $out/lib/plymouth/renderers
 
       mkdir -p $out/share/plymouth/themes
       cp ${plymouth}/share/plymouth/plymouthd.defaults $out/share/plymouth
-      cp -r ${themesEnv}/share/plymouth/themes/{text,details,${cfg.theme}} $out/share/plymouth/themes
+
+      # copy themes into working directory for patching
+      mkdir themes
+      # use -L to copy the directories proper, not the symlinks to them
+      cp -r -L ${themesEnv}/share/plymouth/themes/{text,details,${cfg.theme}} themes
+
+      # patch out any attempted references to the theme or plymouth's themes directory
+      chmod -R +w themes
+      find themes -type f | while read file
+      do
+        sed -i "s,/nix/.*/share/plymouth/themes,$out/share/plymouth/themes,g" $file
+      done
+
+      cp -r themes/* $out/share/plymouth/themes
       cp ${cfg.logo} $out/share/plymouth/logo.png
     '';