GTK2 version?

Board for discussions around the Epyrus mail and news client.

Moderator: athenian200

User avatar
blu256
Newbie
Newbie
Posts: 3
Joined: 2022-10-01, 15:30
Contact:

GTK2 version?

Unread post by blu256 » 2022-10-01, 15:46

Hello,

I just discovered Epyrus today and tried out 1.3.0. But I noticed that, for Linux, there is only a GTK3 build (and the classic TB there looks quite awful with Adwaita). I wanted to ask if it's possible and planned to provide GTK2 builds (like Pale Moon does). Is that even possible, since Thunderbird 52 was a GTK+3 release?

I realise it might be a bit too early (or even stupid) to ask such a thing, but, in my opinion, it would be probably well accepted.

User avatar
athenian200
Contributing developer
Contributing developer
Posts: 1498
Joined: 2018-10-28, 19:56
Location: Georgia

Re: GTK2 version?

Unread post by athenian200 » 2022-10-01, 18:07

You're free to try and build a GTK2 version yourself, but I really don't want to put myself in the position of having to maintain and support two different Linux versions of my application the way Pale Moon does. I wouldn't be opposed to letting someone else provide a GTK2 build of Epyrus with official branding, but I have no interest in doing it myself. I know it's easy to judge this decision, but please bear in mind... I am building all these versions myself... Windows 32-bit, Windows 64-bit, and Linux 64-bit. There is no dedicated Linux maintainer. Also, at this point the interface is not finalized and I don't think it's a good time to be focusing on visual tweaks or GUI toolkits.

Honestly, I kind of find Linux to be a huge hassle because of the number of different configurations that you potentially have to account for... you don't know if they want GTK2 or GTK3, what version of glibc they need it built against, or if they're even using glibc at all. With my OpenIndiana and Solaris builds of Pale Moon, I chose to focus on GTK3 to avoid having to do four different builds... especially since some variants don't come with GTK2 at all anymore. If I'm being more blunt, I feel that pleasing Linux users is pretty much impossible, because half of them want to support ancient stuff that's been out of support for years, and the other half run bleeding edge systems with the latest version of everything, and both consider my application broken if it doesn't look right with their setup. I almost didn't provide Linux builds at all and just wanted Linux users to compile themselves... and that's still my advice if they want something like a GTK2 build or a 32-bit build, etc. I will be providing build instructions to make this easier in the future, though.

Overall, I really would prefer to improve the GTK3 version since GTK2 is going to disappear sooner than GTK3. And honestly I'm already kind of worrying about what comes after GTK3. Though... I might be willing to switch from GTK3 back to GTK2 if the majority wants that, but what I won't do is agree to provide both versions.

I mean, I guess overall... I'm not opposed to the existence of a GTK2 version, I just don't want to put in the work to provide two Linux versions.
"The Athenians, however, represent the unity of these opposites; in them, mind or spirit has emerged from the Theban subjectivity without losing itself in the Spartan objectivity of ethical life. With the Athenians, the rights of the State and of the individual found as perfect a union as was possible at all at the level of the Greek spirit." -- Hegel's philosophy of Mind

User avatar
blu256
Newbie
Newbie
Posts: 3
Joined: 2022-10-01, 15:30
Contact:

Re: GTK2 version?

Unread post by blu256 » 2022-10-02, 08:11

Thank you for the detailed response! I understand how maintaining all these variants can be a hassle to you and I will try indeed to compile Epyrus manually (although I've never compiled a Mozilla product, time to learn something new, I guess) and see how it works. If it succeeded and others would be interested in a GTK2 version, I'd happily share my build. :)

Thank you for working on Epyrus!

