Monthly Archives: May 2018

Tracking development of slackware in git

Something had been nagging me for a long time, and I finally had enough of that itch and decided to deal with it.

As you know, there’s a private and a public side to Slackware’s development. The discussions and decisions are handled internally among the members of ‘the team’ and are not shared with the public at large until an update is done to the ‘slackware-current’ tree which can be found on every Internet mirror.
Thus you have access to the latest state of development always. But for some people it is a compelling idea to be able to access the development updates in a public repository like git – where you can track the changes over time.

A recent discussion on LinuxQuestions brought up the topic of SlackBuild scripts in Slackware-current. The scripts you can find in the -current directory tree on the Slackware mirrors are always the latest version. Sometimes there’s a good reason to want to go back in time and fetch an earlier version. In the thread post with the appropriate number “1337” it is ponce (Matteo Bernardini) who replies with a link to a git repository maintained by Adrien Nader which already has been tracking the development in -current for nearly 8 years!. So it’s quite a convenient way to retrieve a historical version of any script.

Me being me, it’s the existence of that repository which has been nagging me for a couple of years. Why? Because I wondered how it was done. And if I question an issue long enough, I will eventually create my own solution – as a learning exercise of course, but also to give back to the community.

And so, today arrived. I was pondering – if I were to create a git repository for tracking the developments in -current, what would I want in there? Exactly the same as Adrien’s? The answer has been “no” for a while. The most important capability that is missing from Adrien’s repo is that it contains a lot of compressed files that are impossible to read. Think of patches and doinst.sh scripts, and more. So I gave myself the task to implement a git repository with uncompressed files, as an improvement on the original effort. Also, it should track all relevant files in the complete tree, not just in the “./source/” subdirectory. In particular the documentation files (various .TXT files).

The result is a script, maintain_current_git.sh, and a repository, https://git.slackware.nl/current/ .
The repository just had its first commit. For those who want to check out a commit in order to compile a package from there, the maintain_current_git.sh script generates another script called ‘recompress.sh‘ and stores that script in the root directory of the repository. When you run this recompress script in the root directory of the repository, it will re-compress all the files that had been un-compressed before committing them to git. That way, a SlackBuild script will find the correct files and will function as intended. Note that you would still have to download the source tarballs from somewhere, because this repository of mine will only track the Slackware-specific files.

I decided that it is prudent and more respectful to not import Adrien’s work into my own repository. The two are similar but different and I think everyone of you can choose which repository suits your needs better.

I have scheduled the above script to run twice a day and update the git repository when new updates become available.
As with all my scripts, this one has a “-h” parameter to explain its usage. Let me know if it – and the git repository – are useful to you.
This particular script may be a bit messy because I have not spent a lot of time polishing it. I hope that’s OK 😉

Have fun!

May update for Plasma5

On with the show.
After recompiling LibreOffice and VLC to compensate for the recent poppler update in Slackware-current, my next target was – naturally – my Plasma5 package set. The KDE-5_18.05 release of ‘ktown‘ for Slackware-current offers the latest KDE Frameworks (5.46.0), Plasma (5.12.5) and Applications (18.04.1) on top of Qt5 5.9.5 (I decided to wait with an update to Qt5 5.11.0).
You can and should check out the README file for more details and for installation/upgrade instructions.

News about this month’s refresh

  • In the deps section I updated my poppler package so that it again matches the version in Slackware-current (my poppler package has support for Qt5 in addition to the Qt4 support in the Slackware original). I also rebuilt cryfs after that was reported broken.
  • Frameworks, Plasma and Applications updates are focusing on improved stability and nothing exciting happened there.
  • In applications-extra I have rebuilt calligra (was affected by the new poppler) and updated the alkimia, falkon, kdevelop, kdev-php, kdev-python, krita and krusader packages. I also added one new package: krename.

I think and hope that the shape of Slackware-current is getting to a point where Patrick feels comfortable with introducing the new Plasma5 into the core. To be honest, the waiting gets tedious. The first preview of Plasma5 for Slackware was introduced in my blog almost four years ago. I’d wager that it has matured quite sufficiently in the meantime.
If you want to read more about the history of Plasma5 development for Slackware, with lots more detail, check out my older blog posts. If you think a git log is easier to read, check out my ktown git repository instead 🙂

