What is the difference between Debian contrib & non-free and how do they correspond to Ubuntu repositories?
In a nutshell, these are what Ubuntu's archive divisions mean:
1) main
: Free software, officially supported by Canonical
2) universe
: Free software, NOT supported by Canonical
3) restricted
: Non-free software officially supported by Canonical (includes device drivers mainly, amongst others)
4) multiverse
: Non-free software NOT supported by Canonical (flashplugin-nonfree comes over here)
Debian has these divisions:
1) main
: All free software that follows the DFSG (Debian Free Software Guidelines)
2) contrib
: Free software that follows DFSG but depends on software in non-free
.
3) non-free
: All kinds of non-free software that doesn't follow the DFSG.
Since Debian doesn't differentiate among packages on the basis of support (since all packages are supported by the Debian community), contrib
and non-free
packages correspond to Restricted
/Multiverse
in Ubuntu. By default, all contrib
and non-free
packages enter Multiverse
when they are synced. If Canonical intends to support them, they are moved to restricted
.
non-free
is for packages which are straight-up not free. The only requirement is that they are redistributable. The Debian project considers that non-free
is not a part of Debian, and is only provided as a convenience for users.
contrib
is for packages which are themselves free but depend on packages that are in non-free
. It's also not considered a part of Debian.
As Debian doesn't have the main
/restricted
and universe
/multiverse
distinction (and Ubuntu doesn't have the non-free
and contrib
distinction), the union of non-free
and contrib
corresponds roughly to the union of restricted
and multiverse
.