Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[LMDE7] Rebase onto gjs-1.82.1 (from debian 13/trixie) - mozjs 128 support. #127

Merged
merged 2 commits into from
Mar 25, 2025

Conversation

mtwebster
Copy link
Member

Required for LMDE7, supports mozjs 128 (not available in Mint 22 currently)

@Fantu
Copy link
Contributor

Fantu commented Jan 28, 2025

@jbicha Is possible to add mozjs128 in Ubuntu 24.04 or should be added in specific Mint repository?

@jbicha
Copy link

jbicha commented Jan 28, 2025

@jbicha Is possible to add mozjs128 in Ubuntu 24.04 or should be added in specific Mint repository?

For Ubuntu 22.04 LTS, I did add mozjs102 which nothing in Ubuntu ever used and we ended up doing security updates only for the benefit of Linux Mint.

This doesn't really make sense because Linux Mint is already providing its own packages. It can handle providing a mozjs package too.

For Ubuntu 24.04 LTS, there is no need for Ubuntu to have mozjs128 so it's going to be on Linux Mint to provide that.

Linux Mint could probably work with Ubuntu to get the package in directly. I'm just unable to take on the responsibility of maintaining mozjs128 in Ubuntu 24.04 LTS in addition to all the other work I do.

@mtwebster
Copy link
Member Author

I'm not really worried about getting mozjs128 into Mint 22 - we already run different versions between Mint and LMDE6 editions.

@Fantu which 'milestone' do we need to have a tag for this by so you can include it in trixie?

@Fantu
Copy link
Contributor

Fantu commented Feb 17, 2025

Debian 13 freeze start 2025-03-15 and soft freeze on 2025-04-15: https://release.debian.org/testing/freeze_policy.html
So it should be included (on Debian unstable) before 2025-04-15.
I haven't tried it yet so I don't know if it works and if cinnamon needs any adjustments for it.

@mtwebster
Copy link
Member Author

