diff options
-rw-r--r-- | pkgs/development/libraries/wxwidgets/3.0/mac.nix | 56 | ||||
-rw-r--r-- | pkgs/os-specific/darwin/cf-private/default.nix | 16 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 1 | ||||
-rw-r--r-- | pkgs/top-level/darwin-packages.nix | 6 |
4 files changed, 25 insertions, 54 deletions
diff --git a/pkgs/development/libraries/wxwidgets/3.0/mac.nix b/pkgs/development/libraries/wxwidgets/3.0/mac.nix index 9c307b2d15ae..040273e28b99 100644 --- a/pkgs/development/libraries/wxwidgets/3.0/mac.nix +++ b/pkgs/development/libraries/wxwidgets/3.0/mac.nix @@ -1,60 +1,26 @@ -{ stdenv, fetchurl, fetchpatch, expat, libiconv, libjpeg, libpng, libtiff, zlib +{ stdenv, fetchzip, fetchpatch, expat, libiconv, libjpeg, libpng, libtiff, zlib # darwin only attributes -, derez, rez, setfile +, cf-private, derez, rez, setfile , AGL, Cocoa, Kernel }: -with stdenv.lib; - stdenv.mkDerivation rec { - version = "3.0.2"; + version = "3.0.4"; name = "wxmac-${version}"; - src = fetchurl { - url = "mirror://sourceforge/wxwindows/wxWidgets-${version}.tar.bz2"; - sha256 = "346879dc554f3ab8d6da2704f651ecb504a22e9d31c17ef5449b129ed711585d"; + src = fetchzip { + url = "https://github.com/wxWidgets/wxWidgets/archive/v${version}.tar.gz"; + sha256 = "19mqglghjjqjgz4rbybn3qdgn2cz9xc511nq1pvvli9wx2k8syl1"; }; - patches = - [ # Use std::abs() from <cmath> instead of abs() from <math.h> to avoid problems - # with abiguous overloads for clang-3.8 and gcc6. - (fetchpatch { - name = "patch-stc-abs.diff"; - url = https://github.com/wxWidgets/wxWidgets/commit/73e9e18ea09ffffcaac50237def0d9728a213c02.patch; - sha256 = "0w5whmfzm8waw62jmippming0zffa9064m5b3aw5nixph21rlcvq"; - }) - - # Various fixes related to Yosemite. Revisit in next stable release. - # Please keep an eye on http://trac.wxwidgets.org/ticket/16329 as well - # Theoretically the above linked patch should still be needed, but it isn't. - # Try to find out why. - (fetchpatch { - name = "patch-yosemite.diff"; - url = https://raw.githubusercontent.com/Homebrew/formula-patches/bbf4995/wxmac/patch-yosemite.diff; - sha256 = "0ss66z2a79v976mvlrskyj1zmkyaz8hbwm98p29bscfvcx5845jb"; - }) - - # Remove uncenessary <QuickTime/QuickTime.h> includes - # http://trac.wxwidgets.org/changeset/f6a2d1caef5c6d412c84aa900cb0d3990b350938/git-wxWidgets - (fetchpatch { - name = "patch-quicktime-removal.diff"; - url = https://raw.githubusercontent.com/Homebrew/formula-patches/bbf4995/wxmac/patch-quicktime-removal.diff; - sha256 = "0mzvdk8r70p9s1wj7qzdsqmdrlxlf2dalh9gqs8xjkqq2666yp0y"; - }) - - # Patch for wxOSXPrintData, custom paper not applied - # http://trac.wxwidgets.org/ticket/16959 - (fetchpatch { - name = "wxPaperCustomPatch.patch"; - url = http://trac.wxwidgets.org/raw-attachment/ticket/16959/wxPaperCustomPatch.patch; - sha256 = "0xgscv86f8dhggn9n8bhlq9wlj3ydsicgy9v35sraxyma18cbjvl"; - }) - ]; - buildInputs = [ expat libiconv libjpeg libpng libtiff zlib derez rez setfile Cocoa Kernel + + # Needed for CFURLGetFSRef, etc. which have deen deprecated + # since 10.9 and are not part of swift-corelibs CoreFoundation. + cf-private ]; propagatedBuildInputs = [ AGL ]; @@ -98,7 +64,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - meta = { + meta = with stdenv.lib; { platforms = platforms.darwin; license = licenses.wxWindows; maintainers = [ maintainers.lnl7 ]; diff --git a/pkgs/os-specific/darwin/cf-private/default.nix b/pkgs/os-specific/darwin/cf-private/default.nix index 3fac20d23c78..dc1b0112a219 100644 --- a/pkgs/os-specific/darwin/cf-private/default.nix +++ b/pkgs/os-specific/darwin/cf-private/default.nix @@ -1,4 +1,4 @@ -{ CF, apple_sdk }: +{ CF, apple_sdk, osx_private_sdk }: # cf-private is a bit weird, but boils down to CF with a weird setup-hook that # makes a build link against the system CoreFoundation rather than our pure one. @@ -13,10 +13,10 @@ # because of their magic "toll-free bridging" support, the symbols for those types # live in CoreFoundation with an ObjC runtime. And because that isn't public, we have # this hack in place to let people link properly anyway. Phew! -# +# # This can be revisited if Apple ever decide to release the ObjC backend in a publicly # buildable form. -# +# # This doesn't really need to rebuild CF, but it's cheap, and adding a setup hook to # an existing package was annoying. We need a buildEnv that knows how to add those CF.overrideAttrs (orig: { @@ -38,22 +38,24 @@ CF.overrideAttrs (orig: { # this is watchman, who can almost certainly switch to the pure CF once the header # and functionality is merged in. installPhase = orig.installPhase + '' + # Copy or overwrite private headers, some of these might already + # exist in CF but the private versions have more information. basepath="Library/Frameworks/CoreFoundation.framework/Headers" - path="$basepath/CFFileDescriptor.h" + cp -Lfv --no-preserve mode ${osx_private_sdk}/include/CoreFoundationPrivateHeaders/* "$out/$basepath" # Append the include at top level or nobody will notice the header we're about to add sed -i '/CFNotificationCenter.h/a #include <CoreFoundation/CFFileDescriptor.h>' \ "$out/$basepath/CoreFoundation.h" - cp ${apple_sdk.frameworks.CoreFoundation}/$path $out/$path + cp ${apple_sdk.frameworks.CoreFoundation}/$basepath/CFFileDescriptor.h $out/$basepath/CFFileDescriptor.h '' + # This one is less likely to go away, but I'll mention it anyway. The issue is at # https://bugs.swift.org/browse/SR-8744, and the main user I know of is qtbase '' - path="$basepath/CFURLEnumerator.h" + path="$basepath/CFURLEnumerator.h" sed -i '/CFNotificationCenter.h/a #include <CoreFoundation/CFURLEnumerator.h>' \ "$out/$basepath/CoreFoundation.h" cp ${apple_sdk.frameworks.CoreFoundation}/$path $out/$path ''; -}) \ No newline at end of file +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 895162792437..782fb6d8dd89 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12714,6 +12714,7 @@ with pkgs; wxmac = callPackage ../development/libraries/wxwidgets/3.0/mac.nix { inherit (darwin.apple_sdk.frameworks) AGL Cocoa Kernel; inherit (darwin.stubs) setfile rez derez; + inherit (darwin) cf-private; }; wxSVG = callPackage ../development/libraries/wxSVG { diff --git a/pkgs/top-level/darwin-packages.nix b/pkgs/top-level/darwin-packages.nix index 3bf7c31b7008..78ca0d20908d 100644 --- a/pkgs/top-level/darwin-packages.nix +++ b/pkgs/top-level/darwin-packages.nix @@ -31,7 +31,9 @@ in libcxxabi = pkgs.libcxxabi; }; - cf-private = callPackage ../os-specific/darwin/cf-private { inherit (darwin) CF apple_sdk; }; + cf-private = callPackage ../os-specific/darwin/cf-private { + inherit (darwin) CF apple_sdk osx_private_sdk; + }; DarwinTools = callPackage ../os-specific/darwin/DarwinTools { }; @@ -74,7 +76,7 @@ in CoreSymbolication = callPackage ../os-specific/darwin/CoreSymbolication { }; CF = callPackage ../os-specific/darwin/swift-corelibs/corefoundation.nix { inherit (darwin) objc4 ICU; }; - + # As the name says, this is broken, but I don't want to lose it since it's a direction we want to go in # libdispatch-broken = callPackage ../os-specific/darwin/swift-corelibs/libdispatch.nix { inherit (darwin) apple_sdk_sierra xnu; }; |