We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Using RPMs for systemd development

00:00

Formal Metadata

Title
Using RPMs for systemd development
Title of Series
Number of Parts
44
Author
License
CC Attribution 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language
Producer

Content Metadata

Subject Area
Genre
Abstract
Using RPMs can be very advantageous during development of systemd on Fedora. In order to make that viable, we need to build them from a git checkout and have the ability to use incremental builds. I will explore tooling I've been using and building to use RPMs during systemd development. I'll quickly cover the motivation and advantages while I manage to build one during a lightning demo.
Computer animation
System programmingSynchronizationLaptopFibonacci numberLink (knot theory)Physical systemMathematicsSource codeVirtual machineMultiplication signSoftware developerComputer animation
System programmingComputer configurationDirectory serviceDialectBootingExecution unitContinuum hypothesisMaxima and minimaMusical ensembleBuildingMathematicsComputer fileComputer animation
System programmingConvex hullOSI modelExecution unitLocal ringInstallation artPhysical systemSynchronizationFlagSoftware testingSource codeComputer animation
Single sign-onSystem programmingInfinite conjugacy class propertyConvex hullSynchronizationQuadrilateralAnnulus (mathematics)Software testingSource codeComputer animation
Error messageSystem programmingLink (knot theory)Thomas KuhnLibrary (computing)Bit rateFingerprintMaß <Mathematik>Maxima and minima2 (number)Source codeComputer animation
Computer iconSystem programmingQuadrilateralAiry functionSynchronizationLine (geometry)Random numberCellular automatonLaptopDampingGradient1 (number)Physical systemRevision controlMathematicsLocal ringCache (computing)TimestampNetwork topologySource codeComputer animation
Hybrid computerQuadrilateralComputer wormGamma functionSynchronizationLaptopFormal verificationScripting languageSystem programmingLink (knot theory)Random numberMenu (computing)MIDIMathematicsSource codeComputer animation
System programmingWebsiteLattice (order)Computer animation
Transcript: English(auto-generated)
Hi. So I'm going to talk about using RPMs to develop systemd to the development. And you might think it takes a long time to build an RPM, and I'm going to try to build one from source here.
And it's going to take a long time. Meanwhile, I want to try to write a change to systemd. And let's say I want to change it to say, we're at all systems go.
And I want to test my change. So I'm going to install it on this machine. So I'm going to run a local build. And this is actually going to be an incremental build. You can see it's already in step two out of three, compiling the only file that was changed.
And now we're packing RPMs, stripping, testing. Wow, we're running tests. 530 tests.
They passed. 12 were skipped. And almost there. Saving the RPMs. And this took 48 seconds. Now we can actually test this.
Well, the RPMs are in my RPM build there. Oh, I had older ones there. But it doesn't matter, because the new ones have a later timestamp used for the release. So I can simply use RPM-F to install the latest version of the RPMs.
And it's going to ignore the RPMs I don't have on my system. And now, if I look at the journal, I'll see that my change went through.
So my change went through. And why use RPMs? So one reason is I can check quickly which version am I on.
And OK. And I want to know what was this based on. And I can see this was based on this commit. And the tree was dirty, because I forgot to commit. But if I had committed, I could go back to the exact same commit where I was. And if for some reason I don't want this anymore, I can simply use my local cache, downgrade system D.
So if I did something silly and it didn't work,
I can just go back to the original version. And my change was undone. And that's it. Thank you.
OK. Yeah. Sure. Thank you, Philippe.