Monday, 5 August 2024

+1 maintenance report

Hi all,

I did my own first +1 shift last week (Virtual RM Engineering Sprint Week, so people were very busy). After synchronization with Benjamin Drung for the week, I ran find-proposed-cluster form ubuntu-archive-tools:

❯ ./find-proposed-cluster
rust-gix 17
linux-restricted-modules 5
rust-sequoia-keystore 4
rust-glycin 3
rust-cargo 3

So I focused in rust-gix... spoiler: No luck. The suspect seemed to me to be rust-hashbrown. I followed the "Analyzing migrations: britney, update_output.txt, chdist, dose-distcheck, apt solver 3" mail from Adrien Nader in ubuntu-devel-discuss (Thanks Adrien!) but locally all was installable, no erros/warning messages. rust-memosffset was all installable too... Sadly, I had no clue about was happening with Britney.

So then  I went trough the update excuses, triggering a lot of 'unexpected eof from the testbed' for armhf and s390x mainly.

Finally, I worked on the following packages, with different outcome:

***** Successfull fixes:

- mako & sphinx: mako was FTBFS with the following error
 
  dh_sphinxdoc: error: debian/python-mako-doc/usr/share/doc/python-mako-doc/html/search.html does not load searchindex.js
 
  Researching it, the culprit effectively was sphinx. I opened a LP bug [1] an submitted a MR to Salsa [2] (I found also a open bug in Debian [3]). The fix was accepted and synced in Ubuntu, after taking care of re-triggering some tests (how many sphinx has!) in the migration. Mako also migratted since then.

 - fftw: FTBFS with new gcc-14. There was a bug opened in Debian already [4], and I sent a patch fixing the issue:
 
   fftw_f77_mpi.h:50:48: error: passing argument 1 of 'MPI_Comm_f2c' makes integer from pointer without a cast [-Wint-conversion]
 
   GCC no longer treats integer types and pointer types as equivalent in assignments (including implied assignments of function  
   arguments + and return values), and instead fails the compilation with a type error. The MPI_Comm_f2c function from MPICH receives
   a MPI_Fint comm [5], but here this was done in an implicit way with the accesed value. The patch casts it to the recommended
   standard types intptr_t.
   
   The package was synced in Ubuntu later with the fix (in some way).
   
 - form: FTBFS with new gcc-14. Erich Eickmeyer had already opened a bug for it [6]. I went through all the no-longer-applies implicit casting making then explicit to the expected type, and I created a patch that Erich reviewed and sponsored (Thanks Erich!) [7]. I submitted the patch to Debian opening a bug there [7.1]

 ******* Still pending for review & uploading.
 
 - glc27: This is one of the affected by dpkg ELF package metadata missing, tracked by Benjamin Drung at [8], so I added it to the list and proposed a fix here [9].
 
 ******* Incomplete (needs further investigation):
 
   -pystac: This is pending on the new version of python3-jsonschema, which presents a component mismatches issue (known as it's being handled). I opened bug 2075152 [10] to reflect this, adding also that dt-schema is blocking the migration with failing tests. so...
   
   -dt-schema: This package doesn't work with versions of jsonschema greater or equal than 4.18. I found some upstream's issues referencing this [11][12], but also the I found following commit [13] in some dt-schemas 2924 versions to move to the old way while they don't support new jsonschema. I applied as a patch but it didn't work.
   Later I saw Benjaming open a bug for removal at [14].
   
   -pcp: A FTBFS in Ubuntu (except armhf and s390x) but not in Debian. It seems something with the flags is happening. I did some attempts and finally open a LP bug 2076092 [15].
 
   -magicgui: This is blocking pysignal. I found a bug opened in Debian [16]. In upstream all it's passing for python 3.12 [17], so I was looking for particular commits that could fix them (e.g. [18], but it didn't work) and mimic also upstream github actions backend with qt6. I opened a LP bug 2076095 [19].
   
   - form: When fixing the FTBFS, I realized it has a ruby-based testsuite disabled. I opened a LP bug 2075722 for this [20].
 
   - dask: It's preventing pandas. The log [21] reports things like:
   
     1109s ==================================== ERRORS       ====================================
