This should be a very interesting one, let's dive right into it...
What makes Fedora packaging project exciting?
Well...Anyone can be a package maintainer (cool right?!) yes you must not know how to code! You just need to be willing to learn and be persistent.
This particular project is not just exciting but important as well
RPM is an open source program for installing, uninstalling and managing software packages in Linux.
So here's how this works
RPM packaging helps you install softwares using a simple command line ... let's use chrome for an example.
Steps to install chrome using the Fedora Linux Terminal
Install Third Party Repositories
$ sudo dnf install fedora-workstation-repositories
Enable the Google Chrome repo
$ sudo dnf config-manager --set-enabled google-chrome
Finally, install Chrome
$ sudo dnf install google-chrome-stable
How Packages Are Made
Fedora docs gives us detailed expalanations so let's get right into it.
Setting up envirnonment / Building the RPM
Creating a review request
Add package to source code management (SCM)
And for another interesting part. When packages are made, after a period of time the spec files needs to be updated, and here's how packages are updated.
RPM Package Updates
1) Fork the project from upstream
Forking the project simply means creating a copy of the upstream project for yourself. That way you can make modifications without affecting the original project.
2) Create a pull request (PR)
After making modifications to your copy of the project (fork), you may want to add those changes to the main project (upstream). In that case you create a PR and wait for your changes to be merged to the main project (upstream)
3) Build for the Fedora system
- Clone your project
fedpkg co <package name>
- Navigate to the Project directory
cd <package name>
- Because the repo is up to date for rawhide after the PR is merged, we just build
- For other branches: f35/f34
fedpkg switch branch <branch name>
git merge rawhide
- Push the update using the bodhi web interface because you can choose both the f35 and f34 builds and select the bug ID etc. all at once there.
Before the outreachy program I didn't know softwares are even packaged by people :smile: I thought we had bots doing all the work. Fedora is just like any other Linux distro like Ubuntu, Manjaro and the likes, but fedora has its own unique commands.
Some packages takes longer than the others to finish because it is an endless journey of learning . Through this exciting journey I learnt how to set up my Fedora work station, how to package, and i feel this great fufilment that i am contributing to the society and to open source! Thank you Outreachy.