Hello,
in the future I would like to become package maintainer and help maintain some packages in Fedora. In the meanwhile I would like to learn more about RPM packaging format, related tools and probably experiment with COPR on some packages I would like to maintain.
What are some helpful resources/manuals to understand the RPM packaging process, the tooling involved, best practices and how the COPR works?
Thanks in advance
I suggest to comment in https://pagure.io/fedora-join/Fedora-Join/issue/277 also. Then there can be some seesion in the future.
On 11/10/22 15:10, Marco Sgobino wrote:
Hello,
in the future I would like to become package maintainer and help maintain some packages in Fedora. In the meanwhile I would like to learn more about RPM packaging format, related tools and probably experiment with COPR on some packages I would like to maintain.
What are some helpful resources/manuals to understand the RPM packaging process, the tooling involved, best practices and how the COPR works?
Thanks in advance _______________________________________________ fedora-join mailing list -- fedora-join@lists.fedoraproject.org To unsubscribe send an email to fedora-join-leave@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/fedora-join@lists.fedoraprojec... Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue
Hi both!
Yes, RPM packaging is one of the more technical tasks in the community, and we have done tutorials in the past. https://fedoramagazine.org/fedora-classroom-rpm-packaging-101/
Recording here: https://youtu.be/woFtdIS6x0Q
As you'll see it's a tricky subject because while one can be taught how to make an rpm, it's not quite possible for a single tutorial to cover building software from source. There are far too many build systems that the software ecosystem uses (autotools, cmake, all the different ones Python, R, Rust, Java and so on use) and learning these is the bit that usually takes time. I tend to learn these "on-demand" when I want to package a software that uses them.
Here's how I generally suggest people go about it (skip stuff you already know):
Very high level explainers on the Fedora Magazine:
- https://fedoramagazine.org/rpm-packages-explained/ - https://fedoramagazine.org/how-rpm-packages-are-made-the-source-rpm/ - https://fedoramagazine.org/how-rpm-packages-are-made-the-spec-file/
Then, one has to learn:
- how to make an rpm: just learning the rpm building tools
https://rpm-packaging-guide.github.io/
and then how to do it in the Fedora pipeline using the specific tools (fedpkg and so on): https://docs.fedoraproject.org/en-US/package-maintainers/New_Package_Process...
This includes learning the Fedora community package building pipeline, which includes the package review process to ensure that it follows the Fedora guidelines and meets our standards:
https://docs.fedoraproject.org/en-US/package-maintainers/Package_Review_Proc... https://docs.fedoraproject.org/en-US/packaging-guidelines/
There are a number of ways of getting sponsored to the packager group, so it's worth going through that to see how you want to learn the necessary skills: https://docs.fedoraproject.org/en-US/package-maintainers/How_to_Get_Sponsore...
(for example, you could start by co-maintaining a package---that's easier because you don't have to build the rpm from scratch, you just make tweaks to the existing packages and learn that way)
Hi both!
Yes, RPM packaging is one of the more technical tasks in the community, and we have done tutorials in the past. https://fedoramagazine.org/fedora-classroom-rpm-packaging-101/
Recording here: https://youtu.be/woFtdIS6x0Q
As you'll see it's a tricky subject because while one can be taught how to make an rpm, it's not quite possible for a single tutorial to cover building software from source. There are far too many build systems that the software ecosystem uses (autotools, cmake, all the different ones Python, R, Rust, Java and so on use) and learning these is the bit that usually takes time. I tend to learn these "on-demand" when I want to package a software that uses them.
Here's how I generally suggest people go about it (skip stuff you already know):
Very high level explainers on the Fedora Magazine:
https://fedoramagazine.org/how-rpm-packages-are-made-the-source-rpm/
Then, one has to learn:
- how to make an rpm: just learning the rpm building tools
https://rpm-packaging-guide.github.io/
and then how to do it in the Fedora pipeline using the specific tools (fedpkg and so on): https://docs.fedoraproject.org/en-US/package-maintainers/New_Package_Process...
This includes learning the Fedora community package building pipeline, which includes the package review process to ensure that it follows the Fedora guidelines and meets our standards:
https://docs.fedoraproject.org/en-US/package-maintainers/Package_Review_Proc... https://docs.fedoraproject.org/en-US/packaging-guidelines/
There are a number of ways of getting sponsored to the packager group, so it's worth going through that to see how you want to learn the necessary skills: https://docs.fedoraproject.org/en-US/package-maintainers/How_to_Get_Sponsore...
(for example, you could start by co-maintaining a package---that's easier because you don't have to build the rpm from scratch, you just make tweaks to the existing packages and learn that way)
Really thanks for the huge quantity of resources and advices, now I have enough material I can start going deeper and deeper into the packaging process.
fedora-join@lists.fedoraproject.org