MNT Debian repository changed its 'Origin' value from '' to 'MNT Research'

Hi,

if you run “apt update” on machines with the MNT repository configured you will see the following message:

$ sudo apt update
Get:1 http://deb.debian.org/debian unstable InRelease [208 kB]
Ign:2 https://mntre.com/reform-debian-repo reform InRelease                 
Get:3 https://mntre.com/reform-debian-repo reform Release [7,194 B]         
Error: Repository 'https://mntre.com/reform-debian-repo reform Release' changed its 'Origin' value from '' to 'MNT Research'
Notice: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.
Do you want to accept these changes and continue updating from this repository? [y/N]

TLDR: this is intentional. You can safely accept this and continue.

The long story is this: Right now, the MNT Debian repository sets the following metadata values:

Label: reform
Suite: reform
Codename: reform

This means that to identify this repository to your local apt, you rely on the fact that nobody else names their repository “reform”. We also use the label (l=) and the codename (n=) to identify the repository for the apt pinning setting:

Package: *
Pin: release n=reform, l=reform
Pin-Priority: 990

But the name “reform” does not indicate where the package is from. It rather explains what the repository is for. It is perfectly reasonable for other parties who create Debian repositories for the MNT Reform to also name their repositories “reform” (even though reform.d.n for example does not do this). The above would probably be a bit better written using the “origin” field like this:

Package: *
Pin: origin "mntre.com"
Pin-Priority: 990

But using the label and codename has the advantage that I can now throw in repositories from the MNT gitlab CI into my sources list like this:

deb [trusted=yes arch=arm64] https://source.mnt.re/reform/reform-debian-packages/-/jobs/${PIPELINE_ID}/artifacts/raw/repo reform main

And the pinning settings would automatically apply to that repository as well even though the “origin” is source.mnt.re.

But apt pinning is not the only place where we want repositories to have metadata. apt patterns are another area of application. For example, I might like to write: show me all packages installed from MNT repositories. So I could write this:

apt list '?narrow(?installed, ?codename(reform))'

But this assumes that nobody else uses the very general name “reform” in a repository you have configured. It would be better to be able to match on a value of who the repository is from. This information is usually part of the “Origin” field in a Release file (not to be confused with “origin” in apt preferences which is the domain name). The mapping looks like this:

 Release    pattern     pinning   Example
 -------------------------------------------
 Codename   ?codename   n=        sid
 Label      n.a.        l=        Debian
 Suite      ?archive    a=        unstable
 Origin     ?origin     o=        Debian

From above table we already see that the repository’s label is not available as an apt pattern so what we would like to match on is the “Origin” field. But that field is currently not used at all.

With the latest mirror push, the value of the “Origin” field is now “MNT Research”. So you can now run something like this to figure out which packages you have installed from MNT:

$ apt list '?narrow(?installed, ?origin(MNT Research))'
flash-kernel/reform,now 3.109+reform20250506T203207Z1 arm64 [installed]
fonts-reform-iosevka-term/reform,now 2.3.0-1 all [installed,automatic]
linux-headers-6.14.6-common/reform,now 6.14.6-1~exp1+reform20250524T044902Z all [installed,automatic]
linux-headers-6.14.6-mnt-reform-arm64/reform,now 6.14.6-1~exp1+reform20250524T044902Z arm64 [installed,automatic]
linux-headers-mnt-reform-arm64/reform,now 6.14.6-1~exp1+reform20250524T044902Z arm64 [installed]
linux-image-mnt-reform-arm64/reform,now 6.14.6-1~exp1+reform20250524T044902Z arm64 [installed]
linux-kbuild-6.14.6/reform,now 6.14.6-1~exp1+reform20250524T044902Z arm64 [installed,automatic]
reform-desktop-full/reform,now 1.72-2+reform20250520T090524Z1 all [installed]
reform-desktop-minimal/reform,now 1.72-2+reform20250520T090524Z1 all [installed,automatic]
reform-tools/reform,now 1.72-2+reform20250520T090524Z1 all [installed,automatic]
reform2-lpc-dkms/reform,now 1.72-2+reform20250520T090524Z1 all [installed,automatic]

Bonus: the apt policy output now includes the o= field even for the MNT repo just like the Debian repositories do as well:

$ apt policy
Package files:
 100 /var/lib/dpkg/status
     release a=now
 990 https://mntre.com/reform-debian-repo reform/main arm64 Packages
     release o=MNT Research,a=reform,n=reform,l=reform,c=main,b=arm64
     origin mntre.com
 500 http://deb.debian.org/debian unstable/non-free-firmware arm64 Packages
     release o=Debian,a=unstable,n=sid,l=Debian,c=non-free-firmware,b=arm64
     origin deb.debian.org
 500 http://deb.debian.org/debian unstable/main arm64 Packages
     release o=Debian,a=unstable,n=sid,l=Debian,c=main,b=arm64
     origin deb.debian.org

Here is an overview of how the Release file values look like for the MNT repositories and for reform.debian.net:

 Release    MNT             reform.debian.net
 -------------------------------------------
 Codename   reform          trixie
 Label      reform          reform.debian.net
 Suite      reform          trixie
 Origin     MNT Research    reform.debian.net

Sorry for the inconvenience this causes while updating your apt indices.

8 Likes