diff options
author | Sam Bingner <sam@bingner.com> | 2018-08-15 10:49:31 -1000 |
---|---|---|
committer | Sam Bingner <sam@bingner.com> | 2018-08-15 10:49:31 -1000 |
commit | 2f8f0c32e83897a3644f0d94bfaf437743e2741b (patch) | |
tree | 87038c9a8a49f33db1e3c1a5f4cc38109f4e0de2 /data/_apt7 | |
parent | af3c4ce5f8f1a128eaf24d22749df3b7e744e41b (diff) |
Update apt7 to 1.4.8 based on nitotv fork and add xz support
Diffstat (limited to 'data/_apt7')
42 files changed, 84 insertions, 3680 deletions
diff --git a/data/_apt7/_metadata/lz4.dep b/data/_apt7/_metadata/lz4.dep new file mode 120000 index 000000000..bccb2875c --- /dev/null +++ b/data/_apt7/_metadata/lz4.dep @@ -0,0 +1 @@ +../../lz4
\ No newline at end of file diff --git a/data/_apt7/_metadata/maintainer b/data/_apt7/_metadata/maintainer index 0fa66e077..573d7ebef 120000 --- a/data/_apt7/_metadata/maintainer +++ b/data/_apt7/_metadata/maintainer @@ -1 +1 @@ -../../../people/saurik
\ No newline at end of file +../../../people/sbingner
\ No newline at end of file diff --git a/data/_apt7/_metadata/version b/data/_apt7/_metadata/version index 61c4e572d..b2e46d185 100644 --- a/data/_apt7/_metadata/version +++ b/data/_apt7/_metadata/version @@ -1 +1 @@ -0.7.25.3 +1.4.8 diff --git a/data/_apt7/abi-4.8.diff b/data/_apt7/abi-4.8.diff deleted file mode 100644 index e2f2de96e..000000000 --- a/data/_apt7/abi-4.8.diff +++ /dev/null @@ -1,315 +0,0 @@ -diff -ru apt-0.7.25.3/apt-pkg/deb/deblistparser.cc apt-0.7.25.3+iPhone/apt-pkg/deb/deblistparser.cc ---- apt-0.7.25.3/apt-pkg/deb/deblistparser.cc 2010-02-22 18:42:49.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/deb/deblistparser.cc 2010-02-22 19:48:19.000000000 +0000 -@@ -698,8 +698,6 @@ - FileI->Version = WriteUniqString(Start,Stop - Start); - if (Section.Find("Origin",Start,Stop) == true) - FileI->Origin = WriteUniqString(Start,Stop - Start); -- if (Section.Find("Codename",Start,Stop) == true) -- FileI->Codename = WriteUniqString(Start,Stop - Start); - if (Section.Find("Label",Start,Stop) == true) - FileI->Label = WriteUniqString(Start,Stop - Start); - if (Section.Find("Architecture",Start,Stop) == true) -diff -ru apt-0.7.25.3/apt-pkg/depcache.cc apt-0.7.25.3+iPhone/apt-pkg/depcache.cc ---- apt-0.7.25.3/apt-pkg/depcache.cc 2010-02-01 19:44:40.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/depcache.cc 2010-02-22 19:38:27.000000000 +0000 -@@ -80,6 +80,9 @@ - // DepCache::pkgDepCache - Constructors /*{{{*/ - // --------------------------------------------------------------------- - /* */ -+static bool DebugMarker; -+static bool DebugAutoInstall; -+ - pkgDepCache::pkgDepCache(pkgCache *pCache,Policy *Plcy) : - group_level(0), Cache(pCache), PkgState(0), DepState(0) - { -diff -ru apt-0.7.25.3/apt-pkg/depcache.h apt-0.7.25.3+iPhone/apt-pkg/depcache.h ---- apt-0.7.25.3/apt-pkg/depcache.h 2010-02-01 19:44:40.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/depcache.h 2010-02-22 19:38:14.000000000 +0000 -@@ -295,9 +295,6 @@ - unsigned long iPolicyBrokenCount; - unsigned long iBadCount; - -- bool DebugMarker; -- bool DebugAutoInstall; -- - Policy *delLocalPolicy; // For memory clean up.. - Policy *LocalPolicy; - -@@ -420,7 +417,7 @@ - * \param Depth recursive deep of this Marker call - * \param FromUser was the install requested by the user? - */ -- virtual bool IsInstallOk(const PkgIterator &Pkg,bool AutoInst = true, -+ bool IsInstallOk(const PkgIterator &Pkg,bool AutoInst = true, - unsigned long Depth = 0, bool FromUser = true); - - /** \return \b true if it's OK for MarkDelete to remove -@@ -439,7 +436,7 @@ - * \param Depth recursive deep of this Marker call - * \param FromUser was the remove requested by the user? - */ -- virtual bool IsDeleteOk(const PkgIterator &Pkg,bool Purge = false, -+ bool IsDeleteOk(const PkgIterator &Pkg,bool Purge = false, - unsigned long Depth = 0, bool FromUser = true); - - // This is for debuging -diff -ru apt-0.7.25.3/apt-pkg/pkgcache.cc apt-0.7.25.3+iPhone/apt-pkg/pkgcache.cc ---- apt-0.7.25.3/apt-pkg/pkgcache.cc 2010-02-22 18:42:49.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/pkgcache.cc 2010-02-22 19:49:45.000000000 +0000 -@@ -49,7 +49,7 @@ - - /* Whenever the structures change the major version should be bumped, - whenever the generator changes the minor version should be bumped. */ -- MajorVersion = 8; -+ MajorVersion = 7; - MinorVersion = 0; - Dirty = false; - -@@ -658,8 +658,6 @@ - Res = Res + (Res.empty() == true?"o=":",o=") + Origin(); - if (Archive() != 0) - Res = Res + (Res.empty() == true?"a=":",a=") + Archive(); -- if (Codename() != 0) -- Res = Res + (Res.empty() == true?"n=":",n=") + Codename(); - if (Label() != 0) - Res = Res + (Res.empty() == true?"l=":",l=") + Label(); - if (Component() != 0) -diff -ru apt-0.7.25.3/apt-pkg/pkgcache.h apt-0.7.25.3+iPhone/apt-pkg/pkgcache.h ---- apt-0.7.25.3/apt-pkg/pkgcache.h 2010-02-22 18:42:49.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/pkgcache.h 2010-02-22 19:46:08.000000000 +0000 -@@ -222,16 +222,15 @@ - unsigned char InstState; // Flags - unsigned char CurrentState; // State - -- unsigned int ID; -+ unsigned short ID; - unsigned long Flags; - }; -- /*}}}*/ --struct pkgCache::PackageFile /*{{{*/ -+ -+struct pkgCache::PackageFile - { - // Names - map_ptrloc FileName; // Stringtable - map_ptrloc Archive; // Stringtable -- map_ptrloc Codename; // Stringtable - map_ptrloc Component; // Stringtable - map_ptrloc Version; // Stringtable - map_ptrloc Origin; // Stringtable -@@ -244,7 +243,7 @@ - - // Linked list - map_ptrloc NextFile; // PackageFile -- unsigned int ID; -+ unsigned short ID; - time_t mtime; // Modification time for the file - }; - /*}}}*/ -@@ -288,7 +287,7 @@ - map_ptrloc Size; // These are the .deb size - map_ptrloc InstalledSize; - unsigned short Hash; -- unsigned int ID; -+ unsigned short ID; - unsigned char Priority; - }; - /*}}}*/ -@@ -305,7 +304,7 @@ - map_ptrloc NextDesc; // Description - map_ptrloc ParentPkg; // Package - -- unsigned int ID; -+ unsigned short ID; - }; - /*}}}*/ - struct pkgCache::Dependency /*{{{*/ -diff -ru apt-0.7.25.3/apt-pkg/tagfile.h apt-0.7.25.3+iPhone/apt-pkg/tagfile.h ---- apt-0.7.25.3/apt-pkg/tagfile.h 2010-02-22 18:42:49.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/tagfile.h 2010-02-22 19:41:05.000000000 +0000 -@@ -28,6 +28,7 @@ - class pkgTagSection - { - const char *Section; -+ const char *Stop; - - // We have a limit of 256 tags per section. - unsigned int Indexes[256]; -@@ -35,9 +36,6 @@ - - unsigned int TagCount; - -- protected: -- const char *Stop; -- - public: - - inline bool operator ==(const pkgTagSection &rhs) {return Section == rhs.Section;}; -@@ -52,7 +50,7 @@ - bool Scan(const char *Start,unsigned long MaxLength); - inline unsigned long size() const {return Stop - Section;}; - void Trim(); -- virtual void TrimRecord(bool BeforeRecord, const char* &End); -+ void TrimRecord(bool BeforeRecord, const char* &End); - - inline unsigned int Count() const {return TagCount;}; - inline void Get(const char *&Start,const char *&Stop,unsigned int I) const -diff -ru apt-0.7.25.3/apt-pkg/versionmatch.cc apt-0.7.25.3+iPhone/apt-pkg/versionmatch.cc ---- apt-0.7.25.3/apt-pkg/versionmatch.cc 2010-02-01 19:44:40.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/versionmatch.cc 2010-02-22 19:51:20.000000000 +0000 -@@ -63,7 +63,7 @@ - if (isdigit(Data[0])) - RelVerStr = Data; - else -- RelRelease = Data; -+ RelArchive = Data; - - if (RelVerStr.length() > 0 && RelVerStr.end()[-1] == '*') - { -@@ -94,8 +94,6 @@ - RelOrigin = Fragments[J]+2; - else if (stringcasecmp(Fragments[J],Fragments[J]+2,"a=") == 0) - RelArchive = Fragments[J]+2; -- else if (stringcasecmp(Fragments[J],Fragments[J]+2,"n=") == 0) -- RelCodename = Fragments[J]+2; - else if (stringcasecmp(Fragments[J],Fragments[J]+2,"l=") == 0) - RelLabel = Fragments[J]+2; - else if (stringcasecmp(Fragments[J],Fragments[J]+2,"c=") == 0) -@@ -177,7 +175,6 @@ - - if (RelVerStr.empty() == true && RelOrigin.empty() == true && - RelArchive.empty() == true && RelLabel.empty() == true && -- RelRelease.empty() == true && RelCodename.empty() == true && - RelComponent.empty() == true) - return false; - -@@ -193,16 +190,6 @@ - if (File->Archive == 0 || - stringcasecmp(RelArchive,File.Archive()) != 0) - return false; -- if (RelCodename.empty() == false) -- if (File->Codename == 0 || -- stringcasecmp(RelCodename,File.Codename()) != 0) -- return false; -- if (RelRelease.empty() == false) -- if ((File->Archive == 0 || -- stringcasecmp(RelRelease,File.Archive()) != 0) && -- (File->Codename == 0 || -- stringcasecmp(RelRelease,File.Codename()) != 0)) -- return false; - if (RelLabel.empty() == false) - if (File->Label == 0 || - stringcasecmp(RelLabel,File.Label()) != 0) -diff -ru apt-0.7.25.3/apt-pkg/versionmatch.h apt-0.7.25.3+iPhone/apt-pkg/versionmatch.h ---- apt-0.7.25.3/apt-pkg/versionmatch.h 2010-02-01 19:44:40.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/versionmatch.h 2010-02-22 19:50:32.000000000 +0000 -@@ -50,8 +50,6 @@ - string RelVerStr; - bool RelVerPrefixMatch; - string RelOrigin; -- string RelRelease; -- string RelCodename; - string RelArchive; - string RelLabel; - string RelComponent; -diff -ru apt-0.7.25.3/cmdline/apt-get.cc apt-0.7.25.3+iPhone/cmdline/apt-get.cc ---- apt-0.7.25.3/cmdline/apt-get.cc 2010-02-22 18:42:49.000000000 +0000 -+++ apt-0.7.25.3+iPhone/cmdline/apt-get.cc 2010-02-22 19:51:54.000000000 +0000 -@@ -1296,8 +1296,7 @@ - - // or we match against a release - if(VerTag.empty() == false || -- (VF.File().Archive() != 0 && VF.File().Archive() == DefRel) || -- (VF.File().Codename() != 0 && VF.File().Codename() == DefRel)) -+ (VF.File().Archive() != 0 && VF.File().Archive() == DefRel)) - { - pkgRecords::Parser &Parse = Recs.Lookup(VF); - Src = Parse.SourcePkg(); -diff -ru apt-0.7.25.3/apt-pkg/depcache.cc apt-0.7.25.3+iPhone/apt-pkg/depcache.cc ---- apt-0.7.25.3/apt-pkg/depcache.cc 2010-02-22 19:38:27.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/depcache.cc 2010-02-22 20:02:41.000000000 +0000 -@@ -774,6 +774,10 @@ - // DepCache::MarkDelete - Put the package in the delete state /*{{{*/ - // --------------------------------------------------------------------- - /* */ -+void pkgDepCache::MarkDelete(PkgIterator const &Pkg, bool Purge) { -+ MarkDelete(Pkg, Purge, 0); -+} -+ - void pkgDepCache::MarkDelete(PkgIterator const &Pkg, bool rPurge, - unsigned long Depth, bool FromUser) - { -diff -ru apt-0.7.25.3/apt-pkg/depcache.h apt-0.7.25.3+iPhone/apt-pkg/depcache.h ---- apt-0.7.25.3/apt-pkg/depcache.h 2010-02-22 19:38:14.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/depcache.h 2010-02-22 20:02:47.000000000 +0000 -@@ -388,10 +388,13 @@ - /** \name State Manipulators - */ - // @{ -- void MarkKeep(PkgIterator const &Pkg, bool Soft = false, -- bool FromUser = true, unsigned long Depth = 0); -+ void MarkKeep(PkgIterator const &Pkg, bool Soft = false, -+ bool FromUser = true); -+ void MarkKeep(PkgIterator const &Pkg, bool Soft, -+ bool FromUser, unsigned long Depth); -- void MarkDelete(PkgIterator const &Pkg, bool Purge = false, -- unsigned long Depth = 0, bool FromUser = true); -+ void MarkDelete(PkgIterator const &Pkg,bool Purge = false); -+ void MarkDelete(PkgIterator const &Pkg, bool Purge, -+ unsigned long Depth, bool FromUser = true); - void MarkInstall(PkgIterator const &Pkg,bool AutoInst = true, - unsigned long Depth = 0, bool FromUser = true, - bool ForceImportantDeps = false); -diff -ru apt-0.7.25.3/apt-pkg/cacheiterators.h apt-0.7.25.3+iPhone/apt-pkg/cacheiterators.h ---- apt-0.7.25.3/apt-pkg/cacheiterators.h 2010-02-22 20:06:07.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/cacheiterators.h 2010-02-22 20:07:13.000000000 +0000 -@@ -387,7 +387,6 @@ - inline const char *Component() const {return File->Component == 0?0:Owner->StrP + File->Component;}; - inline const char *Version() const {return File->Version == 0?0:Owner->StrP + File->Version;}; - inline const char *Origin() const {return File->Origin == 0?0:Owner->StrP + File->Origin;}; -- inline const char *Codename() const {return File->Codename ==0?0:Owner->StrP + File->Codename;}; - inline const char *Label() const {return File->Label == 0?0:Owner->StrP + File->Label;}; - inline const char *Site() const {return File->Site == 0?0:Owner->StrP + File->Site;}; - inline const char *Architecture() const {return File->Architecture == 0?0:Owner->StrP + File->Architecture;}; -diff -ru apt-0.7.25.3/apt-pkg/tagfile.h apt-0.7.25.3+iPhone/apt-pkg/tagfile.h ---- apt-0.7.25.3/apt-pkg/tagfile.h 2010-02-22 20:06:07.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/tagfile.h 2010-02-22 20:09:55.000000000 +0000 -@@ -28,8 +28,11 @@ - class pkgTagSection - { - const char *Section; -+ -+ protected: - const char *Stop; - -+ private: - // We have a limit of 256 tags per section. - unsigned int Indexes[256]; - unsigned int AlphaIndexes[0x100]; -diff -ru apt-0.7.25.3/apt-pkg/init.h apt-0.7.25.3+iPhone/apt-pkg/init.h ---- apt-0.7.25.3/apt-pkg/init.h 2010-02-01 19:44:40.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/init.h 2010-02-22 20:34:49.000000000 +0000 -@@ -22,7 +22,7 @@ - // 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_MINOR 6 - #define APT_PKG_RELEASE 0 - - extern const char *pkgVersion; -diff -ru apt-0.7.25.3/apt-pkg/depcache.cc apt-0.7.25.3+iPhone/apt-pkg/depcache.cc ---- apt-0.7.25.3/apt-pkg/depcache.cc 2010-02-01 19:44:40.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/depcache.cc 2010-02-22 20:44:23.000000000 +0000 -@@ -707,6 +707,10 @@ - // DepCache::MarkKeep - Put the package in the keep state /*{{{*/ - // --------------------------------------------------------------------- - /* */ -+void pkgDepCache::MarkKeep(PkgIterator const &Pkg, bool Soft, bool FromUser) { -+ MarkKeep(Pkg, Soft, FromUser, 0); -+} -+ - void pkgDepCache::MarkKeep(PkgIterator const &Pkg, bool Soft, bool FromUser, - unsigned long Depth) - { diff --git a/data/_apt7/apt-nito.tgz b/data/_apt7/apt-nito.tgz Binary files differnew file mode 100644 index 000000000..8ebac625c --- /dev/null +++ b/data/_apt7/apt-nito.tgz diff --git a/data/_apt7/apt_0.7.25.3.tar.gz b/data/_apt7/apt_0.7.25.3.tar.gz Binary files differdeleted file mode 100644 index 72b140be8..000000000 --- a/data/_apt7/apt_0.7.25.3.tar.gz +++ /dev/null diff --git a/data/_apt7/aptbug545699.args b/data/_apt7/aptbug545699.args deleted file mode 100644 index 4dd9cbd34..000000000 --- a/data/_apt7/aptbug545699.args +++ /dev/null @@ -1 +0,0 @@ --p0 diff --git a/data/_apt7/aptbug545699.diff b/data/_apt7/aptbug545699.diff deleted file mode 100644 index 336241f9b..000000000 --- a/data/_apt7/aptbug545699.diff +++ /dev/null @@ -1,71 +0,0 @@ -=== modified file 'apt-pkg/acquire-item.cc' ---- apt-pkg/acquire-item.cc 2009-08-28 19:07:55 +0000 -+++ apt-pkg/acquire-item.cc 2009-09-08 12:50:05 +0000 -@@ -274,7 +274,7 @@ - if(last_space != string::npos) - Description.erase(last_space, Description.size()-last_space); - new pkgAcqIndexDiffs(Owner, RealURI, Description, Desc.ShortDesc, -- ExpectedHash, available_patches); -+ ExpectedHash, ServerSha1, available_patches); - Complete = false; - Status = StatDone; - Dequeue(); -@@ -342,9 +342,10 @@ - pkgAcqIndexDiffs::pkgAcqIndexDiffs(pkgAcquire *Owner, - string URI,string URIDesc,string ShortDesc, - HashString ExpectedHash, -+ string ServerSha1, - vector<DiffInfo> diffs) - : Item(Owner), RealURI(URI), ExpectedHash(ExpectedHash), -- available_patches(diffs) -+ available_patches(diffs), ServerSha1(ServerSha1) - { - - DestFile = _config->FindDir("Dir::State::lists") + "partial/"; -@@ -430,6 +431,13 @@ - std::clog << "QueueNextDiff: " - << FinalFile << " (" << local_sha1 << ")"<<std::endl; - -+ // final file reached before all patches are applied -+ if(local_sha1 == ServerSha1) -+ { -+ Finish(true); -+ return true; -+ } -+ - // remove all patches until the next matching patch is found - // this requires the Index file to be ordered - for(vector<DiffInfo>::iterator I=available_patches.begin(); -@@ -527,7 +535,7 @@ - // see if there is more to download - if(available_patches.size() > 0) { - new pkgAcqIndexDiffs(Owner, RealURI, Description, Desc.ShortDesc, -- ExpectedHash, available_patches); -+ ExpectedHash, ServerSha1, available_patches); - return Finish(); - } else - return Finish(true); - -=== modified file 'apt-pkg/acquire-item.h' ---- apt-pkg/acquire-item.h 2009-08-11 22:52:26 +0000 -+++ apt-pkg/acquire-item.h 2009-09-08 12:30:11 +0000 -@@ -422,6 +422,10 @@ - * off the front? - */ - vector<DiffInfo> available_patches; -+ -+ /** Stop applying patches when reaching that sha1 */ -+ string ServerSha1; -+ - /** The current status of this patch. */ - enum DiffState - { -@@ -475,6 +479,7 @@ - */ - pkgAcqIndexDiffs(pkgAcquire *Owner,string URI,string URIDesc, - string ShortDesc, HashString ExpectedHash, -+ string ServerSha1, - vector<DiffInfo> diffs=vector<DiffInfo>()); - }; - /*}}}*/ - diff --git a/data/_apt7/arch-errors.diff b/data/_apt7/arch-errors.diff new file mode 100644 index 000000000..66cafc727 --- /dev/null +++ b/data/_apt7/arch-errors.diff @@ -0,0 +1,15 @@ +diff -ur apt/apt-pkg/acquire-item.cc apt+iPhone/apt-pkg/acquire-item.cc +--- apt/apt-pkg/acquire-item.cc 2018-07-30 21:45:07.000000000 -1000 ++++ apt+iPhone/apt-pkg/acquire-item.cc 2018-08-01 23:21:41.000000000 -1000 +@@ -1423,8 +1423,9 @@ + if (TransactionManager->MetaIndexParser->IsArchitectureSupported(arch) == false) + { + new CleanupItem(Owner, TransactionManager, Target); +- _error->Notice(_("Skipping acquire of configured file '%s' as repository '%s' doesn't support architecture '%s'"), +- Target.MetaKey.c_str(), TransactionManager->Target.Description.c_str(), arch.c_str()); ++ if (strcmp(arch.c_str(), "iphoneos-arm64")!=0) ++ _error->Notice(_("Skipping acquire of configured file '%s' as repository '%s' doesn't support architecture '%s'"), ++ Target.MetaKey.c_str(), TransactionManager->Target.Description.c_str(), arch.c_str()); + continue; + } + // if the architecture is officially supported but currently no packages for it available, diff --git a/data/_apt7/architecture.diff b/data/_apt7/architecture.diff deleted file mode 100644 index 65533f6a6..000000000 --- a/data/_apt7/architecture.diff +++ /dev/null @@ -1,13 +0,0 @@ -diff -ru apt-0.7.25.3/apt-pkg/deb/deblistparser.cc apt-0.7.25.3+iPhone/apt-pkg/deb/deblistparser.cc ---- apt-0.7.25.3/apt-pkg/deb/deblistparser.cc 2010-02-01 19:44:40.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/deb/deblistparser.cc 2011-05-27 05:46:33.000000000 +0000 -@@ -605,6 +605,9 @@ - if (stringcmp(Start,Stop,"all") == 0) - return true; - -+ if (stringcmp(Start,Stop,"cydia") == 0) -+ return true; -+ - iOffset = Tags.Offset(); - } - return false; diff --git a/data/_apt7/cache-limit.diff b/data/_apt7/cache-limit.diff deleted file mode 100644 index 01db636be..000000000 --- a/data/_apt7/cache-limit.diff +++ /dev/null @@ -1,21 +0,0 @@ -diff -ru apt-0.7.25.3/apt-pkg/pkgcachegen.cc apt-0.7.25.3+iPhone/apt-pkg/pkgcachegen.cc ---- apt-0.7.25.3/apt-pkg/pkgcachegen.cc 2010-02-01 19:44:40.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/pkgcachegen.cc 2014-06-13 09:34:25.000000000 +0000 -@@ -827,7 +827,7 @@ - MMap **OutMap,bool AllowMem) - { - bool const Debug = _config->FindB("Debug::pkgCacheGen", false); -- unsigned long const MapSize = _config->FindI("APT::Cache-Limit",24*1024*1024); -+ unsigned long const MapSize = _config->FindI("APT::Cache-Limit",128*1024*1024); - - vector<pkgIndexFile *> Files; - for (vector<metaIndex *>::const_iterator i = List.begin(); -@@ -992,7 +992,7 @@ - /* */ - bool pkgMakeOnlyStatusCache(OpProgress &Progress,DynamicMMap **OutMap) - { -- unsigned long MapSize = _config->FindI("APT::Cache-Limit",20*1024*1024); -+ unsigned long MapSize = _config->FindI("APT::Cache-Limit",128*1024*1024); - vector<pkgIndexFile *> Files; - unsigned long EndOfSource = Files.size(); - if (_system->AddStatusFiles(Files) == false) diff --git a/data/_apt7/cfnetwork.diff b/data/_apt7/cfnetwork.diff deleted file mode 100644 index 1a9e10f8d..000000000 --- a/data/_apt7/cfnetwork.diff +++ /dev/null @@ -1,702 +0,0 @@ -diff -ru apt-0.7.25.3/methods/http.cc apt-0.7.25.3+iPhone/methods/http.cc ---- apt-0.7.25.3/methods/http.cc 2010-02-01 19:44:41.000000000 +0000 -+++ apt-0.7.25.3+iPhone/methods/http.cc 2010-02-22 20:20:42.000000000 +0000 -@@ -31,6 +31,7 @@ - #include <apt-pkg/hashes.h> - #include <apt-pkg/netrc.h> - -+#include <sys/sysctl.h> - #include <sys/stat.h> - #include <sys/time.h> - #include <utime.h> -@@ -41,11 +42,19 @@ - #include <string.h> - #include <iostream> - #include <map> -+#include <set> - #include <apti18n.h> - - - // Internet stuff - #include <netdb.h> -+#include <arpa/inet.h> -+ -+#include <dlfcn.h> -+#include <lockdown.h> -+#include <CoreFoundation/CoreFoundation.h> -+#include <CoreServices/CoreServices.h> -+#include <SystemConfiguration/SystemConfiguration.h> - - #include "config.h" - #include "connect.h" -@@ -54,6 +62,51 @@ - /*}}}*/ - using namespace std; - -+CFStringRef Firmware_; -+const char *Machine_; -+CFStringRef UniqueID_; -+ -+void CfrsError(const char *name, CFReadStreamRef rs) { -+ CFStreamError se = CFReadStreamGetError(rs); -+ -+ if (se.domain == kCFStreamErrorDomainCustom) { -+ } else if (se.domain == kCFStreamErrorDomainPOSIX) { -+ _error->Error("POSIX: %s", strerror(se.error)); -+ } else if (se.domain == kCFStreamErrorDomainMacOSStatus) { -+ _error->Error("MacOSStatus: %ld", se.error); -+ } else if (se.domain == kCFStreamErrorDomainNetDB) { -+ _error->Error("NetDB: %s %s", name, gai_strerror(se.error)); -+ } else if (se.domain == kCFStreamErrorDomainMach) { -+ _error->Error("Mach: %ld", se.error); -+ } else if (se.domain == kCFStreamErrorDomainHTTP) { -+ switch (se.error) { -+ case kCFStreamErrorHTTPParseFailure: -+ _error->Error("Parse failure"); -+ break; -+ -+ case kCFStreamErrorHTTPRedirectionLoop: -+ _error->Error("Redirection loop"); -+ break; -+ -+ case kCFStreamErrorHTTPBadURL: -+ _error->Error("Bad URL"); -+ break; -+ -+ default: -+ _error->Error("Unknown HTTP error: %ld", se.error); -+ break; -+ } -+ } else if (se.domain == kCFStreamErrorDomainSOCKS) { -+ _error->Error("SOCKS: %ld", se.error); -+ } else if (se.domain == kCFStreamErrorDomainSystemConfiguration) { -+ _error->Error("SystemConfiguration: %ld", se.error); -+ } else if (se.domain == kCFStreamErrorDomainSSL) { -+ _error->Error("SSL: %ld", se.error); -+ } else { -+ _error->Error("Domain #%ld: %ld", se.domain, se.error); -+ } -+} -+ - string HttpMethod::FailFile; - int HttpMethod::FailFd = -1; - time_t HttpMethod::FailTime = 0; -@@ -646,6 +699,51 @@ - } - /*}}}*/ - -+static const CFOptionFlags kNetworkEvents = -+ kCFStreamEventOpenCompleted | -+ kCFStreamEventHasBytesAvailable | -+ kCFStreamEventEndEncountered | -+ kCFStreamEventErrorOccurred | -+0; -+ -+static void CFReadStreamCallback(CFReadStreamRef stream, CFStreamEventType event, void *arg) { -+ switch (event) { -+ case kCFStreamEventOpenCompleted: -+ break; -+ -+ case kCFStreamEventHasBytesAvailable: -+ case kCFStreamEventEndEncountered: -+ *reinterpret_cast<int *>(arg) = 1; -+ CFRunLoopStop(CFRunLoopGetCurrent()); -+ break; -+ -+ case kCFStreamEventErrorOccurred: -+ *reinterpret_cast<int *>(arg) = -1; -+ CFRunLoopStop(CFRunLoopGetCurrent()); -+ break; -+ } -+} -+ -+/* http://lists.apple.com/archives/Macnetworkprog/2006/Apr/msg00014.html */ -+int CFReadStreamOpen(CFReadStreamRef stream, double timeout) { -+ CFStreamClientContext context; -+ int value(0); -+ -+ memset(&context, 0, sizeof(context)); -+ context.info = &value; -+ -+ if (CFReadStreamSetClient(stream, kNetworkEvents, CFReadStreamCallback, &context)) { -+ CFReadStreamScheduleWithRunLoop(stream, CFRunLoopGetCurrent(), kCFRunLoopCommonModes); -+ if (CFReadStreamOpen(stream)) -+ CFRunLoopRunInMode(kCFRunLoopDefaultMode, timeout, false); -+ else -+ value = -1; -+ CFReadStreamSetClient(stream, kCFStreamEventNone, NULL, NULL); -+ } -+ -+ return value; -+} -+ - // HttpMethod::SendReq - Send the HTTP request /*{{{*/ - // --------------------------------------------------------------------- - /* This places the http request in the outbound buffer */ -@@ -1088,6 +1186,8 @@ - signal(SIGINT,SigTerm); - - Server = 0; -+ -+ std::set<std::string> cached; - - int FailCounter = 0; - while (1) -@@ -1107,214 +1207,314 @@ - - if (Queue == 0) - continue; -- -- // Connect to the server -- if (Server == 0 || Server->Comp(Queue->Uri) == false) -- { -- delete Server; -- Server = new ServerState(Queue->Uri,this); -- } -- /* If the server has explicitly said this is the last connection -- then we pre-emptively shut down the pipeline and tear down -- the connection. This will speed up HTTP/1.0 servers a tad -- since we don't have to wait for the close sequence to -- complete */ -- if (Server->Persistent == false) -- Server->Close(); -- -- // Reset the pipeline -- if (Server->ServerFd == -1) -- QueueBack = Queue; -- -- // Connnect to the host -- if (Server->Open() == false) -- { -- Fail(true); -- delete Server; -- Server = 0; -- continue; -+ -+ CFStringEncoding se = kCFStringEncodingUTF8; -+ -+ char *url = strdup(Queue->Uri.c_str()); -+ url: -+ URI uri = std::string(url); -+ std::string hs = uri.Host; -+ -+ if (cached.find(hs) != cached.end()) { -+ _error->Error("Cached Failure"); -+ Fail(true); -+ free(url); -+ FailCounter = 0; -+ continue; -+ } -+ -+ std::string urs = uri; -+ -+ for (;;) { -+ size_t bad = urs.find_first_of("+"); -+ if (bad == std::string::npos) -+ break; -+ // XXX: generalize -+ urs = urs.substr(0, bad) + "%2b" + urs.substr(bad + 1); - } - -- // Fill the pipeline. -- Fetch(0); -- -- // Fetch the next URL header data from the server. -- switch (Server->RunHeaders()) -- { -- case 0: -- break; -- -- // The header data is bad -- case 2: -- { -- _error->Error(_("Bad header data")); -- Fail(true); -- RotateDNS(); -- continue; -- } -- -- // The server closed a connection during the header get.. -- default: -- case 1: -- { -- FailCounter++; -- _error->Discard(); -- Server->Close(); -- Server->Pipeline = false; -- -- if (FailCounter >= 2) -- { -- Fail(_("Connection failed"),true); -- FailCounter = 0; -- } -- -- RotateDNS(); -- continue; -- } -- }; -+ CFStringRef sr = CFStringCreateWithCString(kCFAllocatorDefault, urs.c_str(), se); -+ CFURLRef ur = CFURLCreateWithString(kCFAllocatorDefault, sr, NULL); -+ CFRelease(sr); -+ CFHTTPMessageRef hm = CFHTTPMessageCreateRequest(kCFAllocatorDefault, CFSTR("GET"), ur, kCFHTTPVersion1_1); -+ CFRelease(ur); -+ -+ struct stat SBuf; -+ if (stat(Queue->DestFile.c_str(), &SBuf) >= 0 && SBuf.st_size > 0) { -+ sr = CFStringCreateWithFormat(kCFAllocatorDefault, NULL, CFSTR("bytes=%li-"), (long) SBuf.st_size - 1); -+ CFHTTPMessageSetHeaderFieldValue(hm, CFSTR("Range"), sr); -+ CFRelease(sr); -+ -+ sr = CFStringCreateWithCString(kCFAllocatorDefault, TimeRFC1123(SBuf.st_mtime).c_str(), se); -+ CFHTTPMessageSetHeaderFieldValue(hm, CFSTR("If-Range"), sr); -+ CFRelease(sr); -+ -+ CFHTTPMessageSetHeaderFieldValue(hm, CFSTR("Cache-Control"), CFSTR("no-cache")); -+ } else if (Queue->LastModified != 0) { -+ sr = CFStringCreateWithCString(kCFAllocatorDefault, TimeRFC1123(Queue->LastModified).c_str(), se); -+ CFHTTPMessageSetHeaderFieldValue(hm, CFSTR("If-Modified-Since"), sr); -+ CFRelease(sr); -+ -+ CFHTTPMessageSetHeaderFieldValue(hm, CFSTR("Cache-Control"), CFSTR("no-cache")); -+ } else -+ CFHTTPMessageSetHeaderFieldValue(hm, CFSTR("Cache-Control"), CFSTR("max-age=0")); -+ -+ if (Firmware_ != NULL) -+ CFHTTPMessageSetHeaderFieldValue(hm, CFSTR("X-Firmware"), Firmware_); -+ -+ sr = CFStringCreateWithCString(kCFAllocatorDefault, Machine_, se); -+ CFHTTPMessageSetHeaderFieldValue(hm, CFSTR("X-Machine"), sr); -+ CFRelease(sr); -+ -+ if (UniqueID_ != NULL) -+ CFHTTPMessageSetHeaderFieldValue(hm, CFSTR("X-Unique-ID"), UniqueID_); -+ -+ CFHTTPMessageSetHeaderFieldValue(hm, CFSTR("User-Agent"), CFSTR("Telesphoreo APT-HTTP/1.0.592")); -+ -+ CFReadStreamRef rs = CFReadStreamCreateForHTTPRequest(kCFAllocatorDefault, hm); -+ CFRelease(hm); -+ -+#define _kCFStreamPropertyReadTimeout CFSTR("_kCFStreamPropertyReadTimeout") -+#define _kCFStreamPropertyWriteTimeout CFSTR("_kCFStreamPropertyWriteTimeout") -+#define _kCFStreamPropertySocketImmediateBufferTimeOut CFSTR("_kCFStreamPropertySocketImmediateBufferTimeOut") -+ -+ /*SInt32 to(TimeOut); -+ CFNumberRef nm(CFNumberCreate(kCFAllocatorDefault, kCFNumberSInt32Type, &to));*/ -+ double to(TimeOut); -+ CFNumberRef nm(CFNumberCreate(kCFAllocatorDefault, kCFNumberDoubleType, &to)); -+ -+ CFReadStreamSetProperty(rs, _kCFStreamPropertyReadTimeout, nm); -+ CFReadStreamSetProperty(rs, _kCFStreamPropertyWriteTimeout, nm); -+ CFReadStreamSetProperty(rs, _kCFStreamPropertySocketImmediateBufferTimeOut, nm); -+ CFRelease(nm); -+ -+ CFDictionaryRef dr = SCDynamicStoreCopyProxies(NULL); -+ CFReadStreamSetProperty(rs, kCFStreamPropertyHTTPProxy, dr); -+ CFRelease(dr); -+ -+ //CFReadStreamSetProperty(rs, kCFStreamPropertyHTTPShouldAutoredirect, kCFBooleanTrue); -+ CFReadStreamSetProperty(rs, kCFStreamPropertyHTTPAttemptPersistentConnection, kCFBooleanTrue); - -- // Decide what to do. - FetchResult Res; -+ CFIndex rd; -+ UInt32 sc; -+ -+ uint8_t data[10240]; -+ size_t offset = 0; -+ -+ Status("Connecting to %s", hs.c_str()); -+ -+ switch (CFReadStreamOpen(rs, to)) { -+ case -1: -+ CfrsError("Open", rs); -+ goto fail; -+ -+ case 0: -+ _error->Error("Host Unreachable"); -+ cached.insert(hs); -+ goto fail; -+ -+ case 1: -+ /* success */ -+ break; -+ -+ fail: -+ Fail(true); -+ goto done; -+ } -+ -+ rd = CFReadStreamRead(rs, data, sizeof(data)); -+ -+ if (rd == -1) { -+ CfrsError(uri.Host.c_str(), rs); -+ cached.insert(hs); -+ Fail(true); -+ goto done; -+ } -+ - Res.Filename = Queue->DestFile; -- switch (DealWithHeaders(Res,Server)) -- { -- // Ok, the file is Open -- case 0: -- { -- URIStart(Res); - -- // Run the data -- bool Result = Server->RunData(); -+ hm = (CFHTTPMessageRef) CFReadStreamCopyProperty(rs, kCFStreamPropertyHTTPResponseHeader); -+ sc = CFHTTPMessageGetResponseStatusCode(hm); -+ -+ if (sc == 301 || sc == 302) { -+ sr = CFHTTPMessageCopyHeaderFieldValue(hm, CFSTR("Location")); -+ if (sr == NULL) { -+ Fail(); -+ goto done_; -+ } else { -+ size_t ln = CFStringGetLength(sr) + 1; -+ free(url); -+ url = static_cast<char *>(malloc(ln)); -+ -+ if (!CFStringGetCString(sr, url, ln, se)) { -+ Fail(); -+ goto done_; -+ } -+ -+ CFRelease(sr); -+ goto url; -+ } -+ } -+ -+ sr = CFHTTPMessageCopyHeaderFieldValue(hm, CFSTR("Content-Range")); -+ if (sr != NULL) { -+ size_t ln = CFStringGetLength(sr) + 1; -+ char cr[ln]; -+ -+ if (!CFStringGetCString(sr, cr, ln, se)) { -+ Fail(); -+ goto done_; -+ } -+ -+ CFRelease(sr); -+ -+ if (sscanf(cr, "bytes %lu-%*u/%lu", &offset, &Res.Size) != 2) { -+ _error->Error(_("The HTTP server sent an invalid Content-Range header")); -+ Fail(); -+ goto done_; -+ } -+ -+ if (offset > Res.Size) { -+ _error->Error(_("This HTTP server has broken range support")); -+ Fail(); -+ goto done_; -+ } -+ } else { -+ sr = CFHTTPMessageCopyHeaderFieldValue(hm, CFSTR("Content-Length")); -+ if (sr != NULL) { -+ Res.Size = CFStringGetIntValue(sr); -+ CFRelease(sr); -+ } -+ } -+ -+ time(&Res.LastModified); -+ -+ sr = CFHTTPMessageCopyHeaderFieldValue(hm, CFSTR("Last-Modified")); -+ if (sr != NULL) { -+ size_t ln = CFStringGetLength(sr) + 1; -+ char cr[ln]; -+ -+ if (!CFStringGetCString(sr, cr, ln, se)) { -+ Fail(); -+ goto done_; -+ } -+ -+ CFRelease(sr); -+ -+ if (!StrToTime(cr, Res.LastModified)) { -+ _error->Error(_("Unknown date format")); -+ Fail(); -+ goto done_; -+ } -+ } -+ -+ if (sc < 200 || sc >= 300 && sc != 304) { -+ sr = CFHTTPMessageCopyResponseStatusLine(hm); - -- /* If the server is sending back sizeless responses then fill in -- the size now */ -+ size_t ln = CFStringGetLength(sr) + 1; -+ char cr[ln]; -+ -+ if (!CFStringGetCString(sr, cr, ln, se)) { -+ Fail(); -+ goto done; -+ } -+ -+ CFRelease(sr); -+ -+ _error->Error("%s", cr); -+ -+ Fail(); -+ goto done_; -+ } -+ -+ CFRelease(hm); -+ -+ if (sc == 304) { -+ unlink(Queue->DestFile.c_str()); -+ Res.IMSHit = true; -+ Res.LastModified = Queue->LastModified; -+ URIDone(Res); -+ } else { -+ Hashes hash; -+ -+ File = new FileFd(Queue->DestFile, FileFd::WriteAny); -+ if (_error->PendingError() == true) { -+ delete File; -+ File = NULL; -+ Fail(); -+ goto done; -+ } -+ -+ FailFile = Queue->DestFile; -+ FailFile.c_str(); // Make sure we dont do a malloc in the signal handler -+ FailFd = File->Fd(); -+ FailTime = Res.LastModified; -+ -+ Res.ResumePoint = offset; -+ ftruncate(File->Fd(), offset); -+ -+ if (offset != 0) { -+ lseek(File->Fd(), 0, SEEK_SET); -+ if (!hash.AddFD(File->Fd(), offset)) { -+ _error->Errno("read", _("Problem hashing file")); -+ delete File; -+ File = NULL; -+ Fail(); -+ goto done; -+ } -+ } -+ -+ lseek(File->Fd(), 0, SEEK_END); -+ -+ URIStart(Res); -+ -+ read: if (rd == -1) { -+ CfrsError("rd", rs); -+ Fail(true); -+ } else if (rd == 0) { - if (Res.Size == 0) - Res.Size = File->Size(); -- -- // Close the file, destroy the FD object and timestamp it -- FailFd = -1; -- delete File; -- File = 0; -- -- // Timestamp -+ - struct utimbuf UBuf; - time(&UBuf.actime); -- UBuf.actime = Server->Date; -- UBuf.modtime = Server->Date; -- utime(Queue->DestFile.c_str(),&UBuf); -+ UBuf.actime = Res.LastModified; -+ UBuf.modtime = Res.LastModified; -+ utime(Queue->DestFile.c_str(), &UBuf); - -- // Send status to APT -- if (Result == true) -- { -- Res.TakeHashes(*Server->In.Hash); -- URIDone(Res); -- } -- else -- { -- if (Server->ServerFd == -1) -- { -- FailCounter++; -- _error->Discard(); -- Server->Close(); -- -- if (FailCounter >= 2) -- { -- Fail(_("Connection failed"),true); -- FailCounter = 0; -- } -- -- QueueBack = Queue; -- } -- else -- Fail(true); -- } -- break; -- } -- -- // IMS hit -- case 1: -- { -+ Res.TakeHashes(hash); - URIDone(Res); -- break; -- } -- -- // Hard server error, not found or something -- case 3: -- { -- Fail(); -- break; -- } -- -- // Hard internal error, kill the connection and fail -- case 5: -- { -- delete File; -- File = 0; -+ } else { -+ hash.Add(data, rd); - -- Fail(); -- RotateDNS(); -- Server->Close(); -- break; -- } -+ uint8_t *dt = data; -+ while (rd != 0) { -+ int sz = write(File->Fd(), dt, rd); -+ -+ if (sz == -1) { -+ delete File; -+ File = NULL; -+ Fail(); -+ goto done; -+ } - -- // We need to flush the data, the header is like a 404 w/ error text -- case 4: -- { -- Fail(); -- -- // Send to content to dev/null -- File = new FileFd("/dev/null",FileFd::WriteExists); -- Server->RunData(); -- delete File; -- File = 0; -- break; -- } -- -- // Try again with a new URL -- case 6: -- { -- // Clear rest of response if there is content -- if (Server->HaveContent) -- { -- File = new FileFd("/dev/null",FileFd::WriteExists); -- Server->RunData(); -- delete File; -- File = 0; -+ dt += sz; -+ rd -= sz; - } - -- /* Detect redirect loops. No more redirects are allowed -- after the same URI is seen twice in a queue item. */ -- StringVector &R = Redirected[Queue->DestFile]; -- bool StopRedirects = false; -- if (R.size() == 0) -- R.push_back(Queue->Uri); -- else if (R[0] == "STOP" || R.size() > 10) -- StopRedirects = true; -- else -- { -- for (StringVectorIterator I = R.begin(); I != R.end(); I++) -- if (Queue->Uri == *I) -- { -- R[0] = "STOP"; -- break; -- } -- -- R.push_back(Queue->Uri); -- } -- -- if (StopRedirects == false) -- Redirect(NextURI); -- else -- Fail(); -- -- break; -+ rd = CFReadStreamRead(rs, data, sizeof(data)); -+ goto read; - } -- -- default: -- Fail(_("Internal error")); -- break; - } -- -+ -+ goto done; -+ done_: -+ CFRelease(hm); -+ done: -+ CFReadStreamClose(rs); -+ CFRelease(rs); -+ free(url); -+ - FailCounter = 0; - } - -@@ -1330,6 +1530,41 @@ - signal(SIGPIPE, SIG_IGN); - - HttpMethod Mth; -+ -+ size_t size; -+ sysctlbyname("hw.machine", NULL, &size, NULL, 0); -+ char *machine = new char[size]; -+ sysctlbyname("hw.machine", machine, &size, NULL, 0); -+ Machine_ = machine; -+ -+ const char *path = "/System/Library/CoreServices/SystemVersion.plist"; -+ CFURLRef url = CFURLCreateFromFileSystemRepresentation(kCFAllocatorDefault, (uint8_t *) path, strlen(path), false); -+ -+ CFPropertyListRef plist; { -+ CFReadStreamRef stream = CFReadStreamCreateWithFile(kCFAllocatorDefault, url); -+ CFReadStreamOpen(stream); -+ plist = CFPropertyListCreateFromStream(kCFAllocatorDefault, stream, 0, kCFPropertyListImmutable, NULL, NULL); -+ CFReadStreamClose(stream); -+ } -+ -+ CFRelease(url); -+ -+ if (plist != NULL) { -+ Firmware_ = (CFStringRef) CFRetain(CFDictionaryGetValue((CFDictionaryRef) plist, CFSTR("ProductVersion"))); -+ CFRelease(plist); -+ } -+ -+ if (UniqueID_ == NULL) -+ if (void *libMobileGestalt = dlopen("/usr/lib/libMobileGestalt.dylib", RTLD_GLOBAL | RTLD_LAZY)) -+ if (CFStringRef (*$MGCopyAnswer)(CFStringRef) = (CFStringRef (*)(CFStringRef)) dlsym(libMobileGestalt, "MGCopyAnswer")) -+ UniqueID_ = $MGCopyAnswer(CFSTR("UniqueDeviceID")); -+ -+ if (UniqueID_ == NULL) -+ if (void *lockdown = lockdown_connect()) { -+ UniqueID_ = lockdown_copy_value(lockdown, NULL, kLockdownUniqueDeviceIDKey); -+ lockdown_disconnect(lockdown); -+ } -+ - return Mth.Loop(); - } - -diff -ru apt-0.7.25.3/methods/makefile apt-0.7.25.3+iPhone/methods/makefile ---- apt-0.7.25.3/methods/makefile 2010-02-01 19:44:41.000000000 +0000 -+++ apt-0.7.25.3+iPhone/methods/makefile 2010-02-22 20:14:29.000000000 +0000 -@@ -46,7 +46,7 @@ - - # The http method - PROGRAM=http --SLIBS = -lapt-pkg $(SOCKETLIBS) $(INTLLIBS) -+SLIBS = -lapt-pkg $(SOCKETLIBS) $(INTLLIBS) -framework CoreFoundation -framework CFNetwork -framework SystemConfiguration -framework IOKit -llockdown - LIB_MAKES = apt-pkg/makefile - SOURCE = http.cc rfc2553emu.cc connect.cc - include $(PROGRAM_H) diff --git a/data/_apt7/cftype.diff b/data/_apt7/cftype.diff new file mode 100644 index 000000000..2c21cba39 --- /dev/null +++ b/data/_apt7/cftype.diff @@ -0,0 +1,11 @@ +--- apt/methods/http.cc 2018-07-30 21:45:07.000000000 -1000 ++++ apt+iPhone/methods/http.cc 2018-07-30 23:55:04.000000000 -1000 +@@ -603,7 +603,7 @@ + + if (UniqueID_ == NULL) + if (void *lockdown = lockdown_connect()) { +- UniqueID_ = lockdown_copy_value(lockdown, NULL, kLockdownUniqueDeviceIDKey); ++ UniqueID_ = (CFStringRef)lockdown_copy_value(lockdown, NULL, kLockdownUniqueDeviceIDKey); + lockdown_disconnect(lockdown); + } + diff --git a/data/_apt7/date-errors.diff b/data/_apt7/date-errors.diff new file mode 100644 index 000000000..53ee7dd4b --- /dev/null +++ b/data/_apt7/date-errors.diff @@ -0,0 +1,12 @@ +--- apt/apt-pkg/deb/debmetaindex.cc 2018-07-30 21:45:07.000000000 -1000 ++++ apt+iPhone/apt-pkg/deb/debmetaindex.cc 2018-08-02 00:03:17.000000000 -1000 +@@ -458,9 +458,6 @@ + + if (CheckValidUntil == true) + { +- if (Date == 0) +- _error->Warning( _("Invalid '%s' entry in Release file %s"), "Date", Filename.c_str()); +- + std::string const Label = Section.FindS("Label"); + std::string const StrValidUntil = Section.FindS("Valid-Until"); + diff --git a/data/_apt7/deprecated.diff b/data/_apt7/deprecated.diff deleted file mode 100644 index 737aed6f9..000000000 --- a/data/_apt7/deprecated.diff +++ /dev/null @@ -1,13 +0,0 @@ -diff -ru apt-0.7.25.3/apt-pkg/contrib/macros.h apt-0.7.25.3+iPhone/apt-pkg/contrib/macros.h ---- apt-0.7.25.3/apt-pkg/contrib/macros.h 2010-02-22 18:11:17.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/contrib/macros.h 2010-02-01 19:44:40.000000000 +0000 -@@ -57,7 +57,9 @@ - // some nice optional GNUC features - #if __GNUC__ >= 3 - #define __must_check __attribute__ ((warn_unused_result)) -+#ifndef __deprecated - #define __deprecated __attribute__ ((deprecated)) -+#endif - /* likely() and unlikely() can be used to mark boolean expressions - as (not) likely true which will help the compiler to optimise */ - #define likely(x) __builtin_expect (!!(x), 1) diff --git a/data/_apt7/display.diff b/data/_apt7/display.diff deleted file mode 100644 index d4686ed59..000000000 --- a/data/_apt7/display.diff +++ /dev/null @@ -1,125 +0,0 @@ -diff -ru apt-0.7.25.3/apt-pkg/cacheiterators.h apt-0.7.25.3+iPhone/apt-pkg/cacheiterators.h ---- apt-0.7.25.3/apt-pkg/cacheiterators.h 2010-02-23 20:58:32.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/cacheiterators.h 2010-02-23 20:59:22.000000000 +0000 -@@ -71,6 +71,7 @@ - inline pkgCache *Cache() {return Owner;}; - - inline const char *Name() const {return Pkg->Name == 0?0:Owner->StrP + Pkg->Name;}; -+ inline const char *Display() const {return Pkg->Display == 0?0:Owner->StrP + Pkg->Display;}; - inline const char *Section() const {return Pkg->Section == 0?0:Owner->StrP + Pkg->Section;}; - inline bool Purge() const {return Pkg->CurrentState == pkgCache::State::Purge || - (Pkg->CurrentVer == 0 && Pkg->CurrentState == pkgCache::State::NotInstalled);}; -@@ -132,6 +133,7 @@ - inline pkgCache *Cache() {return Owner;}; - - inline const char *VerStr() const {return Ver->VerStr == 0?0:Owner->StrP + Ver->VerStr;}; -+ inline const char *Display() const {return Ver->Display == 0?0:Owner->StrP + Ver->Display;}; - inline const char *Section() const {return Ver->Section == 0?0:Owner->StrP + Ver->Section;}; - inline const char *Arch() const {return Ver->Arch == 0?0:Owner->StrP + Ver->Arch;}; - inline PkgIterator ParentPkg() const {return PkgIterator(*Owner,Owner->PkgP + Ver->ParentPkg);}; -diff -ru apt-0.7.25.3/apt-pkg/deb/deblistparser.cc apt-0.7.25.3+iPhone/apt-pkg/deb/deblistparser.cc ---- apt-0.7.25.3/apt-pkg/deb/deblistparser.cc 2010-02-23 20:58:32.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/deb/deblistparser.cc 2010-02-23 20:59:56.000000000 +0000 -@@ -39,6 +39,18 @@ - // ListParser::UniqFindTagWrite - Find the tag and write a unq string /*{{{*/ - // --------------------------------------------------------------------- - /* */ -+unsigned long debListParser::FindTagWrite(const char *Tag) -+{ -+ const char *Start; -+ const char *Stop; -+ if (Section.Find(Tag,Start,Stop) == false) -+ return 0; -+ return WriteString(Start,Stop - Start); -+} -+ /*}}}*/ -+// ListParser::UniqFindTagWrite - Find the tag and write a unq string /*{{{*/ -+// --------------------------------------------------------------------- -+/* */ - unsigned long debListParser::UniqFindTagWrite(const char *Tag) - { - const char *Start; -@@ -74,6 +86,10 @@ - /* */ - bool debListParser::NewVersion(pkgCache::VerIterator Ver) - { -+ Ver->Display = FindTagWrite("Name"); -+ if (Ver->Display == 0) -+ Ver->Display = FindTagWrite("Maemo-Display-Name"); -+ - // Parse the section - Ver->Section = UniqFindTagWrite("Section"); - Ver->Arch = UniqFindTagWrite("Architecture"); -@@ -170,6 +186,10 @@ - bool debListParser::UsePackage(pkgCache::PkgIterator Pkg, - pkgCache::VerIterator Ver) - { -+ if (Pkg->Display == 0) -+ Pkg->Display = FindTagWrite("Name"); -+ if (Pkg->Display == 0) -+ Pkg->Display = FindTagWrite("Maemo-Display-Name"); - if (Pkg->Section == 0) - Pkg->Section = UniqFindTagWrite("Section"); - if (Section.FindFlag("Essential",Pkg->Flags,pkgCache::Flag::Essential) == false) -diff -ru apt-0.7.25.3/apt-pkg/deb/deblistparser.h apt-0.7.25.3+iPhone/apt-pkg/deb/deblistparser.h ---- apt-0.7.25.3/apt-pkg/deb/deblistparser.h 2010-02-23 20:58:32.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/deb/deblistparser.h 2010-02-23 20:59:46.000000000 +0000 -@@ -33,6 +33,7 @@ - unsigned long iOffset; - string Arch; - -+ unsigned long FindTagWrite(const char *Tag); - unsigned long UniqFindTagWrite(const char *Tag); - bool ParseStatus(pkgCache::PkgIterator Pkg,pkgCache::VerIterator Ver); - bool ParseDepends(pkgCache::VerIterator Ver,const char *Tag, -diff -ru apt-0.7.25.3/apt-pkg/deb/debrecords.cc apt-0.7.25.3+iPhone/apt-pkg/deb/debrecords.cc ---- apt-0.7.25.3/apt-pkg/deb/debrecords.cc 2010-02-23 20:58:32.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/deb/debrecords.cc 2010-02-23 20:59:22.000000000 +0000 -@@ -51,6 +51,17 @@ - return Section.FindS("Package"); - } - /*}}}*/ -+// RecordParser::Display - Return the package display name /*{{{*/ -+// --------------------------------------------------------------------- -+/* */ -+string debRecordParser::Display() -+{ -+ string display(Section.FindS("Name")); -+ if (display.empty()) -+ display = Section.FindS("Maemo-Display-Name"); -+ return display; -+} -+ /*}}}*/ - // RecordParser::Homepage - Return the package homepage /*{{{*/ - // --------------------------------------------------------------------- - /* */ -diff -ru apt-0.7.25.3/apt-pkg/deb/debrecords.h apt-0.7.25.3+iPhone/apt-pkg/deb/debrecords.h ---- apt-0.7.25.3/apt-pkg/deb/debrecords.h 2010-02-23 20:58:32.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/deb/debrecords.h 2010-02-23 20:59:22.000000000 +0000 -@@ -47,6 +47,7 @@ - virtual string ShortDesc(); - virtual string LongDesc(); - virtual string Name(); -+ virtual string Display(); - virtual string Homepage(); - - virtual void GetRec(const char *&Start,const char *&Stop); -diff -ru apt-0.7.25.3/apt-pkg/pkgcache.h apt-0.7.25.3+iPhone/apt-pkg/pkgcache.h ---- apt-0.7.25.3/apt-pkg/pkgcache.h 2010-02-23 20:58:32.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/pkgcache.h 2010-02-23 20:59:22.000000000 +0000 -@@ -206,6 +206,7 @@ - { - // Pointers - map_ptrloc Name; // Stringtable -+ map_ptrloc Display; // Stringtable - map_ptrloc VersionList; // Version - map_ptrloc CurrentVer; // Version - map_ptrloc Section; // StringTable (StringItem) -@@ -271,6 +272,7 @@ - struct pkgCache::Version /*{{{*/ - { - map_ptrloc VerStr; // Stringtable -+ map_ptrloc Display; // Stringtable - map_ptrloc Section; // StringTable (StringItem) - map_ptrloc Arch; // StringTable - diff --git a/data/_apt7/find.diff b/data/_apt7/find.diff deleted file mode 100644 index 56eb1e2ab..000000000 --- a/data/_apt7/find.diff +++ /dev/null @@ -1,37 +0,0 @@ -diff -ru apt-0.7.20.2/apt-pkg/deb/debrecords.cc apt-0.7.20.2+iPhone/apt-pkg/deb/debrecords.cc ---- apt-0.7.20.2/apt-pkg/deb/debrecords.cc 2009-02-07 15:09:35.000000000 +0000 -+++ apt-0.7.20.2+iPhone/apt-pkg/deb/debrecords.cc 2009-04-19 03:41:21.000000000 +0000 -@@ -170,3 +170,11 @@ - Section.GetSection(Start,Stop); - } - /*}}}*/ -+// RecordParser::Find - Locate a tag /*{{{*/ -+// --------------------------------------------------------------------- -+/* */ -+bool debRecordParser::Find(const char *Tag,const char *&Start, const char *&End) -+{ -+ return Section.Find(Tag,Start,End); -+} -+ /*}}}*/ -diff -ru apt-0.7.20.2/apt-pkg/deb/debrecords.h apt-0.7.20.2+iPhone/apt-pkg/deb/debrecords.h ---- apt-0.7.20.2/apt-pkg/deb/debrecords.h 2009-02-07 15:09:35.000000000 +0000 -+++ apt-0.7.20.2+iPhone/apt-pkg/deb/debrecords.h 2009-04-19 03:46:48.000000000 +0000 -@@ -47,6 +47,7 @@ - virtual string Homepage(); - - virtual void GetRec(const char *&Start,const char *&Stop); -+ virtual bool Find(const char *Tag,const char *&Start, const char *&End); - - debRecordParser(string FileName,pkgCache &Cache); - }; -diff -ru apt-0.7.20.2/apt-pkg/pkgrecords.h apt-0.7.20.2+iPhone/apt-pkg/pkgrecords.h ---- apt-0.7.20.2/apt-pkg/pkgrecords.h 2009-04-18 23:19:45.000000000 +0000 -+++ apt-0.7.20.2+iPhone/apt-pkg/pkgrecords.h 2009-04-19 03:39:04.000000000 +0000 -@@ -70,6 +70,7 @@ - - // The record in binary form - virtual void GetRec(const char *&Start,const char *&Stop) {Start = Stop = 0;}; -+ virtual bool Find(const char *Tag,const char *&Start, const char *&End) {Start = End = 0; return false;}; - - virtual ~Parser() {}; - }; diff --git a/data/_apt7/finddesc.diff b/data/_apt7/finddesc.diff deleted file mode 100644 index 15bba37e2..000000000 --- a/data/_apt7/finddesc.diff +++ /dev/null @@ -1,59 +0,0 @@ -diff -ru apt-0.7.20.2/apt-pkg/deb/debrecords.cc apt-0.7.20.2+iPhone/apt-pkg/deb/debrecords.cc ---- apt-0.7.20.2/apt-pkg/deb/debrecords.cc 2009-04-20 08:54:09.000000000 +0000 -+++ apt-0.7.20.2+iPhone/apt-pkg/deb/debrecords.cc 2009-04-20 17:26:22.000000000 +0000 -@@ -124,6 +134,29 @@ - return orig; - } - /*}}}*/ -+// RecordParser::ShortDesc - Return a 1 line description /*{{{*/ -+// --------------------------------------------------------------------- -+/* */ -+bool debRecordParser::ShortDesc(const char *&Start,const char *&End) -+{ -+ if (!LongDesc(Start,End)) -+ return false; -+ const char *Line = (const char *) memchr(Start, '\n', End - Start); -+ if (Line != NULL) -+ End = Line; -+ return true; -+} -+ /*}}}*/ -+// RecordParser::LongDesc - Return a longer description /*{{{*/ -+// --------------------------------------------------------------------- -+/* */ -+bool debRecordParser::LongDesc(const char *&Start,const char *&End) -+{ -+ if (!Section.Find("Description",Start,End)) -+ return Section.Find(("Description-" + pkgIndexFile::LanguageCode()).c_str(),Start,End); -+ return true; -+} -+ /*}}}*/ - - static const char *SourceVerSeparators = " ()"; - -diff -ru apt-0.7.20.2/apt-pkg/deb/debrecords.h apt-0.7.20.2+iPhone/apt-pkg/deb/debrecords.h ---- apt-0.7.20.2/apt-pkg/deb/debrecords.h 2009-04-20 08:54:09.000000000 +0000 -+++ apt-0.7.20.2+iPhone/apt-pkg/deb/debrecords.h 2009-04-20 17:20:31.000000000 +0000 -@@ -39,6 +39,9 @@ - virtual string SourcePkg(); - virtual string SourceVer(); - -+ virtual bool ShortDesc(const char *&Start,const char *&End); -+ virtual bool LongDesc(const char *&Start,const char *&End); -+ - // These are some general stats about the package - virtual string Maintainer(); - virtual string ShortDesc(); -diff -ru apt-0.7.20.2/apt-pkg/pkgrecords.h apt-0.7.20.2+iPhone/apt-pkg/pkgrecords.h ---- apt-0.7.20.2/apt-pkg/pkgrecords.h 2009-04-20 19:56:46.000000000 +0000 -+++ apt-0.7.20.2+iPhone/apt-pkg/pkgrecords.h 2009-04-20 19:55:58.000000000 +0000 -@@ -61,6 +61,9 @@ - virtual string SourcePkg() {return string();}; - virtual string SourceVer() {return string();}; - -+ virtual bool ShortDesc(const char *&Start,const char *&End) {return false;} -+ virtual bool LongDesc(const char *&Start,const char *&End) {return false;} -+ - // These are some general stats about the package - virtual string Maintainer() {return string();}; - virtual string ShortDesc() {return string();}; diff --git a/data/_apt7/hashtable.diff b/data/_apt7/hashtable.diff deleted file mode 100644 index fe5c046c8..000000000 --- a/data/_apt7/hashtable.diff +++ /dev/null @@ -1,61 +0,0 @@ -diff -ru apt-0.7.20.2/apt-pkg/tagfile.cc apt-0.7.20.2+iPhone/apt-pkg/tagfile.cc ---- apt-0.7.20.2/apt-pkg/tagfile.cc 2009-02-07 15:09:35.000000000 +0000 -+++ apt-0.7.20.2+iPhone/apt-pkg/tagfile.cc 2009-04-19 02:42:49.000000000 +0000 -@@ -220,7 +220,10 @@ - if (isspace(Stop[0]) == 0) - { - Indexes[TagCount++] = Stop - Section; -- AlphaIndexes[AlphaHash(Stop,End)] = TagCount; -+ unsigned long hash(AlphaHash(Stop, End)); -+ while (AlphaIndexes[hash] != 0) -+ hash = (hash + 1) % (sizeof(AlphaIndexes) / sizeof(AlphaIndexes[0])); -+ AlphaIndexes[hash] = TagCount; - } - - Stop = (const char *)memchr(Stop,'\n',End - Stop); -@@ -258,14 +261,16 @@ - bool pkgTagSection::Find(const char *Tag,unsigned &Pos) const - { - unsigned int Length = strlen(Tag); -- unsigned int I = AlphaIndexes[AlphaHash(Tag)]; -- if (I == 0) -- return false; -- I--; -+ unsigned int J = AlphaHash(Tag); - -- for (unsigned int Counter = 0; Counter != TagCount; Counter++, -- I = (I+1)%TagCount) -+ for (unsigned int Counter = 0; Counter != TagCount; Counter++, -+ J = (J+1)%(sizeof(AlphaIndexes)/sizeof(AlphaIndexes[0]))) - { -+ unsigned int I = AlphaIndexes[J]; -+ if (I == 0) -+ return false; -+ I--; -+ - const char *St; - St = Section + Indexes[I]; - if (strncasecmp(Tag,St,Length) != 0) -@@ -291,14 +296,16 @@ - const char *&End) const - { - unsigned int Length = strlen(Tag); -- unsigned int I = AlphaIndexes[AlphaHash(Tag)]; -- if (I == 0) -- return false; -- I--; -+ unsigned int J = AlphaHash(Tag); - -- for (unsigned int Counter = 0; Counter != TagCount; Counter++, -- I = (I+1)%TagCount) -+ for (unsigned int Counter = 0; Counter != TagCount; Counter++, -+ J = (J+1)%(sizeof(AlphaIndexes)/sizeof(AlphaIndexes[0]))) - { -+ unsigned int I = AlphaIndexes[J]; -+ if (I == 0) -+ return false; -+ I--; -+ - const char *St; - St = Section + Indexes[I]; - if (strncasecmp(Tag,St,Length) != 0) diff --git a/data/_apt7/iconv.diff b/data/_apt7/iconv.diff deleted file mode 100644 index d8887b1aa..000000000 --- a/data/_apt7/iconv.diff +++ /dev/null @@ -1,23 +0,0 @@ -diff -ru apt-0.7.20.2/apt-pkg/makefile apt-0.7.20.2+iPhone/apt-pkg/makefile ---- apt-0.7.20.2/apt-pkg/makefile 2009-02-07 15:09:35.000000000 +0000 -+++ apt-0.7.20.2+iPhone/apt-pkg/makefile 2009-04-15 19:36:09.000000000 +0000 -@@ -15,7 +15,7 @@ - LIBRARY=apt-pkg - MAJOR=$(LIBAPTPKG_MAJOR) - MINOR=$(LIBAPTPKG_RELEASE) --SLIBS=$(PTHREADLIB) $(INTLLIBS) -lutil -ldl -+SLIBS=$(PTHREADLIB) $(INTLLIBS) -lutil -ldl $(LIBICONV) - APT_DOMAIN:=libapt-pkg$(LIBAPTPKG_MAJOR) - - # Source code for the contributed non-core things -diff -ru apt-0.7.20.2/buildlib/environment.mak.in apt-0.7.20.2+iPhone/buildlib/environment.mak.in ---- apt-0.7.20.2/buildlib/environment.mak.in 2009-02-07 15:09:35.000000000 +0000 -+++ apt-0.7.20.2+iPhone/buildlib/environment.mak.in 2009-04-15 19:36:23.000000000 +0000 -@@ -55,6 +55,7 @@ - PYTHONINCLUDE = @PYTHONINCLUDE@ - BDBLIB = @BDBLIB@ - INTLLIBS = @INTLLIBS@ -+LIBICONV = @LIBICONV@ - - # Shim Headerfile control - HAVE_C9X = @HAVE_C9X@ diff --git a/data/_apt7/insensitive.diff b/data/_apt7/insensitive.diff deleted file mode 100644 index c9e4d3215..000000000 --- a/data/_apt7/insensitive.diff +++ /dev/null @@ -1,12 +0,0 @@ -diff -ru apt-0.7.25.3/apt-pkg/pkgcache.cc apt-0.7.25.3+iPhone/apt-pkg/pkgcache.cc ---- apt-0.7.25.3/apt-pkg/pkgcache.cc 2010-02-01 19:44:40.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/pkgcache.cc 2011-03-11 01:33:44.000000000 +0000 -@@ -185,7 +185,7 @@ - Package *Pkg = PkgP + HeaderP->HashTable[Hash(Name)]; - for (; Pkg != PkgP; Pkg = PkgP + Pkg->NextPackage) - { -- if (Pkg->Name != 0 && StrP[Pkg->Name] == Name[0] && -+ if (Pkg->Name != 0 && - stringcasecmp(Name,StrP + Pkg->Name) == 0) - return PkgIterator(*this,Pkg); - } diff --git a/data/_apt7/intl.diff b/data/_apt7/intl.diff deleted file mode 100644 index f2f35eb6d..000000000 --- a/data/_apt7/intl.diff +++ /dev/null @@ -1,12 +0,0 @@ -diff -ru apt-0.7.20.2/apt-inst/makefile apt-0.7.20.2+iPhone/apt-inst/makefile ---- apt-0.7.20.2/apt-inst/makefile 2009-02-07 15:09:35.000000000 +0000 -+++ apt-0.7.20.2+iPhone/apt-inst/makefile 2009-04-16 01:54:17.000000000 +0000 -@@ -14,7 +14,7 @@ - LIBEXT=$(GLIBC_VER)$(LIBSTDCPP_VER) - MAJOR=1.1 - MINOR=0 --SLIBS=$(PTHREADLIB) -lapt-pkg -+SLIBS=$(PTHREADLIB) -lapt-pkg $(INTLLIBS) - APT_DOMAIN:=libapt-inst$(MAJOR) - - # Source code for the contributed non-core things diff --git a/data/_apt7/longdesc.diff b/data/_apt7/longdesc.diff deleted file mode 100644 index d2cd4bbbe..000000000 --- a/data/_apt7/longdesc.diff +++ /dev/null @@ -1,17 +0,0 @@ -diff -ru apt-0.7.20.2/apt-pkg/deb/debrecords.cc apt-0.7.20.2+iPhone/apt-pkg/deb/debrecords.cc ---- apt-0.7.20.2/apt-pkg/deb/debrecords.cc 2009-04-20 08:54:09.000000000 +0000 -+++ apt-0.7.20.2+iPhone/apt-pkg/deb/debrecords.cc 2009-04-20 17:26:22.000000000 +0000 -@@ -111,10 +122,9 @@ - string orig, dest; - char *codeset = nl_langinfo(CODESET); - -- if (!Section.FindS("Description").empty()) -- orig = Section.FindS("Description").c_str(); -- else -- orig = Section.FindS(("Description-" + pkgIndexFile::LanguageCode()).c_str()).c_str(); -+ orig = Section.FindS("Description"); -+ if (orig.empty()) -+ orig = Section.FindS(("Description-" + pkgIndexFile::LanguageCode()).c_str()); - - if (strcmp(codeset,"UTF-8") != 0) { - UTF8ToCodeset(codeset, orig, &dest); diff --git a/data/_apt7/make.sh b/data/_apt7/make.sh index 711fdfb94..03f8b6868 100644 --- a/data/_apt7/make.sh +++ b/data/_apt7/make.sh @@ -1,7 +1,24 @@ pkg:setup -autoconf -DPKG_ARCH=$(ls -d $(PKG_WORK_ dpkg)/dpkg-*/scripts) pkg:configure --disable-nls -make +cat >iphoneos_toolchain.cmake <<EOF +set(CMAKE_SYSTEM_NAME Darwin) # Tell CMake we're cross-compiling +set(CMAKE_CROSSCOMPILING true) +#include(CMakeForceCompiler) +# Prefix detection only works with compiler id "GNU" +# CMake will look for prefixed g++, cpp, ld, etc. automatically +set(CMAKE_SYSTEM_PROCESSOR aarch64) +set(triple ${PKG_TARG}) +set(CMAKE_FIND_ROOT_PATH $(echo ${PKG_PATH} | sed -e s/:/' '/g)) +set(CMAKE_LIBRARY_PATH $(echo ${LIBRARY_PATH} | sed -e s/:/' '/g)) +set(CMAKE_INCLUDE_PATH $(echo ${INCLUDE_PATH} | sed -e s/:/' '/g)) +set(CMAKE_C_COMPILER ${PKG_TARG}-gcc) +set(CMAKE_CXX_COMPILER ${PKG_TARG}-g++) +set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +EOF + +cmake -j8 -DCMAKE_TOOLCHAIN_FILE=iphoneos_toolchain.cmake -DCMAKE_LOCALSTATEDIR="/private/var" -DCMAKE_INSTALL_NAME_DIR="/usr/lib" -DCMAKE_INSTALL_RPATH="/usr/" -DCMAKE_OSX_SYSROOT="${PKG_ROOT}" -DCMAKE_INSTALL_PREFIX="/usr/" -DCMAKE_SHARED_LINKER_FLAGS="-lresolv" -DCURRENT_VENDOR=debian -DUSE_NLS=0 -DWITH_DOC=0 -DCOMMON_ARCH=${PKG_ARCH} . +make -j16 pkg: mkdir -p /etc/apt/apt.conf.d pkg: mkdir -p /etc/apt/preferences.d @@ -12,13 +29,4 @@ pkg: mkdir -p /var/lib/apt/lists/partial pkg: mkdir -p /var/lib/apt/periodic pkg: mkdir -p /var/log/apt -pkg: mkdir -p /usr/bin /usr/lib/apt -pkg: cp -a bin/apt-* /usr/bin -pkg: cp -a bin/libapt-* /usr/lib -pkg: cp -a bin/methods /usr/lib/apt - -pkg: mkdir -p /usr/lib/dpkg/methods -pkg: cp -a scripts/dselect /usr/lib/dpkg/methods/apt - -pkg: mkdir -p /usr/include -pkg: cp -a include/apt-pkg /usr/include +pkg:install diff --git a/data/_apt7/map_anon.diff b/data/_apt7/map_anon.diff deleted file mode 100644 index 283d36d36..000000000 --- a/data/_apt7/map_anon.diff +++ /dev/null @@ -1,17 +0,0 @@ -diff -ru apt-0.7.25.3/apt-pkg/contrib/mmap.cc apt-0.7.25.3+iPhone/apt-pkg/contrib/mmap.cc ---- apt-0.7.25.3/apt-pkg/contrib/mmap.cc 2010-02-22 18:15:52.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/contrib/mmap.cc 2010-02-22 18:14:42.000000000 +0000 -@@ -174,11 +174,11 @@ - #ifdef _POSIX_MAPPED_FILES - // Set the permissions. - int Prot = PROT_READ; -- int Map = MAP_PRIVATE | MAP_ANONYMOUS; -+ int Map = MAP_PRIVATE | MAP_ANON; - if ((Flags & ReadOnly) != ReadOnly) - Prot |= PROT_WRITE; - if ((Flags & Public) == Public) -- Map = MAP_SHARED | MAP_ANONYMOUS; -+ Map = MAP_SHARED | MAP_ANON; - - // use anonymous mmap() to get the memory - Base = (unsigned char*) mmap(0, WorkSpace, Prot, Map, -1, 0); diff --git a/data/_apt7/memrchr.c b/data/_apt7/memrchr.c deleted file mode 100644 index da93ca0ba..000000000 --- a/data/_apt7/memrchr.c +++ /dev/null @@ -1,161 +0,0 @@ -/* memrchr -- find the last occurrence of a byte in a memory block - - Copyright (C) 1991, 1993, 1996, 1997, 1999, 2000, 2003, 2004, 2005, - 2006, 2007, 2008 Free Software Foundation, Inc. - - Based on strlen implementation by Torbjorn Granlund (tege@sics.se), - with help from Dan Sahlin (dan@sics.se) and - commentary by Jim Blandy (jimb@ai.mit.edu); - adaptation to memchr suggested by Dick Karpinski (dick@cca.ucsf.edu), - and implemented by Roland McGrath (roland@ai.mit.edu). - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. */ - -#if defined _LIBC -# include <memcopy.h> -#else -# include <config.h> -# define reg_char char -#endif - -#include <string.h> -#include <limits.h> - -#undef __memrchr -#ifdef _LIBC -# undef memrchr -#endif - -#ifndef weak_alias -# define __memrchr memrchr -#endif - -/* Search no more than N bytes of S for C. */ -void * -__memrchr (void const *s, int c_in, size_t n) -{ - /* On 32-bit hardware, choosing longword to be a 32-bit unsigned - long instead of a 64-bit uintmax_t tends to give better - performance. On 64-bit hardware, unsigned long is generally 64 - bits already. Change this typedef to experiment with - performance. */ - typedef unsigned long int longword; - - const unsigned char *char_ptr; - const longword *longword_ptr; - longword repeated_one; - longword repeated_c; - unsigned reg_char c; - - c = (unsigned char) c_in; - - /* Handle the last few bytes by reading one byte at a time. - Do this until CHAR_PTR is aligned on a longword boundary. */ - for (char_ptr = (const unsigned char *) s + n; - n > 0 && (size_t) char_ptr % sizeof (longword) != 0; - --n) - if (*--char_ptr == c) - return (void *) char_ptr; - - longword_ptr = (const longword *) char_ptr; - - /* All these elucidatory comments refer to 4-byte longwords, - but the theory applies equally well to any size longwords. */ - - /* Compute auxiliary longword values: - repeated_one is a value which has a 1 in every byte. - repeated_c has c in every byte. */ - repeated_one = 0x01010101; - repeated_c = c | (c << 8); - repeated_c |= repeated_c << 16; - if (0xffffffffU < (longword) -1) - { - repeated_one |= repeated_one << 31 << 1; - repeated_c |= repeated_c << 31 << 1; - if (8 < sizeof (longword)) - { - size_t i; - - for (i = 64; i < sizeof (longword) * 8; i *= 2) - { - repeated_one |= repeated_one << i; - repeated_c |= repeated_c << i; - } - } - } - - /* Instead of the traditional loop which tests each byte, we will test a - longword at a time. The tricky part is testing if *any of the four* - bytes in the longword in question are equal to c. We first use an xor - with repeated_c. This reduces the task to testing whether *any of the - four* bytes in longword1 is zero. - - We compute tmp = - ((longword1 - repeated_one) & ~longword1) & (repeated_one << 7). - That is, we perform the following operations: - 1. Subtract repeated_one. - 2. & ~longword1. - 3. & a mask consisting of 0x80 in every byte. - Consider what happens in each byte: - - If a byte of longword1 is zero, step 1 and 2 transform it into 0xff, - and step 3 transforms it into 0x80. A carry can also be propagated - to more significant bytes. - - If a byte of longword1 is nonzero, let its lowest 1 bit be at - position k (0 <= k <= 7); so the lowest k bits are 0. After step 1, - the byte ends in a single bit of value 0 and k bits of value 1. - After step 2, the result is just k bits of value 1: 2^k - 1. After - step 3, the result is 0. And no carry is produced. - So, if longword1 has only non-zero bytes, tmp is zero. - Whereas if longword1 has a zero byte, call j the position of the least - significant zero byte. Then the result has a zero at positions 0, ..., - j-1 and a 0x80 at position j. We cannot predict the result at the more - significant bytes (positions j+1..3), but it does not matter since we - already have a non-zero bit at position 8*j+7. - - So, the test whether any byte in longword1 is zero is equivalent to - testing whether tmp is nonzero. */ - - while (n >= sizeof (longword)) - { - longword longword1 = *--longword_ptr ^ repeated_c; - - if ((((longword1 - repeated_one) & ~longword1) - & (repeated_one << 7)) != 0) - { - longword_ptr++; - break; - } - n -= sizeof (longword); - } - - char_ptr = (const unsigned char *) longword_ptr; - - /* At this point, we know that either n < sizeof (longword), or one of the - sizeof (longword) bytes starting at char_ptr is == c. On little-endian - machines, we could determine the first such byte without any further - memory accesses, just by looking at the tmp result from the last loop - iteration. But this does not work on big-endian machines. Choose code - that works in both cases. */ - - while (n-- > 0) - { - if (*--char_ptr == c) - return (void *) char_ptr; - } - - return NULL; -} -#ifdef weak_alias -weak_alias (__memrchr, memrchr) -#endif diff --git a/data/_apt7/memrchr.diff b/data/_apt7/memrchr.diff deleted file mode 100644 index 8913e1816..000000000 --- a/data/_apt7/memrchr.diff +++ /dev/null @@ -1,195 +0,0 @@ -diff -ru apt-0.7.20.2/ftparchive/cachedb.cc apt-0.7.20.2+iPhone/ftparchive/cachedb.cc ---- apt-0.7.20.2/ftparchive/cachedb.cc 2009-02-07 15:09:35.000000000 +0000 -+++ apt-0.7.20.2+iPhone/ftparchive/cachedb.cc 2009-04-14 16:10:02.000000000 +0000 -@@ -315,6 +315,14 @@ - } - } - -+void *memrchr(void *data, char value, int size) { -+ char *cdata = (char *) data; -+ for (int i = 0; i != size; ++i) -+ if (cdata[size - i - 1] == value) -+ return cdata + size - i - 1; -+ return NULL; -+} -+ - // CacheDB::GetMD5 - Get the MD5 hash /*{{{*/ - // --------------------------------------------------------------------- - /* */ -diff -ru apt-0.7.20.2/apt-pkg/deb/dpkgpm.cc apt-0.7.20.2+iPhone/apt-pkg/deb/dpkgpm.cc ---- apt-0.7.20.2/apt-pkg/deb/dpkgpm.cc 2009-02-07 15:09:35.000000000 +0000 -+++ apt-0.7.20.2+iPhone/apt-pkg/deb/dpkgpm.cc 2009-04-15 19:25:04.000000000 +0000 -@@ -501,6 +501,7 @@ - - // now move the unprocessed bits (after the final \n that is now a 0x0) - // to the start and update dpkgbuf_pos -+ void *memrchr(void const *, int, size_t); - p = (char*)memrchr(dpkgbuf, 0, dpkgbuf_pos); - if(p == NULL) - return; -@@ -974,3 +975,165 @@ - List.erase(List.begin(),List.end()); - } - /*}}}*/ -+ -+/* memrchr -- find the last occurrence of a byte in a memory block -+ -+ Copyright (C) 1991, 1993, 1996, 1997, 1999, 2000, 2003, 2004, 2005, -+ 2006, 2007, 2008 Free Software Foundation, Inc. -+ -+ Based on strlen implementation by Torbjorn Granlund (tege@sics.se), -+ with help from Dan Sahlin (dan@sics.se) and -+ commentary by Jim Blandy (jimb@ai.mit.edu); -+ adaptation to memchr suggested by Dick Karpinski (dick@cca.ucsf.edu), -+ and implemented by Roland McGrath (roland@ai.mit.edu). -+ -+ This program is free software: you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by -+ the Free Software Foundation; either version 3 of the License, or -+ (at your option) any later version. -+ -+ This program is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ GNU General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License -+ along with this program. If not, see <http://www.gnu.org/licenses/>. */ -+ -+#if defined _LIBC -+# include <memcopy.h> -+#else -+# include <config.h> -+# define reg_char char -+#endif -+ -+#include <string.h> -+#include <limits.h> -+ -+#undef __memrchr -+#ifdef _LIBC -+# undef memrchr -+#endif -+ -+#ifndef weak_alias -+# define __memrchr memrchr -+#endif -+ -+/* Search no more than N bytes of S for C. */ -+void * -+__memrchr (void const *s, int c_in, size_t n) -+{ -+ /* On 32-bit hardware, choosing longword to be a 32-bit unsigned -+ long instead of a 64-bit uintmax_t tends to give better -+ performance. On 64-bit hardware, unsigned long is generally 64 -+ bits already. Change this typedef to experiment with -+ performance. */ -+ typedef unsigned long int longword; -+ -+ const unsigned char *char_ptr; -+ const longword *longword_ptr; -+ longword repeated_one; -+ longword repeated_c; -+ unsigned reg_char c; -+ -+ c = (unsigned char) c_in; -+ -+ /* Handle the last few bytes by reading one byte at a time. -+ Do this until CHAR_PTR is aligned on a longword boundary. */ -+ for (char_ptr = (const unsigned char *) s + n; -+ n > 0 && (size_t) char_ptr % sizeof (longword) != 0; -+ --n) -+ if (*--char_ptr == c) -+ return (void *) char_ptr; -+ -+ longword_ptr = (const longword *) char_ptr; -+ -+ /* All these elucidatory comments refer to 4-byte longwords, -+ but the theory applies equally well to any size longwords. */ -+ -+ /* Compute auxiliary longword values: -+ repeated_one is a value which has a 1 in every byte. -+ repeated_c has c in every byte. */ -+ repeated_one = 0x01010101; -+ repeated_c = c | (c << 8); -+ repeated_c |= repeated_c << 16; -+ if (0xffffffffU < (longword) -1) -+ { -+ repeated_one |= repeated_one << 31 << 1; -+ repeated_c |= repeated_c << 31 << 1; -+ if (8 < sizeof (longword)) -+ { -+ size_t i; -+ -+ for (i = 64; i < sizeof (longword) * 8; i *= 2) -+ { -+ repeated_one |= repeated_one << i; -+ repeated_c |= repeated_c << i; -+ } -+ } -+ } -+ -+ /* Instead of the traditional loop which tests each byte, we will test a -+ longword at a time. The tricky part is testing if *any of the four* -+ bytes in the longword in question are equal to c. We first use an xor -+ with repeated_c. This reduces the task to testing whether *any of the -+ four* bytes in longword1 is zero. -+ -+ We compute tmp = -+ ((longword1 - repeated_one) & ~longword1) & (repeated_one << 7). -+ That is, we perform the following operations: -+ 1. Subtract repeated_one. -+ 2. & ~longword1. -+ 3. & a mask consisting of 0x80 in every byte. -+ Consider what happens in each byte: -+ - If a byte of longword1 is zero, step 1 and 2 transform it into 0xff, -+ and step 3 transforms it into 0x80. A carry can also be propagated -+ to more significant bytes. -+ - If a byte of longword1 is nonzero, let its lowest 1 bit be at -+ position k (0 <= k <= 7); so the lowest k bits are 0. After step 1, -+ the byte ends in a single bit of value 0 and k bits of value 1. -+ After step 2, the result is just k bits of value 1: 2^k - 1. After -+ step 3, the result is 0. And no carry is produced. -+ So, if longword1 has only non-zero bytes, tmp is zero. -+ Whereas if longword1 has a zero byte, call j the position of the least -+ significant zero byte. Then the result has a zero at positions 0, ..., -+ j-1 and a 0x80 at position j. We cannot predict the result at the more -+ significant bytes (positions j+1..3), but it does not matter since we -+ already have a non-zero bit at position 8*j+7. -+ -+ So, the test whether any byte in longword1 is zero is equivalent to -+ testing whether tmp is nonzero. */ -+ -+ while (n >= sizeof (longword)) -+ { -+ longword longword1 = *--longword_ptr ^ repeated_c; -+ -+ if ((((longword1 - repeated_one) & ~longword1) -+ & (repeated_one << 7)) != 0) -+ { -+ longword_ptr++; -+ break; -+ } -+ n -= sizeof (longword); -+ } -+ -+ char_ptr = (const unsigned char *) longword_ptr; -+ -+ /* At this point, we know that either n < sizeof (longword), or one of the -+ sizeof (longword) bytes starting at char_ptr is == c. On little-endian -+ machines, we could determine the first such byte without any further -+ memory accesses, just by looking at the tmp result from the last loop -+ iteration. But this does not work on big-endian machines. Choose code -+ that works in both cases. */ -+ -+ while (n-- > 0) -+ { -+ if (*--char_ptr == c) -+ return (void *) char_ptr; -+ } -+ -+ return NULL; -+} -+#ifdef weak_alias -+weak_alias (__memrchr, memrchr) -+#endif diff --git a/data/_apt7/mmap.diff b/data/_apt7/mmap.diff deleted file mode 100644 index 1b745e8b5..000000000 --- a/data/_apt7/mmap.diff +++ /dev/null @@ -1,199 +0,0 @@ -diff -ru apt-0.7.20.2/apt-pkg/tagfile.cc apt-0.7.20.2+iPhone/apt-pkg/tagfile.cc ---- apt-0.7.20.2/apt-pkg/tagfile.cc 2009-04-19 02:42:49.000000000 +0000 -+++ apt-0.7.20.2+iPhone/apt-pkg/tagfile.cc 2009-04-19 03:28:33.000000000 +0000 -@@ -28,11 +28,12 @@ - // --------------------------------------------------------------------- - /* */ - pkgTagFile::pkgTagFile(FileFd *pFd,unsigned long Size) : -- Fd(*pFd), -- Size(Size) -+ Fd(*pFd) - { -- if (Fd.IsOpen() == false) -+ if (Fd.IsOpen() == false || Fd.Size() == 0) - { -+ _error->Discard(); -+ Map = NULL; - Buffer = 0; - Start = End = Buffer = 0; - Done = true; -@@ -40,7 +40,8 @@ - return; - } - -- Buffer = new char[Size]; -+ Map = new MMap(*pFd, MMap::ReadOnly); -+ Buffer = reinterpret_cast<char *>(Map->Data()); - Start = End = Buffer; - Done = false; - iOffset = 0; -@@ -52,36 +53,9 @@ - /* */ - pkgTagFile::~pkgTagFile() - { -- delete [] Buffer; -+ delete Map; - } - /*}}}*/ --// TagFile::Resize - Resize the internal buffer /*{{{*/ --// --------------------------------------------------------------------- --/* Resize the internal buffer (double it in size). Fail if a maximum size -- * size is reached. -- */ --bool pkgTagFile::Resize() --{ -- char *tmp; -- unsigned long EndSize = End - Start; -- -- // fail is the buffer grows too big -- if(Size > 1024*1024+1) -- return false; -- -- // get new buffer and use it -- tmp = new char[2*Size]; -- memcpy(tmp, Buffer, Size); -- Size = Size*2; -- delete [] Buffer; -- Buffer = tmp; -- -- // update the start/end pointers to the new buffer -- Start = Buffer; -- End = Start + EndSize; -- return true; --} -- /*}}}*/ - // TagFile::Step - Advance to the next section /*{{{*/ - // --------------------------------------------------------------------- - /* If the Section Scanner fails we refill the buffer and try again. -@@ -90,15 +64,11 @@ - */ - bool pkgTagFile::Step(pkgTagSection &Tag) - { -- while (Tag.Scan(Start,End - Start) == false) -+ if (Tag.Scan(Start,End - Start) == false) - { -- if (Fill() == false) -- return false; -- -- if(Tag.Scan(Start,End - Start)) -- break; -- -- if (Resize() == false) -+ if (Start == End) -+ return false; -+ else - return _error->Error(_("Unable to parse package file %s (1)"), - Fd.Name().c_str()); - } -@@ -115,41 +85,11 @@ - then fills the rest from the file */ - bool pkgTagFile::Fill() - { -- unsigned long EndSize = End - Start; -- unsigned long Actual = 0; -- -- memmove(Buffer,Start,EndSize); -- Start = Buffer; -- End = Buffer + EndSize; -- -- if (Done == false) -- { -- // See if only a bit of the file is left -- if (Fd.Read(End,Size - (End - Buffer),&Actual) == false) -- return false; -- if (Actual != Size - (End - Buffer)) -- Done = true; -- End += Actual; -- } -- -- if (Done == true) -- { -- if (EndSize <= 3 && Actual == 0) -- return false; -- if (Size - (End - Buffer) < 4) -- return true; -- -- // Append a double new line if one does not exist -- unsigned int LineCount = 0; -- for (const char *E = End - 1; E - End < 6 && (*E == '\n' || *E == '\r'); E--) -- if (*E == '\n') -- LineCount++; -- for (; LineCount < 2; LineCount++) -- *End++ = '\n'; -- -- return true; -- } -- -+ unsigned int Size(Map->Size()); -+ End = Buffer + Size; -+ if (iOffset >= Size) -+ return false; -+ Start = Buffer + iOffset; - return true; - } - /*}}}*/ -@@ -171,20 +111,11 @@ - // Reposition and reload.. - iOffset = Offset; - Done = false; -- if (Fd.Seek(Offset) == false) -- return false; - End = Start = Buffer; - - if (Fill() == false) - return false; - -- if (Tag.Scan(Start,End - Start) == true) -- return true; -- -- // This appends a double new line (for the real eof handling) -- if (Fill() == false) -- return false; -- - if (Tag.Scan(Start,End - Start) == false) - return _error->Error(_("Unable to parse package file %s (2)"),Fd.Name().c_str()); - -@@ -228,14 +161,16 @@ - - Stop = (const char *)memchr(Stop,'\n',End - Stop); - -- if (Stop == 0) -- return false; -+ if (Stop == 0) { -+ Stop = End; -+ goto end; -+ } - - for (; Stop+1 < End && Stop[1] == '\r'; Stop++); - - // Double newline marks the end of the record -- if (Stop+1 < End && Stop[1] == '\n') -- { -+ if (Stop+1 == End || Stop[1] == '\n') -+ end: { - Indexes[TagCount] = Stop - Section; - TrimRecord(false,End); - return true; -diff -ru apt-0.7.20.2/apt-pkg/tagfile.h apt-0.7.20.2+iPhone/apt-pkg/tagfile.h ---- apt-0.7.20.2/apt-pkg/tagfile.h 2009-02-07 15:09:35.000000000 +0000 -+++ apt-0.7.20.2+iPhone/apt-pkg/tagfile.h 2009-04-19 03:04:07.000000000 +0000 -@@ -21,6 +21,7 @@ - #define PKGLIB_TAGFILE_H - - -+#include <apt-pkg/mmap.h> - #include <apt-pkg/fileutl.h> - #include <stdio.h> - -@@ -71,10 +72,9 @@ - char *End; - bool Done; - unsigned long iOffset; -- unsigned long Size; -+ MMap *Map; - - bool Fill(); -- bool Resize(); - - public: - diff --git a/data/_apt7/parallel.diff b/data/_apt7/parallel.diff deleted file mode 100644 index 40d28fb3d..000000000 --- a/data/_apt7/parallel.diff +++ /dev/null @@ -1,33 +0,0 @@ -diff -ru apt-0.6.46.4.1/apt-pkg/acquire.cc apt-0.6.46.4.1+iPhone/apt-pkg/acquire.cc ---- apt-0.6.46.4.1/apt-pkg/acquire.cc 2006-12-04 14:37:34.000000000 +0000 -+++ apt-0.6.46.4.1+iPhone/apt-pkg/acquire.cc 2009-01-21 10:47:16.000000000 +0000 -@@ -238,9 +238,27 @@ - /* Single-Instance methods get exactly one queue per URI. This is - also used for the Access queue method */ - if (Config->SingleInstance == true || QueueMode == QueueAccess) -- return U.Access; -+ return U.Access; -+ string name(U.Access + ':' + U.Host); - -- return U.Access + ':' + U.Host; -+ int parallel(_config->FindI("Acquire::"+U.Access+"::MaxParallel",8)); -+ if (parallel <= 0) -+ return name; -+ -+ typedef map<string, int> indexmap; -+ static indexmap indices; -+ -+ pair<indexmap::iterator, bool> cache(indices.insert(indexmap::value_type(name, -1))); -+ if (cache.second || cache.first->second == -1) { -+ int &index(indices[U.Access]); -+ if (index >= parallel) -+ index = 0; -+ cache.first->second = index++; -+ } -+ -+ ostringstream value; -+ value << U.Access << "::" << cache.first->second; -+ return value.str(); - } - /*}}}*/ - // Acquire::GetConfig - Fetch the configuration information /*{{{*/ diff --git a/data/_apt7/port.diff b/data/_apt7/port.diff deleted file mode 100644 index f2190eca7..000000000 --- a/data/_apt7/port.diff +++ /dev/null @@ -1,216 +0,0 @@ -diff -ru apt-0.7.20.2/apt-inst/deb/dpkgdb.cc apt-0.7.20.2+iPhone/apt-inst/deb/dpkgdb.cc ---- apt-0.7.20.2/apt-inst/deb/dpkgdb.cc 2009-02-07 15:09:35.000000000 +0000 -+++ apt-0.7.20.2+iPhone/apt-inst/deb/dpkgdb.cc 2009-04-14 16:10:02.000000000 +0000 -@@ -22,6 +22,7 @@ - - #include <stdio.h> - #include <errno.h> -+#include <sys/types.h> - #include <sys/stat.h> - #include <sys/mman.h> - #include <fcntl.h> -diff -ru apt-0.7.25.3/buildlib/libversion.mak apt-0.7.25.3+iPhone/buildlib/libversion.mak ---- apt-0.7.25.3/buildlib/libversion.mak 2010-02-01 19:44:40.000000000 +0000 -+++ apt-0.7.25.3+iPhone/buildlib/libversion.mak 2010-02-22 18:03:29.000000000 +0000 -@@ -18,4 +18,4 @@ - # want to drop this, but this a ABI break. - # And we don't want to do this now. So we hardcode a value here, - # and drop it later on (hopefully as fast as possible). --LIBEXT=-libc6.9-6 -+LIBEXT= -diff -ru apt-0.7.20.2/apt-pkg/deb/dpkgpm.cc apt-0.7.20.2+iPhone/apt-pkg/deb/dpkgpm.cc ---- apt-0.7.20.2/apt-pkg/deb/dpkgpm.cc 2009-02-07 15:09:35.000000000 +0000 -+++ apt-0.7.20.2+iPhone/apt-pkg/deb/dpkgpm.cc 2009-04-14 16:10:02.000000000 +0000 -@@ -766,6 +766,8 @@ - clog << flush; - cerr << flush; - -+ typedef void (*sighandler_t)(int); -+ - /* Mask off sig int/quit. We do this because dpkg also does when - it forks scripts. What happens is that when you hit ctrl-c it sends - it to all processes in the group. Since dpkg ignores the signal -diff -ru apt-0.7.20.2/buildlib/environment.mak.in apt-0.7.20.2+iPhone/buildlib/environment.mak.in ---- apt-0.7.20.2/buildlib/environment.mak.in 2009-02-07 15:09:35.000000000 +0000 -+++ apt-0.7.20.2+iPhone/buildlib/environment.mak.in 2009-04-14 16:11:50.000000000 +0000 -@@ -67,8 +67,14 @@ - ifneq ($(words $(filter gnu% linux-gnu% kfreebsd-gnu% %-gnu,$(HOST_OS))),0) - SONAME_MAGIC=-Wl,-soname -Wl, - LFLAGS_SO= -+ SOEXT=so -+else -+ifneq ($(words $(filter darwin%,$(HOST_OS))),0) -+ SONAME_MAGIC=-Wl,-dylib_install_name, -+ LFLAGS_SO= -+ SOEXT=dylib - else - # Do not know how to create shared libraries here. - ONLYSTATICLIBS = yes - endif -- -+endif -diff -ru apt-0.7.20.2/buildlib/library.mak apt-0.7.20.2+iPhone/buildlib/library.mak ---- apt-0.7.20.2/buildlib/library.mak 2009-02-07 15:09:35.000000000 +0000 -+++ apt-0.7.20.2+iPhone/buildlib/library.mak 2009-04-14 16:14:05.000000000 +0000 -@@ -16,11 +16,11 @@ - # See defaults.mak for information about LOCAL - - # Some local definitions --LOCAL := lib$(LIBRARY)$(LIBEXT).so.$(MAJOR).$(MINOR) -+LOCAL := lib$(LIBRARY)$(LIBEXT).$(SOEXT).$(MAJOR).$(MINOR) - $(LOCAL)-OBJS := $(addprefix $(OBJ)/,$(addsuffix .opic,$(notdir $(basename $(SOURCE))))) - $(LOCAL)-DEP := $(addprefix $(DEP)/,$(addsuffix .opic.d,$(notdir $(basename $(SOURCE))))) - $(LOCAL)-HEADERS := $(addprefix $(INCLUDE)/,$(HEADERS)) --$(LOCAL)-SONAME := lib$(LIBRARY)$(LIBEXT).so.$(MAJOR) -+$(LOCAL)-SONAME := lib$(LIBRARY)$(LIBEXT).$(SOEXT).$(MAJOR) - $(LOCAL)-SLIBS := $(SLIBS) - $(LOCAL)-LIBRARY := $(LIBRARY) - -@@ -29,7 +29,7 @@ - - # Install the command hooks - headers: $($(LOCAL)-HEADERS) --library: $(LIB)/lib$(LIBRARY).so $(LIB)/lib$(LIBRARY)$(LIBEXT).so.$(MAJOR) -+library: $(LIB)/lib$(LIBRARY).$(SOEXT) $(LIB)/lib$(LIBRARY)$(LIBEXT).$(SOEXT).$(MAJOR) - clean: clean/$(LOCAL) - veryclean: veryclean/$(LOCAL) - -@@ -41,21 +41,21 @@ - clean/$(LOCAL): - -rm -f $($(@F)-OBJS) $($(@F)-DEP) - veryclean/$(LOCAL): clean/$(LOCAL) -- -rm -f $($(@F)-HEADERS) $(LIB)/lib$($(@F)-LIBRARY)*.so* -+ -rm -f $($(@F)-HEADERS) $(LIB)/lib$($(@F)-LIBRARY)*.$(SOEXT)* - - # Build rules for the two symlinks --.PHONY: $(LIB)/lib$(LIBRARY)$(LIBEXT).so.$(MAJOR) $(LIB)/lib$(LIBRARY).so --$(LIB)/lib$(LIBRARY)$(LIBEXT).so.$(MAJOR): $(LIB)/lib$(LIBRARY)$(LIBEXT).so.$(MAJOR).$(MINOR) -+.PHONY: $(LIB)/lib$(LIBRARY)$(LIBEXT).$(SOEXT).$(MAJOR) $(LIB)/lib$(LIBRARY).$(SOEXT) -+$(LIB)/lib$(LIBRARY)$(LIBEXT).$(SOEXT).$(MAJOR): $(LIB)/lib$(LIBRARY)$(LIBEXT).$(SOEXT).$(MAJOR).$(MINOR) - ln -sf $(<F) $@ --$(LIB)/lib$(LIBRARY).so: $(LIB)/lib$(LIBRARY)$(LIBEXT).so.$(MAJOR).$(MINOR) -+$(LIB)/lib$(LIBRARY).$(SOEXT): $(LIB)/lib$(LIBRARY)$(LIBEXT).$(SOEXT).$(MAJOR).$(MINOR) - ln -sf $(<F) $@ - - # The binary build rule --$(LIB)/lib$(LIBRARY)$(LIBEXT).so.$(MAJOR).$(MINOR): $($(LOCAL)-HEADERS) $($(LOCAL)-OBJS) -- -rm -f $(LIB)/lib$($(@F)-LIBRARY)*.so* 2> /dev/null -+$(LIB)/lib$(LIBRARY)$(LIBEXT).$(SOEXT).$(MAJOR).$(MINOR): $($(LOCAL)-HEADERS) $($(LOCAL)-OBJS) -+ -rm -f $(LIB)/lib$($(@F)-LIBRARY)*.$(SOEXT)* 2> /dev/null - echo Building shared library $@ - $(CXX) $(CXXFLAGS) $(LDFLAGS) $(PICFLAGS) $(LFLAGS) $(LFLAGS_SO)\ -- -o $@ $(SONAME_MAGIC)$($(@F)-SONAME) -shared \ -+ -o $@ $(SONAME_MAGIC)$(patsubst $(LIB)/%,/usr/lib/%,$@) -dynamiclib \ - $(filter %.opic,$^) \ - $($(@F)-SLIBS) - -diff -ru apt-0.7.20.2/buildlib/podomain.mak apt-0.7.20.2+iPhone/buildlib/podomain.mak ---- apt-0.7.20.2/buildlib/podomain.mak 2009-02-07 15:09:35.000000000 +0000 -+++ apt-0.7.20.2+iPhone/buildlib/podomain.mak 2009-04-14 16:10:02.000000000 +0000 -@@ -14,7 +14,8 @@ - $(PO_DOMAINS)/$(MY_DOMAIN)/$(LOCAL).$(TYPE)list: SRC := $(addprefix $(SUBDIR)/,$(SOURCE)) - $(PO_DOMAINS)/$(MY_DOMAIN)/$(LOCAL).$(TYPE)list: makefile - (echo $(SRC) | xargs -n1 echo) > $@ --binary program clean: $(PO_DOMAINS)/$(MY_DOMAIN)/$(LOCAL).$(TYPE)list -+binary program clean: -+#$(PO_DOMAINS)/$(MY_DOMAIN)/$(LOCAL).$(TYPE)list - - veryclean: veryclean/$(LOCAL) - veryclean/po/$(LOCAL): LIST := $(PO_DOMAINS)/$(MY_DOMAIN)/$(LOCAL).$(TYPE)list -diff -ru apt-0.7.20.2/buildlib/program.mak apt-0.7.20.2+iPhone/buildlib/program.mak ---- apt-0.7.20.2/buildlib/program.mak 2009-02-07 15:09:35.000000000 +0000 -+++ apt-0.7.20.2+iPhone/buildlib/program.mak 2009-04-14 16:10:02.000000000 +0000 -@@ -44,6 +44,7 @@ - # The binary build rule - $($(LOCAL)-BIN): $($(LOCAL)-OBJS) $($(LOCAL)-MKS) - echo Building program $@ -+ echo $(CXX) $(CXXFLAGS) $(LDFLAGS) $(LFLAGS) -o $@ $(filter %.o,$^) $($(@F)-SLIBS) $(LEFLAGS) - $(CXX) $(CXXFLAGS) $(LDFLAGS) $(LFLAGS) -o $@ $(filter %.o,$^) $($(@F)-SLIBS) $(LEFLAGS) - - # Compilation rules -diff -ru apt-0.7.20.2/cmdline/apt-get.cc apt-0.7.20.2+iPhone/cmdline/apt-get.cc ---- apt-0.7.20.2/cmdline/apt-get.cc 2009-02-07 15:09:35.000000000 +0000 -+++ apt-0.7.20.2+iPhone/cmdline/apt-get.cc 2009-04-15 19:38:48.000000000 +0000 -@@ -53,7 +53,8 @@ - #include <termios.h> - #include <sys/ioctl.h> - #include <sys/stat.h> --#include <sys/statfs.h> -+#include <sys/param.h> -+#include <sys/mount.h> - #include <sys/statvfs.h> - #include <signal.h> - #include <unistd.h> -@@ -66,12 +66,13 @@ - - #define RAMFS_MAGIC 0x858458f6 - -+#define _trace() printf("_trace(%s:%d)\n", __FILE__, __LINE__) -+ - using namespace std; - - ostream c0out(0); - ostream c1out(0); - ostream c2out(0); --ofstream devnull("/dev/null"); - unsigned int ScreenWidth = 80 - 1; /* - 1 for the cursor */ - - // class CacheFile - Cover class for some dependency cache functions /*{{{*/ -@@ -2786,6 +2787,9 @@ - if (!isatty(STDOUT_FILENO) && _config->FindI("quiet",0) < 1) - _config->Set("quiet","1"); - -+ ofstream devnull; -+ devnull.open("/dev/null"); -+ - // Setup the output streams - c0out.rdbuf(cout.rdbuf()); - c1out.rdbuf(cout.rdbuf()); -diff -ru apt-0.7.20.2/ftparchive/contents.cc apt-0.7.20.2+iPhone/ftparchive/contents.cc ---- apt-0.7.20.2/ftparchive/contents.cc 2009-02-07 15:09:35.000000000 +0000 -+++ apt-0.7.20.2+iPhone/ftparchive/contents.cc 2009-04-14 16:10:02.000000000 +0000 -@@ -41,7 +41,7 @@ - #include <stdio.h> - #include <stdlib.h> - #include <string.h> --#include <malloc.h> -+#include <memory.h> - /*}}}*/ - - // GenContents::~GenContents - Free allocated memory /*{{{*/ -diff -ru apt-0.7.20.2/Makefile apt-0.7.20.2+iPhone/Makefile ---- apt-0.7.20.2/Makefile 2009-02-07 15:09:35.000000000 +0000 -+++ apt-0.7.20.2+iPhone/Makefile 2009-04-14 16:10:02.000000000 +0000 -@@ -18,7 +18,5 @@ - $(MAKE) -C ftparchive $@ - $(MAKE) -C dselect $@ -- $(MAKE) -C doc $@ -- $(MAKE) -C po $@ - - # Some very common aliases - .PHONY: maintainer-clean dist-clean distclean pristine sanity -diff -ru apt-0.7.20.2/configure.in apt-0.7.20.2+iPhone/configure.in ---- apt-0.7.20.2/configure.in 2009-02-07 15:10:44.000000000 +0000 -+++ apt-0.7.20.2+iPhone/configure.in 2009-04-15 18:58:36.000000000 +0000 -@@ -88,7 +88,7 @@ - dnl First check against the full canonical canoncial-system-type in $target - dnl and if that fails, just look for the cpu - AC_MSG_CHECKING(debian architecture) --archset="`dpkg-architecture -qDEB_HOST_ARCH`" -+archset="`cd "$DPKG_ARCH"; PERL5LIB=$(pwd) ./dpkg-architecture -qDEB_HOST_ARCH -t$host`" - if test "x$archset" = "x"; then - AC_MSG_ERROR([failed: use --host= or output from dpkg-architecture]) - fi -diff -ru apt-0.7.20.2/apt-pkg/deb/dpkgpm.cc apt-0.7.20.2+iPhone/apt-pkg/deb/dpkgpm.cc ---- apt-0.7.20.2/apt-pkg/deb/dpkgpm.cc 2009-02-07 15:09:35.000000000 +0000 -+++ apt-0.7.20.2+iPhone/apt-pkg/deb/dpkgpm.cc 2009-04-15 19:25:41.000000000 +0000 -@@ -33,7 +33,8 @@ - #include <termios.h> - #include <unistd.h> - #include <sys/ioctl.h> --#include <pty.h> -+#include <sys/stat.h> -+#include <util.h> - - #include <config.h> - #include <apti18n.h> diff --git a/data/_apt7/printf.diff b/data/_apt7/printf.diff deleted file mode 100644 index 847758bf2..000000000 --- a/data/_apt7/printf.diff +++ /dev/null @@ -1,12 +0,0 @@ -diff -ru apt-0.7.20.2/ftparchive/writer.cc apt-0.7.20.2+iPhone/ftparchive/writer.cc ---- apt-0.7.20.2/ftparchive/writer.cc 2009-02-07 15:09:35.000000000 +0000 -+++ apt-0.7.20.2+iPhone/ftparchive/writer.cc 2009-04-20 17:53:48.000000000 +0000 -@@ -629,7 +629,7 @@ - - // Add the dsc to the files hash list - char Files[1000]; -- snprintf(Files,sizeof(Files),"\n %s %lu %s\n %s", -+ snprintf(Files,sizeof(Files),"\n %s %llu %s\n %s", - string(MD5.Result()).c_str(),St.st_size, - flNotDir(FileName).c_str(), - Tags.FindS("Files").c_str()); diff --git a/data/_apt7/public.diff b/data/_apt7/public.diff deleted file mode 100644 index 04e5051f8..000000000 --- a/data/_apt7/public.diff +++ /dev/null @@ -1,15 +0,0 @@ -diff -ru apt-0.7.20.2/apt-pkg/deb/debindexfile.h apt-0.7.20.2+iPhone/apt-pkg/deb/debindexfile.h ---- apt-0.7.20.2/apt-pkg/deb/debindexfile.h 2009-02-07 15:09:35.000000000 +0000 -+++ apt-0.7.20.2+iPhone/apt-pkg/deb/debindexfile.h 2009-04-19 04:12:51.000000000 +0000 -@@ -49,9 +49,10 @@ - - string Info(const char *Type) const; - string IndexFile(const char *Type) const; -- string IndexURI(const char *Type) const; - - public: -+ -+ string IndexURI(const char *Type) const; - - virtual const Type *GetType() const; - diff --git a/data/_apt7/reinstreq.diff b/data/_apt7/reinstreq.diff deleted file mode 100644 index 7f34536e6..000000000 --- a/data/_apt7/reinstreq.diff +++ /dev/null @@ -1,21 +0,0 @@ -diff -ru apt-0.6.46.4.1/apt-pkg/deb/dpkgpm.cc apt-0.6.46.4.1+iPhone/apt-pkg/deb/dpkgpm.cc ---- apt-0.6.46.4.1/apt-pkg/deb/dpkgpm.cc 2006-12-04 16:33:53.000000000 +0000 -+++ apt-0.6.46.4.1+iPhone/apt-pkg/deb/dpkgpm.cc 2008-06-22 09:41:01.000000000 +0000 -@@ -451,6 +451,8 @@ - case Item::Remove: - Args[n++] = "--force-depends"; - Size += strlen(Args[n-1]); -+ Args[n++] = "--force-remove-reinstreq"; -+ Size += strlen(Args[n-1]); - Args[n++] = "--force-remove-essential"; - Size += strlen(Args[n-1]); - Args[n++] = "--remove"; -@@ -460,6 +462,8 @@ - case Item::Purge: - Args[n++] = "--force-depends"; - Size += strlen(Args[n-1]); -+ Args[n++] = "--force-remove-reinstreq"; -+ Size += strlen(Args[n-1]); - Args[n++] = "--force-remove-essential"; - Size += strlen(Args[n-1]); - Args[n++] = "--purge"; diff --git a/data/_apt7/sandbox-errors.diff b/data/_apt7/sandbox-errors.diff new file mode 100644 index 000000000..706aeb23c --- /dev/null +++ b/data/_apt7/sandbox-errors.diff @@ -0,0 +1,10 @@ +--- apt/apt-pkg/acquire.cc 2018-07-30 21:45:07.000000000 -1000 ++++ apt+iPhone/apt-pkg/acquire.cc 2018-08-02 00:04:25.000000000 -1000 +@@ -603,7 +603,6 @@ + struct passwd const * const pw = getpwnam(SandboxUser.c_str()); + if (pw == NULL) + { +- _error->Warning(_("No sandbox user '%s' on the system, can not drop privileges"), SandboxUser.c_str()); + _config->Set("APT::Sandbox::User", ""); + return; + } diff --git a/data/_apt7/sha1.diff b/data/_apt7/sha1.diff new file mode 100644 index 000000000..b137a30e4 --- /dev/null +++ b/data/_apt7/sha1.diff @@ -0,0 +1,12 @@ +diff -ur apt/methods/gpgv.cc apt+iPhone/methods/gpgv.cc +--- apt/methods/gpgv.cc 2018-07-30 21:45:07.000000000 -1000 ++++ apt+iPhone/methods/gpgv.cc 2018-08-03 20:59:27.000000000 -1000 +@@ -67,7 +67,7 @@ + static constexpr Digest Digests[] = { + {Digest::State::Untrusted, "Invalid digest"}, + {Digest::State::Untrusted, "MD5"}, +- {Digest::State::Untrusted, "SHA1"}, ++ {Digest::State::Weak, "SHA1"}, + {Digest::State::Untrusted, "RIPE-MD/160"}, + {Digest::State::Trusted, "Reserved digest"}, + {Digest::State::Trusted, "Reserved digest"}, diff --git a/data/_apt7/strdupa.diff b/data/_apt7/strdupa.diff deleted file mode 100644 index 03a179e01..000000000 --- a/data/_apt7/strdupa.diff +++ /dev/null @@ -1,80 +0,0 @@ -diff -ru apt-0.7.25.3/apt-pkg/contrib/netrc.cc apt-0.7.25.3+iPhone/apt-pkg/contrib/netrc.cc ---- apt-0.7.25.3/apt-pkg/contrib/netrc.cc 2010-02-01 19:44:40.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/contrib/netrc.cc 2010-02-22 18:26:01.000000000 +0000 -@@ -40,13 +40,13 @@ - #define NETRC DOT_CHAR "netrc" - - /* returns -1 on failure, 0 if the host is found, 1 is the host isn't found */ --int parsenetrc (char *host, char *login, char *password, char *netrcfile = NULL) -+int parsenetrc (const char *host, char *login, char *password, const char *netrcfile = NULL) - { - FILE *file; - int retcode = 1; - int specific_login = (login[0] != 0); - char *home = NULL; -- bool netrc_alloc = false; -+ char *netrc_alloc = NULL; - int state = NOTHING; - - char state_login = 0; /* Found a login keyword */ -@@ -67,11 +67,11 @@ - if (!home) - return -1; - -- asprintf (&netrcfile, "%s%s%s", home, DIR_CHAR, NETRC); -- if(!netrcfile) -+ asprintf (&netrc_alloc, "%s%s%s", home, DIR_CHAR, NETRC); -+ if(!netrc_alloc) - return -1; - else -- netrc_alloc = true; -+ netrcfile = netrc_alloc; - } - - file = fopen (netrcfile, "r"); -@@ -144,7 +144,7 @@ - } - - if (netrc_alloc) -- free(netrcfile); -+ free(netrc_alloc); - - return retcode; - } -@@ -160,11 +160,11 @@ - { - char login[64] = ""; - char password[64] = ""; -- char *netrcfile = strdupa (NetRCFile.c_str ()); -+ const char *netrcfile = NetRCFile.c_str (); - - // first check for a generic host based netrc entry -- char *host = strdupa (Uri.Host.c_str ()); -- if (host && parsenetrc (host, login, password, netrcfile) == 0) -+ const char *host = Uri.Host.c_str (); -+ if (parsenetrc (host, login, password, netrcfile) == 0) - { - if (_config->FindB("Debug::Acquire::netrc", false) == true) - std::clog << "host: " << host -@@ -179,7 +179,8 @@ - // if host did not work, try Host+Path next, this will trigger - // a lookup uri.startswith(host) in the netrc file parser (because - // of the "/" -- char *hostpath = strdupa (string(Uri.Host+Uri.Path).c_str ()); -+ std::string temp(Uri.Host+Uri.Path); -+ const char *hostpath = temp.c_str (); - if (hostpath && parsenetrc (hostpath, login, password, netrcfile) == 0) - { - if (_config->FindB("Debug::Acquire::netrc", false) == true) -diff -ru apt-0.7.25.3/apt-pkg/contrib/netrc.h apt-0.7.25.3+iPhone/apt-pkg/contrib/netrc.h ---- apt-0.7.25.3/apt-pkg/contrib/netrc.h 2010-02-01 19:44:40.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/contrib/netrc.h 2010-02-22 18:23:20.000000000 +0000 -@@ -23,7 +23,7 @@ - // If login[0] = 0, search for login and password within a machine section - // in the netrc. - // If login[0] != 0, search for password within machine and login. --int parsenetrc (char *host, char *login, char *password, char *filename); -+int parsenetrc (const char *host, char *login, char *password, const char *filename); - - void maybe_add_auth (URI &Uri, string NetRCFile); - #endif diff --git a/data/_apt7/tag.diff b/data/_apt7/tag.diff deleted file mode 100644 index 78ce39645..000000000 --- a/data/_apt7/tag.diff +++ /dev/null @@ -1,280 +0,0 @@ -diff -ru apt-0.7.20.2/apt-pkg/cacheiterators.h apt-0.7.20.2+iPhone/apt-pkg/cacheiterators.h ---- apt-0.7.20.2/apt-pkg/cacheiterators.h 2009-04-20 16:50:43.000000000 +0000 -+++ apt-0.7.20.2+iPhone/apt-pkg/cacheiterators.h 2009-04-20 18:27:20.000000000 +0000 -@@ -79,6 +79,7 @@ - inline VerIterator CurrentVer() const; - inline DepIterator RevDependsList() const; - inline PrvIterator ProvidesList() const; -+ inline TagIterator TagList() const; - inline unsigned long Index() const {return Pkg - Owner->PkgP;}; - OkState State() const; - -@@ -148,6 +150,48 @@ - }; - }; - /*}}}*/ -+// Tag Iterator /*{{{*/ -+class pkgCache::TagIterator -+{ -+ Tag *Tg; -+ pkgCache *Owner; -+ -+ void _dummy(); -+ -+ public: -+ -+ // Iteration -+ void operator ++(int) {if (Tg != Owner->TagP) Tg = Owner->TagP + Tg->NextTag;}; -+ inline void operator ++() {operator ++(0);}; -+ inline bool end() const {return Tg == Owner->TagP?true:false;}; -+ inline void operator =(const TagIterator &B) {Tg = B.Tg; Owner = B.Owner;}; -+ -+ // Comparison -+ inline bool operator ==(const TagIterator &B) const {return Tg == B.Tg;}; -+ inline bool operator !=(const TagIterator &B) const {return Tg != B.Tg;}; -+ int CompareTag(const TagIterator &B) const; -+ -+ // Accessors -+ inline Tag *operator ->() {return Tg;}; -+ inline Tag const *operator ->() const {return Tg;}; -+ inline Tag &operator *() {return *Tg;}; -+ inline Tag const &operator *() const {return *Tg;}; -+ inline operator Tag *() {return Tg == Owner->TagP?0:Tg;}; -+ inline operator Tag const *() const {return Tg == Owner->TagP?0:Tg;}; -+ inline pkgCache *Cache() {return Owner;}; -+ -+ inline const char *Name() const {return Owner->StrP + Tg->Name;}; -+ inline unsigned long Index() const {return Tg - Owner->TagP;}; -+ -+ inline TagIterator() : Tg(0), Owner(0) {}; -+ inline TagIterator(pkgCache &Owner,Tag *Trg = 0) : Tg(Trg), -+ Owner(&Owner) -+ { -+ if (Tg == 0) -+ Tg = Owner.TagP; -+ }; -+}; -+ /*}}}*/ - // Description Iterator /*{{{*/ - class pkgCache::DescIterator - { -@@ -423,6 +467,8 @@ - {return DepIterator(*Owner,Owner->DepP + Pkg->RevDepends,Pkg);}; - inline pkgCache::PrvIterator pkgCache::PkgIterator::ProvidesList() const - {return PrvIterator(*Owner,Owner->ProvideP + Pkg->ProvidesList,Pkg);}; -+inline pkgCache::TagIterator pkgCache::PkgIterator::TagList() const -+ {return TagIterator(*Owner,Owner->TagP + Pkg->TagList);}; - inline pkgCache::DescIterator pkgCache::VerIterator::DescriptionList() const - {return DescIterator(*Owner,Owner->DescP + Ver->DescriptionList);}; - inline pkgCache::PrvIterator pkgCache::VerIterator::ProvidesList() const -diff -ru apt-0.7.20.2/apt-pkg/deb/deblistparser.cc apt-0.7.20.2+iPhone/apt-pkg/deb/deblistparser.cc ---- apt-0.7.20.2/apt-pkg/deb/deblistparser.cc 2009-04-20 17:02:43.000000000 +0000 -+++ apt-0.7.20.2+iPhone/apt-pkg/deb/deblistparser.cc 2009-04-20 19:27:47.000000000 +0000 -@@ -185,6 +189,11 @@ - - if (ParseStatus(Pkg,Ver) == false) - return false; -+ -+ if (Pkg->TagList == 0) -+ if (ParseTag(Pkg) == false) -+ return false; -+ - return true; - } - /*}}}*/ -@@ -570,6 +579,46 @@ - return true; - } - /*}}}*/ -+// ListParser::ParseTag - Parse the tag list /*{{{*/ -+// --------------------------------------------------------------------- -+/* */ -+bool debListParser::ParseTag(pkgCache::PkgIterator Pkg) -+{ -+ const char *Start; -+ const char *Stop; -+ if (Section.Find("Tag",Start,Stop) == false) -+ return true; -+ -+ while (1) { -+ while (1) { -+ if (Start == Stop) -+ return true; -+ if (Stop[-1] != ' ' && Stop[-1] != '\t') -+ break; -+ --Stop; -+ } -+ -+ const char *Begin = Stop - 1; -+ while (Begin != Start && Begin[-1] != ' ' && Begin[-1] != ',') -+ --Begin; -+ -+ if (NewTag(Pkg, Begin, Stop - Begin) == false) -+ return false; -+ -+ while (1) { -+ if (Begin == Start) -+ return true; -+ if (Begin[-1] == ',') -+ break; -+ --Begin; -+ } -+ -+ Stop = Begin - 1; -+ } -+ -+ return true; -+} -+ /*}}}*/ - // ListParser::GrabWord - Matches a word and returns /*{{{*/ - // --------------------------------------------------------------------- - /* Looks for a word in a list of words - for ParseStatus */ -diff -ru apt-0.7.20.2/apt-pkg/deb/deblistparser.h apt-0.7.20.2+iPhone/apt-pkg/deb/deblistparser.h ---- apt-0.7.20.2/apt-pkg/deb/deblistparser.h 2009-02-07 15:09:35.000000000 +0000 -+++ apt-0.7.20.2+iPhone/apt-pkg/deb/deblistparser.h 2009-04-20 18:29:09.000000000 +0000 -@@ -38,6 +38,7 @@ - bool ParseDepends(pkgCache::VerIterator Ver,const char *Tag, - unsigned int Type); - bool ParseProvides(pkgCache::VerIterator Ver); -+ bool ParseTag(pkgCache::PkgIterator Pkg); - static bool GrabWord(string Word,WordList *List,unsigned char &Out); - - public: -diff -ru apt-0.7.20.2/apt-pkg/pkgcache.cc apt-0.7.20.2+iPhone/apt-pkg/pkgcache.cc ---- apt-0.7.20.2/apt-pkg/pkgcache.cc 2009-02-07 15:09:35.000000000 +0000 -+++ apt-0.7.20.2+iPhone/apt-pkg/pkgcache.cc 2009-04-20 19:10:52.000000000 +0000 -@@ -124,6 +124,7 @@ - VerP = (Version *)Map.Data(); - DescP = (Description *)Map.Data(); - ProvideP = (Provides *)Map.Data(); -+ TagP = (Tag *)Map.Data(); - DepP = (Dependency *)Map.Data(); - StringItemP = (StringItem *)Map.Data(); - StrP = (char *)Map.Data(); -diff -ru apt-0.7.20.2/apt-pkg/pkgcachegen.cc apt-0.7.20.2+iPhone/apt-pkg/pkgcachegen.cc ---- apt-0.7.20.2/apt-pkg/pkgcachegen.cc 2009-02-07 15:09:35.000000000 +0000 -+++ apt-0.7.20.2+iPhone/apt-pkg/pkgcachegen.cc 2009-04-20 19:28:52.000000000 +0000 -@@ -570,6 +570,32 @@ - return true; - } - /*}}}*/ -+// ListParser::NewTag - Create a Tag element /*{{{*/ -+// --------------------------------------------------------------------- -+/* */ -+bool pkgCacheGenerator::ListParser::NewTag(pkgCache::PkgIterator Pkg, -+ const char *NameStart, -+ unsigned int NameSize) -+{ -+ pkgCache &Cache = Owner->Cache; -+ -+ // Get a structure -+ unsigned long Tagg = Owner->Map.Allocate(sizeof(pkgCache::Tag)); -+ if (Tagg == 0) -+ return false; -+ Cache.HeaderP->TagCount++; -+ -+ // Fill it in -+ pkgCache::TagIterator Tg(Cache,Cache.TagP + Tagg); -+ Tg->Name = WriteString(NameStart,NameSize); -+ if (Tg->Name == 0) -+ return false; -+ Tg->NextTag = Pkg->TagList; -+ Pkg->TagList = Tg.Index(); -+ -+ return true; -+} -+ /*}}}*/ - // CacheGenerator::SelectFile - Select the current file being parsed /*{{{*/ - // --------------------------------------------------------------------- - /* This is used to select which file is to be associated with all newly -diff -ru apt-0.7.20.2/apt-pkg/pkgcachegen.h apt-0.7.20.2+iPhone/apt-pkg/pkgcachegen.h ---- apt-0.7.20.2/apt-pkg/pkgcachegen.h 2009-02-07 15:09:35.000000000 +0000 -+++ apt-0.7.20.2+iPhone/apt-pkg/pkgcachegen.h 2009-04-20 18:47:57.000000000 +0000 -@@ -101,6 +101,7 @@ - unsigned int Type); - bool NewProvides(pkgCache::VerIterator Ver,const string &Package, - const string &Version); -+ bool NewTag(pkgCache::PkgIterator Pkg,const char *NameStart,unsigned int NameSize); - - public: - -diff -ru apt-0.7.20.2/apt-pkg/pkgcache.h apt-0.7.20.2+iPhone/apt-pkg/pkgcache.h ---- apt-0.7.20.2/apt-pkg/pkgcache.h 2009-04-20 16:49:55.000000000 +0000 -+++ apt-0.7.20.2+iPhone/apt-pkg/pkgcache.h 2009-04-20 18:26:48.000000000 +0000 -@@ -41,6 +41,7 @@ - struct StringItem; - struct VerFile; - struct DescFile; -+ struct Tag; - - // Iterators - class PkgIterator; -@@ -51,6 +52,7 @@ - class PkgFileIterator; - class VerFileIterator; - class DescFileIterator; -+ class TagIterator; - friend class PkgIterator; - friend class VerIterator; - friend class DescInterator; -@@ -59,6 +61,7 @@ - friend class PkgFileIterator; - friend class VerFileIterator; - friend class DescFileIterator; -+ friend class TagIterator; - - class Namespace; - -@@ -109,6 +112,7 @@ - DescFile *DescFileP; - PackageFile *PkgFileP; - Version *VerP; -+ Tag *TagP; - Description *DescP; - Provides *ProvideP; - Dependency *DepP; -@@ -161,6 +165,7 @@ - unsigned short PackageSz; - unsigned short PackageFileSz; - unsigned short VersionSz; -+ unsigned short TagSz; - unsigned short DescriptionSz; - unsigned short DependencySz; - unsigned short ProvidesSz; -@@ -170,6 +175,7 @@ - // Structure counts - unsigned long PackageCount; - unsigned long VersionCount; -+ unsigned long TagCount; - unsigned long DescriptionCount; - unsigned long DependsCount; - unsigned long PackageFileCount; -@@ -209,6 +215,7 @@ - map_ptrloc NextPackage; // Package - map_ptrloc RevDepends; // Dependency - map_ptrloc ProvidesList; // Provides -+ map_ptrloc TagList; // Tag - - // Install/Remove/Purge etc - unsigned char SelectedState; // What -@@ -248,6 +255,12 @@ - unsigned short Size; - }; - /*}}}*/ -+struct pkgCache::Tag /*{{{*/ -+{ -+ map_ptrloc Name; // Stringtable -+ map_ptrloc NextTag; // Tag -+}; -+ /*}}}*/ - struct pkgCache::DescFile /*{{{*/ - { - map_ptrloc File; // PackageFile -@@ -340,6 +354,7 @@ - - typedef pkgCache::PkgIterator PkgIterator; - typedef pkgCache::VerIterator VerIterator; -+ typedef pkgCache::TagIterator TagIterator; - typedef pkgCache::DescIterator DescIterator; - typedef pkgCache::DepIterator DepIterator; - typedef pkgCache::PrvIterator PrvIterator; diff --git a/data/_apt7/timestamp.diff b/data/_apt7/timestamp.diff deleted file mode 100644 index e69de29bb..000000000 --- a/data/_apt7/timestamp.diff +++ /dev/null diff --git a/data/_apt7/tolerance.diff b/data/_apt7/tolerance.diff deleted file mode 100644 index ce2ff0adb..000000000 --- a/data/_apt7/tolerance.diff +++ /dev/null @@ -1,24 +0,0 @@ -diff -ru apt-0.7.20.2/apt-pkg/deb/deblistparser.cc apt-0.7.20.2+iPhone/apt-pkg/deb/deblistparser.cc ---- apt-0.7.20.2/apt-pkg/deb/deblistparser.cc 2010-02-22 08:57:37.000000000 +0000 -+++ apt-0.7.20.2+iPhone/apt-pkg/deb/deblistparser.cc 2010-02-22 09:40:28.000000000 +0000 -@@ -643,11 +643,18 @@ - iOffset = Tags.Offset(); - while (Tags.Step(Section) == true) - { -+ const char *Start; -+ const char *Stop; -+ -+ if (Section.Find("Package",Start,Stop) == false) { -+ _error->Warning("Encountered a section with no Package: header"); -+ continue; -+ } -+ - /* See if this is the correct Architecture, if it isn't then we - drop the whole section. A missing arch tag only happens (in theory) - inside the Status file, so that is a positive return */ -- const char *Start; -- const char *Stop; -+ - if (Section.Find("Architecture",Start,Stop) == false) - return true; - diff --git a/data/_apt7/tornado.diff b/data/_apt7/tornado.diff deleted file mode 100644 index e276f3356..000000000 --- a/data/_apt7/tornado.diff +++ /dev/null @@ -1,719 +0,0 @@ -diff -Nru apt-0.7.25.3/apt-pkg/contrib/md5.cc apt-0.7.25.3+iPhone/apt-pkg/contrib/md5.cc ---- apt-0.7.25.3/apt-pkg/contrib/md5.cc 2010-02-01 19:44:40.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/contrib/md5.cc 2010-02-24 08:11:38.000000000 +0000 -@@ -173,6 +173,12 @@ - memset(Sum,0,sizeof(Sum)); - Set(Str); - } -+ -+MD5SumValue::MD5SumValue(const srkString &Str) -+{ -+ memset(Sum, 0, sizeof(Sum)); -+ Set(Str); -+} - /*}}}*/ - // MD5SumValue::MD5SumValue - Default constructor /*{{{*/ - // --------------------------------------------------------------------- -@@ -189,6 +195,11 @@ - { - return Hex2Num(Str,Sum,sizeof(Sum)); - } -+ -+bool MD5SumValue::Set(const srkString &Str) -+{ -+ return Hex2Num(Str,Sum,sizeof(Sum)); -+} - /*}}}*/ - // MD5SumValue::Value - Convert the number into a string /*{{{*/ - // --------------------------------------------------------------------- -diff -Nru apt-0.7.25.3/apt-pkg/contrib/md5.h apt-0.7.25.3+iPhone/apt-pkg/contrib/md5.h ---- apt-0.7.25.3/apt-pkg/contrib/md5.h 2010-02-01 19:44:40.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/contrib/md5.h 2010-02-24 08:09:10.000000000 +0000 -@@ -29,6 +29,8 @@ - #include <algorithm> - #include <stdint.h> - -+#include <apt-pkg/srkstring.h> -+ - using std::string; - using std::min; - -@@ -48,10 +50,12 @@ - {for (int I = 0; I != sizeof(Sum); I++) S[I] = Sum[I];}; - inline operator string() const {return Value();}; - bool Set(string Str); -+ bool Set(const srkString &Str); - inline void Set(unsigned char S[16]) - {for (int I = 0; I != sizeof(Sum); I++) Sum[I] = S[I];}; - - MD5SumValue(string Str); -+ MD5SumValue(const srkString &Str); - MD5SumValue(); - }; - -diff -Nru apt-0.7.25.3/apt-pkg/contrib/strutl.cc apt-0.7.25.3+iPhone/apt-pkg/contrib/strutl.cc ---- apt-0.7.25.3/apt-pkg/contrib/strutl.cc 2010-02-01 19:44:40.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/contrib/strutl.cc 2010-02-24 08:13:39.000000000 +0000 -@@ -943,12 +943,17 @@ - /* The length of the buffer must be exactly 1/2 the length of the string. */ - bool Hex2Num(const string &Str,unsigned char *Num,unsigned int Length) - { -+ return Hex2Num(srkString(Str), Num, Length); -+} -+ -+bool Hex2Num(const srkString &Str,unsigned char *Num,unsigned int Length) -+{ - if (Str.length() != Length*2) - return false; - - // Convert each digit. We store it in the same order as the string - int J = 0; -- for (string::const_iterator I = Str.begin(); I != Str.end();J++, I += 2) -+ for (srkString::const_iterator I = Str.begin(); I != Str.end();J++, I += 2) - { - if (isxdigit(*I) == 0 || isxdigit(I[1]) == 0) - return false; -diff -Nru apt-0.7.25.3/apt-pkg/contrib/strutl.h apt-0.7.25.3+iPhone/apt-pkg/contrib/strutl.h ---- apt-0.7.25.3/apt-pkg/contrib/strutl.h 2010-02-01 19:44:40.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/contrib/strutl.h 2010-02-24 08:10:45.000000000 +0000 -@@ -25,6 +25,8 @@ - #include <iostream> - #include <time.h> - -+#include <apt-pkg/srkstring.h> -+ - using std::string; - using std::vector; - using std::ostream; -@@ -57,6 +59,7 @@ - bool ReadMessages(int Fd, vector<string> &List); - bool StrToNum(const char *Str,unsigned long &Res,unsigned Len,unsigned Base = 0); - bool Hex2Num(const string &Str,unsigned char *Num,unsigned int Length); -+bool Hex2Num(const srkString &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; -@@ -66,6 +69,7 @@ - int tolower_ascii(int c); - - #define APT_MKSTRCMP(name,func) \ -+inline int name(const srkString &A,const char *B) {return func(A.Start,A.Start+A.Size,B,B+strlen(B));}; \ - 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(const string& A,const char *B) {return func(A.c_str(),A.c_str()+A.length(),B,B+strlen(B));}; \ -@@ -77,6 +77,7 @@ - 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 srkString &A,const char *B) {return func(A.Start,A.Start+A.Size,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(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());}; \ -diff -Nru apt-0.7.25.3/apt-pkg/deb/deblistparser.cc apt-0.7.25.3+iPhone/apt-pkg/deb/deblistparser.cc ---- apt-0.7.25.3/apt-pkg/deb/deblistparser.cc 2010-02-24 08:53:52.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/deb/deblistparser.cc 2010-02-24 08:51:50.000000000 +0000 -@@ -106,7 +106,7 @@ - const char *Stop; - if (Section.Find("Priority",Start,Stop) == true) - { -- if (GrabWord(string(Start,Stop-Start),PrioList,Ver->Priority) == false) -+ if (GrabWord(srkString(Start,Stop-Start),PrioList,Ver->Priority) == false) - Ver->Priority = pkgCache::State::Extra; - } - -@@ -144,10 +144,19 @@ - only describe package properties */ - string debListParser::Description() - { -- if (DescriptionLanguage().empty()) -- return Section.FindS("Description"); -- else -- return Section.FindS(("Description-" + pkgIndexFile::LanguageCode()).c_str()); -+ srkString description; -+ Description(description); -+ return description; -+} -+ -+void debListParser::Description(srkString &Str) { -+ const char *Start, *Stop; -+ if (!Section.Find("Description", Start, Stop)) -+ if (!Section.Find(("Description-" + pkgIndexFile::LanguageCode()).c_str(), Start, Stop)) { -+ Start = NULL; -+ Stop = NULL; -+ } -+ Str.assign(Start, Stop); - } - /*}}}*/ - // ListParser::DescriptionLanguage - Return the description lang string /*{{{*/ -@@ -157,7 +166,8 @@ - assumed to describe original description. */ - string debListParser::DescriptionLanguage() - { -- return Section.FindS("Description").empty() ? pkgIndexFile::LanguageCode() : ""; -+ const char *Start, *Stop; -+ return Section.Find("Description", Start, Stop) ? std::string() : pkgIndexFile::LanguageCode(); - } - /*}}}*/ - // ListParser::Description - Return the description_md5 MD5SumValue /*{{{*/ -@@ -168,15 +178,18 @@ - */ - MD5SumValue debListParser::Description_md5() - { -- string value = Section.FindS("Description-md5"); -- -- if (value.empty()) -+ const char *Start; -+ const char *Stop; -+ if (!Section.Find("Description-md5", Start, Stop)) - { - MD5Summation md5; -- md5.Add((Description() + "\n").c_str()); -+ srkString description; -+ Description(description); -+ md5.Add((const unsigned char *) description.Start, description.Size); -+ md5.Add("\n"); - return md5.Result(); - } else -- return MD5SumValue(value); -+ return MD5SumValue(srkString(Start, Stop)); - } - /*}}}*/ - // ListParser::UsePackage - Update a package structure /*{{{*/ -@@ -286,7 +299,7 @@ - {"deinstall",pkgCache::State::DeInstall}, - {"purge",pkgCache::State::Purge}, - {}}; -- if (GrabWord(string(Start,I-Start),WantList,Pkg->SelectedState) == false) -+ if (GrabWord(srkString(Start,I-Start),WantList,Pkg->SelectedState) == false) - return _error->Error("Malformed 1st word in the Status line"); - - // Isloate the next word -@@ -302,7 +315,7 @@ - {"hold",pkgCache::State::HoldInst}, - {"hold-reinstreq",pkgCache::State::HoldReInstReq}, - {}}; -- if (GrabWord(string(Start,I-Start),FlagList,Pkg->InstState) == false) -+ if (GrabWord(srkString(Start,I-Start),FlagList,Pkg->InstState) == false) - return _error->Error("Malformed 2nd word in the Status line"); - - // Isloate the last word -@@ -324,7 +337,7 @@ - {"post-inst-failed",pkgCache::State::HalfConfigured}, - {"removal-failed",pkgCache::State::HalfInstalled}, - {}}; -- if (GrabWord(string(Start,I-Start),StatusList,Pkg->CurrentState) == false) -+ if (GrabWord(srkString(Start,I-Start),StatusList,Pkg->CurrentState) == false) - return _error->Error("Malformed 3rd word in the Status line"); - - /* A Status line marks the package as indicating the current -@@ -410,6 +423,17 @@ - string &Package,string &Ver, - unsigned int &Op, bool ParseArchFlags) - { -+ srkString cPackage, cVer; -+ const char *Value = ParseDepends(Start, Stop, cPackage, cVer, Op, ParseArchFlags); -+ Package = cPackage; -+ Ver = cVer; -+ return Value; -+} -+ -+const char *debListParser::ParseDepends(const char *Start,const char *Stop, -+ srkString &Package,srkString &Ver, -+ unsigned int &Op, bool ParseArchFlags) -+{ - // Strip off leading space - for (;Start != Stop && isspace(*Start) != 0; Start++); - -@@ -509,7 +533,7 @@ - Found = !Found; - - if (Found == false) -- Package = ""; /* not for this arch */ -+ Package.clear(); /* not for this arch */ - } - - // Skip whitespace -@@ -541,8 +565,8 @@ - if (Section.Find(Tag,Start,Stop) == false) - return true; - -- string Package; -- string Version; -+ srkString Package; -+ srkString Version; - unsigned int Op; - - while (1) -@@ -569,8 +593,8 @@ - if (Section.Find("Provides",Start,Stop) == false) - return true; - -- string Package; -- string Version; -+ srkString Package; -+ srkString Version; - unsigned int Op; - - while (1) -@@ -579,7 +603,7 @@ - if (Start == 0) - return _error->Error("Problem parsing Provides line"); - if (Op != pkgCache::Dep::NoOp) { -- _error->Warning("Ignoring Provides line with DepCompareOp for package %s", Package.c_str()); -+ _error->Warning("Ignoring Provides line with DepCompareOp for package %s", std::string(Package).c_str()); - } else { - if (NewProvides(Ver,Package,Version) == false) - return false; -@@ -637,9 +661,14 @@ - /* Looks for a word in a list of words - for ParseStatus */ - bool debListParser::GrabWord(string Word,WordList *List,unsigned char &Out) - { -+ return GrabWord(srkString(Word), List, Out); -+} -+ -+bool debListParser::GrabWord(const srkString &Word,WordList *List,unsigned char &Out) -+{ - for (unsigned int C = 0; List[C].Str != 0; C++) - { -- if (strcasecmp(Word.c_str(),List[C].Str) == 0) -+ if (strncasecmp(Word.Start,List[C].Str,Word.Size) == 0) - { - Out = List[C].Val; - return true; -diff -Nru apt-0.7.25.3/apt-pkg/deb/deblistparser.h apt-0.7.25.3+iPhone/apt-pkg/deb/deblistparser.h ---- apt-0.7.25.3/apt-pkg/deb/deblistparser.h 2010-02-24 08:53:52.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/deb/deblistparser.h 2010-02-24 08:43:20.000000000 +0000 -@@ -41,9 +41,22 @@ - bool ParseProvides(pkgCache::VerIterator Ver); - bool ParseTag(pkgCache::PkgIterator Pkg); - static bool GrabWord(string Word,WordList *List,unsigned char &Out); -+ static bool GrabWord(const srkString &Word,WordList *List,unsigned char &Out); - - public: - -+ srkString Find(const char *Tag) { -+ srkString S; -+ const char *Stop; -+ if (Section.Find(Tag, S.Start, Stop)) -+ S.Size = Stop - S.Start; -+ else { -+ S.Start = NULL; -+ S.Size = 0; -+ } -+ return S; -+ } -+ - static unsigned char GetPrio(string Str); - - // These all operate against the current section -@@ -51,6 +64,7 @@ - virtual string Version(); - virtual bool NewVersion(pkgCache::VerIterator Ver); - virtual string Description(); -+ void Description(srkString &Str); - virtual string DescriptionLanguage(); - virtual MD5SumValue Description_md5(); - virtual unsigned short VersionHash(); -@@ -67,6 +81,9 @@ - static const char *ParseDepends(const char *Start,const char *Stop, - string &Package,string &Ver,unsigned int &Op, - bool ParseArchFlags = false); -+ static const char *ParseDepends(const char *Start,const char *Stop, -+ srkString &Package,srkString &Ver,unsigned int &Op, -+ bool ParseArchFlags = false); - static const char *ConvertRelation(const char *I,unsigned int &Op); - - debListParser(FileFd *File); -diff -Nru apt-0.7.25.3/apt-pkg/makefile apt-0.7.25.3+iPhone/apt-pkg/makefile ---- apt-0.7.25.3/apt-pkg/makefile 2010-02-24 08:53:52.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/makefile 2010-02-24 07:57:37.000000000 +0000 -@@ -42,7 +42,7 @@ - acquire.h acquire-worker.h acquire-item.h acquire-method.h \ - clean.h srcrecords.h cachefile.h versionmatch.h policy.h \ - pkgsystem.h indexfile.h metaindex.h indexrecords.h vendor.h \ -- vendorlist.h cdrom.h indexcopy.h aptconfiguration.h -+ vendorlist.h cdrom.h indexcopy.h aptconfiguration.h srkstring.h - - # Source code for the debian specific components - # In theory the deb headers do not need to be exported.. -diff -Nru apt-0.7.25.3/apt-pkg/pkgcache.cc apt-0.7.25.3+iPhone/apt-pkg/pkgcache.cc ---- apt-0.7.25.3/apt-pkg/pkgcache.cc 2010-02-24 08:53:52.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/pkgcache.cc 2010-02-24 08:51:28.000000000 +0000 -@@ -176,12 +176,25 @@ - return Hash % _count(HeaderP->HashTable); - } - -+unsigned long pkgCache::sHash(const srkString &Str) const -+{ -+ unsigned long Hash = 0; -+ for (const char *I = Str.Start, *E = I + Str.Size; I != E; I++) -+ Hash = 5*Hash + tolower_ascii(*I); -+ return Hash % _count(HeaderP->HashTable); -+} -+ - /*}}}*/ - // Cache::FindPkg - Locate a package by name /*{{{*/ - // --------------------------------------------------------------------- - /* Returns 0 on error, pointer to the package otherwise */ - pkgCache::PkgIterator pkgCache::FindPkg(const string &Name) - { -+ return FindPkg(srkString(Name)); -+} -+ -+pkgCache::PkgIterator pkgCache::FindPkg(const srkString &Name) -+{ - // Look at the hash bucket - Package *Pkg = PkgP + HeaderP->HashTable[Hash(Name)]; - for (; Pkg != PkgP; Pkg = PkgP + Pkg->NextPackage) -diff -Nru apt-0.7.25.3/apt-pkg/pkgcachegen.cc apt-0.7.25.3+iPhone/apt-pkg/pkgcachegen.cc ---- apt-0.7.25.3/apt-pkg/pkgcachegen.cc 2010-02-24 08:53:52.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/pkgcachegen.cc 2010-02-24 08:50:06.000000000 +0000 -@@ -33,6 +33,8 @@ - #include <unistd.h> - #include <errno.h> - #include <stdio.h> -+ -+#include <apt-pkg/deblistparser.h> - /*}}}*/ - typedef vector<pkgIndexFile *>::iterator FileIterator; - -@@ -103,26 +105,37 @@ - pkgCache::VerIterator *OutVer) - { - List.Owner = this; -+ debListParser *debian(dynamic_cast<debListParser *>(&List)); - - unsigned int Counter = 0; - while (List.Step() == true) - { - // Get a pointer to the package structure -- string PackageName = List.Package(); -+ srkString PackageName; -+ if (debian != NULL) -+ PackageName = debian->Find("Package"); -+ else -+ PackageName = List.Package(); - if (PackageName.empty() == true) - return false; - - pkgCache::PkgIterator Pkg; - if (NewPackage(Pkg,PackageName) == false) -- return _error->Error(_("Error occurred while processing %s (NewPackage)"),PackageName.c_str()); -+ return _error->Error(_("Error occurred while processing %s (NewPackage)"),std::string(PackageName).c_str()); - Counter++; - if (Counter % 100 == 0 && Progress != 0) - Progress->Progress(List.Offset()); - -+ string language(List.DescriptionLanguage()); -+ - /* Get a pointer to the version structure. We know the list is sorted - so we use that fact in the search. Insertion of new versions is - done with correct sorting */ -- string Version = List.Version(); -+ srkString Version; -+ if (debian != NULL) -+ Version = debian->Find("Version"); -+ else -+ Version = List.Version(); - if (Version.empty() == true) - { - // we first process the package, then the descriptions -@@ -130,7 +143,7 @@ - // of MMap space) - if (List.UsePackage(Pkg,pkgCache::VerIterator(Cache)) == false) - return _error->Error(_("Error occurred while processing %s (UsePackage1)"), -- PackageName.c_str()); -+ std::string(PackageName).c_str()); - - // Find the right version to write the description - MD5SumValue CurMd5 = List.Description_md5(); -@@ -147,7 +160,7 @@ - // md5 && language - for ( ; Desc.end() == false; Desc++) - if (MD5SumValue(Desc.md5()) == CurMd5 && -- Desc.LanguageCode() == List.DescriptionLanguage()) -+ Desc.LanguageCode() == language) - duplicate=true; - if(duplicate) - continue; -@@ -159,11 +172,11 @@ - if (MD5SumValue(Desc.md5()) == CurMd5) - { - // Add new description -- *LastDesc = NewDescription(Desc, List.DescriptionLanguage(), CurMd5, *LastDesc); -+ *LastDesc = NewDescription(Desc, language, CurMd5, *LastDesc); - Desc->ParentPkg = Pkg.Index(); - - if ((*LastDesc == 0 && _error->PendingError()) || NewFileDesc(Desc,List) == false) -- return _error->Error(_("Error occurred while processing %s (NewFileDesc1)"),PackageName.c_str()); -+ return _error->Error(_("Error occurred while processing %s (NewFileDesc1)"),std::string(PackageName).c_str()); - break; - } - } -@@ -189,11 +202,11 @@ - { - if (List.UsePackage(Pkg,Ver) == false) - return _error->Error(_("Error occurred while processing %s (UsePackage2)"), -- PackageName.c_str()); -+ std::string(PackageName).c_str()); - - if (NewFileVer(Ver,List) == false) - return _error->Error(_("Error occurred while processing %s (NewFileVer1)"), -- PackageName.c_str()); -+ std::string(PackageName).c_str()); - - // Read only a single record and return - if (OutVer != 0) -@@ -224,15 +237,15 @@ - - if ((*LastVer == 0 && _error->PendingError()) || List.NewVersion(Ver) == false) - return _error->Error(_("Error occurred while processing %s (NewVersion1)"), -- PackageName.c_str()); -+ std::string(PackageName).c_str()); - - if (List.UsePackage(Pkg,Ver) == false) - return _error->Error(_("Error occurred while processing %s (UsePackage3)"), -- PackageName.c_str()); -+ std::string(PackageName).c_str()); - - if (NewFileVer(Ver,List) == false) - return _error->Error(_("Error occurred while processing %s (NewVersion2)"), -- PackageName.c_str()); -+ std::string(PackageName).c_str()); - - // Read only a single record and return - if (OutVer != 0) -@@ -251,11 +264,11 @@ - for (; Desc.end() == false; LastDesc = &Desc->NextDesc, Desc++); - - // Add new description -- *LastDesc = NewDescription(Desc, List.DescriptionLanguage(), List.Description_md5(), *LastDesc); -+ *LastDesc = NewDescription(Desc, language, List.Description_md5(), *LastDesc); - Desc->ParentPkg = Pkg.Index(); - - if ((*LastDesc == 0 && _error->PendingError()) || NewFileDesc(Desc,List) == false) -- return _error->Error(_("Error occurred while processing %s (NewFileDesc2)"),PackageName.c_str()); -+ return _error->Error(_("Error occurred while processing %s (NewFileDesc2)"),std::string(PackageName).c_str()); - } - - FoundFileDeps |= List.HasFileDeps(); -@@ -328,6 +341,11 @@ - /* This creates a new package structure and adds it to the hash table */ - bool pkgCacheGenerator::NewPackage(pkgCache::PkgIterator &Pkg,const string &Name) - { -+ return NewPackage(Pkg, srkString(Name)); -+} -+ -+bool pkgCacheGenerator::NewPackage(pkgCache::PkgIterator &Pkg,const srkString &Name) -+{ - Pkg = Cache.FindPkg(Name); - if (Pkg.end() == false) - return true; -@@ -345,7 +363,7 @@ - Cache.HeaderP->HashTable[Hash] = Package; - - // Set the name and the ID -- Pkg->Name = Map.WriteString(Name); -+ Pkg->Name = Map.WriteString(Name.Start,Name.Size); - if (Pkg->Name == 0) - return false; - Pkg->ID = Cache.HeaderP->PackageCount++; -@@ -393,6 +411,13 @@ - const string &VerStr, - unsigned long Next) - { -+ return NewVersion(Ver, srkString(VerStr), Next); -+} -+ -+unsigned long pkgCacheGenerator::NewVersion(pkgCache::VerIterator &Ver, -+ const srkString &VerStr, -+ unsigned long Next) -+{ - // Get a structure - unsigned long Version = Map.Allocate(sizeof(pkgCache::Version)); - if (Version == 0) -@@ -402,7 +427,7 @@ - Ver = pkgCache::VerIterator(Cache,Cache.VerP + Version); - Ver->NextVer = Next; - Ver->ID = Cache.HeaderP->VersionCount++; -- Ver->VerStr = Map.WriteString(VerStr); -+ Ver->VerStr = Map.WriteString(VerStr.Start, VerStr.Size); - if (Ver->VerStr == 0) - return 0; - -@@ -478,6 +503,15 @@ - unsigned int Op, - unsigned int Type) - { -+ return NewDepends(Ver, srkString(PackageName), srkString(Version), Op, Type); -+} -+ -+bool pkgCacheGenerator::ListParser::NewDepends(pkgCache::VerIterator Ver, -+ const srkString &PackageName, -+ const srkString &Version, -+ unsigned int Op, -+ unsigned int Type) -+{ - pkgCache &Cache = Owner->Cache; - - // Get a structure -@@ -541,6 +575,13 @@ - const string &PackageName, - const string &Version) - { -+ return NewProvides(Ver, srkString(PackageName), srkString(Version)); -+} -+ -+bool pkgCacheGenerator::ListParser::NewProvides(pkgCache::VerIterator Ver, -+ const srkString &PackageName, -+ const srkString &Version) -+{ - pkgCache &Cache = Owner->Cache; - - // We do not add self referencing provides -diff -Nru apt-0.7.25.3/apt-pkg/pkgcachegen.h apt-0.7.25.3+iPhone/apt-pkg/pkgcachegen.h ---- apt-0.7.25.3/apt-pkg/pkgcachegen.h 2010-02-24 08:53:52.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/pkgcachegen.h 2010-02-24 08:49:18.000000000 +0000 -@@ -52,9 +52,11 @@ - bool FoundFileDeps; - - bool NewPackage(pkgCache::PkgIterator &Pkg,const string &PkgName); -+ bool NewPackage(pkgCache::PkgIterator &Pkg,const srkString &PkgName); - bool NewFileVer(pkgCache::VerIterator &Ver,ListParser &List); - bool NewFileDesc(pkgCache::DescIterator &Desc,ListParser &List); - unsigned long NewVersion(pkgCache::VerIterator &Ver,const string &VerStr,unsigned long Next); -+ unsigned long NewVersion(pkgCache::VerIterator &Ver,const srkString &VerStr,unsigned long Next); - map_ptrloc NewDescription(pkgCache::DescIterator &Desc,const string &Lang,const MD5SumValue &md5sum,map_ptrloc Next); - - public: -@@ -96,11 +98,17 @@ - inline unsigned long WriteUniqString(const char *S,unsigned int Size) {return Owner->WriteUniqString(S,Size);}; - 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);}; -+ inline unsigned long WriteString(const srkString &S) {return Owner->Map.WriteString(S.Start,S.Size);}; - bool NewDepends(pkgCache::VerIterator Ver,const string &Package, - const string &Version,unsigned int Op, - unsigned int Type); -+ bool NewDepends(pkgCache::VerIterator Ver,const srkString &Package, -+ const srkString &Version,unsigned int Op, -+ unsigned int Type); - bool NewProvides(pkgCache::VerIterator Ver,const string &Package, - const string &Version); -+ bool NewProvides(pkgCache::VerIterator Ver,const srkString &Package, -+ const srkString &Version); - bool NewTag(pkgCache::PkgIterator Pkg,const char *NameStart,unsigned int NameSize); - - public: -diff -Nru apt-0.7.25.3/apt-pkg/pkgcache.h apt-0.7.25.3+iPhone/apt-pkg/pkgcache.h ---- apt-0.7.25.3/apt-pkg/pkgcache.h 2010-02-24 08:53:52.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/pkgcache.h 2010-02-24 07:57:37.000000000 +0000 -@@ -23,9 +23,10 @@ - #include <string> - #include <time.h> - #include <apt-pkg/mmap.h> -+#include <apt-pkg/srkstring.h> - - using std::string; -- -+ - class pkgVersioningSystem; - class pkgCache /*{{{*/ - { -@@ -102,6 +103,7 @@ - - unsigned long sHash(const string &S) const; - unsigned long sHash(const char *S) const; -+ unsigned long sHash(const srkString &S) const; - - public: - -@@ -127,12 +129,14 @@ - // String hashing function (512 range) - inline unsigned long Hash(const string &S) const {return sHash(S);}; - inline unsigned long Hash(const char *S) const {return sHash(S);}; -+ inline unsigned long Hash(const srkString &S) const {return sHash(S);}; - - // Usefull transformation things - const char *Priority(unsigned char Priority); - - // Accessors - PkgIterator FindPkg(const string &Name); -+ PkgIterator FindPkg(const srkString &Name); - Header &Head() {return *HeaderP;}; - inline PkgIterator PkgBegin(); - inline PkgIterator PkgEnd(); -diff -Nru apt-0.7.25.3/apt-pkg/srkstring.h apt-0.7.25.3+iPhone/apt-pkg/srkstring.h ---- apt-0.7.25.3/apt-pkg/srkstring.h 1970-01-01 00:00:00.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/srkstring.h 2010-02-24 08:37:27.000000000 +0000 -@@ -0,0 +1,59 @@ -+// -*- mode: cpp; mode: fold -*- -+// Description /*{{{*/ -+// $Id: pkgcache.h,v 1.25 2001/07/01 22:28:24 jgg Exp $ -+/* ###################################################################### -+ -+ Cache - Structure definitions for the cache file -+ -+ Please see doc/apt-pkg/cache.sgml for a more detailed description of -+ this format. Also be sure to keep that file up-to-date!! -+ -+ Clients should always use the CacheIterators classes for access to the -+ cache. They provide a simple STL-like method for traversing the links -+ of the datastructure. -+ -+ See pkgcachegen.h for information about generating cache structures. -+ -+ ##################################################################### */ -+ /*}}}*/ -+#ifndef PKGLIB_PKGSTRING_H -+#define PKGLIB_PKGSTRING_H -+ -+#include <string> -+ -+class srkString -+{ -+ public: -+ const char *Start; -+ size_t Size; -+ -+ srkString() : Start(NULL), Size(0) {} -+ -+ srkString(const char *Start, size_t Size) : Start(Start), Size(Size) {} -+ srkString(const char *Start, const char *Stop) : Start(Start), Size(Stop - Start) {} -+ srkString(const std::string &string) : Start(string.c_str()), Size(string.size()) {} -+ -+ bool empty() const { return Size == 0; } -+ void clear() { Start = NULL; Size = 0; } -+ -+ void assign(const char *nStart, const char *nStop) { Start = nStart; Size = nStop - nStart; } -+ void assign(const char *nStart, size_t nSize) { Start = nStart; Size = nSize; } -+ -+ size_t length() const { return Size; } -+ size_t size() const { return Size; } -+ -+ typedef const char *const_iterator; -+ const char *begin() const { return Start; } -+ const char *end() const { return Start + Size; } -+ -+ char operator [](size_t index) const { return Start[index]; } -+ -+ operator std::string() { std::string Str; Str.assign(Start, Size); return Str; } -+}; -+ -+int stringcmp(const std::string &lhs, const char *rhsb, const char *rhse); -+inline bool operator ==(const std::string &lhs, const srkString &rhs) { -+ return stringcmp(lhs, rhs.begin(), rhs.end()) == 0; -+} -+ -+#endif -diff -Nru apt-0.7.25.3/apt-pkg/version.h apt-0.7.25.3+iPhone/apt-pkg/version.h ---- apt-0.7.25.3/apt-pkg/version.h 2010-02-01 19:44:40.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/version.h 2010-02-24 07:57:37.000000000 +0000 -@@ -20,7 +20,7 @@ - #ifndef PKGLIB_VERSION_H - #define PKGLIB_VERSION_H - -- -+#include <apt-pkg/srkstring.h> - #include <apt-pkg/strutl.h> - #include <string> - diff --git a/data/_apt7/torque.diff b/data/_apt7/torque.diff deleted file mode 100644 index e93870d64..000000000 --- a/data/_apt7/torque.diff +++ /dev/null @@ -1,147 +0,0 @@ -diff -ru apt-0.7.25.3/apt-pkg/deb/deblistparser.cc apt-0.7.25.3+iPhone/apt-pkg/deb/deblistparser.cc ---- apt-0.7.25.3/apt-pkg/deb/deblistparser.cc 2011-05-27 06:16:43.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/deb/deblistparser.cc 2011-05-27 06:17:16.000000000 +0000 -@@ -572,8 +572,10 @@ - while (1) - { - Start = ParseDepends(Start,Stop,Package,Version,Op); -- if (Start == 0) -- return _error->Error("Problem parsing dependency %s",Tag); -+ if (Start == 0) { -+ _error->Warning("Problem parsing dependency %s",Tag); -+ return false; -+ } - - if (NewDepends(Ver,Package,Version,Op,Type) == false) - return false; -@@ -600,8 +602,11 @@ - while (1) - { - Start = ParseDepends(Start,Stop,Package,Version,Op); -- if (Start == 0) -- return _error->Error("Problem parsing Provides line"); -+ if (Start == 0) { -+ _error->Warning("Problem parsing Provides line"); -+ return false; -+ } -+ - if (Op != pkgCache::Dep::NoOp) { - _error->Warning("Ignoring Provides line with DepCompareOp for package %s", std::string(Package).c_str()); - } else { -diff -ru apt-0.7.25.3/apt-pkg/pkgcachegen.cc apt-0.7.25.3+iPhone/apt-pkg/pkgcachegen.cc ---- apt-0.7.25.3/apt-pkg/pkgcachegen.cc 2011-05-27 06:16:43.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/pkgcachegen.cc 2011-05-27 06:17:16.000000000 +0000 -@@ -108,6 +108,7 @@ - debListParser *debian(dynamic_cast<debListParser *>(&List)); - - unsigned int Counter = 0; -+ step: - while (List.Step() == true) - { - // Get a pointer to the package structure -@@ -120,8 +121,11 @@ - return false; - - pkgCache::PkgIterator Pkg; -- if (NewPackage(Pkg,PackageName) == false) -- return _error->Error(_("Error occurred while processing %s (NewPackage)"),std::string(PackageName).c_str()); -+ if (NewPackage(Pkg,PackageName) == false) { -+ _error->Warning(_("Error occurred while processing %s (NewPackage)"),std::string(PackageName).c_str()); -+ goto step; -+ } -+ - Counter++; - if (Counter % 100 == 0 && Progress != 0) - Progress->Progress(List.Offset()); -@@ -141,9 +145,11 @@ - // we first process the package, then the descriptions - // (this has the bonus that we get MMap error when we run out - // of MMap space) -- if (List.UsePackage(Pkg,pkgCache::VerIterator(Cache)) == false) -- return _error->Error(_("Error occurred while processing %s (UsePackage1)"), -+ if (List.UsePackage(Pkg,pkgCache::VerIterator(Cache)) == false) { -+ _error->Warning(_("Error occurred while processing %s (UsePackage1)"), - std::string(PackageName).c_str()); -+ goto step; -+ } - - // Find the right version to write the description - MD5SumValue CurMd5 = List.Description_md5(); -@@ -175,8 +181,10 @@ - *LastDesc = NewDescription(Desc, language, CurMd5, *LastDesc); - Desc->ParentPkg = Pkg.Index(); - -- if ((*LastDesc == 0 && _error->PendingError()) || NewFileDesc(Desc,List) == false) -- return _error->Error(_("Error occurred while processing %s (NewFileDesc1)"),std::string(PackageName).c_str()); -+ if ((*LastDesc == 0 && _error->PendingError()) || NewFileDesc(Desc,List) == false) { -+ _error->Warning(_("Error occurred while processing %s (NewFileDesc1)"),std::string(PackageName).c_str()); -+ goto step; -+ } - break; - } - } -@@ -200,13 +208,17 @@ - unsigned long Hash = List.VersionHash(); - if (Res == 0 && Ver->Hash == Hash) - { -- if (List.UsePackage(Pkg,Ver) == false) -- return _error->Error(_("Error occurred while processing %s (UsePackage2)"), -+ if (List.UsePackage(Pkg,Ver) == false) { -+ _error->Warning(_("Error occurred while processing %s (UsePackage2)"), - std::string(PackageName).c_str()); -+ goto step; -+ } - -- if (NewFileVer(Ver,List) == false) -- return _error->Error(_("Error occurred while processing %s (NewFileVer1)"), -+ if (NewFileVer(Ver,List) == false) { -+ _error->Warning(_("Error occurred while processing %s (NewFileVer1)"), - std::string(PackageName).c_str()); -+ goto step; -+ } - - // Read only a single record and return - if (OutVer != 0) -@@ -235,17 +247,23 @@ - Ver->ParentPkg = Pkg.Index(); - Ver->Hash = Hash; - -- if ((*LastVer == 0 && _error->PendingError()) || List.NewVersion(Ver) == false) -- return _error->Error(_("Error occurred while processing %s (NewVersion1)"), -+ if ((*LastVer == 0 && _error->PendingError()) || List.NewVersion(Ver) == false) { -+ _error->Warning(_("Error occurred while processing %s (NewVersion1)"), - std::string(PackageName).c_str()); -+ goto step; -+ } - -- if (List.UsePackage(Pkg,Ver) == false) -- return _error->Error(_("Error occurred while processing %s (UsePackage3)"), -+ if (List.UsePackage(Pkg,Ver) == false) { -+ _error->Warning(_("Error occurred while processing %s (UsePackage3)"), - std::string(PackageName).c_str()); -+ goto step; -+ } - -- if (NewFileVer(Ver,List) == false) -- return _error->Error(_("Error occurred while processing %s (NewVersion2)"), -+ if (NewFileVer(Ver,List) == false) { -+ _error->Warning(_("Error occurred while processing %s (NewVersion2)"), - std::string(PackageName).c_str()); -+ goto step; -+ } - - // Read only a single record and return - if (OutVer != 0) -@@ -267,8 +285,10 @@ - *LastDesc = NewDescription(Desc, language, List.Description_md5(), *LastDesc); - Desc->ParentPkg = Pkg.Index(); - -- if ((*LastDesc == 0 && _error->PendingError()) || NewFileDesc(Desc,List) == false) -- return _error->Error(_("Error occurred while processing %s (NewFileDesc2)"),std::string(PackageName).c_str()); -+ if ((*LastDesc == 0 && _error->PendingError()) || NewFileDesc(Desc,List) == false) { -+ _error->Warning(_("Error occurred while processing %s (NewFileDesc2)"),std::string(PackageName).c_str()); -+ goto step; -+ } - } - - FoundFileDeps |= List.HasFileDeps(); diff --git a/data/_apt7/turbulence.diff b/data/_apt7/turbulence.diff deleted file mode 100644 index 0f80e2bd1..000000000 --- a/data/_apt7/turbulence.diff +++ /dev/null @@ -1,64 +0,0 @@ -diff -ru apt-0.7.25.3/apt-pkg/pkgcachegen.cc apt-0.7.25.3+iPhone/apt-pkg/pkgcachegen.cc ---- apt-0.7.25.3/apt-pkg/pkgcachegen.cc 2014-05-13 10:14:37.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/pkgcachegen.cc 2014-05-13 08:54:35.000000000 +0000 -@@ -296,7 +296,7 @@ - if (Cache.HeaderP->PackageCount >= (1ULL<<sizeof(Cache.PkgP->ID)*8)-1) - return _error->Error(_("Wow, you exceeded the number of package " - "names this APT is capable of.")); -- if (Cache.HeaderP->VersionCount >= (1ULL<<(sizeof(Cache.VerP->ID)*8))-1) -+ if (Cache.HeaderP->VersionCount >= (1ULL<<(sizeof(Cache.VerP->ID1)*8+sizeof(Cache.VerP->ID2)*8))-1) - return _error->Error(_("Wow, you exceeded the number of versions " - "this APT is capable of.")); - if (Cache.HeaderP->DescriptionCount >= (1ULL<<(sizeof(Cache.DescP->ID)*8))-1) -@@ -446,7 +446,9 @@ - // Fill it in - Ver = pkgCache::VerIterator(Cache,Cache.VerP + Version); - Ver->NextVer = Next; -- Ver->ID = Cache.HeaderP->VersionCount++; -+ unsigned int ID = Cache.HeaderP->VersionCount++; -+ Ver->ID1 = ID & 0xffff; -+ Ver->ID2 = ID >> 16; - Ver->VerStr = Map.WriteString(VerStr.Start, VerStr.Size); - if (Ver->VerStr == 0) - return 0; -diff -ru apt-0.7.25.3/apt-pkg/pkgcache.h apt-0.7.25.3+iPhone/apt-pkg/pkgcache.h ---- apt-0.7.25.3/apt-pkg/pkgcache.h 2014-05-13 10:14:37.000000000 +0000 -+++ apt-0.7.25.3+iPhone/apt-pkg/pkgcache.h 2014-05-13 10:17:33.000000000 +0000 -@@ -226,7 +226,7 @@ - unsigned char InstState; // Flags - unsigned char CurrentState; // State - -- unsigned short ID; -+ unsigned int ID; - unsigned long Flags; - }; - -@@ -247,7 +247,7 @@ - - // Linked list - map_ptrloc NextFile; // PackageFile -- unsigned short ID; -+ unsigned int ID; - time_t mtime; // Modification time for the file - }; - /*}}}*/ -@@ -291,8 +291,9 @@ - map_ptrloc Size; // These are the .deb size - map_ptrloc InstalledSize; - unsigned short Hash; -- unsigned short ID; -+ unsigned short ID1; - unsigned char Priority; -+ unsigned short ID2; - }; - /*}}}*/ - struct pkgCache::Description /*{{{*/ -@@ -308,7 +309,7 @@ - map_ptrloc NextDesc; // Description - map_ptrloc ParentPkg; // Package - -- unsigned short ID; -+ unsigned int ID; - }; - /*}}}*/ - struct pkgCache::Dependency /*{{{*/ |