Browse Source

Merge with Michael AND update PO files

* po/fr.po: Completed to 510 strings
* po/*.po��: Synced with the POT files

Patches applied:

 * apt@packages.debian.org/apt--sources-list-d--0--base-0
   tag of apt@packages.debian.org/apt--main--0--patch-30

 * apt@packages.debian.org/apt--sources-list-d--0--patch-1
   Patch from apt-rpm via Michael Vogt to implement /etc/apt/sources.list.d

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-85
   * merged with bubulle, changelog updates

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-86
   * merged the NMU from Franz Pop, fixed armeb problem (#333599)

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-87
   * removed double armeb entry in buildlib/sizetable

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-88
   * finalized changelog

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-89
   * turn off "secure-acquire" when --allow-unauthenticated is given

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-90
   * merged the sources.list.d patch

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-91
   * merged with bubulle

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-92
   * changelog update

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-93
   * sources.list.d documented

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-94
   * pkgDirStream has (slightly) better extract support now

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-95
   * merge fix for #339533

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-96
   * merged with bubulle

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-97
   * some more debug output

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-98
   * ABI change: merged more flexible pkgAcquireFile code

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-99
   * merged http download limit for apt (#146877)

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-100
   * applied parts of the string speedup patch from debian #319377 (ABI change)

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-101
   * fix for #340448

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-102
   * finalized this release

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-103
   * changelog updates

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-104
   * build-depend on libdb4.3 now, fix for kFreeBSD (#317718)

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-105
   * fix mailaddress

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-106
   * fix a string (thanks to bubulle)
debian/1.8.y
Christian Perrier 17 years ago
parent
commit
a0f9b6bee8
  1. 16
      apt-inst/dirstream.cc
  2. 33
      apt-pkg/acquire-item.cc
  3. 11
      apt-pkg/acquire-item.h
  4. 6
      apt-pkg/acquire.cc
  5. 2
      apt-pkg/cacheiterators.h
  6. 26
      apt-pkg/contrib/configuration.cc
  7. 28
      apt-pkg/contrib/configuration.h
  8. 1
      apt-pkg/contrib/md5.h
  9. 2
      apt-pkg/contrib/mmap.h
  10. 4
      apt-pkg/contrib/progress.cc
  11. 4
      apt-pkg/contrib/progress.h
  12. 67
      apt-pkg/contrib/strutl.cc
  13. 26
      apt-pkg/contrib/strutl.h
  14. 4
      apt-pkg/deb/deblistparser.cc
  15. 5
      apt-pkg/init.cc
  16. 2
      apt-pkg/init.h
  17. 2
      apt-pkg/makefile
  18. 4
      apt-pkg/packagemanager.cc
  19. 4
      apt-pkg/pkgcache.cc
  20. 6
      apt-pkg/pkgcache.h
  21. 16
      apt-pkg/pkgcachegen.cc
  22. 17
      apt-pkg/pkgcachegen.h
  23. 113
      apt-pkg/sourcelist.cc
  24. 5
      apt-pkg/sourcelist.h
  25. 2
      buildlib/archtable
  26. 2
      buildlib/sizetable
  27. 4
      cmdline/apt-get.cc
  28. 2
      configure.in
  29. 47
      debian/changelog
  30. 2
      debian/control
  31. 1
      doc/examples/configure-index
  32. 7
      doc/sources.list.5.xml
  33. 51
      methods/http.cc
  34. 5
      methods/http.h
  35. 2
      methods/makefile
  36. 5
      po/ChangeLog
  37. 183
      po/apt-all.pot
  38. 183
      po/bs.po
  39. 185
      po/ca.po
  40. 185
      po/cs.po
  41. 185
      po/da.po
  42. 185
      po/de.po
  43. 185
      po/el.po
  44. 183
      po/en_GB.po
  45. 185
      po/es.po
  46. 234
      po/eu.po
  47. 185
      po/fi.po
  48. 185
      po/fr.po
  49. 183
      po/he.po
  50. 185
      po/hu.po
  51. 185
      po/it.po
  52. 185
      po/ja.po
  53. 185
      po/ko.po
  54. 185
      po/nb.po
  55. 185
      po/nl.po
  56. 185
      po/nn.po
  57. 185
      po/pl.po
  58. 185
      po/pt.po
  59. 185
      po/pt_BR.po
  60. 185
      po/ro.po
  61. 185
      po/ru.po
  62. 185
      po/sk.po
  63. 185
      po/sl.po
  64. 559
      po/sv.po
  65. 224
      po/tl.po
  66. 185
      po/zh_CN.po
  67. 185
      po/zh_TW.po
  68. BIN
      share/debian-archive.gpg

16
apt-inst/dirstream.cc

@ -61,6 +61,22 @@ bool pkgDirStream::DoItem(Item &Itm,int &Fd)
case Item::CharDevice:
case Item::BlockDevice:
case Item::Directory:
{
struct stat Buf;
// check if the dir is already there, if so return true
if (stat(Itm.Name,&Buf) == 0)
{
if(S_ISDIR(Buf.st_mode))
return true;
// something else is there already, return false
return false;
}
// nothing here, create the dir
if(mkdir(Itm.Name,Itm.Mode) < 0)
return false;
return true;
break;
}
case Item::FIFO:
break;
}

33
apt-pkg/acquire-item.cc

@ -184,7 +184,7 @@ string pkgAcqIndex::Custom600Headers()
void pkgAcqIndex::Failed(string Message,pkgAcquire::MethodConfig *Cnf)
{
// no .bz2 found, retry with .gz
if(Desc.URI.substr(Desc.URI.size()-3,Desc.URI.size()-1) == "bz2") {
if(Desc.URI.substr(Desc.URI.size()-3) == "bz2") {
Desc.URI = Desc.URI.substr(0,Desc.URI.size()-3) + "gz";
// retry with a gzip one
@ -290,7 +290,7 @@ void pkgAcqIndex::Done(string Message,unsigned long Size,string MD5,
else
Local = true;
string compExt = Desc.URI.substr(Desc.URI.size()-3,Desc.URI.size()-1);
string compExt = Desc.URI.substr(Desc.URI.size()-3);
char *decompProg;
if(compExt == "bz2")
decompProg = "bzip2";
@ -315,10 +315,9 @@ pkgAcqMetaSig::pkgAcqMetaSig(pkgAcquire *Owner,
const vector<IndexTarget*>* IndexTargets,
indexRecords* MetaIndexParser) :
Item(Owner), RealURI(URI), MetaIndexURI(MetaIndexURI),
MetaIndexURIDesc(MetaIndexURIDesc), MetaIndexShortDesc(MetaIndexShortDesc)
MetaIndexURIDesc(MetaIndexURIDesc), MetaIndexShortDesc(MetaIndexShortDesc),
MetaIndexParser(MetaIndexParser), IndexTargets(IndexTargets)
{
this->MetaIndexParser = MetaIndexParser;
this->IndexTargets = IndexTargets;
DestFile = _config->FindDir("Dir::State::lists") + "partial/";
DestFile += URItoFileName(URI);
@ -430,11 +429,9 @@ pkgAcqMetaIndex::pkgAcqMetaIndex(pkgAcquire *Owner,
string SigFile,
const vector<struct IndexTarget*>* IndexTargets,
indexRecords* MetaIndexParser) :
Item(Owner), RealURI(URI), SigFile(SigFile)
Item(Owner), RealURI(URI), SigFile(SigFile), AuthPass(false),
MetaIndexParser(MetaIndexParser), IndexTargets(IndexTargets)
{
this->AuthPass = false;
this->MetaIndexParser = MetaIndexParser;
this->IndexTargets = IndexTargets;
DestFile = _config->FindDir("Dir::State::lists") + "partial/";
DestFile += URItoFileName(URI);
@ -770,6 +767,12 @@ pkgAcqArchive::pkgAcqArchive(pkgAcquire *Owner,pkgSourceList *Sources,
}
}
// "allow-unauthenticated" restores apts old fetching behaviour
// that means that e.g. unauthenticated file:// uris are higher
// priority than authenticated http:// uris
if (_config->FindB("APT::Get::AllowUnauthenticated",false) == true)
Trusted = false;
// Select a source
if (QueueNext() == false && _error->PendingError() == false)
_error->Error(_("I wasn't able to locate file for the %s package. "
@ -1002,13 +1005,19 @@ void pkgAcqArchive::Finished()
// ---------------------------------------------------------------------
/* The file is added to the queue */
pkgAcqFile::pkgAcqFile(pkgAcquire *Owner,string URI,string MD5,
unsigned long Size,string Dsc,string ShortDesc) :
unsigned long Size,string Dsc,string ShortDesc,
const string &DestDir, const string &DestFilename) :
Item(Owner), Md5Hash(MD5)
{
Retries = _config->FindI("Acquire::Retries",0);
DestFile = flNotDir(URI);
if(!DestFilename.empty())
DestFile = DestFilename;
else if(!DestDir.empty())
DestFile = DestDir + "/" + flNotDir(URI);
else
DestFile = flNotDir(URI);
// Create the item
Desc.URI = URI;
Desc.Description = Dsc;

11
apt-pkg/acquire-item.h

@ -224,9 +224,14 @@ class pkgAcqFile : public pkgAcquire::Item
pkgAcquire::MethodConfig *Cnf);
virtual string MD5Sum() {return Md5Hash;};
virtual string DescURI() {return Desc.URI;};
pkgAcqFile(pkgAcquire *Owner,string URI,string MD5,unsigned long Size,
string Desc,string ShortDesc);
// If DestFilename is empty, download to DestDir/<basename> if
// DestDir is non-empty, $CWD/<basename> otherwise. If
// DestFilename is NOT empty, DestDir is ignored and DestFilename
// is the absolute name to which the file should be downloaded.
pkgAcqFile(pkgAcquire *Owner, string URI, string MD5, unsigned long Size,
string Desc, string ShortDesc,
const string &DestDir="", const string &DestFilename="");
};
#endif