Edit: Build finally finished and looks like Epyrus GTK2 works well enough (haven't tested much yet). For reference, to build it (apart from following the Pale Moon build instructions for Linux) I had to manually edit platform/old-configure to set MOZ_WEBM_ENCODER to 0 and also apply a fix from this thread: https://forum.palemoon.org/viewtopic.php?t=28676.
Last edited by blu256 on 2022-10-02, 16:15, edited 1 time in total.

User avatar
athenian200
Contributing developer
Contributing developer
Posts: 1498
Joined: 2018-10-28, 19:56
Location: Georgia

Re: GTK2 version?

Unread post by athenian200 » 2022-10-02, 13:44

blu256 wrote:
2022-10-02, 08:11
Thank you for the detailed response! I understand how maintaining all these variants can be a hassle to you and I will try indeed to compile Epyrus manually (although I've never compiled a Mozilla product, time to learn something new, I guess) and see how it works. If it succeeded and others would be interested in a GTK2 version, I'd happily share my build. :)

Thank you for working on Epyrus!

Edit: Build finally finished and looks like Epyrus GTK2 works well enough (haven't tested much yet). For reference, to build it (apart from following the Pale Moon build instructions for Linux) I had to manually edit platform/old-configure to set MOZ_WEBM_ENCODER to 0 and also apply a fix from this thread: https://forum.palemoon.org/viewtopic.php?t=28676.
Yeah, I figured GTK2 would work fine. I probably need to update my platform commit pointer (currently it's outdated and not the one I used for release), and also clarify the build instructions. But you did pretty well for your first time. :) I am surprised about the MOZ_WEBM_ENCODER thing... I don't remember that ever being an issue, while I do remember the one in the above thread.

But yeah, I need to get better about doing things like tagging releases and updating my commit pointers, etc. If you built against current master though, you might notice I just added another way to access the Config Editor to the Tools menu and the hamburger menu.

Incidentally, this is the .mozconfig I use. Usually right now I either build against UXP master if it's in fairly stable condition with few changes I don't understand, or else checkout a recent UXP tag associated with a Pale Moon release that had a codebase I know is good and stable with Epyrus. Not the most organized way of going about things, but you can see how that would be tempting...

Code: Select all

# Clear this if not a 64bit build
_BUILD_64=1

# Set GTK Version to 2 or 3
_GTK_VERSION=3

# Standard build options for Epyrus
ac_add_options --enable-application=mail
ac_add_options --enable-optimize="-O2 -w"
ac_add_options --enable-default-toolkit=cairo-gtk$_GTK_VERSION
ac_add_options --enable-jemalloc
ac_add_options --enable-strip
ac_add_options --enable-devtools
ac_add_options --enable-calendar
ac_add_options --enable-security-sqlstore
ac_add_options --enable-av1
ac_add_options --disable-gamepad
ac_add_options --disable-tests
ac_add_options --disable-debug
ac_add_options --disable-necko-wifi
ac_add_options --disable-updater
ac_add_options --with-pthreads

# Please see https://www.palemoon.org/redist.shtml for restrictions when using the official branding.
ac_add_options --enable-official-branding
export MOZILLA_OFFICIAL=1

# Processor architecture specific build options
if [ -n "$_BUILD_64" ]; then
  ac_add_options --x-libraries=/usr/lib64
else
  ac_add_options --x-libraries=/usr/lib
fi

export MOZ_PKG_SPECIAL=gtk$_GTK_VERSION
By the way, it's likely that most people won't be able to use your build if you ran into that problem... see it means you're probably on the latest version of glibc, and so the binary won't run on most people's Linux distros. That kind of thing is an example of why it's such a pain... I have to use an old Linux distro that takes forever to compile things to produce binaries that most people can use. And I have to run it in a VM because my hardware isn't old enough to be compatible with that old distro.
"The Athenians, however, represent the unity of these opposites; in them, mind or spirit has emerged from the Theban subjectivity without losing itself in the Spartan objectivity of ethical life. With the Athenians, the rights of the State and of the individual found as perfect a union as was possible at all at the level of the Greek spirit." -- Hegel's philosophy of Mind

User avatar
blu256
Newbie
Newbie
Posts: 3
Joined: 2022-10-01, 15:30
Contact:

Re: GTK2 version?

Unread post by blu256 » 2022-10-02, 14:38

I am surprised about the MOZ_WEBM_ENCODER thing...
That might be some problem on my part. What exactly happened is that it couldn't find the ./platform/dom/media/platforms/agnostic/AOMDecoder.h header (I think) for some reason. I'll try to reproduce this behaviour and maybe post a detailed bug report. I figured that I didn't actually need WEBM support for an e-mail client, so I just disabled it. What did bother me is that modifying .mozconfig to include ac_add_options --disable-webm did not work (it complained that it's an unknown option) whereas the option is actually mentioned by the configure script when you don't have the yasm dependency.

Edit: I couldn't reproduce the issue after all. Now it builds just fine with MOZ_WEBM_ENCODER set to 1.
see it means you're probably on the latest version of glibc, and so the binary won't run on most people's Linux distros.
Yes, indeed. At least people will have this thread for reference for building the GTK2 version. I'm actually willing to help with the Linux builds of Epyrus but I have very little packaging experience.
And I have to run it in a VM because my hardware isn't old enough to be compatible with that old distro.
That must be a really old version. :shock:

Locked