diff options
-rw-r--r-- | apt-pkg/acquire-item.cc | 64 | ||||
-rw-r--r-- | apt-pkg/acquire-item.h | 12 | ||||
-rw-r--r-- | apt-pkg/acquire-worker.cc | 45 | ||||
-rw-r--r-- | apt-pkg/acquire-worker.h | 8 | ||||
-rw-r--r-- | apt-pkg/acquire.cc | 32 | ||||
-rw-r--r-- | apt-pkg/acquire.h | 7 | ||||
-rw-r--r-- | apt-pkg/algorithms.cc | 20 | ||||
-rw-r--r-- | apt-pkg/contrib/strutl.cc | 4 | ||||
-rw-r--r-- | apt-pkg/depcache.cc | 199 | ||||
-rw-r--r-- | apt-pkg/tagfile.cc | 11 | ||||
-rw-r--r-- | cmdline/apt-get.cc | 3 | ||||
-rw-r--r-- | cmdline/makefile | 4 | ||||
-rw-r--r-- | configure.in | 4 | ||||
-rw-r--r-- | doc/examples/apt.conf | 6 |
14 files changed, 188 insertions, 231 deletions
diff --git a/apt-pkg/acquire-item.cc b/apt-pkg/acquire-item.cc index e1049dde9..e6eee197b 100644 --- a/apt-pkg/acquire-item.cc +++ b/apt-pkg/acquire-item.cc @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: acquire-item.cc,v 1.3 1998/10/22 04:56:38 jgg Exp $ +// $Id: acquire-item.cc,v 1.4 1998/10/24 04:57:56 jgg Exp $ /* ###################################################################### Acquire Item - Item to acquire @@ -22,6 +22,9 @@ #include <sys/stat.h> #include <unistd.h> +#include <errno.h> +#include <string.h> +#include <stdio.h> /*}}}*/ // Acquire::Item::Item - Constructor /*{{{*/ @@ -30,6 +33,7 @@ pkgAcquire::Item::Item(pkgAcquire *Owner) : Owner(Owner), QueueCounter(0) { Owner->Add(this); + Status = StatIdle; } /*}}}*/ // Acquire::Item::~Item - Destructor /*{{{*/ @@ -40,6 +44,27 @@ pkgAcquire::Item::~Item() Owner->Remove(this); } /*}}}*/ +// Acquire::Item::Failed - Item failed to download /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void pkgAcquire::Item::Failed(string Message) +{ + Status = StatError; + ErrorText = LookupTag(Message,"Message"); + if (QueueCounter <= 1) + Owner->Dequeue(this); +} + /*}}}*/ +// Acquire::Item::Done - Item downloaded OK /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void pkgAcquire::Item::Done(string,unsigned long,string) +{ + Status = StatDone; + ErrorText = string(); + Owner->Dequeue(this); +} + /*}}}*/ // AcqIndex::AcqIndex - Constructor /*{{{*/ // --------------------------------------------------------------------- @@ -100,3 +125,40 @@ string pkgAcqIndexRel::Custom600Headers() return "\nLast-Modified: " + TimeRFC1123(Buf.st_mtime); } /*}}}*/ +// AcqIndexRel::Done - Item downloaded OK /*{{{*/ +// --------------------------------------------------------------------- +/* The release file was not placed into the download directory then + a copy URI is generated and it is copied there otherwise the file + in the partial directory is moved into .. and the URI is finished. */ +void pkgAcqIndexRel::Done(string Message,unsigned long Size,string MD5) +{ + Item::Done(Message,Size,MD5); + + string FileName = LookupTag(Message,"Filename"); + if (FileName.empty() == true) + { + Status = StatError; + ErrorText = "Method gave a blank filename"; + } + + // We have to copy it into place + if (FileName != DestFile) + { + QueueURI("copy:" + FileName,string()); + return; + } + + // Done, move it into position + string FinalFile = _config->FindDir("Dir::State::lists"); + FinalFile += URItoFileName(Location->ReleaseURI()); + + if (rename(DestFile.c_str(),FinalFile.c_str()) != 0) + { + char S[300]; + sprintf(S,"rename failed, %s (%s -> %s).",strerror(errno), + DestFile.c_str(),FinalFile.c_str()); + Status = StatError; + ErrorText = S; + } +} + /*}}}*/ diff --git a/apt-pkg/acquire-item.h b/apt-pkg/acquire-item.h index 8b2d6e908..352fc3e24 100644 --- a/apt-pkg/acquire-item.h +++ b/apt-pkg/acquire-item.h @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: acquire-item.h,v 1.2 1998/10/22 04:56:39 jgg Exp $ +// $Id: acquire-item.h,v 1.3 1998/10/24 04:57:57 jgg Exp $ /* ###################################################################### Acquire Item - Item to acquire @@ -35,13 +35,19 @@ class pkgAcquire::Item public: + // State of the item + enum {StatIdle, StatFetching, StatDone, StatError} Status; + string ErrorText; + // Number of queues we are inserted into unsigned int QueueCounter; // File to write the fetch into string DestFile; - virtual void Failed() {}; + virtual void Failed(string Message); + virtual void Done(string Message,unsigned long Size,string Md5Hash); + virtual string Custom600Headers() {return string();}; Item(pkgAcquire *Owner); @@ -71,6 +77,8 @@ class pkgAcqIndexRel : public pkgAcquire::Item public: + virtual void Done(string Message,unsigned long Size,string Md5Hash); + virtual string Custom600Headers(); pkgAcqIndexRel(pkgAcquire *Owner,const pkgSourceList::Item *Location); diff --git a/apt-pkg/acquire-worker.cc b/apt-pkg/acquire-worker.cc index 58f67d979..936d469c3 100644 --- a/apt-pkg/acquire-worker.cc +++ b/apt-pkg/acquire-worker.cc @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: acquire-worker.cc,v 1.5 1998/10/23 00:49:58 jgg Exp $ +// $Id: acquire-worker.cc,v 1.6 1998/10/24 04:57:58 jgg Exp $ /* ###################################################################### Acquire Worker @@ -187,6 +187,11 @@ bool pkgAcquire::Worker::RunMessages() if (End == Message.c_str()) return _error->Error("Invalid message from method %s: %s",Access.c_str(),Message.c_str()); + string URI = LookupTag(Message,"URI"); + pkgAcquire::Queue::QItem *Itm = 0; + if (URI.empty() == false) + Itm = OwnerQ->FindItem(URI,this); + // Determine the message number and dispatch switch (Number) { @@ -209,15 +214,47 @@ bool pkgAcquire::Worker::RunMessages() // 200 URI Start case 200: - break; + { + if (Itm == 0) + { + _error->Warning("Method gave invalid 200 URI Start message"); + break; + } + CurrentItem = Itm; + CurrentSize = 0; + TotalSize = atoi(LookupTag(Message,"Size","0").c_str()); + + break; + } // 201 URI Done case 201: - break; + { + if (Itm == 0) + { + _error->Warning("Method gave invalid 400 URI Failure message"); + break; + } + + Itm->Owner->Done(Message,atoi(LookupTag(Message,"Size","0").c_str()), + LookupTag(Message,"MD5-Hash")); + OwnerQ->ItemDone(Itm); + break; + } // 400 URI Failure case 400: - break; + { + if (Itm == 0) + { + _error->Warning("Method gave invalid 400 URI Failure message"); + break; + } + + Itm->Owner->Failed(Message); + OwnerQ->ItemDone(Itm); + break; + } // 401 General Failure case 401: diff --git a/apt-pkg/acquire-worker.h b/apt-pkg/acquire-worker.h index d128ec8b2..eb04485b9 100644 --- a/apt-pkg/acquire-worker.h +++ b/apt-pkg/acquire-worker.h @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: acquire-worker.h,v 1.3 1998/10/22 04:56:42 jgg Exp $ +// $Id: acquire-worker.h,v 1.4 1998/10/24 04:57:59 jgg Exp $ /* ###################################################################### Acquire Worker - Worker process manager @@ -65,10 +65,12 @@ class pkgAcquire::Worker public: + // The curent method state pkgAcquire::Queue::QItem *CurrentItem; - string Status; - + unsigned long CurrentSize; + unsigned long TotalSize; + // Load the method and do the startup bool QueueItem(pkgAcquire::Queue::QItem *Item); bool Start(); diff --git a/apt-pkg/acquire.cc b/apt-pkg/acquire.cc index 80fee9af2..21aade75d 100644 --- a/apt-pkg/acquire.cc +++ b/apt-pkg/acquire.cc @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: acquire.cc,v 1.3 1998/10/22 04:56:43 jgg Exp $ +// $Id: acquire.cc,v 1.4 1998/10/24 04:58:01 jgg Exp $ /* ###################################################################### Acquire - File Acquiration @@ -331,7 +331,7 @@ void pkgAcquire::Queue::Enqueue(Item *Owner,string URI,string Description) Owner->QueueCounter++; } /*}}}*/ -// Queue::Dequeue - Remove and item from the queue /*{{{*/ +// Queue::Dequeue - Remove an item from the queue /*{{{*/ // --------------------------------------------------------------------- /* */ void pkgAcquire::Queue::Dequeue(Item *Owner) @@ -367,6 +367,7 @@ bool pkgAcquire::Queue::Startup() if (Workers->Start() == false) return false; + Items->Worker = Workers; Workers->QueueItem(Items); return true; @@ -389,3 +390,30 @@ bool pkgAcquire::Queue::Shutdown() return true; } /*}}}*/ +// Queue::Finditem - Find a URI in the item list /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgAcquire::Queue::QItem *pkgAcquire::Queue::FindItem(string URI,pkgAcquire::Worker *Owner) +{ + for (QItem *I = Items; I != 0; I = I->Next) + if (I->URI == URI && I->Worker == Owner) + return I; + return 0; +} + /*}}}*/ +// Queue::ItemDone - Item has been completed /*{{{*/ +// --------------------------------------------------------------------- +/* The worker signals this which causes the item to be removed from the + queue. */ +bool pkgAcquire::Queue::ItemDone(QItem *Itm) +{ + Dequeue(Itm->Owner); + + if (Items == 0) + return true; + + Items->Worker = Workers; + Items->Owner->Status = pkgAcquire::Item::StatFetching; + return Workers->QueueItem(Items); +} + /*}}}*/ diff --git a/apt-pkg/acquire.h b/apt-pkg/acquire.h index cea7c8891..d4dbed5f6 100644 --- a/apt-pkg/acquire.h +++ b/apt-pkg/acquire.h @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: acquire.h,v 1.3 1998/10/22 04:56:44 jgg Exp $ +// $Id: acquire.h,v 1.4 1998/10/24 04:58:02 jgg Exp $ /* ###################################################################### Acquire - File Acquiration @@ -105,6 +105,7 @@ class pkgAcquire::Queue string URI; string Description; Item *Owner; + pkgAcquire::Worker *Worker; }; // Name of the queue @@ -121,6 +122,10 @@ class pkgAcquire::Queue void Enqueue(Item *Owner,string URI,string Description); void Dequeue(Item *Owner); + // Find a Queued item + QItem *FindItem(string URI,pkgAcquire::Worker *Owner); + bool ItemDone(QItem *Itm); + bool Startup(); bool Shutdown(); diff --git a/apt-pkg/algorithms.cc b/apt-pkg/algorithms.cc index 185e3400e..350b57468 100644 --- a/apt-pkg/algorithms.cc +++ b/apt-pkg/algorithms.cc @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: algorithms.cc,v 1.7 1998/10/20 04:33:13 jgg Exp $ +// $Id: algorithms.cc,v 1.8 1998/10/24 04:58:04 jgg Exp $ /* ###################################################################### Algorithms - A set of misc algorithms @@ -245,14 +245,17 @@ bool pkgDistUpgrade(pkgDepCache &Cache) Cache.MarkInstall(I,false); pkgProblemResolver Fix(Cache); - + // Hold back held packages. - for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + if (_config->FindB("APT::Ingore-Hold",false) == false) { - if (I->SelectedState == pkgCache::State::Hold) + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) { - Fix.Protect(I); - Cache.MarkKeep(I); + if (I->SelectedState == pkgCache::State::Hold) + { + Fix.Protect(I); + Cache.MarkKeep(I); + } } } @@ -277,8 +280,9 @@ bool pkgAllUpgrade(pkgDepCache &Cache) if (Cache[I].Install() == true) Fix.Protect(I); - if (I->SelectedState == pkgCache::State::Hold) - continue; + if (_config->FindB("APT::Ingore-Hold",false) == false) + if (I->SelectedState == pkgCache::State::Hold) + continue; if (I->CurrentVer != 0 && Cache[I].InstallVer != 0) Cache.MarkInstall(I,false); diff --git a/apt-pkg/contrib/strutl.cc b/apt-pkg/contrib/strutl.cc index 4882af922..68421a241 100644 --- a/apt-pkg/contrib/strutl.cc +++ b/apt-pkg/contrib/strutl.cc @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: strutl.cc,v 1.7 1998/10/23 00:49:59 jgg Exp $ +// $Id: strutl.cc,v 1.8 1998/10/24 04:58:07 jgg Exp $ /* ###################################################################### String Util - Some usefull string functions. @@ -521,7 +521,7 @@ bool ReadMessages(int Fd, vector<string> &List) End += Res; // Look for the end of the message - for (char *I = Buffer; I < End; I++) + for (char *I = Buffer; I + 1 < End; I++) { if (I[0] != '\n' || I[1] != '\n') continue; diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc index a0896b3dc..68c452f31 100644 --- a/apt-pkg/depcache.cc +++ b/apt-pkg/depcache.cc @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: depcache.cc,v 1.3 1998/09/07 05:28:32 jgg Exp $ +// $Id: depcache.cc,v 1.4 1998/10/24 04:58:05 jgg Exp $ /* ###################################################################### Dependency Cache - Caches Dependency information. @@ -673,203 +673,6 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst) } /*}}}*/ -#if 0 -// DepCache::ResolveConflicts - Figure the auto upgrades /*{{{*/ -// --------------------------------------------------------------------- -/* This routine attempts to resolve conflicts generated by automatic - upgrading. It is known as 'Stage 1' but that name isn't as proper anymore. - - It's most important function is during the initial load of APT. The - loading code will mark every package for upgrade to it's candidate version - and then call this routine. This routine will then 'soft keep' every - package that causes conflict, is conflicted, or so on. It is a bit - agressive in that it may unselect more packages in some odd cases - than are strictly necessary but in the case where no packages were - conflicting before it will always produce a system with no packages - conflicting after. - - This routine is also used during state changes that require autoupgrade - scanning. That is, if a new package is marked for install then all packages - that have been soft kept are reconsidered for upgrade. - - It is called with state information about what can be un-upgraded and - what the pre-upgrade install state was. It is expected that the caller - has already marked the desired packages to the install state. Bit 0 is - the original install state and Bit 1 is controls whether the package - should be touched. -*/ -void pkgDepCache::ResolveConflicts(unsigned char *Touched) -{ - bool Again = false; - do - { - Again = false; - for (PkgIterator I = PkgBegin(); I.end() != true; I++) - { - // The package will install OK - if ((PkgState[I->ID].DepState & DepInstMin) == DepInstMin) - continue; - - /* The package was broken before and this upgrade will not - make things better. We simply mark the package for keep - and assume an upgrade attempt will be hopeless. This might - not be ideal. */ - if ((Touched[I->ID] & (1 << 0)) != (1 << 0)) - { - // The package isnt to be touched - if ((Touched[I->ID] & (1 << 1)) == (1 << 1)) - MarkKeep(I,true); - - continue; - } - - // Check to see if not upgrading it will solve the problem - if (I->CurrentVer != 0) - { - // The package isnt to be touched - if ((Touched[I->ID] & (1 << 1)) == (1 << 1)) - { - if (PkgState[I->ID].Mode != ModeKeep) - Again = true; - - MarkKeep(I,true); - } - - /* Check if the package is sill broken. If so then we cant leave - it as is and get a working system. Lets try marking some - depends for 'keep'. This is brutal, it keeps everything in - sight to fix the problem. */ - DepIterator D = I.CurrentVer().DependsList(); - for (;(PkgState[I->ID].DepState & DepInstMin) != DepInstMin && - D.end() != true; D++) - { - // We only worry about critical deps. - if (D.IsCritical() != true) - continue; - - unsigned char State = DepState[D->ID]; - - // This dep never was set before so we dont need to set it now - if ((State & DepNow) != DepNow) - continue; - - // The dep is okay now no worries. - if ((State & DepInstall) == DepInstall) - continue; - - // Locate a target to keep - PkgIterator P(*this); - if (CheckDep(D,NowVersion,P) == true) - { - // We cant touch this package - if ((Touched[P->ID] & (1 << 1)) == (1 << 1)) - MarkKeep(P,true); - } - } - } - } - } - while (Again == true); -} - /*}}}*/ -// DepCache::PromoteAutoKeep - Gentler version of the above /*{{{*/ -// --------------------------------------------------------------------- -/* This is used when installing packages, all it does is attempt to promote - everything that has been auto-kept. It simply promotes everything - irregardless of it having a chance to work and then runs ResolveConflicts - on the result. This allows circular depends loops to work but isn't - terribly fast. */ -void pkgDepCache::PromoteAutoKeep() -{ - /* Initialize the touchd array. Bit 0 is the old install state bit 1 - is the touch value */ - unsigned char *Touch = new unsigned char[Head().PackageCount]; - for (unsigned int I = 0; I != Head().PackageCount; I++) - { - if ((PkgState[I].DepState & DepInstMin) == DepInstMin) - Touch[I] = 1 << 0; - else - Touch[I] = 0; - } - - // This allows circular depends to work - for (PkgIterator I = PkgBegin(); I.end() != true; I++) - { - /* It wasnt installed before or it is not autokept or it is not - upgradeable */ - StateCache &P = PkgState[I->ID]; - if (I->CurrentVer == 0 || P.Mode != ModeKeep || I->VersionList == 0 || - P.CandidateVer == (Version *)I.CurrentVer() || - (P.iFlags & AutoKept) != AutoKept) - continue; - - P.Mode = ModeInstall; - P.InstallVer = P.CandidateVer; - if (P.CandidateVer == (Version *)I.CurrentVer()) - P.Mode = ModeKeep; - - // Okay autoupgrade it. - Touch[I->ID] |= 1 << 1; - } - - Update(); - ResolveConflicts(Touch); - - delete [] Touch; -} - /*}}}*/ -// DepCache::AllUpgrade - Try to upgrade everything /*{{{*/ -// --------------------------------------------------------------------- -/* */ -void pkgDepCache::AllUpgrade() -{ - // Set everything to an upgrade mode - for (PkgIterator I = PkgBegin(); I.end() != true; I++) - { - StateCache &State = PkgState[I->ID]; - - /* We dont upgrade packages marked for deletion or that are - not installed or that don't have an upgrade */ - if (State.Mode == ModeDelete || I->CurrentVer == 0 || - (Version *)I.CurrentVer() == State.CandidateVer) - continue; - - // Set the state to upgrade - State.iFlags = 0; - State.Mode = ModeInstall; - State.InstallVer = State.CandidateVer; - if (State.CandidateVer == (Version *)I.CurrentVer()) - State.Mode = ModeKeep; - - // Do not upgrade things that have the hold flag set. - if (I->SelectedState == State::Hold) - { - State.InstallVer = I.CurrentVer(); - State.Mode = ModeKeep; - } - State.Update(I,*this); - } - - Update(); - - /* Initialize the touchd array. Bit 0 is the old install state bit 1 - is the touch value */ - unsigned char *Touch = new unsigned char[Head().PackageCount]; - for (unsigned int I = 0; I != Head().PackageCount; I++) - { - if ((PkgState[I].DepState & DepNowMin) == DepNowMin) - Touch[I] = (1 << 0) | (1 << 1); - else - Touch[I] = 1 << 1; - } - - // Now downgrade everything that is broken - ResolveConflicts(Touch); - delete [] Touch; -} - /*}}}*/ -#endif - // StateCache::Update - Compute the various static display things /*{{{*/ // --------------------------------------------------------------------- /* This is called whenever the Candidate version changes. */ diff --git a/apt-pkg/tagfile.cc b/apt-pkg/tagfile.cc index 50d669977..23fc344f3 100644 --- a/apt-pkg/tagfile.cc +++ b/apt-pkg/tagfile.cc @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: tagfile.cc,v 1.11 1998/10/02 04:39:48 jgg Exp $ +// $Id: tagfile.cc,v 1.12 1998/10/24 04:58:06 jgg Exp $ /* ###################################################################### Fast scanner for RFC-822 type header information @@ -75,18 +75,23 @@ bool pkgTagFile::Fill() Start = Buffer; End = Buffer + EndSize; - // See if only a bit of the file is left - if (Left < Size) + // See if only a bit of the file is left + if (Left < Size - (End - Buffer)) { if (Fd.Read(End,Left) == false) return false; + End += Left; Left = 0; } else { if (Fd.Read(End,Size - (End - Buffer)) == false) + { + cout << "boink" << endl; return false; + } + Left -= Size - (End - Buffer); End = Buffer + Size; } diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index 4f8de001f..95859c811 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: apt-get.cc,v 1.4 1998/10/20 04:33:18 jgg Exp $ +// $Id: apt-get.cc,v 1.5 1998/10/24 04:58:08 jgg Exp $ /* ###################################################################### apt-get - Cover for dpkg @@ -782,6 +782,7 @@ int main(int argc,const char *argv[]) {'f',"fix-broken","APT::Get::Fix-Broken",0}, {'u',"show-upgraded","APT::Get::Show-Upgraded",0}, {'m',"ignore-missing","APT::Get::Fix-Broken",0}, + {0,"ignore-hold","APT::Ingore-Hold",0}, {'c',"config-file",0,CommandLine::ConfigFile}, {'o',"option",0,CommandLine::ArbItem}, {0,0,0,0}}; diff --git a/cmdline/makefile b/cmdline/makefile index 65139c032..a6911c991 100644 --- a/cmdline/makefile +++ b/cmdline/makefile @@ -7,12 +7,12 @@ include ../buildlib/defaults.mak # The apt-cache program PROGRAM=apt-cache -SLIBS = -lapt-pkg +SLIBS = -lapt-pkg SOURCE = apt-cache.cc include $(PROGRAM_H) # The apt-config program PROGRAM=apt-get -SLIBS = -lapt-pkg +SLIBS = -lapt-pkg SOURCE = apt-get.cc include $(PROGRAM_H) diff --git a/configure.in b/configure.in index 9e9bdf840..334da2750 100644 --- a/configure.in +++ b/configure.in @@ -39,7 +39,7 @@ X11LIB= if test "$no_x" != "yes"; then X11LIB="-lX11" AC_DEFINE(HAVE_X11) - dnl Checks for Slang + dnl Checks for ZPM AC_CHECK_LIB(Xpm, XpmLibraryVersion,[AC_DEFINE(HAVE_LIBXPM) XPMLIB="-lXpm"],,$X_LIBS $X_PRE_LIBS $X11LIB $X_EXTRA_LIBS) AC_SUBST(XPMLIB) if test "$XPMLIB" != "-lXpm"; then @@ -48,7 +48,7 @@ if test "$no_x" != "yes"; then fi dnl Checks for Slang -AC_CHECK_LIB(slang, init_SLang,[AC_DEFINE(HAVE_LIBSLANG) SLANGLIB="-lslang"]) +AC_CHECK_LIB(slang, SLang_Version,[AC_DEFINE(HAVE_LIBSLANG) SLANGLIB="-lslang"]) AC_SUBST(SLANGLIB) dnl Checks for GPM diff --git a/doc/examples/apt.conf b/doc/examples/apt.conf index ab1bfbc21..04d4fbc85 100644 --- a/doc/examples/apt.conf +++ b/doc/examples/apt.conf @@ -1,4 +1,4 @@ -// $Id: apt.conf,v 1.4 1998/10/22 04:56:50 jgg Exp $ +// $Id: apt.conf,v 1.5 1998/10/24 04:58:10 jgg Exp $ /* This file is an index of all APT configuration directives. It should NOT actually be used as a real config file, though it is a completely valid file. @@ -14,6 +14,8 @@ APT { Fix-Broken "false"; Show-Upgraded "false"; }; + + Ingore-Hold "false"; }; Acquire @@ -39,7 +41,7 @@ Dir }; Etc "/etc/apt/" { - sourcelist "sources.list"; + sourcelist "sources.list.test"; main "apt.conf"; }; |