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

Debian dropped smuxi-frontend-gnome due to GTK+2 and GTK#2&3 being dropped #297

Open
infinity0 opened this issue Aug 15, 2023 · 13 comments · May be fixed by #301
Open

Debian dropped smuxi-frontend-gnome due to GTK+2 and GTK#2&3 being dropped #297

infinity0 opened this issue Aug 15, 2023 · 13 comments · May be fixed by #301

Comments

@infinity0
Copy link

See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=967750 for details. Regrettable but understandable.

Are you planning to port to GTK 3?

@knocte
Copy link
Contributor

knocte commented Aug 16, 2023

Interesting. But if the app bundles GTK2 via snap or flatpak, it should work, right?

@infinity0
Copy link
Author

Most Linux distros don't allow bundling in their system package manager, to avoid security-critical dependencies going out of date. If smuxi doesn't care about this and only cares about distributing via flatpak, that's its choice. Historically it has cared though, meebey was (and still is) a Debian Developer.

@knocte
Copy link
Contributor

knocte commented Aug 18, 2023

Most Linux distros don't allow bundling in their system package manager, to avoid security-critical dependencies going out of date

I guess you're talking about .deb packaging here? I never referred to bundling gtk2 inside the deb package.

If smuxi doesn't care about this and only cares about distributing via flatpak, that's its choice

I'm not talking about choices here yet, I'm asking technical questions. In fact if you are a debian user yourself you could answer my technical question by doing a very simple test from your system, because I happen to be a developer of a GTK2 app myself which can be installed via the snap store. Can you download the snap package for app called "geewallet" and see if it works in the Debian OS version that is dropping GTK2? Because if that works, I can contribute a PR that creates a snap package for smuxi.

@infinity0
Copy link
Author

This issue is about the smuxi-frontend-gnome .deb package. As a Debian user and developer that is what I care about. I don't care about snap or flatpak.

@knocte
Copy link
Contributor

knocte commented Aug 18, 2023

Snap and flatpak are the best way to distribute GUI applications in Linux. IMNSHO deb/rpm packages should be used for only core parts of the distro. I'll help meebey setting this up in case he has troubles moving forward with Debian.

@meebey
Copy link
Owner

meebey commented Aug 18, 2023

While I can understand that Linux distros don't want to keep multiple versions of libraries with the same functionality (gtk2/3) around, it is a bit questionable to just drop the GNOME frontend and render the software useless.

The install base of GTK2 is declining but way still too significant to call GTK2 legacy or obsolete (it is the percentage of all Debian installs that submitted data to popcon):
image

Upstream wise the situation looks very different. GTK+ 2.x had their last release with 2.24.33 about 2 years ago, so it appears to be no longer maintained:
https://gitlab.gnome.org/GNOME/gtk/-/commits/gtk-2-24/

Kind of funny timing that smuxi-frontend-gnome is removed from Debian while I pushed it to NixOS last night:
NixOS/nixpkgs#249831

Looking at the Debian bug it appears Debian is happy to remove more packages based on low popularity. Not sure when or if I will find the time to move Smuxi over to GTK#3. Many show stoppers are resolved (like dropping libglade and use GtkBuilder) and the last piece is re-basing the gtk3 branch of Smuxi and get a GTK#3 release out somehow...

@infinity0
Copy link
Author

infinity0 commented Aug 18, 2023

I can see why snap/flatpak is useful for some cases in particular if the team is active and on top of their security patches. Historically this has not been the case for small FOSS projects which is why the distros have these policies.

I think the fact that GTK 2 hasn't been maintained for over 2 years weighs more than the fact that 50% of Debian (popcon) users still have it installed - likely not intentionally or consciously. Personally I just think of it as a proxy for "is the project actively maintained or not".

The person that dropped smuxi-frontend-gnome is just one Debian Developer and you can contest his decision and re-upload it back if you wish. The fact that you released 1.2.1 in April is encouraging, although I can understand you don't want to make any promises for when GTK 3 will actually be done. On the other hand 1.2.1 isn't in Debian today, does that mean you're no longer actively interested in keeping the Debian package up-to-date?