1109s _________________________ ERROR at setup of test_empty _________________________
1109s
1109s     @pytest.fixture
1109s     def db():
1109s         with tmpfile() as f:
1109s             uri = "sqlite:///%s" % f
1109s >           df.to_sql("test", uri, index=True, if_exists="replace")
1109s
1109s /usr/lib/python3/dist-packages/dask/dataframe/io/tests/test_sql.py:39:
1109s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
1109s /usr/lib/python3/dist-packages/pandas/util/_decorators.py:333: in wrapper
1109s     return func(*args, **kwargs)
1109s /usr/lib/python3/dist-packages/pandas/core/generic.py:3087: in to_sql
1109s     return sql.to_sql(
1109s /usr/lib/python3/dist-packages/pandas/io/sql.py:841: in to_sql
1109s     with pandasSQL_builder(con, schema=schema, need_transaction=True) as pandas_sql:
1109s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
1109s
1109s con = 'sqlite:////tmp/tmphmlgfo8g', schema = None, need_transaction = True
1109s
1109s     def pandasSQL_builder(
1109s         con,
1109s         schema: str | None = None,
1109s         need_transaction: bool = False,
1109s     ) -> PandasSQL:
1109s         """
1109s         Convenience function to return the correct PandasSQL subclass based on the
1109s         provided parameters.  Also creates a sqlalchemy connection and transaction
1109s         if necessary.
1109s         """
1109s         import sqlite3
1109s    
1109s         if isinstance(con, sqlite3.Connection) or con is None:
1109s             return SQLiteDatabase(con)
1109s    
1109s         sqlalchemy = import_optional_dependency("sqlalchemy", errors="ignore")
1109s    
1109s         if isinstance(con, str) and sqlalchemy is None:
1109s >           raise ImportError("Using URI string without sqlalchemy installed.")
1109s E           ImportError: Using URI string without sqlalchemy installed.

      but python3-sqlalchemy is in the control file... Digging more, last pandas has a change in the version of sqlachemy that uses, as we can see in the diff [22] that even debian remove the depency:
     
      -               python3-sqlalchemy (>= 1.4.36~) [!ia64 !hppa !sh4 !x32] <!nocheck> <!nodoc>,
      +# we don't have this version               python3-sqlalchemy (>= 2.0.0~) [!ia64 !hppa !sh4 !x32] <!nocheck> <!nodoc>,
     
     
      For us, sqlalchemy is also migrating for 35 days [23].
     
     
That's all. Thanks also to Simon Chopin, Jeremy Bicha, Benjamin Drung and Erich Eickmeyer for their comments and support.

See you (after my holiday period :) )!
   
[1] https://bugs.launchpad.net/sphinx/+bug/2074525
[2] https://salsa.debian.org/python-team/packages/sphinx/-/merge_requests/5
[3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1076969
[4] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1074955
[5] https://www.mpich.org/static/docs/latest/www3/MPI_Comm_f2c.html
[6] https://launchpad.net/bugs/2075550
[7] https://code.launchpad.net/~mirespace/ubuntu/+source/form/+git/form/+merge/470565
[7.1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1077815
[8] https://bugs.launchpad.net/ubuntu/+source/dpkg/+bug/2071468
[9] https://code.launchpad.net/~mirespace/ubuntu/+source/gcl27/+git/gcl27/+merge/470568
[10] https://bugs.launchpad.net/ubuntu/+source/pystac/+bug/2075152
[11] https://github.com/devicetree-org/dt-schema/issues/108
[12] https://github.com/devicetree-org/dt-schema/issues/109
[13] https://github.com/devicetree-org/dt-schema/commit/fb80ec43c2044d32cf576ef7c660eedf9c38f9ae
[14] https://bugs.launchpad.net/ubuntu/+source/dt-schema/+bug/2075957
[15] https://bugs.launchpad.net/ubuntu/+source/pcp/+bug/2076092
[16] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1074724
[17] https://github.com/pyapp-kit/magicgui/actions/runs/10240968558/job/28328574711
[18] https://github.com/pyapp-kit/magicgui/pull/630
[19] https://bugs.launchpad.net/ubuntu/+source/magicgui/+bug/2076095
[20] https://bugs.launchpad.net/ubuntu/+source/form/+bug/2075722
[21] https://objectstorage.prodstack5.canonical.com/swift/v1/AUTH_0f9aae918d5b4744bf7b827671c86842/autopkgtest-oracular/oracular/amd64/d/dask/20240804_074029_01e52@/log.gz
[22] https://launchpadlibrarian.net/738462708/pandas_2.1.4+dfsg-8_2.2.2+dfsg-4.diff.gz
[23] https://ubuntu-archive-team.ubuntu.com/proposed-migration/update_excuses.html#sqlalchemy

--
Canonical-20th-anniversary

Miriam EspaƱa Acebal

Software Engineer II - Ubuntu Public Cloud/Server

Email:

miriam.espana@canonical.com

Location:

Spain  (GMT+2)


canonical.com

ubuntu.com