<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Izhar Firdaus</title>
    <description>The latest articles on DEV Community by Izhar Firdaus (@kagesenshi).</description>
    <link>https://dev.to/kagesenshi</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F579951%2Ff3c0c236-8041-42e3-8193-75bc0976844b.jpeg</url>
      <title>DEV Community: Izhar Firdaus</title>
      <link>https://dev.to/kagesenshi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kagesenshi"/>
    <language>en</language>
    <item>
      <title>The best practice method to install VirtualBox on Fedora 32/33 (and later)</title>
      <dc:creator>Izhar Firdaus</dc:creator>
      <pubDate>Mon, 22 Feb 2021 14:55:00 +0000</pubDate>
      <link>https://dev.to/kagesenshi/the-best-practice-method-to-install-virtualbox-on-fedora-32-33-and-later-5di1</link>
      <guid>https://dev.to/kagesenshi/the-best-practice-method-to-install-virtualbox-on-fedora-32-33-and-later-5di1</guid>
      <description>&lt;p&gt;In any linux distribution, there will be multiple methods to achieve a certain goal. You might have encountered many guides out there on how to install &lt;a href="https://www.virtualbox.org/"&gt;VirtualBox&lt;/a&gt; on Fedora, however, please take note, many of them uses intrusive methods which can be difficult to maintain in long run, and would likely to break after a kernel update.&lt;/p&gt;

&lt;p&gt;Everytime I caught a new team member following those guides, I tend to get annoyed, so I think I should write up the best practice method of doing this, which I have practiced on my Fedora installation for years now.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installing RPMFusion Repository
&lt;/h2&gt;

&lt;p&gt;Packages governed in Fedora official repositories are subject to several legal and technical guideline. This mean, many software which are not 100% FOSS or not patent-encumbered would not be available in the official repositories because they would open the sponsors of Fedora to legal liability under the laws of United States.&lt;/p&gt;

&lt;p&gt;Unfortunately, many free/open source software are patent incumbered, but while they might be illegal to distribute in the United States, they are perfectly legal to distribute in other countries.&lt;/p&gt;

&lt;p&gt;Many of such packages are available in &lt;a href="https://rpmfusion.org/"&gt;RPMFusion Repositories&lt;/a&gt;. Unlike many 3rd party repositories out there, RPMFusion contains the highest quality packages as its contributor also consist of people who package official RPMS in Fedora, and I generally recommend any new users of Fedora to install RPMFusion, especially if they are not US residents.&lt;/p&gt;

&lt;p&gt;To install and enable RPMFusion on Fedora, you can install the release package using following command which will install both the free and nonfree repositories:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \
    https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Installing VirtualBox
&lt;/h2&gt;

&lt;p&gt;Once you have RPMFusion installed, you can then install VirtualBox from it. VirtualBox in RPMFusion is very well maintained, would remain functional after kernel updates through an automatic kernel module builder (&lt;code&gt;akmods&lt;/code&gt;), and generally carry the latest version of VirtualBox.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo dnf install VirtualBox
sudo akmods
sudo modprobe vboxdrv

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And you are done and can now launch VirtualBox from the application menu. Please take note however, VirtualBox does not go well together with &lt;code&gt;libvirtd&lt;/code&gt;. If you have&lt;code&gt;libvirtd&lt;/code&gt; installed, it is suggested for you to disable it using:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl stop libvirtd
sudo systemctl disable libvirtd

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Hope this guide will help you in installing VirtualBox in a less intrusive and more maintainable method.&lt;/p&gt;

</description>
      <category>howto</category>
      <category>fedora</category>
      <category>centos</category>
      <category>linux</category>
    </item>
    <item>
      <title>Creating XDG custom url scheme handler</title>
      <dc:creator>Izhar Firdaus</dc:creator>
      <pubDate>Thu, 18 Feb 2021 14:49:00 +0000</pubDate>
      <link>https://dev.to/kagesenshi/creating-xdg-custom-url-scheme-handler-3j87</link>
      <guid>https://dev.to/kagesenshi/creating-xdg-custom-url-scheme-handler-3j87</guid>
      <description>&lt;p&gt;If you develop system tools or desktop software on Linux that also have an accompanying web application, you might want to have a way for the web application to launch the tool with some parameters specified through a web based link. For example, a link with &lt;a href="https://dev.todnf://inkscape"&gt;&lt;code&gt;dnf://inkscape&lt;/code&gt;&lt;/a&gt; as url, might be used to launch Gnome Software, and display the description of Inkscape, so that user may choose to install it or not.&lt;/p&gt;

