Re: F41 Change Proposal - Reproducible Package Builds (System-Wide)

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

 



On sobota 13. dubna 2024 21:04:06, CEST Zbigniew Jędrzejewski-Szmek wrote:
> On Sat, Apr 13, 2024 at 01:38:49PM +0000, Zbigniew Jędrzejewski-Szmek wrote:
> > On Sat, Apr 13, 2024 at 01:41:59PM +0200, Fabio Valentini wrote:
> > > On Sat, Apr 13, 2024 at 1:18 PM Zbigniew Jędrzejewski-Szmek
> > > <zbyszek@xxxxxxxxx> wrote:
> > > >
> > > > Yes. But actually I think Rust is the optimal choice here. Writing
> > > > this in Python would be possibly slightly nicer, but we don't want
> > > > to pull the interpreter and packages into the buildroot. Python
> > > > also has the problem (challenge?) that it needs to be bootstrapped
> > > > once per year. The less packages are involved in the bootstrap, the
> > > > easier it is. And if the brp was written in Python, we'd need to
> > > > deal with that, and it would probably increase the number of builds
> > > > which are done without the cleanup. Having this as an indepedent
> > > > binary avoids some of the issues with bootstrap.
> > > 
> > > I think Rust *would* be a good choice here ...
> > > BUT add-determinism uses pyo3 to link to CPython, so it pulls in
> > > python3-libs anyway.
> > > So you get the downsides of pulling in Python without the upsides of
> > > using Rust ...
> > 
> > Yes, it currently pulls in python3-libs as a dependency, but not the
> > rest of the Python stack. Ideally, the dependency on python3-libs will
> > become optional, and we'll use it if found at runtime if found and
> > ignore otherwise. (Anything that creates pyc files will have python
> > installed, so it's fine if the pyc handler only works if there.)
> > How to best do this is something that needs to be figured out…
> 
> https://github.com/keszybz/add-determinism/pull/1 makes the dependency
> on libpython optional. One option would be to compile the binary
> twice, and use rich dependencies to install the heavyweight one if
> python3 is installed. If somebody has a better approach, I'm all ears.

I do not claim these are better approaches, but you could:

- you could consider using tooling "from host", not "from chroot"
  (adding a dependency to Mock seems just fine then)

- use dynamic buildrequires to detect what plugins are needed

Pavel

> Zbyszek
> --
> _______________________________________________
> 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
> 

Attachment: signature.asc
Description: This is a digitally signed message part.

--
_______________________________________________
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