summaryrefslogtreecommitdiff
path: root/apt-pkg
diff options
context:
space:
mode:
authorMichael Vogt <michael.vogt@ubuntu.com>2009-12-10 22:20:07 +0100
committerMichael Vogt <michael.vogt@ubuntu.com>2009-12-10 22:20:07 +0100
commit43be0ac4b37f3a82ae4a16e473c3d8e44637ce1b (patch)
tree7c0e75b291d132b6f1577fc2267f8ea0a60df459 /apt-pkg
parent9307ef07498d37c0b5e05b036195abaf7ad0105c (diff)
parenta0895a74fe95997a5d75e5b54c95afb9594554f6 (diff)
merged from the mvo branch (and contains all non-abi break changes from donkult)
Diffstat (limited to 'apt-pkg')
-rw-r--r--apt-pkg/contrib/strutl.h12
-rw-r--r--apt-pkg/deb/debsrcrecords.cc8
-rw-r--r--apt-pkg/init.h8
-rw-r--r--apt-pkg/makefile11
-rw-r--r--apt-pkg/packagemanager.cc15
5 files changed, 31 insertions, 23 deletions
diff --git a/apt-pkg/contrib/strutl.h b/apt-pkg/contrib/strutl.h
index 0cbf14a7a..2b2e147fb 100644
--- a/apt-pkg/contrib/strutl.h
+++ b/apt-pkg/contrib/strutl.h
@@ -68,15 +68,15 @@ int tolower_ascii(int c);
#define APT_MKSTRCMP(name,func) \
inline int name(const char *A,const char *B) {return func(A,A+strlen(A),B,B+strlen(B));}; \
inline int name(const char *A,const char *AEnd,const char *B) {return func(A,AEnd,B,B+strlen(B));}; \
-inline int name(string A,const char *B) {return func(A.c_str(),A.c_str()+A.length(),B,B+strlen(B));}; \
-inline int name(string A,string B) {return func(A.c_str(),A.c_str()+A.length(),B.c_str(),B.c_str()+B.length());}; \
-inline int name(string A,const char *B,const char *BEnd) {return func(A.c_str(),A.c_str()+A.length(),B,BEnd);};
+inline int name(const string& A,const char *B) {return func(A.c_str(),A.c_str()+A.length(),B,B+strlen(B));}; \
+inline int name(const string& A,const string& B) {return func(A.c_str(),A.c_str()+A.length(),B.c_str(),B.c_str()+B.length());}; \
+inline int name(const string& A,const char *B,const char *BEnd) {return func(A.c_str(),A.c_str()+A.length(),B,BEnd);};
#define APT_MKSTRCMP2(name,func) \
inline int name(const char *A,const char *AEnd,const char *B) {return func(A,AEnd,B,B+strlen(B));}; \
-inline int name(string A,const char *B) {return func(A.begin(),A.end(),B,B+strlen(B));}; \
-inline int name(string A,string B) {return func(A.begin(),A.end(),B.begin(),B.end());}; \
-inline int name(string A,const char *B,const char *BEnd) {return func(A.begin(),A.end(),B,BEnd);};
+inline int name(const string& A,const char *B) {return func(A.begin(),A.end(),B,B+strlen(B));}; \
+inline int name(const string& A,const string& B) {return func(A.begin(),A.end(),B.begin(),B.end());}; \
+inline int name(const string& A,const char *B,const char *BEnd) {return func(A.begin(),A.end(),B,BEnd);};
int stringcmp(const char *A,const char *AEnd,const char *B,const char *BEnd);
int stringcasecmp(const char *A,const char *AEnd,const char *B,const char *BEnd);
diff --git a/apt-pkg/deb/debsrcrecords.cc b/apt-pkg/deb/debsrcrecords.cc
index 2f87c767b..bde10aa6d 100644
--- a/apt-pkg/deb/debsrcrecords.cc
+++ b/apt-pkg/deb/debsrcrecords.cc
@@ -135,9 +135,15 @@ bool debSrcRecordParser::Files(vector<pkgSrcRecords::File> &List)
string::size_type Tmp = F.Path.rfind('.',Pos);
if (Tmp == string::npos)
break;
+ if (F.Type == "tar") {
+ // source v3 has extension 'debian.tar.*' instead of 'diff.*'
+ if (string(F.Path, Tmp+1, Pos-Tmp) == "debian")
+ F.Type = "diff";
+ break;
+ }
F.Type = string(F.Path,Tmp+1,Pos-Tmp);
- if (F.Type == "gz" || F.Type == "bz2" || F.Type == "lzma")
+ if (F.Type == "gz" || F.Type == "bz2" || F.Type == "lzma" || F.Type == "tar")
{
Pos = Tmp-1;
continue;
diff --git a/apt-pkg/init.h b/apt-pkg/init.h
index 44d1d107c..f0757f644 100644
--- a/apt-pkg/init.h
+++ b/apt-pkg/init.h
@@ -16,10 +16,14 @@
#include <apt-pkg/configuration.h>
#include <apt-pkg/pkgsystem.h>
-// See the makefile
+// These lines are extracted by the makefiles and the buildsystem
+// Increasing MAJOR or MINOR results in the need of recompiling all
+// reverse-dependencies of libapt-pkg against the new SONAME.
+// Non-ABI-Breaks should only increase RELEASE number.
+// See also buildlib/libversion.mak
#define APT_PKG_MAJOR 4
#define APT_PKG_MINOR 8
-#define APT_PKG_RELEASE 1
+#define APT_PKG_RELEASE 0
extern const char *pkgVersion;
extern const char *pkgLibVersion;
diff --git a/apt-pkg/makefile b/apt-pkg/makefile
index f2a8460a9..3d6209658 100644
--- a/apt-pkg/makefile
+++ b/apt-pkg/makefile
@@ -9,14 +9,13 @@ HEADER_TARGETDIRS = apt-pkg
# Bring in the default rules
include ../buildlib/defaults.mak
-# The library name, don't forget to update init.h and the copy in
-# methods/makefile - FIXME
+# The library name and version (indirectly used from init.h)
+include ../buildlib/libversion.mak
LIBRARY=apt-pkg
-LIBEXT=$(GLIBC_VER)$(LIBSTDCPP_VER)
-MAJOR=4.8
-MINOR=1
+MAJOR=$(LIBAPTPKG_MAJOR)
+MINOR=$(LIBAPTPKG_RELEASE)
SLIBS=$(PTHREADLIB) $(INTLLIBS) -lutil -ldl
-APT_DOMAIN:=libapt-pkg$(MAJOR)
+APT_DOMAIN:=libapt-pkg$(LIBAPTPKG_MAJOR)
# Source code for the contributed non-core things
SOURCE = contrib/mmap.cc contrib/error.cc contrib/strutl.cc \
diff --git a/apt-pkg/packagemanager.cc b/apt-pkg/packagemanager.cc
index 7be6e72f2..491bff110 100644
--- a/apt-pkg/packagemanager.cc
+++ b/apt-pkg/packagemanager.cc
@@ -143,10 +143,6 @@ void pkgPackageManager::ImmediateAdd(PkgIterator I, bool UseInstallVer, unsigned
for ( /* nothing */ ; D.end() == false; D++)
if (D->Type == pkgCache::Dep::Depends || D->Type == pkgCache::Dep::PreDepends)
{
- // ignore dependencies if no instal/upgrade/remove is going to happen
- if (D.TargetPkg() == 0 || Cache[D.TargetPkg()].Keep())
- continue;
-
if(!List->IsFlag(D.TargetPkg(), pkgOrderList::Immediate))
{
if(Debug)
@@ -325,8 +321,9 @@ bool pkgPackageManager::SmartConfigure(PkgIterator Pkg)
// Sanity Check
if (List->IsFlag(Pkg,pkgOrderList::Configured) == false)
- return _error->Error("Internal error, could not immediate configure %s",Pkg.Name());
-
+ return _error->Error(_("Could not perform immediate configuration on '%s'."
+ "Please see man 5 apt.conf under APT::Immediate-Configure for details. (%d)"),Pkg.Name(),1);
+
return true;
}
/*}}}*/
@@ -478,7 +475,8 @@ bool pkgPackageManager::SmartUnPack(PkgIterator Pkg)
List->Flag(Pkg,pkgOrderList::UnPacked,pkgOrderList::States);
if (List->IsFlag(Pkg,pkgOrderList::Immediate) == true)
if (SmartConfigure(Pkg) == false)
- return _error->Error("Internal Error, Could not perform immediate configuration (1) on %s",Pkg.Name());
+ return _error->Error(_("Could not perform immediate configuration on already unpacked '%s'."
+ "Please see man 5 apt.conf under APT::Immediate-Configure for details."),Pkg.Name());
return true;
}
@@ -585,7 +583,8 @@ bool pkgPackageManager::SmartUnPack(PkgIterator Pkg)
// Perform immedate configuration of the package.
if (List->IsFlag(Pkg,pkgOrderList::Immediate) == true)
if (SmartConfigure(Pkg) == false)
- return _error->Error("Internal Error, Could not perform immediate configuration (2) on %s",Pkg.Name());
+ return _error->Error(_("Could not perform immediate configuration on '%s'."
+ "Please see man 5 apt.conf under APT::Immediate-Configure for details. (%d)"),Pkg.Name(),2);
return true;
}