&lt;p&gt;In Linux, registering a custom URL handler can be done using &lt;a href="https://specifications.freedesktop.org/desktop-entry-spec/latest/"&gt;XDG desktop file&lt;/a&gt;, of which it is configured to open &lt;code&gt;x-scheme-handler&lt;/code&gt; MimeType.&lt;/p&gt;

&lt;p&gt;To achieve this, you can simply create a &lt;code&gt;.desktop&lt;/code&gt; in &lt;code&gt;~/.local/share/applications/&lt;/code&gt;, or&lt;code&gt;/usr/local/share/applications&lt;/code&gt;, and configure it with &lt;code&gt;MimeType=x-scheme-handler/&amp;lt;your-custom-proto&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;For example, if you have a script &lt;code&gt;dnfurl&lt;/code&gt; which takes &lt;code&gt;dnf://&amp;lt;package-name&amp;gt;&lt;/code&gt; as its first parameter and launch Gnome Software with the package name, you can create a &lt;code&gt;.desktop&lt;/code&gt;file with this content:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ini"&gt;&lt;code&gt;&lt;span class="nn"&gt;[Desktop Entry]&lt;/span&gt;
&lt;span class="py"&gt;Version&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;1.0&lt;/span&gt;
&lt;span class="py"&gt;Type&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;Application&lt;/span&gt;
&lt;span class="py"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;dnfurl&lt;/span&gt;
&lt;span class="py"&gt;Exec&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;dnfurl %U&lt;/span&gt;
&lt;span class="py"&gt;Terminal&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;false&lt;/span&gt;
&lt;span class="py"&gt;NoDisplay&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;true&lt;/span&gt;
&lt;span class="py"&gt;MimeType&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;x-scheme-handler/dnf&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After installing the &lt;code&gt;.desktop&lt;/code&gt; file, do run &lt;code&gt;update-desktop-database&lt;/code&gt; to update the related indexes/cache. If you installed the &lt;code&gt;.desktop&lt;/code&gt; file in &lt;code&gt;~/.local/share/applications/&lt;/code&gt;, you will have to run &lt;code&gt;update-desktop-database ~/.local/share/applications&lt;/code&gt;. If nothing went wrong with the setup, you should be able to open links with the custom url protocol afterwards.&lt;/p&gt;

&lt;p&gt;If you interested with the example &lt;code&gt;dnfurl&lt;/code&gt; program above, you can check it out at this git repository: &lt;a href="https://github.com/kagesenshi/dnfurl"&gt;&lt;code&gt;github.com/kagesenshi/dnfurl&lt;/code&gt;&lt;/a&gt;. Or if you are in Fedora, you can install it &lt;a href="https://copr.fedorainfracloud.org/coprs/izhar/dnfurl/"&gt;from copr&lt;/a&gt; by running:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dnf copr &lt;span class="nb"&gt;enable &lt;/span&gt;izhar/dnfurl
dnf &lt;span class="nb"&gt;install &lt;/span&gt;dnfurl
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Have fun~.&lt;/p&gt;

</description>
      <category>howto</category>
      <category>fedora</category>
      <category>centos</category>
      <category>linux</category>
    </item>
    <item>
      <title>How to get ILI9486 Raspberry Pi 3.5” LCD to work with Fedora ARM</title>
      <dc:creator>Izhar Firdaus</dc:creator>
      <pubDate>Wed, 17 Feb 2021 06:29:00 +0000</pubDate>
      <link>https://dev.to/kagesenshi/how-to-get-ili9486-raspberry-pi-3-5-lcd-to-work-with-fedora-arm-582k</link>
      <guid>https://dev.to/kagesenshi/how-to-get-ili9486-raspberry-pi-3-5-lcd-to-work-with-fedora-arm-582k</guid>
      <description>&lt;p&gt;&lt;a href="https://arm.fedoraproject.org/"&gt;Fedora ARM&lt;/a&gt; provides a full fledged Linux distro with rich ecosystem of server packages available for the ARM ecosystem.&lt;/p&gt;

