On 15/12/25 at 10:52 +0100, William Desportes wrote:
> Hi Lucas,
> 
> This is awesome !
> It was the missing part of reproducing packaging.

Thanks!

> Checking this is quite important, as some changes can get into Debian without 
> anyone noticing.
> I already used such a trick to add back a tests folder before the next 
> upstream release.
> 
> I picked some PHP packages to check some results:

(I reordered your points)

> - 
> https://orig-check.debian.net/result/ddd0d6864cad4326cc353efe382dd1bd3b4443c9d29540f51c2ead713920d9f6
>    -> The tarballs are not identical, but the contents do. Can you throw a 
> different error ?

This should have been caught by the attempt at "normalizing" tarballs,
but this failed because the PHP tarballs are strange: they include a
package.xml file at the root.
The normalization algorithm was trying to remove the leading directory
(to avoid problems with e.g. Date-1.2.3 vs php-date-1.2.3), but that
failed if there are several first components.
I improved this part of the code to ignore stripping the first path
component when there are multiple first path components, and now that
package tests successfully (after tarball normalization).

> - 
> https://orig-check.debian.net/result/9ddbe16a5bc7b2951cb2d1c2d1a81e8558d400b97e561aac8700de7181944664
>    -> This one has PEAR packaging applied, it should reproduce 100%. right ?
>    - Same for 
> https://orig-check.debian.net/result/80129fdbf962e615e123f2ee612858107c1ba4d9509fe67ae40a102a7e9cb508
>    - Same for 
> https://orig-check.debian.net/result/87a70c491e083b365692ed799a28dcd18245ebb45474713e88590f10a9a90e6e
>    - Same for 
> https://orig-check.debian.net/result/512b6555d406ba4f4d1b9600b83a3efa83c25c371a509a866bdd1dd5b801e1e7

There's a leading php-image-text-0.7.0/ directory in the debian tarball
(for example, README is php-image-text-0.7.0/Image_Text-0.7.0/README).
Maybe something strange happened when the upstream tarball was imported
into git?
Anyway, now they all pass with the change to normalization.

> - 
> https://orig-check.debian.net/result/93ff5415eca576a32a7787d6edd89a00759d1c6a5839750f9715e9ee64bd3afe
>    -> I am not too sure why dscverify fails. But the "debian uupdate" did 
> seem to be a standard, I am removing it from my packages as I can no see a 
> difference with an without it. How was it supposed to work ?

I haven't used it for ages, but my understanding is that it essentially
does what gbp does when doing gbp import-orig: it merges the current
Debian packaging work and the new upstream tarball. But there are other
more advanced uses of uscan custom scripts, like repacking beyond what
is possible with mk-origtgz.

> - 
> https://orig-check.debian.net/result/1e65c45f230c2d92166506b6e67fd60e250520cb3dac80759444dd77371bccb6
>    -> A nice bug to catch on dscverify "Use of uninitialized value $status in 
> pattern match (m//) at /usr/bin/dscverify line 157."
>    -> Should my DM key be trusted ?
> - 
> https://orig-check.debian.net/result/b4c755e772ac980316df0c58022405bce70b1d06eddc3ce4ea4e0476f0144d02
>   -> dscverify should not fail for phpmyadmin, right ?

I must work a bit more on the dscverify part. Its results are ignored
currently.

>   -> I am not sure why it said "290 - uscan did not produce an orig tarball 
> with matching name". On my workstation it repacks after removing d/copyright 
> excluded files.

The expected orig name is     'phpmyadmin_5.2.2-really+dfsg.orig.tar.xz'.
The file produced by uscan is 'phpmyadmin_5.2.2+dfsg.orig.tar.xz'

> - 
> https://orig-check.debian.net/result/a087e2e6b89cc7314b3c83d1352c2b5bfbccf3471b7a4fbb4c6ac986372a3144
>    -> you can see that the normalized compare shows files removed by gbp 
> filter: 
> https://salsa.debian.org/matomo-team/doctrine-cache/-/blob/debian/unstable/debian/gbp.conf?ref_type=heads#L5
>    -> I think this might require a fix in your process. Quite some of my 
> packages have .git* files removed
>    - I guess same on 
> https://orig-check.debian.net/result/78e971747e32dc6e7904e79fe6bb988fa568678d0eaf613ab546903658c8ff0f
>  not one of mine.
>    - Same 
> https://orig-check.debian.net/result/07c57ce108e93ec9cac8e24c744eb6ce1cc8de034ef37e619bc655d4a67b990d

Ooch, that's a path that I indeed totally missed.
I need to think a bit more about this, but maybe the solution is to add
a whole different process where I would git init, gbp import-orig/gbp
export-orig, and use the resulting tarball for comparison.

> There is quite a lot of "version not found" on
> https://orig-check.debian.net/statistics Some of them are just very
> old tags, that can not be found by the current uscan.  Maybe it would
> be worth it to trick uscan by giving an direct GitHub tag url and it
> would find the origin tarball ?

If I understood correctly, uscan with mode=git now tries harder to look
for older tags, at least for github? That's probably the way forward.

> And for some of scan failed: "504 Gateway Time-out" could you detect it for 
> github.com and re try some seconds after ? For example for shotcut.

I reprocessed all packages with 5XX errors. I'm not sure yet about a
retry policy, but yes that's something that should be added.

So, to summarize, To-Do list items on my side are:
- uupdate support
- dscverify
- gbp-level filters

Thanks for the feedback!

Lucas

Reply via email to