algorithms.h | algorithms.h | |||
---|---|---|---|---|
skipping to change at line 38 | skipping to change at line 38 | |||
##################################################################### */ | ##################################################################### */ | |||
/*}} }*/ | /*}} }*/ | |||
#ifndef PKGLIB_ALGORITHMS_H | #ifndef PKGLIB_ALGORITHMS_H | |||
#define PKGLIB_ALGORITHMS_H | #define PKGLIB_ALGORITHMS_H | |||
#include <apt-pkg/packagemanager.h> | #include <apt-pkg/packagemanager.h> | |||
#include <apt-pkg/depcache.h> | #include <apt-pkg/depcache.h> | |||
#include <iostream> | #include <iostream> | |||
#include <apt-pkg/macros.h> | ||||
#ifndef APT_8_CLEANER_HEADERS | #ifndef APT_8_CLEANER_HEADERS | |||
#include <apt-pkg/acquire.h> | #include <apt-pkg/acquire.h> | |||
using std::ostream; | using std::ostream; | |||
#endif | #endif | |||
class pkgAcquireStatus; | class pkgAcquireStatus; | |||
class pkgSimulate : public pkgPackageManager /*{{ {*/ | class pkgSimulate : public pkgPackageManager /*{{ {*/ | |||
{ | { | |||
protected: | protected: | |||
skipping to change at line 134 | skipping to change at line 136 | |||
inline void Protect(pkgCache::PkgIterator Pkg) {Flags[Pkg->ID] |= Protec ted; Cache.MarkProtected(Pkg);}; | inline void Protect(pkgCache::PkgIterator Pkg) {Flags[Pkg->ID] |= Protec ted; Cache.MarkProtected(Pkg);}; | |||
inline void Remove(pkgCache::PkgIterator Pkg) {Flags[Pkg->ID] |= ToRemov e;}; | inline void Remove(pkgCache::PkgIterator Pkg) {Flags[Pkg->ID] |= ToRemov e;}; | |||
inline void Clear(pkgCache::PkgIterator Pkg) {Flags[Pkg->ID] &= ~(Protec ted | ToRemove);}; | inline void Clear(pkgCache::PkgIterator Pkg) {Flags[Pkg->ID] &= ~(Protec ted | ToRemove);}; | |||
// Try to intelligently resolve problems by installing and removing pack ages | // Try to intelligently resolve problems by installing and removing pack ages | |||
bool Resolve(bool BrokenFix = false); | bool Resolve(bool BrokenFix = false); | |||
// Try to resolve problems only by using keep | // Try to resolve problems only by using keep | |||
bool ResolveByKeep(); | bool ResolveByKeep(); | |||
// Install all protected packages | __deprecated void InstallProtect(); | |||
void InstallProtect(); | ||||
pkgProblemResolver(pkgDepCache *Cache); | pkgProblemResolver(pkgDepCache *Cache); | |||
~pkgProblemResolver(); | ~pkgProblemResolver(); | |||
}; | }; | |||
/*}} }*/ | /*}} }*/ | |||
bool pkgDistUpgrade(pkgDepCache &Cache); | bool pkgDistUpgrade(pkgDepCache &Cache); | |||
bool pkgApplyStatus(pkgDepCache &Cache); | bool pkgApplyStatus(pkgDepCache &Cache); | |||
bool pkgFixBroken(pkgDepCache &Cache); | bool pkgFixBroken(pkgDepCache &Cache); | |||
bool pkgAllUpgrade(pkgDepCache &Cache); | bool pkgAllUpgrade(pkgDepCache &Cache); | |||
bool pkgMinimizeUpgrade(pkgDepCache &Cache); | bool pkgMinimizeUpgrade(pkgDepCache &Cache); | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 3 lines changed or added | |||
config.h | config.h | |||
---|---|---|---|---|
skipping to change at line 39 | skipping to change at line 39 | |||
/* Define to the size of the filesize containing structures */ | /* Define to the size of the filesize containing structures */ | |||
#define _FILE_OFFSET_BITS 64 | #define _FILE_OFFSET_BITS 64 | |||
/* Define the arch name string */ | /* Define the arch name string */ | |||
#define COMMON_ARCH "i386" | #define COMMON_ARCH "i386" | |||
/* The package name string */ | /* The package name string */ | |||
#define PACKAGE "apt" | #define PACKAGE "apt" | |||
/* The version number string */ | /* The version number string */ | |||
#define PACKAGE_VERSION "0.9.8.2" | #define PACKAGE_VERSION "0.9.9" | |||
/* The mail address to reach upstream */ | /* The mail address to reach upstream */ | |||
#define PACKAGE_MAIL "APT Development Team <deity@lists.debian.org>" | #define PACKAGE_MAIL "APT Development Team <deity@lists.debian.org>" | |||
#define APT_8_CLEANER_HEADERS | #define APT_8_CLEANER_HEADERS | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
error.h | error.h | |||
---|---|---|---|---|
skipping to change at line 126 | skipping to change at line 126 | |||
/** \brief adds an errno message with the given type | /** \brief adds an errno message with the given type | |||
* | * | |||
* \param type of the error message | * \param type of the error message | |||
* \param Function which failed | * \param Function which failed | |||
* \param Description of the error | * \param Description of the error | |||
*/ | */ | |||
bool InsertErrno(MsgType const &type, const char* Function, | bool InsertErrno(MsgType const &type, const char* Function, | |||
const char* Description,...) __like_printf(4) __col d; | const char* Description,...) __like_printf(4) __col d; | |||
/** \brief adds an errno message with the given type | ||||
* | ||||
* args needs to be initialized with va_start and terminated | ||||
* with va_end by the caller. msgSize is also an out-parameter | ||||
* in case the msgSize was not enough to store the complete message. | ||||
* | ||||
* \param type of the error message | ||||
* \param Function which failed | ||||
* \param Description is the format string for args | ||||
* \param args list from a printf-like function | ||||
* \param errsv is the errno the error is for | ||||
* \param msgSize is the size of the char[] used to store message | ||||
* \return true if the message was added, false if not - the caller | ||||
* should call this method again in that case | ||||
*/ | ||||
bool InsertErrno(MsgType type, const char* Function, | ||||
const char* Description, va_list &args, | ||||
int const errsv, size_t &msgSize); | ||||
/** \brief add an fatal error message to the list | /** \brief add an fatal error message to the list | |||
* | * | |||
* Most of the stuff we consider as "error" is also "fatal" for | * Most of the stuff we consider as "error" is also "fatal" for | |||
* the user as the application will not have the expected result, | * the user as the application will not have the expected result, | |||
* but a fatal message here means that it gets printed directly | * but a fatal message here means that it gets printed directly | |||
* to stderr in addiction to adding it to the list as the error | * to stderr in addiction to adding it to the list as the error | |||
* leads sometimes to crashes and a maybe duplicated message | * leads sometimes to crashes and a maybe duplicated message | |||
* is better than "Segfault" as the only displayed text | * is better than "Segfault" as the only displayed text | |||
* | * | |||
* \param Description Format string for the fatal error message. | * \param Description Format string for the fatal error message. | |||
skipping to change at line 188 | skipping to change at line 207 | |||
*/ | */ | |||
bool Debug(const char *Description,...) __like_printf(2) __cold; | bool Debug(const char *Description,...) __like_printf(2) __cold; | |||
/** \brief adds an error message with the given type | /** \brief adds an error message with the given type | |||
* | * | |||
* \param type of the error message | * \param type of the error message | |||
* \param Description of the error | * \param Description of the error | |||
*/ | */ | |||
bool Insert(MsgType const &type, const char* Description,...) __like _printf(3) __cold; | bool Insert(MsgType const &type, const char* Description,...) __like _printf(3) __cold; | |||
/** \brief adds an error message with the given type | ||||
* | ||||
* args needs to be initialized with va_start and terminated | ||||
* with va_end by the caller. msgSize is also an out-parameter | ||||
* in case the msgSize was not enough to store the complete message. | ||||
* | ||||
* \param type of the error message | ||||
* \param Description is the format string for args | ||||
* \param args list from a printf-like function | ||||
* \param msgSize is the size of the char[] used to store message | ||||
* \return true if the message was added, false if not - the caller | ||||
* should call this method again in that case | ||||
*/ | ||||
bool Insert(MsgType type, const char* Description, | ||||
va_list &args, size_t &msgSize) __cold; | ||||
/** \brief is an error in the list? | /** \brief is an error in the list? | |||
* | * | |||
* \return \b true if an error is included in the list, \b false ot herwise | * \return \b true if an error is included in the list, \b false ot herwise | |||
*/ | */ | |||
inline bool PendingError() const {return PendingFlag;}; | inline bool PendingError() const {return PendingFlag;}; | |||
/** \brief is the list empty? | /** \brief is the list empty? | |||
* | * | |||
* The default checks if the list is empty or contains only notices , | * The default checks if the list is empty or contains only notices , | |||
* if you want to check if also no notices happend set the paramete r | * if you want to check if also no notices happend set the paramete r | |||
skipping to change at line 308 | skipping to change at line 343 | |||
struct MsgStack { | struct MsgStack { | |||
std::list<Item> const Messages; | std::list<Item> const Messages; | |||
bool const PendingFlag; | bool const PendingFlag; | |||
MsgStack(std::list<Item> const &Messages, bool const &Pendin g) : | MsgStack(std::list<Item> const &Messages, bool const &Pendin g) : | |||
Messages(Messages), PendingFlag(Pending) {}; | Messages(Messages), PendingFlag(Pending) {}; | |||
}; | }; | |||
std::list<MsgStack> Stacks; | std::list<MsgStack> Stacks; | |||
bool InsertErrno(MsgType type, const char* Function, | ||||
const char* Description, va_list &args, | ||||
int const errsv, size_t &msgSize); | ||||
bool Insert(MsgType type, const char* Description, | ||||
va_list &args, size_t &msgSize); | ||||
/*}} }*/ | /*}} }*/ | |||
}; | }; | |||
/*}} }*/ | /*}} }*/ | |||
// The 'extra-ansi' syntax is used to help with collisions. | // The 'extra-ansi' syntax is used to help with collisions. | |||
GlobalError *_GetErrorObj(); | GlobalError *_GetErrorObj(); | |||
#define _error _GetErrorObj() | #define _error _GetErrorObj() | |||
#endif | #endif | |||
End of changes. 3 change blocks. | ||||
6 lines changed or deleted | 35 lines changed or added | |||
fileutl.h | fileutl.h | |||
---|---|---|---|---|
skipping to change at line 152 | skipping to change at line 152 | |||
}; | }; | |||
FileFd(int const Fd, bool const AutoClose) : iFd(-1), Flags(0), d(NULL) | FileFd(int const Fd, bool const AutoClose) : iFd(-1), Flags(0), d(NULL) | |||
{ | { | |||
OpenDescriptor(Fd, ReadWrite, None, AutoClose); | OpenDescriptor(Fd, ReadWrite, None, AutoClose); | |||
}; | }; | |||
virtual ~FileFd(); | virtual ~FileFd(); | |||
private: | private: | |||
FileFdPrivate* d; | FileFdPrivate* d; | |||
bool OpenInternDescriptor(unsigned int const Mode, APT::Configuration::C ompressor const &compressor); | bool OpenInternDescriptor(unsigned int const Mode, APT::Configuration::C ompressor const &compressor); | |||
// private helpers to set Fail flag and call _error->Error | ||||
bool FileFdErrno(const char* Function, const char* Description,...) __li | ||||
ke_printf(3) __cold; | ||||
bool FileFdError(const char* Description,...) __like_printf(2) __cold; | ||||
}; | }; | |||
bool RunScripts(const char *Cnf); | bool RunScripts(const char *Cnf); | |||
bool CopyFile(FileFd &From,FileFd &To); | bool CopyFile(FileFd &From,FileFd &To); | |||
int GetLock(std::string File,bool Errors = true); | int GetLock(std::string File,bool Errors = true); | |||
bool FileExists(std::string File); | bool FileExists(std::string File); | |||
bool RealFileExists(std::string File); | bool RealFileExists(std::string File); | |||
bool DirectoryExists(std::string const &Path) __attrib_const; | bool DirectoryExists(std::string const &Path) __attrib_const; | |||
bool CreateDirectory(std::string const &Parent, std::string const &Path); | bool CreateDirectory(std::string const &Parent, std::string const &Path); | |||
time_t GetModificationTime(std::string const &Path); | time_t GetModificationTime(std::string const &Path); | |||
End of changes. 1 change blocks. | ||||
0 lines changed or deleted | 5 lines changed or added | |||
gpgv.h | gpgv.h | |||
---|---|---|---|---|
skipping to change at line 26 | skipping to change at line 26 | |||
#if __GNUC__ >= 4 | #if __GNUC__ >= 4 | |||
#define APT_noreturn __attribute__ ((noreturn)) | #define APT_noreturn __attribute__ ((noreturn)) | |||
#else | #else | |||
#define APT_noreturn /* no support */ | #define APT_noreturn /* no support */ | |||
#endif | #endif | |||
/** \brief generates and run the command to verify a file with gpgv | /** \brief generates and run the command to verify a file with gpgv | |||
* | * | |||
* If File and FileSig specify the same file it is assumed that we | * If File and FileSig specify the same file it is assumed that we | |||
* deal with a clear-signed message. In that case the file will be | * deal with a clear-signed message. Note that the method will accept | |||
* rewritten to be in a good-known format without uneeded whitespaces | * and validate files which include additional (unsigned) messages | |||
* and additional messages (unsigned or signed). | * without complaining. Do NOT open files accepted by this method | |||
* for reading. Use #OpenMaybeClearSignedFile to access the message | ||||
* instead to ensure you are only reading signed data. | ||||
* | ||||
* The method does not return, but has some noteable exit-codes: | ||||
* 111 signals an internal error like the inability to execute gpgv, | ||||
* 112 indicates a clear-signed file which doesn't include a message, | ||||
* which can happen if APT is run while on a network requiring | ||||
* authentication before usage (e.g. in hotels) | ||||
* All other exit-codes are passed-through from gpgv. | ||||
* | * | |||
* @param File is the message (unsigned or clear-signed) | * @param File is the message (unsigned or clear-signed) | |||
* @param FileSig is the signature (detached or clear-signed) | * @param FileSig is the signature (detached or clear-signed) | |||
*/ | */ | |||
void ExecGPGV(std::string const &File, std::string const &FileSig, | void ExecGPGV(std::string const &File, std::string const &FileSig, | |||
int const &statusfd, int fd[2]) APT_noreturn; | int const &statusfd, int fd[2]) APT_noreturn; | |||
inline void ExecGPGV(std::string const &File, std::string const &FileSig, | inline void ExecGPGV(std::string const &File, std::string const &FileSig, | |||
int const &statusfd = -1) { | int const &statusfd = -1) { | |||
int fd[2]; | int fd[2]; | |||
ExecGPGV(File, FileSig, statusfd, fd); | ExecGPGV(File, FileSig, statusfd, fd); | |||
End of changes. 1 change blocks. | ||||
3 lines changed or deleted | 12 lines changed or added | |||