gnunn1 / tilix

A tiling terminal emulator for Linux using GTK+ 3
https://gnunn1.github.io/tilix-web
Mozilla Public License 2.0
5.36k stars 293 forks source link

PCRE2 not supported in Ubuntu 17.10 #916

Closed alex285 closed 7 years ago

alex285 commented 7 years ago

when in run Tilix glib.GException.GException@../../.dub/packages/gtk-d-3.5.1/gtk-d/src/glib/GException.d(40): PCRE2 not supported

Ubuntu 17.10 libvte-2.91-0 => 0.48.2

gnunn1 commented 7 years ago

That's weird, all of the PCRE2 is supported since VTE 0.46. What does tilix --version show?

Also, what regex were you trying to use, wonder if this is more of a bad regex error that's getting a wrong error number.

alex285 commented 7 years ago

Tilix is from master the time i filed the bug. im not trying to run a regex, it doesn't even launch. it happened after an update in Ubuntu which i have no idea which one

gnunn1 commented 7 years ago

Do you have any custom hyperlinks?

Also what does tilix --version show?

alex285 commented 7 years ago

@gnunn1

Do you have any custom hyperlinks?

no

Also what does tilix --version show?

cant run since it gives me glib.GException.GException@../../.dub/packages/gtk-d-3.5.1/gtk-d/src/glib/GException.d(40): PCRE2 not supported

findings i looked a bit into my update history and the relative changes that cause the issues seems to be

libvte-2.91 / libvte-2.91-common from 0.44.2-1ubuntu3 to 0.48.2-0ubuntu2

downgrading vte fixed the issue. note that 0.44 is on Zesty (17.04) and 0.48 is on Artful (17.10)

Tilix version after the downgrade i can run Tilix again so

Versions Tilix version: 1.5.6 VTE version: 0.44 GTK Version: 3.22.12

Tilix Special Features Notifications enabled=0 Triggers enabled=0 Badges enabled=0

gnunn1 commented 7 years ago

I'm going to have to fire up a VM to have a look at what's going on. Unfortunately I'm travelling today so it will probably be a couple of days before I can have a look.

egmontkob commented 7 years ago

See https://bugs.launchpad.net/ubuntu/+source/gnome-terminal/+bug/1666264 – apparently for 17.10 Artful they rolled back the PCRE changes in VTE.

I've been planning for months to write a bit harsh comment to that bug, just never got around to it. It's pathetic what they're doing.

Breaking Tilix would be another data point...

egmontkob commented 7 years ago

In the mean time I'm wondering... What about the Artful Tilix package, does that work? If so, how? Do they patch Vte-D or Tilix? If not, are they aware of it? ...

gnunn1 commented 7 years ago

Thanks for the heads up @egmontkob, I've added a comment to the bug report. Seems like a very poor decision IMHO.

jbicha commented 7 years ago

This does not affect Ubuntu 17.10 Alpha yet because 17.10 only has tilix 1.5.4 but pcre2 support was added to tilix after 1.5.6.

Once Ubuntu gets tilix 1.5.8 or whatever, Ubuntu will just need to patch tilix to tell it that 0.46 isn't high enough for PCRE2.

Ubuntu won't avoid PCRE2 forever, but from Ubuntu's perspective, almost nothing is using PCRE2 yet. (In GNOME, vte/gnome-terminal is using it but not glib.) Thank you for commenting on the LP bug.

gnunn1 commented 7 years ago

Thanks for the reply. Isn't selectively reverting commits in VTE going to cause issues though since potentially every VTE based terminal emulator is going to run into this as they upgrade to PCRE2.

Wouldn't it just be cleaner to pin gnome-terminal and vte to the previous version since all of the terminal emulators will check the version number and work OOTB with the older version. Otherwise you are going to be constantly patching apps that use the version check to determine if PCRE2 is supported.

Also, anything in PPAs would have issues. Many people use the web8upd PPA for example which I assume wouldn't be patched by Ubuntu.

Also, doesn't gnome builder 3.24 use the PCRE2 vte functions.

jbicha commented 7 years ago

Ubuntu's gnome-builder has the PCRE2 stuff patched out.

webupd8's PPA would have to grab the Ubuntu patch.

Like I said, Ubuntu won't patch vte like this forever. The real issue isn't 1666264 but 1636666 and the solution to that second bug is for more stuff in main to switch to PCRE2.

gnunn1 commented 7 years ago

It still seems weird to go this route. Essentially VTE is reporting a version where it is expected that the PCRE2 functions are available but are not. I'd be concerned this is going to lead to weird issues particularly with any lesser used packages or PPAs.

Is leaving VTE at 0.44 not an option for Ubuntu, seems like a much better solution to me as it eliminates the need to individually patch individual applications.

jbicha commented 7 years ago

@gnunn1 I don't see how this decision will cause you much trouble at all personally. It's a downstream issue and it's up to Ubuntu to make sure Ubuntu's tilix package works.

