The standard Debian repository does not have changelog feature. Ubuntu created new site to collect the changelog files of all packages from official repositories.
http://changelogs.ubuntu.com/changelogs/
This could not work with PPA's as they don't want to mix them up with official one. Another thing I can think of, PPA's have no strict policy for package name or version, there is chance to get packages with same name and same version. So may be the correct way to implement this is:
- Create a different folders structure for PPA changelog site (no site yet)
- or Add changelog files directly to the repositories with
.dsc
& source files. And this is diverge from Debian standards, no harm but extra files for mirrors.
In the processes to debianize (package for debian) of any tool & documentation, The packager (first maintainer) create a sub-folder named debian/
at the root of source tree. This folder contains many files like control
, rules
, ... so changelog
is one of them.
4.4 Debian changelog: debian/changelog
Changes in the Debian version of the package should be briefly
explained in the Debian changelog file debian/changelog.[15] This
includes modifications made in the Debian package compared to the
upstream one as well as other changes and updates to the package. [16]
The format of the debian/changelog allows the package building tools
to discover which version of the package is being built and find out
other release-specific information.
Source: Debian Policy Manual: Chapter 4 - Source packages
On each package update or release, a maintainer should update the changelog file before uploading the the debian source package to the repository or PPA.
You can also get link to changelog from http://packages.ubuntu.com/ package page or open the source package with an archive viewer. However, This does not apply to Chrome as it is a closed source and has no source package (only binary). Also I get find a posted changelog or organized release note for Chrome, but chromium share many updates with it. See Where can I find the Release-Notes for each version of Google Chrome for Linux?
Other References:
How did I get that?
As I wasn't aware how these things works, I just traced update-manger
network activity.
Run it in background
$ update-manager &
[1] 25490
Wait till it finishes updating the package lists.
Run trace it network network activity
$ sudo strace -p 25490 -f -e trace=network -s 10000 -o strace_update_manager.log
Click to see changes for another package (Firefox in my example) then for Chrome.
- Ctrl+C to stop tracing
Check the generated log, You may not able to understand the whole line but at least you can notice the requested filename and 404
Not Found HTTP code.
25641 sendto(14, "GET /changelogs/pool/main/f/firefox/firefox_43.0+build1-0ubuntu0.15.10.1/NEWS.Debian HTTP/1.1\r\nAccept-Encoding: identity\r\nHost: changelogs.ubuntu.com\r\nUser-Agent: Python-urllib/3.4\r\nConnection: close\r\n\r\n", 203, 0, NULL, 0) = 203
25641 <... recvfrom resumed> "HTTP/1.1 404 Not Found\r\nDate: Wed, 16 Dec 2015 05:49:09 GMT\r\nServer: Apache\r\nVary: Accept-Encoding\r\nContent-Length: 277\r\nConnection: close\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n<html><head>\n<title>404 Not Found</title>\n</head><body>\n<h1>Not Found</h1>\n<p>The requested URL /changelogs/pool/main/f/firefox/firefox_43.0+build1-0ubuntu0.15.10.1/NEWS.Debian was not found on this server.</p>\n</body></html>\n", 8192, 0, NULL, NULL) = 464
25641 sendto(14, "GET /changelogs/pool/main/f/firefox/firefox_43.0+build1-0ubuntu0.15.10.1/changelog HTTP/1.1\r\nAccept-Encoding: identity\r\nHost: changelogs.ubuntu.com\r\nUser-Agent: Python-urllib/3.4\r\nConnection: close\r\n\r\n", 201, 0, NULL, 0) = 201
25641 <... recvfrom resumed> "HTTP/1.1 200 OK\r\nDate: Wed, 16 Dec 2015 05:49:10 GMT\r\nServer: Apache\r\nLast-Modified: Tue, 15 Dec 2015 21:16:47 GMT\r\nETag: \"270220c-6fa90-526f64eac1783\"\r\nAccept-Ranges: bytes\r\nContent-Length: 457360\r\nConnection: close\r\nContent-Type: text/plain; charset=utf-8\r\n\r\nfirefox (43.0+build1-0ubuntu0.15.10.1) wily-security; urgency=medium\n\n * New upstream stable release (FIREFOX_43_0_BUILD1)\n - see USN-2833-1\n\n * Refresh patches\n - update debian/patches/ubuntu-ua-string-changes.patch\n - update debian/patches/unity-menubar.patch\n * Remove patches fixed upstream\n - remove debian/patches/dont-hardcode-softfp-on-armhf.patch\n - update debian/patches/series\n\n -- Chris Coulson <chris.coulson@canonical.com> Thu, 10 Dec 2015 00:44:58 +0000\n\nfirefox (42.0+build2-0ubuntu0.15.10.1) wily-security; urgency=medium\n\n * New upstream release from the beta channel (FIREFOX_42_0_BUILD2)\n - see USN-2785-1\n\n * Refresh patches\n - update debian/patches/dont-override-general-useragent-locale.patch\n - update debian/patches/unity-menubar.patch\n * Update unity-menubar.patch to work with GTK3\n * Install compare-locales in to the virtualenv with --old-and-unmanageable -\n the fix for bmo: #1188224 is incompatible with zipped eggs\n * Turn on the crash reporter again\n\n -- Chris Coulson <chris.coulson@canonical.com> Wed, 28 Oct 2015 09:56:35 +0000\n\nfirefox (41.0.2+build2-0ubuntu1) wily; urgency=medium\n\n * New upstream stable release (FIREFOX_41_0_2_BUILD2)\n - see USN-2768-1\n\n * Explicitly link with -latomic to fix the build on powerpc\n\n -- Chris Coulson <chris.coulson@canonical.com> Wed, 14 Oct 2015 09:45:03 +0100\n\nfirefox (41.0.1+build2-0ubuntu1) wily; urgency=medium\n\n * New upstream stable release (FIREFOX_41_0_1_BUILD2)\n - see USN-2743-4 and LP: #1501277\n\n * Disable the crash reporter as symbol uploads are currently broken. This\n means that Apport will be catching crashes for now\n\n -- Chris Coulson <chris.coulson@canonical.com> Thu, 01 Oct 2015 17:48:02 +0100\n\nfirefox (41.0+build3-0ubuntu1) wily; urgency=medium\n\n * New upstream stable release (FIREFOX_41_0_BUILD3)\n - see USN-2743-1\n\n * Refresh patches\n - update debian/patches/ubuntu-bookmarks.patch\n - update debian/patches/normalize-distribution-searchplugins.patch\n - update debian/patches/dont-override-general-useragent-locale.patch\n * Drop backout-bmo1162569.patch and update how we install our distribution\n searchplugins\n - update debian/build/rules.mk\n - add debian/config/searchplugins.conf\n - add debian/install-distribution-searchplugins.py", 8192, 0, NULL, NULL) = 2576
25642 sendto(14, "GET /changelogs/pool/main/g/google-chrome-stable/google-chrome-stable_47.0.2526.106-1/NEWS.Debian HTTP/1.1\r\nAccept-Encoding: identity\r\nHost: changelogs.ubuntu.com\r\nUser-Agent: Python-urllib/3.4\r\nConnection: close\r\n\r\n", 216, 0, NULL, 0) = 216
25642 <... recvfrom resumed> "HTTP/1.1 404 Not Found\r\nDate: Wed, 16 Dec 2015 05:49:24 GMT\r\nServer: Apache\r\nVary: Accept-Encoding\r\nContent-Length: 290\r\nConnection: close\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n<html><head>\n<title>404 Not Found</title>\n</head><body>\n<h1>Not Found</h1>\n<p>The requested URL /changelogs/pool/main/g/google-chrome-stable/google-chrome-stable_47.0.2526.106-1/NEWS.Debian was not found on this server.</p>\n</body></html>\n", 8192, 0, NULL, NULL) = 477
25642 sendto(14, "GET /linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_47.0.2526.106-1_amd64.changelog HTTP/1.1\r\nAccept-Encoding: identity\r\nHost: dl.google.com\r\nUser-Agent: Python-urllib/3.4\r\nConnection: close\r\n\r\n", 218, 0, NULL, 0) = 218
25642 <... recvfrom resumed> "HTTP/1.1 404 Not Found\r\nContent-Length: 1449\r\nContent-Type: text/html; charset=utf-8\r\nServer: downloads\r\nX-Content-Type-Options: nosniff\r\nX-Frame-Options: SAMEORIGIN\r\nX-Xss-Protection: 1; mode=block\r\nDate: Wed, 16 Dec 2015 05:49:25 GMT\r\nConnection: close\r\n\r\n\n<!DOCTYPE html>\n<html lang=en>\n <meta charset=utf-8>\n <meta name=viewport content=\"initial-scale=1, minimum-scale=1, width=device-width\">\n <title>Error 404 (Not Found)!!1</title>\n <style>\n *{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px}* > body{background:url(//www.google.com/images/errors/robot.png) 100% 5px no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}}#logo{background:url(//www.google.com/images/logos/errorpage/error_logo-150x54.png) no-repeat;margin-left:-5px}@media only screen and (min-resolution:192dpi){#logo{background:url(//www.google.com/images/logos/errorpage/error_logo-150x54-2x.png) no-repeat 0% 0%/100% 100%;-moz-border-image:url(//www.google.com/images/logos/errorpage/error_logo-150x54-2x.png) 0}}@media only screen and (-webkit-min-device-pixel-ratio:2){#logo{background:url(//www.google.com/images/logos/errorpage/error_logo-150x54-2x.png) no-repeat;-webkit-background-size:100% 100%}}#logo{display:inline-block;height:54px;width:150px}\n </style>\n <a href=//www.google.com/><span id=logo aria-label=Google></span></a>\n <p><b>404.</b> <ins>That\342\200\231s an error.</ins>\n <p> <ins>That\342\200\231s all we know.</ins>\n", 8192, 0, NULL, NULL) = 1707
Note: The lines above are picked by me and the complete log is more verbose then what I posted. Here is the full log.
Reference: