3 ms·
They break backwards compatibility because there's not really much reason for them not to. The new releases have a lot of refactoring and redesigns that would b
by cycloptic 6y ago
They break backwards compatibility because there's not really much reason for them not to. The new releases have a lot of refactoring and redesigns that would break things anyway. The old ways are considered deprecated and keeping them around forever complicates the code and has about the same cost as backporting things to an old version.
If it's too much work for application developers, the can keep on an old version of the library or maintain a shim. (There are still a lot of GTK2 applications out there, although distros seem to be removing them because nobody is interested in maintaining a shim or backporting things)
- rwmj 6y agoIt's a big pain in the neck. This is the nonsense we have to go through to keep virt-p2v working on various old Linux systems (required in itself because those old systems support various obsolete/closed source hardware): https://github.com/libguestfs/virt-p2v/blob/master/gui-gtk2-compat.h https://github.com/libguestfs/virt-p2v/blob/master/gui-gtk2-... https://github.com/libguestfs/virt-p2v/blob/master/gui-gtk3-compat.h https://github.com/libguestfs/virt-p2v/blob/master/gui-gtk3-... And that's just one very small and limited application.
- cycloptic 6y agoI guess I'm confused. The first one looks like backporting of newer functions to get it to work on older GTK versions. The second one looks like shims to work around not wanting to link against deprecated symbols. What could upstream possibly do there? In both cases, the issue seems to be the configuration of the target machine.
- rwmj 6y agoWe have to make it compile on RHEL 5 and RHEL 6¹ because some obscure SCSI drivers only work on those platforms, and you need those if you're going to virtualize the hardware (P2V). You can't just use modern Gtk on those platforms partly because it doesn't compile and partly because carrying the whole "G stack²" on those distros for a 3 dialog wizard would be a nightmare. ¹ 2007 and 2010 respectively, not sure off the top of my head what versions of Gtk those have, but old. ² It's not just Gtk, but glib and dozens of other libraries.
- cycloptic 6y agoRight, so how are any upstream changes in GTK3/4 going to help with keeping the application running on GTK 2.10? I don't know what else you could there besides ship a shim.
- pas 6y agoAt that point ... why not drop RHEL5/6 support? Or, if p2v works on them already, why can't you have a rhel-5/6 branch and only touch it if somebody gives you a pot of 24 Karat gold?