Bits from Debian: DebConf25 Registration and Call for Proposals are open

294
. This version includes the following changes:
[ Chris Lamb ]
* Correct longstanding issue where many ">"-based version tests used in
conditional fixtures were broken due to the lack of a __gt__ method.
Thanks, Colin Watson! (Closes: #1102658)
* Address a long-hidden issue in the test_versions testsuite where we weren't
actually testing ">" as it was masked by the tests for equality in the
testsuite.
* Update copyright years.
Thanks to my CRANberries, there is a diffstat report for this release. Comments and suggestions about AsioHeaders are welcome via the issue tracker at the GitHub repo.Changes in version 1.28.2-1 (2025-04-08)
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. If you like this or other open-source work I do, you can now sponsor me at GitHub.
debvm
uploaded, by Helmut Grohne
debvm is a command line tool for
quickly creating a Debian-based virtual machine for testing purposes. Over time,
it accumulated quite a few minor issues as well as CI failures. The most
notorious one was an ARM32 failure present since August. It was diagnosed down
to a glibc bug by Tj and Chris Hofstaedtler
and little has happened since then. To have debvm
work somewhat, it now
contains a workaround for this situation. Few changes are expected to be
noticeable, but related tools such as apt
, file
, linux
, passwd
, and
qemu
required quite a few adaptations all over the place. Much of the
necessary debugging was contributed by others.
unstable
./usr
-move fallout though little was actually
attributable. He also NMUed systemd
unsuccessfully.staticweb
, which is effectively
a fancy name for a couple of Puppet-managed servers that run Apache httpd to
serve static web pages and have a bunch of systemd timers running rsync
to
ensure they're serving the same content. It works really well and I use it for
things ranging from my website or whyisbetabroken.com to things like my
internal apt repository.
Now, there are two ways to get new content into that mechanism: it can be
manually pushed in from e.g. a CI job, or the system can be configured to
periodically pull it from a separate server. The latter mechanism was initially
created so that I could pull the Debian packages from my separate reprepro
server into the staticweb setup. It turns out that the latter makes a really
neat method for handling other dynamically-generated static sites as well.
So, for my "where is Taavi at" site, I ended up writing the server part in
Go, and included an rsync server using the gokrazy/rsync package. Initially I
just implemented a static temporary directory with a timer to regularly update
the HTML file in it, but then I got an even more cursed idea: what if the HTML
was dynamically generated when an rsync client connected to the server? So I
did just that.
For deployment, I slapped the entire server part in a container and deployed it
to my Kubernetes cluster. The rsync server is exposed directly as a service
to my internal network with no authentication or encryption - I think that's
fine since that's a read-only service in a private LAN and the resulting HTML
is going to be publicly exposed anyway. (Thanks to some DNS magic, just
creating a LoadBalancer
Service object with a special annotation is enough to
have a DNS name provisioned for the assigned IP address, which is neat.)
Overall the setup works nice, at least for now. I need to add some sort of a
cache to not fetch unchanged information from the API since for every update.
And I guess I could write some cursed rsyncd reverse proxy with per-module
rules if I end up creating more sites like this to avoid creating new
LoadBalancer services for each of them.
Note that for this last test I picked the largest word list I had on my machine (dict/bokm l) as a fairly random work list and not because it is useful for cracking my particular use case from a few months ago. As usual, if you use Bitcoin and want to show your support of my activities, please send Bitcoin donations to my address 15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b.Session..........: hashcat Status...........: Quit Hash.Mode........: 14600 (LUKS v1 (legacy)) Hash.Target......: hashcat.luks Time.Started.....: Tue Apr 8 23:06:08 2025 (1 min, 10 secs) Time.Estimated...: Tue Apr 8 23:12:49 2025 (5 mins, 31 secs) Kernel.Feature...: Pure Kernel Guess.Base.......: File (/usr/share/dict/bokm l) Guess.Queue......: 1/1 (100.00%) Speed.#1.........: 2821 H/s (8.18ms) @ Accel:128 Loops:128 Thr:32 Vec:1 Recovered........: 0/1 (0.00%) Digests (total), 0/1 (0.00%) Digests (new) Progress.........: 0/935405 (0.00%) Rejected.........: 0/0 (0.00%) Restore.Point....: 0/935405 (0.00%) Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:972928-973056 Candidate.Engine.: Device Generator Candidates.#1....: A-aksje -> fiskebil Hardware.Mon.#1..: Temp: 73c Fan: 77% Util: 99% Core:2625MHz Mem: 456MHz Bus:16
257.10user 47.18system 1:40.21elapsed 303%CPU (0avgtext+0avgdata 416408maxresident)k 66904inputs+1519912outputs (74major+8154395minor)pagefaults 0swaps 222.15user 24.17system 1:13.80elapsed 333%CPU (0avgtext+0avgdata 416192maxresident)k 5416inputs+0outputs (64major+8030451minor)pagefaults 0swapsHere is building Warzone2100 on the z640 and the z840:
6887.71user 178.72system 16:15.09elapsed 724%CPU (0avgtext+0avgdata 1682160maxresident)k 1555480inputs+8918768outputs (114major+27133734minor)pagefaults 0swaps 6055.96user 77.05system 8:00.20elapsed 1277%CPU (0avgtext+0avgdata 1682100maxresident)k 117640inputs+0outputs (46major+11460968minor)pagefaults 0swapsIt seems that the refpolicy package can t use many more than 18 cores as it is only 37% faster when building with 44 cores available. Building Warzone is slightly more than twice as fast so it can really use all the available cores. According to Passmark the E5-2699A v4 is 22% faster than the E5-2696 v3. I highly recommend buying a z640 if you see one at a good price.
campus
and tlali
, and one computer pending installation, ollin
. The
credit for their names is not mine.
campus
: A mighty SPARCstation
5! Because it was the
main (and for some time, the only!) server in our campus.tlali
: A regular PC used as a Linux server. Tlali means something
like lands in n huatl, the prehispanic language spoken in central
Mexico. My workplace was Iztacala, which translates as the place
where there are white houses ; tlali and cali are related words.ollin
: was a big IBM RS/6000 system running AIX. It came to us,
probably already obsolete, as a (useless) donation from Fundaci n
UNAM; I don t recall the exact model, but it looked very much like
this one. Ran on
AIX. We had no software for it, and frankly never really got it to
be productive. Funnily, its name Ollin means movement in N huatl.
I added some servers to the lineup during the two years I was in Iztacala:tlamantli
: An Alpha
21164 server that doubled
as my desktop. Given the tradition in Iztacala of naming things in
N huatl, but trying to be somewhat funny, tlamantli
just means a
thing; I understand the word is usually bound to a quantifier.tepancuate
: A regular PC system we set up with OpenBSD as a
firewall. It means wall in N huatl.ajusco
, managed by
V ctor, named after the mountain on whose
slopes our campus was). But my only computer there was:
shmate
: , meaning old rag in yiddish. The word shmate is used like
thingy, although it would usually mean old and slightly worn-out
thingy. It was a quite nice machine, though. I had a Pentium 4 with
512MB RAM, not bad for 2003!mosca
: is my desktop. It has changed hardware several times (of
course) over the years, but it s still the same Debian Sid install I
did in January 2005 (I must have reinstalled once, when I got it
replaced by an AMD64). Its name is the Spanish name for the common
fly. I have often used it to describe my work, since I got in the early
1990s an automated bilingual translator called TRANSLATE
; it came on
seven 5.25 floppies. As a teenager, I somehow got my hands on a copy,
and installed it in my 80386SX. Fed it its own README to see how it
fared. And the first sentence made me burst in laughter: TRANSLATE
performs on the fly translation TRADUCE realiza traducci n sobre la
mosca . Starting then, I always think of on the fly as sobre la
mosca . As Groucho said, I guess Time flies like an arrow, but
fruit flies like a banana.lafa
When I got there, we didn t have any servers; for some time, I
took one of the computer lab s systems to serve our web page and
receive mail. But when we got some budget approved, we bought a
fsckin-big server. Big as in four-rack-units. Double CPUs (not
multicore, but two independent early Xeon CPUs, if I m not
mistaken. Still, it was still a 32 bits system).
(lafa
) is a
big, more flexible kind of Arab bread than pita; I loved it when I
lived in Israel. And there is an album (and song) by
Teapacks, an Israeli group I am very
fond of, hajaim shelja belafa (your life in a lafa), saying, hey,
brother! Your life is in a lafa. You throw everything in a big
pita. You didn t have time to chew, you already swallowed it .joma
: Our firewall.
means wall in Hebrew.baktun
: lafa
was great, but over the years, it got old. After many
years, I finally got the Institute to buy a second server. We got it in
December 2012. There was a lot of noise around then because the world
was supposed to end on 2012.12.21, as the Mayan calendar reached a
full long cycle. This long cycle is called /baktun/. So, it was fitting
as the name of the new server.teom
: As lafa
was almost immediately decomissioned and turned into
a virtual machine in the much bigger baktun,
, I wanted to split
services, make off-hardware backups, and such. Almost two years later,
my request was approved and we bought a second server. But instead of
buying it from a regular provider, we got it off a stash of machines
bought by our university s central IT
entity. To my surprise, it had the exact same
hardware configuration as baktun
, bought two years earlier. Even the
serial number was absurdly close. So, I had it as baktun
s long-lost
twin. Hence,
(transliterated as teom
), the Hebrew word for
twin. About a year after teom
arrived to my life, my twin children
were also born, but their naming followed a completely different logic
process than my computers pato
: The earliest system I had that I remember giving a name to. I
built a 80386SX in 1991, buying each component separately. The box had
a 1-inch square for integrators to put their branding And after some
time, I carefully printed and applied a label that said Catarm quina
PATO (the first word, very small). Pato (duck) is how we d call a
no-brand system. Catarm quina because it was the system where I ran
my BBS, CatarSYS (1992-1994).malenkaya
: In 2008 I got a 9 Acer Aspire One
netbook
(Atom N270 i386, 1GB RAM). I really loved that machine! Although it was
quite limited, it was my main computer while on the road for almost
five years. malenkaya
means small (for female) in Russian.matlalli
: After malenkaya
started being too limited for my regular
use, I bought its successor Acer Aspire One
model. This
one was way larger (10.1 inches screen) and I wasn t too happy about
it at the beginning, but I ended up loving it. So much, in fact, that
we bought at least four very similar such computers for us and our
family members. This computer was dirt cheap, and endured five further
years of lugging everywhere. matlalli
is due to its turquoise color:
it is the N huatl word for blue or green.cajita
: In 2014 I got a beautiful Cubox i4
Pro
computer. It took me some time to get it to boot and be generally
useful, but it ended up being my home server for many years, until I
had a power supply malfunction which bricked it. cajita
means little
box in Spanish.pitentzin
: Another 10.1 Acer Aspire One (the last in the lineup; the
CPU is a Celeron 877, so it does run AMD64, and it supports up to 16GB
RAM, I think I have it with 12). We originally bought it for my family
in Argentina, but they didn t really use it much, and after a couple of
years we got it back. We decided it would be the computer for the kids,
at least for the time being. And although it is a 2013 laptop, it s
still our everyday media station driver. Oh, and the name pitentzin
?
N huatl for /children/.tliltik
: In 2018, I bought a second-hand Thinkpad X230. It was my
daily driver for about three years. I reflashed its firmware with
CoreBoot, and repeated the experience for seven people IIRC in
DebConf18. With it, I learned to love the Thinkpad keyboard. Naturally
for a thinkpad, tliltik
means black in N huatl.uesebe
: When COVID struck, we were all sent home, and my university
lent me a nice recently bought Intel i7 HP laptop. At first, I didn t
want to mess up its Windows install (so I set up a USB-drive-based
installation, hence the name uesebe
); when it was clear the lockdown
was going to be long (and that tliltik
had too many aches to be used
for my daily work), I transferred the install to its HDD and used it
throughout the pandemic, until mid 2022.bolex
: I bought this computer for my father in 2020. After he passed
away in May 2022, I took his computer, and named it bolex
because
that s the brand of the 8mm cinema camera he loved and had since 1955,
and with which he created most of his
films. It is really an entry-level machine,
though (a single-core, dual-threaded Celeron), and it was too limited
when I started distance-teaching again, so I had to store it as an
emergency system.yogurtu
: During the pandemics, I spent quite a bit of time fiddling
with the Raspberry Pi family. But all in all, while they are nice
machines for many uses, they are too limited to be daily drivers. Or
even enough for taking i.e. to Debconf and have them be my conference
computer. I bought an almost-new-but-used ( 2 year old) Yoga C630 ARM
laptop. I
often brag about my happy experience with it, and how it brings a
reasonably powerful ARM Linux system to my everyday life. In our last
DebConf, I didn t even pick up my USB-C power connector every day; the
battery just lasts over ten hours of active work. But I m not here
doing ads, right? yogurtu
naturally is derived from the Yoga brand
it has, but is taken from Yogurtu
Ngh , a fictional
character by the Argentinian comical-musical group Les
Luthiers, that has marked my life.misnenet
: Towards mid 2023, when it was clear that bolex
would not
be a good daily driver, and considering we would be spending six months
in Argentina, I bought a new desktop system. It seems I have something
for small computers: I decided for a refurbished HP EliteDesk 800 G5
Mini
i7
system. I picked it because, at close to 18 18 3.5cm it perfectly fits
in my DebConf18 bag. A laptop, it is clearly not, but it can easily
travel with me when needed. Oh, and the name? Because for this model,
HP uses different enclosures based on the kind of processor: The i3
model has a flat, black aluminum top But mine has lots of tiny
holes, covering two areas of roughly 15 7cm, with a tiny hole every
~2mm, and with a solid strip between them. Of course,
(misnenet
, in Hebrew) means strainer.boot.img
to boot it.
Flashing the factory image
If you still have Android on the device you can skip this step.
You can get Android 12 from
developers.google.com. I've
downloaded sargo-sp2a.220505.008-factory-071e368a.zip
. Then put the
device into Fastboot mode (Power
+ Vol-Down
), connect it to your
PC via USB, unzip/unpack the archive and reflash the phone:
unpack sargo-sp2a.220505.008-factory-071e368a.zip
./flash-all.sh
This wipes your device! I had to run it twice since it would time out
on the first run. Note that this unpacked zip contains another zip
(image-sargo-sp2a.220505.008.zip
) which will become useful below.
Enabling USB debugging
Now boot Android and enable Developer mode by going to Settings
About then touching Build Number (at the very bottom) 7 times.
Go back one level, then go to System Developer Options and
enable "USB Debugging".
Obtaining boot.img
There are several ways to get boot.img
. If you just flashed Android
above then you can fetch boot.img
from the already mentioned
image-sargo-sp2a.220505.008.zip
:
unzip image-sargo-sp2a.220505.008.zip boot.img
If you want to fetch the exact boot.img
from your device you can use
TWRP (see the very end of this post).
Becoming root with Magisk
Being able to su
via adb
will later be useful to fetch kernel
logs. For that we first download Magisk as APK. At the time of writing
v28.1 is
current.
Once downloaded we upload the APK and the boot.img
from the previous
step onto the phone (which needs to have Android booted):
adb push Magisk-v28.1.apk /sdcard/Download
adb push boot.img /sdcard/Download
In Android open the Files app, navigate to /sdcard/Download
and
install the Magisk APK by opening the APK.
We now want to patch boot.img
to get su
via adb
to work (so we
can run dmesg
). This happens by hitting Install
in the Magisk app,
then "Select a file to patch". You then select the boot.img
we just
uploaded.
The installation process will create a magisk_patched-<random>.img
in /sdcard/Download
. We can pull that file via adb
back to our
PC:
adb pull /sdcard/Download/magisk_patched-28100_3ucVs.img
Then reboot the phone into fastboot (adb reboot bootloader
) and
flash it (this is optional see below):
fastboot flash boot magisk_patched-28100_3ucVs.img
Now boot the phone again, open the Magisk app, go to SuperUser at
the bottom and enable Shell.
If you now connect to your phone via adb
again and now su
should
work:
adb shell
su
As noted above if you want to keep your Android installation pristine
you don't even need to flash this Magisk enabled boot.img
. I've flashed
it so I have su
access for other operations too. If you don't want
to flash it you can still test boot it via:
fastboot boot magisk_patched-28100_3ucVs.img
and then perform the same adb shell su
check as above.
Building the custom kernel
For our QMI debugging to work we need to patch the kernel a bit and
place that in boot.img
too. So let's build the kernel first. For
that we install the necessary tools (which are thankfully packaged in
Debian) and fetch the Android kernel sources:
sudo apt install repo android-platform-tools-base kmod ccache build-essential mkbootimg
mkdir aosp-kernel && cd aosp-kernel
repo init -u https://android.googlesource.com/kernel/manifest -b android-msm-bonito-4.9-android12L
repo sync
With that we can apply Joel's kernel patches and also compile in the touch controller
driver so we don't need to worry if the modules in the initramfs match the kernel. The kernel
sources are in private/msm-google
. I've just applied the diffs on top with patch
and modified
the defconfig and committed the changes. The resulting tree is
here.
We then build the kernel:
PATH=/usr/sbin:$PATH ./build_bonito.sh
The resulting kernel is at
./out/android-msm-pixel-4.9/private/msm-google/arch/arm64/boot/Image.lz4-dtb
.
In order to boot that kernel I found it to be the simplest to just
replace the kernel in the Magisk patched boot.img
as we have that
already. In case you have already deleted that for any reason we can
always fetch the current boot.img
from the phone via TWRP (see below).
Preparing a new boot.img
To replace the kernel in our Magisk enabled
magisk_patched-28100_3ucVs.img
from above with the just built kernel
we can use mkbootimg
for that. I basically copied the steps we're
using when building the boot.img
on the Linux Mobile side:
ARGS=$(unpack_bootimg --format mkbootimg --out tmp --boot_img magisk_patched-28100_3ucVs.img)
CLEAN_PARAMS="$(echo "$ ARGS " sed -e "s/ --cmdline '.*'//" -e "s/ --board '.*'//")"
cp android-kernel/out/android-msm-pixel-4.9/private/msm-google/arch/arm64/boot/Image.lz4-dtb tmp/kernel
mkbootimg -o "boot.patched.img" $ CLEAN_PARAMS --cmdline "$ ARGS "
This will give you a boot.patched.img
with the just built kernel.
Boot the new kernel via fastboot
We can now boot the new boot.patched.img
. No need to flash that onto
the device for that:
fastboot boot boot.patched.img
Fetching the kernel logs
With that we can fetch the kernel logs with the debug output via adb
:
adb shell su -c 'dmesg -t' > dmesg_dump.xml
or already filtering out the QMI commands:
adb shell su -c 'dmesg -t' grep "@QMI@" sed -e "s/@QMI@//g" &> sargo_qmi_dump.xml
That's it. You can apply this method for testing out other kernel
patches as well. If you want to apply the above to other devices you basically
need to make sure you patch the right kernel sources, the other steps should be
very similar.
In case you just need a rooted boot.img
for sargo you can find a
patched one here.
If this procedure can be improved / streamlined somehow please
let me know.
Appendix: Fetching boot.img from the phone
If, for some reason you lost boot.img
somewhere on the way you can always use
TWRP to fetch the boot.img
currently in use on your phone.
First get TWRP for the Pixel 3a. You can
boot that directly by putting your device into fastboot mode, then running:
fastboot boot twrp-3.7.1_12-1-sargo.img
Within TWRP select Backup Boot and backup the file. You can then use adb shell
to locate the backup in /sdcard/TWRP/BACKUPS/
and pull it:
adb pull /sdcard/TWRP/BACKUPS/97GAY10PWS/2025-04-02--09-24-24_SP2A220505008/boot.emmc.win
You now have the device's boot.img
on your PC and can e.g. replace the kernel or make
modifications to the initramfs.
coreutils
with alternative implementations such as busybox
, toybox
or uutils
[Helmut, Jochen, josch]Multi-Arch
field in Debian policy #749826 [Helmut, Holger, Jochen, josch]coreutils
non-essentialdevscripts
upload.sbuild
devscripts
(debrebuild
/debootstrap
, build-rdeps
, proxy.py
)src:kokkos
resulting in #1101487cdbs
to dh
.autopkgtest
regression to #1079443 which is now worked around.libcrypt-dev
from build-essential
and initiated work with Santiago Vilasbuild
would want to interface with a better build containment/usr/share/kernel/*.d
and gathered feedback from the other sprint participants in how to best move this forward, culminating in the opening of #1101733 against src:linux.integer64
arithmetic. Initially
implemented using the S3 system, it has benefitted greatly from a
rigorous refactoring by Leonardo who not only rejigged
nanotime
internals in S4 but also added new S4 types for
periods, intervals and durations.
This release responds to recent CRAN nag of also suggesting
packages used in demos, makes a small update to the CI script, and
improves one version comparison for conditional code.
The NEWS snippet below has the fuller details.
Thanks to my CRANberries, there is a diffstat report for this release. More details and examples are at the nanotime page; code, issue tickets etc at the GitHub repository and all documentation is provided at the nanotime documentation site.Changes in version 0.3.12 (2025-04-02)
- Update continuous integration to use r-ci action with bootstrap
- Add ggplot2 to Suggests due to use in demo/ which is now scanned
- Refine a version comparison for R 4.5.0 to be greater or equal
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. If you like this or other open-source work I do, you can now sponsor me at GitHub.
COLORTERM
and NO_COLOR
environment variables.
Python team
Following up on last month, I fixed some
more uscan errors:
Next.