Re: F35 Change: Memory Constraints macros for RPM (System-Wide Change proposal)

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

 



On Thu, Aug 12, 2021 at 05:23:18PM -0700, Michel Alexandre Salim via devel wrote:
> On Wed, Aug 11, 2021 at 10:56:39AM +0300, Panu Matilainen wrote:
> > On 8/10/21 8:53 PM, Ankur Sinha wrote:
> > > On Thu, Aug 05, 2021 09:01:14 +0200, Miroslav Suchý wrote:
> > > > Dne 05. 08. 21 v 2:42 Michel Alexandre Salim via devel napsal(a):
> > > > > This is now implemented on Rawhide; Fedora updates are in testing:
> > > > 
> > > > Where is it documented?
> > > > 
> > > > I suggest one of these
> > > > 
> > > > https://rpm-packaging-guide.github.io/
> > > > https://docs.fedoraproject.org/en-US/packaging-guidelines/
> > > 
> > > That would be great. I was trying to put %limit_build at the top of my
> > > spec and kept getting errors. Then I looked at the mcrouter spec and
> > > realised this needs to go into the %build section XD
> > 
> > Yes, the macro is a strange as it mixes rpm macro language and shell
> > language, relying on some rather subtle aspects of how spec parsing and
> > macros work and has to be placed in a shell section. If you ask me, it's
> > asking for trouble.
> > 
> > Setting RPM_BUILD_NCPUS environment should achieve the same without
> > requiring the twisty %global override which looks like it may break
> > _smp_build_ncpus use in later sections (but I may be missing something
> > there)
> > 
> So - I did try exporting RPM_BUILD_NCPUS earlier, and having tried it
> again, could not figure out how to set that definition from within a
> macro. Any idea?
> 
> openSUSE's macro overrides %_smp_mflags instead, which ... seems to work
> for them, but I agree that we should rather use an environment variable instead.
> 
Some findings:
- overriding %_smp_mflags works. But I have to use %global - %define
  does not work - and that triggers some ugly warnings at every build
- setting RPM_BUILD_NCPUS (or, similarly, %_smp_ncpus_max) does not work
  since %_smp_build_ncpus is already defined by then

Seems like the proper fix here is to either:
- try and get this macro into RPM proper, so we can have %limit_build
  declared at the top of the spec. This will likely push the change back
  to F36 at the earliest, and would make it hard to retrofit on existing
  releases, unless we want to carry out-of-tree patches.
  - _smp_build_ncpus also seems to be defined per platform, even though
    the definition is mostly identical, so this will be a bit messy
- change the usage, and require users who want to limit the build to do
  something like this:

  %make_build %{limit_build -m 4096} -- with %limit_build used as a
  %function that spits out the relevant -j override

Thoughts?

Thanks,

-- 
Michel Alexandre Salim
profile: https://keyoxide.org/michel@xxxxxxxxxxxxxxx

Attachment: signature.asc
Description: PGP 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 on the list, report it: https://pagure.io/fedora-infrastructure

[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