Closed dsegggg closed 4 years ago
Can confirm this is not specific to mojave. Same error on high sierra.
-- While building package gi-pango-1.0.21 using: /private/var/folders/yj/8gp__vsx2gx009ym1wggv50h0000gn/T/stack43452/gi-pango-1.0.21/.stack-work/dist/x86_64-osx/Cabal-2.2.0.1/setup/setup --builddir=.stack-work/dist/x86_64-osx/Cabal-2.2.0.1 build --ghc-options " -fdiagnostics-color=always" Process exited with code: ExitFailure 1 Progress 4/7
Hello,
Unfortunately, I do not have access to macOS Mojave or High Sierra so my diagnostic abilities will be limited. I can confirm Gifcurry 6.0.0.0 builds and runs fine on macOS Sierra 10.12.
Can you copy and paste the entire build output from start to error?
Did you use the Mac install script?
Are you able to compile Haskell programs?
Are you able to compile the haskell-gi example? Step 1. Step 2. haskell-gi is a dependency of Gifcurry.
:+1:
@lettier I'm so sorry for the monstrosity that is this log.
On further review, gi is pooping itself and cabal can't seem to resolve dependencies. Looking into it now.
Edit: The haskell-gi library completely fails to install on macos high sierra and I don't know nearly enough haskell to understand what the problem is.
gi-pango> [84 of 94] Compiling GI.Pango.Structs.AttrShape
gi-pango>
gi-pango> /private/var/folders/yj/8gp__vsx2gx009ym1wggv50h0000gn/T/stack32326/gi-pango-1.0.21/GI/Pango/Structs/AttrShape.hs:522:88: error:
gi-pango> Variable not in scope:
gi-pango> destroyFunc :: FunPtr GLib.Callbacks.C_DestroyNotify
gi-pango> |
gi-pango> 522 | result <- pango_attr_shape_new_with_data inkRect' logicalRect' data_ maybeCopyFunc destroyFunc
gi-pango> | ^^^^^^^^^^^
Hello @EthanZeigler,
It may be related to this issue.
To test this, open /Users/ethanzeigler/gifcurry/Gifcurry.cabal
and change the line
, gi-pango == 1.0.21
to
, gi-pango == 1.0.22
Now open /Users/ethanzeigler/gifcurry/stack.yaml
and change the line
- gi-pango-1.0.21
to
- gi-pango-1.0.22
Remove the /Users/ethanzeigler/gifcurry/stack.yaml.lock
file.
With the terminal open, navigate to /Users/ethanzeigler/gifcurry
(or wherever the Git Gifcurry directory is) and run the following:
stack setup
stack clean
stack install alex happy
stack install gtk2hs-buildtools
stack install hsc2hs
stack install
stack exec -- gifcurry_gui
Another thing you can try is to locate the GObject Introspection for Pango and alter it (be sure to make a backup before hand). You may have multiple copies, so you'll need to alter the one the build process is picking up.
find / -path '*Pango-1.0.gir' -print 2>/dev/null
Inside this XML file is a line destroy="4"
. Remove that attribute and save.
Go from this
<parameter name="copy_func"
transfer-ownership="none"
nullable="1"
allow-none="1"
scope="notified"
destroy="4">
to this
<parameter name="copy_func"
transfer-ownership="none"
nullable="1"
allow-none="1"
scope="notified">
After altering the file, and with the terminal open, navigate to /Users/ethanzeigler/gifcurry
and run the following:
stack setup
stack clean
stack install alex happy
stack install gtk2hs-buildtools
stack install hsc2hs
stack install
stack exec -- gifcurry_gui
If it is related to that issue, I'll go ahead and create another release with the new gi-pango version.
:+1:
... can everyone write issue replies this well please? This is truly amazing.
It looks like your macos script works from downloads, so I'll be using ~/Downloads/gifcurry instead.
Simply changing the cabal file also did not work, pulled the wrong version. Changed stack.yaml's pango version too.
That change lead to this.
Error: While constructing the build plan, the following exceptions were encountered:
In the dependencies for gi-pango-1.0.22:
haskell-gi-0.22.6 from stack configuration does not match >=0.23.0 && <0.24 (latest matching version is 0.23.0)
haskell-gi-base-0.22.2 from stack configuration does not match >=0.23 && <0.24 (latest matching version is 0.23.0)
needed due to Gifcurry-6.0.0.0 -> gi-pango-1.0.22
Some different approaches to resolving this:
* Set 'allow-newer: true' in /Users/ethanzeigler/.stack/config.yaml to ignore all version constraints and build anyway.
* Recommended action: try adding the following to your extra-deps in /Users/ethanzeigler/Downloads/gifcurry/stack.yaml:
- haskell-gi-0.23.0@sha256:bf78485bdded4aa807dc570970c8a140099fc048f600b03ece69dd171c8fb873,5118
- haskell-gi-base-0.23.0@sha256:6c90f3e710921e7884a86fb53bf4b4e50a178f61e3a4ea365a1aa9deba30a075,2341
Following that advice, I updated those dependencies to the version it suggested. That lead to this.
Error: While constructing the build plan, the following exceptions were encountered:
In the dependencies for Gifcurry-6.0.0.0:
haskell-gi-0.23.0 from stack configuration does not match ==0.22.6 (latest matching version is 0.22.6)
haskell-gi-base-0.23.0 from stack configuration does not match ==0.22.2 (latest matching version is 0.22.2)
needed since Gifcurry is a build target.
In the dependencies for gi-atk-2.0.20:
haskell-gi-0.23.0 from stack configuration does not match >=0.22.5 && <0.23 (latest matching version is 0.22.6)
haskell-gi-base-0.23.0 from stack configuration does not match >=0.22.0 && <0.23 (latest matching version is 0.22.2)
needed due to Gifcurry-6.0.0.0 -> gi-atk-2.0.20
In the dependencies for gi-cairo-1.0.22:
haskell-gi-0.23.0 from stack configuration does not match >=0.22.5 && <0.23 (latest matching version is 0.22.6)
haskell-gi-base-0.23.0 from stack configuration does not match >=0.22.0 && <0.23 (latest matching version is 0.22.2)
needed due to Gifcurry-6.0.0.0 -> gi-cairo-1.0.22
In the dependencies for gi-gdk-3.0.21:
haskell-gi-0.23.0 from stack configuration does not match >=0.22.5 && <0.23 (latest matching version is 0.22.6)
haskell-gi-base-0.23.0 from stack configuration does not match >=0.22.0 && <0.23 (latest matching version is 0.22.2)
needed due to Gifcurry-6.0.0.0 -> gi-gdk-3.0.21
In the dependencies for gi-gdkpixbuf-2.0.22:
haskell-gi-0.23.0 from stack configuration does not match >=0.22.5 && <0.23 (latest matching version is 0.22.6)
haskell-gi-base-0.23.0 from stack configuration does not match >=0.22.0 && <0.23 (latest matching version is 0.22.2)
needed due to Gifcurry-6.0.0.0 -> gi-gdkpixbuf-2.0.22
In the dependencies for gi-gio-2.0.24:
haskell-gi-0.23.0 from stack configuration does not match >=0.22.5 && <0.23 (latest matching version is 0.22.6)
haskell-gi-base-0.23.0 from stack configuration does not match >=0.22.0 && <0.23 (latest matching version is 0.22.2)
needed due to Gifcurry-6.0.0.0 -> gi-gio-2.0.24
In the dependencies for gi-glib-2.0.22:
haskell-gi-0.23.0 from stack configuration does not match >=0.22.5 && <0.23 (latest matching version is 0.22.6)
haskell-gi-base-0.23.0 from stack configuration does not match >=0.22.0 && <0.23 (latest matching version is 0.22.2)
needed due to Gifcurry-6.0.0.0 -> gi-glib-2.0.22
In the dependencies for gi-gobject-2.0.21:
haskell-gi-0.23.0 from stack configuration does not match >=0.22.5 && <0.23 (latest matching version is 0.22.6)
haskell-gi-base-0.23.0 from stack configuration does not match >=0.22.0 && <0.23 (latest matching version is 0.22.2)
needed due to Gifcurry-6.0.0.0 -> gi-gobject-2.0.21
In the dependencies for gi-gst-1.0.21:
haskell-gi-0.23.0 from stack configuration does not match >=0.22.5 && <0.23 (latest matching version is 0.22.6)
haskell-gi-base-0.23.0 from stack configuration does not match >=0.22.0 && <0.23 (latest matching version is 0.22.2)
needed due to Gifcurry-6.0.0.0 -> gi-gst-1.0.21
In the dependencies for gi-gstbase-1.0.21:
haskell-gi-0.23.0 from stack configuration does not match >=0.22.5 && <0.23 (latest matching version is 0.22.6)
haskell-gi-base-0.23.0 from stack configuration does not match >=0.22.0 && <0.23 (latest matching version is 0.22.2)
needed due to Gifcurry-6.0.0.0 -> gi-gstbase-1.0.21
In the dependencies for gi-gstvideo-1.0.21:
haskell-gi-0.23.0 from stack configuration does not match >=0.22.5 && <0.23 (latest matching version is 0.22.6)
haskell-gi-base-0.23.0 from stack configuration does not match >=0.22.0 && <0.23 (latest matching version is 0.22.2)
needed due to Gifcurry-6.0.0.0 -> gi-gstvideo-1.0.21
In the dependencies for gi-gtk-3.0.31:
haskell-gi-0.23.0 from stack configuration does not match >=0.22.5 && <0.23 (latest matching version is 0.22.6)
haskell-gi-base-0.23.0 from stack configuration does not match >=0.22.0 && <0.23 (latest matching version is 0.22.2)
needed due to Gifcurry-6.0.0.0 -> gi-gtk-3.0.31
Admittedly knowing nothing about haskell, I tried using both versions of the dependency at the same time, expecting flames. Of course, it failed.
Any suggestions? @lettier
Hello @EthanZeigler
I've tweaked the other dependencies to work with the latest gi-pango.
Replace ~/Downloads/gifcurry/Gifcurry.cabal with the following.
And replace ~/Downloads/gifcurry/stack.yaml with the following.
This will remove the dependency conflicts.
With the two files replaced, try running through the build process again.
stack setup
stack clean
stack install alex happy
stack install gtk2hs-buildtools
stack install hsc2hs
stack install
stack exec -- gifcurry_gui
:+1:
Success! Build now succeeds on macos 10.14.6
Hello @EthanZeigler
That's great. Thank you for testing Gifcurry on Mojave. I will create a new release with the updated dependencies.
:+1:
Quick question: what's with the gtkstreamer missing warning? I found the library but the binary was talking foreverto download
Hello @EthanZeigler
Was the message one of these?
GStreamer is missing decoders. Video preview may not work.
"gst-libav" not found. Video preview may not work.
"gtksink" not found. No video preview. Install all GStreamer 1.0 plugins.
:+1:
Third
The gtksink plugin integrates GStreamer and GTK by providing GStreamer with a GUI widget it can render every video frame to. Without it, Gifcurry will fallback to showing the first and last frame of the GIF as the preview.
👍
FWIW, I get the same error on macOS Catalina.
-- While building package gi-pango-1.0.21 using:
/private/var/folders/vl/rzww4vjs563dcwsk3mp9dd980000gn/T/stack21489/gi-pango-1.0.21/.stack-work/dist/x86_64-osx/Cabal-2.2.0.1/setup/setup --builddir=.stack-work/dist/x86_64-osx/Cabal-2.2.0.1 build --ghc-options " -fdiagnostics-color=always"
Process exited with code: ExitFailure 1
Progress 64/70
Hello, I have been unable to install on macOS Catalina, with the following error:
-- While building package gi-pango-1.0.21 using:
/private/var/folders/pf/vwkh48ps7qdbwz2xxn8mxp6r0000gn/T/stack12999/gi-pango-1.0.21/.stack-work/dist/x86_64-osx/Cabal-2.2.0.1/setup/setup --builddir=.stack-work/dist/x86_64-osx/Cabal-2.2.0.1 build --ghc-options " -fdiagnostics-color=always"
Process exited with code: ExitFailure 1
Progress 1/4
............. gi-gio > [293 of 293] Compiling GI.Gio gi-gio > ignoring (possibly broken) abi-depends field for packages gi-gio > copy/register gi-gio > Installing library in /Users/dseg/.stack/snapshots/x86_64-osx/a0f8ac41185163f0ec5615c93364ede844fbc37853c89b47e65ddbf9ccd85d51/8.4.3/lib/x86_64-osx-ghc-8.4.3/gi-gio-2.0.24-62ocVXj51dmLpZAJ9yC9U3 gi-gio > Registering library for gi-gio-2.0.24..
-- While building package gi-pango-1.0.21 using: /private/var/folders/15/5tgph_8x12n_s3vd5lwc8ryr0000gp/T/stack26541/gi-pango-1.0.21/.stack-work/dist/x86_64-osx/Cabal-2.2.0.1/setup/setup --builddir=.stack-work/dist/x86_64-osx/Cabal-2.2.0.1 build --ghc-options " -fdiagnostics-color=always" Process exited with code: ExitFailure 1 Progress 64/70 dseg@ MyMac:wrk$