&lt;p&gt;However, ever since Fedora released an official ARM spin, specialized Fedora derivative for Raspberry Pi such as &lt;a href="https://github.com/fedberry/fedberry"&gt;Fedberry&lt;/a&gt; and &lt;a href="http://pidora.ca"&gt;Pidora&lt;/a&gt; pretty much went out of development, and getting Rpi accessories to work with Fedora ARM, especially those that does not work with upstream Linux.org kernel, is not quite obvious,&lt;/p&gt;

&lt;p&gt;In this tutorial, we would go about in getting &lt;a href="http://www.lcdwiki.com/3.5inch_RPi_Display"&gt;ILI9486/XPT2046 3.5” LCD&lt;/a&gt;, which I bought &lt;a href="https://c.lazada.com.my/t/c.Y5Zo03?url=https%3A%2F%2Fwww.lazada.com.my%2Fproducts%2Fsuhuo-35-320480-tft-touch-screen-lcd-display-case-for-raspberry-pi-a-b-a-2b-3b-3b-i1199146314-s3518982705.html&amp;amp;"&gt;from Lazada&lt;/a&gt; to work with Fedora ARM on Rpi3, up until the point where a framebuffer device is available for attaching CLI console to the display. The process provided by this tutorial in theory should also work with several other LCD devices, but because I only have this 3.5” LCD, so I can only test against it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installing Fedora ARM with downstream Raspbian Kernel
&lt;/h2&gt;

&lt;p&gt;To start, you will need to use &lt;a href="https://bintray.com/dwrobel/fda-images/server/aarch64-f33-20201230#files"&gt;dwrobel’s spin of Fedora ARM image&lt;/a&gt; instead of the main official image. This image basically replaced the default Fedora kernel which is from upstream Linux.org kernel, to a &lt;a href="https://github.com/raspberrypi/linux"&gt;kernel provided by Raspberry Pi Foundation&lt;/a&gt;. It is important for you to use this kernel to get the LCD to work, because a lot of kernel modules required to work with Rpi accessories are not yet available in upstream kernel for various reasons.&lt;/p&gt;

&lt;p&gt;You will notice that the image download page splitted the file into two, &lt;code&gt;fedora-server-aarch64-f33-20201230-sda.raw.xz.aa&lt;/code&gt;and &lt;code&gt;fedora-server-aarch64-f33-20201230-sda.raw.xz.ab&lt;/code&gt;. You will need to merge these files into a single image before you can work with it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# merge files
cat fedora-server-aarch64-f33-20201230-sda.raw.xz.aa \
    fedora-server-aarch64-f33-20201230-sda.raw.xz.ab \
    &amp;gt; fedora-server-aarch64-f33-20201230-sda.raw.xz

# verify checksum
sha512sum -c fedora-server-aarch64-f33-20201230-sda.raw.xz.sha512sum

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After successful merging, you can then copy this image into your sdcard. Please take note, &lt;a href="https://fedoraproject.org/wiki/Architectures/ARM/Installation#Arm_Image_Installer"&gt;Fedora ARM Image Installer&lt;/a&gt; does not quite work correctly with this image.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# decompress
xz -d fedora-server-aarch64-f33-20201230-sda.raw.xz 

# dd into sdcard
dd if=fedora-server-aarch64-f33-20201230-sda.raw of=/dev/mmcblk0 

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Afterwards, you may want to resize the root partition to make use of the whole sdcard, to do this, disconnect and reconnect the sdcard to reload, and then lets run &lt;code&gt;parted&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;umount /dev/mmcblk0* # just to be sure
parted /dev/mmcblk0

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then use &lt;code&gt;resizepart&lt;/code&gt; to resize the btrfs partition.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[root@chihaya ~]# parted /dev/mmcblk0                                     
GNU Parted 3.3
Using /dev/mmcblk0
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print free                                                       
Model: SD SN64G (sd/mmc)
Disk /dev/mmcblk0: 63.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number Start End Size Type File system Flags
        1024B 4194kB 4193kB Free Space
 1 4194kB 516MB 512MB primary fat16 boot, lba
 2 516MB 3016MB 2500MB primary btrfs
        3016MB 63.9GB 60.8GB Free Space

