diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2016-05-22 18:05:12 +0200 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2016-05-22 23:05:10 +0200 |
commit | 1a52fdc3c6a81b0b652ea21e59e7dd705fef5f2e (patch) | |
tree | 901b7b6e1f532fddac948966612514e6e6121b01 | |
parent | 3ee6b22dc3b5cd53df69de8707ebac726671d1e9 (diff) | |
download | nixlib-1a52fdc3c6a81b0b652ea21e59e7dd705fef5f2e.tar nixlib-1a52fdc3c6a81b0b652ea21e59e7dd705fef5f2e.tar.gz nixlib-1a52fdc3c6a81b0b652ea21e59e7dd705fef5f2e.tar.bz2 nixlib-1a52fdc3c6a81b0b652ea21e59e7dd705fef5f2e.tar.lz nixlib-1a52fdc3c6a81b0b652ea21e59e7dd705fef5f2e.tar.xz nixlib-1a52fdc3c6a81b0b652ea21e59e7dd705fef5f2e.tar.zst nixlib-1a52fdc3c6a81b0b652ea21e59e7dd705fef5f2e.zip |
mesa: Use symlinks instead of hard links for the DRI/vdpau drivers
This reduces the size of the drivers output from 193 MiB to 44 MiB. @vcunat
-rw-r--r-- | pkgs/development/libraries/mesa/default.nix | 1 | ||||
-rw-r--r-- | pkgs/development/libraries/mesa/symlink-drivers.patch | 72 |
2 files changed, 73 insertions, 0 deletions
diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix index 6ac8acebfe87..2fe27ac087b8 100644 --- a/pkgs/development/libraries/mesa/default.nix +++ b/pkgs/development/libraries/mesa/default.nix @@ -45,6 +45,7 @@ stdenv.mkDerivation { patches = [ ./glx_ro_text_segm.patch # fix for grsecurity/PaX + ./symlink-drivers.patch # TODO: revive ./dricore-gallium.patch when it gets ported (from Ubuntu), # as it saved ~35 MB in $drivers; watch https://launchpad.net/ubuntu/+source/mesa/+changelog ] ++ optional stdenv.isLinux diff --git a/pkgs/development/libraries/mesa/symlink-drivers.patch b/pkgs/development/libraries/mesa/symlink-drivers.patch new file mode 100644 index 000000000000..6c800e5dfce6 --- /dev/null +++ b/pkgs/development/libraries/mesa/symlink-drivers.patch @@ -0,0 +1,72 @@ +diff -ru -x '*~' mesa-11.1.4-orig/src/gallium/targets/dri/Makefile.am mesa-11.1.4/src/gallium/targets/dri/Makefile.am +--- mesa-11.1.4-orig/src/gallium/targets/dri/Makefile.am 2016-05-09 14:20:52.000000000 +0200 ++++ mesa-11.1.4/src/gallium/targets/dri/Makefile.am 2016-05-22 17:56:03.396185082 +0200 +@@ -126,14 +126,13 @@ + done; + endif + +-# hardlink each megadriver instance, but don't actually have +-# gallium_dri.so in the set of final installed files. ++# symlink each megadriver instance. + install-data-hook: + for i in $(TARGET_DRIVERS); do \ +- ln -f $(DESTDIR)$(dridir)/gallium_dri.so \ ++ ln -sf $(DESTDIR)$(dridir)/gallium_dri.so \ + $(DESTDIR)$(dridir)/$${i}_dri.so; \ + done; \ +- $(RM) $(DESTDIR)$(dridir)/gallium_dri.* ++ $(RM) $(DESTDIR)$(dridir)/gallium_dri.la + + uninstall-hook: + for i in $(TARGET_DRIVERS); do \ +diff -ru -x '*~' mesa-11.1.4-orig/src/gallium/targets/vdpau/Makefile.am mesa-11.1.4/src/gallium/targets/vdpau/Makefile.am +--- mesa-11.1.4-orig/src/gallium/targets/vdpau/Makefile.am 2016-01-29 13:21:30.000000000 +0100 ++++ mesa-11.1.4/src/gallium/targets/vdpau/Makefile.am 2016-05-22 20:54:12.722358242 +0200 +@@ -103,15 +103,14 @@ + done; + endif + +-# hardlink each megadriver instance, but don't actually have +-# libvdpau_gallium.so in the set of final installed files. ++# symlink each megadriver instance. + install-data-hook: + $(AM_V_GEN)dest_dir=$(DESTDIR)/$(vdpaudir); \ + for i in $(TARGET_DRIVERS); do \ + j=libvdpau_gallium.$(LIB_EXT); \ + k=libvdpau_$${i}.$(LIB_EXT); \ + l=$${k}.$(VDPAU_MAJOR).$(VDPAU_MINOR).0; \ +- ln -f $${dest_dir}/$${j}.$(VDPAU_MAJOR).$(VDPAU_MINOR).0 \ ++ ln -sf $${dest_dir}/$${j}.$(VDPAU_MAJOR).$(VDPAU_MINOR).0 \ + $${dest_dir}/$${l}; \ + ln -sf $${l} \ + $${dest_dir}/$${k}.$(VDPAU_MAJOR).$(VDPAU_MINOR); \ +@@ -120,7 +119,7 @@ + ln -sf $${l} \ + $${dest_dir}/$${k}; \ + done; \ +- $(RM) $${dest_dir}/libvdpau_gallium.* ++ $(RM) $${dest_dir}/libvdpau_gallium.la + + uninstall-hook: + for i in $(TARGET_DRIVERS); do \ +diff -ru -x '*~' mesa-11.1.4-orig/src/mesa/drivers/dri/Makefile.am mesa-11.1.4/src/mesa/drivers/dri/Makefile.am +--- mesa-11.1.4-orig/src/mesa/drivers/dri/Makefile.am 2016-01-18 08:39:26.000000000 +0100 ++++ mesa-11.1.4/src/mesa/drivers/dri/Makefile.am 2016-05-22 17:55:46.251244940 +0200 +@@ -86,14 +86,13 @@ + done; + endif + +-# hardlink each megadriver instance, but don't actually have +-# mesa_dri_drivers.so in the set of final installed files. ++# symink each megadriver instance. + install-data-hook: + for i in $(MEGADRIVERS); do \ +- ln -f $(DESTDIR)$(dridir)/mesa_dri_drivers.so \ ++ ln -sf $(DESTDIR)$(dridir)/mesa_dri_drivers.so \ + $(DESTDIR)$(dridir)/$$i; \ + done; +- $(RM) $(DESTDIR)$(dridir)/mesa_dri_drivers.* ++ $(RM) $(DESTDIR)$(dridir)/mesa_dri_drivers.la + + uninstall-hook: + for i in $(MEGADRIVERS); do \ |