I felt that it was better to update gnome-terminal with a revert patch than to leave it stuck at 3.20 for a few more Ubuntu releases. Once that revert patch becomes too much to handle or when more stuff in Ubuntu main converts to pcre2, we will reconsider.

gnunn1 commented 7 years ago

It affects me in the sense that many people like the OP often build tilix from source to access the latest and greatest. At the end of the day it's your guys call, just offering an opinion on what I feel is a better solution. If it comes up in the future I'll send them to the linked Ubuntu issue.

alex285 commented 7 years ago

@gnunn1 aside this issue, since you patch VTE, wouldn't be a good idea for a tilix-vte package? for Arch as well, without replacing original vte package, so Arch could ship it on [extra]?

f2404 commented 7 years ago

@alex285 Arch is not even shipping tilix, why would it ship tilix-vte?

alex285 commented 7 years ago

@f2404 ouch! i didnt know Tilix wasn't in [extra] because i always have it from source, but point remains, that Tilix needs a patched VTE to enable all the features, both in Ubuntu and Arch, and im not sure if all features are enabled on Fedora, so it makes sense to have a vte-tilix package, rather using upstream VTE or replacing upstream VTE (in case of AUR)

besides what if/when Tilix gets on [extra]?

f2404 commented 7 years ago

@alex285 In fact, @dsboger is already providing some patched vte packages via AUR: one, two I guess those may be adopted to Arch [extra] repo along with tilix itself if (when) they decide to take it.

gnunn1 commented 7 years ago

@alex285 I don't do packaging but having said that I don't think my patches should really be in extra or a mainline repository. It's really more appropriate for AUR or PPA due to their experimental nature.

gnunn1 commented 7 years ago

I'm closing this since IMHo it's an Ubuntu issue and up to them to deal with it.

alex285 commented 7 years ago

@gnunn1 why not leave it open for people that will have the same issue? it is upstream, but it is still a bug that affects Tilix, in the most popular distro

perhaps just add "Ubuntu something" in the title?

gnunn1 commented 7 years ago

@alex285 github's issue management isn't great and I don't like to leave a bunch of issues open that are out of my control, hence I close them. If you want, feel free to add a FAQ item to the tilix website for this issue as that is the best location for it.

alex285 commented 7 years ago

@gnunn1 i added an item as you suggested on FAQ hope i did it right! but back to the original issue, whats the recommended workaround on this?

@jbicha please opinion?

egmontkob commented 7 years ago

IMO wipe out artful's braindamagedly patched vte and install a mainstream one :)

f2404 commented 7 years ago

@alex285 Use Arch ;)

alex285 commented 7 years ago

@egmontkob which is why i asked @jbicha if there will be a PPA to offer an upstream VTE for Ubuntu 17.10 in case that the decision remains

gnunn1 commented 7 years ago

@alex285 you would need to modify the version checks for anything PCRE2 related so that it checks for 0.50, which doesn't exist, instead of 0.48 to fool tilix into thinking the functionality is not available.

f2404 commented 7 years ago

@gnunn1 Would tilix even compile on a system that doesn't have pcre2?

gnunn1 commented 7 years ago

@f2404 It should because it doesn't use PCRE2 directly but only through the VTE methods.

egmontkob commented 7 years ago

@gnunn1 How is that a robust approach? 0.50 is going to exist in a few months from now, and chances are that Ubuntu is going to apply the same patches.

f2404 commented 7 years ago

@gnunn1 What about pcre2 flags?

alex285 commented 7 years ago

@f2404 yes! and we can install PCRE2 in Ubuntu anyway

egmontkob commented 7 years ago

It should because it doesn't use PCRE2 directly but only through the VTE methods.

Speaking of which... a few months ago I took a quick look at the patch Ubuntu was about to apply, and I didn't spot any API-related change. Apparently I missed something. Do you know what did I miss, what is the exact bit on which Tilix is failing? (I'm not that familiar with VTE's mainstream regex-related changes, nor what Ubuntu is doing.)

gnunn1 commented 7 years ago

@egmontkob, it's not robust and it's not meant to be. It's just a workaround for someone who wants to compile it manually. I'm not very interested in adding a more permanent workaround for a poor decision.

If Ubuntu wants to fix it with a flag they can submit a PR.

gnunn1 commented 7 years ago

@egmontkob The problem is that the VTE still reports itself as version 0.48. Tilix checks the version number and if it is => 0.46 it uses the PCRE2 functionality in VTE since it is expected to be there.

Now in fairness, tilix should not crap out when it fails and I'll have a look at improving that. However, I'm not willing to do more since Ubuntu is essentially subverting the point of having a version and being able to check it to accurately determine the features that are available. It's not a pattern I want to encourage.

egmontkob commented 7 years ago