(parted) resizepart 2                                                     
End? [3016MB]? 63.9GB                                                    
(parted) q
Information: You may need to update /etc/fstab.

[root@chihaya ~]#        

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The btrfs partition can now be mounted for adding your SSH key, for remote network access, which can be added using the following steps.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# mount
mkdir /tmp/disk
mount /dev/mmcblk0p2 /tmp/disk/

# add ssh key
mkdir /tmp/disk/root/root/.ssh/
cat /path/to/ssh/public/key &amp;gt; /tmp/disk/root/root/.ssh/authorized_keys
chmod og-rwx -R /tmp/disk/root/root/.ssh/

# remove root password 
sed -i 's/root:x:/root::/' /tmp/disk/root/etc/passwd

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Static network IP can be configured using&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cat &amp;gt; /tmp/disk/root/etc/sysconfig/network-scripts/ifcfg-eth0 &amp;lt;&amp;lt; EOF
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DNS1=8.8.8.8
DNS2=8.8.4.4
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME="Default"
ONBOOT=yes
IPADDR=10.42.0.210
PREFIX=24
GATEWAY=10.42.0.1
EOF

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Finally, unmount the sdcard.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;umount /tmp/disk

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If nothing went wrong with the steps, you can now hook up your Rpi to the network, boot it up and connect to it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setting up LCD framebuffer device
&lt;/h2&gt;

&lt;p&gt;To setup the LCD device, you will need to install additional device tree overlays for the LCD. The &lt;a href="https://github.com/goodtft/LCD-show/"&gt;LCD-show github repository from goodtft&lt;/a&gt; provides the necessary files, however, the script provided by the repo is designed to work only on raspbian based platforms. In Fedora ARM, we’ll have to do this manually with the following steps.&lt;/p&gt;

&lt;p&gt;SSH into the Rpi&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ssh 10.42.0.210 -l root

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In &lt;code&gt;/boot/config.txt&lt;/code&gt;, you will need to add the following lines before &lt;code&gt;[pi4]&lt;/code&gt; section of the config (implicit &lt;code&gt;[all]&lt;/code&gt; section).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;hdmi_force_hotplug=1
dtparam=i2c_arm=on
dtparam=spi=on
dtoverlay=tft35a:rotate=90

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Download the 3.5” LCD overlay:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;wget https://github.com/goodtft/LCD-show/raw/master/usr/tft35a-overlay.dtb \
   -O /boot/efi/overlays/tft35a.dtbo

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Reboot the device.&lt;/p&gt;

&lt;p&gt;With the steps above, it should be enough to get the LCD working with a framebuffer device at &lt;code&gt;/dev/fb1&lt;/code&gt;. The LCD should be showing black screen after the reboot.&lt;/p&gt;

&lt;p&gt;You can then use this framebuffer device either to run a console, or to use with your PyGame application, or to run X server.&lt;/p&gt;

&lt;p&gt;To test the framebuffer device, you can run the following command, and the screen should be showing random black and white dots.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cat /dev/urandom &amp;gt; /dev/fb1

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also, configure the LCD device as the default kernel console output adding &lt;code&gt;fbcon=map:10 fbcon=font:ProFont6x11&lt;/code&gt; to the kernel boot option in &lt;code&gt;/boot/efi/cmdline.txt&lt;/code&gt;, and reboot the device.&lt;/p&gt;

&lt;p&gt;I have yet to try getting X GUI running on this, but I will definitely share once I got time to try and figure it out.&lt;/p&gt;

&lt;p&gt;Hope this guide would be helpful to those who own such LCD and do share if you found this guide useful.&lt;/p&gt;

