On Mon, Dec 2, 2024 at 2:20 PM Kalev Lember <kalevlem...@gmail.com> wrote:
>
> On Mon, Dec 2, 2024 at 1:16 PM Zbigniew Jędrzejewski-Szmek 
> <zbys...@in.waw.pl> wrote:
>>
>> On Sun, Dec 01, 2024 at 04:54:12PM +0100, Fabio Valentini wrote:
>> > There's a WIP of a simplified "conditional vendor" handling here:
>> > https://src.fedoraproject.org/rpms/rust-vhost-device-sound/pull-request/4
>> > As soon as this is in good shape it might serve as a template for
>> > other packages too.
>>
>> Per Fabio's request, I'm copying my comment from that pull request here
>> for discussion:
>>
>> There is one shortcoming that I see: the command to create the vendor
>> tarball is provided in a comment with escaped macros, so actually
>> running the command requires the user to rewrite the command
>> manually. Can we have some mechanism where the full command is visible
>> and can be selected&pasted into a terminal for execution?
>>
>> The command should have %name and %version and other details inserted
>> automatically. It should also be joined with && and not change the
>> callers cwd. So probably something like
>>
>>   (spectool -g %{name}.spec && tar xvf %{name}-%{version}.create &&
>>    cd %{name}-%{version} && cargo vendor-filterer … && tar …)
>>
>> rpmspec -P *.spec doesn't show comments.
>>
>> One idea: insert the following at the beginning of %prep:
>>
>> # The command to generate a tarball with vendor code:
>> if false; then
>>   (spectool -g %{name}.spec && \
>>    tar -xvf %{name}-%{version}.crate && \
>>    cd %{name}-%{version} && \
>>    cargo vendor-filterer cargo vendor-filterer --platform 
>> {x86_64,powerpc64le,aarch64,i686}-unknown-linux-gnu && \
>>    tar --sort=name --mtime='2024-11-29' --owner=0 --group=0 --numeric-owner 
>> -Jcf rust-vhost-device-sound-%%{version}-vendor.tar.xz vendor)
>> fi
>>
>> Then the user can run rpmspec -P *.spec | grep spectool and select&paste the 
>> right invocation.
>
>
> I wonder if it would make sense to echo the tarball generating commands as a 
> first thing at the beginning of %prep, with all the macros already 
> substituted? Or maybe wrap it in test -f vendor-tarball || echo 
> command-to-execute ?
>
> This way, 'fedpkg prep' would echo the vendor tarball generating command 
> without needing to do anything else.
>
> Another idea: Maybe rpm could make this easier by providing a 
> %download_sources section that is run before %prep, and then we could just 
> put the right commands there?

See, that's why I wanted the bikeshedding to happen *not* in the PR. :)

Note that there's an RFE / RFC for packaging-committe from three years
ago that is essentially about the same thing:
https://pagure.io/packaging-committee/issue/1132

I offered *three years ago* to implement support for something like
this in spectool.
But since nobody agreed on what they actually wanted, nothing happened.

Fabio
-- 
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to