astroidmail / homebrew-astroid

Homebrew tap for Astroid
10 stars 5 forks source link

webkitgtk@2.4.11 build failure #12

Closed c-alpha closed 7 years ago

c-alpha commented 7 years ago

Starting with an empty /usr/local on macOS 10.12.6 (16G29), I first installed Homebrew, then added the astroid tap, and then tried to install astroid. This gave me the following compile errors in webkitgtk:

==> Installing astroidmail/astroid/astroid dependency: webkitgtk@2.4.11
==> Downloading https://webkitgtk.org/releases/webkitgtk-2.4.11.tar.xz
Already downloaded: /Users/alexanderadolf/Library/Caches/Homebrew/webkitgtk@2.4.11-2.4.11.tar.xz
==> ./configure --disable-silent-rules --prefix=/usr/local/Cellar/webkitgtk@2.4.11/2.4.11 --disable-introspection --disable-x11-target --enable-q
==> make
Last 15 lines from /Users/alexanderadolf/Library/Logs/Homebrew/webkitgtk@2.4.11/02.make:
Source/JavaScriptCore/API/JSStringRef.cpp:65:35: error: no matching function for call to 'createWithoutCopying'
    return OpaqueJSString::create(StringImpl::createWithoutCopying(chars, numChars)).leakRef();
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./Source/WTF/wtf/text/StringImpl.h:393:54: note: candidate function not viable: no known conversion from 'const JSChar *' (aka 'const unsigned short *') to 'const UChar *' (aka 'const char16_t *') for 1st argument
    WTF_EXPORT_STRING_API static PassRef<StringImpl> createWithoutCopying(const UChar* characters, unsigned length);
                                                     ^
./Source/WTF/wtf/text/StringImpl.h:394:54: note: candidate function not viable: no known conversion from 'const JSChar *' (aka 'const unsigned short *') to 'const LChar *' (aka 'const unsigned char *') for 1st argument
    WTF_EXPORT_STRING_API static PassRef<StringImpl> createWithoutCopying(const LChar* characters, unsigned length);
                                                     ^
Source/JavaScriptCore/API/JSStringRef.cpp:86:12: error: cannot initialize return object of type 'const JSChar *' (aka 'const unsigned short *') with an rvalue of type 'const UChar *' (aka 'const char16_t *')
    return string->characters();
           ^~~~~~~~~~~~~~~~~~~~
3 errors generated.
make[1]: *** [Source/JavaScriptCore/API/libjavascriptcoregtk_3_0_la-JSStringRef.lo] Error 1
make: *** [all] Error 2

It would seem all of them are rooted in no cast/conversion between JSChar and UChar being available?

There was a discussion on NetBSD back in April on a seemingly very similar issue, in which someone seems to have found a solution. Not sure if their fix would solve this too, and whether or why it was/wasn't fixed upstream though.

gauteh commented 7 years ago

I don't think there is a working webkit setup for mac os at the moment. It seems most people run it through some form of virtual machine. Perhaps @yeled can advice.

yeled commented 7 years ago

webkit is boned on OS X right now. I should disable the whole tap until it works again

c-alpha commented 7 years ago

@gauteh, @yeled, many thanks for the swift response and your insight. In the NetBSD discussion I cited, the conclusion was that three casts needed to be added to webkitgtk. But since you call it "boned", there are probably some other good reasons for not further supporting it on the macOS platform?

To show off my lack of having dived into the code: what is webkitgtk used for? Rendering HTML emails? Would looking for a (preferably as much drop-in as possible) replacement seem too daunting a task? Maybe I can help on this? I'd be happy to research a little and post my results here. If you'd care to let me know your requirements...?

As I'm on a MacBook Pro, running astroid in a VM doesn't sound like what I'd like to do to juggle my daily email streams. I've been fed up with the usual UI clients. Either they impose a certain workflow, or they are still folder-based, or can't be operated by keyboard, or all of the above. After some research, I concluded that emacs/notmuch is almost what I wanted. The only drawback - and that turned out to be a killer - was that there is no useful rendering of HTLM messages in emacs. I travel a lot and so get all sorts of booking confirmations, 95% of which are HTLM messages. Access to those is therefore vital to me. So I thought, bummer, my ideal tool would be a graphical frontend for notmuch, which can render HTLM message properly when needed, but is fully keyboard controllable, prefers plaintext, and lets me configure my workflow freely. Astroid is bang on in all of these. This should illustrate my disappointment when the Homebrew build failed.

gauteh commented 7 years ago

Yes, webkitgtk is used for rendering all e-mails (html or not). It is however outdated, and we are in the process of moving to webkit2gtk. It's quite a big task though, since the new version forces us to use a different API set (essentially building a local JS library to interface with the document). I believe @yeled is working on packaging webkit2gtk for homebrew ( #11 ? ).

Astroid does support HTML e-mails (but prefers plain-text), I believe this support will be a bit better with the new webkit2 as well, where we will put it into iframes so that we can render it a bit better.

c-alpha commented 7 years ago