</description>
      <category>howto</category>
      <category>fedora</category>
      <category>raspberrypi</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Is CentOS Dead? The reports of its demise are greatly exaggerated.</title>
      <dc:creator>Izhar Firdaus</dc:creator>
      <pubDate>Tue, 16 Feb 2021 13:31:00 +0000</pubDate>
      <link>https://dev.to/kagesenshi/is-centos-dead-the-reports-of-its-demise-are-greatly-exaggerated-5671</link>
      <guid>https://dev.to/kagesenshi/is-centos-dead-the-reports-of-its-demise-are-greatly-exaggerated-5671</guid>
      <description>&lt;p&gt;End of last year, CentOS project announced that they are &lt;a href="https://blog.centos.org/2020/12/future-is-centos-stream/"&gt;shifting their focus to CentOS Stream&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Not surprisingly, this triggered a major outlash from users worldwide, especially from those who barely understand the change, and merely react to perception raised by various online media, who are not even contributors to the Fedora nor CentOS project. The general tone is, “RedHat have killed CentOS”, “CentOS is dead”, and similar perception.&lt;/p&gt;

&lt;p&gt;However, this is far from truth. The focus to CentOS Stream is primarily:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;an announcement that CentOS will no longer release point releases (8,1, 8,2, 8,3..)&lt;/li&gt;
&lt;li&gt;smoothen out the flow for community contributions (“community” in this sense are people who work on improving CentOS, such as fixing bugs, who are not Red Hat employees)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  No more point release
&lt;/h2&gt;

&lt;p&gt;Historically, CentOS tracks RHEL, of which a new CentOS release is created, after a new RHEL release is launched. This make sense at the early days of CentOS, where it is primarily a rebranded rebuild of RHEL. But take note, the point releases of RHEL recent years, are primarily a snapshot of a specific state of the RHEL updates repositories, akin to a mid-release &lt;a href="https://fedoraproject.org/wiki/Respins-SIG"&gt;Fedora respin&lt;/a&gt;. This allows sysadmin to create a new installation with latest set of packages with latest bugfixes from the start, rather than installing an old point release, and &lt;code&gt;yum update&lt;/code&gt; afterwards. A legacy from the era where internet was a fraction of the speed available today.&lt;/p&gt;

&lt;p&gt;If you are a sysadmin that regularly run &lt;code&gt;yum update&lt;/code&gt; on your server, basically nothing will change for you. If you use containers and always ensure you containers runs &lt;code&gt;yum update&lt;/code&gt; during build, nothing will change for you too. If you only enable security updates, you too, will continue to have the same experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Empowering the Community in C(ommunity)Ent(erprise) Linux
&lt;/h2&gt;

&lt;p&gt;This is something which I believe many users would barely appreciate, but is something very important to us who involve in Open Source OS level development, or involve in supporting our clients commercially. The traditional CentOS is not that open to community, because it is trying to keep bug-to-bug compatibility to RHEL. This is a problem when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If you found a bug in a package coming from CentOS, and you want to contribute fixes to the bug, in the traditional flow, you would have to get this bug fixed upstream in RHEL, as it could not be accepted in CentOS.&lt;/li&gt;
&lt;li&gt;If you created some packages, and want these packages to be part of the main distribution channels (eg: AppStreams), there are no clear way for this.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;While majority of users who involve in application deployment, or userspace application development barely have any use case for above flow, for those who are involved with large enterprises and large projects that work closely with RHEL/CentOS ecosystem would face frustrations in the processes. This is especially true for projects such as OpenStack, OKD, oVirt, and companies such as Intel and Facebook, who uses, fix bugs and improve CentOS. The new change of project governance now would make it easier to the community to get involved.&lt;/p&gt;

&lt;p&gt;Remember here, a “community” in an Open Source project are people who contributes to a project, which can be as doing something as simple as promoting the project, supporting/helping others in using the project in community forums, or something more complex such as fixing bugs and building new features. A user who only consume, while some may argue is part of the community, barely holds currency in influencing the direction of the project. One could not expect a consumer-first direction like what can be seen in commercial softwares, because in commercial softwares, the consumers are contributing back in the form of payment to the organization that produce the software, and that is a big influence. When the threshold of contributors drop in an Open Source project, or start to be mainly handled by a single person or organization, a project is more likely to die, or to turn to proprietary model in order to sustain itself.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stability
&lt;/h2&gt;

&lt;p&gt;Some argue that the switch to rolling release model of CentOS Stream would imply CentOS would now no longer be stable. But what exactly is “stable”?. In software development, the word “stable” can mean different things. To a consumer, “stable” is usually mean something would not crash, nor have issues. However, to developers, “stable” means a state of no changes nor updates.&lt;/p&gt;

