On Thu, 03 Nov 2022 12:13:43 -0400 Daniel Kahn Gillmor <d...@fifthhorseman.net> wrote:
Package: dh-cargo
Version: 28
Control: affects -1 debhelper src:rust-document-features debcargo


Hi,

When packaging Rust crates, the rust-team typically packages from the
bundles published on crates.io.  Those are published with a modified
version of Cargo.toml, and the original upstream source for Cargo.toml
is present as Cargo.toml.orig.

debhelper's dh_clean by default removes all files matching *.orig, which
means that the upstream Cargo.toml.orig is getting stripped before the
build happens. (dh_clean is typically invoked before a build)


Would it be possible to use a different name for it (like Cargo.toml.upstream or even Cargo.toml.original)? Something that dh_clean does not remove by default?

This is problematic for tools like the document-features crate, which
relies on comments in Cargo.toml.orig to extract documention about the
features of any given crate.

See the upstream discussion at
https://github.com/slint-ui/document-features/issues/15

If dh-cargo were able to force the exclusion Cargo.toml.orig, that would
be great, but i tried hacking on the clean() function in cargo.pm to
push something into @{dh{EXCLUDE}} and i couldn't get it to work.  Maybe
someone who knows debhelper or dh-cargo better than me can figure out
how to do it.


In theory, a dh addon *can* add an option to dh_clean by default (i.e., if dh_clean is not overridden). That said, it does mean that the sequence can no longer be conditional (e.g., only used in Build-Depends-Arch).

Or, maybe a newer version of debhelper itself could just generically
avoid destroying Cargo.toml.orig in the top-level of any source tree,
even though it removes all the other *.orig files ?


Special-casing Cargo.toml.orig also feels weird to me. But also, I do not want every language special-case to cascade into "core" debhelper - then debhelper becomes an unmaintainable soup of random things I cannot keep track (like are they still relevant).

[...]


If the dh-cargo folks think it should be fixed in either debhelper or
debcargo, feel free to reassign this bug report.

Thanks,

        --dkg

The removal of .orig is been around for ages (to support cleaning up after patches with merge conflicts). I am not inclined to remove that from debhelper.

I hope we can use another name for the file or that dh-cargo can handle the special-casing via a debhelper add-on.

Thanks,
~Niels

Reply via email to