Cool, sifting through the issues I see you guys are already doing some heavy lifting. Much appreciated! If I can be of any assistance, please don't hesitate to let me know.

gauteh commented 7 years ago

If you know C++, JS or HTML there's plenty to do ;)

c-alpha writes on september 26, 2017 22:11:

Cool, sifting through the issues I see you guys are already doing some heavy lifting. Much appreciated! If I can be of any assistance, please don't hesitate to let me know.

-- You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/astroidmail/homebrew-astroid/issues/12#issuecomment-332320632

gauteh commented 7 years ago

@yeled might need help with the webkit2gtk forumla as well. At some point we need help testing the webkit2js branch (it's working and compiling, so it's ready to test on Mac OS X), but its not very useful yet.

Gaute Hope writes on september 26, 2017 22:23:

If you know C++, JS or HTML there's plenty to do ;)

c-alpha writes on september 26, 2017 22:11:

Cool, sifting through the issues I see you guys are already doing some heavy lifting. Much appreciated! If I can be of any assistance, please don't hesitate to let me know.

-- You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/astroidmail/homebrew-astroid/issues/12#issuecomment-332320632

c-alpha commented 7 years ago

@gauteh wrote:

If you know C++, JS or HTML there's plenty to do ;)

C++: certainly JS: no HTML: intermediate

Where to start?

gauteh commented 7 years ago

c-alpha writes on september 29, 2017 0:16:

@gauteh wrote:

If you know C++, JS or HTML there's plenty to do ;)

C++: certainly JS: no HTML: intermediate

Where to start?

Issues:

This branch:

The code in src/thread_view/thread_view.cc, you will see a lot of comments about what needs to be done there.

@ramblurr is writing a JS library that runs on the webkitside, we call this webkit view with JSON serialized content from the C++ side. As well as methods for handling focus and state.

The original issue: https://github.com/astroidmail/astroid/issues/49, the apporach chosen is outlined in the final comments there.

We can move the rest of the discussion to one of the astroid issues. A lot of the discussion is happening on irc at the moment. Currently @ramblurr is tinkering with setting up a separate repo with all the JS dependencies so that they can more easily be bundled together, and we won't require a net connection to build astroid.

c-alpha commented 7 years ago

Many thanks for the pointers, @gauteh!

I'll study the issues & comments, and the referred code and think where I can start.

The irc is #astroid on freenode, I presume? What's the best time to meet people on the irc relative to CET hours?

On 2017-09-29, at 10:18 , Gaute Hope notifications@github.com wrote:

c-alpha writes on september 29, 2017 0:16:

@gauteh wrote:

If you know C++, JS or HTML there's plenty to do ;)

C++: certainly JS: no HTML: intermediate

Where to start?

Issues:

This branch:

The code in src/thread_view/thread_view.cc, you will see a lot of comments about what needs to be done there.

@ramblurr is writing a JS library that runs on the webkitside, we call this webkit view with JSON serialized content from the C++ side. As well as methods for handling focus and state.

The original issue: https://github.com/astroidmail/astroid/issues/49, the apporach chosen is outlined in the final comments there.

We can move the rest of the discussion to one of the astroid issues. A lot of the discussion is happening on irc at the moment. Currently @ramblurr is tinkering with setting up a separate repo with all the JS dependencies so that they can more easily be bundled together, and we won't require a net connection to build astroid.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.

gauteh commented 7 years ago

Yes, im on Norway time. It's a bit on and off. The important stuff is on github, but I've got a proxy so I'll hopefully see it if you write something when I'm away. I don't mind using GitHub, it just evolved a bit like that for this sub project.

fre. 29. sep. 2017 kl. 12.59 skrev c-alpha notifications@github.com:

Many thanks for the pointers, @gauteh!

I'll study the issues & comments, and the referred code and think where I can start.

The irc is #astroid on freenode, I presume? What's the best time to meet people on the irc relative to CET hours?

On 2017-09-29, at 10:18 , Gaute Hope notifications@github.com wrote:

c-alpha writes on september 29, 2017 0:16:

@gauteh wrote:

If you know C++, JS or HTML there's plenty to do ;)

C++: certainly JS: no HTML: intermediate

Where to start?

Issues:

This branch:

The code in src/thread_view/thread_view.cc, you will see a lot of comments about what needs to be done there.

@ramblurr is writing a JS library that runs on the webkitside, we call this webkit view with JSON serialized content from the C++ side. As well as methods for handling focus and state.

The original issue: https://github.com/astroidmail/astroid/issues/49, the apporach chosen is outlined in the final comments there.

We can move the rest of the discussion to one of the astroid issues. A lot of the discussion is happening on irc at the moment. Currently @ramblurr is tinkering with setting up a separate repo with all the JS dependencies so that they can more easily be bundled together, and we won't require a net connection to build astroid.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/astroidmail/homebrew-astroid/issues/12#issuecomment-333097026, or mute the thread https://github.com/notifications/unsubscribe-auth/AADd---9TrpmcaG5q0l-zuXxwpHHNNz5ks5snM2JgaJpZM4Pismr .