Jonathan Dowland: Whisper (pipewire tool)

[Unit]
ConditionPathIsSymbolicLink=/run/systemd/generator/network-online.target.wants/systemd-networkd-wait-online.service
[Service]
ExecStart=
ExecStart=/lib/systemd/systemd-networkd-wait-online -i eth99.43:carrier -i lo:carrier -i eth99.42:carrier -i eth99.44:degraded -i bond0:degraded
ExecStart=/lib/systemd/systemd-networkd-wait-online --any -o routable -i eth99.43 -i eth99.45 -i bond0
In addition to the new features implemented in Netplan, we reached out to upstream systemd, proposing an enhancement to the systemd-networkd-wait-online service, integrating it with systemd-resolved to check for the availability of DNS name resolution. Once this is implemented upstream, we re able to fully control the systemd-networkd backend on Ubuntu Server systems, to behave consistently and according to the definition of an online system that was lined out above.
->
has become
, and \
is now
.
Another option is perhaps the newest, the LaTeX package minted, which
leverages the Python Pygments program. Here's the same code again. It
defaults to monospace (the choice of font seems a lot clearer to me than the
default for listings
), no symbolic substitution, and liberal use of colour:
An informal survey of the samples so far showed that the minted output was
the most popular.
All of these packages can be configured to varying degrees. Here are some
examples of what I've achieved with a bit of tweaking
All of this has got me wondering whether there are straightforward empirical
answers to some of these questions of style.
Firstly, I'm pretty convinced that symbolic substitution is valuable. When
writing Haskell, we write ->
, \
, /=
etc. not because it's most legible,
but because it's most practical to type those symbols on the most widely
available keyboards and popular keyboard layouts.1 Of the three
options listed here, symbolic substitution is possible with listings and
lhs2tex, but I haven't figured out if minted can do it (which is really
the question: can pygments do it?)
I'm unsure about proportional versus monospaced fonts. We typically use
monospaced fonts for editing computer code, but that's at least partly for
historical reasons. Vertical alignment is often very important in source code,
and it can be easily achieved with monospaced text; it's also sometimes
important to have individual characters (.
, etc.) not be de-emphasised by being
smaller than any other character.
lhs2tex, at least, addresses vertical alignment whilst using proportional
fonts. I guess the importance of identifying individual significant characters
is just as true in a code sample within a larger document as it is within
plain source code.
From a (brief) scan of research on this topic, it seems that proportional
fonts result in marginally quicker reading times for regular prose. It's
not clear whether those results carry over into reading computer code in
particular, and the margin is slim in any case. The drawbacks of monospaced
text mostly apply when the volume of text is large, which is not the case
for the short code snippets I am working with.
I still have a few open questions:
instead of elem
,
instead of /=
. Sadly, it's not possible
to replace the denotation for an anonymous function, \
, with
this
way. libglib2.0-dev
such that it would absorb more functionality and in particular provide tools for working with .gir
files. Those tools practically require being run for their host architecture (practically this means running under qemu-user
) which is at odds with the requirements of architecture cross bootstrap. The qemu
requirement was expressed in package dependencies and also made people unhappy attempting to use libglib2.0-dev
for i386
on amd64
without resorting to qemu
. The use of qemu
in architecture bootstrap is particularly problematic as it tends to not be ready at the time bootstrapping is needed.
As a result, Simon proposed and implemented the introduction of a libgio-2.0-dev
package providing a subset of libglib2.0-dev
that does not require qemu
. Packages should continue to use libglib2.0-dev
in their Build-Depends
unless involved in architecture bootstrap. Helmut reviewed and tested the implementation and integrated the necessary changes into rebootstrap. He also prepared a patch for libverto to use the new package and proposed adding forward compatibility to glib2.0.
Helmut continued working on adding cross-exe-wrapper to architecture-properties and implemented autopkgtests later improved by Simon. The cross-exe-wrapper
package now provides a generic mechanism to a program on a different architecture by using qemu
when needed only. For instance, a dependency on cross-exe-wrapper:i386
provides a i686-linux-gnu-cross-exe-wrapper
program that can be used to wrap an ELF executable for the i386
architecture. When installed on amd64
or i386
it will skip installing or running qemu
, but for other architectures qemu
will be used automatically. This facility can be used to support cross building with targeted use of qemu
in cases where running host code is unavoidable as is the case for GObject introspection.
This concludes the joint work with Simon and Niels Thykier on glib2.0
and architecture-properties
resolving known architecture bootstrap regressions arising from the glib2.0
refactoring earlier this year.
dpkg
, the question arises how this affects existing packages. The dedup.debian.net infrastructure provides an easy playground to answer such questions, so Helmut gathered file metadata from all binary packages in unstable and performed an explorative analysis. Some results include:
/usr
-merge is not the only cause for aliasing problems in Debian.
dpkg
can enforce.
setup.py test
. This month, Stefano did some more rebuilds, starting with experimental versions of dh-python
.
During the Python 3.12 transition, we had added a dependency on python3-setuptools to dh-python, to ease the transition. Python 3.12 removed distutils from the stdlib, but many packages were expecting it to still be available. Setuptools contains a version of distutils, and dh-python was a convenient place to depend on setuptools for most package builds. This dependency was never meant to be permanent. A rebuild without it resulted in mass-filing about 340 bugs (and around 80 more by mistake).
A new feature in Python 3.12, was to have unittest s test runner exit with a non-zero return code, if no tests were run. We added this feature, to be able to detect tests that are not being discovered, by mistake. We are ignoring this failure, as we wouldn t want to suddenly cause hundreds of packages to fail to build, if they have no tests. Stefano did a rebuild to see how many packages were affected, and found that around 1000 were. The Debian Python community has not come to a conclusion on how to move forward with this.
As soon as Python 3.13 release candidate 2 was available, Stefano did a rebuild of the Python packages in the archive against it. This was a more complex rebuild than the others, as it had to be done in stages. Many packages need other Python packages at build time, typically to run tests. So transitions like this involve some manual bootstrapping, followed by several rounds of builds. Not all packages could be tested, as not all their dependencies support 3.13 yet. The result was around 100 bugs in packages that need work to support Python 3.13. Many other packages will need additional work to properly support Python 3.13, but being able to build (and run tests) is an important first step.
setup.py test
, backported a large upstream patch set to make buildbot work with SQLAlchemy 2.0, and upgraded 25 other Python packages to new upstream versions.
sbuild
reviewing and improving a MR for refactoring the unshare backend.
gcc-defaults
.
/usr
-move. With more and more key packages such as libvirt
or fuse3
fixed. We re moving into the boring long-tail of the transition.
glib2.0
above, rebootstrap moves a lot further, but still fails for any architecture.
libcupsfilter
to fix the autopkgtest and a dependency problem of this package. After package splix
was abandoned by upstream and OpenPrinting.org adopted its maintenance, Thorsten uploaded their first release.
binsider
tool to analyse ELF binaries
README
page:
Binsider can perform static and dynamic analysis, inspect strings, examine linked libraries, and perform hexdumps, all within a user-friendly terminal user interface!More information about Binsider s features and how it works can be found within Binsider s documentation pages.
95% fixed by [merge request] !12680 when -fobject-determinism
is enabled. [ ]
The linked merge request has since been merged, and Rodrigo goes on to say that:
After that patch is merged, there are some rarer bugs in both interface file determinism (eg.#25170
) and in object determinism (eg.#25269
) that need to be taken care of, but the great majority of the work needed to get there should have been merged already. When merged, I think we should close this one in favour of the more specific determinism issues like the two linked above.
zlib
/deflate
compression in .zip
and .apk
files and later followed up with the results of her subsequent investigation.
CONFIG_MODULE_SIG
flag. [ ]
zlib
to zlib-ng
as reproducibility requires identical compressed data streams. [ ]
maven-lockfile
that is designed aid building Maven projects with integrity . [ ]
This is a report of Part 1 of my journey: building 100% bit-reproducible packages for every package that makes up [openSUSE s] minimalVM
image. This target was chosen as the smallest useful result/artifact. The larger package-sets get, the more disk-space and build-power is required to build/verify all of them.
This work was sponsored by NLnet s NGI Zero fund.
A hermetic build system manages its own build dependencies, isolated from the host file system, thereby securing the build process. Although, in recent years, new artifact-based build technologies like Bazel offer build hermeticity as a core functionality, no empirical study has evaluated how effectively these new build technologies achieve build hermeticity. This paper studies 2,439 non-hermetic build dependency packages of 70 Bazel-using open-source projects by analyzing 150 million Linux system file calls collected in their build processes. We found that none of the studied projects has a completely hermetic build process, largely due to the use of non-hermetic top-level toolchains. [ ]
debrebuild
component of the devscripts suite of tools. In particular:
#1081047
: Fails to download .dsc
file.#1081048
: Does not work with a proxy.#1081050
: Fails to create a debrebuild.tar
.#1081839
: Fails with E: mmdebstrap failed to run
error.build_path
variation. Holger Levsen provided a rationale for this change in the issue, which has already been made to the tests being performed by tests.reproducible-builds.org. This month, this issue was closed by Santiago R. R., nicely explaining that build path variation is no longer the default, and, if desired, how developers may enable it again.
278
to Debian:
python3-setuptools
dependency. (#1080825)Standards-Version
to 4.7.0. [ ]0.5.11-4
was uploaded to Debian unstable by Holger Levsen making the following changes:
pkg-config
package with one on pkgconf
, following a Lintian check. [ ]Standards-Version
field to 4.7.0, with no related changes needed. [ ]0.7.28
was uploaded to Debian unstable by Holger Levsen including a change by Jelle van der Waa to move away from the pipes
Python module to shlex
, as the former will be removed in Python version 3.13 [ ].
classes.dex
file (and thus a different .apk
) depending on the number of cores available during the build, thereby breaking Reproducible Builds:
We ve rebuilt [tagv3.6.1
] multiple times (each time in a fresh container): with 2, 4, 6, 8, and 16 cores available, respectively:
- With 2 and 4 cores we always get an unsigned APK with SHA-256
14763d682c9286ef
.- With 6, 8, and 16 cores we get an unsigned APK with SHA-256
35324ba4c492760
instead.
reproducibility settings [being] applied to some of Gradle s built-in tasks that should really be the default. Compatible with Java 8 and Gradle 8.3 or later.
ext4
, erofs
and FAT
filesystems can now be made reproducible . [ ]
agama-integration-tests
(random)contrast
(FTBFS-nocheck)cpython
(FTBFS-2038)crash
(parallelism, race)ghostscript
(toolchain date)glycin-loaders
(FTBFS -j1
)gstreamer-plugins-rs
(date, other)kernel-doc/Sphinx
(toolchain bug, parallelism/race)kernel
(parallelism in BTF)libcamera
(random key)libgtop
(uname -r
)libsamplerate
(random temporary directory)lua-luarepl
(FTBFS)meson
(toolchain)netty
(modification time in .a
)nvidia-persistenced
(date)nvidia-xconfig
(date-related issue)obs-build
(build-tooling corruption)perl
(Perl records kernel version)pinentry
(make efl droppable)python-PyGithub
(FTBFS 2024-11-25)python-Sphinx
(parallelism/race)python-chroma-hnswlib
(CPU)python-libcst
python-pygraphviz
(random timing)python312
(.pyc
embeds modification time)python312
(drop .pyc
from documentation time)scap-security-guide
(date)seahorse
(parallelism)subversion
(minor Java .jar
modification times)xen/acpica
(date-related issue in toolchain)xmvn
(random)magic-wormhole-transit-relay
.python-sphobjinv
.lomiri-content-hub
.python-mt-940
.tree-puzzle
.muon-meson
.osuosl4
node to Debian trixie in anticipation of running debrebuild
and rebuilderd
there. [ ][ ][ ]osuosl4
node as offline due to ongoing xfs_repair
filesystem maintenance. [ ][ ]risc64
architecture to the multiarch version skew tests for Debian trixie and sid. [ ][ ][ ]virt 32,64 b
nodes as down. [ ]virt32b
and virt64b
nodes [ ], performed some maintenance of the cbxi4a
node [ ][ ] and marked most armhf
architecture systems as being back online.
#reproducible-builds
on irc.oftc.net
.
rb-general@lists.reproducible-builds.org
setup.py test
command. This caused some fallout in Debian,
some of which was quite non-obvious as packaging helpers sometimes fell back
to different ways of running test suites that didn t quite work. I fixed
django-guardian,
manuel,
python-autopage,
python-flask-seeder,
python-pgpdump,
python-potr,
python-precis-i18n,
python-stopit,
serpent,
straight.plugin,
supervisor, and
zope.i18nmessageid.
As usual for new language versions, the addition of Python 3.13 caused some
problems. I fixed psycopg2,
python-time-machine, and
python-traits.
I fixed build/autopkgtest failures in
keymapper,
python-django-test-migrations,
python-rosettasciio,
routes,
transmissionrpc, and
twisted.
buildbot was in a bit of a mess due to
being incompatible with SQLAlchemy 2.0. Fortunately by the time I got to it
upstream had committed a workable set of patches, and the main difficulty
was figuring out what to cherry-pick since they haven t made a new upstream
release with all of that yet. I figured this out and got us up to 4.0.3.
Adrian Bunk asked whether python-zipp
should be removed from trixie. I spent some time investigating this and
concluded that the answer was no, but looking into it was an interesting
exercise anyway.
On the other hand, I looked into flask-appbuilder, concluded that it should
be removed, and filed a removal request.
I upgraded some embedded CSS files in
nbconvert.
I upgraded importlib-resources, ipywidgets, jsonpickle, pydantic-settings,
pylint (fixing a test failure),
python-aiohttp-session, python-apptools, python-asyncssh,
python-django-celery-beat, python-django-rules, python-limits,
python-multidict, python-persistent, python-pkginfo, python-rt, python-spur,
python-zipp, stravalib, transmissionrpc, vulture, zodbpickle,
zope.exceptions (adopting it),
zope.i18nmessageid, zope.proxy, and zope.security to new upstream versions.
debmirror
The experimental
and *-proposed-updates
suites used to not have
Contents-*
files, and a long time ago debmirror was changed to just skip
those files in those suites. They were added to the Debian archive some
time ago, but debmirror carried on skipping them anyway. Once I realized
what was going on, I removed these unnecessary special cases
(#819925,
#1080168).
Courtesy of my CRANberries, there is a diffstat report relative to previous release. More details are at the RApiSerialize page; code, issue tickets etc at the GitHub repositoryrapiserializerepo. If you like this or other open-source work I do, you can sponsor me at GitHub.Changes in version 0.1.4 (2024-09-28)
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
ebuild
out of Gentoo
and when they looked for someone to
help out they reached out to me. We recognized the Linux kernel was pretty much
the weakest link in the Chrome OS security posture and I joined them to help
solve that. Their userspace was pretty well handled but the kernel had a lot
of weaknesses, so focusing on hardening was the next place to go. When I
compared notes with other users of the Linux kernel within Google there were a
number of common concerns and desires. Chrome OS already had an upstream
first requirement, so I tried to consolidate the concerns and solve them
upstream. It was challenging to land anything in other kernel team repos at
Google, as they (correctly) wanted to minimize their delta from upstream, so I
needed to work on any major improvements entirely in upstream and had a lot of
support from Google to do that. As such, my focus shifted further from working
directly on Chrome OS into being entirely upstream and being more of a
consultant to internal teams, helping with integration or sometimes
backporting. Since the volume of needed work was so gigantic I needed to find
ways to inspire other developers (both inside and outside of Google) to help.
Once I had a budget I tried to get folks paid (or hired) to work on these areas
when it wasn t already their job.
switch
statements. The language would just fall
through between adjacent case
s if a break
(or other code flow directive)
wasn t present. But this is ambiguous: is the code meant to fall-through, or
did the author just forget a break
statement? By defining the [[fallthrough]]
statement,
and requiring its use in
Linux,
all switch
statements now have explicit code flow, and the entire class of
bugs disappeared. During our refactoring we actually found that 1 in 10 added
[[fallthrough]]
statements were actually missing break
statements. This
was an extraordinarily common bug!
So getting rid of that ambiguity is where we have been. Another area I ve been
spending a bit of time on lately is looking at how defensive security work has
challenges associated with metrics. How do you measure your defensive security
impact? You can t say because we installed locks on the doors, 20% fewer
break-ins have happened. Much of our signal is always secondary or
retrospective, which is frustrating: This class of flaw was used X much over
the last decade so, and if we have eliminated that class of flaw and will never
see it again, what is the impact? Is the impact infinity? Attackers will just
move to the next easiest thing. But it means that exploitation gets
incrementally more difficult. As attack surfaces are reduced, the expense of
exploitation goes up.
IN\_FORMAT
, segmented LUTs,
interpolation types, etc. Developers from Qualcomm and ARM also added
information regarding their hardware.
Upstream work related to this session:
hw_done
callback to timestamp
when the hardware programming of the last atomic commit is complete. Also an
API to pre-program color pipeline in a kind of A/B scheme. It may not be
supported by all drivers, but might be useful in different ways.
IN\_FORMAT
, segmented LUTs,
interpolation types, etc. Developers from Qualcomm and ARM also added
information regarding their hardware.
Upstream work related to this session:
hw_done
callback to timestamp
when the hardware programming of the last atomic commit is complete. Also an
API to pre-program color pipeline in a kind of A/B scheme. It may not be
supported by all drivers, but might be useful in different ways.
Note
This post is a continuation of my previous article on enabling the Unified Kernel Image (UKI) on Debian.
sudo ls /efi/loader/keys/chamunda
db.auth KEK.auth PK.auth
sbsign --key <path-to db.key> --cert <path-to db.crt> \
/usr/lib/systemd/boot/efi/systemd-bootx64.efi
Note
If you encounter warnings about mount options, update your fstab with the umask=0077 option for the EFI partition.
SecureBootPrivateKey=/path/to/db.key
SecureBootCertificate=/path/to/db.crt
sudo dpkg-reconfigure linux-image-$(uname -r)
# Repeat for other kernel versions if necessary
sudo dpkg-reconfigure linux-image-$(uname -r)
/etc/kernel/postinst.d/dracut:
dracut: Generating /boot/initrd.img-6.10.9-amd64
Updating kernel version 6.10.9-amd64 in systemd-boot...
Signing unsigned original image
Using config file: /etc/kernel/uki.conf
+ sbverify --list /boot/vmlinuz-6.10.9-amd64
+ sbsign --key /home/vasudeva.sk/Documents/personal/secureboot/db.key --cert /home/vasudeva.sk/Documents/personal/secureboot/db.crt /tmp/ukicc7vcxhy --output /tmp/kernel-install.staging.QLeGLn/uki.efi
Wrote signed /tmp/kernel-install.staging.QLeGLn/uki.efi
/etc/kernel/postinst.d/zz-systemd-boot:
Installing kernel version 6.10.9-amd64 in systemd-boot...
Signing unsigned original image
Using config file: /etc/kernel/uki.conf
+ sbverify --list /boot/vmlinuz-6.10.9-amd64
+ sbsign --key /home/vasudeva.sk/Documents/personal/secureboot/db.key --cert /home/vasudeva.sk/Documents/personal/secureboot/db.crt /tmp/ukit7r1hzep --output /tmp/kernel-install.staging.dWVt5s/uki.efi
Wrote signed /tmp/kernel-install.staging.dWVt5s/uki.efi
systemctl reboot --boot-loader-menu=0
This post is a review for Computing Reviews for 50 years of queries , a article published in Communications of the ACMThe relational model is probably the one innovation that brought computers to the mainstream for business users. This article by Donald Chamberlin, creator of one of the first query languages (that evolved into the ubiquitous SQL), presents its history as a commemoration of the 50th anniversary of his publication of said query language. The article begins by giving background on information processing before the advent of today s database management systems: with systems storing and processing information based on sequential-only magnetic tapes in the 1950s, adopting a record-based, fixed-format filing system was far from natural. The late 1960s and early 1970s saw many fundamental advances, among which one of the best known is E. F. Codd s relational model. The first five pages (out of 12) present the evolution of the data management community up to the 1974 SIGFIDET conference. This conference was so important in the eyes of the author that, in his words, it is the event that starts the clock on 50 years of relational databases. The second part of the article tells about the growth of the structured English query language (SEQUEL) eventually renamed SQL including the importance of its standardization and its presence in commercial products as the dominant database language since the late 1970s. Chamberlin presents short histories of the various implementations, many of which remain dominant names today, that is, Oracle, Informix, and DB2. Entering the 1990s, open-source communities introduced MySQL, PostgreSQL, and SQLite. The final part of the article presents controversies and criticisms related to SQL and the relational database model as a whole. Chamberlin presents the main points of controversy throughout the years: 1) the SQL language lacks orthogonality; 2) SQL tables, unlike formal relations, might contain null values; and 3) SQL tables, unlike formal relations, may contain duplicate rows. He explains the issues and tradeoffs that guided the language design as it unfolded. Finally, a section presents several points that explain how SQL and the relational model have remained, for 50 years, a winning concept, as well as some thoughts regarding the NoSQL movement that gained traction in the 2010s. This article is written with clear language and structure, making it easy and pleasant to read. It does not drive a technical point, but instead is a recap on half a century of developments in one of the fields most important to the commercial development of computing, written by one of the greatest authorities on the topic.
Next.