@gnunn1 Really nitpicking, but in that case I think the workaround shouldn't be replacing the ">= 0.46" condition by ">= 0.50" (and then you'd have to keep your wiki updated after every new major version where Ubuntu still f*cks it up), but rather a constant false expression.

gnunn1 commented 7 years ago

@egmontkob Yep it's a shit workaround but really 0.50 was just an example, pick 0.90 or something else that won't come into play anytime soon. The point is I'm not lifting a finger to provide a proper workaround, if Ubuntu wants to make decisions like this then it's their responsibility to fix it.

If they (or someone else) want to do a proper workaround I'm happy to take a PR.

gnunn1 commented 7 years ago

@egmontkob And I'm realizing where some confusion is coming from. When I say workaround, I mean something that a developer would do on his machine to make it work if they want to compile it manually on Ubuntu. I'm not saying this is a workaround that would be checked into git, a more proper solution would be something like @f2404 suggestion of adding a PCRE2 flag.

Like I said, if someone wants to undertake that work and test it in Ubuntu I'm happy to take a PR for it. In the absence of that, updating the version number on your local version, for people who want to compile Tilix, is the only available solution at the moment.

gnunn1 commented 7 years ago

I've checked in a change so that Tilix should run in Ubuntu's version of PCRE2, however no hyperlink's or search capability will be available.

jbicha commented 7 years ago

@alex285 I don't think it's that common for people to compile tilix from source if it's already packaged in their distro. And if they can compile tilix from source, they can compile vte too if they want.

I have no intention of providing a different version of vte in Ubuntu or in a PPA.

egmontkob commented 7 years ago

I'm realizing where some confusion is coming from. When I say workaround, I mean something that a developer would do on his machine [...]

This was clear to me.

[...] however no hyperlink's or search capability will be available

Arghhh... I guess I liked the previous approach (no patch at all, just instructions how to patch) better.

Anyways... As I'm still lazy to comment on the Ubuntu bug, and I guess I'm out of here as well. There's really no good solution to this story, and it's not you who messed it up big time. So I'd rather not have a say in how you mitigate the problem. Thanks for the work you put in this, and I'm really sorry you have to waste your time on such craziness!

f2404 commented 7 years ago

The same happened to xfce4-terminal in Artful: https://bugzilla.xfce.org/show_bug.cgi?id=13580

tliron commented 7 years ago

I just upgraded Tilix on Ubuntu 17.04 using the official PPA and am now getting this error.

nobeh commented 7 years ago

Encountered the same issue with 1.5.8 updated from WebUpdate8 PPA on Ubuntu 17.04.

Building from source from tag 1.5.6 is working now for me.

hotice commented 7 years ago

I'm not sure what's going on in Ubuntu 17.04 because I'm not encountering this issue: http://i.imgur.com/TwiCEb5.png But assuming the issue is indeed the one in this bug report, I updated the PPA packages with a patch to work around this issue.

The patch fixes the issue in Ubuntu 17.10 but I can't test it in 17.04 since I'm not affected by this for some reason. So @tliron and @nobeh , can you please update Tilix to the latest version from the PPA (1.5.8-1~webupd8~zesty2) and let me know if it works?

phw commented 7 years ago

I'm not sure what's going on in Ubuntu 17.04 because I'm not encountering this issue

Ubuntu 17.04 is not affected because it has VTE < 0.46

hotice commented 7 years ago

@phw but it was reported by 4 Ubuntu 17.04 users so I don't get it...

nobeh commented 7 years ago

@hotice I confirm that updating to 1.5.8-1~webupd8~zesty2 fixes the issue:

$ tilix --version
Versions
    Tilix version: 1.5.8
    VTE version: 0.48
    GTK Version: 3.22.11

Tilix Special Features
    Notifications enabled=0
    Triggers enabled=0
    Badges enabled=0
hotice commented 7 years ago

@nobeh great, thanks for the confirmation! But now I see why I wasn't affected. You somehow have a newer VTE version (or maybe you are actually using Ubuntu 17.10 and not 17.04)...

nobeh commented 7 years ago

I think this clarifies why, because I am using GNOME staging PPA:

$ sudo apt-cache policy libvte-2.91-common
libvte-2.91-common:
  Installed: 0.48.2-0ubuntu2~zesty1
  Candidate: 0.48.2-0ubuntu2~zesty1
  Version table:
 *** 0.48.2-0ubuntu2~zesty1 500
        500 http://ppa.launchpad.net/gnome3-team/gnome3-staging/ubuntu zesty/main amd64 Packages
        500 http://ppa.launchpad.net/gnome3-team/gnome3-staging/ubuntu zesty/main i386 Packages
        100 /var/lib/dpkg/status
     0.44.2-1ubuntu3 500
        500 http://nl3.archive.ubuntu.com/ubuntu zesty/main amd64 Packages
        500 http://nl3.archive.ubuntu.com/ubuntu zesty/main i386 Packages