If you are using slackpkg with the slackpkg+ extension, don’t forget to run “slackpkg install ktown” to get any new packages installed, because “slackpkg install-new” will not catch new packages in 3rd-party repositories like ‘ktown’.

I am preparing a new PLASMA5 variant of the Slackware Live ISO image, so you can check out the new desktop in the safety of a non-invasive live environment. Hopefully before the weekend… depending on the workload tomorrow.

Enjoy!

VLC rebuilt for -current, Chromium and Palemoon updated

Browser updates: both Google Chromium (66.0.3359.181) and Palemoon (27.9.2) released new versions last week which I packaged for Slackware 14.2 and -current. The Palemoon update contains CVE-tagged security fixes. You are advised to upgrade.

The VLC 3.0.2 player was broken in slackware-current after the recent update of the libidn package. I rebuilt the vlc package for -current and at the same time updated some of its internal support libraries (asdcp, dca, dsm, dvbpsi, x265). The recompile was not trivial because another recent update in -current (the openssl move to 1.1.x) caused some issues for which I had to find patches. Eventually, there’s a working VLC in the repository again.

Get the packages here:

The VLC package with AAC encoder and DVD decryption capability which therefore cannot be hosted in the US can be found in https://slackware.nl/people/alien/restricted_slackbuilds/ (rsync://slackware.nl/mirrors/people/alien/restricted_slackbuilds/) as always.

Have fun! Eric

HandBrake 1.1.0 – now also in a patent-friendly package

handbrake_logoA new release of HandBrake, the video transcoder/ripper. The version 1.1.0 (released last month) comes with a load of enhancements, bug fixes and new features. Read the announcement to get all the details.

And its GTK+-3 based GUI still compiles on Slackware 14.2. The devs must have done something right. Thank you! Still, it is sad that I can not compile the HandBrake GUI on Slackware 14.1 – or older – due to the GTK+-3 requirement (how I wish that the Qt based GUI was still an option). You could still build the CLI-only variant I suppose. But it might also be a good idea to upgrade to Slackware 14.2 if you thought of running the graphical HandBrake program…

I did not test the program’s functionality yet, mainly because I don’t have a need for a video ripper/transcoder myself, but I appreciate your feedback about the Slackware package. Note that my ‘handbrake‘ package does not have any external dependencies – unlike the slackbuilds.org version.
Install and run, it’s that simple. Everything you need is compiled statically into the package. The ‘HandBrakeCLI‘ program is the command-line variant, whereas ‘ghb‘ is the GUI variant of HandBrake, also found in the “Multimedia” menu of your desktop environment.

One important change compared to previous releases is that you’ll find a ‘handbrake’ package in my regular repository as of now. Similar to my ‘ffmpeg‘ and ‘vlc‘ packages, I have introduced a variable “USE_PATENTS” and set it to “NO” to disable the patent-encumbered AAC encoder. That produces a package which can be re-distributed without restrictions – including on the Slackware server in the US.

Packages for Slackware 14.2 and -current with AAC audio encoding support can be obtained from my “restricted” repository:

The variant which does not support AAC audio encoding can be downloaded from the regular repository:

Eric

Let’s show some love to 14.2

With all the excitement going on about the disruptive changes in Slackware-current (migration to the new C++ ABI caused all of Slackware to be recompiled, and then the upgrade of openssl to 1.1 caused many packages to be recompiled again), I had to spend all of my time and CPU power to keep up with the changes and fix my packages for -current.
That meant, less attention to the package updates for Slackware 14.2. I realize I left the users of our stable release somewhat in the cold.
I am going to do something about that. During the next weeks I will try to bridge the gap that had been expanding for package versions in my own repository, between 14.2 and -current.

So let’s start with LibreOffice. A new version 6.0.4 was released two days ago. I built packages for Slackware 14.2 but not yet for -current. There’s a reason for that… until today I have not been able to compile libreoffice-6.0.4 on Slackware-current with its new openssl. I have hope that this will be resolved eventually.

I am also going to compile latest VLC for Slackware 14.2 and then I’ll check what else is getting stale.

Enjoy!