I worked on this off a trixie 'alpha 1' install. I ran into a few issues on dependencies with other packages (I don't think anything more serious than libgdk-pixbuf2.0-dev -> libgdk-pixbuf-2.0-dev) - but the cinnamon 'stack' ran ok otherwise.

@Fantu
Copy link
Contributor

Fantu commented Feb 22, 2025

@mtwebster thanks for your work, I did a PR that adds some fixes to packaging: #128

Out of that I did this additional commit that add cjs-tests and full autopkgtest but autopkgtest failed and I have not had time to check better.
Seems strange since gjs don't have fails including latest update of mozjs and new deps versions in experimental: https://ci.debian.net/packages/g/gjs/unstable/amd64/
Anyway since you don't want cjs-tests (if I remember good from previous rebase) and Mint don't have CI system that use autopkgtest to detect regression on deps updates should not be important.

* remove debian/watch* not needed for native package and was of gjs

* d/copyright: restore cjs header

* fix debian/shlibs.local

* autopkgtest: partially fixed and disable installed test part for now

* d/rules: restore strict check of symbols

* d/gbp.conf: remove major of things as not needed or wrong for this repo

* remove gitlab-ci of gjs

* other fixes for autopkgtest build

* d/control: replace old priority extra that was replaced by optional

* debian: restore symbols with right cinnamon versions and readd the new ones

* debian: fix version of new symbols
@clefebvre
Copy link
Member

For Ubuntu 22.04 LTS, I did add mozjs102 which nothing in Ubuntu ever used

Isn't Cinnamon in Ubuntu? Cinnamon uses it.

and we ended up doing security updates only for the benefit of Linux Mint.

No. For the benefit of Cinnamon.

You're making it sound like Cinnamon isn't present in Ubuntu and there are no Cinnamon users in your distribution. I'm a bit confused by your statements.

@Fantu we'll tag an early 6.6 CJS based on Mozjs128. We don't need to wait for the rest of Cinnamon 6.6 to be released.

@clefebvre
Copy link
Member

clefebvre commented Mar 24, 2025

Just to confirm what Michael said, Cinnamon 6.6 will be compatible with both versions of CJS. It will work with Mozjs28 in the next Debian/LMDE but it won't need it in 24.04/Mint22.x.

@Fantu
Copy link
Contributor

Fantu commented Mar 24, 2025

@clefebvre maybe you are getting a little confused, mint is a "semi rolling release" about cinnamon are concerned while Ubuntu as well as Debian remain fixed as software versions on the stable releases.
So @jbicha don't want add new mozjs on older Ubuntu where gnome and cinnamon don't use it but only derivates and should be added in mint repository.
About Debian 13 is present and can be good remove the older (now used only by cinnamon), cjs 6.4 had also a regression, I not checked deep since will be replaced with new version but I suppose is caused by latest security update of old mozjs.

EDIT:
if new cjs rebase don't have api changes that require changes on cinnamon so you can also keep cjs 6.4 on Ubuntu 24 and 6.6 for next LMDE based on Debian 13

@clefebvre
Copy link
Member

It's the statement about mozjs102 which was confusing, not the fact that mozjs128 won't be added to 24.04.

Ubuntu 24.04 ships with the version of mozjs (102) its version of Cinnamon (6.0) uses. The reason mozjs102 is maintained in the 24.04 repositories is because Cinnamon 6.0 is maintained in the 24.04 repositories. This isn't done for Linux Mint (although it does indirectly benefit Linux Mint as well), it's done for Cinnamon Ubuntu users.

Now, about mozjs28: It's completely irrelevant to Ubuntu 24.04 what mozjs version future Cinnamon versions depend on since the only version of Cinnamon it supports is version 6.0. So it's completely normal for @jbicha to not consider adding mozjs28 to 24.04. It would make no sense for him to do that.

Last but not least, there's the Cinnamon project POV on this. Debian Stable, Ubuntu LTS, Mint and LMDE are all big targets for us. As much as possible we want to use the version of mozjs that's available in the next Debian/Ubuntu-LTS, ideally the same version that is used by GNOME, but also keep compatibility with earlier versions when it's possible.

@jbicha
Copy link

jbicha commented Mar 24, 2025

I guess my statement earlier was unclear so let me try again:

I prepared multiple security releases of mozjs102 for Ubuntu 22.04 LTS. There was no package in Ubuntu 22.04 LTS itself that has ever used mozjs102.

@clefebvre
Copy link
Member

Indeed, in 22.04 Cinnamon used mozjs78 afaik. Why was mozjs102 present/added?

@jbicha
Copy link

jbicha commented Mar 24, 2025

Ubuntu 22.04 LTS was dual purpose.

  1. I attempted to switch Ubuntu Desktop to a newer gjs/mozjs version as a Stable Release Update but we were unable to get the QA/testing story polished enough for that to be done.

  2. Previously, it felt like the cjs maintainers were delaying rebasing on newer gjs/mozjs because the newer mozjs wasn't packaged in Debian or Ubuntu.

If that is still a concern, I do not understand why you can't package newer versions of mozjs and distribute them for Linux Mint and LMDE the same way you distribute your own version of cinnamon, nemo, etc.

The delay affects me because I am the person responsible for keeping mozjs* working in Debian and Ubuntu. The only reason I have been updating mozjs115 in Debian and Ubuntu 25.04 since October is because of cjs.

@clefebvre
Copy link
Member

The delay affects me because I am the person responsible for keeping mozjs* working in Debian and Ubuntu. The only reason I have been updating mozjs115 in Debian and Ubuntu 25.04 since October is because of cjs.

Alright, I think that's the kind of things we don't really realize on our side. We can ship/maintain newer mozjs pkgs but for the same reasons you mentioned, we prefer not to. That said, if we can reduce the work involved in Debian and Ubuntu by syncing better with your version of mozjs, or GNOME's, then we definitely want to do that.

There used to be one and only one CJS for each version of Cinnamon, with no backward compatibility. That's more flexible now, we can ship Cinnamon 6.6 on different versions of CJS/mozjs. We can also tag early like we're doing now.

@jbicha
Copy link

jbicha commented Mar 24, 2025

Thanks for the reply. This sounds good to me.

I've noticed that it's a lot easier to update to newer versions of gjs or stay on older versions than it used to be for the GNOME apps that use gjs.

Unfortunately, with the Firefox release schedule, this is an annual thing so we'll already be trying to switch to mozjs140 in 6 months even though it doesn't exist yet.

If it would ever be possible to rebase Cinnamon onto gjs, it would also solve this problem. I know that's been discussed before but I have no idea how far apart the two projects are currently.

@clefebvre
Copy link
Member

CJS rebases on GJS, but Cinnamon using GJS directly is not viable. It's not designed to be used by anything else than GNOME. It's not developed in a way that wouldn't break for Cinnamon every so often. We would require constant changes in Cinnamon to adapt to it and we wouldn't be able to ship Cinnamon to multiple distributions as a result. This is the reason CJS and Muffin were forked in the first place, so that Cinnamon could work in any distribution, regardless of the version of GNOME that the distribution shipped with.

The ideal situation for a particular package base would be to have GJS and CJS, both using the same version of mozjs.

We'll have a talk within the team to see if we can come up with more solutions. I think the retro-compatibility and the disassociation of CJS releases and Cinnamon releases (right now in terms of timing but eventually maybe even in terms of versioning) will definitely help.

Although it requires more testing and more flexibility in terms of compatibility, it basically means we can release CJS versions targeted at Debian, Ubuntu or more modern package bases, without having to wait for a Cinnamon release, or care when and/or if Mint or LMDE will be using them.

@clefebvre clefebvre merged commit daa4057 into master Mar 25, 2025
0 of 2 checks passed
@clefebvre
Copy link
Member

@Fantu @jbicha we merged support for mozjs128. We're almost ready to tag.

We're thinking about changing the versioning for CJS. Instead of being 6.6.x, it would be 128.x. We're seeing the following pros:

  • It would make it clearer what version of mozjs it depends on.
  • It would make it clearer it can be released independently of the rest of Cinnamon.
  • The compatibility between Cinnamon and different versions of CJS would also be easier to follow (rather than saying Cinnamon 6.6 is compatible with CJS 6.0, 6.2, 6.4, 6.6, we'd have a simpler dependency on 102.x or 128.x).

Potential cons:

  • 128 being quite high, if we ever needed to go back we'd need an epoch. I don't see why we would need to go back though.
  • We'll need to adapt the dependencies in Cinnamon, this should be simple enough.

Do you see any other cons to doing that? Let us know what you think.

@clefebvre clefebvre mentioned this pull request Mar 27, 2025
@Fantu
Copy link
Contributor

Fantu commented Mar 28, 2025

With use of multiple versions for different mozjs as you wrote will be better a different versioning and same version of mozjs used seems to be good.
If there were break changes in cjs again as happened in the past and will "returned" to a single version of cjs for 1 or more versions of cinnamon I think that could still keep new versioning instead of returning to the same one as cinnamon to avoid the use of epoch.

@fulalas
Copy link

fulalas commented Mar 28, 2025

This is great!

Any plans to release a new version so distros can build/pack?

Thanks!

@leigh123linux
Copy link
Contributor

This is great!

Any plans to release a new version so distros can build/pack?

Thanks!

I didn't need a release, patching is cool as it's makes it easier to rollback if needed.

https://bodhi.fedoraproject.org/updates/FEDORA-2025-f282eabd0d

@clefebvre
Copy link
Member

clefebvre commented Mar 28, 2025

This is great!

Any plans to release a new version so distros can build/pack?

Thanks!

Yeah, just testing the new version scheme atm.

@clefebvre
Copy link
Member

Alright, 102, 115 and 128 are now tagged.

@fulalas
Copy link

fulalas commented Mar 29, 2025

Alright, 102, 115 and 128 are now tagged.

Interesting. Let me try to understand. Cjs was in version 6.4.0, and now it has 3 new versions related to mozjs versions (102, 115 and 128). What will happen in terms of versioning when cjs receives a new release (let's say before a new mozjs version is released)?

@clefebvre
Copy link
Member

Right, so it's actually using a major and a minor version: X.Y.

X being the version of mozjs.
Y being the bugfix version we increment.

The tags aren't 102, 115, 128, they're 102.0, 115.0, 128.0.

If we fix something on 128.0, we'll tag 128.1 and so on.

@fulalas
Copy link

fulalas commented Mar 29, 2025

@clefebvre, I see now. Thanks for clarifying :)

Cheers

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants