[Pkg-alsa-devel] Bug#1110637: alsa-ucm-conf: Focusrite Scarlett 18i20 support breaks in alsa-ucm-conf 1.2.14 (shipped with Trixie)
Didier 'OdyX' Raboud
odyx at debian.org
Mon Aug 11 15:18:01 BST 2025
Control: tags -1 +patch +upstream
Hello there,
following up on this bug and on some fediverse conversation [0].
# How to propose a patch to a maintainer, and produce a patched .deb package?
I'll be demonstrating this from a Debian 12 pristine VPS, to make sure none of
the assumptions I long use on my local machine apply. I guess this will also
serve as a demonstration on how this is way too complex (or on how my
knowledge is too outdated).
## Setup
* Install the needed tools
$ sudo apt update; sudo apt install -y devscripts quilt
* Configure the local environment (needed for proper changelog generation)
$ export DEBFULLNAME="Didier 'OdyX' Raboud"
$ export DEBEMAIL=odyx at debian.org
## Get the source package
Here, you can use either the binary package name, or the source package name.
$ debcheckout alsa-ucm-conf; cd alsa-ucm-conf
This gives you the latest maintainer view of the source package, in the alsa-
ucm-conf directory, so very likely at the status of the latest unstable (which
is what a patch will need to target). Let's make sure we base our work on the
latest unstable upload:
$ git checkout debian/1.2.14-1; git switch -c fix-bug-1110637
## Patch the source code
There are multiple ways to handle this patching, but let's just demonstrate
the direct method, not fiddling with the patch queue manually:
Let's just raw-apply the revert to the source package tree via "patch -R"
$ wget -q -O - 'https://github.com/alsa-project/alsa-ucm-conf/commit/
7283759a381ca1fc2589da213daa05f9d3b84aac.patch' | patch -p1 -R
At this point, what one has is the upstream source, the debian/ repository,
and some files patched. One needs a new changelog entry (so as to generate
binary packages that do _not_ have the same version as provided by Debian: the
'+' will sort later than the current version):
$ dch --local +2025081100 "Revert 'USB-Audio: Add focusrite scarlett 18i20
lineup' (Closes: #1110637)"
Finally, build a new source package. To do that, one needs the upstream
tarball as available from the Debian archive, dget is convenient for this:
$ cd ..; dget --download-only 'https://deb.debian.org/debian/pool/main/a/
alsa-ucm-conf/alsa-ucm-conf_1.2.14-1.dsc'; cd -
Now we can generate a patch with our changes, using dpkg-source:
$ dpkg-source --commit --include-removal
It'll ask for a patch name (mostly, anything goes), and some metadata. I've
attached the patch file to this email.
Then one needs to remove all their local changes:
$ quilt pop -a
Finally, we can build the new source package:
$ dpkg-buildpackage --build=source
This gives us a set of new files:
- ../alsa-ucm-conf_1.2.14-1+20250811001.dsc
- ../alsa-ucm-conf_1.2.14-1+20250811001.debian.tar.xz
We can see the full difference between the source packages this way:
$ debdiff ../alsa-ucm-conf_1.2.14-1.dsc ../alsa-ucm-
conf_1.2.14-1+20250811001.dsc
I've attached the resulting .debdiff to this email.
At this point, we have a source Debian package, but no installable binaries.
So…
## Build a locally-patched Debian package from a source package
Generally, one wants to build Debian packages in isolated environments (to
avoid installing massive build-depends on one's main machine, to avoid
pollution from the machine's environment, etc). A somewhat simple way to do
this is to use `debocker` (which will leverage docker):
$ sudo apt install debocker
$ sudo adduser debian docker
$ logout
… login
$ cd alsa-ucm-conf
$ debocker build
After a long process, this produces the following .deb file:
- ../alsa-ucm-conf_1.2.14-1+20250811001_all.deb
That said, in this particular case, as the source package has only very
minimal build-depends, the following is enough (and much faster):
$ dpkg-buildpackage --build=binary
… which produces the same .deb file, which you can pass around and install
wherever necessary.
## Bug-metadata update
Finally, as we're giving the maintainer a patch, we can update the bug's
metadata via Control pseudo-headers:
Control tags -1 +patch +upstream
(where -1 indicates that we're addressing this very bug number).
I hope this all was more helpful than confusing!
Best, OdyX
[0] from https://wandering.shop/@aesthr/114999646041061682
On Sat, 9 Aug 2025 18:01:36 +0200 Esther Weidauer <esther at selfawaresoup.com>
wrote:
> Reverting the changes introduce with commit 7283759 in alsa-ucm-conf
> (https://github.com/alsa-project/alsa-ucm-conf/commit/
7283759a381ca1fc2589da213daa05f9d3b84aac)
> on my system has restored function to the audio interface, including the
> correct pipewire graph.
>
> It really just seems to be that one commit causing this problem.
>
> I don't know how to produce patched deb packages so I could only do it
> manually for now.
>
> Cheers
>
> Esther Weidauer
> esther at selfawaresoup.com
>
> pronouns: she/her
> languages: english/german
>
> On 8/9/25 14:23, Esther Weidauer wrote:
> > Package: alsa-ucm-conf
> > Version: 1.2.14-1
> > Severity: important
> >
> > Dear Maintainer,
> >
> > alsa-ucm-conf 1.2.14 introduced an issue where support for the Focusrite
> > Scarlett 18i20 audio interface was broken. The issue is described
> > here: https://github.com/alsa-project/alsa-ucm-conf/issues/559
> >
> > alsa-ucm-conf 1.2.14 ships with Debian Trixie, breaking those audio
> > interfaces
> > after the upgrade from Bookworm to Trixie.
> >
> > Currently the audio interface is not correctly recognized and audio
> > playback impossible. I did not test recording but I assume that's
> > affected too.
> >
> > Best regards
> >
> > -- System Information:
> > Debian Release: 13.0
> > APT prefers testing-security
> > APT policy: (500, 'testing-security'), (500, 'testing')
> > Architecture: amd64 (x86_64)
> > Foreign Architectures: i386
> >
> > Kernel: Linux 6.12.38+deb13-amd64 (SMP w/24 CPU threads; PREEMPT)
> > Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
> > (ignored: LC_ALL set to en_US.UTF-8), LANGUAGE=en
> > Shell: /bin/sh linked to /usr/bin/dash
> > Init: systemd (via /run/systemd/system)
> > LSM: AppArmor: enabled
> >
> > Versions of packages alsa-ucm-conf depends on:
> > ii libasound2t64 1.2.14-1
> >
> > alsa-ucm-conf recommends no packages.
> >
> > alsa-ucm-conf suggests no packages.
> >
-------------- next part --------------
A non-text attachment was scrubbed...
Name: alsa-ucm-conf_1.2.14-1+20250811001.debdiff
Type: text/x-patch
Size: 15404 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/pkg-alsa-devel/attachments/20250811/6a22b218/attachment-0002.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0004-revert-Scarlett-18i20.patch
Type: text/x-patch
Size: 13318 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/pkg-alsa-devel/attachments/20250811/6a22b218/attachment-0003.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: This is a digitally signed message part.
URL: <http://alioth-lists.debian.net/pipermail/pkg-alsa-devel/attachments/20250811/6a22b218/attachment-0001.sig>
More information about the Pkg-alsa-devel
mailing list