[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#76027: apt-cdrom: ReduceSourcelist dosn't compare prefix



Package: apt
Version: 0.3.19
Severity: important

I create Debian CD with add-on debian-security, debian-kde and
debian-helix. Packages file are in directories (from root of CD):

debian-helix/dists/woody/main/binary-i386
debian-kde/dists/potato/kde2/binary-i386
debian-security/dists/potato/updates/contrib/binary-i386
debian-security/dists/potato/updates/main/binary-i386
debian-security/dists/potato/updates/non-free/binary-i386

cmdline/apt-cdrom.cc (FindPackages and Drop*) produce correct list of
directories, in which Packages files is. After copying files
by PackageCopy::CopyPackages list is:

debian-helix/ woody main
debian-kde/ potato kde2
debian-security/ potato updates/contrib
debian-security/ potato updates/main
debian-security/ potato updates/non-free

After ReduceSourcelist is:

debian-helix/ woody main
debian-kde/ potato kde2 updates/contrib updates/main updates/non-free

It's bug. debian-kde and debian-security have distribution potato,
and ReduceSourcelist compare only distribution, but not prefix.

Fix is:

diff -r -u apt-0.3.19.dist/cmdline/apt-cdrom.cc apt-0.3.19/cmdline/apt-cdrom.cc
--- apt-0.3.19.dist/cmdline/apt-cdrom.cc	Wed Nov  1 10:23:16 2000
+++ apt-0.3.19/cmdline/apt-cdrom.cc	Wed Nov  1 13:19:35 2000
@@ -271,6 +271,7 @@
 	 continue;
       
       string Word1 = string(*I,Space,SSpace-Space);
+      string Prefix = string(*I,0,Space);
       for (vector<string>::iterator J = List.begin(); J != I; J++)
       {
 	 // Find a space..
@@ -281,6 +282,8 @@
 	 if (SSpace2 == string::npos)
 	    continue;
 	 
+	 if (string(*J,0,Space2) != Prefix)
+	    continue;
 	 if (string(*J,Space2,SSpace2-Space2) != Word1)
 	    continue;
 	 
**********************************************************************
*  Name:    Vladimir Michl                                           *
*  E-mail:  Vladimir.Michl@seznam.cz                                 *
*  Web:     http://www.penguin.cz/~michlv                            *
*  Tel:    +420/68/5391545                 Work: 068/5711292         *
*           068/5391545                          Czech Republic      *
**********************************************************************




Reply to: