[Bug 1987454] Re: Port ubiquity to libsoup3 - ubiquity crashes if gir1.2-soup-3.0 is installed in live system

Jeremy Bícha 1987454 at bugs.launchpad.net
Thu Sep 21 13:15:43 UTC 2023


Nathan, I believe you will need libtimezonemap ported to use libsoup3
also. For testing, you could try using libtimezonemap 0.4.6-5 (which was
uploaded to Debian Experimental but never to Ubuntu because of the
incompatibility with ubiquity).

** Description changed:

  libsoup3 is a new major API-incompatible release of libsoup. We want to
  remove libsoup2.4 from main. Even if we drop ubiquity from main, we want
  to remove libsoup2.4 from Ubuntu completely (Fedora for instance hopes
  to do this by late 2023.)
  
  Therefore, ubiquity needs to switch to the newer library.
  
  Prerequisites
  -------------
- You'll need libtimezonemap 0.4.6-4 or newer - already in Ubuntu 23.10 (Mantic).
+ You'll need libtimezonemap ported to libsoup3 (this was done in Debian Experimental but reverted because it was "broken")
  
  Update debian/control to require that version.
  Update debian/control and ubiquity/frontend/gtk_ui.py to use the 4.1 API of webkit2gtk instead of 4.0. Fortunately, there are no other changes required: the 4.1 API is the same as 4.0 except we're using libsoup3.
  
  And update debian/control to use gir1.2-soup-3.0 instead of 2.4
  There's another file d-i/update-control which should have its package versions updated too.
  
  Error
  -----
  libsoup is only directly used briefly in ubi-timezone.py.
  
  Traceback (most recent call last):
    File "/usr/lib/ubiquity/plugins/ubi-timezone.py", line 112, in changed
      self.geoname_session = Soup.SessionAsync()
    File "/usr/lib/python3/dist-packages/gi/module.py", line 123, in __getattr__
      raise AttributeError("%r object has no attribute %r" % (
  AttributeError: 'gi.repository.Soup' object has no attribute 'SessionAsync'
  
  libsoup3 has dropped the SessionAsync methods. The documentation
  suggests that we should use GLib.MainLoop instead. Some of the examples
  I've seen also use dbus.mainloop.glib to help with using the glib loop.
  
  Documentation
  -------------
  - https://libsoup.org/libsoup-3.0/client-basic.html
  - https://libsoup.org/libsoup-3.0/migrating-from-libsoup-2.html
  - https://gitlab.gnome.org/GNOME/libsoup/-/issues/218

** Bug watch added: Debian Bug tracker #1037940
   https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1037940

-- 
You received this bug notification because you are a member of Ubuntu
Sponsors, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/1987454

Title:
  Port ubiquity to libsoup3 - ubiquity crashes if gir1.2-soup-3.0 is
  installed in live system

Status in ubiquity package in Ubuntu:
  Triaged
Status in ubiquity package in Baltix:
  Confirmed

Bug description:
  libsoup3 is a new major API-incompatible release of libsoup. We want
  to remove libsoup2.4 from main. Even if we drop ubiquity from main, we
  want to remove libsoup2.4 from Ubuntu completely (Fedora for instance
  hopes to do this by late 2023.)

  Therefore, ubiquity needs to switch to the newer library.

  Prerequisites
  -------------
  You'll need libtimezonemap ported to libsoup3 (this was done in Debian Experimental but reverted because it was "broken")

  Update debian/control to require that version.
  Update debian/control and ubiquity/frontend/gtk_ui.py to use the 4.1 API of webkit2gtk instead of 4.0. Fortunately, there are no other changes required: the 4.1 API is the same as 4.0 except we're using libsoup3.

  And update debian/control to use gir1.2-soup-3.0 instead of 2.4
  There's another file d-i/update-control which should have its package versions updated too.

  Error
  -----
  libsoup is only directly used briefly in ubi-timezone.py.

  Traceback (most recent call last):
    File "/usr/lib/ubiquity/plugins/ubi-timezone.py", line 112, in changed
      self.geoname_session = Soup.SessionAsync()
    File "/usr/lib/python3/dist-packages/gi/module.py", line 123, in __getattr__
      raise AttributeError("%r object has no attribute %r" % (
  AttributeError: 'gi.repository.Soup' object has no attribute 'SessionAsync'

  libsoup3 has dropped the SessionAsync methods. The documentation
  suggests that we should use GLib.MainLoop instead. Some of the
  examples I've seen also use dbus.mainloop.glib to help with using the
  glib loop.

  Documentation
  -------------
  - https://libsoup.org/libsoup-3.0/client-basic.html
  - https://libsoup.org/libsoup-3.0/migrating-from-libsoup-2.html
  - https://gitlab.gnome.org/GNOME/libsoup/-/issues/218

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ubiquity/+bug/1987454/+subscriptions




More information about the Ubuntu-sponsors mailing list