ghcjs / ghcjs/jsaddle

Doesn't work with newer gi-gtk and gi-javascriptcore

Open
#151 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Haskell
Stars
133
Forks
72
PR merge metrics
No merged PRs in 30d

Description

It seems several gi-* packages turned into compatibility shims and there are new packages but jsaddle-webkit2gtk hasn't yet adjusted to the change.

jsaddle-webkit2gtk-0.9.9.0 -> gi-javascriptcore (>=4.0.14 && <4.1), gi-webkit2 (>=4.0.14 && <4.1)
gi-webkit2-4.0.31 -> gi-javascriptcore (>=4.0 && <4.1),
gi-webkit2-4.0.32 -> gi-javascriptcore4

For instance, using gi-gtk3-3.0.44 works (note the extra 3), but gi-gtk-3.0.43 fails with

Ready component graph:
    definite jsaddle-webkit2gtk-0.9.9.0-77GuYk6WXuJ5RoxZsBzLrH
        depends aeson-2.2.3.0-8dPIoxmWnqj1BrFuixf4Ca
        depends base-4.19.2.0-inplace
        depends bytestring-0.12.1.0-inplace
        depends directory-1.3.8.5-inplace
        depends gi-gio-2.0.35-6F32WhlCeSYDWJFIiux5eN
        depends gi-glib-2.0.30-GFD1YISPTh16iWchacQAX1
        depends gi-gtk-3.0.43-Kh5thJykXzMIAxX2O9q1nr
        depends gi-javascriptcore4-4.0.29-DjWD2KHRLpHDmo8slf7zU0
        depends gi-webkit2-4.0.32-It9b9N7JBmyHzpBclndE6F
        depends haskell-gi-base-0.26.8-9cAFlSvSLleBkkr5XMCZqE
        depends haskell-gi-overloading-1.0-6w3IXGDooXgu3RA2LfTuf
        depends jsaddle-0.9.9.2-6hZKSlNCZFhKwvbQvouLkq
        depends text-2.1.1-inplace
        depends unix-2.8.6.0-inplace
        depends webkit2gtk3-javascriptcore-0.14.4.6-3WdmEImas4tCs5tK7nn9xa
Using Cabal-3.10.3.0 compiled by ghc-9.8
Using compiler: ghc-9.8.4
Using install prefix:
[1 of 1] Compiling Language.Javascript.JSaddle.WebKitGTK ( src/Language/Javascript/JSaddle/WebKitGTK.hs, dist/build/Language/Javascript/JSaddle/WebKitGTK.o, dist/build/Language/Javascript/JSaddle/WebKitGTK.dyn_o )

src/Language/Javascript/JSaddle/WebKitGTK.hs:92:41-57: error: [GHC-64725]
    • Required ancestor ‘GI.Gtk.Objects.Widget.Widget’ not found for type ‘WebView’.
    • In a stmt of a 'do' block: w <- widgetGetToplevel wv
      In the second argument of ‘($)’, namely
        ‘do w <- widgetGetToplevel wv
            widgetDestroy w’
      In the expression:
        postGUIAsync
          $ do w <- widgetGetToplevel wv
               widgetDestroy w
   |
92 | quitWebView wv = postGUIAsync $ do w <- widgetGetToplevel wv --TODO: Shouldn't this be postGUISync?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with src/Language/Javascript/JSaddle/WebKitGTK.hs at quitWebView, especially line 92, and reproduce the GHC-64725 error using the gi-gtk, gi-javascriptcore, and gi-webkit2 versions described. Compare the compatibility-shim package transitions and verify that the project builds with the newer packages without the missing GI.Gtk.Objects.Widget.Widget ancestor error.

Written by the indexing model from the issue text.

Assessment

Tech stack
haskell
Domain
desktop
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.