Vanessa's Blog

Jan 04, 2022

Week5 Blog Post

Hi again!

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

How?

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.

Getting started

https://docs.fedoraproject.org/en-US/package-maintainers/Joining_the_Package_Maintainers/

Setting up envirnonment / Building the RPM

https://docs.fedoraproject.org/en-US/package-maintainers/Packaging_Tutorial_GNU_Hello/

https://docs.fedoraproject.org/en-US/package-maintainers/New_Package_Process_for_New_Contributors/

Creating a review request

https://docs.fedoraproject.org/en-US/package-maintainers/New_Package_Process_for_New_Contributors/#create_your_review_request

Add package to source code management (SCM)

https://docs.fedoraproject.org/en-US/package-maintainers/New_Package_Process_for_New_Contributors/#add_package_to_source_code_management_scm_system_and_set_owner

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
fedpkg build 
  • For other branches: f35/f34
fedpkg switch branch <branch name>
git merge rawhide
git push
fedpkg build
  • 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.