]> git.proxmox.com Git - pve-manager.git/commitdiff
implement better method to compute changelog url
authorDietmar Maurer <dietmar@proxmox.com>
Tue, 18 Jun 2013 12:13:49 +0000 (14:13 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Tue, 18 Jun 2013 12:13:49 +0000 (14:13 +0200)
apt-get uses similar code.

PVE/API2/APT.pm

index f8bf59fd5406afa20aeb59eea589353f600fa2fc..78188aab494b43558f13d5cfa678fb10323c6c7a 100644 (file)
@@ -3,6 +3,7 @@ package PVE::API2::APT;
 use strict;
 use warnings;
 use File::stat ();
+use File::Basename;
 
 use LWP::UserAgent;
 
@@ -73,15 +74,14 @@ my $get_changelug_url = sub {
     foreach my $verfile (@{$candidate_ver->{FileList}}) {
        my $pkgfile = $verfile->{File};
        my $origin = $pkgfile->{Origin};
-       my $comp = $pkgfile->{Component};
-       if ($origin && $comp) {
+       my $base = dirname($info->{FileName});
+       if ($origin && $base) {
            my $pkgver = $candidate_ver->{VerStr};
            $pkgver =~ s/^\d+://; # strip epoch
            my $srcpkg = $info->{SourcePkg} || $pkgname;
-           my $firstLetter = substr($srcpkg, 0, 1);
            if ($origin eq 'Debian') {
-               $changelog_url = "http://packages.debian.org/changelogs/pool/$comp/" . 
-                   "$firstLetter/$srcpkg/${srcpkg}_$pkgver/changelog";
+               $changelog_url = "http://packages.debian.org/changelogs/$base/" . 
+                   "${srcpkg}_$pkgver/changelog";
            }
            last;
        }