Untitled Linux Show 216 Transcript
Please be advised this transcript is AI-generated and may not be word for word. Time codes refer to the approximate times in the ad-supported version of the show.
00:00 - Jonathan Bennett (Host)
This week we're back with more drama in the Linux kernel, but also some AI getting added to open source projects. There's news about Sparky Linux and Kaizen Linux. Gcc is dropping some targets and NVIDIA has a really interesting update. You don't want to miss it, so stay tuned.
00:18 - Leo (Announcement)
Podcasts you love From people you trust. This is Twit.
00:27 - Jonathan Bennett (Host)
This is the Untitled Linux Show, episode 216, recorded Saturday, August the 16th. The kernel needs a shave. Hey folks, it is Saturday and you know what that means. It's time for Linux to the Untitled Linux Show. We're talking about software and hardware, all kinds of good stuff. It is not just me, and for what seems like the first time this summer, the gang's all here. We've got jeff and rob and ken. Welcome guys to the show.
00:52 - Jeff Massie (Co-host)
Glad to have everybody finally back uh, it feels good to be back, except I was always here. Who are these two strangers?
00:59 - Ken McDonald (Co-host)
right, well, I'm ken, and to my left is this that's your right.
01:10 - Jonathan Bennett (Host)
It's right to left on your radio dial, left to right on your TV screens, stage left Indeed. All right, we've got Rob with us as well, and Rob has the first story and Rob is bringing the drama.
01:29 - Rob Campbell (Co-host)
That's what I do. That's what I do. That's what I do. So, another colonel merge window, another drama story. I know I love bringing the drama to the show, but this is starting to get a little ridiculous.
01:39
This week, a set of risk five patches for the 6.17 kernel have been rejected and, uh, considering our love and desire for the risk five, for risk five to uh be the next big thing, this, this, is a little extra disappointing. So, linus, you know typical linus fashion, uh, well, yeah, it's, it's, it's a good story. So anyway, linus, you know he'd asked for patches to come in early for this merge window, since he's traveling, and yeah, it's, you know he's got to work around his schedule and but this set of patches came in a bit late in the window. But that really wasn't his main complaint. But you know, doesn't, doesn't, doesn't Linus have a backup to cover him? You know, greg Cage, or something, when he's unavailable, you know, as the saying goes, what if he gets hit by a bus? He's not necessarily going to always be here. So if he's traveling, let someone else fill in, like Greg, jump in, I don't know. But anyway, linus, uh was his usual harsh, uh, harsh self, uh, responding by saying here's a quote here. No, this is garbage and it came in too late. I ask for every pull request because I'm traveling, or I ask for early pull requests because I'm traveling, and if you can't follow that rule, at least make the pull request good. Okay, well, so it is.
03:17
Other highlighted quotes from his rant include this adds various garbage that isn't RIS specific to generic header files like this. Crazy and pointless. Make underscore you 32, underscore from you, or underscore to underscore you 16 helper that makes the world actively a worse place to live. He says I mean, come on, it's dramatic. But uh, he says it's useless garbage that makes any user incomprehensible and actively worse than not using that stupid helper. So he goes into some detail about how things are hard to read, comprehend, how it can be written better. You know, instead of doing this, you know, maybe do something like this so that you know, someone can just look at it and know what's going on instead of having to decipher it. Crazy, fair, I guess.
04:20
And he goes on to say another quote. And he goes on to say another quote things like this need to get bent. It does not go into generic header files. You are on notice. No more late pull requests, no more garbage outside the RISC-V tree, and then he finishes his rant with now I would hope there's no garbage inside the RIS. The risk five parts, but that's your choice. But things in generic headers do not get polluted by crazy stuff. And sending a big pull request the day before the merge window closes in the hope that I'm too busy to care is not a winning strategy. So you need to try again in 6.18, early in that merge window and without the garbage. So the risk five maintainer Palmer Dabult. He apologized for his late patches and promised to send them earlier next time, while keeping unrelated changes out.
05:27
And I wish I was a good enough coder to go in and judge some of these bad commits for myself. We keep reporting Linus going off on bad commits, but I'm not yet. Are there really this many poor developers trying to make commits to the kernel? Or is Linus just becoming a grumpy old man here? I don't know. He just seems to rant and complain every time.
05:55
But maybe this is a good thing, as Linus being strict is quite possibly what keeps the Linux kernel as good as it is. But the harshness in its responses maybe is a little over the top. It would deter me from attempting to make any commits to the kernel, seeing this kind of stuff. So maybe, maybe, one question I I question to ask is is this pushing away any good developers from contributing, you know? Or or is it just weeding out, uh, the lower tier ones that only the best of the best, who really know what they're doing, are, you know, working towards this? I don't know, it would keep me out, but you know I'm not the best of the best either. So I don't know, keep, keep, keep, uh, keeping the colonel great linus. But you know, I hope we have a path forward for all these bad developers in the world to minimize this kind of drama in the future yeah, okay.
06:59 - Jonathan Bennett (Host)
So there's a couple of things that really stuck out to me there. One, torvald, said that he suspected they pushed this late because they knew it would be problematic, and that puts all of this sort of in a different light, right? So he's saying you knew it was supposed to come in early and I suspect that you knew I wasn't going to like it, so you pushed it late. So hopefully I would just let it slide, I think I think if that was indeed the case, then, yes, there was some calling out that needed to happen yeah, I, I think that's.
07:32 - Rob Campbell (Co-host)
It may be the case, but it also may be just somebody. You know, linus, theorizing and and and putting his own perspective on it. You think, think I'm not paying attention. This one for the 618, Colonel.
07:47 - Jonathan Bennett (Host)
Yeah, and then there was something else I saw this week that you kind of touched on. That was really interesting. I saw it on a Slashdot article and it links over to one of the guys at the register and it's about the secession plan for Linux after Torvalds is gone, and they go with this sort of crazy headline. The plan for Linux after Torvalds is gone and they go with this sort of a crazy headline the plan for Linux after Torvalds has a kernel of truth. There isn't one. It's like, well, okay, yeah, I've talked with Greg KH about this and it's like they're sort of making more out of this than there needs to be.
08:22
But the comment from Torvalds was there isn't a formal secession plan. But it's pretty well understood that when, when Linus is not there, greg KH sort of has the reins and they, they will sort of figure it out as time goes. By the way, that maintainers are currently figured out just to the people that do. The one of the guys I worked with talked about the that most open source projects are not actually meritocracies, they're duocracies, and that is, it's the people that actually jump in and do stuff, that get to lead and make decisions. And uh, I thought that was. That was a pretty interesting uh, pretty interesting observation. The kernel really seems to be one of those as well.
09:09 - Rob Campbell (Co-host)
Yeah, interesting stuff going on in the kernel.
09:12 - Jeff Massie (Co-host)
Yeah, maybe risk is too much of a risk. What's that, Jeff?
09:17 - Jonathan Bennett (Host)
And there was something else that didn't get included. Bcash FS yeah, yeah, the Bcash FS changes. Yep, not interested to see next merge window if those make it in.
09:28 - Jeff Massie (Co-host)
I hope so. Right now, my understanding is everybody's waiting for Linus's kind of RC1. Here's what's going on. Is he going to yank it? Is he staying quiet because he wants to totally yank it out of the kernel by 618, or it's just just another delay to kind of smack on the wrist kind of thing, or you know what's. So everybody's kind of up in the air of speculating. What is? What does this mean? I will all.
10:04 - Jonathan Bennett (Host)
Request was in early enough right I would hope that if torvalds was going to yank it, he would have done it as a pull request in the middle of the merge window and not waited till like after the merge window, considering how he just jumped down the throat of another developer for doing something controversial at the end of a merge window yeah, I'm, yeah, I'm hope, I'm hoping they, just because it's supposed to be well, they're going to take the experimental flag off that.
10:34 - Jeff Massie (Co-host)
Yeah, you know, I I don't know how stable it is. I, even even when they do that, personally, uh, you know, I'll give it a couple years before I really truly test it on on anything that I can't afford to lose it just. Oh no, it trashed my drive. Yeah, whatever Format redo okay.
10:52 - Ken McDonald (Co-host)
You know what else is missing from 6.17?
10:54 - Jonathan Bennett (Host)
What's that?
10:56 - Ken McDonald (Co-host)
The last of the riser remains.
11:00 - Jonathan Bennett (Host)
Oh, did they finally pull it, make it go away?
11:02 - Ken McDonald (Co-host)
Actually, the patch was submitted back around the 13th of August.
11:09 - Jeff Massie (Co-host)
It was just some little stuff that they final cruft. They swept out the last cleanup from it being in there.
11:17 - Jonathan Bennett (Host)
Yeah, makes sense.
11:20 - Ken McDonald (Co-host)
I'm not sure if that actually fell with 6.16 or 6.17.
11:25 - Jonathan Bennett (Host)
Given the timing, probably this one, the one that's just closing up the merge window.
11:31 - Rob Campbell (Co-host)
If nobody's using it, does it really matter?
11:33 - Jonathan Bennett (Host)
No.
11:34 - Jeff Massie (Co-host)
It needs to go.
11:35 - Jonathan Bennett (Host)
That's the thing.
11:36 - Jeff Massie (Co-host)
They took it out, they deprecated it a while back. This was just some kind of my understanding was more odds and ends and little.
11:44 - Jonathan Bennett (Host)
Yeah, it's. Oh, hey look, this macro is defined, but the only thing that was using it was the stuff that we removed last kernel. Let's kill the macro too. Yeah, that happens a lot, all right, so Debian 13, we talked about last week, and one of the things we mentioned is there's all of these downstreams from Debian and Ken, you've got a story about one of those downstreams that is catching up.
12:10 - Ken McDonald (Co-host)
Yes, jonathan, as you mentioned, we are seeing some distros update from Debian 12 to Debian 13. So, of course, bobby Borisov and Marius Nister had to write about at least one of them. The two articles I have linked report on one of the first distros based on Debian 13, sparky Linux 8.0, codenamed Seven Sisters. Now, according to Bobby and Marius, all packages have been refreshed from Debian and Sparky's repositories as of August 13th 2025. The default kernel is Linux 6.12 LTS, but you can upgrade to 6.16.0 from the Sparky repository.
12:54
According to Marius, sparky Linux 8.0 is available in six editions, featuring the KDE Plasma 6.3.6, xfce's latest 4.20, lxqt 2.1, and MATE 1.26 desktop environments. Now you can also install Sparky Linux 8.0 Minimum GUI Edition, which uses the open box 3.6.1 window manager, or you can use the minimal CLI edition if you don't want or need a graphical environment. The updated list of default options includes LibreOffice 25.2.3, firefox 128.13, that's the ESR, as well as the Thunderbird ESR 128.13. But the Sparky repo does include Firefox 141.0.3 if you do want the latest version. According to Bobby, gimp now comes pre-installed across all ISO images. Now existing Sparky users should follow the official upgrade guide. There are even more details in Bobby and Maria's article and for the astronomy enthusiasts out there, you might even find the official release announcement interesting.
14:19 - Jonathan Bennett (Host)
Yeah.
14:21 - Ken McDonald (Co-host)
So, Rob, when are you going to try Sparky Linux?
14:23 - Rob Campbell (Co-host)
Nah, I'm not interested, I'll pass.
14:28 - Jonathan Bennett (Host)
Yeah, with something like that, you just have to ask the question does it really offer anything over just using Debian? I went looking for news on when Raspberry Pi OS is going to go to Debian 13, to Trixie, and they don't have. The AI says, and I don't know if I entirely believe this, but the ai says that there's already an experimental version which I could believe. Um, I see a couple of guides here on how to do the update to 13, but it's not out yet. The last official word was from may when Raspberry Pi OS put out a major version bump and they called it the last one of Debian 12 before Trixie this summer. So I would assume soon we will see Debian 13 on Raspberry Pi, which that will be interesting to get my hands on. I wonder if that will arrive at just the right time to be able to try it out with the Argon laptop, the Raspberry Pi laptop that I picked up. It should get here in a month or two.
15:37 - Ken McDonald (Co-host)
Now I'm trying to remember what architectures does Debian 13 support?
15:48 - Jeff Massie (Co-host)
Debian 13? Yeah, it's's a. There's a ton of them. Which one would you recommend? Jeff x86, it's, it's. It's honestly. If you're not into mobility and power, power savings, it's the. You know, unless you have a specific reason x86 is what you should run.
16:12 - Ken McDonald (Co-host)
Do you know of any CPUs that might give you a specific reason?
16:16 - Jeff Massie (Co-host)
Well, you got like an old Spark station or something like that. Are you trying for a segue, cam? I was going to say this feels like there's a segue here.
16:24 - Jonathan Bennett (Host)
Jeff's got a story about gcc and, uh, poorly supported niche cpu architectures. Yeah, I'm gonna call it. That was a segue. Why don't you take it? That's pretty weird.
16:34 - Jeff Massie (Co-host)
And a side note, your ai is just as accurate as your magic eight ball. So just say, it seems like, come on, at least you know. Oh, come on, at least you know At least. So we've talked about how the Linux kernel's you know discussing from time to time dropping old hardware. You know, as much as people want to keep old hardware going, it dies off. Support can be hard because developers don't have any of the hardware to test on. You know, it kind of becomes very niche, like running a specific program for a single purpose, and rarely does it get used for general computing. I'm not going to say never, but the really old machines usually sit in a corner chugging away for whatever reason, and it does the one function and that's usually where it stays.
17:21
Now the couple stories I have next could have an impact on the kernel support going forward, because gcc is talking about dropping some poorly supported and niche cpu architectures. They're doing this because of a few reasons, you know. Like one, the hardware never sees code activity and and you you should, because you know like the languages evolve things like that the compiler changes. If it's not changing then it probably doesn't support everything. And, which is number two, there are issues with the features that the code supports, meaning the current code won't support the full modern specs. So if you wanna compile modern code, so you can't do it like the current version of C++, you'd have to use an old version. For example, because the translator code inside GCC hasn't been updated to handle new features of as the languages change. And three, there's just not an active maintainer. You know if, if somebody's not actively, at least got their name on it, it's probably you're probably suffering code rot. Now a lot of these aren't going to be known to our, a lot of our audience. So they they've got an Aptiva epiphany architecture which has the issues that we just talked about. There's a Rhenesis M32C 32-bit MCU, which it had its last update in 2015. And there's a Rhenesis RL78 low power 8-bit and 16-bit microcontrollers and their last code updates and fixes were in 2018. Now to kind of help weed out some of this older stuff, gcc is also wanting to have a test suite result done at least once a year minimum to be considered maintained. So if people aren't going through and actually actively running the test suites and it can't pass the test suites, is anybody even using the code or is it just kind of sitting in there doing nothing.
19:32
Now the bigger chip they're talking about dropping, which a lot more of our audience is going to know, is the Intel Itanium IA64. Now this was a CPU which was based on explicit instruction level parallelism, where the compiler decided which instructions to run in parallel, versus the CPU deciding which instructions to run in parallel, which is like the chips we have today. It came out in 2001, lasted until about 2019, when Intel said they were shutting down the last silicon which supported the IA64 instruction set. Now why did it fail? Well, there's several reasons.
20:09
We won't go into the full details, but bottom line was it was expensive, no backward compatibility and it never lived up to the performance promises. Basically and that came from basically, the compiler was so hard to write. People couldn't do it to fully optimize to the promise of the hardware. The complexity was beyond what people could program. Maybe with AI it would have been different now, but it was just too much at the time. Now I bring this up because GCC is also looking at obsoleting the IA64. Now they were going to market obsolete in GCC14. Then in 15, they unmarked it as obsolete and said it would have support for years to come and now looking at GCC16, it's back on the chopping block.
21:01 - Jonathan Bennett (Host)
Does that have anything to do with the troubles at intel, I wonder probably does.
21:06 - Jeff Massie (Co-host)
Yeah, I'm, I'm guessing so, and and that was the last silicon that supported it. In 2019 there was, I think it was like 2017 was actually the last official chip that came out, and they carried on for several years without much adoption. It was it was, you know, closer to when it was released, when the people were really buying it, and it basically went into, like enterprise servers and things like that, and most, most people in the enterprise don't keep really old things around there, you know, at least, at least not you know, a decade plus old. Now, I should mention that this one won't have an effect on Linux, as the kernel 6.6, which is an LTS, was the last version to support Itanium, so it's already dropped out of the OS.
21:58
Linux moved on, but there's still a few operating systems out there, though, which do support the Itanium hardware still, and this could have an effect on it, because, if you know, gcc is one of the big compilers for open source software. If it's not supporting it, you either have to drop it or try to find another compiler. Now take a look at the articles linked in the show notes for more details, and hopefully this won't affect anybody in our audience. You know I'm making no promises about Ken. He's probably got something with one of these or more, but you know, until then, happy coding yeah.
22:36 - Jonathan Bennett (Host)
So this it. It doesn't matter for the reasons that you mentioned. But it's also like who is that that's so loud, ken, are you making noise? Somebody's making lots of noise. Anyway, it doesn't matter for the reasons that you mentioned. But there's one other consideration here, and that is like, even if someone running linux on one of these, and so that's going to be one of the major things that you're doing um, they're not running the latest linux version. Probably they're running like the last lts and you can continue to compile that with the last gcc, and so it's. It's going to be, it's going to be a long time still, like years, to come before dropping it from future GCC versions actually means that you can no longer compile software for one of these things. There's a very long tail on running GCC older versions and all of that stuff.
23:38 - Rob Campbell (Co-host)
AI says, clang still supports titanium.
23:43 - Jonathan Bennett (Host)
The CLang compiler. Yeah, I would not be surprised if they dropped it as well. I think they inevitably will at some point.
23:51 - Jeff Massie (Co-host)
Well. Keep in mind, though, if you're running the older version of GCC, you are also limiting what language versions you can use.
23:58 - Jonathan Bennett (Host)
Right, yeah, but I mean, it's not like people are porting new software to these things.
24:04 - Jeff Massie (Co-host)
No, but I mean, if you have the latest rev, say let's just say Chromium, and you're compiling it, well, if they rev to a new language version, that could cause problems where you've got to then do a little work to get around features.
24:19 - Jonathan Bennett (Host)
Nobody's. Nobody's running chromium on these devices. They're. They're running an old linux, something like red hat or or probably red hat at this point right, and they're running a sequel, they're running a sql server or they're running a web server. They're you know that sort of thing. Nobody's. Nobody's actually running um chromium on one of these to where they would need to do the updates. It's all software where there are long-term support stuff, and you can run software from 2018 with bug fixes and not have much of a problem.
24:52 - Rob Campbell (Co-host)
Alright, listeners if Jonathan is wrong and you are running one of these old systems.
24:59 - Ken McDonald (Co-host)
Let us know who you've got maintenance contracts with to help us out.
25:03 - Rob Campbell (Co-host)
Well, no, just let us know who your main tape con, who you've got maintenance contracts with to help us out well, no, just let us know, let me know, you know you can donate a copy to me, copy to me and put in the comments that jonathan is wrong and explain how you are still using this and need to update your chromium or whatever else I would love to hear anybody doing that or just send an email, whatever actually, I would venture guess it's probably jonathan is mostly correct other than that software from 2018 or 2015, I bet it's not getting any updates.
25:33 - Jeff Massie (Co-host)
It is running as is and it's it's in the back corner somewhere and people are like it runs, don't it?
25:40 - Ken McDonald (Co-host)
don't look at it, just you know, and let's hope that maintenance contract never stops.
25:50 - Jonathan Bennett (Host)
Yeah, well, what you have to do is you have to go get your old retired sysadmin and thaw him out and bring him in to fix something on that server if it goes down. He hasn't been at work in the last 15 years.
26:05 - Ken McDonald (Co-host)
What company was it? Was it Tux care? That did that kind of work?
26:07 - Jonathan Bennett (Host)
yes, I don't know that they support the itanium. They'll. They'll do updates. They do live patching on a whole bunch of different linux things. Super interesting. We talked about philosophy weekly a while back. I don't even know that itanium is in their is in their wheelhouse though uh, it might be. I bet if you paid them enough it would be. They'd be glad to do it for you.
26:24 - Jeff Massie (Co-host)
But and and a lot of software that it ran was emulated x86 software. So that was another problem, that a lot of software wasn't natively compiled for it. So it was. It was a completely different instruction set than the x86. Yeah, yeah, makes sense.
26:42 - Ken McDonald (Co-host)
In that case, you might as well switch to risk 5 then you might as well.
26:48 - Jonathan Bennett (Host)
All right, rob has got a story for us, and it is about fuzzing the kernel. I think this is something google is doing. I'm curious, rob. I want to know more about this. What is up at google the?
27:01 - Rob Campbell (Co-host)
kernel needs a shave yes, kernel needs a shave and google is going to help with that. So you know, a critical step to code development and ensuring minimal bugs and vulnerabilities is testing, is the testing stage, testing that code and and. And you know there are quite a few methods to test code, from unit testing, performance testing, functional testing, several others, and fuzzing is one of those. So fuzzing is a technique that uses invalid, unexpected or random data as input and then checks for exceptions such as crashes and potential memory leaks. It is an automated testing technique that is performed to describe the system testing process involving randomized or distributed approaches. So basically, it's just an automated system, just throws everything at it it can think of as an input and see what happens.
28:07
This week Google has made the Linux kernel a little more fuzzier with KFuzzTest or they're going to test if it's fuzzy or not. You know you got some hair on there or not. So a new lightweight framework. So KFuzzTest is a new lightweight, lightweight framework for in kernel fuzz, targeting for internal kernel functions. So the goal of KFuzzTest is to make it easier to exercise Linux kernel code paths that are difficult to do from the system call boundary. So, to quote Google engineer Ethan Graham, this patch series introduces KFuzzTest, a lightweight framework for creating internal fuzz targeting for internal kernel functions.
28:58
The primary motivation for KFuzzTest is to simplify the fuzzing of low-level, relatively stateless functions, such as data parsers format converters that word IN-SITU fuzzing of kernel code, without requiring that it be built as a separate user space library or that its dependencies be stubbed out.
29:34
Using a simple macro-based API, developers can add a new fuzz target with minimal boilerplate code. Fuzz target with minimal boilerplate code. So the code design consists of three main parts a fuzz test name structure type macro that allows developers to easily define a fuzz test. And then two there's a binary input format that allows a user space fuzzer to serialize complex pointer rich C structures into a single buffer. And three metadata for tests, targets, constraints and annotations, which is emitted into dedicated ELF sections to allow for discovery and inspection by user space tools. These are found in KFuzz test targets, constraints and annotations found in KFuzz test targets, constraints, annotations. So anyway, with this new automated fuzzy kernel tool, linus won't have to spend so much time testing kernel code and can spend more time criticizing the kernel developers. Win-win for us all, okay. But in all seriousness, it should help find more bugs quicker so they can be fixed faster.
30:49 - Jonathan Bennett (Host)
In situ just means in place it's a fancy way to say in place. This is interesting. There's already been some feedback where people are saying please don't add all of your macro stuff to our source code files, and it's unclear whether or not it can be added without doing that. Hopefully it'll be able to because, yes, adding a bunch of macros to source code files is a pain.
31:14 - Ken McDonald (Co-host)
With this KFuzz? Is this going to be making it a broader search for when you're testing those through the frameworks?
31:25 - Jonathan Bennett (Host)
No, essentially what a fuzzer lets you do is it lets you pick a very specific, usually a function, and say, all right, I want to see what this function does when I give it all sorts of different input. And it lets you do it sort of detached from the rest of the kernel. So essentially, you set like a kernel environment and you put things into memory to make it kind of look like you're running a kernel. Maybe you load a snapshot into memory of a running kernel and then you just call this function repeatedly. You may reset the memory backup in between calls, depending on what you're trying to do, but you just call it repeatedly, with slightly different input every time, and you see what happens. And so it it lets you do things like so you can then hook it up to um, I think valgrind is one of the ways to do this, where you watch what lines of code actually get exercised, and so then at the end of your, your fuzz run, you've got like a coverage chart of okay, inside of this function that I was fuzzing, I have coverage of this line, this line, this line, and so you'll even get numbers Like we did a thousand runs.
32:32
We hit the very first line. We hit that a thousand times. Then we get down to this first if statement and okay, well, we took one branch of it 800 times and the other branch 200 times, and then at the very, very end of it you kind of get this report. It's like, here are the lines that you never, ever exercise in your fuzzing run, and those are really interesting because that's sort of one of the places where vulnerability might hide, because it's a line that's difficult to access, so it sort of indicates an edge case, or maybe it indicates dead code altogether, and so that's one of the things that you do with these fuzzers. It's one of the art, where the art comes into it. It's like how do you design a fuzzer that is going to eventually get you the right kind of inputs to exercise all of these lines? Super interesting stuff.
33:16 - Rob Campbell (Co-host)
Yeah, a simple example of a fuzzing technique might be if you created a website to create a user and you're expecting all user names to be alphanumerical and so that's all you test, and then then your fuzzing test may test things like special characters or quotes, and if you don't have things properly escaped, you know a a quote's going to like break that and not work right. So when it, when you throw things like special characters or things that you didn't expect to go into that input, you know it's going to cause. It's going to cause and show those undesired results, except for you know, with this it's going directly to like a function.
33:59 - Jonathan Bennett (Host)
It reminds me of one of my favorite programming stories. Qa engineer walked into a bar. He asked for a beer, and then he asked for two beers. And he asked for negative one beers, and then he asked for nine, nine, nine, nine, nine, nine, nine beers. Nothing happened, so he walked out. The real customer walked into the bar and asked for the bathroom and the bar spontaneously exploded. Programmers know exactly what I'm talking about.
34:24 - Ken McDonald (Co-host)
Jeff got it I was gonna say, all right, negative one beer, then 999 beers it, and that's going into the uh, I'm trying to think of the phrase for it.
34:37 - Jonathan Bennett (Host)
He's a qa engineer he's a qa engineer, so he's trying to find all of the weird things, all the weird edge cases, anyway let's move on.
34:45 - Jeff Massie (Co-host)
And he only tested the beers, not the bathroom, so he totally missed a vital piece of the testing.
34:54 - Jonathan Bennett (Host)
All right, so let's oh, I get it Virtual numbers. Ha ha ha. That was an attempt at a segue again, because Ken is going to talk about VirtualBox.
35:06 - Ken McDonald (Co-host)
Yes, I am, Because this week Bobby and Marius also wrote about updates to a popular open source cross-platform virtualization software, as Jonathan called it, VirtualBox. This is going to be version 7.2. Now, according to Marius, VirtualBox 7.2 brings initial support for the upcoming Linux 6.17 and 6.16 kernel series on both hosts and guests, Improved Linux guest edition support for Oracle Linux 10 and Red Hat Enterprise Linux 10 guest, as well as improved handling of the VBoxx video kernel module in the init script for Linux guest. It also enables video decoding acceleration for Linux host when the 3D option is active in settings, fixes the swapped scan code for pause and num lock keys in the table used when relying on XKB for translation for Linux host and fixes a VBox client start failure with Linux kernels 2.6 or older.
36:21
Why would you be running an older one? I don't know. But for Linux guests, According to Bobby, the NVMe controller emulation has officially moved into the open source base package, making it more widely accessible without needing the proprietary extension package. Yeah, let's get rid of the proprietary extension package altogether if we can. There's also a fix for a nasty VMDK corruption issue that could occur during disk resizing. They both touched on updates supporting ARM virtualization. Now I'm going to recommend reading their articles for more detail about the ARM virtualization and graphic user base in improvements.
37:07 - Jonathan Bennett (Host)
Interesting stuff. So is this cross-running ARM inside of x86? That's what it sounds like Interesting yeah, lots of people are interested in that, and the opposite being able to run x86 stuff inside of arm.
37:24 - Ken McDonald (Co-host)
Both of those are interesting for various reasons because then you don't need to keep switching the hardware that you're using yeah, yeah, that's definitely part of it, yeah I think the x86 inside of arm is, uh, more interesting well, it depends what you're doing, right.
37:41 - Jonathan Bennett (Host)
Like if you have an arm machine and you want to run games, then Like, if you have an ARM machine and you want to run games, then yeah. But if you have a powerful desktop and you want to develop for Android, then you know it's the other way you want to go. Both of them have definitely their use cases.
37:54 - Jeff Massie (Co-host)
And I say sorry, ken, you've been gone so long. We're rusty with your segues Indeed.
38:04 - Rob Campbell (Co-host)
Indeed.
38:04 - Jonathan Bennett (Host)
You had a rusty segue there. Yeah, wheels are gonna fall off. Well, something that has not changed is that jeff is the one that keeps his finger on the pulse of nvidia. I think he is the only team green member on the show. Nobody else cares, nobody else is team green, and jeff is holding that one down on his own.
38:22 - Ken McDonald (Co-host)
Uh, well, I I gotta balance it out you know, representing everybody, so so just out of curiosity, jeff, do you have a integrated amd graphics on your system as well?
38:37 - Jeff Massie (Co-host)
I do, it's just uh, I, it's what came stock in the 7900 yeah, that does. Come with one, a very lightweight integrated gpu but yeah, I I have used it for like debugging some stuff and but normally I I don't ever use it yeah, so tell us, tell us about the nvidia driver updates then so we've not talked about it on this show, but I thought I should bring it up because NVIDIA released their 580 beta driver earlier this month and now they have a bug fix for it.
39:09
So with two releases for this, I thought, hey, we should probably at least touch on it Now. The 580 driver isn't earth shattering because it's a long-term support driver, which means they're not putting in the wild new things into the driver, because this one needs to be stable and they're going to take care of it for a few years. Now that's not saying it doesn't get new features and updates, because it does, just not the cutting edge ones. If it's a little bit sketchy, yeah, we're going to leave it out of this one. And for those that don't know, nvidia comes out with a long-term stable release driver and then they have a new features, short-lived driver, which is where they can go nuts because it's pretty experimental and use at your own risk kind of things. I found they're fairly solid, but take that with a grain of salt and you need to know how to convert if you need, because I have. I have had to back out some of the experimental ones in the past. But that saying that, what does the the stable driver bring. Well, it does bring fifo-v1-weyland support and this is already implemented in kde and gnome and it should also give a nice speed up for the Mesa driver. So basically it handles communication between the driver and Wayland and uses a more efficient method with less overhead. So it wasn't in the NVIDIA driver, now it is and the rest of the chain is already done. The new driver is also going to have better GPU clock value reporting. It's going to default to RM interlocking mode by default, which basically is going to reduce stuttering, especially on VR headsets. So it'll help on other things as well, but the VR headsets is the big one. The update adds on top a newer version of the EGL X11 protocol and the EGL Wayland protocol, so they get revved up.
41:09
Added an output bits per component meta mode attribute that can be used to control the number of bits per color component transmitted via display connector. So if you haven't specified it, the driver will choose an optimal color format. Where that comes in is you can, depending on what version of connection you have, you can you can adjust the color because it is possible to run out of bandwidth if you're running an older version of HDMI or DisplayPort and you can then adjust that to optimize resolution. Over color correctness.
41:54
There's also a ton of bug fixes. I'm not going to go over all of them because there's a ton of them, but a few examples are fixed a bug that could result in a black screen when setting specific modes on HDMI displays. They also fixed a bug that could cause GTK4 applications to crash when using the Vulkan back end on Wayland. Fixed a bug that led to increased memory usage on X11, opengl and Vulkan applications after some suspend resume cycles. And, like I said, there was a ton of them in there.
42:25
So take a look at the article linked in the show notes. It has links to the original release of the driver and they have links to both to other stories that go in like with the FIFO. There's a whole article linked in there if you want to know a lot more than nuts and bolts behind that. And they also have links to the official NVIDIA page which lists every single change and bug fix in the software. And, like I said, you don't want me to rattle in a lot of that stuff off for a long time, so I just hit some of the high points. You should see the 580 driver already in your distros, or soon, depending on how fast your distribution gets its new drivers in, or you can always download it directly from nvidiacom, so take a look and see if it cures any problems or speeds anything up for you.
43:17 - Jonathan Bennett (Host)
Yeah, we've come a long ways with NVIDIA, since we had to rapidly shake the mouse to get the screen to update.
43:25 - Jeff Massie (Co-host)
Yeah, that kept me off Wayland for quite a while. So what Jonathan's referring to is it wouldn't update the screen unless you moved your mouse. So to get the screen to show up and actually do things, you had to constantly shake your mouse. So it, yeah, it was. It was weird, it was a wild bug. Yeah, that was pretty early, though I mean that was, you know, we were still in pretty beta stage at that point is there any truth to the rumor that nvidia is actually giving linux more support than windows now?
44:02
I have not heard that. Yeah, now I could believe it. If you include enterprise, you know the ai type, uh workloads, just the regular display driver, I don't know, is I, I can't say, but I would, I would kind of suspect that a little bit I definitely think, uh, nvidia is giving linux more support than windows because, as far as I know, windows isn't giving linux any support my goodness, all right, uh, let's talk.
44:38 - Jonathan Bennett (Host)
Let's talk about ai. Seems like we can't do a show anytime this year without talking about ai. And thank you, rob. One of these, rob rob has two things. One of these I'm actually super excited for and the other is kind of meh, but that's all right, take it away, rob.
44:54 - Rob Campbell (Co-host)
I know Jonathan hates when I talk about AI on the show, but it just keeps creeping in every show because it just keeps creeping into open source more and more. And so, yeah, a couple of interesting projects this week have added AI to them and those are FM, mpeg and OnlyOffice. So, to start, the upcoming FF MPEG 8.0 library adds a Whisper audio filter for making use of OpenAI's Whisper model for providing automatic speech recognition and transcription capabilities. Whisper is a highly capable automatic speech recognition model trained on a large data set and will be able to be enabled with the dash, dash, enable, dash, whisper flag. Dash enable, dash, whisper flag. You know Ken always likes to bring us FMMPG command line tips, so maybe he will demonstrate this one for us in one of his future tips. Write that down, ken. We'll want to see this one in action. So I'm guessing that's one Jonathan's interested in. But there's another one, uh, with the only office. Uh, while microsoft, you know, adds co-pilot to its office products, on linux, you know they add there for a small licensing fee, here on linux only office is adding AI tools into its suite included in the base price of free. Well, okay, maybe not exactly, it depends what you tie it into, because it's very flexible and it's going to allow you to tie it up multiple things. So currently in beta, the latest AI agent lets users type natural language commands directly into the editors.
46:53
The AI Agent plugin supports multiple AI providers and can run both in the cloud and locally, and you can even add custom functions to fit your needs. So I guess it depends which provider you use there. Maybe you tie it in with a paid one, maybe you don't, but that's up to you. So some use cases, like in the documents editor. You could generate text, rewrite selected content, explain parts of a document in the comments or apply formatting In their slideshow. Presenter AI can add new slides, insert shapes and labels, change slide backgrounds and create charts or diagrams from raw data or in the spreadsheet editor AI. With AI you could summarize data from pivot tables, apply filters, sort columns and build charts and diagrams.
47:54
If you want to try it out, make sure you have only Office 9.0.4 or newer. Then go to plugins and then plugin manager and install the AI plugin 2.4 or newer, and, once installed, activate it through plugins and then go to background plugins and then go to ai tab settings and then, under edit ai models, click the plus icon to choose your preferred provider from the list. So so there is a limited amount. I haven't installed, I don't know what that list is, but enter your API if your provider requires it, and click update models list. You will then see a list of models to choose from. Select one and click OK. So, jonathan, stop fighting the AI overlords. Resistance is futile. Resistance is futile.
48:53 - Jonathan Bennett (Host)
Resistance is futile. I will be assimilated. So I love Whisper and FFmpeg. I think that's going to be super useful If I can make it work. I will use that Because I do the speech-to-text for Floss Weekly and we do a transcript of that, and so if it has the ability to differentiate between the different speakers, I will totally use that and dump the closed-source product that I'm using now.
49:25 - Ken McDonald (Co-host)
Just out of curiosity, Jonathan, what version of FFmpeg are you currently running? Let's see Because I just checked in with my Ubuntu Studio it's 7.1.1.
49:38 - Jonathan Bennett (Host)
I mean on the laptop. Here it's 4.4.2.
49:44 - Rob Campbell (Co-host)
That's Pop OS right.
49:45 - Jonathan Bennett (Host)
Yes, I am more and more thinking that I need to upgrade to fedora on this pop os laptop um I'm putting cash eos on my laptop.
49:59 - Jeff Massie (Co-host)
I got I got a friend at work who, uh, he kind of helps with some of the kubuntu packaging.
50:04 - Jonathan Bennett (Host)
Oh cool, he's really impressed with uh cashy how it's working um, on, on the desktop behind me, which is a fedora system, that's 7.1.1, so so yeah but we're modern.
50:16 - Rob Campbell (Co-host)
so yeah, go ahead, rob. I was gonna say you know, I think the whisper stuff is cool, but I don't really do anything with that, uh, so it really won't serve me much, but I think the only office stuff I know Jeff has told me he does stuff like this to, where you know he'll have something in a document and they'll take it over to AI, and well, at least I do. I know exactly what his process is. But you know I'll have something and I'll want it to be grammar checked or written better, or something I'll throw it in as like write this better for me, whereas it'd be nice with only office, I can do it in place, right there, without copy pasting, dropping it in and, and you know, doing all that stuff.
50:56 - Jonathan Bennett (Host)
Yeah, I mean I, I do. I do resist letting the robot write anything for me. I've, I've not gone down that road yet. I'll let it look at my source code, that's fine, but I don't let it actually write any of my pros.
51:11 - Ken McDonald (Co-host)
I one thing, I use it. Go ahead Jeff.
51:13 - Jeff Massie (Co-host)
Well, I was going to say I use it to not only take documents and check it and you can have it write your prose and you can also I mean, sometimes it gets pretty highfalutin English you know it kind of Flowery, but you can say you know, put it in a standard tone or whatever. And you know it kind of flowery but you can say you know, put it in a standard tone or whatever. And you know you always double check it because it sometimes will take a left turn and you go whoa where. That is not what I said, but it. But it helps with a lot of grammar and vernacular. But the other thing is you can take a document that has several items and you can go summarize this and build me a PowerPoint and it'll throw it in and it's probably 60, 70% there. You got to go in and fix some things and rearrange, but the framework is there and it saves you a bunch of like formatting and laying out. Yeah, I suppose so it's actually pretty handy.
52:05 - Ken McDonald (Co-host)
It does put the commas in the right place. Is it what it does? Put the commas in the right place.
52:14 - Jeff Massie (Co-host)
Yeah, sometimes I mean mean you've got to, you got to double check it. But it's faster to read it and double check it than it is to write it from scratch it depends on whether you're an oxford comma man you call that a powerpoint your window side is showing.
52:27 - Rob Campbell (Co-host)
There you're letting your window.
52:29 - Jeff Massie (Co-host)
That's what.
52:29 - Ken McDonald (Co-host)
It's what I have to use at work now, rob, I just want to clarify, because I didn't hear you cover emphasize this, but I noticed. So rob, in his article, does emphasize this is an in development feature. Use it with care.
52:46 - Jeff Massie (Co-host)
I mean that's true it is still basically all ai at this point yeah, I, I find AI is wrong a lot of times, but a lot of times it gets you partway there and gives you kind of a head start. And I do use it and I will say I cannot talk about where it's used outside of just the normal Office products, sure.
53:09 - Rob Campbell (Co-host)
Make sure your document is backed up before you select it and say rewrite this. Yes, that's fair. Now make sure your document is backed up before you select it and say rewrite this.
53:14 - Ken McDonald (Co-host)
Yes, actually make a copy of your document before selecting and rewriting.
53:21 - Jonathan Bennett (Host)
That would be called backing up.
53:25 - Rob Campbell (Co-host)
Actually make two copies.
53:27 - Jonathan Bennett (Host)
Yeah. The thing I love the most, though, is you can see people and they just have fun with it and they're like why does ai use so many em dashes? And the ai will use em dashes in its response. Can you reword this without using any em dashes? And the ai uses em dashes in its the double dash? Right? That's what an em dash is. For whatever reason, ai loves it and it's like you still use and they oh. I find it endlessly humorous, because the air response is oh, you're right, I did use an em dash in that let me rewrite that without using one the em dash.
53:58
It's like ah, it's hilarious it's.
54:01 - Jeff Massie (Co-host)
Another good one is uh.
54:02 - Rob Campbell (Co-host)
Please summarize my work week in a comedy roast format I yeah, I've had to do things like that, like Like I'll say no, that's not right, try it again. Oh yeah, you're right, I'm not right. And they'll give me the exact same answer. Or sometimes they'll say no, I've had it say this too. It kind of surprised me. It's like no, this is the right answer. I don't know why you don't think it's not right. They'll disagree with me. I'm like no, it's not.
54:32 - Jonathan Bennett (Host)
Pretty dang sure, all right. Well, let's move on from the AI to Kaizen, kaizen, linux and its untimely or timely demise.
54:47 - Ken McDonald (Co-host)
Timely or untimely is a good question, but this week Bobby Barsoff also wrote about this Debian-based toolkit tailored for IT professionals, system administrators and network engineers, offering a suite of tools for diagnostics, maintenance and repair of computer systems and networks. That announced its final update. Now, why do I say final? Well, the release of Ryzen Linux 3.0 also announced the end of the project. In fact, the Kaizen Linux rolling 3.0 release note starts with. I would like to begin this blog post by announcing the end of the Kaizen Linux projects with this latest release. Now, the Kaizen Linux is designed as a live system that can run from a USB stick without installation. It includes utilities for disk management, data recovery, network analysis, system monitoring and hardware testing. Kaizen Linux 3.0 is entirely rebased on the just-released Debian 13 Trixie and running Linux kernel 6.12. Some of the new tools included by default in Kaizen Linux 3.0 include glab. Now this is a command-line interface tool for interacting with GitLab Tekton-CLI. Are you familiar with that one, jonathan?
56:17 - Jonathan Bennett (Host)
No.
56:17 - Ken McDonald (Co-host)
It's a command line tool designed for interacting with Tekton, an open source framework for building continuous integration and delivery for systems on Kubernetes. Another tool is Argo-CD, another tool specifically designed for Kubernetes. Here's one I found interesting Open BAO. It's an open source community-driven fork or vault managed by the Linux Foundation, and then another community-driven infrastructure as cold tool is OpenTAFU. And the last one that I'm going to talk about is ZKS-DKMS, which provides a convenient and robust way to install and maintain open ZFS on Linux systems, particularly when using custom kernels or frequently updating the system kernel. Jeff, there is one that is an updated fork of NeoFetch that I don't know if we've ever covered, so I'm going to save that for later.
57:30 - Jonathan Bennett (Host)
Clever. Yeah, this is interesting. So they did say that it will get security updates for like two years after this. It was one of the things in the article which is more than intel's doing yeah, I mean you gotta keep in mind, though, like it remains to be seen if that will actually happen for the next two years.
57:51 - Rob Campbell (Co-host)
Um, that's all that, that is yeah that's a lot to uh to promise well, I mean, they could get security updates for the next few years. They just might not be timely. Yeah, I suppose we'll give you one a year yeah, well it.
58:04 - Jeff Massie (Co-host)
I looked on distro watch and it shows that for a while they had about a six-month cadence, and then from version 2.3 to 3.0, it was about a little over a year, so it definitely was kind of slowing down a little there.
58:21 - Ken McDonald (Co-host)
Sounds like life might be getting in the way.
58:23 - Jonathan Bennett (Host)
Well, yeah, and that's what he talked about they failed their Six Sigma certification.
58:27
The other thing to keep in mind is this is downstream from Debian 13. And so there are upstream fixes that are going to happen that you can pull, and they even changed some of their tooling to, instead of pointing to the Kaizen update wrapper, it now just it redirects to they call it full upgrade. I'm not super familiar with Debian to know exactly what that referral. Here it's talking about how that this is. This is a less Kaizen thing and it's more just of a Debian to know exactly what that refers to. Here it's talking about how this is a less Kaizen thing and it's more just of a Debian thing. So hopefully you can get updates still without breaking your system.
59:00 - Rob Campbell (Co-host)
Yeah, just got to get updates directly from Debian, so that's just going to until that's in the life.
59:08 - Jonathan Bennett (Host)
Debian 13 will be around for a while.
59:11 - Ken McDonald (Co-host)
And with that full update could possibly mean it'd be easier to update it to Debian 14 if you still are using it at that point.
59:22 - Jonathan Bennett (Host)
Yeah, possibly their whole thing with Kaizen, though, is that it's a USB distro, it's used without any install, and so I would be a little worried to do a full upgrade. It's like it's a USB distro, it's used without any install, and so I would be a little worried to do like a full upgrade between versions on that, because I've had kernels and stuff break without even doing anything fancy and I think trying to do it on a USB stick like this could be asking for trouble.
59:52 - Jeff Massie (Co-host)
You might end up having to do a reboot, more a reformat he's trying to segue, but I was going to say um, one of the things too is I did a story a few shows ago about some of these and you know this wouldn't surprise me. It's the same thing where someone says, oh, we're going to do this great thing, we're putting it out there, and it's like whoa, this is a lot of work. You know, the people start burning out and it just some of these distros just don't, don't last.
01:00:21 - Jonathan Bennett (Host)
Yeah, that's true, and sometimes sometimes the cool thing that they're doing gets picked up by one of the major distros, right, and so that that is fairly useful. When that happens and that's kind of one of the main features of being able to run one of these little tiny distros that you can do that you could try something out. That's really interesting. And yeah, sometimes they get picked up and it becomes the next big thing in Linux and sometimes nobody uses it or maybe nobody wants to maintain it, maybe it was too much work, and just kind of goes away the way it goes.
01:00:51 - Jeff Massie (Co-host)
Sorry, Ken, I wrecked your segue feng shui Indeed.
01:00:57 - Jonathan Bennett (Host)
He was going to ask you about reboots. What is a soft reboot?
01:01:02 - Jeff Massie (Co-host)
So we've all rebooted our machines and probably never thought much of anything about it. You know, and probably never even heard of a soft reboot and probably never even heard of a soft reboot Other. You know something, something goes wrong and with your machine and it's like, yeah, I'm just going to reboot it. You know, and the only, the only option is like, oh, a reboot didn't fix it, okay, I have to power it down for a couple minutes to let everything settle back into its normal position. You know, like some capacitors drain and whatnot before we fire it up. And then, oh, okay, now everything works again.
01:01:34
Well, this story is the opposite of that A reboot that's quicker and smaller than a normal reboot. So sometimes the issue isn't in the kernel or really low level system code, but just in the maybe the desktop manager or the interconnections of the programs that you're running. You know all the user space stuff. Now, in a normal reboot system D starts a clean shutdown, because it does the shutdown and reboot, basically almost the same. It sends out a SIG term which says hey, user land program shut down and a SIG kill to all the programs that didn't listen to the SIG terminate. Basically it's you know, the first is a nice, you know, hey, please shut down. And the second is a yelling. I said shut down, so then it unmounts file systems, unloads drivers all to let the kernel shut down, and finally the reboot signal or shutdown signal is sent to start the booting process or the final shutdown.
01:02:35
Now a soft reboot, or they also call it user land reboot, is just like that concept, except it never hits the kernel or other kernel-based things like a driver. So why do this? Well, they talk about it can save a lot of time and keep your uptime higher. Now it does require you to have SystemD version 254 or higher, so you've got to have at least that version. It does mention in the article that, for example, debian 13, trixie, it's going to support this feature.
01:03:11
So what does it do? Well, when you do a soft reboot, it stops all user space processes, so services, apps, background tasks are all terminated. It reinitializes user space, so the system starts fresh with default services, but it keeps the kernel running, so no hardware or driver reload happens. Now the article makes note of this and it should be noted that if you update the kernel, hardware or drivers, you need to do a full reboot. The soft reboot isn't going to work because the kernel needs a restart. So this is just for things like user space software updates. You know you updated some program you're running and it's like, oh, it messed something else up. Okay, just do it and do a soft reboot, because it wasn't anything in the kernel or lower level drivers that changed.
01:04:05
So how do you do it? Well, like I said, first check your version of systemd and you can use the command systemctl, space, dash, dash version, and that should tell you exactly what version you've got. And if you have the correct version, you can run the command sudo space, systemctl space, soft dash reboot and that's really all there is to it. It's pretty simple and they talk a lot of the reasonings. You do it, you know it's a lot quicker, the uptimes, things like that, and some warnings about. You know, hey, don't update your NVIDIA driver and then think the soft reboot is going to take care of it, because it won't.
01:04:51
Take a look at the article linked in the show notes for a lot more details. They give a lot more positives when to use it when you should do a full reboot. It also has a frequently asked questions section. They have some tutorial stuff you can follow along with and find out. Follow along with and find out. You know, you know running this service and then do this, and so it's definitely, definitely something to take a look at and take a look, and maybe you know you want to set up a alias to quickly soft reboot your system and get it back going and begin at a faster rate.
01:05:30 - Jonathan Bennett (Host)
Yeah, it's. It's interesting to me that Debian 13, they talked in the article Debian 13 will have this out of the box and they have. It looks like a soft reboot, alias my Fedora system. I just checked. It's new enough. It does indeed have the system CTL soft reboot. Not going to do it now, but I will have to try that because it sounds very interesting and I'd like to see what happens I actually tested it out an hour before this show and I ended up having to reboot you have to do a hard reboot to get things back that's funny, but what version were you running system?
01:06:04 - Ken McDonald (Co-host)
I've got, I've got 257 257 actually.
01:06:09 - Rob Campbell (Co-host)
Oh, oh 2504 which distro is that?
01:06:13 - Jonathan Bennett (Host)
ubuntu studio 2504 yeah I will give it a try and report back to it, because what's?
01:06:20 - Ken McDonald (Co-host)
interesting is I just checked in my uh open seuss tumbleweed that I've got in a VM is running 254.7.
01:06:33 - Jonathan Bennett (Host)
Yep, All right. Well, let's get to some command line tips. We'll talk later about the soft reboot thing, but for now let's move to some other command line tips, and Rob is going to go first and he's got something else that is very system d uh adjacent.
01:06:54 - Rob Campbell (Co-host)
I'm going first I'm pretty sure jeff already kicked off the command line tips early with that last article no, no see, that was a story and this is a command line tip. It doesn't matter that they're both actually command line it was a command line tip hidden as a story all, I'm just oozing information.
01:07:11
Sorry, all right. So my command line tip is Systemd-Manager-2e. This is a 2e or a text user interface to manage your Systemd. It's similar for Windows users If you go into the Task Manager, go into Services and see what's running and make adjustments there. It's similar to that For those watching.
01:07:42
I'm going to run that Systemd-manager-tuey. All right, here we go and on here you can see your services. You know I have appArmorservice. Shows that that's active, the state is enabled, it's loaded, it has a description, you have inactive ones and then at the bottom it shows what you can do. So I you know if I do X, that's going to stop it. If I do S, that's going to start it. I can D to disable it. Let's re-enable that. And if I do C, that's going to take me over to the file itself.
01:08:20
So if you want to learn a little bit more about the systemd files, it tells me this one's an user lib, systemd system, app, armorservice, and I can look through here and look at that whole file and kind of see how it works. If I hit over it's going to show me the app armorservice log. I'm going to Q to go back. So here you can with this systemd-manager-tui. It's a long type. Maybe you want to do an alias to something shorter, but with this you can manage your services that are running. Check out the show notes. It's on GitHub, matthias-git, so you can check out the show notes, find the link and use the system manager too, if you want.
01:09:16 - Jonathan Bennett (Host)
Very cool, alright, I think Ken is down next. Ken had an idea a couple of days ago yesterday about something a little off the wall, but I thought it was super interesting. Ken, you're going to do a dissection, right?
01:09:32 - Ken McDonald (Co-host)
Yes, the first command line tip that Rob was thinking about doing this week used a curl install command for installing it, so I'm going to show you how you can dissect it. Let me go ahead and transition to the command line so you can see what I'm doing Actually, to my OpenSUSE VM that I'm running here Now. In our show notes I've gone ahead and linked to what Rob was originally going to talk about and I'm going to go ahead and pull that. Let's try this again there. Pull up the GitHub location for the application. It's an application for synchronizing Flatpak applications between Linux devices through Git. But what he has is he's got the commands he's providing to install it are using curl and piping a I'm assuming a bash script from looking at this through bash Now, instead of just doing a copy and going straight to the terminal, I'm going to recommend going into k and in this particular case, I'm going to go ahead and copy it in twice so that I can demonstrate how we can look at what this is doing, first by getting rid of the pipe into Bash and then coming over to the options that curl's using, which tells curl to be silent, show errors and to follow the location if it changes.
01:11:21
So I'm going to keep that follow location, but I'm going to put in lowercase v for verbose, lowercase I for information. Actually I can't remember off the top of my head that what that one does, but we're going to use it and we're going to go to a command line.
01:11:43 - Jonathan Bennett (Host)
Lowercase I is include. It includes response headers in the output.
01:11:47 - Ken McDonald (Co-host)
Yeah, that's what it is and we're going to paste it in there. And since it's not going into bash, where do you think it's going to go? Standard output, which, unless it's got some weird coding, shouldn't do anything, right?
01:12:06 - Jonathan Bennett (Host)
Indeed.
01:12:08 - Ken McDonald (Co-host)
And from the looks of it it didn't do anything too dangerous. If it did, we could use that soft reboot that Jeff talked about and if we scroll back up we can see where the host is and that the host is using port 443. Apparently it doesn't support IPv6. And it does support using secure handshaking, because you've got the TLS handshake, how it's changing ciphers and all. I'm sure Steve could get a lot more information. Steve Gibson could get a lot more information out of all of this for you. He talks about the security levels.
01:12:49 - Jonathan Bennett (Host)
The certificate stuff yeah.
01:12:50 - Ken McDonald (Co-host)
Yep, and then here's what I found interesting this is the server's NGINX, but then it goes on down and then you have the beginning of the bash file and the first thing we see is he creates some variables and from the commands themselves, I'm going to assume they're variables that he can use at the bash prompt to create change colors. Then the next one is where he tests for a variable, experimental, and if it's not there already, we'll flag it defaults. Now, if you remember when we copied it, there was one that does have the experimental equals true, which is for if you want to try the experimental version. And then he goes through and if you see anything that has colon, open and close, colon, parentheses, parentheses with the curly, bracket yeah curly brackets.
01:14:10
I always stumble on that one, what to call it? I know what it is, but basically that's telling you you're starting a function and he's got a couple of functions that he creates and the interesting names are date, which is interesting. Got a couple of functions that he creates and the interesting names are date, which is interesting. He takes it and uses that as a function name. I'd be careful of that. Then wait, with spinner loading operation, and then one called experimental, and as we look at each of the functions we'll see that they just basically prints, does a print command, and you could actually copy that into another terminal and do it by itself, which I've got another terminal already open here. So if we just highlight that and copy it and if you are wondering how I'm doing a copy and paste from one to the other, it's control shift C in my terminal mm-.
01:15:23
Then I can just type date. So now, that's what it does.
01:15:35 - Jonathan Bennett (Host)
Yeah.
01:15:36 - Ken McDonald (Co-host)
And then the way it was spinning. You can't really do that because it's got some local variables that it processes based on what's fit into it. It looks like, and as you look through the operation you'll see it's got sudo commands. And remember what we said about the sudo commands in a bash script.
01:16:02 - Jonathan Bennett (Host)
No, what did we say in?
01:16:03 - Ken McDonald (Co-host)
a bash script? No, what did we say? That if you just do a sudo command, by itself it's going to prompt you for your password every time. I'm going to show you how he takes care of that when we get a little further down here. He's got that also. So once we get past the functions he's created, he does a test for who am I, to see if you're root already and what does it do if you're not root?
01:16:36 - Jonathan Bennett (Host)
It's running a sudo command.
01:16:38 - Ken McDonald (Co-host)
With a dash v. So it's saying if, basically, if that doesn't elevate you, then it's going to fail and it's he sends out the command fail to elevate privileges and the exit one. Just exit completely out of the script. Script If you enter your password and it passes, then it passes that and goes on to this case command which has two options true or false. By default. If you don't have the experimental opt entered with equals, true up, if we go back, it automatically set it defaults mm-hmm which is why I did that back there, so that it's going to default to the faults where it is going through.
01:17:45
This test is gonna look to see if it's already installed, and it's interesting what he does. If you go, I'll go back to the operations one to show you in a minute. But if it's already installed, it sends it's already installed it. It sends echoes to the. Your terminal. Flat sync is already installed, checking for updates, and then it comes down.
01:18:16
And this here's what's interesting is you can, with my terminals, I can go in here and copy that link address and actually paste it in here. I don't want to paste and go because I know for a fact that that's just going to take me to a 404. But I can go back to releases and that will bring up the releases page and it shows that the latest release is 1.8.1. And then it pipes that web page through grep, looking for location, and then pipes that through awk, where it does a printf that looking for that, and pipes that in through transition. Or yeah, translate that you covered a couple of weeks ago, yeah, of weeks ago.
01:19:21
Yeah, basically what that does is it takes, catches the 1.8.1 and removes the dots and the v from it and then has that t which sends it into a file which he names remote. And then he's doing a similar option for whatever you have installed locally. And then he comes down and uses cat to compare the information in the files remote and local, which are should be numbers and see which numbers higher. If the remote is less than local, then nothing new. And you notice the use of the shred command, was it you, rob, that covered that a while back? It's been a long time ago.
01:20:15 - Rob Campbell (Co-host)
Yeah, I think so.
01:20:17 - Ken McDonald (Co-host)
So that he can just delete those files off your system and you'll never know they were there. Those files off your system and you'll never know they were there. Which is convenient because it means you don't have to go in and clean up after them.
01:20:31 - Jonathan Bennett (Host)
Just hope you don't have anything named remote or local when you start running this.
01:20:35 - Ken McDonald (Co-host)
Yeah, and the current directory. So I would recommend do this from a temp directory. Do any kind of curl commands from a temp directory? Yeah, just for that reason.
01:20:47 - Jonathan Bennett (Host)
Yeah, really. So best practice here. He really should go stash those inside slash temp not in the current directory.
01:20:54 - Ken McDonald (Co-host)
Right, and so if you want to submit that to him as a possible patch, you can. Let's see possible patch, you can. And then he comes down. He's going through all that and you'll notice that with the faults he's calling operation update or the operation install and pipes the output that would go to standard out into dev null. So again you're not seeing anything. But he's also got the single ampersand so it runs as a background option.
01:21:42
Then he does wait with spinner loading install using the version variable that he creates up here. And if we go back to the operational one, you'll see the first thing it does is it uses wget to quietly release, download that version in here. We've got the version put there, which is why I backed up to the releases, so I could just pull up. Because if you do just the download, it does. If you do just the download, it does give you a 404, because there's not an actual download page to pull up and he's downloading a tar file and then he's extracting that tar file. And you're right, jonathan, we probably could do a patch update to them to update this. So it's all done in the temp file. Yeah, temp folder, because this is all in whatever folder you're running it from by default.
01:22:55 - Jonathan Bennett (Host)
Yeah, just a little messy.
01:23:00 - Ken McDonald (Co-host)
If nothing else at the beginning, put it to cd slash temp. Yeah, if nothing else at the beginning, put it to CD slash temp. So everything's done from there, especially since, if you look here, the install is doing it as root. Or Remember when I covered that commands back? I think episode 179? Remember when I covered that command back? I think episode 179? This is one of those cases where the install command would be useful but he's telling it to install into flatsync user bin. Now let's see if I can find that location.
01:23:46
There's one thing I found interesting that he does as a test. Oh right, here in the experimental he does a pseudo RMRF. That would catch my thing. I definitely want to know what that was doing. Yeah, because here he's using it. I definitely want to know what that was doing.
01:24:11
Yeah, because here he's using it for user local bin and share, in other words, user local bin or user share, flat sync. And he's actually just removing that because that's actually a folder that he creates. Because after he does that's when he does the sudo install into root flat sync and he goes to local bin, flat sync. But he also copies after he's compiled the application or downloaded the open extracted from the tar file also copies Flatsync app into user share Flatsync and then changes the ownership and modifies the attributes to it, which is why he needs your password, because he's not going to be able to do that otherwise, which is nice to know, but at least you're able to go in and look at this bash script to see what he's doing and verify that he's not just saying having you do sudo rm-rf slash root.
01:25:30 - Jonathan Bennett (Host)
Yeah, I'm actually opening an issue right now, as we have this discussion. It's like you should really not do this in the current directory.
01:25:38 - Rob Campbell (Co-host)
So I actually did a much truncated version of the install. He actually did a much truncated version of the install Rather than using the curl install that he had, since the actual program itself is just a rather short script itself. I just downloaded the script and put it where I need it and ran that I looked at it and ran that.
01:26:00 - Ken McDonald (Co-host)
Now, with this, you can actually use this to modify the script and run it locally by just redirecting, instead of piping through bash, redirecting it into a locally stored file. Go in and make the modifications you want to install it where you want, yep.
01:26:18 - Jonathan Bennett (Host)
Yep, and then multiple times. The nice thing about this script is it's short and it doesn't use any really weird bashisms like I've. I've seen some of these scripts that you just look at and it's like what, what is this doing?
01:26:32 - Rob Campbell (Co-host)
this one is pretty, pretty, uh, parsable um yeah, and if you look at the script itself that's even shorter because, like ken, has the install part of the script that he went through.
01:26:43 - Jonathan Bennett (Host)
Yep, yep, absolutely. Uh, yeah, very cool, very useful to sort of step through. How do you, how do you do this to audit one of those and how do you read one of those? Um, yeah, super useful. Um, jeff is up next with the timeout. We're putting him in timeout. What are we putting in timeout, jeff?
01:27:10 - Jeff Massie (Co-host)
This is going to be a short one. Timeout's a command. That's part of core utils and, like it sounds, it runs a command until a time limit is reached. So one of the uses is to kill a script or commands which could hang. So normally you have a script that should be done in one minute.
01:27:24
Well, if you have a timeout of like three minutes because something is wrong and it's going to keep doing what it's doing, waiting for something else that isn't working or isn't running or whatever, this is a way to just keep it from bogging down your system or running forever, from bogging down your system or running forever. The syntax is simply timeout space the time you want to wait. Space, the command you want to run space, and if you have any arguments you need to add. Now, if someone's thinking, oh, this would go great with the until command, you're sort of correct. You can't use timeout with until directly, because timeout only works with commands and until is a built-in bash keyword. Now the article does go on to show you how you do it. For example, you do timeout space, maybe 30 seconds. Space bash space, dash C and then quote, and then your until command and then close quote. So basically you're wrapping it in that command line. It's like a mini script inside that command line.
01:28:40 - Jonathan Bennett (Host)
That's the way you can use it, launching it inside another bash process, because you need. You need a process timeout, needs a process to watch.
01:28:48 - Ken McDonald (Co-host)
Yes, exactly would a function work as well for that uh no I don't think so I don't think. I don't think a function creates a new bash process so you'd have to use bash to run to load that function and then run it.
01:29:05 - Jonathan Bennett (Host)
I suspect, so I haven't tried it, but I'm pretty sure that's the way that would go. Pretty sure, all right.
01:29:12 - Jeff Massie (Co-host)
And I'll say in the article take a look in the show notes. It's got code snippets. They got things you can follow along with some best practices to use when you use it. You know, like making sure you have an error code or exit code, so you know what happened when it, when it finishes, and you know a lot, a lot more details in there. But that's, that's the basics of it, so maybe you can incorporate it into your next scripting project. Yeah, absolutely.
01:29:38 - Jonathan Bennett (Host)
I am quickly looking for yeah, here we go, this will work. I am quickly looking for. Yeah, here we go, this will work. I'm going to share my screen because I want to show you guys something and I want some free advice. So let's see, here we go.
01:30:04
If I do an LS, I've got colors and I like my colors. But if I do an LS and then pipe it through grep, pipe it through grep, grep takes over the colors, so it will. Then it wants to highlight. Here are the things that I found. Here are the matches.
01:30:25
Well, what if I want those original colors? Well, you can tell. You can tell grep, um, I think it's dash, dash color. Uh equals none, if I remember correctly, right. So you get this and no colors and no colors, except it also does not pass through the original colors.
01:30:51
And I did a bit of work with this um I. I tried to. Uh, I saw some suggestions like maybe you could pipe it into t and that would do it. Nope, that doesn't do it. Um, pipe it into into cat, pipe it into echo.
01:31:05
None of these things do the thing that I want it to do, and so I am asking the hive mind how do you run grep and get your original colors to flow through so that you can actually see it. I have not figured it out. I really suspect that there must be a way to do it, but I have not found it yet, and so this is my command line tip. It is actually begging our audience. Please tell me. How in the world do you run grep and get your original colors to show up? Does anybody know how to do this? Is there a way to do this, or does somebody just need to write a replacement for grep? Or does somebody just need to write a replacement for grep? I'm already seeing one suggestion that I'll play with after the show is done, and when we figure it out together, we'll come back and we'll make that my command line tip for next week.
01:31:54 - Rob Campbell (Co-host)
You're doing this a little backwards, jonathan. Pretty soon we're all just going to be okay so how do we do that?
01:32:03 - Jonathan Bennett (Host)
It's called interactive yeah, interactivity. Be okay, it's called interactive yeah, interactivity. It's great, it's the new thing.
01:32:09 - Rob Campbell (Co-host)
We're all just going to be asking for tips. All right, I'm out of tips, so how do I do this? Guys Just be asking a new question every week.
01:32:19 - Jonathan Bennett (Host)
Yeah, we'll see.
01:32:23 - Ken McDonald (Co-host)
So you already tried the dash dash. Color equals auto.
01:32:29 - Jonathan Bennett (Host)
I am pretty sure I have tried that. Yes, I think that just does the color highlighting as it was doing.
01:32:37 - Jeff Massie (Co-host)
Let's see. For those that are only listening to audio, I can tell Ken is thinking hard right now on this. He's a man on a mission. He is focused trying to figure this out, so we'll see what he comes up with.
01:32:51 - Rob Campbell (Co-host)
Ken will have the tip for this one.
01:32:56 - Jonathan Bennett (Host)
Yeah, no, it's mine, it's mine if we figure it out. It is totally mine, not yours.
01:33:02 - Rob Campbell (Co-host)
If Ken figures it out, it's his, I guess, and not yours. Ken figures it out, it's his.
01:33:04 - Jonathan Bennett (Host)
I guess that's fair.
01:33:06 - Rob Campbell (Co-host)
If he doesn't bother telling you yeah.
01:33:09 - Jonathan Bennett (Host)
Line buffer does not seem to do it either, by the way. Uh, unless that also needs to be color None, let's see.
01:33:19 - Rob Campbell (Co-host)
Oh, we're going to have to start a Kickstarter for this one.
01:33:29 - Jonathan Bennett (Host)
Go fund me to figure out how to make this work, oh goodness, all right. Well, that is the end of the show. We'll be back next week, hopefully, with the answer to this question. Uh, until then, I'm gonna let each of the guys get in the final word if they want to on anything. And, uh, we will let Rob go first, because, why not?
01:33:44 - Rob Campbell (Co-host)
Because that's what we do. So, as always, if you want to get more of me, you can come connect with me at robertpcampbellcom. On that website, you can see my resume, which I think I need to update stuff about me. You can see links to my LinkedIn, my Twitter, my Blue Sky, my Mastodon and a spot to donate a copy to me, or, if you want to donate to one of the other guys, you can also do it there. Um, as some of you listeners know, I finally made a trip and met uh met jeff massey in person a few weeks ago and I paid up the coffees that I owed him, along with an advance on the next coffees. So currently, jeff owes me coffees. So if you want to get that squared up, you can just click right there and donate to pay off Jeff's debt to me.
01:34:47 - Jonathan Bennett (Host)
Oh, that's great. All right, Jeff.
01:34:51 - Jeff Massie (Co-host)
You know don't really have anything. So it's Poetry Corner. The switches are down. Have you checked the spanning tree? The tree is on fire. Have a great week, everybody. Oh.
01:35:05 - Jonathan Bennett (Host)
I've not messed much. The spanning tree. The tree is on fire. Have a great week everybody. Oh, I've not messed much with spanning tree, but I get the joke. I know what it is, All right.
01:35:15 - Ken McDonald (Co-host)
And Ken, anything you want to plug blog to a post that uh, lx or a member, bob, posted about. Today we're celebrating devian's two to the fifth birthday.
01:35:30 - Jonathan Bennett (Host)
This is we don't do math on this show or or 0x 20 years, 20 in hexadecimal uh very nice.
01:35:39 - Ken McDonald (Co-host)
Or 32 in decimal, oh, and, by the way, I do want to. Or 32 in decimal, oh, and, by the way, I do want to demonstrate the soft reboot.
01:35:50 - Jonathan Bennett (Host)
Oh and there goes, ken, thankfully no.
01:35:56
That's the way to close out the show Indeed Very cool. All right, thank you guys for being here. I appreciate it. Um, if you want to find more of me, you can check it out at hackaday hackadaycom. That is where my security column goes live on fridays. That's where the new home of floss weekly is at these days and we have a lot of fun over there. So if you want more of me, you can come check it out. If you want more twit goodness, there are plenty of other shows, but there's also Club Twit. If you're not part of the club, you should go take a look. It's not much more than the price of a cup of coffee per month and you get ad-free access to all the shows, some behind the scenes look and more. We appreciate everyone that is here, those who get us live and on the download, and we will be back and we'll see you next week on the Untitled Linux Show.