Posted on Jan 22, 2021 by bkoenig
As a Slackware user, I often run into situations where I find myself having to prove that Slackware is in fact a current and up-to-date Linux Distribution. Since we now live in an era of "data driven" decision making here are some statistics that showcase the pace of Slackware development.
If you've ever told a Slackware user that you don't see any activity on Slackware.com, you were probably asked that question. Slackware has no marketing team, no social media influencers, or the support of a user-facing foundation. Development is handled by a small team and all official communication with users occurs within the changelog itself. To help illustrate the activity level of the Slackware project, I have been working on parsing the changelog data in python in order to present in a more human-friendly format. Changelogs are parsed using python, and charts are generated by gnuplot on Slackware -current.
Updates in the Slackware have followed the same pattern since version 12.0, back in 2007. Take the update from January 20, 2021 as an example:
1+--------------------------+ 2Wed Jan 20 03:08:10 UTC 2021 3a/btrfs-progs-5.10-x86_64-1.txz: Upgraded. 4a/dialog-1.3_20210117-x86_64-1.txz: Upgraded. 5a/glibc-solibs-2.32-x86_64-1.txz: Upgraded. 6a/kernel-firmware-20210119_0578970-noarch-1.txz: Upgraded. 7a/kernel-generic-5.10.9-x86_64-1.txz: Upgraded. 8a/kernel-huge-5.10.9-x86_64-1.txz: Upgraded. 9a/kernel-modules-5.10.9-x86_64-1.txz: Upgraded. 10d/gcc-10.2.0-x86_64-3.txz: Rebuilt. 11d/gcc-brig-10.2.0-x86_64-3.txz: Rebuilt. 12d/gcc-g++-10.2.0-x86_64-3.txz: Rebuilt. 13d/gcc-gdc-10.2.0-x86_64-3.txz: Rebuilt. 14d/gcc-gfortran-10.2.0-x86_64-3.txz: Rebuilt. 15d/gcc-gnat-10.2.0-x86_64-3.txz: Rebuilt. 16d/gcc-go-10.2.0-x86_64-3.txz: Rebuilt. 17d/gcc-objc-10.2.0-x86_64-3.txz: Rebuilt. 18d/help2man-1.47.17-x86_64-1.txz: Upgraded. 19d/kernel-headers-5.10.9-x86-1.txz: Upgraded. 20d/rust-1.49.0-x86_64-1.txz: Upgraded. 21k/kernel-source-5.10.9-noarch-1.txz: Upgraded. 22kde/krita-4.4.2-x86_64-1.txz: Upgraded. 23l/glibc-2.32-x86_64-1.txz: Upgraded. 24l/glibc-i18n-2.32-x86_64-1.txz: Upgraded. 25l/glibc-profile-2.32-x86_64-1.txz: Upgraded. 26n/dnsmasq-2.83-x86_64-1.txz: Upgraded. 27n/openldap-2.4.57-x86_64-1.txz: Upgraded. 28xap/mozilla-firefox-78.6.1esr-x86_64-2.txz: Rebuilt. 29xap/mozilla-thunderbird-78.6.1-x86_64-2.txz: Rebuilt. 30xap/seamonkey-2.53.5.1-x86_64-2.txz: Rebuilt. 31xap/xaos-4.2.1-x86_64-1.txz: Upgraded. 32isolinux/initrd.img: Rebuilt. 33kernels/*: Upgraded. 34usb-and-pxe-installers/usbboot.img: Rebuilt.
Every update to the changelog as a timestamp, the package name, and what was done to the package. This means that on 1/20/2021 the Linux kernel was upgraded to version 5.10.9. Because the Slackware team is so consistent in how they announce changes, we can parse this and visualize the data going back an arbitrary number of years.
This is count of all slackware updates, organized by type. I'm also comparing it to the number of packages total in the distribution on release. This shows that Slackware has grown significantly over time and that the time between releases has also increased.
It is important to note that"rebuilds" are situtations where a package is recompiled with no version changes. This is usually due to upgrades in the tool-chain or other core dependencies. The large spike in 2018 was due to a mass rebuild in which the entire OS was recompiled.
Slackware is old! Has anything changed recently?
Yes it has! 2020 saw the addition of KDE Plasma into the official Slackware distribution. Many Slackware users have been running KDE using an unofficial "ktown" repository but now the desktop has officially been added. The spike in added packages at the end of 2020 is largely due to that. As we approach the release of 15.0 you will also see a lot of packages being rebuilt against the newer GCC and other core libraries.
This is part of an ongoing project. As I work on the tools used to digest the slackware changelog I'll release more detailed information. Hopefully someone out there finds this stuff interesting because I know I do :-)
A dynamic blog without javascript.
