Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: NixOS/nixpkgs
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: c7b340a1c84a
Choose a base ref
...
head repository: NixOS/nixpkgs
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 4a26c9f3d2df
Choose a head ref
  • 2 commits
  • 2 files changed
  • 2 contributors

Commits on Feb 20, 2018

  1. Copy the full SHA
    a425c65 View commit details
  2. Merge pull request #35209 from mnacamura/mbedtls-darwin

    mbedtls: change extension .so -> .dylib on Darwin
    Mic92 authored Feb 20, 2018
    Copy the full SHA
    4a26c9f View commit details
Showing with 41 additions and 11 deletions.
  1. +28 −0 pkgs/development/libraries/mbedtls/darwin_dylib.patch
  2. +13 −11 pkgs/development/libraries/mbedtls/default.nix
28 changes: 28 additions & 0 deletions pkgs/development/libraries/mbedtls/darwin_dylib.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
diff --git a/library/Makefile b/library/Makefile
index 28f9231..ad9cc32 100644
--- a/library/Makefile
+++ b/library/Makefile
@@ -103,9 +103,9 @@ libmbedtls.so: libmbedtls.$(SOEXT_TLS)
echo " LN $@ -> $<"
ln -sf $< $@

-libmbedtls.dylib: $(OBJS_TLS)
+libmbedtls.dylib: $(OBJS_TLS) libmbedx509.dylib
echo " LD $@"
- $(CC) -dynamiclib $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_TLS)
+ $(CC) -dynamiclib -L. -lmbedcrypto -lmbedx509 $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_TLS)

libmbedtls.dll: $(OBJS_TLS) libmbedx509.dll
echo " LD $@"
@@ -126,9 +126,9 @@ libmbedx509.so: libmbedx509.$(SOEXT_X509)
echo " LN $@ -> $<"
ln -sf $< $@

-libmbedx509.dylib: $(OBJS_X509)
+libmbedx509.dylib: $(OBJS_X509) libmbedcrypto.dylib
echo " LD $@"
- $(CC) -dynamiclib $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_X509)
+ $(CC) -dynamiclib -L. -lmbedcrypto $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_X509)

libmbedx509.dll: $(OBJS_X509) libmbedcrypto.dll
echo " LD $@"
24 changes: 13 additions & 11 deletions pkgs/development/libraries/mbedtls/default.nix
Original file line number Diff line number Diff line change
@@ -12,34 +12,36 @@ stdenv.mkDerivation rec {

nativeBuildInputs = [ perl ];

patchPhase = stdenv.lib.optionalString stdenv.isDarwin ''
patches = stdenv.lib.optionals stdenv.isDarwin [ ./darwin_dylib.patch ];

postPatch = ''
patchShebangs .
'' + stdenv.lib.optionalString stdenv.isDarwin ''
substituteInPlace library/Makefile --replace "-soname" "-install_name"
substituteInPlace tests/scripts/run-test-suites.pl --replace "LD_LIBRARY_PATH" "DYLD_LIBRARY_PATH"
# Necessary for install_name_tool below
echo "LOCAL_LDFLAGS += -headerpad_max_install_names" >> programs/Makefile
'';

postPatch = ''
patchShebangs .
'';

makeFlags = [
"SHARED=1"
] ++ stdenv.lib.optionals stdenv.isDarwin [
"DLEXT=dylib"
];

installFlags = [
"DESTDIR=\${out}"
];

postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
install_name_tool -change libmbedcrypto.so.0 $out/lib/libmbedcrypto.so.0 $out/lib/libmbedtls.so.10
install_name_tool -change libmbedcrypto.so.0 $out/lib/libmbedcrypto.so.0 $out/lib/libmbedx509.so.0
install_name_tool -change libmbedx509.so.0 $out/lib/libmbedx509.so.0 $out/lib/libmbedtls.so.10
install_name_tool -change libmbedcrypto.dylib $out/lib/libmbedcrypto.dylib $out/lib/libmbedtls.dylib
install_name_tool -change libmbedcrypto.dylib $out/lib/libmbedcrypto.dylib $out/lib/libmbedx509.dylib
install_name_tool -change libmbedx509.dylib $out/lib/libmbedx509.dylib $out/lib/libmbedtls.dylib
for exe in $out/bin/*; do
install_name_tool -change libmbedtls.so.10 $out/lib/libmbedtls.so.10 $exe
install_name_tool -change libmbedx509.so.0 $out/lib/libmbedx509.so.0 $exe
install_name_tool -change libmbedcrypto.so.0 $out/lib/libmbedcrypto.so.0 $exe
install_name_tool -change libmbedtls.dylib $out/lib/libmbedtls.dylib $exe
install_name_tool -change libmbedx509.dylib $out/lib/libmbedx509.dylib $exe
install_name_tool -change libmbedcrypto.dylib $out/lib/libmbedcrypto.dylib $exe
done
'';