Re: Automatic detection of unused BuildRequires

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

 



Dne 03. 07. 24 v 6:02 odp. Marián Konček napsal(a):
As many of you know, as packages change, so do their BuildRequires. In the current state, maintaining them requires some manual work from the maintainer.

1. So I got around the idea of a simple tool that checks file accesses during the build and using RPM queries, detects whether some package's files are not accessed at all therefore the package is not needed for the build. To my knowledge there is no such project. The project is here: https://github.com/mkoncek/unbreq

Great idea. I am not aware of anything similar.

It may not be completely reliable, but it also may be good enough to catch simple mistakes.

*nod* but it can be improved later :)

It would be good if you do not enforce changes in spec file. This is big block for any testing/prototyping. I highly recommend to implement it as Mock plugins. Here are some pointers

https://rpm-software-management.github.io/mock/#plugins

https://github.com/rpm-software-management/mock/tree/main/mock/py/mockbuild/plugins

You run the `resolve` at the end of %install but some BuildRequires are needed because of %check which is run after %install



3. In the case of maven, we have a manual tool: xmvn-builddep, which reads the build.log and constructs the actual BuildRequires from it, using knowledge about the build procedure. This could be used as an additional step of this tool, having similar tools for other languages.

See

https://rpm-software-management.github.io/rpm/manual/spec.html#generate_buildrequires-since-rpm--415

You can check https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/ how Python uses this.


Ultimately, I am interested in the possibility of having automated unused BuildRequires detection as part of rpmbuild / mockbuild.

rpmbuild does not have any isolation and uses any other package installed on system beside these specified in BuildRequires.

Mock on the other hand install only minimal systems + BuildRequires. So it is more suitable for this task and check.

If you need some assistance or guidance with integration to Mock please contact me off-list and I will be happy to assist you.

--
Miroslav Suchy, RHCA
Red Hat, Manager, Packit and CPT, #brno, #fedora-buildsys

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