&lt;p&gt;Being “stable” in the sense of no updates, may not translate to “stable” of no issues. Modern software development usually applies agile methodology to develop software. An initial version of a software may not be issue-proof in its early releases, and would require constant updates to be rolled out to fix issues. However, constant updates would mean, the software is not “no-changes stable”. Traditional CentOS and RHEL is very resistant to changes due to its approach of minimizing updates, however, this results in an ecosystem where new bugfixes to softwares could not be easily rolled out, and also create an environment that is difficult to work with for modern agile developers who may require latest version of components, which carry latest bugfixes and improvements. Unlike the old days where software were developed in very slow waterfall model, modern application development demands faster adoption of updates, and there is a need to address this requirement.&lt;/p&gt;

&lt;p&gt;Having said that, “no change stable” is also important, however, not in the sense of barely having changes. There can be changes, but changes are managed to minimize service distruption. How software developers traditionally manage this stability is through good release engineering which splits software releases into major and minor release. Within a major release, users of a software can expect no changes in the public interfaces of the software, and that all other software that depend on it would continue working, across all minor releases of the software. Minor releases would only be doing bugfixes, and new feature introduction, without breaking existing functionalities.&lt;/p&gt;

&lt;p&gt;Circa 2013, there was an initiative in Fedora in creating a better, and more agile Fedora, called the &lt;a href="https://fedoraproject.org/wiki/Fedora.next"&gt;Fedora.next Initiative&lt;/a&gt;. One of the result of that is &lt;a href="https://docs.fedoraproject.org/en-US/modularity/"&gt;Fedora Modularity&lt;/a&gt;, which is a new architecture where Fedora would have a base OS layer, which are maintained on its own stream, and “modules” where users may choose a specific major release of a software component, and only receive updates related to that major release. CentOS/RHEL AppStream repositories, introduced in RHEL8/CentOS8, was born from this initiative.&lt;/p&gt;

&lt;p&gt;With AppStreams, you can now choose to, for example, enable only PostgreSQL 9 and subscribe to its updates and bugfixes, without risking your system updating to PostgreSQL 12, which is also available in the modularity repos. This create a platform that would allow better “issue-proof stability”, while keeping balance with “no-changes stability”.&lt;/p&gt;

&lt;p&gt;With fixes landing in CentOS first before going into RHEL, it also opens up better opportunity for the community to receives fixes early, and bugfix contributions from the community would be easier to be accepted. Additionally, Fedora still play a role in ensuring stability of CentOS/RHEL, because introduction of new major features and major component versions will still land in Fedora first, instead of CentOS. Fedora still serve as the development ground for the next major release of CentOS/RHEL, through the &lt;a href="https://docs.fedoraproject.org/en-US/eln/"&gt;Fedora ELN (El-nino / Enterprise Linux Next, whichever you fancy), Buildroot&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;One might think that with CentOS receive fixes first before RHEL, CentOS is now a beta for RHEL, however, this is nonsense. Under that analogy, would the traditional setup where RHEL receives fixes first before CentOS, make RHEL a beta version of CentOS?. We all know that is false.&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s with the EOL?
&lt;/h2&gt;

&lt;p&gt;The announcement from CentOS of EOL-ing traditional CentOS is mainly about that they are stopping the effort to produce point-releases of CentOS 8. CentOS 8 will still continue to be supported until RHEL 8 full-support EOL, which is until 2024. CentOS 9 will still be released alongside RHEL 9, and that too, will be supported until RHEL 9 full-support EOL.&lt;/p&gt;

&lt;p&gt;Hope this clears up the FUD about CentOS Stream that have been going around for a while now. You may also check out &lt;a href="https://www.slideshare.net/kagesenshi/centos-stream-how-will-this-impact-you"&gt;this presentation&lt;/a&gt; for additional information.&lt;/p&gt;

&lt;p&gt;Don’t worry, CentOS will still continue to be a great Community-driven Enterprise Linux distribution.&lt;/p&gt;

</description>
      <category>centos</category>
      <category>fedora</category>
      <category>linux</category>
    </item>
  </channel>
</rss>
