Linux Kamarada

Linux Kamarada making of: publishing a new release

Recently I released Linux Kamarada 15.6 RC (release candidate). Taking this opportunity, I come back to the “Linux Kamarada making of” series, in which I share how the distribution development is done.

So far, this series has three articles already:

In addition to those, we also have articles on OBS, KIWI and Git, which help you understand how to use the tools used on the distribution development:

If you haven’t read the previous articles yet, I recommend you start with them.

Packages and image on OBS

I have been working on the development project home:kamarada:15.6:dev.

Let’s now see how to take the RPM packages and the KIWI image from this project to the production project home:kamarada:15.6.

If the production project is empty and I’m bringing these packages into it for the first time (for example, when releasing 15.6 Beta), I create branches from one project to the other (Branch Package link on the sidebar), similar to what I showed in the previous article. In the case of packages that use the OBS + Git integration, remember to edit the _service file and adjust the revision parameter to point to the 15.6 branch instead of the 15.6-dev branch.

Since the production project is not empty (I have already released 15.6 Beta, and now I am releasing 15.6 RC), the path is a little different. In this case, we can compare the two projects and send from development to production only the packages that have been updated (Submit Package link).

Start by accessing the development project (home:kamarada:15.6:dev), then open a package that has been updated (for example, orchis-gtk-theme) and, on the action bar by the left, click Submit Package:

On the next screen, in the To target project field, enter the production project (in my case, home:kamarada:15.6):

The To target package field can be left blank, because we will use the same package name.

The next field, Please describe your reasons to submit this package, is required. Please fill it in with a message.

Finally, click the Submit button.

OBS creates a submit request on the production project, which it presents on the next screen:

Scroll down the page, uncheck the Forward submit request option and click Accept request:

Repeat this for all packages on the development project that have been updated since the last production release.

A tip to help you find out which packages are these: order them by the Changed column.

In the case of packages that use the OBS + Git integration, you need to create the production branch (15.6) if it does not already exist (release of 15.6 Beta), or merge the development branch (15.6-dev) with the production branch if it already exists (release of 15.6 RC).

Example of the 15.6 Beta release (the 15.6 branch did not exist yet):

1
2
3
4
5
6
7
8
$ cd branding
$ git checkout 15.6-dev
$ git pull
$ git checkout 15.5
$ git pull
$ git checkout -b 15.6
$ git merge 15.6-dev
$ git push --set-upstream origin 15.6

Example of the 15.6 RC release (15.6 branch already existed):

1
2
3
4
5
6
7
$ cd branding
$ git checkout 15.6-dev
$ git pull
$ git checkout 15.6
$ git pull
$ git merge 15.6-dev
$ git push

Once all packages have been sent from development to production, wait until there are no more packages building on the production project:

Publishing packages to GitLab Pages

In the same way that the linuxkamarada.com website is served by GitLab Pages based on the kamarada.gitlab.io repository, the files at packages.linuxkamarada.com are also served by GitLab Pages based on the packages repository.

I made a script to download the RPM packages from OBS to my local copy of the packages repository. To run it, I do:

1
2
$ cd Linux-Kamarada-GNOME/scripts
$ ./download-packages.sh

You can see the script here: download-packages.sh.

In short, what it does is access the page:

And use wget to make a local mirror of this folder, excluding some files that are not of interest, such as HTML pages and ISO images.

I prefer to download the ISO image by hand to avoid duplication:

As the ISO image is a large file, downloading it twice is not a good idea.

Once the script is complete, I git commit and git push the packages repository, wait a few minutes for the GitLab Pages pipeline to run and update the files, and that’s it: Linux Kamarada 15.6 Beta users who update their system will now have Linux Kamarada 15.6 RC.

Publishing the image to SourceForge

Linux Kamarada ISO images are hosted on SourceForge, which offers free space for free software projects to release their files for download, as well as other services such as a wiki, Git, ticket support system, among others.

To publish the new ISO image, I start by downloading it from OBS:

In addition to the ISO image, I also download related files: .sha256 (checksum), .sha256.asc (signed checksum) and .packages (package list).

When the download finishes, I verify the checksum:

1
2
3
$ sha256sum -c Linux_Kamarada-15.6-x86_64-Build6.1.iso.sha256

Linux_Kamarada-15.6-x86_64-Build6.1.iso: OK

With this, I know the ISO image has been successfully downloaded from OBS.

It is also good to test the ISO image with VirtualBox to make sure everything is working.

If everything is alright, I upload the ISO image and its related files to SourceForge via SFTP using FileZilla:

Now if we access the project files at SourceForge, we will already see the ISO image listed there:

That’s great news: we already have a download link that we can share!

Updating the website

Anyone can now download the ISO image or RPM packages of the new release. All that is left is for the world to know that. So I update the links on the website and write a release announcement. I have two scripts that help me with these tasks.

One of them is update-website.sh, which updates the information and links on the release download page, such as filename, date, size, and SHA-256 sum.

The other is list-package-versions-for-specs.sh, which provides me with the versions of some packages of interest, which I list in the release announcement.

Once the links are updated and the news is written, I git commit and git push the kamarada.gitlab.io repository, wait a few minutes for the GitLab Pages pipeline to run and update the website, and that’s it: I share the news on social media.

Updating SourceForge

To avoid any broken links on the website, I delete the old ISO image (and its related files) only after the release announcement. And once I delete the old ISO image, I can close FileZilla.

There is still one more link to update, besides the link on the Linux Kamarada website: the link to the latest version on SourceForge.

I update this link only when a Final version is released, so that people who discover Linux Kamarada by SourceForge don’t download a development release (Beta or RC).

To update this link, I log in to my SourceForge account, access the Linux Kamarada project, look for the ISO image corresponding to the latest Final release, click the icon to view the file details and set that file as the default download regardless of the visitor’s operating system:

Git tagging

Last but not least, let’s remember that Linux Kamarada is a free software project. What if someone wants to get the source code of this release’s ISO image or packages? For this, I tag the latest commits in the Git repositories.

In the ISO image repository (Linux-Kamarada-GNOME), I use an annotated tag:

1
2
3
$ cd Linux-Kamarada-GNOME
$ git tag -a 15.6-RC1-Build6.1 -m "Linux Kamarada 15.6 RC 1 Build 6.1"
$ git push origin --tags

In other repositories, I use lightweight tags. For example:

1
2
3
$ cd branding
$ git tag 15.6-RC1-Build6.1
$ git push origin --tags

Conclusion

Whether you are creating your own Linux distribution, developing some free software project or are just curious about how Linux Kamarada is made, I hope this article has given you some good and useful ideas. If you have any questions, please comment, I will be happy to answer them.

And, of course, be sure to check out the latest Linux Kamarada release!

See you!

Would you buy me a coffee?
If you really liked it, if it was really helpful for you, is it worth a coffee? If you want, you can "buy me a coffee" with PayPal or contribute to the project in other ways.

Comments

About

The Linux Kamarada Project aims to spread and promote Linux as a robust, secure, versatile and easy to use operating system, suitable for everyday use be at home, at work or on the server. The project focuses mainly on distribution and documentation.

Ads

Facebook

Author