Policy
1. Package Versions
1.1 Definition
<non-native package version> ::= <upstream version> "-" <debian revision>;
<native package version> ::= <upstream version>;
<debian revision> ::= "reading package version from right to left, anything until and not including the first dash (-)";
<upstream version> ::= "reading package version from left to right, anything until and not including the last dash (-)";
- 1.2.3: upstream version 1.2.3
- 1.2.3-4: upstream version 1.2.3, debian revision 4
- 1.2.3-4+deb13u1: upstream version 1.2.3, debian revision 4+deb13u1
- 1.2.3-5~bpo13+1: upstream version 1.2.3, debian revision 4~bpo13+1
- 1.2.3-4-5: upstream version 1.2.3-4, debian revision 5
- 2025-06-01-1: upstream version 2025-06-01, debian revision 1
1.2 Version Suffix
| Upload | Format | Debian Version | Fast Forward Version |
|---|---|---|---|
| Distribution | non-native | 1.2.3-4 | 1.2.3-4ffwd13u1 |
| Distribution | native | 1.2.3 | 1.2.3ffwd13u1 |
| Security/SRM (patch) | non-native | 1.2.3-4+deb13u1 | 1.2.3-4+deb13u1ffwd13u1 |
| Security/SRM (patch) | native | 1.2.3+deb13u1 | 1.2.3+deb13u1ffwd13u1 |
| Security/SRM (backport) | non-native | 1.2.3-4~deb13u1 | 1.2.3-4~deb13u1ffwd13u1 |
| Security/SRM (backport) | native | 1.2.3~deb13u1 | 1.2.3~deb13u1ffwd13u1 |
| Backports | non-native | 1.2.3-4 | 1.2.3-4~ffwd13+u1 |
| Backports | native | 1.2.3 | 1.2.3ffwd13+u1 |
| Upload | Format | Debian Version | Fast Forward Version |
|---|---|---|---|
| binNMU | non-native | 1.2.3-4+b1 | 1.2.3-4+b1ffwd13u1 |
| binNMU | native | 1.2.3+b1 | 1.2.3+b1ffwd13u1 |
| NMU | non-native | 1.2.3-4.1 | 1.2.3-4.1ffwd13u1 |
| NMU | native | 1.2.3+nmu1 | 1.2.3+nmu1ffwd13u1 |
1.3 Upgrade Paths
1.3.1 Debian (without format change)
| Path | oldstable | Security/SRM (patch) | Security/SRM (backport) | Backports | stable |
|---|---|---|---|---|---|
| non-native (new revision) |
1.2.3-4 | → 1.2.3-4+deb13u1 | → 1.2.3-5~deb13u1 | → 1.2.3-5~bpo13+1 | → 1.2.3-5 |
| non-native (new upstream) |
1.2.3-4 | → 1.2.3-4+deb13u1 | → 1.2.4-1~deb13u1 | → 1.2.4-1~bpo13+1 | → 1.2.4-1 |
| native (new upstream) |
1.2.3 | → 1.2.3+deb13u1 | → 1.2.4~deb13u1 | → 1.2.4~bpo13+1 | → 1.2.4 |
1.3.2 Debian (with format change)
| Path | oldstable | Security/SRM (patch) | Security/SRM (backport) | Backports | stable |
|---|---|---|---|---|---|
| native → non-native (new upstream) |
1.2.3 | → 1.2.3+deb13u1 | → 1.2.4-1~deb13u1 | → 1.2.4-1~bpo13+1 | → 1.2.4-1 |
| non-native → native (new upstream) |
1.2.3-4 | → 1.2.3-4+deb13u1 | → 1.2.4~deb13u1 | → 1.2.4~bpo13+1 | → 1.2.4 |
1.3.3 Fast Forward (without format change)
| Path | oldstable | oldstable +ffwd |
Security/SRM (patch) |
Security/SRM (patch)+ffwd |
Security/SRM (backport) |
Security/SRM (backport)+ffwd |
Backports ffwd |
stable |
|---|---|---|---|---|---|---|---|---|
| non-native → non-native (new revision) |
1.2.3-4 | → 1.2.3-4ffwd13u1 | → 1.2.3-4+deb13u1 | → 1.2.3-4+deb13u1ffwd13u1 | → 1.2.3-5~deb13u1 | → 1.2.3-5~deb13u1ffwd13u1 | → 1.2.3-5~ffwd13+u1 | → 1.2.3-5 |
| non-native → non-native (new upstream) |
1.2.3-4 | → 1.2.3-4ffwd13u1 | → 1.2.3-4+deb13u1 | → 1.2.3-4+deb13u1ffwd13u1 | → 1.2.4-1~deb13u1 | → 1.2.4-1~deb13u1ffwd13u1 | → 1.2.4-1~ffwd13+u1 | → 1.2.4-1 |
| native → native (new upstream) |
1.2.3 | → 1.2.3ffwd13u1 | → 1.2.3+deb13u1 | → 1.2.3+deb13u1ffwd13u1 | → 1.2.4~deb13u1 | → 1.2.4~deb13u1ffwd13u1 | → 1.2.4~ffwd13+u1 | → 1.2.4 |
1.3.4 Fast Forward (with format change)
| Path | oldstable | oldstable +ffwd |
Security/SRM (patch) |
Security/SRM (patch)+ffwd |
Security/SRM (backport) |
Security/SRM (backport)+ffwd |
Backports ffwd |
stable |
|---|---|---|---|---|---|---|---|---|
| native → non-native (new upstream) |
1.2.3 | → 1.2.3ffwd13u1 | → 1.2.3+deb13u1 | → 1.2.3+deb13u1ffwd13u1 | → 1.2.4-1~deb13u1 | → 1.2.4-1~deb13u1ffwd13u1 | → 1.2.4-1~ffwd13+u1 | → 1.2.4-1 |
| non-native → native (new upstream) |
1.2.3-4 | → 1.2.3-4ffwd13u1 | → 1.2.3-4+deb13u1 | → 1.2.3-4+deb13u1ffwd13u1 | → 1.2.4~deb13u1 | → 1.2.4~deb13u1ffwd13u1 | → 1.2.4~ffwd13+u1 | → 1.2.4 |
1.3.5 Fast Forward (with format conversion)
| Path | oldstable | oldstable +ffwd |
Security/SRM (patch) |
Security/SRM (patch)+ffwd |
Security/SRM (backport) |
Security/SRM (backport)+ffwd |
Backports ffwd |
stable |
|---|---|---|---|---|---|---|---|---|
| native → non-native (new upstream) |
1.2.3 | → 1.2.3-0ffwd13u1 | → 1.2.3+deb13u1 | → 1.2.3+deb13u1-0ffwd13u1 | → 1.2.4~deb13u1 | → 1.2.4~deb13u1-0ffwd13u1 | → 1.2.4-0.0~ffwd13+u1 | → 1.2.4 |
| native → non-native (no new version) |
1.2.3 | → 1.2.3-0ffwd13u1 | — | — | — | — | → 1.2.3-0.0~ffwd13+u1 | → 1.2.3+b1 |
1.4 Version Tracking
1.4.1 Tracking Colors
Version tracking by comparing source and all their binary packages on all architectures, after removing vendor suffix:- all upstream versions are equal and all debian revisions are equal → green
- all upstream versions are equal and one or more debian revision is lower → orange
- one or more upstream version is lower → red
- all upstream versions are equal and one or more debian revision is higher → purple
- one or more upstream version is higher → purple
- source package is in derivative, but not in debian → blue
1.4.2 Version Comparison
architectures:
all
amd64
arm64
suffixes:
ffwd[0-9]u[0-9]
~ffwd[0-9]+u[0-9]
0ffwd[0-9]u[0-9]
0~ffwd[0-9]u+[0-9]
0.0~ffwd[0-9]u+[0-9]
0ffwd[0-9]+u[0-9]
for derivative_distribution in derivative_distributions:
for each derivative_source_package in derivate_distribution:
if derivative_source_package not in parent_source_packages:
→ blue .
if derivative_source_package_upstream_version > parent_source_package_upstream_version:
→ purple .
if derivative_source_package_upstream_version < parent_source_package_upstream_version:
→ red .
if derivative_source_package_upstream_version = parent_source_package_upstream_version:
if derivative_source_package_debian_revision_without_suffix > parent_source_package_debian_revision:
→ purple .
if derivative_source_package_debian_revision_without_suffix < parent_source_package_debian_revision:
→ orange .
if derivative_source_package_debian_revision_without_suffix = parent_source_package_debian_revision:
for each derivative_binary_package in derivative_source_package:
if derivative_binary_package in parent_binary_packages:
for each architecture in architectures:
get highest_version
if highest_version is empty:
→ green .
for each derivative_binary_package in derivative_binary_packages:
for each architecture in architectures:
if derivative_binary_package_debian_revision_without_suffix > highest_version:
→ purple on this architecture for this derivative_binary_package
if derivative_binary_package_debian_revision_without_suffix < highest_version:
→ red on this architecture for this derivative_binary_package
→ green .