relaxing that in Cargo.toml to >= 0.19 lets the build succeed (and build with python3-defaults from experimental).

I was doing a test build of lintian brush to test I could build it
with the version of rust-distro-info I was preparing (now uploaded)
and ran into a couple of other issues.

Firstly there was a missing build-dependency on librust-pyo3-file-dev,
I added it.

Secondly in version 0.1.81, rust-breezyshim added an extra variant
"NoWhoami" to the "CommitError" enum, causing serveral match
statements to fail to build. I made a quick extension of the code
to accomodate this, but it could probablly do with some more
thinking about by someone with a better understanding of the code.

Finally I got test failures.

======================================================================
FAIL: fixer test: multiple-references for upstream-metadata-invalid
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/lintian-brush-0.152+nmu1/lintian_brush/tests/fixers.py", line 129, in 
runTest
    raise AssertionError("unexpected output: %s" % diff.decode())
AssertionError: unexpected output: diff --no-dereference -x '*~' -ur 
/lintian-brush-0.152+nmu1/lintian_brush/tests/../../tests/upstream-metadata-invalid/multiple-references/out/debian/upstream/metadata
 /tmp/tmpbyzt2qq8/testdir/debian/upstre                      am/metadata
--- 
/lintian-brush-0.152+nmu1/lintian_brush/tests/../../tests/upstream-metadata-invalid/multiple-references/out/debian/upstream/metadata
        2023-10-28 00:41:32.000000000 +0000
+++ /tmp/tmpbyzt2qq8/testdir/debian/upstream/metadata   2024-04-27 
13:33:40.537269350 +0000
@@ -10,13 +10,15 @@
   Journal: LinuxUser
   Year: 2003
   Volume: 12
-  URL: 
https://www.linux-community.de/ausgaben/linuxuser/2003/12/woerterbuecher-und-textdateien-durchsuchen-mit-grafischem-frontend/
+  URL:
+    
https://www.linux-community.de/ausgaben/linuxuser/2003/12/woerterbuecher-und-textdateien-durchsuchen-mit-grafischem-frontend/
 - Author: Michael Vogelbacher
   Title: Service und Informationen aus dem Netz
   Journal: LinuxUser
   Year: 2001
   Volume: 01
-  URL: 
https://www.linux-community.de/ausgaben/linuxuser/2001/01/service-und-informationen-aus-dem-netz/
+ URL: + https://www.linux-community.de/ausgaben/linuxuser/2001/01/service-und-informationen-aus-dem-netz/
 - Author: Redaktion pcmagazin
   Title: Ding - das Linuxlexikon
   Journal: PC Magazin



======================================================================
FAIL: fixer test: from-upstream-metadata for copyright-missing-upstream-info
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/lintian-brush-0.152+nmu1/lintian_brush/tests/fixers.py", line 108, in 
runTest
    self.assertEqual(p.returncode, 0)
AssertionError: 1 != 0

======================================================================
FAIL: fixer test: meta.yml for upstream-metadata-file
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/lintian-brush-0.152+nmu1/lintian_brush/tests/fixers.py", line 108, in 
runTest
    self.assertEqual(p.returncode, 0)
AssertionError: 1 != 0

======================================================================
FAIL: fixer test: cran for debian-watch-file-is-missing
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/lintian-brush-0.152+nmu1/lintian_brush/tests/fixers.py", line 108, in 
runTest
    self.assertEqual(p.returncode, 0)
AssertionError: 1 != 0

----------------------------------------------------------------------
Ran 796 tests in 80.565s

FAILED (failures=4, expected failures=1)

A debdiff is attached, which fixes the compile errors but not the test failures.
diff -Nru lintian-brush-0.152/Cargo.toml lintian-brush-0.152+nmu1/Cargo.toml
--- lintian-brush-0.152/Cargo.toml      2023-10-28 00:41:32.000000000 +0000
+++ lintian-brush-0.152+nmu1/Cargo.toml 2024-04-27 11:28:42.000000000 +0000
@@ -40,7 +40,7 @@
 
 [workspace.dependencies]
 breezyshim = "0.1.34"
-pyo3 = "0.19"
+pyo3 = ">=0.19"
 debversion = ">=0.1.8"
 serde_yaml = ">=0.8"
 reqwest = "0.11"
