Re: Macros stored in a separate file

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




Dne 10. 06. 24 v 20:18 Richard W.M. Jones napsal(a):
On Mon, Jun 10, 2024 at 10:09:16AM -0700, Adam Williamson wrote:
On Mon, 2024-06-10 at 18:52 +0200, Vít Ondruch wrote:
Dne 10. 06. 24 v 17:35 Adam Williamson napsal(a):
On Mon, 2024-06-10 at 16:38 +0200, Vít Ondruch wrote:
Dne 10. 06. 24 v 16:24 Daniel P. Berrangé napsal(a):
On Mon, Jun 10, 2024 at 04:18:14PM +0200, Miroslav Suchý wrote:
Lately, I noticed that several SPEC files in Fedora use this syntax:

Source:        macros.vlc

And this file defines macros that are loaded by rpmbuild during buildtime and are used in the SPEC file.

This makes parsing of the SPEC file harder, because any parser have to have
this maro file in current directory - just reading SPEC file is not enough.
There is also:

~~~

%{load:%{S:1}}

~~~


Which actually loads the file.


I mentioned vlc, but it is used in many other packages: valkey, zig,
typelib-srpm-macros, ansible-packaging, rakudo, sip and many many other.

Why are packagers doing this? I am not saying this is bad, it just surprised
me. I am used to put all macros at the top of the SPEC file and this is new
to me. What is the benefit?
I don't know if it is the case for vlc, but the common benefit would be
where the same macros are to be used in both this local spec, and the
specs of other dependent RPMs.
That is precisely the reason I have pioneered this approach and using it
for Ruby.
It might be nice to package the macros, in that case.

They are packaged of course, either in rubygem-devel or in ruby-devel
But then why would spec files be listing them as a source, which is
where this thread started, instead of buildrequiring the appropriate
package?


Because we are using macros such as `%ruby_libdir` during packaging Ruby itself as well as packaging its dependencies.

There could in theory be some completely independent `ruby_rpm_macros` package but this would have its own tradeoffs. The bootstrap, as Rich pints bellow, is certainly easier without such package. Generally, having one less independent package is good once we want to productize Ruby in RHEL.


Vít


I assume it's to avoid a circular build dependency?  This doesn't
matter that much, but it does make a theoretical bootstrap from
nothing a bit harder.

I didn't know the local "Source: macros.X" was possible before reading
this thread, but we could have used it to avoid a circular dependency
on RPM macros in both supermin and nbdkit.

Rich.

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

--
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
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@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux