Updating the Linux build environment

Talk about code development, features, specific bugs, enhancements, patches, and similar things.
Forum rules
Please keep everything here strictly on-topic.
This board is meant for Pale Moon source code development related subjects only like code snippets, patches, specific bugs, git, the repositories, etc.

This is not for tech support! Please do not post tech support questions in the "Development" board!
Please make sure not to use this board for support questions. Please post issues with specific websites, extensions, etc. in the relevant boards for those topics.

Please keep things on-topic as this forum will be used for reference for Pale Moon development. Expect topics that aren't relevant as such to be moved or deleted.
User avatar
trava90
Contributing developer
Contributing developer
Posts: 1727
Joined: 2013-05-20, 18:19
Location: Somewhere in Sector 001

Updating the Linux build environment

Unread post by trava90 » 2022-04-11, 15:55

Posting this here both as an FYI and a discussion starting point.

Currently all Linux binaries produced by myself are built in a CentOS 7.0.1406 environment using devtoolset-7 (GCC 7.3.1). Due to various dependency issues (of which all my attempts to update/resolve have resulted in a horribly broken environment), the devtoolset is stuck at v7 and unable to be updated to any newer version.

Because of this I have been working on and have a nearly complete fresh CentOS 7.6.1810 environment setup. CentOS 7.6 includes and resolves the dependency issues and so I have GCC versions 7, 8, 9, 10 and 11 installed and available for use in this environment. This will also mean that Pale Moon would be built against newer versions of some packages (most notably a much newer GTK3), but nothing higher than what is already listed as the system requirements for Linux anyway.

I am planning to build Pale Moon 31 and up using this newer environment. Do we want to upgrade the compiler version at the same time or continue using GCC 7? v7 is obviously very stable, v8 has been used for Interlink on Linux, and we had at least one Pale Moon release (v29.4.2.1) use v9 with no issues that I'm aware of. I've also been using v10 with additional optimization flags to build Pale Moon for my own personal use for some time now and have not noticed any obvious compiler-related issues or regressions.

My personal thought is that we should upgrade to at minimum GCC 9, and possibly even 10 but I'd like additional thoughts. Also as an aside, I know that Tobin worked to require GCC 7.1.0+ for GRE. Are we still wanting to bump the GCC version requirement for UXP and clean up workarounds/hacks for versions < 7.1.0? If so I'd be happy to start putting in some work on that.

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35402
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

Re: Updating the Linux build environment

Unread post by Moonchild » 2022-04-11, 18:39

trava90 wrote:
2022-04-11, 15:55
My personal thought is that we should upgrade to at minimum GCC 9, and possibly even 10 but I'd like additional thoughts.
I think aiming for v9 would be good. v8 has been somewhat unstable depending on minor versions. v10 should be OK but I'm not sure to what degree the related C/C++ libraries are available on distributions and I don't necessarily want to lock users out based on an arbitrary choice of compiler. It's pretty much "at the Linux corner's discretion" as far as I'm concerned, so by all means, discuss and reach consensus :)
trava90 wrote:
2022-04-11, 15:55
Also as an aside, I know that Tobin worked to require GCC 7.1.0+ for GRE. Are we still wanting to bump the GCC version requirement for UXP and clean up workarounds/hacks for versions < 7.1.0? If so I'd be happy to start putting in some work on that.
It was actually one of the few things we discussed before putting in motion (unlike a lot of other things that were done to the tree). Requiring 7.1.0 and later is good as the older versions do need specific workarounds and 7.1 is a very reasonable and broadly-encompassing minimum version. I already made a start with that in GRE to remove the hacks and workarounds for old gcc versions, so if you want to work on that, have a look at https://repo.palemoon.org/MoonchildProd ... /issues/15
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

User avatar
micwoj92
Fanatic
Fanatic
Posts: 174
Joined: 2020-12-22, 20:57

Re: Updating the Linux build environment

Unread post by micwoj92 » 2022-04-12, 19:24

Why not use latest centos7, 7.9?

User avatar
trava90
Contributing developer
Contributing developer
Posts: 1727
Joined: 2013-05-20, 18:19
Location: Somewhere in Sector 001

Re: Updating the Linux build environment

Unread post by trava90 » 2022-04-12, 20:50

Primarily for compatibility/stability reasons. Newer environments with newer packages have potential to introduce unwanted changes to minimum system requirements (have been bit by this before). I try to avoid any changes to the build environment unless absolutely necessary or deemed beneficial (such as for compiler version updates).

User avatar
DjogaRo
Moongazer
Moongazer
Posts: 14
Joined: 2022-03-21, 00:21

Re: Updating the Linux build environment

Unread post by DjogaRo » 2022-04-13, 05:47

The surest way would be have a dialog on site explaining what this is about, asking the user for permission to check for available library versions, show the table of results ("you've got", "toolchain X'd need", "toolchain Y'd need", ...), and ask again for permission to share the findings with the developers.
Next best thing would be offer in parallell a more toolchain-version-bumped testing build and ask for bug reports. Would need the browser to bring up a dialog too, to somewhat make sure at least those on less up-to-date systems know of the evaluation process and give them the opportunity to weigh in by means of testing.

Though, I have no idea how much work it is to set up a toolchain properly and thus if this would be worth the trouble. If it was feasible, it maybe should be done not earlier than, when palemoon's properly back on track.

User avatar
andyprough
Astronaut
Astronaut
Posts: 688
Joined: 2020-05-31, 04:33

Re: Updating the Linux build environment

Unread post by andyprough » 2022-04-13, 13:09

If someone just tells me which packages you need version numbers for, I've got a few different Linux installs, I'll be happy to share them here on the forum. I'm sure other Linux users would as well.

Locked