edit: of course there's a time window for re-uploading it back, you have until when they actually remove GTK 2. It's currently still in the archive but I'm not sure for how long.

@meebey
Copy link
Owner

meebey commented Aug 18, 2023

@infinity0 I agree that using unmaintained libraries is bad, so that event was decided upstream and not downstream. Downstreams that leave unmaintained software around may lead to security issues...
Smuxi should move to GTK+3, it is time.

@meebey
Copy link
Owner

meebey commented Aug 18, 2023

The official gtk-sharp repo stalled with 2.99.3, released in 2014, so we should consider other GTK# forks... (in theory they should be mostly API compatible as they try to expose the same underlying APIs of GTK).

@meebey
Copy link
Owner

meebey commented Aug 18, 2023

@knocte as long as Smuxi uses a native UI toolkit like GTK I don't think it worth the afford to make it work with snap/flatpack in my opinion (given it could use gtk3 without a "container" around it). Software is actually no longer native/consistent these days and simply relies on cross-platform web interfaces. So beyond gtk3, Smuxi should get a web frontend with MAUI that would also unlock mobile support...

@dhasenan
Copy link

https://github.com/GtkSharp/GtkSharp lists GTK+ 3.22 as a .NET Standard 2.0 target and is being actively developed. It's a fork of mono's gtksharp. I'm not sure of the best way to include the dependency. Nuget is the obvious way, but it's not necessarily the best for packaging. Guidance would be helpful.

Stetic isn't available for GTK+ 3 (and Monodevelop hasn't been developed in the past two years), but that's probably not going to be a giant problem for an immediate port. Long term, migrating to Glade and Gtk.Builder is preferred.

@meebey
Copy link
Owner

meebey commented Apr 7, 2024

Debian has also removed gtk-sharp2 on other grounds, while gtk+2 is still around.

TL;DR: gtk-sharp2 includes API definitions (XML files called *.raw) that preceded Gir for the GTK# binding code to be generated. The input of the API definitions were "scraped" from GTK+'s C header files in the past. Now this is not free enough in some people eyes because you can't reproduce this scraping... A bit esoteric in my eyes but I understand the rational.

Following this logic: how about code with the actual API implementation in C (not the headers/prototypes), when the human who wrote the code dies, it means we lost the capability to reproduce that code (the input process to the code file is gone). Should we stop using that code and remove it from the Debian archive after his death?

@meebey meebey changed the title Debian dropped smuxi-frontend-gnome due to GTK 2 being dropped Debian dropped smuxi-frontend-gnome due to GTK+2 and GTK#2&3 being dropped Apr 7, 2024
@meebey
Copy link
Owner

meebey commented Apr 7, 2024

So the problem is not just porting Smuxi to GTK+3, but also to a language binding that does not violate the new standard for free software in Debian archives. I have updated the title of this issue to reflect that.

I wonder if any of the new C# bindings do it in a Debian DFSG-compliant way as in: not containing generated GTK+ API definition files as part of the source tarball.

knocte added a commit to knocte/smuxi that referenced this issue Apr 15, 2024
This commit also removes the Debian-unstable CI job
since it was failing (due to meebeyGH-297).

Had to change smuxi-frontend-gnome launcher script
to bash in order for env var checks to work, because
am not sure if this alternative works:
https://stackoverflow.com/a/26317390/544947

Closes meebeyGH-297
meebey added a commit that referenced this issue Apr 27, 2024
Temporary disable building Smuxi on Debian/unstable as it will always
because unstable no longer contains the required build-dependency GTK#2.
The details of this issue are tracked in:
#297

Hopefully it can be brought back soon.
meebey added a commit that referenced this issue Apr 27, 2024
Temporary ignore the outcome of building Smuxi on Debian/unstable as it
will always because unstable no longer contains the required
build-dependency GTK#2. This issue is tracked in:
#297

Hopefully GTK# and Smuxi can be brought back soon.
@knocte knocte linked a pull request May 16, 2024 that will close this issue
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 a pull request may close this issue.

4 participants