summary refs log tree commit diff
path: root/pkgs/development/libraries/SDL2
diff options
context:
space:
mode:
authorSergei Trofimovich <slyich@gmail.com>2023-04-09 09:44:55 +0100
committerSergei Trofimovich <slyich@gmail.com>2023-04-09 09:52:16 +0100
commitf4608856947e483a0a28fda372a451b6681f20de (patch)
tree5a12a0b2d7f94dffe041354b0c09ce22ff4cedda /pkgs/development/libraries/SDL2
parentc5cf2117f838837099d853bd3283ec21972df583 (diff)
downloadnixpkgs-f4608856947e483a0a28fda372a451b6681f20de.tar
nixpkgs-f4608856947e483a0a28fda372a451b6681f20de.tar.gz
nixpkgs-f4608856947e483a0a28fda372a451b6681f20de.tar.bz2
nixpkgs-f4608856947e483a0a28fda372a451b6681f20de.tar.lz
nixpkgs-f4608856947e483a0a28fda372a451b6681f20de.tar.xz
nixpkgs-f4608856947e483a0a28fda372a451b6681f20de.tar.zst
nixpkgs-f4608856947e483a0a28fda372a451b6681f20de.zip
SDL2: don't propagate headers-only packages via RUNPATH
On `nixpkgs` SDL2 explicitly bulds RUNPATHs from it's subset of build
inputs. As a result RUNPATH contains more than needed. This change
repomed from RUNPATH packages that don't contain libraries but contain
developer-only files:
- wayland-protocols: xml files to describe protocols
- xorgproto: header files for X11

The change moves them to buildInputs / propagatedBuildInputs.

Before the change closure size is:

    $ nix path-info -rsSh $(nix-build -A SDL2) | nl
    221  /nix/store/...-SDL2-2.26.4 2.5M 546.5M

After the change:

    $ nix path-info -rsSh $(nix-build -A SDL2) | nl
    219  /nix/store/...-SDL2-2.26.4 2.5M 544.4M
Diffstat (limited to 'pkgs/development/libraries/SDL2')
-rw-r--r--pkgs/development/libraries/SDL2/default.nix10
1 files changed, 6 insertions, 4 deletions
diff --git a/pkgs/development/libraries/SDL2/default.nix b/pkgs/development/libraries/SDL2/default.nix
index 681dd6515cd..afd22f36f53 100644
--- a/pkgs/development/libraries/SDL2/default.nix
+++ b/pkgs/development/libraries/SDL2/default.nix
@@ -86,13 +86,14 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config ] ++ lib.optionals waylandSupport [ wayland wayland-scanner ];
 
-  propagatedBuildInputs = dlopenPropagatedBuildInputs;
-
   dlopenPropagatedBuildInputs = [ ]
     # Propagated for #include <GLES/gl.h> in SDL_opengles.h.
     ++ lib.optional openglSupport libGL
     # Propagated for #include <X11/Xlib.h> and <X11/Xatom.h> in SDL_syswm.h.
-    ++ lib.optionals x11Support [ libX11 xorgproto ];
+    ++ lib.optionals x11Support [ libX11 ];
+
+  propagatedBuildInputs = lib.optionals x11Support [ xorgproto ]
+    ++ dlopenPropagatedBuildInputs;
 
   dlopenBuildInputs = lib.optionals alsaSupport [ alsa-lib audiofile ]
     ++ lib.optional dbusSupport dbus
@@ -100,13 +101,14 @@ stdenv.mkDerivation rec {
     ++ lib.optional pipewireSupport pipewire
     ++ lib.optional pulseaudioSupport libpulseaudio
     ++ lib.optional udevSupport udev
-    ++ lib.optionals waylandSupport [ wayland wayland-protocols libxkbcommon ]
+    ++ lib.optionals waylandSupport [ wayland libxkbcommon ]
     ++ lib.optionals x11Support [ libICE libXi libXScrnSaver libXcursor libXinerama libXext libXrandr libXxf86vm ]
     ++ lib.optionals drmSupport [ libdrm mesa ];
 
   buildInputs = [ libiconv ]
     ++ dlopenBuildInputs
     ++ lib.optional ibusSupport ibus
+    ++ lib.optionals waylandSupport [ wayland-protocols ]
     ++ lib.optionals stdenv.isDarwin [ AudioUnit Cocoa CoreAudio CoreServices ForceFeedback OpenGL ];
 
   enableParallelBuilding = true;