diff -Nru lintian-brush-0.152/debian/changelog 
lintian-brush-0.152+nmu1/debian/changelog
--- lintian-brush-0.152/debian/changelog        2023-10-28 00:41:32.000000000 
+0000
+++ lintian-brush-0.152+nmu1/debian/changelog   2024-04-27 11:28:42.000000000 
+0000
@@ -1,3 +1,12 @@
+lintian-brush (0.152+nmu1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Relax cargo dependency on pyo3 crate (Closes: #106435)
+  * Add missing build-dependency on librust-pyo3-file-dev
+  * Fix build with newer versions of rust-breezyshim.
+
+ -- Peter Michael Green <plugw...@debian.org>  Sat, 27 Apr 2024 11:28:42 +0000
+
 lintian-brush (0.152) unstable; urgency=medium
 
   * Fix compatibility with newer rust crates. Closes: #1054839
diff -Nru lintian-brush-0.152/debian/control 
lintian-brush-0.152+nmu1/debian/control
--- lintian-brush-0.152/debian/control  2023-10-28 00:41:32.000000000 +0000
+++ lintian-brush-0.152+nmu1/debian/control     2024-04-27 11:28:42.000000000 
+0000
@@ -10,7 +10,7 @@
                dh-python,
                dos2unix,
                gpg,
-               librust-breezyshim-dev (>= 0.1.34),
+               librust-breezyshim-dev (>= 0.1.81),
                librust-chrono-dev (>= 0.4),
                librust-clap+cargo-dev (>= 4),
                librust-clap+derive-dev (>= 4),
@@ -31,6 +31,7 @@
                librust-pyo3+chrono-dev (>= 0.19),
                librust-pyo3+serde-dev (>= 0.19),
                librust-pyo3-log-dev,
+               librust-pyo3-file-dev (>= 0.5),
                librust-reqwest+blocking-dev (>= 0.11),
                librust-serde+derive-dev (>= 1),
                librust-serde-json-dev (>= 1),
diff -Nru lintian-brush-0.152/lintian-brush/src/lib.rs 
lintian-brush-0.152+nmu1/lintian-brush/src/lib.rs
--- lintian-brush-0.152/lintian-brush/src/lib.rs        2023-10-28 
00:41:32.000000000 +0000
+++ lintian-brush-0.152+nmu1/lintian-brush/src/lib.rs   2024-04-27 
11:28:42.000000000 +0000
@@ -1338,6 +1338,7 @@
         .map_err(|e| match e {
             CommitError::PointlessCommit => FixerError::NoChanges,
             CommitError::Other(e) => FixerError::Python(e),
+            _ => FixerError::Other(e.to_string())
         })?;
     result.revision_id = Some(revid);
 
diff -Nru lintian-brush-0.152/multiarch-hints/src/bin/apply-multiarch-hints.rs 
lintian-brush-0.152+nmu1/multiarch-hints/src/bin/apply-multiarch-hints.rs
--- lintian-brush-0.152/multiarch-hints/src/bin/apply-multiarch-hints.rs        
2023-10-28 00:41:32.000000000 +0000
+++ lintian-brush-0.152+nmu1/multiarch-hints/src/bin/apply-multiarch-hints.rs   
2024-04-27 11:28:42.000000000 +0000
@@ -357,6 +357,16 @@
                 None,
             );
         }
+        Err(OverallError::NoWhoami) => {
+            drop(write_lock);
+            report_fatal(
+                versions_dict(),
+                "no-whoami",
+                "Breezyshim reports No whoami",
+                None,
+                None,
+            );
+        }
         Ok(overall_result) => overall_result,
     };
     std::mem::drop(write_lock);
diff -Nru lintian-brush-0.152/multiarch-hints/src/lib.rs 
lintian-brush-0.152+nmu1/multiarch-hints/src/lib.rs
--- lintian-brush-0.152/multiarch-hints/src/lib.rs      2023-10-28 
00:41:32.000000000 +0000
+++ lintian-brush-0.152+nmu1/multiarch-hints/src/lib.rs 2024-04-27 
11:28:42.000000000 +0000
@@ -424,6 +424,7 @@
     NotDebianPackage(std::path::PathBuf),
     Python(PyErr),
     NoChanges,
+    NoWhoami,
 }
 
 impl std::fmt::Display for OverallError {
@@ -435,6 +436,7 @@
             OverallError::TreeError(e) => write!(f, "{}", e),
             OverallError::Python(e) => write!(f, "{}", e),
             OverallError::NoChanges => write!(f, "No changes to apply."),
+            OverallError::NoWhoami => write!(f, "No whoami")
         }
     }
 }
@@ -458,6 +460,7 @@
         match e {
             CommitError::PointlessCommit => OverallError::NoChanges,
             CommitError::Other(e) => OverallError::Python(e),
+            CommitError::NoWhoami => OverallError::NoWhoami,
         }
     }
 }

Reply via email to