6
apt-pkg/acquire.cc

@ -266,7 +266,11 @@ pkgAcquire::MethodConfig *pkgAcquire::GetConfig(string Access)
Worker Work(Conf);
if (Work.Start() == false)
return 0;
/* if a method uses DownloadLimit, we switch to SingleInstance mode */
if(_config->FindI("Acquire::"+Access+"::DlLimit",0) > 0)
Conf->SingleInstance = true;
return Conf;
}
/*}}}*/

2
apt-pkg/cacheiterators.h

@ -107,7 +107,7 @@ class pkgCache::VerIterator
// Iteration
void operator ++(int) {if (Ver != Owner->VerP) Ver = Owner->VerP + Ver->NextVer;};
inline void operator ++() {operator ++(0);};
inline bool end() const {return Ver == Owner->VerP?true:false;};
inline bool end() const {return Owner == NULL || (Ver == Owner->VerP?true:false);};
inline void operator =(const VerIterator &B) {Ver = B.Ver; Owner = B.Owner;};
// Comparison

26
apt-pkg/contrib/configuration.cc

@ -110,7 +110,7 @@ Configuration::Item *Configuration::Lookup(Item *Head,const char *S,
return 0;
I = new Item;
I->Tag = string(S,Len);
I->Tag.assign(S,Len);
I->Next = *Last;
I->Parent = Head;
*Last = I;
@ -161,7 +161,7 @@ string Configuration::Find(const char *Name,const char *Default) const
if (Itm == 0 || Itm->Value.empty() == true)
{
if (Default == 0)
return string();
return "";
else
return Default;
}
@ -180,7 +180,7 @@ string Configuration::FindFile(const char *Name,const char *Default) const
if (Itm == 0 || Itm->Value.empty() == true)
{
if (Default == 0)
return string();
return "";
else
return Default;
}
@ -294,7 +294,7 @@ string Configuration::FindAny(const char *Name,const char *Default) const
// Configuration::CndSet - Conditinal Set a value /*{{{*/
// ---------------------------------------------------------------------
/* This will not overwrite */
void Configuration::CndSet(const char *Name,string Value)
void Configuration::CndSet(const char *Name,const string &Value)
{
Item *Itm = Lookup(Name,true);
if (Itm == 0)
@ -306,7 +306,7 @@ void Configuration::CndSet(const char *Name,string Value)
// Configuration::Set - Set a value /*{{{*/
// ---------------------------------------------------------------------
/* */
void Configuration::Set(const char *Name,string Value)
void Configuration::Set(const char *Name,const string &Value)
{
Item *Itm = Lookup(Name,true);
if (Itm == 0)
@ -330,7 +330,7 @@ void Configuration::Set(const char *Name,int Value)
// Configuration::Clear - Clear an single value from a list /*{{{*/
// ---------------------------------------------------------------------
/* */
void Configuration::Clear(string Name, int Value)
void Configuration::Clear(const string Name, int Value)
{
char S[300];
snprintf(S,sizeof(S),"%i",Value);
@ -340,7 +340,7 @@ void Configuration::Clear(string Name, int Value)
// Configuration::Clear - Clear an single value from a list /*{{{*/
// ---------------------------------------------------------------------
/* */
void Configuration::Clear(string Name, string Value)
void Configuration::Clear(const string Name, string Value)
{
Item *Top = Lookup(Name.c_str(),false);
if (Top == 0 || Top->Child == 0)
@ -377,7 +377,7 @@ void Configuration::Clear(string Name)
if (Top == 0)
return;
Top->Value = string();
Top->Value.clear();
Item *Stop = Top;
Top = Top->Child;
Stop->Child = 0;
@ -485,7 +485,7 @@ string Configuration::Item::FullTag(const Item *Stop) const
sections like 'zone "foo.org" { .. };' This causes each section to be
added in with a tag like "zone::foo.org" instead of being split
tag/value. AsSectional enables Sectional parsing.*/
bool ReadConfigFile(Configuration &Conf,string FName,bool AsSectional,
bool ReadConfigFile(Configuration &Conf,const string &FName,bool AsSectional,
unsigned Depth)
{
// Open the stream for reading
@ -711,13 +711,13 @@ bool ReadConfigFile(Configuration &Conf,string FName,bool AsSectional,
}
// Empty the buffer
LineBuffer = string();
LineBuffer.clear();
// Move up a tag, but only if there is no bit to parse
if (TermChar == '}')
{
if (StackPos == 0)
ParentTag = string();
ParentTag.clear();
else
ParentTag = Stack[--StackPos];
}
@ -742,8 +742,8 @@ bool ReadConfigFile(Configuration &Conf,string FName,bool AsSectional,
// ReadConfigDir - Read a directory of config files /*{{{*/
// ---------------------------------------------------------------------
/* */
bool ReadConfigDir(Configuration &Conf,string Dir,bool AsSectional,
unsigned Depth)
bool ReadConfigDir(Configuration &Conf,const string &Dir,bool AsSectional,
unsigned Depth)
{
DIR *D = opendir(Dir.c_str());
if (D == 0)

28
apt-pkg/contrib/configuration.h

@ -69,30 +69,30 @@ class Configuration
public:
string Find(const char *Name,const char *Default = 0) const;
string Find(string Name,const char *Default = 0) const {return Find(Name.c_str(),Default);};
string Find(const string Name,const char *Default = 0) const {return Find(Name.c_str(),Default);};
string FindFile(const char *Name,const char *Default = 0) const;
string FindDir(const char *Name,const char *Default = 0) const;
int FindI(const char *Name,int Default = 0) const;
int FindI(string Name,int Default = 0) const {return FindI(Name.c_str(),Default);};
int FindI(const string Name,int Default = 0) const {return FindI(Name.c_str(),Default);};
bool FindB(const char *Name,bool Default = false) const;
bool FindB(string Name,bool Default = false) const {return FindB(Name.c_str(),Default);};
bool FindB(const string Name,bool Default = false) const {return FindB(Name.c_str(),Default);};
string FindAny(const char *Name,const char *Default = 0) const;
inline void Set(string Name,string Value) {Set(Name.c_str(),Value);};
void CndSet(const char *Name,string Value);
void Set(const char *Name,string Value);
inline void Set(const string Name,string Value) {Set(Name.c_str(),Value);};
void CndSet(const char *Name,const string &Value);
void Set(const char *Name,const string &Value);
void Set(const char *Name,int Value);
inline bool Exists(string Name) const {return Exists(Name.c_str());};
inline bool Exists(const string Name) const {return Exists(Name.c_str());};
bool Exists(const char *Name) const;
bool ExistsAny(const char *Name) const;
// clear a whole tree
void Clear(string Name);
void Clear(const string Name);
// remove a certain value from a list (e.g. the list of "APT::Keep-Fds")
void Clear(string List, string Value);
void Clear(string List, int Value);
void Clear(const string List, string Value);
void Clear(const string List, int Value);
inline const Item *Tree(const char *Name) const {return Lookup(Name);};
@ -106,10 +106,12 @@ class Configuration
extern Configuration *_config;
bool ReadConfigFile(Configuration &Conf,string FName,bool AsSectional = false,
bool ReadConfigFile(Configuration &Conf,const string &FName,
bool AsSectional = false,
unsigned Depth = 0);
bool ReadConfigDir(Configuration &Conf,string Dir,bool AsSectional = false,
unsigned Depth = 0);
bool ReadConfigDir(Configuration &Conf,const string &Dir,
bool AsSectional = false,
unsigned Depth = 0);
#endif

1
apt-pkg/contrib/md5.h

@ -29,6 +29,7 @@
#include <string>
#include <algorithm>
#include <stdint.h>
using std::string;
using std::min;

2
apt-pkg/contrib/mmap.h

@ -94,7 +94,7 @@ class DynamicMMap : public MMap
unsigned long RawAllocate(unsigned long Size,unsigned long Aln = 0);
unsigned long Allocate(unsigned long ItemSize);
unsigned long WriteString(const char *String,unsigned long Len = (unsigned long)-1);
inline unsigned long WriteString(string S) {return WriteString(S.c_str(),S.length());};
inline unsigned long WriteString(const string &S) {return WriteString(S.c_str(),S.length());};
void UsePools(Pool &P,unsigned int Count) {Pools = &P; PoolCount = Count;};
DynamicMMap(FileFd &F,unsigned long Flags,unsigned long WorkSpace = 2*1024*1024);

4
apt-pkg/contrib/progress.cc

@ -50,7 +50,7 @@ void OpProgress::Progress(unsigned long Cur)
// ---------------------------------------------------------------------
/* */
void OpProgress::OverallProgress(unsigned long Current, unsigned long Total,
unsigned long Size,string Op)
unsigned long Size,const string &Op)
{
this->Current = Current;
this->Total = Total;
@ -67,7 +67,7 @@ void OpProgress::OverallProgress(unsigned long Current, unsigned long Total,
// OpProgress::SubProgress - Set the sub progress state /*{{{*/
// ---------------------------------------------------------------------
/* */
void OpProgress::SubProgress(unsigned long SubTotal,string Op)
void OpProgress::SubProgress(unsigned long SubTotal,const string &Op)
{
this->SubTotal = SubTotal;
SubOp = Op;

4
apt-pkg/contrib/progress.h

@ -59,9 +59,9 @@ class OpProgress
void Progress(unsigned long Current);
void SubProgress(unsigned long SubTotal);
void SubProgress(unsigned long SubTotal,string Op);
void SubProgress(unsigned long SubTotal,const string &Op);
void OverallProgress(unsigned long Current,unsigned long Total,
unsigned long Size,string Op);
unsigned long Size,const string &Op);
virtual void Done() {};
OpProgress();

67
apt-pkg/contrib/strutl.cc

@ -199,10 +199,10 @@ bool ParseCWord(const char *&String,string &Res)
// QuoteString - Convert a string into quoted from /*{{{*/
// ---------------------------------------------------------------------
/* */
string QuoteString(string Str,const char *Bad)
string QuoteString(const string &Str, const char *Bad)
{
string Res;
for (string::iterator I = Str.begin(); I != Str.end(); I++)
for (string::const_iterator I = Str.begin(); I != Str.end(); I++)
{
if (strchr(Bad,*I) != 0 || isprint(*I) == 0 ||
*I <= 0x20 || *I >= 0x7F)
@ -220,7 +220,7 @@ string QuoteString(string Str,const char *Bad)
// DeQuoteString - Convert a string from quoted from /*{{{*/
// ---------------------------------------------------------------------
/* This undoes QuoteString */
string DeQuoteString(string Str)
string DeQuoteString(const string &Str)
{
string Res;
for (string::const_iterator I = Str.begin(); I != Str.end(); I++)
@ -317,7 +317,7 @@ string TimeToStr(unsigned long Sec)
// SubstVar - Substitute a string for another string /*{{{*/
// ---------------------------------------------------------------------
/* This replaces all occurances of Subst with Contents in Str. */
string SubstVar(string Str,string Subst,string Contents)
string SubstVar(const string &Str,const string &Subst,const string &Contents)
{
string::size_type Pos = 0;
string::size_type OldPos = 0;
@ -348,21 +348,18 @@ string SubstVar(string Str,const struct SubstVar *Vars)
/* This converts a URI into a safe filename. It quotes all unsafe characters
and converts / to _ and removes the scheme identifier. The resulting
file name should be unique and never occur again for a different file */
string URItoFileName(string URI)
string URItoFileName(const string &URI)
{
// Nuke 'sensitive' items
::URI U(URI);
U.User = string();
U.Password = string();
U.Access = "";
U.User.clear();
U.Password.clear();
U.Access.clear();
// "\x00-\x20{}|\\\\^\\[\\]<>\"\x7F-\xFF";
URI = QuoteString(U,"\\|{}[]<>\"^~_=!@#$%^&*");
string::iterator J = URI.begin();
for (; J != URI.end(); J++)
if (*J == '/')
*J = '_';
return URI;
string NewURI = QuoteString(U,"\\|{}[]<>\"^~_=!@#$%^&*");
replace(NewURI.begin(),NewURI.end(),'/','_');
return NewURI;
}
/*}}}*/
// Base64Encode - Base64 Encoding routine for short strings /*{{{*/
@ -371,7 +368,7 @@ string URItoFileName(string URI)
from wget and then patched and bug fixed.
This spec can be found in rfc2045 */
string Base64Encode(string S)
string Base64Encode(const string &S)
{
// Conversion table.
static char tbl[64] = {'A','B','C','D','E','F','G','H',
@ -540,17 +537,17 @@ int stringcasecmp(string::const_iterator A,string::const_iterator AEnd,
// ---------------------------------------------------------------------
/* The format is like those used in package files and the method
communication system */
string LookupTag(string Message,const char *Tag,const char *Default)
string LookupTag(const string &Message,const char *Tag,const char *Default)
{
// Look for a matching tag.
int Length = strlen(Tag);
for (string::iterator I = Message.begin(); I + Length < Message.end(); I++)
for (string::const_iterator I = Message.begin(); I + Length < Message.end(); I++)
{
// Found the tag
if (I[Length] == ':' && stringcasecmp(I,I+Length,Tag) == 0)
{
// Find the end of line and strip the leading/trailing spaces
string::iterator J;
string::const_iterator J;
I += Length + 1;
for (; isspace(*I) != 0 && I < Message.end(); I++);
for (J = I; *J != '\n' && J < Message.end(); J++);
@ -572,7 +569,7 @@ string LookupTag(string Message,const char *Tag,const char *Default)
// ---------------------------------------------------------------------
/* This inspects the string to see if it is true or if it is false and
then returns the result. Several varients on true/false are checked. */
int StringToBool(string Text,int Default)
int StringToBool(const string &Text,int Default)
{
char *End;
int Res = strtol(Text.c_str(),&End,0);
@ -738,7 +735,7 @@ static time_t timegm(struct tm *t)
'timegm' to convert a struct tm in UTC to a time_t. For some bizzar
reason the C library does not provide any such function :< This also
handles the weird, but unambiguous FTP time format*/
bool StrToTime(string Val,time_t &Result)
bool StrToTime(const string &Val,time_t &Result)
{
struct tm Tm;
char Month[10];
@ -825,7 +822,7 @@ static int HexDigit(int c)
// Hex2Num - Convert a long hex number into a buffer /*{{{*/
// ---------------------------------------------------------------------
/* The length of the buffer must be exactly 1/2 the length of the string. */
bool Hex2Num(string Str,unsigned char *Num,unsigned int Length)
bool Hex2Num(const string &Str,unsigned char *Num,unsigned int Length)
{
if (Str.length() != Length*2)
return false;
@ -986,7 +983,7 @@ char *safe_snprintf(char *Buffer,char *End,const char *Format,...)
// ---------------------------------------------------------------------
/* The domain list is a comma seperate list of domains that are suffix
matched against the argument */
bool CheckDomainList(string Host,string List)
bool CheckDomainList(const string &Host,const string &List)
{
string::const_iterator Start = List.begin();
for (string::const_iterator Cur = List.begin(); Cur <= List.end(); Cur++)
@ -1009,7 +1006,7 @@ bool CheckDomainList(string Host,string List)
// URI::CopyFrom - Copy from an object /*{{{*/
// ---------------------------------------------------------------------
/* This parses the URI into all of its components */
void URI::CopyFrom(string U)
void URI::CopyFrom(const string &U)
{
string::const_iterator I = U.begin();
@ -1038,9 +1035,9 @@ void URI::CopyFrom(string U)
SingleSlash = U.end();
// We can now write the access and path specifiers
Access = string(U,0,FirstColon - U.begin());
Access.assign(U.begin(),FirstColon);
if (SingleSlash != U.end())
Path = string(U,SingleSlash - U.begin());
Path.assign(SingleSlash,U.end());
if (Path.empty() == true)
Path = "/";
@ -1070,14 +1067,14 @@ void URI::CopyFrom(string U)
if (At == SingleSlash)
{
if (FirstColon < SingleSlash)
Host = string(U,FirstColon - U.begin(),SingleSlash - FirstColon);
Host.assign(FirstColon,SingleSlash);
}
else
{
Host = string(U,At - U.begin() + 1,SingleSlash - At - 1);
User = string(U,FirstColon - U.begin(),SecondColon - FirstColon);
Host.assign(At+1,SingleSlash);
User.assign(FirstColon,SecondColon);
if (SecondColon < At)
Password = string(U,SecondColon - U.begin() + 1,At - SecondColon - 1);
Password.assign(SecondColon+1,At);
}
// Now we parse the RFC 2732 [] hostnames.
@ -1105,7 +1102,7 @@ void URI::CopyFrom(string U)
// Tsk, weird.
if (InBracket == true)
{
Host = string();
Host.clear();
return;
}
@ -1116,7 +1113,7 @@ void URI::CopyFrom(string U)
return;
Port = atoi(string(Host,Pos+1).c_str());
Host = string(Host,0,Pos);
Host.assign(Host,0,Pos);
}
/*}}}*/
// URI::operator string - Convert the URI to a string /*{{{*/
@ -1171,12 +1168,12 @@ URI::operator string()
// URI::SiteOnly - Return the schema and site for the URI /*{{{*/
// ---------------------------------------------------------------------
/* */
string URI::SiteOnly(string URI)
string URI::SiteOnly(const string &URI)
{
::URI U(URI);
U.User = string();
U.Password = string();
U.Path = string();
U.User.clear();
U.Password.clear();
U.Path.clear();
U.Port = 0;
return U;
}

26
apt-pkg/contrib/strutl.h

@ -43,24 +43,24 @@ char *_strstrip(char *String);
char *_strtabexpand(char *String,size_t Len);
bool ParseQuoteWord(const char *&String,string &Res);
bool ParseCWord(const char *&String,string &Res);
string QuoteString(string Str,const char *Bad);
string DeQuoteString(string Str);
string QuoteString(const string &Str,const char *Bad);
string DeQuoteString(const string &Str);
string SizeToStr(double Bytes);
string TimeToStr(unsigned long Sec);
string Base64Encode(string Str);
string URItoFileName(string URI);
string Base64Encode(const string &Str);
string URItoFileName(const string &URI);
string TimeRFC1123(time_t Date);
bool StrToTime(string Val,time_t &Result);
string LookupTag(string Message,const char *Tag,const char *Default = 0);
int StringToBool(string Text,int Default = -1);
bool StrToTime(const string &Val,time_t &Result);
string LookupTag(const string &Message,const char *Tag,const char *Default = 0);
int StringToBool(const string &Text,int Default = -1);
bool ReadMessages(int Fd, vector<string> &List);
bool StrToNum(const char *Str,unsigned long &Res,unsigned Len,unsigned Base = 0);
bool Hex2Num(string Str,unsigned char *Num,unsigned int Length);
bool Hex2Num(const string &Str,unsigned char *Num,unsigned int Length);
bool TokSplitString(char Tok,char *Input,char **List,
unsigned long ListMax);
void ioprintf(ostream &out,const char *format,...) APT_FORMAT2;
char *safe_snprintf(char *Buffer,char *End,const char *Format,...) APT_FORMAT3;
bool CheckDomainList(string Host,string List);
bool CheckDomainList(const string &Host, const string &List);
#define APT_MKSTRCMP(name,func) \
inline int name(const char *A,const char *AEnd,const char *B) {return func(A,AEnd,B,B+strlen(B));}; \
@ -101,7 +101,7 @@ inline const char *DeNull(const char *s) {return (s == 0?"(null)":s);};
class URI
{
void CopyFrom(string From);
void CopyFrom(const string &From);
public:
@ -113,9 +113,9 @@ class URI
unsigned int Port;
operator string();
inline void operator =(string From) {CopyFrom(From);};
inline void operator =(const string &From) {CopyFrom(From);};
inline bool empty() {return Access.empty();};
static string SiteOnly(string URI);
static string SiteOnly(const string &URI);
URI(string Path) {CopyFrom(Path);};
URI() : Port(0) {};
@ -127,7 +127,7 @@ struct SubstVar
const string *Contents;
};
string SubstVar(string Str,const struct SubstVar *Vars);
string SubstVar(string Str,string Subst,string Contents);
string SubstVar(const string &Str,const string &Subst,const string &Contents);
struct RxChoiceList
{

4
apt-pkg/deb/deblistparser.cc

@ -377,12 +377,12 @@ const char *debListParser::ParseDepends(const char *Start,const char *Stop,
const char *End = I;
for (; End > Start && isspace(End[-1]); End--);
Ver = string(Start,End-Start);
Ver.assign(Start,End-Start);
I++;
}
else
{
Ver = string();
Ver.clear();
Op = pkgCache::Dep::NoOp;
}

5
apt-pkg/init.cc

@ -1,6 +1,6 @@
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
// $Id: init.cc,v 1.21 2004/02/27 00:46:44 mdz Exp $
// $Id: init.cc,v 1.20 2003/02/09 20:31:05 doogie Exp $
/* ######################################################################
Init - Initialize the package library
@ -64,13 +64,14 @@ bool pkgInitConfig(Configuration &Cnf)
// Configuration
Cnf.Set("Dir::Etc","etc/apt/");
Cnf.Set("Dir::Etc::sourcelist","sources.list");
Cnf.Set("Dir::Etc::sourceparts","sources.list.d");
Cnf.Set("Dir::Etc::vendorlist","vendors.list");
Cnf.Set("Dir::Etc::vendorparts","vendors.list.d");
Cnf.Set("Dir::Etc::main","apt.conf");
Cnf.Set("Dir::Etc::parts","apt.conf.d");
Cnf.Set("Dir::Etc::preferences","preferences");
Cnf.Set("Dir::Bin::methods","/usr/lib/apt/methods");
bool Res = true;
// Read an alternate config file

2
apt-pkg/init.h

@ -18,7 +18,7 @@
// See the makefile
#define APT_PKG_MAJOR 3
#define APT_PKG_MINOR 10
#define APT_PKG_MINOR 11
#define APT_PKG_RELEASE 0
extern const char *pkgVersion;

2
apt-pkg/makefile

@ -13,7 +13,7 @@ include ../buildlib/defaults.mak
# methods/makefile - FIXME
LIBRARY=apt-pkg
LIBEXT=$(GLIBC_VER)$(LIBSTDCPP_VER)
MAJOR=3.10
MAJOR=3.11
MINOR=0
SLIBS=$(PTHREADLIB) $(INTLLIBS)
APT_DOMAIN:=libapt-pkg$(MAJOR)

4
apt-pkg/packagemanager.cc

@ -593,7 +593,7 @@ pkgPackageManager::OrderResult pkgPackageManager::OrderInstall()
Pkg.State() == pkgCache::PkgIterator::NeedsNothing &&
(Cache[Pkg].iFlags & pkgDepCache::ReInstall) != pkgDepCache::ReInstall)
{
_error->Error("Internal Error, trying to manipulate a kept package");
_error->Error("Internal Error, trying to manipulate a kept package (%s)",Pkg.Name());
return Failed;
}
@ -634,6 +634,8 @@ pkgPackageManager::OrderResult pkgPackageManager::OrderInstall()
pkgPackageManager::OrderResult pkgPackageManager::DoInstall(int status_fd)
{
OrderResult Res = OrderInstall();
if(Debug)
std::clog << "OrderInstall() returned: " << Res << std::endl;
if (Res != Failed)
if (Go(status_fd) == false)
return Failed;

4
apt-pkg/pkgcache.cc

@ -153,7 +153,7 @@ bool pkgCache::ReMap()
/* This is used to generate the hash entries for the HashTable. With my
package list from bo this function gets 94% table usage on a 512 item
table (480 used items) */
unsigned long pkgCache::sHash(string Str) const
unsigned long pkgCache::sHash(const string &Str) const
{
unsigned long Hash = 0;
for (string::const_iterator I = Str.begin(); I != Str.end(); I++)
@ -173,7 +173,7 @@ unsigned long pkgCache::sHash(const char *Str) const
// Cache::FindPkg - Locate a package by name /*{{{*/
// ---------------------------------------------------------------------
/* Returns 0 on error, pointer to the package otherwise */
pkgCache::PkgIterator pkgCache::FindPkg(string Name)
pkgCache::PkgIterator pkgCache::FindPkg(const string &Name)
{
// Look at the hash bucket
Package *Pkg = PkgP + HeaderP->HashTable[Hash(Name)];

6
apt-pkg/pkgcache.h

@ -89,7 +89,7 @@ class pkgCache
string CacheFile;
MMap &Map;
unsigned long sHash(string S) const;
unsigned long sHash(const string &S) const;
unsigned long sHash(const char *S) const;
public:
@ -111,14 +111,14 @@ class pkgCache
inline void *DataEnd() {return ((unsigned char *)Map.Data()) + Map.Size();};
// String hashing function (512 range)
inline unsigned long Hash(string S) const {return sHash(S);};
inline unsigned long Hash(const string &S) const {return sHash(S);};
inline unsigned long Hash(const char *S) const {return sHash(S);};
// Usefull transformation things
const char *Priority(unsigned char Priority);
// Accessors
PkgIterator FindPkg(string Name);
PkgIterator FindPkg(const string &Name);
Header &Head() {return *HeaderP;};
inline PkgIterator PkgBegin();
inline PkgIterator PkgEnd();

16
apt-pkg/pkgcachegen.cc

@ -266,7 +266,7 @@ bool pkgCacheGenerator::MergeFileProvides(ListParser &List)
// CacheGenerator::NewPackage - Add a new package /*{{{*/
// ---------------------------------------------------------------------
/* This creates a new package structure and adds it to the hash table */
bool pkgCacheGenerator::NewPackage(pkgCache::PkgIterator &Pkg,string Name)
bool pkgCacheGenerator::NewPackage(pkgCache::PkgIterator &Pkg,const string &Name)
{
Pkg = Cache.FindPkg(Name);
if (Pkg.end() == false)
@ -330,7 +330,7 @@ bool pkgCacheGenerator::NewFileVer(pkgCache::VerIterator &Ver,
// ---------------------------------------------------------------------
/* This puts a version structure in the linked list */
unsigned long pkgCacheGenerator::NewVersion(pkgCache::VerIterator &Ver,
string VerStr,
const string &VerStr,
unsigned long Next)
{
// Get a structure
@ -354,8 +354,8 @@ unsigned long pkgCacheGenerator::NewVersion(pkgCache::VerIterator &Ver,
/* This creates a dependency element in the tree. It is linked to the
version and to the package that it is pointing to. */
bool pkgCacheGenerator::ListParser::NewDepends(pkgCache::VerIterator Ver,
string PackageName,
string Version,
const string &PackageName,
const string &Version,
unsigned int Op,
unsigned int Type)
{
@ -419,8 +419,8 @@ bool pkgCacheGenerator::ListParser::NewDepends(pkgCache::VerIterator Ver,
// ---------------------------------------------------------------------
/* */
bool pkgCacheGenerator::ListParser::NewProvides(pkgCache::VerIterator Ver,
string PackageName,
string Version)
const string &PackageName,
const string &Version)
{
pkgCache &Cache = Owner->Cache;
@ -459,7 +459,7 @@ bool pkgCacheGenerator::ListParser::NewProvides(pkgCache::VerIterator Ver,
// ---------------------------------------------------------------------
/* This is used to select which file is to be associated with all newly
added versions. The caller is responsible for setting the IMS fields. */
bool pkgCacheGenerator::SelectFile(string File,string Site,
bool pkgCacheGenerator::SelectFile(const string &File,const string &Site,
const pkgIndexFile &Index,
unsigned long Flags)
{
@ -543,7 +543,7 @@ unsigned long pkgCacheGenerator::WriteUniqString(const char *S,
/* This just verifies that each file in the list of index files exists,
has matching attributes with the cache and the cache does not have
any extra files. */
static bool CheckValidity(string CacheFile, FileIterator Start,
static bool CheckValidity(const string &CacheFile, FileIterator Start,
FileIterator End,MMap **OutMap = 0)
{
// No file, certainly invalid

17
apt-pkg/pkgcachegen.h

@ -53,17 +53,17 @@ class pkgCacheGenerator
// Flag file dependencies
bool FoundFileDeps;
bool NewPackage(pkgCache::PkgIterator &Pkg,string Pkg);
bool NewPackage(pkgCache::PkgIterator &Pkg,const string &Pkg);
bool NewFileVer(pkgCache::VerIterator &Ver,ListParser &List);
unsigned long NewVersion(pkgCache::VerIterator &Ver,string VerStr,unsigned long Next);
unsigned long NewVersion(pkgCache::VerIterator &Ver,const string &VerStr,unsigned long Next);
public:
unsigned long WriteUniqString(const char *S,unsigned int Size);
inline unsigned long WriteUniqString(string S) {return WriteUniqString(S.c_str(),S.length());};
inline unsigned long WriteUniqString(const string &S) {return WriteUniqString(S.c_str(),S.length());};
void DropProgress() {Progress = 0;};
bool SelectFile(string File,string Site,pkgIndexFile const &Index,
bool SelectFile(const string &File,const string &Site,pkgIndexFile const &Index,
unsigned long Flags = 0);
bool MergeList(ListParser &List,pkgCache::VerIterator *Ver = 0);
inline pkgCache &GetCache() {return Cache;};
@ -94,12 +94,13 @@ class pkgCacheGenerator::ListParser
inline unsigned long WriteUniqString(string S) {return Owner->WriteUniqString(S);};
inline unsigned long WriteUniqString(const char *S,unsigned int Size) {return Owner->WriteUniqString(S,Size);};
inline unsigned long WriteString(string S) {return Owner->Map.WriteString(S);};
inline unsigned long WriteString(const string &S) {return Owner->Map.WriteString(S);};
inline unsigned long WriteString(const char *S,unsigned int Size) {return Owner->Map.WriteString(S,Size);};
bool NewDepends(pkgCache::VerIterator Ver,string Package,
string Version,unsigned int Op,
bool NewDepends(pkgCache::VerIterator Ver,const string &Package,
const string &Version,unsigned int Op,
unsigned int Type);
bool NewProvides(pkgCache::VerIterator Ver,string Package,string Version);
bool NewProvides(pkgCache::VerIterator Ver,const string &Package,
const string &Version);
public:

113
apt-pkg/sourcelist.cc

@ -1,6 +1,6 @@
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
// $Id: sourcelist.cc,v 1.25 2004/06/07 23:08:00 mdz Exp $
// $Id: sourcelist.cc,v 1.3 2002/08/15 20:51:37 niemeyer Exp $
/* ######################################################################
List of Sources
@ -21,6 +21,13 @@
#include <apti18n.h>
#include <fstream>
// CNC:2003-03-03 - This is needed for ReadDir stuff.
#include <algorithm>
#include <stdio.h>
#include <dirent.h>
#include <sys/stat.h>
#include <unistd.h>
/*}}}*/
using namespace std;
@ -142,23 +149,66 @@ pkgSourceList::~pkgSourceList()
/* */
bool pkgSourceList::ReadMainList()
{
return Read(_config->FindFile("Dir::Etc::sourcelist"));
// CNC:2003-03-03 - Multiple sources list support.
bool Res = true;
#if 0
Res = ReadVendors();
if (Res == false)
return false;
#endif
Reset();
// CNC:2003-11-28 - Entries in sources.list have priority over
// entries in sources.list.d.
string Main = _config->FindFile("Dir::Etc::sourcelist");
if (FileExists(Main) == true)
Res &= ReadAppend(Main);
string Parts = _config->FindDir("Dir::Etc::sourceparts");
if (FileExists(Parts) == true)
Res &= ReadSourceDir(Parts);
return Res;
}
/*}}}*/
// CNC:2003-03-03 - Needed to preserve backwards compatibility.
// SourceList::Reset - Clear the sourcelist contents /*{{{*/
// ---------------------------------------------------------------------
/* */
void pkgSourceList::Reset()
{
for (const_iterator I = SrcList.begin(); I != SrcList.end(); I++)
delete *I;
SrcList.erase(SrcList.begin(),SrcList.end());
}
/*}}}*/
// CNC:2003-03-03 - Function moved to ReadAppend() and Reset().
// SourceList::Read - Parse the sourcelist file /*{{{*/
// ---------------------------------------------------------------------
/* */
bool pkgSourceList::Read(string File)
{
Reset();
return ReadAppend(File);
}
/*}}}*/
// SourceList::ReadAppend - Parse a sourcelist file /*{{{*/
// ---------------------------------------------------------------------
/* */
bool pkgSourceList::ReadAppend(string File)
{
// Open the stream for reading
ifstream F(File.c_str(),ios::in /*| ios::nocreate*/);
if (!F != 0)
return _error->Errno("ifstream::ifstream",_("Opening %s"),File.c_str());
#if 0 // Now Reset() does this.
for (const_iterator I = SrcList.begin(); I != SrcList.end(); I++)
delete *I;
SrcList.erase(SrcList.begin(),SrcList.end());
char Buffer[300];
#endif
// CNC:2003-12-10 - 300 is too short.
char Buffer[1024];
int CurLine = 0;
while (F.eof() == false)
@ -172,7 +222,10 @@ bool pkgSourceList::Read(string File)
char *I;
for (I = Buffer; *I != 0 && *I != '#'; I++);
// CNC:2003-02-20 - Do not break if '#' is inside [].
for (I = Buffer; *I != 0 && *I != '#'; I++)
if (*I == '[')
for (I++; *I != 0 && *I != ']'; I++);
*I = 0;
const char *C = _strstrip(Buffer);
@ -259,3 +312,55 @@ bool pkgSourceList::GetIndexes(pkgAcquire *Owner, bool GetAll) const
return true;
}
/*}}}*/
// CNC:2003-03-03 - By Anton V. Denisov <avd@altlinux.org>.
// SourceList::ReadSourceDir - Read a directory with sources files
// Based on ReadConfigDir() /*{{{*/
// ---------------------------------------------------------------------
/* */
bool pkgSourceList::ReadSourceDir(string Dir)
{
DIR *D = opendir(Dir.c_str());
if (D == 0)
return _error->Errno("opendir",_("Unable to read %s"),Dir.c_str());
vector<string> List;
for (struct dirent *Ent = readdir(D); Ent != 0; Ent = readdir(D))
{
if (Ent->d_name[0] == '.')
continue;
// CNC:2003-12-02 Only accept .list files as valid sourceparts
if (flExtension(Ent->d_name) != "list")
continue;
// Skip bad file names ala run-parts
const char *C = Ent->d_name;
for (; *C != 0; C++)
if (isalpha(*C) == 0 && isdigit(*C) == 0
&& *C != '_' && *C != '-' && *C != '.')
break;
if (*C != 0)
continue;
// Make sure it is a file and not something else
string File = flCombine(Dir,Ent->d_name);
struct stat St;
if (stat(File.c_str(),&St) != 0 || S_ISREG(St.st_mode) == 0)
continue;
List.push_back(File);
}
closedir(D);
sort(List.begin(),List.end());
// Read the files
for (vector<string>::const_iterator I = List.begin(); I != List.end(); I++)
if (ReadAppend(*I) == false)
return false;
return true;
}
/*}}}*/

5
apt-pkg/sourcelist.h

@ -77,6 +77,11 @@ class pkgSourceList
bool ReadMainList();
bool Read(string File);
// CNC:2003-03-03
void Reset();
bool ReadAppend(string File);
bool ReadSourceDir(string Dir);
// List accessors
inline const_iterator begin() const {return SrcList.begin();};

2
buildlib/archtable

@ -11,7 +11,7 @@ sparc sparc
sparc64 sparc
alpha.* alpha
m68k m68k
armeb.* armeb
arm.*b armeb
arm.* arm
powerpc powerpc
ppc powerpc

2
buildlib/sizetable

@ -11,8 +11,8 @@
# The format is:-
# CPU endian sizeof: char, int, short, long
i386 little 1 4 2 4
arm little 1 4 2 4
armeb big 1 4 2 4
arm little 1 4 2 4
alpha little 1 4 2 8
mipsel little 1 4 2 4
sparc big 1 4 2 4

4
cmdline/apt-get.cc

@ -1211,10 +1211,6 @@ pkgSrcRecords::Parser *FindSrc(const char *Name,pkgRecords &Recs,
for (pkgCache::VerFileIterator VF = Ver.FileList(); VF.end() == false;
VF++)
{
// extra paranioa
if(VF.File() == NULL)
continue;
/* If this is the status file, and the current version is not the
version in the status file (ie it is not installed, or somesuch)
then it is not a candidate for installation, ever. This weeds

2
configure.in

@ -18,7 +18,7 @@ AC_CONFIG_AUX_DIR(buildlib)
AC_CONFIG_HEADER(include/config.h:buildlib/config.h.in include/apti18n.h:buildlib/apti18n.h.in)
dnl -- SET THIS TO THE RELEASE VERSION --
AC_DEFINE_UNQUOTED(VERSION,"0.6.42.1")
AC_DEFINE_UNQUOTED(VERSION,"0.6.43")
PACKAGE="apt"
AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE")
AC_SUBST(PACKAGE)

47
debian/changelog

@ -1,13 +1,52 @@
apt (0.6.42.2) unstable; urgency=low
apt (0.6.43) unstable; urgency=medium
* Merge bubulle@debian.org--2005/apt--main--0 up to patch-132:
* zh_CN.po: Completed to 510 strings(Closes: #338267)
* gl.po: Completed to 510 strings (Closes: #338356)
* added support for "/etc/apt/sources.list.d" directory
(closes: #66325)
* make pkgDirStream (a bit) more complete
* fix bug in pkgCache::VerIterator::end() (thanks to Daniel Burrows)
(closes: #339533)
* pkgAcqFile is more flexible now (closes: #57091)
* support a download rate limit for http (closes: #146877)
* included lots of the speedup changes from #319377
* add stdint.h to contrib/md5.h (closes: #340448)
* ABI change, library name changed (closes: #339147)
* Fix GNU/kFreeBSD crash on non-existing server file (closes: #317718)
* switch to libdb4.3 in build-depends
-- Michael Vogt <mvo@debian.org> Tue, 29 Nov 2005 00:17:07 +0100
apt (0.6.42.3) unstable; urgency=low
* Merge bubulle@debian.org--2005/apt--main--0 up to patch-118:
* Merge bubulle@debian.org--2005/apt--main--0 up to patch-129:
- patch-118: Russian translation update by Yuri Kozlov (closes: #335164)
- patch-119: add update-po as a pre-req for binary (closes: #329910)
- patch-121: Complete French translation
- patch-125: Fixed localization of y/n questions in German translation
(closes: #337078)
- patch-126: Swedish translation update (closes: #337163)
- patch-127: Complete Tagalog translation (closes: #337306)
- patch-128: Danish translation update (closes: #337949)
- patch-129: Basque translation update (closes: #338101)
* cmdline/apt-get.cc:
- bufix in FindSrc (closes: #335213)
- bufix in FindSrc (closes: #335213, #337910)
* added armeb to archtable (closes: #333599)
* with --allow-unauthenticated use the old fallback behaviour for
sources (closes: #335112)
--
-- Michael Vogt <mvo@debian.org> Wed, 9 Nov 2005 07:22:31 +0100
apt (0.6.42.2) unstable; urgency=high
* NMU (approved by maintainer)
* Add AMD64 archive signing key to debian-archive.gpg (closes: #336500).
* Add big-endian arm (armeb) support (closes: #333599).
* Priority high to get the AMD key into testing ASAP.
-- Frans Pop <fjp@debian.org> Sun, 30 Oct 2005 21:29:11 +0100
apt (0.6.42.1) unstable; urgency=low
* fix a incorrect example in the apt_prefrences man page

2
debian/control

@ -4,7 +4,7 @@ Priority: important
Maintainer: APT Development Team <deity@lists.debian.org>
Uploaders: Jason Gunthorpe <jgg@debian.org>, Adam Heath <doogie@debian.org>, Matt Zimmerman <mdz@debian.org>, Michael Vogt <mvo@debian.org>
Standards-Version: 3.6.1
Build-Depends: debhelper (>= 4.1.62), libdb4.2-dev, gettext (>= 0.12)
Build-Depends: debhelper (>= 4.1.62), libdb4.3-dev, gettext (>= 0.12)
Build-Depends-Indep: debiandoc-sgml, docbook-utils (>= 0.6.12-1)
Package: apt

1
doc/examples/configure-index

@ -117,6 +117,7 @@ Acquire
No-Cache "false";
Max-Age "86400"; // 1 Day age on index files
No-Store "false"; // Prevent the cache from storing archives
Dl-Limit "7"; // 7Kb/sec maximum download rate
};
ftp

7
doc/sources.list.5.xml

@ -46,6 +46,13 @@
by using a #.</para>
</refsect1>
<refsect1><title>sources.list.d</title>
<para>The <filename>/etc/apt/sources.list.d</filename> directory provides
a way to add sources.list entries in seperate files that end with
<literal>.list</literal>. The format is the same as for the regular
<filename>sources.list</filename> file. </para>
</refsect1>
<refsect1><title>The deb and deb-src types</title>
<para>The <literal>deb</literal> type describes a typical two-level Debian
archive, <filename>distribution/component</filename>. Typically,

51
methods/http.cc

@ -58,6 +58,12 @@ unsigned long PipelineDepth = 10;
unsigned long TimeOut = 120;
bool Debug = false;
unsigned long CircleBuf::BwReadLimit=0;
unsigned long CircleBuf::BwTickReadData=0;
struct timeval CircleBuf::BwReadTick={0,0};
const unsigned int CircleBuf::BW_HZ=10;
// CircleBuf::CircleBuf - Circular input buffer /*{{{*/
// ---------------------------------------------------------------------
/* */
@ -65,6 +71,8 @@ CircleBuf::CircleBuf(unsigned long Size) : Size(Size), Hash(0)
{
Buf = new unsigned char[Size];
Reset();
CircleBuf::BwReadLimit = _config->FindI("Acquire::http::Dl-Limit",0)*1024;
}
/*}}}*/
// CircleBuf::Reset - Reset to the default state /*{{{*/
@ -90,16 +98,45 @@ void CircleBuf::Reset()
is non-blocking.. */
bool CircleBuf::Read(int Fd)
{
unsigned long BwReadMax;
while (1)