{"id":947,"date":"2019-03-27T23:46:19","date_gmt":"2019-03-27T21:46:19","guid":{"rendered":"https:\/\/www.lucas-nussbaum.net\/blog\/?p=947"},"modified":"2019-04-01T20:27:12","modified_gmt":"2019-04-01T18:27:12","slug":"removal-of-jessie-updates-and-jessie-backports-from-debian-mirrors","status":"publish","type":"post","link":"https:\/\/www.lucas-nussbaum.net\/blog\/?p=947","title":{"rendered":"Removal of jessie-updates and jessie-backports from Debian mirrors"},"content":{"rendered":"<p>If you are still running jessie you probably noticed that the jessie-updates and jessie-backports suites have been removed from mirrors, because you got those error messages:<\/p>\n<pre>W: Failed to fetch http:\/\/ftp.debian.org\/debian\/dists\/jessie-updates\/main\/binary-amd64\/Packages 404 Not Found [IP: 130.89.148.12 80]\r\nW: Failed to fetch http:\/\/ftp.debian.org\/debian\/dists\/jessie-backports\/main\/binary-amd64\/Packages 404 Not Found [IP: 130.89.148.12 80]<\/pre>\n<p>I was not involved in that decision (which was made by the <i>FTP masters<\/i> team), but since there is some confusion around it, I will try to give my understanding of the resulting issues.<\/p>\n<p>The typical <strong>\/etc\/apt\/sources.list<\/strong> file for a jessie system with backports enabled is:<\/p>\n<pre>deb http:\/\/ftp.debian.org\/debian jessie main\r\ndeb-src http:\/\/ftp.debian.org\/debian jessie main\r\n\r\ndeb http:\/\/security.debian.org\/debian-security jessie\/updates main\r\ndeb-src http:\/\/security.debian.org\/debian-security jessie\/updates main\r\n\r\ndeb http:\/\/ftp.debian.org\/debian jessie-updates main\r\ndeb-src http:\/\/ftp.debian.org\/debian jessie-updates main\r\n\r\ndeb http:\/\/ftp.debian.org\/debian\/ jessie-backports main contrib non-free\r\ndeb-src http:\/\/ftp.debian.org\/debian\/ jessie-backports main contrib non-free<\/pre>\n<p>Debian packages are distributed using suites (which can be understood as <em>channels<\/em>). The global picture looks like this:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-949 size-full\" src=\"https:\/\/www.lucas-nussbaum.net\/blog\/wp-content\/uploads\/2019\/03\/debiansuites.png\" alt=\"\" width=\"1040\" height=\"544\" srcset=\"https:\/\/www.lucas-nussbaum.net\/blog\/wp-content\/uploads\/2019\/03\/debiansuites.png 1040w, https:\/\/www.lucas-nussbaum.net\/blog\/wp-content\/uploads\/2019\/03\/debiansuites-300x157.png 300w, https:\/\/www.lucas-nussbaum.net\/blog\/wp-content\/uploads\/2019\/03\/debiansuites-768x402.png 768w, https:\/\/www.lucas-nussbaum.net\/blog\/wp-content\/uploads\/2019\/03\/debiansuites-1024x536.png 1024w\" sizes=\"auto, (max-width: 1040px) 100vw, 1040px\" \/><\/p>\n<p>(This is slide 42 of the <a href=\"https:\/\/www.debian.org\/doc\/manuals\/packaging-tutorial\/packaging-tutorial.en.pdf\">Debian Packaging Tutorial<\/a>.)<\/p>\n<p><code>deb http:\/\/deb.debian.org\/debian jessie main<\/code> is the easy one. It contains the bulk of packages. It is initialized by copying the content of the <code>testing<\/code> suite when a new <i>stable release<\/i> happens, approximately every two years. It is then updated from <code>stable-new<\/code> (an internal suite) when <i>stable point releases<\/i> happen (see below).<\/p>\n<p><code>deb http:\/\/security.debian.org\/debian-security jessie\/updates main<\/code> is the <code>security<\/code> suite in the figure above. It is used by the Debian security team to provide security updates. They are announced on the <a href=\"https:\/\/lists.debian.org\/debian-security-announce\/\">debian-security-announce mailing list<\/a>.<\/p>\n<p><code>deb http:\/\/ftp.debian.org\/debian jessie-updates main<\/code> (<code>stable-updates<\/code> above) is a suite used to distribute important updates that are unrelated to security, and that cannot wait the next <i>stable point release<\/i>. They are announced on the <a href=\"https:\/\/lists.debian.org\/debian-stable-announce\/\">debian-stable-announce mailing list<\/a>. Interestingly, a large proportion of those updates are related to changes to daylight-saving-time rules that are sometimes made very late by some countries.<\/p>\n<p><i>stable point releases<\/i> happen every few months (see for example the <a href=\"https:\/\/lists.debian.org\/debian-announce\/2018\/msg00002.html\">Debian 8.11 stable point release<\/a>). They consist in updating the <code>stable<\/code> suite by copying important updates that were submitted to <code>stable-proposed-updates<\/code>. Security updates are also included.<\/i><\/p>\n<p><code>backports<\/code> follow an entirely different path. They are new versions of packages, based on the version currently in the <code>testing<\/code> suite. See <a href=\"https:\/\/backports.debian.org\/\">the backports team website<\/a>.<\/p>\n<p>So, what happened?<\/p>\n<p>In June 2018&#8230;<\/p>\n<p>Debian 8.11 (in June 2018) was the final update for Debian 8. As stated in <a href=\"https:\/\/lists.debian.org\/debian-announce\/2018\/msg00002.html\">its announcement<\/a>:<\/p>\n<pre>After this point release, Debian's Security and Release Teams will no\r\nlonger be producing updates for Debian 8. Users wishing to continue to\r\nreceive security support should upgrade to Debian 9, or see\r\nhttps:\/\/wiki.debian.org\/LTS for details about the subset of\r\narchitectures and packages covered by the Long Term Support project.<\/pre>\n<p>In other words: <code>jessie<\/code> and <code>jessie-updates<\/code> won&#8217;t receive any update. The only updates will be through the security suite, by the <a href=\"https:\/\/wiki.debian.org\/LTS\">Debian Long Term Support project<\/a>.<\/p>\n<p>At about the same time (I think &#8211; I could not find an announcement &#8212; Update: <a href=\"https:\/\/lists.debian.org\/debian-backports-announce\/2018\/07\/msg00000.html\">announcement<\/a>), the maintenance of backports for jessie was also stopped. Which makes sense, because the backports team provides backports for the current release, and stretch was released in June 2017.<\/p>\n<p>In March 2019&#8230;<\/p>\n<p>The FTP masters team decided to remove the jessie-updates and jessie-backports suite from the mirrors. This was announced on <a href=\"https:\/\/lists.debian.org\/debian-devel-announce\/2019\/03\/msg00006.html\">debian-devel-announce<\/a>, resulting in the errors quoted above.<\/p>\n<p>How to solve this?<\/p>\n<p>For the <code>jessie-updates<\/code> suite, you can simply remove it from your <code>\/etc\/apt\/sources.list<\/code>. It is useless, because all packages that were in <code>jessie-updates<\/code> were merged into <code>jessie<\/code> when Debian 8.11 was released.<\/p>\n<p>The <code>jessie-backports<\/code> suite was archived <a href=\"http:\/\/archive.debian.org\/debian\/dists\/jessie-backports\/\">on archive.debian.org<\/a>, so you can use:<\/p>\n<pre>deb http:\/\/archive.debian.org\/debian\/ jessie-backports main contrib non-free\r\ndeb-src http:\/\/archive.debian.org\/debian\/ jessie-backports main contrib non-free<\/pre>\n<p>But then you will run into another issue:<\/p>\n<pre>E: Release file for http:\/\/archive.debian.org\/debian\/dists\/jessie-backports\/InRelease is expired (invalid since 36d 1h 9min 51s). Updates for this repository will not be applied.<\/pre>\n<p>Unfortunately, with the APT version in jessie, this cannot be ignored on a per source basis (it can with the APT version from stretch, using the <code>deb [check-valid-until=no] ...<\/code> syntax). So you need to disable this check globally, using:<\/p>\n<pre>echo 'Acquire::Check-Valid-Until no;' > \/etc\/apt\/apt.conf.d\/99no-check-valid-until<\/pre>\n<p>After that, <code>apt-get update<\/code> just works.<\/p>\n<p>(There are some discussions about resurrecting the <code>jessie-updates<\/code> suite to avoid the above errors, but it is probably getting less and less useful as time passes.)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you are still running jessie you probably noticed that the jessie-updates and jessie-backports suites have been removed from mirrors, because you got those error messages: W: Failed to fetch http:\/\/ftp.debian.org\/debian\/dists\/jessie-updates\/main\/binary-amd64\/Packages 404 Not Found [IP: 130.89.148.12 80] W: Failed to fetch http:\/\/ftp.debian.org\/debian\/dists\/jessie-backports\/main\/binary-amd64\/Packages 404 Not Found [IP: 130.89.148.12 80] I was not involved in that decision [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[],"class_list":["post-947","post","type-post","status-publish","format-standard","hentry","category-planetdebian"],"_links":{"self":[{"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/947","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=947"}],"version-history":[{"count":10,"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/947\/revisions"}],"predecessor-version":[{"id":958,"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/947\/revisions\/958"}],"wp:attachment":[{"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=947"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=947"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=947"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}