summary refs log tree commit diff
diff options
context:
space:
mode:
authorMatthew Bauer <mjbauer95@gmail.com>2018-06-22 21:49:41 -0400
committerMatthew Bauer <mjbauer95@gmail.com>2018-06-25 17:10:11 -0400
commit73e2f608377a81b7ad3ff94c3e5586bded36ac71 (patch)
tree2443a585648cf1d3b0eac819b3ef16ff651792cf
parent6946361408333f6f39ab767d07031cd32b31dca1 (diff)
downloadnixpkgs-73e2f608377a81b7ad3ff94c3e5586bded36ac71.tar
nixpkgs-73e2f608377a81b7ad3ff94c3e5586bded36ac71.tar.gz
nixpkgs-73e2f608377a81b7ad3ff94c3e5586bded36ac71.tar.bz2
nixpkgs-73e2f608377a81b7ad3ff94c3e5586bded36ac71.tar.lz
nixpkgs-73e2f608377a81b7ad3ff94c3e5586bded36ac71.tar.xz
nixpkgs-73e2f608377a81b7ad3ff94c3e5586bded36ac71.tar.zst
nixpkgs-73e2f608377a81b7ad3ff94c3e5586bded36ac71.zip
libiconv: add "enableShared" option
When false, shared libraries will be disabled.

also adds patch to *really* disable shared libiconv.
-rw-r--r--pkgs/development/libraries/libiconv/default.nix9
-rw-r--r--pkgs/os-specific/darwin/apple-source-releases/libiconv/default.nix14
2 files changed, 16 insertions, 7 deletions
diff --git a/pkgs/development/libraries/libiconv/default.nix b/pkgs/development/libraries/libiconv/default.nix
index 169a4d38bb5..0e900ca9db6 100644
--- a/pkgs/development/libraries/libiconv/default.nix
+++ b/pkgs/development/libraries/libiconv/default.nix
@@ -1,6 +1,7 @@
 { fetchurl, stdenv, lib
 , buildPlatform, hostPlatform
 , enableStatic ? stdenv.hostPlatform.useAndroidPrebuilt
+, enableShared ? !stdenv.hostPlatform.useAndroidPrebuilt
 }:
 
 # assert !stdenv.isLinux || hostPlatform != buildPlatform; # TODO: improve on cross
@@ -23,10 +24,14 @@ stdenv.mkDerivation rec {
     lib.optionalString ((hostPlatform != buildPlatform && hostPlatform.libc == "msvcrt") || stdenv.cc.nativeLibc)
       ''
         sed '/^_GL_WARN_ON_USE (gets/d' -i srclib/stdio.in.h
-      '';
+      ''
+    + lib.optionalString (!enableShared) ''
+      sed -i -e '/preload/d' Makefile.in
+    '';
 
   configureFlags = lib.optional stdenv.isFreeBSD "--with-pic"
-    ++ lib.optional enableStatic "--enable-static";
+    ++ lib.optional enableStatic "--enable-static"
+    ++ lib.optional (!enableShared) "--disable-shared";
 
   meta = {
     description = "An iconv(3) implementation";
diff --git a/pkgs/os-specific/darwin/apple-source-releases/libiconv/default.nix b/pkgs/os-specific/darwin/apple-source-releases/libiconv/default.nix
index bb9e4fa755d..369556fd5a1 100644
--- a/pkgs/os-specific/darwin/apple-source-releases/libiconv/default.nix
+++ b/pkgs/os-specific/darwin/apple-source-releases/libiconv/default.nix
@@ -1,15 +1,19 @@
-{ stdenv, appleDerivation, autoreconfHook, targetPlatform, enableStatic ? targetPlatform.isiOS }:
+{ stdenv, appleDerivation, lib, autoreconfHook, targetPlatform
+, enableStatic ? targetPlatform.isiOS
+, enableShared ? !targetPlatform.isiOS
+}:
 
 appleDerivation {
   postUnpack = "sourceRoot=$sourceRoot/libiconv";
 
-  preConfigure = stdenv.lib.optionalString stdenv.hostPlatform.isiOS ''
+  preConfigure = lib.optionalString stdenv.hostPlatform.isiOS ''
     sed -i 's/darwin\*/ios\*/g' configure libcharset/configure
   '';
 
-  configureFlags = stdenv.lib.optionals enableStatic [ "--enable-static" "--disable-shared" ];
+  configureFlags = lib.optional enableStatic "--enable-static"
+                ++ lib.optional (!enableShared) "--disable-shared";
 
-  postInstall = stdenv.lib.optionalString (!enableStatic) ''
+  postInstall = lib.optionalString (!enableStatic) ''
     mv $out/lib/libiconv.dylib $out/lib/libiconv-nocharset.dylib
     ${stdenv.cc.bintools.targetPrefix}install_name_tool -id $out/lib/libiconv-nocharset.dylib $out/lib/libiconv-nocharset.dylib
 
@@ -26,6 +30,6 @@ appleDerivation {
   ];
 
   meta = {
-    platforms = stdenv.lib.platforms.darwin;
+    platforms = lib.platforms.darwin;
   };
 }