Sam Aaron worked long and hard towards a new major release of his Sonic Pi software, and kept us informed about his coding journey on Twitter. Eventually a 4.0.0 version saw the light of day, 17 months after the final 3.x version (3.3.1) came out. Sam writes really informative release notes, I encourage you to check them out on his release page. Lots of enhancements and fixes to be enjoyed.
You don’t know what I am talking about?
You’ve probably missed my last year’s blog post then.
Sam Aaron is a musician and a programmer, holding a PhD in Computer Science. He develops a really cool program called Sonic Pi, meant to educate people in making music and learning how to code at the same time.
Sonic Pi uses the engine of Supercollider, which is another live coding platform. But Sonic Pi makes the art of live coding – performing on stage or just having a blast creating music on your computer – very low-threshold. Out of the box, when you start the program, its GUI will show complete and working coding examples, a tutorial, and an intuitive interface to start producing music straight away:
I have created packages for sonic-pi 4.1.0, the latest release, and I guess I am the first to create 32bit packages for a Linux platform, since I had to teach the “vcpkg” program that 32bit Linux is actually a thing. You could have guessed it… vcpkg is a cross-platform library manager created by Microsoft (!!!) which Sonic Pi uses to compile the libraries it needs.
I’ll see if I can create a patch for 32bit Linux support and send it to them.
Anyway, a month ago Sam Aaron gave a lecture at Lambda Days 2022 in Poland, about Sonic Pi, and here is a link to a recording of that lecture. You’ll learn more by watching that video, than by reading my blog posts about it.
The new packages (for Slackware 15.0 and -current) can be downloaded from all the usual places, for instance my slackware.com primary site, or the fast NL, UK or US mirrors.
I hope you are going to give Sonic Pi a try and that I’ll hear from you in the comments section below if you came up with a cool piece of audio.
And because Sonic Pi is contained in my Slackware Live DAW edition, I have also generated a new ISO for the Digital Audio Workstation. Get the “slackware64-live-daw-current.iso” ISO file, and copy it to a Ventoy USB stick or use the “iso2usb.sh” script to create a persistent USB stick.
This live environment should allow you to run Sonic Pi out of the box even if you have no idea how to configure the JACK audio server.
Updates for you!
I added fresh packages for LibreOffice Community Edition 7.4.0 which was released a few days ago. According to the Document Foundation blog post, the focus is on improving MS Office document format interoperability and helping people migrate from MS Office to LibreOffice.
Note that I compiled these new packages on Slackware 15.0. If you install them on Slackware -current you will also need to download ‘icu4c-compat‘ and boost-compat from my repository and install them. They are two compatibility packages containing older versions of the icu4c and boost libraries, in particular the versions that are part of Slackware 15.0 but no longer part of -current.
Then there is the security update for Chromium 104.
Google shared an announcement a couple of days ago, mentioning that the 104.0.5112.101 release addresses several vulnerabilities ranked as “high” but also a critical vulnerability (CVE-2022-2852). For one of the “high” vulnerabilities CVE-2022-2856 actually a 0-day exploit is reported to exist in the wild.
I strongly recommended to upgrade.
For chromium-ungoogled, I have done the same upgrade of course, so those packages are now also at version 104.0.5112.101, just like the chromium packages.
Liveslak is my favorite project, it’s fully under my control, I built it from scratch, I get good improvement ideas from its users and Patrick helps when liveslak needs something new from Slackware.
There are times that it gets less attention though, and in the first half of 2022 there was not much activity – some minor updates whenever I needed to release a fresh batch of Live ISO images. Most of that inactivity was caused by burnout.
But then someone mentioned Ventoy to me, because liveslak ISOs would not boot from a Ventoy disk and they hoped I would be able to fix that. At first I was like “I don’t care for it, why should I put effort in supporting it” but on second thought and reading through its web pages, my opinion changed in favor of Ventoy. In fact, it is a quite the unique piece of software and I am using it myself now.
So what does it do? Ventoy takes a USB stick, formats it and puts a Linux kernel, a Grub bootloader and some smart tools on it. Then you can put as many bootable images (ISOs, IMGs and so on) on its first exfat-formatted partition as there is room. Ventoy will automatically populate the Grub boot selection screen with all bootable images it could find on that partition. You can then boot any ISO straight from that menu.
Ventoy supports a lot of Operating Systems out of the box, in particular when the OS on the bootable image does not have to know it is chainloaded by Ventoy. Mostly installation ISOs work without issue.
For Live ISOs the situation is more delicate. A Live OS which starts from an ISO needs to know that it boots from an ISO, because its initrd will have to find that ISO file’s location on disk and then mount it in order to start the actual Live OS. Ventoy provides “hooks” for a lot of Live OS-es that it already knows about and validated. It is fairly trivial for a Live OS maintainer to add support for Ventoy.
And actually that’s exactly what I did between the releases of liveslak 1.5.3 and 1.5.4. The liveslak ISO images that are generated automatically after every update for Slackware-current already support booting from a Ventoy disk since a month ago.
You get these Slackware-current Live ISOs from https://download.liveslak.org/slackware64-current-live/ or from https://us.liveslak.org/slackware64-current-live/ by the way, if you are curious and want to test the latest & greatest of Slackware straight from the press.
After releasing liveslak-1.5.4 I took its Ventoy support to the next level and used the opportunity to add a whole new feature set to liveslak.
New features of liveslak 1.6.0
Ventoy is now fully supported. Liveslak 1.6.0 implements the “Ventoy-compatible” guideline. This means, Ventoy won’t apply any “hooks” to liveslak when it boots its ISO image, and liveslak figures out for itself how to boot. You’ll see the message “SLACKWARELIVE: (UEFI) Ventoy ISO boot detected…” (or ‘BIOS’ instead of ‘UEFI’ if you have an older computer). There is nothing you have to do, this works out of the box.
When you are booting from an ISO file (whether via Ventoy, or through your own hand-crafted Grub menu entry, or Windows BCD), Operating System persistence and an encrypted homedirectory are now supported, as well as the ability to load additional live modules (as ‘addons’ or ‘optional’) that are not part of the ISO. All of this is possible without the need for any modification to the ISO image.
A new script, “isocomp.sh” aka the ISO Companion script, has been added to liveslak. Like with all of my scripts, it accepts a “–help” parameter which will show you how to use it.
This script manages everything mentioned in the previous bullet:
creation of encrypted containers for OS persistence and a persistent homedirectory (actually not just for /home but you can create as many containers as fit on the disk and mount them wherever you want)
size extension of existing encrypted containers if they threaten to run out of space
creating a secondary liveslak root on the disk partition where you can add more optional/add-on live modules that you need in the Live OS but are not contained in the ISO
Containerfiles managed by “isocomp.sh” have the filename extension “.icc” which is shorthand for “ISO Companion Container” 😉
This differs from containerfiles on a persistent USB stick created with “iso2usb.sh” where the container file extension is “.img”.
The configuration of all these new features is stored in a file with the same name and full path as the ISO file but with a “.cfg” file extension instead of “.iso”. The “isocomp.sh” script manages this configuration file for you, but you can safely edit and modify it manually if you want to. The script will leave your customizations alone.
Here is an example of such a configuration file; it is copied from my Ventoy disk, for a Slackware LEAN Live ISO image: # Liveslak ISO configuration file for SLACKWARE-CURRENT FOR X86_64 (LEAN LIVE 1.6.0)
# Generated by isocomp.sh on 20220815_0654
I added the variables “TZ” and “LIVE_HOSTNAME” manually by opening the configuration file in an editor.
The following variables are also supported in this configuration file – but not managed by “isocomp.sh” – they all correspond to liveslak boot parameters by the way: BLACKLIST, KEYMAP, LIVE_HOSTNAME, LOAD, LOCALE, NOLOAD, RUNLEVEL, TWEAKS, TZ and XKB.
The value of the “LUKSVOL” variable can hold multiple “containerfile:mountpoint” definitions, separated by commas. You can use the script to add more, or add them manually if you prefer.
The “LIVESLAKROOT” variable points to the root of a secondary liveslak directory tree on your disk.
And the “ISOPERSISTENCE” variable holds the path to a persistence file (also an encrypted container) as its value.
Summarizing, there is now a second way to get persistence in Slackware Live Edition.
Of course you can still use ‘iso2usb.sh” to create a dedicated Live USB stick, this remains fully supported; but especially putting Ventoy on a USB stick gives you a portable media with an EXFAT-formatted partition, meaning you can not just have multiple persistent Slackware Live environments on one disk, but in addition you can store data on that partition which can also be read and written on MS Windows or Apple computers.
Get liveslak ISOs
The various variants of Slackware Live Edition can be found in the “latest” subdirectory at https://download.liveslak.org/ or its US mirror https://us.liveslak.org/ . This time, there’s no Cinnamon ISO, because its graphical user interface won’t start, perhaps due to missing packages in its repository. I already alerted the package maintainer Willy Sudiarto Raharjo, and he is looking into it.
You’ll be able to download ISO Live images of 32bit and 64bit Slackware proper, also of the small XFCE variant for (both architectures), and then DAW, LEAN and MATE ISOs that only come in 64bits. All ISOs containing a 64bit Slackware have support for SecureBoot.
Also have a look in the “bonus” subdirectory!
Let me know if you run into bugs. I tested all the permutations I could think of on several computers here in the house, but I know that you people out there always come up with scenarios I could not dream of. The live init script has been extensively updated and re-written, and the logic flow had to be changed, but I believe it’s solid.
For ages, I have had Java 7 and Java 8 packages in my repository. I compile these versions of Java from the OpenJDK sources and using the icedtea framework.
People have been asking about more recent versions of Java, in particular Java 11 and Java 17 are required more and more by software projects. So far, I have been hesitant, since icedtea still only supports Java 7 and 8. Writing a new build script from scratch is a lot of work and Java gives little reward.
Eventually, I have decided to build Java 11 packages regardless, main reason being that LibreOffice seems to need it to enable functionality in Base. Therefore expect the next update of my LibreOffice packages to have been compiled against OpenJDK11.
Note that I will not be creating separate JRE (Java Runtime Environment) packages. The JDK (Java Development Kit) is what you’ll get from me. It contains everything you need to compile and run Java programs. Don’t forget to logout and login again after installing openjdk11, since it installs a profile script which is sourced during login.
LibreOffice Community Edition 7.3.5 was released last week. The Document Foundation blog has the news on it.
The 7.3.x releases are the bleeding edge of this popular office suite but nevertheless really stable software. Libre Office 7.4.0 is right along the corner (expected release is mid-august) but I might hold out on that first release.
The new package set for libreoffice-7.3.5 (for Slackware 15.0 and -current) can be downloaded from my repository.
Note that I compiled them on Slackware 15.0 so if you install them on Slackware -current you will also need to install ‘icu4c-compat‘ and boost-compat. These are other packages in my repository; they contain older versions of the icu4c and boost libraries, in particular the versions that are part of Slackware 15.0 but no longer part of -current.
I wrestled with the Chromium 103 updates. Most frustrating program to build, ever, considering the time it takes to compile a package and the fast release cycle.
Here’s the heads-up: I have an incremental update both for regular and un-googled Chromium 103, but only after I finally gave up on compiling the 32bit chromium-ungoogled package. The compiler just keeps on segfaulting.
Google’s announcement last week of the 103.0.5060.134 release mentions a couple of vulnerabilities with a security level of ‘high’, so again it’s recommended to upgrade. This release kept my build box busy for several days but with VLC and LibreOffice packages waiting to be built and seeing the chromium-ungoogled compilation fail 4 times in a row at different stages, I had to decide skipping the 32bit chromium-ungoogled package this time. Let’s hope I have better luck next time.
The updated packages for chromium and chromium-ungoogled are available for Slackware 14.2 and newer. I will try to keep supporting Slackware 14.2 for as long as I can.