From 06fba2072c8f8eafcc98fbbdd419fe578a6674a6 Mon Sep 17 00:00:00 2001 From: Malte Brandy Date: Fri, 14 Aug 2020 18:42:29 +0200 Subject: [PATCH] haskellPackages.pango: Bump version (including deps) to fix build This does not file all haskell-gi dependencies. I have limited myself to the ones needed to build webkitgtk, because I care about that one and the issue is hopefully only temporary anyways. --- .../haskell-modules/configuration-common.nix | 30 ++++++++--- .../configuration-hackage2nix.yaml | 3 +- .../haskell-modules/hackage-packages.nix | 52 ++++++++++++++++++- 3 files changed, 74 insertions(+), 11 deletions(-) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index b2982d0d6822..320dae0700e8 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -1362,14 +1362,28 @@ self: super: { # https://github.com/kowainik/policeman/issues/57 policeman = doJailbreak super.policeman; - # 2020-06-29: These three packages have bumped their dependencies for haskell-gi and haskell-gi-base beyond stack-lts. - # Choosing a jailbreak, because a version override would rebuild most of the glibverse and the packages still build with the older version. - gi-javascriptcore = - # Remove these jailbreaks, when assert fails. - assert (pkgs.lib.versionOlder super.haskell-gi-base.version "0.24"); - doJailbreak super.gi-javascriptcore; - gi-soup = doJailbreak super.gi-soup; - gi-webkit2 = doJailbreak super.gi-webkit2; + # 2020-08-14: gi-pango from stackage is to old for the C libs it links against in nixpkgs. + # That's why we need to bump a ton of dependency versions to unbreak them. + gi-pango = assert super.gi-pango.version == "1.0.22"; self.gi-pango_1_0_23; + haskell-gi-base = assert super.haskell-gi-base.version == "0.23.0"; addBuildDepends (self.haskell-gi-base_0_24_2) [ pkgs.gobject-introspection ]; + haskell-gi = assert super.haskell-gi.version == "0.23.1"; self.haskell-gi_0_24_4; + gi-cairo = assert super.gi-cairo.version == "1.0.23"; self.gi-cairo_1_0_24; + gi-glib = assert super.gi-glib.version == "2.0.23"; self.gi-glib_2_0_24; + gi-gobject = assert super.gi-gobject.version == "2.0.22"; self.gi-gobject_2_0_24; + gi-atk = assert super.gi-atk.version == "2.0.21"; self.gi-atk_2_0_22; + gi-gio = assert super.gi-gio.version == "2.0.26"; self.gi-gio_2_0_27; + gi-gdk = assert super.gi-gdk.version == "3.0.22"; self.gi-gdk_3_0_23; + gi-gtk = assert super.gi-gtk.version == "3.0.33"; self.gi-gtk_3_0_35; + gi-gdkpixbuf = assert super.gi-gdkpixbuf.version == "2.0.23"; self.gi-gdkpixbuf_2_0_24; + + # 2020-08-14: Needs some manual patching to be compatible with haskell-gi-base 0.24 + # Created upstream PR @ https://github.com/ghcjs/jsaddle/pull/119 + jsaddle-webkit2gtk = appendPatch super.jsaddle-webkit2gtk (pkgs.fetchpatch { + url = "https://github.com/ghcjs/jsaddle/compare/9727365...09f44aa.patch"; + sha256 = "1bkwgmc04544haycb69fqsd97lg24jc7hc1yrin2sgr4l7hz04pf"; + stripLen = 2; + extraPrefix = ""; + }); # Missing -Iinclude parameter to doc-tests (pull has been accepted, so should be resolved when 0.5.3 released) # https://github.com/lehins/massiv/pull/104 diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml index 4fdedca2738e..c3a090c7937f 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml @@ -2560,6 +2560,8 @@ extra-packages: - deepseq == 1.3.0.1 # required to build Cabal with GHC 6.12.3 - dhall == 1.29.0 # required for spago 0.14.0. - doctemplates == 0.8 # required by pandoc-2.9.x + - gi-gdk == 3.0.23 # required for gi-pango 1.0.23 + - gi-gtk == 3.0.35 # required for gi-pango 1.0.23 - generic-deriving == 1.10.5.* # new versions don't compile with GHC 7.10.x - ghc-check == 0.3.0.1 # only version compatible with ghcide 0.2.0 - ghc-tcplugins-extra ==0.3.2 # required for polysemy-plugin 0.2.5.0 @@ -5317,7 +5319,6 @@ broken-packages: - gi-gtkosxapplication - gi-gtksource - gi-handy - - gi-harfbuzz - gi-ibus - gi-notify - gi-ostree diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix index 6ee769c160d3..84086e410685 100644 --- a/pkgs/development/haskell-modules/hackage-packages.nix +++ b/pkgs/development/haskell-modules/hackage-packages.nix @@ -99922,6 +99922,31 @@ self: { license = stdenv.lib.licenses.lgpl21; }) {inherit (pkgs) gtk3;}; + "gi-gdk_3_0_23" = callPackage + ({ mkDerivation, base, bytestring, Cabal, containers, gi-cairo + , gi-gdkpixbuf, gi-gio, gi-glib, gi-gobject, gi-pango, gtk3 + , haskell-gi, haskell-gi-base, haskell-gi-overloading, text + , transformers + }: + mkDerivation { + pname = "gi-gdk"; + version = "3.0.23"; + sha256 = "18v3kb6kmryymmrz0d88nf25priwyh3yzh7raghc5ph2rv7n4w8m"; + setupHaskellDepends = [ + base Cabal gi-cairo gi-gdkpixbuf gi-gio gi-glib gi-gobject gi-pango + haskell-gi + ]; + libraryHaskellDepends = [ + base bytestring containers gi-cairo gi-gdkpixbuf gi-gio gi-glib + gi-gobject gi-pango haskell-gi haskell-gi-base + haskell-gi-overloading text transformers + ]; + libraryPkgconfigDepends = [ gtk3 ]; + description = "Gdk bindings"; + license = stdenv.lib.licenses.lgpl21; + hydraPlatforms = stdenv.lib.platforms.none; + }) {inherit (pkgs) gtk3;}; + "gi-gdk_4_0_2" = callPackage ({ mkDerivation, base, bytestring, Cabal, containers, gi-cairo , gi-gdkpixbuf, gi-gio, gi-glib, gi-gobject, gi-pango, gtk4 @@ -100427,6 +100452,31 @@ self: { license = stdenv.lib.licenses.lgpl21; }) {inherit (pkgs) gtk3;}; + "gi-gtk_3_0_35" = callPackage + ({ mkDerivation, base, bytestring, Cabal, containers, gi-atk + , gi-cairo, gi-gdk, gi-gdkpixbuf, gi-gio, gi-glib, gi-gobject + , gi-pango, gtk3, haskell-gi, haskell-gi-base + , haskell-gi-overloading, text, transformers + }: + mkDerivation { + pname = "gi-gtk"; + version = "3.0.35"; + sha256 = "08z6kc9m7xb24d9z08yy3g66l8i7nircnaiy5i82yfl2l4slvz2w"; + setupHaskellDepends = [ + base Cabal gi-atk gi-cairo gi-gdk gi-gdkpixbuf gi-gio gi-glib + gi-gobject gi-pango haskell-gi + ]; + libraryHaskellDepends = [ + base bytestring containers gi-atk gi-cairo gi-gdk gi-gdkpixbuf + gi-gio gi-glib gi-gobject gi-pango haskell-gi haskell-gi-base + haskell-gi-overloading text transformers + ]; + libraryPkgconfigDepends = [ gtk3 ]; + description = "Gtk bindings"; + license = stdenv.lib.licenses.lgpl21; + hydraPlatforms = stdenv.lib.platforms.none; + }) {inherit (pkgs) gtk3;}; + "gi-gtk_4_0_2" = callPackage ({ mkDerivation, base, bytestring, Cabal, containers, gi-atk , gi-cairo, gi-gdk, gi-gdkpixbuf, gi-gio, gi-glib, gi-gobject @@ -100621,8 +100671,6 @@ self: { libraryPkgconfigDepends = [ harfbuzz harfbuzz-gobject ]; description = "HarfBuzz bindings"; license = stdenv.lib.licenses.lgpl21; - hydraPlatforms = stdenv.lib.platforms.none; - broken = true; }) {inherit (pkgs) harfbuzz; harfbuzz-gobject = null;}; "gi-ibus" = callPackage