(Explicitly Cc'ing people who have worked on gjs ABI breaks in the past) On Mon, 30 Jul 2018 at 10:44:58 +0100, Simon McVittie wrote: > gjs 1.53.90 requires mozjs60, so cannot be packaged immediately. Filing a > bug to record that dependency.
I have uploaded mozjs60 to NEW. gjs 1.53.90 is available from Salsa as the wip/mozjs60 branch. It seems to work with the current experimental gnome-shell, if I force it to install with the dependency on libgjs0-mozjs-52-0 unsatisfied. I don't think we need to bump the pseudo-SONAME from libgjs0g to libgjs0h, because mozjs52/mozjs60 do not appear to be exposed in the library ABI any more, and abi-compliance-checker reports that the two versions are compatible. Please could someone check my reasoning? Similarly, I think the ${gjs:Provides} and libgjs0-$(LIBMOZJS) thing might now be a relic of previous versions that can go away? Josselin introduced it in 2011 (commit 825edc25) with this comment: * Generate a substitution variable for Provides that embeds the libmozjs version. * Add this variable to shlibs. Closes: #635174. * Remove symbols file, it’s useless as long as mozjs is part of the ABI. #635174 was merged with #635175, which referred to gjs-internals-1.0.pc, which no longer exists; and gnome-shell does not directly depend on libmozjs-* any more, only on libgjs0g. So I think we can probably stop doing this? gnome-shell, gnome-sushi and polari would still need one rebuild against a gjs that does not have libgjs0-$(LIBMOZJS) in its shlibs, but after that they would no longer need to be rebuilt every time gjs changes its underlying mozjs, and new upstream GNOME releases in experimental would become significantly less irritating to test. (Note that gnome-shell, gnome-sushi and polari do all need changes for mozjs60's increasingly-standardized JavaScript dialect, but those changes can almost certainly be made in a way that leaves them compatible with both mozjs52 and mozjs60.) At this point we can probably also have a sensible symbols file again. smcv