diff options
author | Sam Bingner <sam@bingner.com> | 2018-12-07 13:01:05 -1000 |
---|---|---|
committer | Sam Bingner <sam@bingner.com> | 2018-12-07 13:01:05 -1000 |
commit | dabe8669a56fca398da9a7dd117eb74f874cddc0 (patch) | |
tree | 1e9f41f484e72a02652b600498a7b09aee62b7e6 | |
parent | bae6eae573376ebc0e942e88c4f6eaea9b0f1574 (diff) |
Update to use libapt instead of apt7-lib for apt1.4+ and add apt-rdepends
212 files changed, 4578 insertions, 41 deletions
diff --git a/control.sh b/control.sh index 48372f725..45e2df32e 100755 --- a/control.sh +++ b/control.sh @@ -123,7 +123,7 @@ if [[ ! -e ${PKG_DATA}/_metadata/depends_ ]]; then comma= fi - echo -n " $(cat "${PKG_DATA}/_metadata/depends")" + echo -n " $(cat "${PKG_DATA}/_metadata/depends" | sed -e s/%MYVERSION%/${PKG_VRSN%-*}/)" fi if [[ ${comma+@} == @ ]]; then @@ -147,7 +147,7 @@ fi if [[ -e ${PKG_DATA}/_metadata/provides ]]; then cat <<EOF -Provides: $(cat "${PKG_DATA}/_metadata/provides") +Provides: $(cat "${PKG_DATA}/_metadata/provides" | sed -e s/%MYVERSION%/${PKG_VRSN%-*}/) EOF fi diff --git a/data/_apt/_metadata/berkeleydb.dep b/data/_apt/_metadata/berkeleydb.dep new file mode 120000 index 000000000..f945cb1a2 --- /dev/null +++ b/data/_apt/_metadata/berkeleydb.dep @@ -0,0 +1 @@ +../../berkeleydb
\ No newline at end of file diff --git a/data/_apt/_metadata/bzip2.dep b/data/_apt/_metadata/bzip2.dep new file mode 120000 index 000000000..15aa44a77 --- /dev/null +++ b/data/_apt/_metadata/bzip2.dep @@ -0,0 +1 @@ +../../bzip2
\ No newline at end of file diff --git a/data/_apt/_metadata/curl.dep b/data/_apt/_metadata/curl.dep new file mode 120000 index 000000000..9c4438112 --- /dev/null +++ b/data/_apt/_metadata/curl.dep @@ -0,0 +1 @@ +../../curl
\ No newline at end of file diff --git a/data/_apt/_metadata/dpkg.dep b/data/_apt/_metadata/dpkg.dep new file mode 120000 index 000000000..3e57eea03 --- /dev/null +++ b/data/_apt/_metadata/dpkg.dep @@ -0,0 +1 @@ +../../dpkg
\ No newline at end of file diff --git a/data/_apt/_metadata/gnupg.dep b/data/_apt/_metadata/gnupg.dep new file mode 120000 index 000000000..277e892bf --- /dev/null +++ b/data/_apt/_metadata/gnupg.dep @@ -0,0 +1 @@ +../../gnupg
\ No newline at end of file diff --git a/data/_apt/_metadata/gzip.dep b/data/_apt/_metadata/gzip.dep new file mode 120000 index 000000000..c6c801e81 --- /dev/null +++ b/data/_apt/_metadata/gzip.dep @@ -0,0 +1 @@ +../../gzip
\ No newline at end of file diff --git a/data/_apt7/_metadata/in.1443.00 b/data/_apt/_metadata/in.1443.00 index e69de29bb..e69de29bb 100644 --- a/data/_apt7/_metadata/in.1443.00 +++ b/data/_apt/_metadata/in.1443.00 diff --git a/data/_apt/_metadata/license b/data/_apt/_metadata/license new file mode 100644 index 000000000..9e277e57d --- /dev/null +++ b/data/_apt/_metadata/license @@ -0,0 +1,142 @@ +Apt is copyright 1997, 1998, 1999 Jason Gunthorpe and others. + +Apt is licened under the terms of the GNU General Public License (GPL), +version 2.0 or later, as published by the Free Software Foundation. See +the file COPYING.GPL [included], /usr/share/common-licenses/GPL, or +<http://www.gnu.org/copyleft/gpl.txt> for the terms of the latest version +of the GNU General Public License. + +In addition, prior to November 15th, 2000, apt may be distributed under +terms identical to the above with the following addition: + +Works using apt may link against the GUI library "libqt", copyright by +Troll Tech AS, Norway, provided that: + +1. The version of "libqt" is licensed under the terms of the "Qt Free Edition + License" published by Troll Tech AS. The license terms identified as + the Qt Free Edition License below are the only such terms under which + distribution of works derived from both apt and "libqt" are permitted; + +and + +2. The source code of the version of "libqt" used is + + a) Distributed with the binary version; + + or + + b) Downloadable by anyone, without fee, using a publicly-announced + URL on the Internet, for a duration of at least three years + starting with distribution of the binary version. + +On and after November 15th, 2000, the above additional terms lose all +force, and apt will be licensed only under the terms of the GNU General +Public License, version 2.0 or later. + + _______________________________________________________________ + +The following text, up to the text of the Qt Free Edition License, is +informational and not part of the license terms on apt. + +Modifications to apt in either source or compiled form must be licensed +under the terms of the GNU General Public License, version 2.0 (or later), +but need not include the above clause permitting usage of the "libqt" +library under the Qt Free Edition License. Note that removal of this +clause will result in software which is not licensed for binary +redistribution linked against software governed by the Qt Free Edition +License. In the event that a version of "libqt" is released that is +licensed under terms that do not conflict with the GPL, the additional +clause above is not required to grant permission for distribution of works +that are derived from both apt and "libqt". + +No part of apt is licensed under the Qt Free Edition License. The terms +below are provided to help identify the circumstances under which the +"libqt" library may be used with apt (or a work derived from both). The +terms below are copied from the LICENSE file of the qt-1.44 distribution, +as of November 10th, 1999. + + _______________________________________________________________ + + QT FREE EDITION LICENSE + +Copyright (C) 1992-1999 Troll Tech AS. All rights reserved. + +This is the license for Qt Free Edition version 1.44; it covers private use, +use of third-party application programs based on Qt, and development of +free software for the free software community. + + + COPYRIGHT AND RESTRICTIONS + +The Qt toolkit is a product of Troll Tech AS. The Qt Free Edition is limited +to use with the X Window System. + +You may copy this version of the Qt Free Edition provided that the entire +archive is distributed unchanged and as a whole, including this notice. + +You may use this version of the Qt Free Edition to compile, link and run +application programs legally developed by third parties. + +You may use the Qt Free Edition to create application programs +provided that: + + You accept this license. + Your software does not require modifications to Qt Free Edition. + You satisfy ONE of the following three requirements + EITHER + Users of your software can freely obtain source code for the + software, freely modify the source code (possibly with + restrictions on copyright notices, attributions and legal + responsibility), and freely redistribute original or modified + versions of the software. + OR + Your software is distributed under the GNU GENERAL + PUBLIC LICENSE, version 2 or later, as defined by the + Free Software Foundation. + OR + Your software is distributed under the GNU LIBRARY + GENERAL PUBLIC LICENSE, version 2 or later, as + defined by the Free Software Foundation. + +If you are paid to develop something with Qt Free Edition or it is a part of +your job the following conditions also apply: + + Your software must not require libraries, programs, data or + documentation that are not available outside your organization in + order to compile or use. + If and when your organization starts using the software, you must + notify Troll Tech AS of the following: + Your organization's name and purpose. + The software's name and purpose. + The software's license. + That your organization considers the software to be free + software. + +You may also use the Qt Free Edition to create reusable components +(such as libraries) provided that you accept the terms above, and in +addition that: + + Your components' license includes the following text: + + [Your package] requires the Qt library, which is + copyright Troll Tech AS. Freely distributable + programs may generally use Qt Free Edition free of + charge, see [README.QT] for details. + + README.QT is distributed along with your components. + Qt Free Edition is not distributed as an integral part of your + components. + + LIMITATIONS OF LIABILITY + +Troll Tech AS makes no obligation under this license to support or +upgrade Qt Free Edition, or assist in the use of Qt Free Edition. + +In no event shall Troll Tech AS be liable for any lost revenue or profits or +other direct, indirect, special, incidental or consequential damages, even +if Troll Tech has been advised of the possibility of such damages. + +QT FREE EDITION IS PROVIDED AS IS WITH NO WARRANTY OF ANY KIND, +INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE. + _______________________________________________________________ diff --git a/data/_apt7/_metadata/lz4.dep b/data/_apt/_metadata/lz4.dep index bccb2875c..bccb2875c 120000 --- a/data/_apt7/_metadata/lz4.dep +++ b/data/_apt/_metadata/lz4.dep diff --git a/data/_apt/_metadata/lzma.dep b/data/_apt/_metadata/lzma.dep new file mode 120000 index 000000000..f84114cb9 --- /dev/null +++ b/data/_apt/_metadata/lzma.dep @@ -0,0 +1 @@ +../../lzma
\ No newline at end of file diff --git a/data/_apt/_metadata/maintainer b/data/_apt/_metadata/maintainer new file mode 120000 index 000000000..573d7ebef --- /dev/null +++ b/data/_apt/_metadata/maintainer @@ -0,0 +1 @@ +../../../people/sbingner
\ No newline at end of file diff --git a/data/_apt/_metadata/notes b/data/_apt/_metadata/notes new file mode 100644 index 000000000..616ed7297 --- /dev/null +++ b/data/_apt/_metadata/notes @@ -0,0 +1,2 @@ +http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=146877 +pkgIndexFile::CheckLanguageCode doesn't handle the common cases diff --git a/data/_apt/_metadata/section b/data/_apt/_metadata/section new file mode 100644 index 000000000..702b7b8d3 --- /dev/null +++ b/data/_apt/_metadata/section @@ -0,0 +1 @@ +Packaging diff --git a/data/_apt/_metadata/sed.dep b/data/_apt/_metadata/sed.dep new file mode 120000 index 000000000..315b5c89c --- /dev/null +++ b/data/_apt/_metadata/sed.dep @@ -0,0 +1 @@ +../../sed
\ No newline at end of file diff --git a/data/_apt/_metadata/tags b/data/_apt/_metadata/tags new file mode 100644 index 000000000..b7fdc65c3 --- /dev/null +++ b/data/_apt/_metadata/tags @@ -0,0 +1 @@ +purpose::console, purpose::library diff --git a/data/_apt/_metadata/version b/data/_apt/_metadata/version new file mode 100644 index 000000000..b2e46d185 --- /dev/null +++ b/data/_apt/_metadata/version @@ -0,0 +1 @@ +1.4.8 diff --git a/data/_apt7/apt-nito.tgz b/data/_apt/apt-nito.tgz Binary files differindex 8ebac625c..8ebac625c 100644 --- a/data/_apt7/apt-nito.tgz +++ b/data/_apt/apt-nito.tgz diff --git a/data/_apt7/cftype.diff b/data/_apt/cftype.diff index 2c21cba39..2c21cba39 100644 --- a/data/_apt7/cftype.diff +++ b/data/_apt/cftype.diff diff --git a/data/_apt7/date-errors.diff b/data/_apt/date-errors.diff index 53ee7dd4b..53ee7dd4b 100644 --- a/data/_apt7/date-errors.diff +++ b/data/_apt/date-errors.diff diff --git a/data/_apt/make.sh b/data/_apt/make.sh new file mode 100644 index 000000000..03f8b6868 --- /dev/null +++ b/data/_apt/make.sh @@ -0,0 +1,32 @@ +pkg:setup +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 +pkg: mkdir -p /etc/apt/sources.list.d +pkg: mkdir -p /etc/apt/trusted.gpg.d +pkg: mkdir -p /var/cache/apt/archives/partial +pkg: mkdir -p /var/lib/apt/lists/partial +pkg: mkdir -p /var/lib/apt/periodic +pkg: mkdir -p /var/log/apt + +pkg:install diff --git a/data/_apt7/sandbox-errors.diff b/data/_apt/sandbox-errors.diff index 706aeb23c..706aeb23c 100644 --- a/data/_apt7/sandbox-errors.diff +++ b/data/_apt/sandbox-errors.diff diff --git a/data/_apt7/sha1.diff b/data/_apt/sha1.diff index e681382ca..e681382ca 100644 --- a/data/_apt7/sha1.diff +++ b/data/_apt/sha1.diff diff --git a/data/_apt1.4/_metadata/berkeleydb.dep b/data/_apt1.4/_metadata/berkeleydb.dep new file mode 120000 index 000000000..f945cb1a2 --- /dev/null +++ b/data/_apt1.4/_metadata/berkeleydb.dep @@ -0,0 +1 @@ +../../berkeleydb
\ No newline at end of file diff --git a/data/_apt1.4/_metadata/bzip2.dep b/data/_apt1.4/_metadata/bzip2.dep new file mode 120000 index 000000000..15aa44a77 --- /dev/null +++ b/data/_apt1.4/_metadata/bzip2.dep @@ -0,0 +1 @@ +../../bzip2
\ No newline at end of file diff --git a/data/_apt1.4/_metadata/curl.dep b/data/_apt1.4/_metadata/curl.dep new file mode 120000 index 000000000..9c4438112 --- /dev/null +++ b/data/_apt1.4/_metadata/curl.dep @@ -0,0 +1 @@ +../../curl
\ No newline at end of file diff --git a/data/_apt1.4/_metadata/dpkg.dep b/data/_apt1.4/_metadata/dpkg.dep new file mode 120000 index 000000000..3e57eea03 --- /dev/null +++ b/data/_apt1.4/_metadata/dpkg.dep @@ -0,0 +1 @@ +../../dpkg
\ No newline at end of file diff --git a/data/_apt1.4/_metadata/gnupg.dep b/data/_apt1.4/_metadata/gnupg.dep new file mode 120000 index 000000000..277e892bf --- /dev/null +++ b/data/_apt1.4/_metadata/gnupg.dep @@ -0,0 +1 @@ +../../gnupg
\ No newline at end of file diff --git a/data/_apt1.4/_metadata/gzip.dep b/data/_apt1.4/_metadata/gzip.dep new file mode 120000 index 000000000..c6c801e81 --- /dev/null +++ b/data/_apt1.4/_metadata/gzip.dep @@ -0,0 +1 @@ +../../gzip
\ No newline at end of file diff --git a/data/apt7-key/_metadata/in.1443.00 b/data/_apt1.4/_metadata/in.1443.00 index e69de29bb..e69de29bb 100644 --- a/data/apt7-key/_metadata/in.1443.00 +++ b/data/_apt1.4/_metadata/in.1443.00 diff --git a/data/_apt1.4/_metadata/license b/data/_apt1.4/_metadata/license new file mode 100644 index 000000000..9e277e57d --- /dev/null +++ b/data/_apt1.4/_metadata/license @@ -0,0 +1,142 @@ +Apt is copyright 1997, 1998, 1999 Jason Gunthorpe and others. + +Apt is licened under the terms of the GNU General Public License (GPL), +version 2.0 or later, as published by the Free Software Foundation. See +the file COPYING.GPL [included], /usr/share/common-licenses/GPL, or +<http://www.gnu.org/copyleft/gpl.txt> for the terms of the latest version +of the GNU General Public License. + +In addition, prior to November 15th, 2000, apt may be distributed under +terms identical to the above with the following addition: + +Works using apt may link against the GUI library "libqt", copyright by +Troll Tech AS, Norway, provided that: + +1. The version of "libqt" is licensed under the terms of the "Qt Free Edition + License" published by Troll Tech AS. The license terms identified as + the Qt Free Edition License below are the only such terms under which + distribution of works derived from both apt and "libqt" are permitted; + +and + +2. The source code of the version of "libqt" used is + + a) Distributed with the binary version; + + or + + b) Downloadable by anyone, without fee, using a publicly-announced + URL on the Internet, for a duration of at least three years + starting with distribution of the binary version. + +On and after November 15th, 2000, the above additional terms lose all +force, and apt will be licensed only under the terms of the GNU General +Public License, version 2.0 or later. + + _______________________________________________________________ + +The following text, up to the text of the Qt Free Edition License, is +informational and not part of the license terms on apt. + +Modifications to apt in either source or compiled form must be licensed +under the terms of the GNU General Public License, version 2.0 (or later), +but need not include the above clause permitting usage of the "libqt" +library under the Qt Free Edition License. Note that removal of this +clause will result in software which is not licensed for binary +redistribution linked against software governed by the Qt Free Edition +License. In the event that a version of "libqt" is released that is +licensed under terms that do not conflict with the GPL, the additional +clause above is not required to grant permission for distribution of works +that are derived from both apt and "libqt". + +No part of apt is licensed under the Qt Free Edition License. The terms +below are provided to help identify the circumstances under which the +"libqt" library may be used with apt (or a work derived from both). The +terms below are copied from the LICENSE file of the qt-1.44 distribution, +as of November 10th, 1999. + + _______________________________________________________________ + + QT FREE EDITION LICENSE + +Copyright (C) 1992-1999 Troll Tech AS. All rights reserved. + +This is the license for Qt Free Edition version 1.44; it covers private use, +use of third-party application programs based on Qt, and development of +free software for the free software community. + + + COPYRIGHT AND RESTRICTIONS + +The Qt toolkit is a product of Troll Tech AS. The Qt Free Edition is limited +to use with the X Window System. + +You may copy this version of the Qt Free Edition provided that the entire +archive is distributed unchanged and as a whole, including this notice. + +You may use this version of the Qt Free Edition to compile, link and run +application programs legally developed by third parties. + +You may use the Qt Free Edition to create application programs +provided that: + + You accept this license. + Your software does not require modifications to Qt Free Edition. + You satisfy ONE of the following three requirements + EITHER + Users of your software can freely obtain source code for the + software, freely modify the source code (possibly with + restrictions on copyright notices, attributions and legal + responsibility), and freely redistribute original or modified + versions of the software. + OR + Your software is distributed under the GNU GENERAL + PUBLIC LICENSE, version 2 or later, as defined by the + Free Software Foundation. + OR + Your software is distributed under the GNU LIBRARY + GENERAL PUBLIC LICENSE, version 2 or later, as + defined by the Free Software Foundation. + +If you are paid to develop something with Qt Free Edition or it is a part of +your job the following conditions also apply: + + Your software must not require libraries, programs, data or + documentation that are not available outside your organization in + order to compile or use. + If and when your organization starts using the software, you must + notify Troll Tech AS of the following: + Your organization's name and purpose. + The software's name and purpose. + The software's license. + That your organization considers the software to be free + software. + +You may also use the Qt Free Edition to create reusable components +(such as libraries) provided that you accept the terms above, and in +addition that: + + Your components' license includes the following text: + + [Your package] requires the Qt library, which is + copyright Troll Tech AS. Freely distributable + programs may generally use Qt Free Edition free of + charge, see [README.QT] for details. + + README.QT is distributed along with your components. + Qt Free Edition is not distributed as an integral part of your + components. + + LIMITATIONS OF LIABILITY + +Troll Tech AS makes no obligation under this license to support or +upgrade Qt Free Edition, or assist in the use of Qt Free Edition. + +In no event shall Troll Tech AS be liable for any lost revenue or profits or +other direct, indirect, special, incidental or consequential damages, even +if Troll Tech has been advised of the possibility of such damages. + +QT FREE EDITION IS PROVIDED AS IS WITH NO WARRANTY OF ANY KIND, +INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE. + _______________________________________________________________ diff --git a/data/apt7-lib/_metadata/lz4.dep b/data/_apt1.4/_metadata/lz4.dep index bccb2875c..bccb2875c 120000 --- a/data/apt7-lib/_metadata/lz4.dep +++ b/data/_apt1.4/_metadata/lz4.dep diff --git a/data/_apt1.4/_metadata/lzma.dep b/data/_apt1.4/_metadata/lzma.dep new file mode 120000 index 000000000..f84114cb9 --- /dev/null +++ b/data/_apt1.4/_metadata/lzma.dep @@ -0,0 +1 @@ +../../lzma
\ No newline at end of file diff --git a/data/_apt1.4/_metadata/maintainer b/data/_apt1.4/_metadata/maintainer new file mode 120000 index 000000000..573d7ebef --- /dev/null +++ b/data/_apt1.4/_metadata/maintainer @@ -0,0 +1 @@ +../../../people/sbingner
\ No newline at end of file diff --git a/data/_apt1.4/_metadata/notes b/data/_apt1.4/_metadata/notes new file mode 100644 index 000000000..616ed7297 --- /dev/null +++ b/data/_apt1.4/_metadata/notes @@ -0,0 +1,2 @@ +http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=146877 +pkgIndexFile::CheckLanguageCode doesn't handle the common cases diff --git a/data/_apt1.4/_metadata/section b/data/_apt1.4/_metadata/section new file mode 100644 index 000000000..702b7b8d3 --- /dev/null +++ b/data/_apt1.4/_metadata/section @@ -0,0 +1 @@ +Packaging diff --git a/data/_apt1.4/_metadata/sed.dep b/data/_apt1.4/_metadata/sed.dep new file mode 120000 index 000000000..315b5c89c --- /dev/null +++ b/data/_apt1.4/_metadata/sed.dep @@ -0,0 +1 @@ +../../sed
\ No newline at end of file diff --git a/data/_apt1.4/_metadata/tags b/data/_apt1.4/_metadata/tags new file mode 100644 index 000000000..b7fdc65c3 --- /dev/null +++ b/data/_apt1.4/_metadata/tags @@ -0,0 +1 @@ +purpose::console, purpose::library diff --git a/data/_apt1.4/_metadata/version b/data/_apt1.4/_metadata/version new file mode 100644 index 000000000..b2e46d185 --- /dev/null +++ b/data/_apt1.4/_metadata/version @@ -0,0 +1 @@ +1.4.8 diff --git a/data/_apt1.4/apt-nito.tgz b/data/_apt1.4/apt-nito.tgz Binary files differnew file mode 100644 index 000000000..8ebac625c --- /dev/null +++ b/data/_apt1.4/apt-nito.tgz diff --git a/data/_apt1.4/cftype.diff b/data/_apt1.4/cftype.diff new file mode 100644 index 000000000..2c21cba39 --- /dev/null +++ b/data/_apt1.4/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/_apt1.4/date-errors.diff b/data/_apt1.4/date-errors.diff new file mode 100644 index 000000000..53ee7dd4b --- /dev/null +++ b/data/_apt1.4/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/_apt1.4/make.sh b/data/_apt1.4/make.sh new file mode 100644 index 000000000..03f8b6868 --- /dev/null +++ b/data/_apt1.4/make.sh @@ -0,0 +1,32 @@ +pkg:setup +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 +pkg: mkdir -p /etc/apt/sources.list.d +pkg: mkdir -p /etc/apt/trusted.gpg.d +pkg: mkdir -p /var/cache/apt/archives/partial +pkg: mkdir -p /var/lib/apt/lists/partial +pkg: mkdir -p /var/lib/apt/periodic +pkg: mkdir -p /var/log/apt + +pkg:install diff --git a/data/_apt1.4/sandbox-errors.diff b/data/_apt1.4/sandbox-errors.diff new file mode 100644 index 000000000..706aeb23c --- /dev/null +++ b/data/_apt1.4/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/_apt1.4/sha1.diff b/data/_apt1.4/sha1.diff new file mode 100644 index 000000000..e681382ca --- /dev/null +++ b/data/_apt1.4/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::Trusted, "SHA1"}, + {Digest::State::Untrusted, "RIPE-MD/160"}, + {Digest::State::Trusted, "Reserved digest"}, + {Digest::State::Trusted, "Reserved digest"}, diff --git a/data/_apt7/_metadata/maintainer b/data/_apt7/_metadata/maintainer index 573d7ebef..0fa66e077 120000 --- a/data/_apt7/_metadata/maintainer +++ b/data/_apt7/_metadata/maintainer @@ -1 +1 @@ -../../../people/sbingner
\ No newline at end of file +../../../people/saurik
\ No newline at end of file diff --git a/data/_apt7/_metadata/version b/data/_apt7/_metadata/version index b2e46d185..61c4e572d 100644 --- a/data/_apt7/_metadata/version +++ b/data/_apt7/_metadata/version @@ -1 +1 @@ -1.4.8 +0.7.25.3 diff --git a/data/_apt7/abi-4.8.diff b/data/_apt7/abi-4.8.diff new file mode 100644 index 000000000..e2f2de96e --- /dev/null +++ b/data/_apt7/abi-4.8.diff @@ -0,0 +1,315 @@ +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-get.diff b/data/_apt7/apt-get.diff new file mode 100644 index 000000000..6d5bacac9 --- /dev/null +++ b/data/_apt7/apt-get.diff @@ -0,0 +1,20 @@ +diff -ur 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 2018-12-03 13:17:35.000000000 -1000 ++++ apt-0.7.25.3+iPhone/cmdline/apt-get.cc 2018-12-03 13:20:54.000000000 -1000 +@@ -1844,12 +1844,12 @@ + if ((*Cache)[I].Install() == false) + continue; + +- const char **J; +- for (J = CmdL.FileList + 1; *J != 0; J++) +- if (strcmp(*J,I.Name()) == 0) ++ const char **K; ++ for (K = CmdL.FileList + 1; *K != 0; K++) ++ if (strcmp(*K,I.Name()) == 0) + break; + +- if (*J == 0) { ++ if (*K == 0) { + List += string(I.Name()) + " "; + VersionsList += string(Cache[I].CandVersion) + "\n"; + } diff --git a/data/_apt7/apt_0.7.25.3.tar.gz b/data/_apt7/apt_0.7.25.3.tar.gz Binary files differnew file mode 100644 index 000000000..72b140be8 --- /dev/null +++ b/data/_apt7/apt_0.7.25.3.tar.gz diff --git a/data/_apt7/aptbug545699.args b/data/_apt7/aptbug545699.args new file mode 100644 index 000000000..4dd9cbd34 --- /dev/null +++ b/data/_apt7/aptbug545699.args @@ -0,0 +1 @@ +-p0 diff --git a/data/_apt7/aptbug545699.diff b/data/_apt7/aptbug545699.diff new file mode 100644 index 000000000..336241f9b --- /dev/null +++ b/data/_apt7/aptbug545699.diff @@ -0,0 +1,71 @@ +=== 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/architecture.diff b/data/_apt7/architecture.diff new file mode 100644 index 000000000..65533f6a6 --- /dev/null +++ b/data/_apt7/architecture.diff @@ -0,0 +1,13 @@ +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 new file mode 100644 index 000000000..01db636be --- /dev/null +++ b/data/_apt7/cache-limit.diff @@ -0,0 +1,21 @@ +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 new file mode 100644 index 000000000..f6d609521 --- /dev/null +++ b/data/_apt7/cfnetwork.diff @@ -0,0 +1,703 @@ +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,20 @@ + #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 <CFNetwork/CFNetwork.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_ = (CFStringRef)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/deblistparser.diff b/data/_apt7/deblistparser.diff new file mode 100644 index 000000000..2a0d6c9b0 --- /dev/null +++ b/data/_apt7/deblistparser.diff @@ -0,0 +1,27 @@ +diff -ur 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 2018-12-03 12:52:15.000000000 -1000 ++++ apt-0.7.25.3+iPhone/apt-pkg/deb/deblistparser.cc 2018-12-03 12:53:11.000000000 -1000 +@@ -248,18 +248,18 @@ + /* Strip out any spaces from the text, this undoes dpkgs reformatting + of certain fields. dpkg also has the rather interesting notion of + reformatting depends operators < -> <= */ +- char *I = S; ++ char *L = S; + for (; Start != End; Start++) + { + if (isspace(*Start) == 0) +- *I++ = tolower_ascii(*Start); ++ *L++ = tolower_ascii(*Start); + if (*Start == '<' && Start[1] != '<' && Start[1] != '=') +- *I++ = '='; ++ *L++ = '='; + if (*Start == '>' && Start[1] != '>' && Start[1] != '=') +- *I++ = '='; ++ *L++ = '='; + } + +- Result = AddCRC16(Result,S,I - S); ++ Result = AddCRC16(Result,S,L - S); + } + + return Result; diff --git a/data/_apt7/deprecated.diff b/data/_apt7/deprecated.diff new file mode 100644 index 000000000..737aed6f9 --- /dev/null +++ b/data/_apt7/deprecated.diff @@ -0,0 +1,13 @@ +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 new file mode 100644 index 000000000..d4686ed59 --- /dev/null +++ b/data/_apt7/display.diff @@ -0,0 +1,125 @@ +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 new file mode 100644 index 000000000..56eb1e2ab --- /dev/null +++ b/data/_apt7/find.diff @@ -0,0 +1,37 @@ +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 new file mode 100644 index 000000000..15bba37e2 --- /dev/null +++ b/data/_apt7/finddesc.diff @@ -0,0 +1,59 @@ +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 new file mode 100644 index 000000000..fe5c046c8 --- /dev/null +++ b/data/_apt7/hashtable.diff @@ -0,0 +1,61 @@ +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 new file mode 100644 index 000000000..d8887b1aa --- /dev/null +++ b/data/_apt7/iconv.diff @@ -0,0 +1,23 @@ +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 new file mode 100644 index 000000000..c9e4d3215 --- /dev/null +++ b/data/_apt7/insensitive.diff @@ -0,0 +1,12 @@ +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 new file mode 100644 index 000000000..f2f35eb6d --- /dev/null +++ b/data/_apt7/intl.diff @@ -0,0 +1,12 @@ +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 new file mode 100644 index 000000000..d2cd4bbbe --- /dev/null +++ b/data/_apt7/longdesc.diff @@ -0,0 +1,17 @@ +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 03f8b6868..5ec612bc9 100644 --- a/data/_apt7/make.sh +++ b/data/_apt7/make.sh @@ -1,24 +1,9 @@ pkg:setup -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 +rm buildlib/config.sub +cp ${PKG_BASE}/config.sub buildlib/ +autoconf +DPKG_DATADIR=$(ls -d $(PKG_WORK_ _dpkg)/dpkg-*/data) DPKG_ARCH=$(ls -d $(PKG_WORK_ _dpkg)/dpkg-*/scripts) pkg:configure --disable-nls +make pkg: mkdir -p /etc/apt/apt.conf.d pkg: mkdir -p /etc/apt/preferences.d @@ -29,4 +14,13 @@ pkg: mkdir -p /var/lib/apt/lists/partial pkg: mkdir -p /var/lib/apt/periodic pkg: mkdir -p /var/log/apt -pkg:install +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 diff --git a/data/_apt7/map_anon.diff b/data/_apt7/map_anon.diff new file mode 100644 index 000000000..283d36d36 --- /dev/null +++ b/data/_apt7/map_anon.diff @@ -0,0 +1,17 @@ +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 new file mode 100644 index 000000000..da93ca0ba --- /dev/null +++ b/data/_apt7/memrchr.c @@ -0,0 +1,161 @@ +/* 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 new file mode 100644 index 000000000..8913e1816 --- /dev/null +++ b/data/_apt7/memrchr.diff @@ -0,0 +1,195 @@ +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 new file mode 100644 index 000000000..1b745e8b5 --- /dev/null +++ b/data/_apt7/mmap.diff @@ -0,0 +1,199 @@ +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 new file mode 100644 index 000000000..40d28fb3d --- /dev/null +++ b/data/_apt7/parallel.diff @@ -0,0 +1,33 @@ +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 new file mode 100644 index 000000000..f2190eca7 --- /dev/null +++ b/data/_apt7/port.diff @@ -0,0 +1,216 @@ +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 new file mode 100644 index 000000000..847758bf2 --- /dev/null +++ b/data/_apt7/printf.diff @@ -0,0 +1,12 @@ +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 new file mode 100644 index 000000000..04e5051f8 --- /dev/null +++ b/data/_apt7/public.diff @@ -0,0 +1,15 @@ +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 new file mode 100644 index 000000000..7f34536e6 --- /dev/null +++ b/data/_apt7/reinstreq.diff @@ -0,0 +1,21 @@ +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/strdupa.diff b/data/_apt7/strdupa.diff new file mode 100644 index 000000000..03a179e01 --- /dev/null +++ b/data/_apt7/strdupa.diff @@ -0,0 +1,80 @@ +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 new file mode 100644 index 000000000..78ce39645 --- /dev/null +++ b/data/_apt7/tag.diff @@ -0,0 +1,280 @@ +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-lib/_metadata/in.1443.00 b/data/_apt7/timestamp.diff index e69de29bb..e69de29bb 100644 --- a/data/apt7-lib/_metadata/in.1443.00 +++ b/data/_apt7/timestamp.diff diff --git a/data/_apt7/tolerance.diff b/data/_apt7/tolerance.diff new file mode 100644 index 000000000..ce2ff0adb --- /dev/null +++ b/data/_apt7/tolerance.diff @@ -0,0 +1,24 @@ +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 new file mode 100644 index 000000000..e276f3356 --- /dev/null +++ b/data/_apt7/tornado.diff @@ -0,0 +1,719 @@ +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 new file mode 100644 index 000000000..e93870d64 --- /dev/null +++ b/data/_apt7/torque.diff @@ -0,0 +1,147 @@ +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 new file mode 100644 index 000000000..0f80e2bd1 --- /dev/null +++ b/data/_apt7/turbulence.diff @@ -0,0 +1,64 @@ +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 /*{{{*/ diff --git a/data/apt-key/_metadata/_apt1.4.dep b/data/apt-key/_metadata/_apt1.4.dep new file mode 120000 index 000000000..902259693 --- /dev/null +++ b/data/apt-key/_metadata/_apt1.4.dep @@ -0,0 +1 @@ +../../_apt1.4
\ No newline at end of file diff --git a/data/apt-key/_metadata/breaks b/data/apt-key/_metadata/breaks new file mode 100644 index 000000000..9e36532b4 --- /dev/null +++ b/data/apt-key/_metadata/breaks @@ -0,0 +1 @@ +apt7-key diff --git a/data/apt-key/_metadata/conflicts b/data/apt-key/_metadata/conflicts new file mode 100644 index 000000000..9e36532b4 --- /dev/null +++ b/data/apt-key/_metadata/conflicts @@ -0,0 +1 @@ +apt7-key diff --git a/data/apt7-key/_metadata/coreutils.dep b/data/apt-key/_metadata/coreutils.dep index 5bd43c1eb..5bd43c1eb 120000 --- a/data/apt7-key/_metadata/coreutils.dep +++ b/data/apt-key/_metadata/coreutils.dep diff --git a/data/apt-key/_metadata/description b/data/apt-key/_metadata/description new file mode 100644 index 000000000..7fffa142f --- /dev/null +++ b/data/apt-key/_metadata/description @@ -0,0 +1 @@ +repository encryption key management tool diff --git a/data/apt7/_metadata/in.1443.00 b/data/apt-key/_metadata/in.1443.00 index e69de29bb..e69de29bb 100644 --- a/data/apt7/_metadata/in.1443.00 +++ b/data/apt-key/_metadata/in.1443.00 diff --git a/data/apt-key/_metadata/libapt.dep b/data/apt-key/_metadata/libapt.dep new file mode 120000 index 000000000..280bf477b --- /dev/null +++ b/data/apt-key/_metadata/libapt.dep @@ -0,0 +1 @@ +../../libapt
\ No newline at end of file diff --git a/data/apt-key/_metadata/license b/data/apt-key/_metadata/license new file mode 120000 index 000000000..4f7d70f3f --- /dev/null +++ b/data/apt-key/_metadata/license @@ -0,0 +1 @@ +../../_apt1.4/_metadata/license
\ No newline at end of file diff --git a/data/apt-key/_metadata/maintainer b/data/apt-key/_metadata/maintainer new file mode 120000 index 000000000..52845be09 --- /dev/null +++ b/data/apt-key/_metadata/maintainer @@ -0,0 +1 @@ +../../_apt1.4/_metadata/maintainer
\ No newline at end of file diff --git a/data/apt-key/_metadata/name b/data/apt-key/_metadata/name new file mode 100644 index 000000000..1deb96958 --- /dev/null +++ b/data/apt-key/_metadata/name @@ -0,0 +1 @@ +APT (apt-key) diff --git a/data/apt-key/_metadata/priority b/data/apt-key/_metadata/priority new file mode 100644 index 000000000..a6a7b9cd7 --- /dev/null +++ b/data/apt-key/_metadata/priority @@ -0,0 +1 @@ +standard diff --git a/data/apt-key/_metadata/replaces b/data/apt-key/_metadata/replaces new file mode 100644 index 000000000..49716892b --- /dev/null +++ b/data/apt-key/_metadata/replaces @@ -0,0 +1 @@ +apt (<< 1:0-1), apt7 (<< 0.7.20.2-4), apt7-key diff --git a/data/apt-key/_metadata/role b/data/apt-key/_metadata/role new file mode 100644 index 000000000..52b4d7301 --- /dev/null +++ b/data/apt-key/_metadata/role @@ -0,0 +1 @@ +hacker diff --git a/data/apt-key/_metadata/section b/data/apt-key/_metadata/section new file mode 120000 index 000000000..0c5fdc049 --- /dev/null +++ b/data/apt-key/_metadata/section @@ -0,0 +1 @@ +../../_apt1.4/_metadata/section
\ No newline at end of file diff --git a/data/apt-key/_metadata/tags b/data/apt-key/_metadata/tags new file mode 100644 index 000000000..ad5d50831 --- /dev/null +++ b/data/apt-key/_metadata/tags @@ -0,0 +1 @@ +purpose::console diff --git a/data/apt-key/_metadata/version b/data/apt-key/_metadata/version new file mode 120000 index 000000000..06c5113b0 --- /dev/null +++ b/data/apt-key/_metadata/version @@ -0,0 +1 @@ +../../_apt1.4/_metadata/version
\ No newline at end of file diff --git a/data/apt-key/make.sh b/data/apt-key/make.sh new file mode 100644 index 000000000..c280cbae8 --- /dev/null +++ b/data/apt-key/make.sh @@ -0,0 +1,2 @@ +pkg: mkdir -p /usr/bin +cp -a "$(PKG_DEST_ _apt1.4)"/usr/bin/apt-key "${PKG_DEST}"/usr/bin diff --git a/data/apt-rdepends/_metadata/description b/data/apt-rdepends/_metadata/description new file mode 100644 index 000000000..2d41d5327 --- /dev/null +++ b/data/apt-rdepends/_metadata/description @@ -0,0 +1 @@ +a Perl script that hooks into APT and recursively finds dependencies. diff --git a/data/apt-rdepends/_metadata/in.1443.00 b/data/apt-rdepends/_metadata/in.1443.00 new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/data/apt-rdepends/_metadata/in.1443.00 diff --git a/data/apt-rdepends/_metadata/in.550.58 b/data/apt-rdepends/_metadata/in.550.58 new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/data/apt-rdepends/_metadata/in.550.58 diff --git a/data/apt-rdepends/_metadata/libapt-pkg-perl.dep b/data/apt-rdepends/_metadata/libapt-pkg-perl.dep new file mode 120000 index 000000000..db4b9514d --- /dev/null +++ b/data/apt-rdepends/_metadata/libapt-pkg-perl.dep @@ -0,0 +1 @@ +../../libapt-pkg-perl
\ No newline at end of file diff --git a/data/apt-rdepends/_metadata/license b/data/apt-rdepends/_metadata/license new file mode 120000 index 000000000..9c13a9a0f --- /dev/null +++ b/data/apt-rdepends/_metadata/license @@ -0,0 +1 @@ +../../../licenses/gpl-2
\ No newline at end of file diff --git a/data/apt-rdepends/_metadata/maintainer b/data/apt-rdepends/_metadata/maintainer new file mode 120000 index 000000000..573d7ebef --- /dev/null +++ b/data/apt-rdepends/_metadata/maintainer @@ -0,0 +1 @@ +../../../people/sbingner
\ No newline at end of file diff --git a/data/apt-rdepends/_metadata/priority b/data/apt-rdepends/_metadata/priority new file mode 100644 index 000000000..134d9bc32 --- /dev/null +++ b/data/apt-rdepends/_metadata/priority @@ -0,0 +1 @@ +optional diff --git a/data/apt-rdepends/_metadata/role b/data/apt-rdepends/_metadata/role new file mode 100644 index 000000000..52b4d7301 --- /dev/null +++ b/data/apt-rdepends/_metadata/role @@ -0,0 +1 @@ +hacker diff --git a/data/apt-rdepends/_metadata/section b/data/apt-rdepends/_metadata/section new file mode 100644 index 000000000..ddc7f1fd8 --- /dev/null +++ b/data/apt-rdepends/_metadata/section @@ -0,0 +1 @@ +Scripting diff --git a/data/apt-rdepends/_metadata/tags b/data/apt-rdepends/_metadata/tags new file mode 100644 index 000000000..ad5d50831 --- /dev/null +++ b/data/apt-rdepends/_metadata/tags @@ -0,0 +1 @@ +purpose::console diff --git a/data/apt-rdepends/_metadata/version b/data/apt-rdepends/_metadata/version new file mode 100644 index 000000000..f0bb29e76 --- /dev/null +++ b/data/apt-rdepends/_metadata/version @@ -0,0 +1 @@ +1.3.0 diff --git a/data/apt-rdepends/apt-rdepends-1.3.0.tar.bz2 b/data/apt-rdepends/apt-rdepends-1.3.0.tar.bz2 Binary files differnew file mode 100644 index 000000000..968dca7bd --- /dev/null +++ b/data/apt-rdepends/apt-rdepends-1.3.0.tar.bz2 diff --git a/data/apt-rdepends/make.sh b/data/apt-rdepends/make.sh new file mode 100644 index 000000000..3294e99a9 --- /dev/null +++ b/data/apt-rdepends/make.sh @@ -0,0 +1,2 @@ +pkg:setup +pkg:install diff --git a/data/apt-rdepends/makefile.diff b/data/apt-rdepends/makefile.diff new file mode 100644 index 000000000..731851ba2 --- /dev/null +++ b/data/apt-rdepends/makefile.diff @@ -0,0 +1,30 @@ +diff -ur apt-rdepends-1.3.0/Makefile apt-rdepends-1.3.0+iPhone/Makefile +--- apt-rdepends-1.3.0/Makefile 2005-09-21 11:10:56.000000000 -1000 ++++ apt-rdepends-1.3.0+iPhone/Makefile 2018-11-30 22:41:05.000000000 -1000 +@@ -21,7 +21,8 @@ + + SHELL = /bin/sh + +-prefix = /usr/local ++DESTDIR ?= ++prefix = /usr + exec_prefix = ${prefix} + + bindir = ${exec_prefix}/bin +@@ -36,12 +37,12 @@ + pod2man --section=8 --release=${VERSION} --center=" " $< > $@ + + install : +- mkdir -p ${bindir}; \ +- ${INSTALL} apt-rdepends ${bindir}; \ ++ mkdir -p "${DESTDIR}/${bindir}"; \ ++ ${INSTALL} apt-rdepends "${DESTDIR}/${bindir}"; \ + + install-man : all +- mkdir -p ${mandir}/man8; \ +- ${INSTALL_DATA} apt-rdepends.8 ${mandir}/man8; ++ mkdir -p "${DESTDIR}/${mandir}/man8"; \ ++ ${INSTALL_DATA} apt-rdepends.8 "${DESTDIR}/${mandir}/man8"; + + clean : + rm -f apt-rdepends.8 diff --git a/data/apt/_metadata/depends b/data/apt/_metadata/depends index 4de6015e1..b8aab5a41 100644 --- a/data/apt/_metadata/depends +++ b/data/apt/_metadata/depends @@ -1 +1 @@ -apt7 +apt1.4 diff --git a/data/apt/_metadata/name b/data/apt/_metadata/name index 2b0145427..e2367bda1 100644 --- a/data/apt/_metadata/name +++ b/data/apt/_metadata/name @@ -1 +1 @@ -APT 0.6 Transitional +APT Command Line diff --git a/data/apt1.4/_metadata/_apt1.4.dep b/data/apt1.4/_metadata/_apt1.4.dep new file mode 120000 index 000000000..902259693 --- /dev/null +++ b/data/apt1.4/_metadata/_apt1.4.dep @@ -0,0 +1 @@ +../../_apt1.4
\ No newline at end of file diff --git a/data/apt1.4/_metadata/apt-key.dep b/data/apt1.4/_metadata/apt-key.dep new file mode 120000 index 000000000..67fe46032 --- /dev/null +++ b/data/apt1.4/_metadata/apt-key.dep @@ -0,0 +1 @@ +../../apt-key
\ No newline at end of file diff --git a/data/apt1.4/_metadata/berkeleydb.dep b/data/apt1.4/_metadata/berkeleydb.dep new file mode 120000 index 000000000..f945cb1a2 --- /dev/null +++ b/data/apt1.4/_metadata/berkeleydb.dep @@ -0,0 +1 @@ +../../berkeleydb
\ No newline at end of file diff --git a/data/apt1.4/_metadata/conflicts b/data/apt1.4/_metadata/conflicts new file mode 100644 index 000000000..a975dded1 --- /dev/null +++ b/data/apt1.4/_metadata/conflicts @@ -0,0 +1 @@ +apt7 (<<1:0) diff --git a/data/apt1.4/_metadata/description b/data/apt1.4/_metadata/description new file mode 100644 index 000000000..e60725012 --- /dev/null +++ b/data/apt1.4/_metadata/description @@ -0,0 +1 @@ +the advanced packaging tool from Debian diff --git a/data/apt1.4/_metadata/in.1443.00 b/data/apt1.4/_metadata/in.1443.00 new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/data/apt1.4/_metadata/in.1443.00 diff --git a/data/apt1.4/_metadata/libapt.dep b/data/apt1.4/_metadata/libapt.dep new file mode 120000 index 000000000..280bf477b --- /dev/null +++ b/data/apt1.4/_metadata/libapt.dep @@ -0,0 +1 @@ +../../libapt
\ No newline at end of file diff --git a/data/apt1.4/_metadata/libapt.ver.iphoneos-arm b/data/apt1.4/_metadata/libapt.ver.iphoneos-arm new file mode 120000 index 000000000..06c5113b0 --- /dev/null +++ b/data/apt1.4/_metadata/libapt.ver.iphoneos-arm @@ -0,0 +1 @@ +../../_apt1.4/_metadata/version
\ No newline at end of file diff --git a/data/apt1.4/_metadata/license b/data/apt1.4/_metadata/license new file mode 120000 index 000000000..4f7d70f3f --- /dev/null +++ b/data/apt1.4/_metadata/license @@ -0,0 +1 @@ +../../_apt1.4/_metadata/license
\ No newline at end of file diff --git a/data/apt1.4/_metadata/maintainer b/data/apt1.4/_metadata/maintainer new file mode 120000 index 000000000..52845be09 --- /dev/null +++ b/data/apt1.4/_metadata/maintainer @@ -0,0 +1 @@ +../../_apt1.4/_metadata/maintainer
\ No newline at end of file diff --git a/data/apt1.4/_metadata/name b/data/apt1.4/_metadata/name new file mode 100644 index 000000000..092cf0cc3 --- /dev/null +++ b/data/apt1.4/_metadata/name @@ -0,0 +1 @@ +APT Strict diff --git a/data/apt1.4/_metadata/priority b/data/apt1.4/_metadata/priority new file mode 100644 index 000000000..a6a7b9cd7 --- /dev/null +++ b/data/apt1.4/_metadata/priority @@ -0,0 +1 @@ +standard diff --git a/data/apt1.4/_metadata/role b/data/apt1.4/_metadata/role new file mode 100644 index 000000000..52b4d7301 --- /dev/null +++ b/data/apt1.4/_metadata/role @@ -0,0 +1 @@ +hacker diff --git a/data/apt1.4/_metadata/section b/data/apt1.4/_metadata/section new file mode 120000 index 000000000..0c5fdc049 --- /dev/null +++ b/data/apt1.4/_metadata/section @@ -0,0 +1 @@ +../../_apt1.4/_metadata/section
\ No newline at end of file diff --git a/data/apt1.4/_metadata/tags b/data/apt1.4/_metadata/tags new file mode 100644 index 000000000..ad5d50831 --- /dev/null +++ b/data/apt1.4/_metadata/tags @@ -0,0 +1 @@ +purpose::console diff --git a/data/apt1.4/_metadata/version b/data/apt1.4/_metadata/version new file mode 120000 index 000000000..06c5113b0 --- /dev/null +++ b/data/apt1.4/_metadata/version @@ -0,0 +1 @@ +../../_apt1.4/_metadata/version
\ No newline at end of file diff --git a/data/apt1.4/make.sh b/data/apt1.4/make.sh new file mode 100644 index 000000000..2faa69113 --- /dev/null +++ b/data/apt1.4/make.sh @@ -0,0 +1,4 @@ +pkg: mkdir -p /usr +cp -a "$(PKG_DEST_ _apt1.4)"/usr/bin "${PKG_DEST}"/usr +cp -a "$(PKG_DEST_ _apt1.4)"/usr/include "${PKG_DEST}"/usr +pkg: rm -f /usr/bin/apt-key diff --git a/data/apt7-lib/_metadata/priority b/data/apt7-lib/_metadata/priority index d0b3ce728..134d9bc32 100644 --- a/data/apt7-lib/_metadata/priority +++ b/data/apt7-lib/_metadata/priority @@ -1 +1 @@ -+required +optional diff --git a/data/apt7-lib/make.sh b/data/apt7-lib/make.sh index bf5b34eaf..ca48d2df0 100644 --- a/data/apt7-lib/make.sh +++ b/data/apt7-lib/make.sh @@ -3,7 +3,5 @@ cp -a "$(PKG_DEST_ _apt7)"/var "${PKG_DEST}" pkg: mkdir -p /usr cp -a "$(PKG_DEST_ _apt7)"/usr/lib "${PKG_DEST}"/usr -cp -a "$(PKG_DEST_ _apt7)"/usr/libexec "${PKG_DEST}"/usr -pkg: ln -s ../libexec/apt /usr/lib/apt -pkg: rm -f /usr/libexec/apt/methods/https -pkg: ln -s http /usr/libexec/apt/methods/https +pkg: rm -f /usr/lib/apt/methods/https +pkg: ln -s http /usr/lib/apt/methods/https diff --git a/data/apt7/_metadata/apt7-lib.ver.iphoneos-arm b/data/apt7/_metadata/apt7-lib.ver.iphoneos-arm index ac4ae7e84..138a91ba8 120000..100644 --- a/data/apt7/_metadata/apt7-lib.ver.iphoneos-arm +++ b/data/apt7/_metadata/apt7-lib.ver.iphoneos-arm @@ -1 +1 @@ -../../_apt7/_metadata/version
\ No newline at end of file +0.7.25.3-7 diff --git a/data/dpkg-perl/_metadata/in.550.58 b/data/dpkg-perl/_metadata/in.550.58 new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/data/dpkg-perl/_metadata/in.550.58 diff --git a/data/libapt-pkg-dev/_metadata/description b/data/libapt-pkg-dev/_metadata/description new file mode 100644 index 000000000..6a395c66f --- /dev/null +++ b/data/libapt-pkg-dev/_metadata/description @@ -0,0 +1 @@ +the advanced packaging library from Debian diff --git a/data/libapt-pkg-dev/_metadata/in.1443.00 b/data/libapt-pkg-dev/_metadata/in.1443.00 new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/data/libapt-pkg-dev/_metadata/in.1443.00 diff --git a/data/libapt-pkg-dev/_metadata/libapt-pkg5.0.dep b/data/libapt-pkg-dev/_metadata/libapt-pkg5.0.dep new file mode 120000 index 000000000..616a9ad7f --- /dev/null +++ b/data/libapt-pkg-dev/_metadata/libapt-pkg5.0.dep @@ -0,0 +1 @@ +../../libapt-pkg5.0
\ No newline at end of file diff --git a/data/libapt-pkg-dev/_metadata/license b/data/libapt-pkg-dev/_metadata/license new file mode 120000 index 000000000..4f7d70f3f --- /dev/null +++ b/data/libapt-pkg-dev/_metadata/license @@ -0,0 +1 @@ +../../_apt1.4/_metadata/license
\ No newline at end of file diff --git a/data/libapt-pkg-dev/_metadata/maintainer b/data/libapt-pkg-dev/_metadata/maintainer new file mode 120000 index 000000000..52845be09 --- /dev/null +++ b/data/libapt-pkg-dev/_metadata/maintainer @@ -0,0 +1 @@ +../../_apt1.4/_metadata/maintainer
\ No newline at end of file diff --git a/data/libapt-pkg-dev/_metadata/name b/data/libapt-pkg-dev/_metadata/name new file mode 100644 index 000000000..04633ad5b --- /dev/null +++ b/data/libapt-pkg-dev/_metadata/name @@ -0,0 +1 @@ +APT 1.4 Strict (libapt-pkg-dev) diff --git a/data/libapt-pkg-dev/_metadata/priority b/data/libapt-pkg-dev/_metadata/priority new file mode 100644 index 000000000..134d9bc32 --- /dev/null +++ b/data/libapt-pkg-dev/_metadata/priority @@ -0,0 +1 @@ +optional diff --git a/data/libapt-pkg-dev/_metadata/provides b/data/libapt-pkg-dev/_metadata/provides new file mode 100644 index 000000000..f4468b354 --- /dev/null +++ b/data/libapt-pkg-dev/_metadata/provides @@ -0,0 +1 @@ +libapt-pkg (=1.4.8) diff --git a/data/libapt-pkg-dev/_metadata/role b/data/libapt-pkg-dev/_metadata/role new file mode 100644 index 000000000..8d0320866 --- /dev/null +++ b/data/libapt-pkg-dev/_metadata/role @@ -0,0 +1 @@ +developer diff --git a/data/libapt-pkg-dev/_metadata/section b/data/libapt-pkg-dev/_metadata/section new file mode 100644 index 000000000..702b7b8d3 --- /dev/null +++ b/data/libapt-pkg-dev/_metadata/section @@ -0,0 +1 @@ +Packaging diff --git a/data/libapt-pkg-dev/_metadata/tags b/data/libapt-pkg-dev/_metadata/tags new file mode 100644 index 000000000..a8928cec8 --- /dev/null +++ b/data/libapt-pkg-dev/_metadata/tags @@ -0,0 +1 @@ +purpose::library diff --git a/data/libapt-pkg-dev/_metadata/version b/data/libapt-pkg-dev/_metadata/version new file mode 120000 index 000000000..06c5113b0 --- /dev/null +++ b/data/libapt-pkg-dev/_metadata/version @@ -0,0 +1 @@ +../../_apt1.4/_metadata/version
\ No newline at end of file diff --git a/data/libapt-pkg-dev/make.sh b/data/libapt-pkg-dev/make.sh new file mode 100644 index 000000000..1054bd93d --- /dev/null +++ b/data/libapt-pkg-dev/make.sh @@ -0,0 +1,3 @@ +pkg: mkdir -p /usr/lib /usr/include +cp -a "$(PKG_DEST_ _apt1.4)"/usr/lib/libapt-pkg.dylib "${PKG_DEST}"/usr/lib/ +cp -a "$(PKG_DEST_ _apt1.4)"/usr/include/apt-pkg "${PKG_DEST}"/usr/include diff --git a/data/libapt-pkg-perl/_metadata/_apt1.4.dep b/data/libapt-pkg-perl/_metadata/_apt1.4.dep new file mode 120000 index 000000000..902259693 --- /dev/null +++ b/data/libapt-pkg-perl/_metadata/_apt1.4.dep @@ -0,0 +1 @@ +../../_apt1.4
\ No newline at end of file diff --git a/data/libapt-pkg-perl/_metadata/description b/data/libapt-pkg-perl/_metadata/description new file mode 100644 index 000000000..fa6d7daad --- /dev/null +++ b/data/libapt-pkg-perl/_metadata/description @@ -0,0 +1 @@ +Perl interface to libapt-pkg diff --git a/data/libapt-pkg-perl/_metadata/in.1443.00 b/data/libapt-pkg-perl/_metadata/in.1443.00 new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/data/libapt-pkg-perl/_metadata/in.1443.00 diff --git a/data/libapt-pkg-perl/_metadata/in.550.58 b/data/libapt-pkg-perl/_metadata/in.550.58 new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/data/libapt-pkg-perl/_metadata/in.550.58 diff --git a/data/libapt-pkg-perl/_metadata/libapt-pkg5.0.dep b/data/libapt-pkg-perl/_metadata/libapt-pkg5.0.dep new file mode 120000 index 000000000..616a9ad7f --- /dev/null +++ b/data/libapt-pkg-perl/_metadata/libapt-pkg5.0.dep @@ -0,0 +1 @@ +../../libapt-pkg5.0
\ No newline at end of file diff --git a/data/libapt-pkg-perl/_metadata/license b/data/libapt-pkg-perl/_metadata/license new file mode 100644 index 000000000..43cd72c3e --- /dev/null +++ b/data/libapt-pkg-perl/_metadata/license @@ -0,0 +1,248 @@ + GNU GENERAL PUBLIC LICENSE + Version 1, February 1989 + + Copyright (C) 1989 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The license agreements of most software companies try to keep users +at the mercy of those companies. By contrast, our General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. The +General Public License applies to the Free Software Foundation's +software and to any other program whose authors commit to using it. +You can use it for your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Specifically, the General Public License is designed to make +sure that you have the freedom to give away or sell copies of free +software, that you receive source code or can get it if you want it, +that you can change the software or use pieces of it in new free +programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of a such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must tell them their rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any program or other work which +contains a notice placed by the copyright holder saying it may be +distributed under the terms of this General Public License. The +"Program", below, refers to any such program or work, and a "work based +on the Program" means either the Program or any work containing the +Program or a portion of it, either verbatim or with modifications. Each +licensee is addressed as "you". + + 1. You may copy and distribute verbatim copies of the Program's source +code as you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this +General Public License and to the absence of any warranty; and give any +other recipients of the Program a copy of this General Public License +along with the Program. You may charge a fee for the physical act of +transferring a copy. + + 2. You may modify your copy or copies of the Program or any portion of +it, and copy and distribute such modifications under the terms of Paragraph +1 above, provided that you also do the following: + + a) cause the modified files to carry prominent notices stating that + you changed the files and the date of any change; and + + b) cause the whole of any work that you distribute or publish, that + in whole or in part contains the Program or any part thereof, either + with or without modifications, to be licensed at no charge to all + third parties under the terms of this General Public License (except + that you may choose to grant warranty protection to some or all + third parties, at your option). + + c) If the modified program normally reads commands interactively when + run, you must cause it, when started running for such interactive use + in the simplest and most usual way, to print or display an + announcement including an appropriate copyright notice and a notice + that there is no warranty (or else, saying that you provide a + warranty) and that users may redistribute the program under these + conditions, and telling the user how to view a copy of this General + Public License. + + d) You may charge a fee for the physical act of transferring a + copy, and you may at your option offer warranty protection in + exchange for a fee. + +Mere aggregation of another independent work with the Program (or its +derivative) on a volume of a storage or distribution medium does not bring +the other work under the scope of these terms. + + 3. You may copy and distribute the Program (or a portion or derivative of +it, under Paragraph 2) in object code or executable form under the terms of +Paragraphs 1 and 2 above provided that you also do one of the following: + + a) accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of + Paragraphs 1 and 2 above; or, + + b) accompany it with a written offer, valid for at least three + years, to give any third party free (except for a nominal charge + for the cost of distribution) a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of + Paragraphs 1 and 2 above; or, + + c) accompany it with the information you received as to where the + corresponding source code may be obtained. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form alone.) + +Source code for a work means the preferred form of the work for making +modifications to it. For an executable file, complete source code means +all the source code for all modules it contains; but, as a special +exception, it need not include source code for modules which are standard +libraries that accompany the operating system on which the executable +file runs, or for standard header files or definitions files that +accompany that operating system. + + 4. You may not copy, modify, sublicense, distribute or transfer the +Program except as expressly provided under this General Public License. +Any attempt otherwise to copy, modify, sublicense, distribute or transfer +the Program is void, and will automatically terminate your rights to use +the Program under this License. However, parties who have received +copies, or rights to use copies, from you under this General Public +License will not have their licenses terminated so long as such parties +remain in full compliance. + + 5. By copying, distributing or modifying the Program (or any work based +on the Program) you indicate your acceptance of this license to do so, +and all its terms and conditions. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the original +licensor to copy, distribute or modify the Program subject to these +terms and conditions. You may not impose any further restrictions on the +recipients' exercise of the rights granted herein. + + 7. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of the license which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +the license, you may choose any version ever published by the Free Software +Foundation. + + 8. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to humanity, the best way to achieve this is to make it +free software which everyone can redistribute and change under these +terms. + + To do so, attach the following notices to the program. It is safest to +attach them to the start of each source file to most effectively convey +the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) 19yy <name of author> + + 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 1, 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, write to the Free Software Foundation, + Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19xx name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the +appropriate parts of the General Public License. Of course, the +commands you use may be called something other than `show w' and `show +c'; they could even be mouse-clicks or menu items--whatever suits your +program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + program `Gnomovision' (a program to direct compilers to make passes + at assemblers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/data/libapt-pkg-perl/_metadata/maintainer b/data/libapt-pkg-perl/_metadata/maintainer new file mode 120000 index 000000000..573d7ebef --- /dev/null +++ b/data/libapt-pkg-perl/_metadata/maintainer @@ -0,0 +1 @@ +../../../people/sbingner
\ No newline at end of file diff --git a/data/libapt-pkg-perl/_metadata/perl.dep b/data/libapt-pkg-perl/_metadata/perl.dep new file mode 120000 index 000000000..899dc46ed --- /dev/null +++ b/data/libapt-pkg-perl/_metadata/perl.dep @@ -0,0 +1 @@ +../../perl
\ No newline at end of file diff --git a/data/libapt-pkg-perl/_metadata/priority b/data/libapt-pkg-perl/_metadata/priority new file mode 100644 index 000000000..134d9bc32 --- /dev/null +++ b/data/libapt-pkg-perl/_metadata/priority @@ -0,0 +1 @@ +optional diff --git a/data/libapt-pkg-perl/_metadata/role b/data/libapt-pkg-perl/_metadata/role new file mode 100644 index 000000000..52b4d7301 --- /dev/null +++ b/data/libapt-pkg-perl/_metadata/role @@ -0,0 +1 @@ +hacker diff --git a/data/libapt-pkg-perl/_metadata/section b/data/libapt-pkg-perl/_metadata/section new file mode 100644 index 000000000..ddc7f1fd8 --- /dev/null +++ b/data/libapt-pkg-perl/_metadata/section @@ -0,0 +1 @@ +Scripting diff --git a/data/libapt-pkg-perl/_metadata/tags b/data/libapt-pkg-perl/_metadata/tags new file mode 100644 index 000000000..ad5d50831 --- /dev/null +++ b/data/libapt-pkg-perl/_metadata/tags @@ -0,0 +1 @@ +purpose::console diff --git a/data/libapt-pkg-perl/_metadata/version b/data/libapt-pkg-perl/_metadata/version new file mode 100644 index 000000000..9dd179330 --- /dev/null +++ b/data/libapt-pkg-perl/_metadata/version @@ -0,0 +1 @@ +0.1.34 diff --git a/data/libapt-pkg-perl/libapt-pkg-perl_0.1.34.tar.xz b/data/libapt-pkg-perl/libapt-pkg-perl_0.1.34.tar.xz Binary files differnew file mode 100644 index 000000000..7a9b2da60 --- /dev/null +++ b/data/libapt-pkg-perl/libapt-pkg-perl_0.1.34.tar.xz diff --git a/data/libapt-pkg-perl/make.sh b/data/libapt-pkg-perl/make.sh new file mode 100644 index 000000000..76479bc1a --- /dev/null +++ b/data/libapt-pkg-perl/make.sh @@ -0,0 +1,8 @@ +pkg:setup +echo 'INCLUDE = .' > config.in +echo 'LIB = .' >> config.in +export PERL_SRC="$(PKG_DEST_ perl)" +$(PKG_WORK_ perl)/perl-5*/miniperl_top Makefile.PL +env +pkg:make CC="${PKG_TARG}-g++" CCFLAGS="-std=c++11 -stdlib=libc++" LD="${PKG_TARG}-g++" LDDLFLAGS="-shared -std=c++11 -stdlib=libc++" +make pure_vendor_install DESTDIR="${PKG_DEST}" diff --git a/data/libapt-pkg5.0/_metadata/_apt1.4.dep b/data/libapt-pkg5.0/_metadata/_apt1.4.dep new file mode 120000 index 000000000..902259693 --- /dev/null +++ b/data/libapt-pkg5.0/_metadata/_apt1.4.dep @@ -0,0 +1 @@ +../../_apt1.4
\ No newline at end of file diff --git a/data/libapt-pkg5.0/_metadata/bzip2.dep b/data/libapt-pkg5.0/_metadata/bzip2.dep new file mode 120000 index 000000000..15aa44a77 --- /dev/null +++ b/data/libapt-pkg5.0/_metadata/bzip2.dep @@ -0,0 +1 @@ +../../bzip2
\ No newline at end of file diff --git a/data/libapt-pkg5.0/_metadata/conflicts b/data/libapt-pkg5.0/_metadata/conflicts new file mode 100644 index 000000000..d8164dce9 --- /dev/null +++ b/data/libapt-pkg5.0/_metadata/conflicts @@ -0,0 +1 @@ +apt7-lib (>=1.0) diff --git a/data/libapt-pkg5.0/_metadata/description b/data/libapt-pkg5.0/_metadata/description new file mode 100644 index 000000000..6a395c66f --- /dev/null +++ b/data/libapt-pkg5.0/_metadata/description @@ -0,0 +1 @@ +the advanced packaging library from Debian diff --git a/data/libapt-pkg5.0/_metadata/in.1443.00 b/data/libapt-pkg5.0/_metadata/in.1443.00 new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/data/libapt-pkg5.0/_metadata/in.1443.00 diff --git a/data/libapt-pkg5.0/_metadata/in.550.58 b/data/libapt-pkg5.0/_metadata/in.550.58 new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/data/libapt-pkg5.0/_metadata/in.550.58 diff --git a/data/libapt-pkg5.0/_metadata/license b/data/libapt-pkg5.0/_metadata/license new file mode 120000 index 000000000..4f7d70f3f --- /dev/null +++ b/data/libapt-pkg5.0/_metadata/license @@ -0,0 +1 @@ +../../_apt1.4/_metadata/license
\ No newline at end of file diff --git a/data/libapt-pkg5.0/_metadata/lz4.dep b/data/libapt-pkg5.0/_metadata/lz4.dep new file mode 120000 index 000000000..bccb2875c --- /dev/null +++ b/data/libapt-pkg5.0/_metadata/lz4.dep @@ -0,0 +1 @@ +../../lz4
\ No newline at end of file diff --git a/data/libapt-pkg5.0/_metadata/lzma.dep b/data/libapt-pkg5.0/_metadata/lzma.dep new file mode 120000 index 000000000..f84114cb9 --- /dev/null +++ b/data/libapt-pkg5.0/_metadata/lzma.dep @@ -0,0 +1 @@ +../../lzma
\ No newline at end of file diff --git a/data/libapt-pkg5.0/_metadata/maintainer b/data/libapt-pkg5.0/_metadata/maintainer new file mode 120000 index 000000000..52845be09 --- /dev/null +++ b/data/libapt-pkg5.0/_metadata/maintainer @@ -0,0 +1 @@ +../../_apt1.4/_metadata/maintainer
\ No newline at end of file diff --git a/data/libapt-pkg5.0/_metadata/name b/data/libapt-pkg5.0/_metadata/name new file mode 100644 index 000000000..285a10452 --- /dev/null +++ b/data/libapt-pkg5.0/_metadata/name @@ -0,0 +1 @@ +APT 1.4 Strict (libapt-pkg) diff --git a/data/libapt-pkg5.0/_metadata/priority b/data/libapt-pkg5.0/_metadata/priority new file mode 100644 index 000000000..fad9e164a --- /dev/null +++ b/data/libapt-pkg5.0/_metadata/priority @@ -0,0 +1 @@ +required diff --git a/data/libapt-pkg5.0/_metadata/provides b/data/libapt-pkg5.0/_metadata/provides new file mode 100644 index 000000000..f4468b354 --- /dev/null +++ b/data/libapt-pkg5.0/_metadata/provides @@ -0,0 +1 @@ +libapt-pkg (=1.4.8) diff --git a/data/libapt-pkg5.0/_metadata/role b/data/libapt-pkg5.0/_metadata/role new file mode 100644 index 000000000..8d0320866 --- /dev/null +++ b/data/libapt-pkg5.0/_metadata/role @@ -0,0 +1 @@ +developer diff --git a/data/libapt-pkg5.0/_metadata/section b/data/libapt-pkg5.0/_metadata/section new file mode 100644 index 000000000..702b7b8d3 --- /dev/null +++ b/data/libapt-pkg5.0/_metadata/section @@ -0,0 +1 @@ +Packaging diff --git a/data/libapt-pkg5.0/_metadata/tags b/data/libapt-pkg5.0/_metadata/tags new file mode 100644 index 000000000..a8928cec8 --- /dev/null +++ b/data/libapt-pkg5.0/_metadata/tags @@ -0,0 +1 @@ +purpose::library diff --git a/data/libapt-pkg5.0/_metadata/version b/data/libapt-pkg5.0/_metadata/version new file mode 120000 index 000000000..06c5113b0 --- /dev/null +++ b/data/libapt-pkg5.0/_metadata/version @@ -0,0 +1 @@ +../../_apt1.4/_metadata/version
\ No newline at end of file diff --git a/data/apt7-lib/_metadata/xz.dep b/data/libapt-pkg5.0/_metadata/xz.dep index d5eb7ae54..d5eb7ae54 120000 --- a/data/apt7-lib/_metadata/xz.dep +++ b/data/libapt-pkg5.0/_metadata/xz.dep diff --git a/data/libapt-pkg5.0/make.sh b/data/libapt-pkg5.0/make.sh new file mode 100644 index 000000000..97f810f9b --- /dev/null +++ b/data/libapt-pkg5.0/make.sh @@ -0,0 +1,2 @@ +pkg: mkdir -p /usr/lib +cp -a "$(PKG_DEST_ _apt1.4)"/usr/lib/libapt-pkg.5.0* "${PKG_DEST}"/usr/lib/ diff --git a/data/libapt/_metadata/_apt1.4.dep b/data/libapt/_metadata/_apt1.4.dep new file mode 120000 index 000000000..902259693 --- /dev/null +++ b/data/libapt/_metadata/_apt1.4.dep @@ -0,0 +1 @@ +../../_apt1.4
\ No newline at end of file diff --git a/data/libapt/_metadata/breaks b/data/libapt/_metadata/breaks new file mode 100644 index 000000000..425721f70 --- /dev/null +++ b/data/libapt/_metadata/breaks @@ -0,0 +1 @@ +cydia (<< 1.1.10), aptitude (<< 0.4.11.11-6), apt7-lib diff --git a/data/libapt/_metadata/bzip2.dep b/data/libapt/_metadata/bzip2.dep new file mode 120000 index 000000000..15aa44a77 --- /dev/null +++ b/data/libapt/_metadata/bzip2.dep @@ -0,0 +1 @@ +../../bzip2
\ No newline at end of file diff --git a/data/libapt/_metadata/conflicts b/data/libapt/_metadata/conflicts new file mode 100644 index 000000000..c299ef9e1 --- /dev/null +++ b/data/libapt/_metadata/conflicts @@ -0,0 +1 @@ +apt7-lib diff --git a/data/libapt/_metadata/depends b/data/libapt/_metadata/depends new file mode 100644 index 000000000..8313cb552 --- /dev/null +++ b/data/libapt/_metadata/depends @@ -0,0 +1 @@ +libapt-pkg (>=%MYVERSION%) diff --git a/data/libapt/_metadata/description b/data/libapt/_metadata/description new file mode 100644 index 000000000..6a395c66f --- /dev/null +++ b/data/libapt/_metadata/description @@ -0,0 +1 @@ +the advanced packaging library from Debian diff --git a/data/libapt/_metadata/dpkg.dep b/data/libapt/_metadata/dpkg.dep new file mode 120000 index 000000000..3e57eea03 --- /dev/null +++ b/data/libapt/_metadata/dpkg.dep @@ -0,0 +1 @@ +../../dpkg
\ No newline at end of file diff --git a/data/libapt/_metadata/dpkg.ver.iphoneos-arm b/data/libapt/_metadata/dpkg.ver.iphoneos-arm new file mode 100644 index 000000000..930ccbe2c --- /dev/null +++ b/data/libapt/_metadata/dpkg.ver.iphoneos-arm @@ -0,0 +1 @@ +1.14.25-9 diff --git a/data/libapt/_metadata/gnupg.dep b/data/libapt/_metadata/gnupg.dep new file mode 120000 index 000000000..277e892bf --- /dev/null +++ b/data/libapt/_metadata/gnupg.dep @@ -0,0 +1 @@ +../../gnupg
\ No newline at end of file diff --git a/data/libapt/_metadata/gzip.dep b/data/libapt/_metadata/gzip.dep new file mode 120000 index 000000000..c6c801e81 --- /dev/null +++ b/data/libapt/_metadata/gzip.dep @@ -0,0 +1 @@ +../../gzip
\ No newline at end of file diff --git a/data/libapt/_metadata/in.1443.00 b/data/libapt/_metadata/in.1443.00 new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/data/libapt/_metadata/in.1443.00 diff --git a/data/libapt/_metadata/license b/data/libapt/_metadata/license new file mode 120000 index 000000000..4f7d70f3f --- /dev/null +++ b/data/libapt/_metadata/license @@ -0,0 +1 @@ +../../_apt1.4/_metadata/license
\ No newline at end of file diff --git a/data/libapt/_metadata/lz4.dep b/data/libapt/_metadata/lz4.dep new file mode 120000 index 000000000..bccb2875c --- /dev/null +++ b/data/libapt/_metadata/lz4.dep @@ -0,0 +1 @@ +../../lz4
\ No newline at end of file diff --git a/data/libapt/_metadata/lzma.dep b/data/libapt/_metadata/lzma.dep new file mode 120000 index 000000000..f84114cb9 --- /dev/null +++ b/data/libapt/_metadata/lzma.dep @@ -0,0 +1 @@ +../../lzma
\ No newline at end of file diff --git a/data/libapt/_metadata/maintainer b/data/libapt/_metadata/maintainer new file mode 120000 index 000000000..52845be09 --- /dev/null +++ b/data/libapt/_metadata/maintainer @@ -0,0 +1 @@ +../../_apt1.4/_metadata/maintainer
\ No newline at end of file diff --git a/data/libapt/_metadata/name b/data/libapt/_metadata/name new file mode 100644 index 000000000..4e97daa51 --- /dev/null +++ b/data/libapt/_metadata/name @@ -0,0 +1 @@ +APT Strict (lib) diff --git a/data/libapt/_metadata/priority b/data/libapt/_metadata/priority new file mode 100644 index 000000000..d0b3ce728 --- /dev/null +++ b/data/libapt/_metadata/priority @@ -0,0 +1 @@ ++required diff --git a/data/libapt/_metadata/role b/data/libapt/_metadata/role new file mode 100644 index 000000000..8d0320866 --- /dev/null +++ b/data/libapt/_metadata/role @@ -0,0 +1 @@ +developer diff --git a/data/libapt/_metadata/section b/data/libapt/_metadata/section new file mode 100644 index 000000000..702b7b8d3 --- /dev/null +++ b/data/libapt/_metadata/section @@ -0,0 +1 @@ +Packaging diff --git a/data/libapt/_metadata/tags b/data/libapt/_metadata/tags new file mode 100644 index 000000000..a8928cec8 --- /dev/null +++ b/data/libapt/_metadata/tags @@ -0,0 +1 @@ +purpose::library diff --git a/data/libapt/_metadata/version b/data/libapt/_metadata/version new file mode 120000 index 000000000..06c5113b0 --- /dev/null +++ b/data/libapt/_metadata/version @@ -0,0 +1 @@ +../../_apt1.4/_metadata/version
\ No newline at end of file diff --git a/data/libapt/_metadata/xz.dep b/data/libapt/_metadata/xz.dep new file mode 120000 index 000000000..d5eb7ae54 --- /dev/null +++ b/data/libapt/_metadata/xz.dep @@ -0,0 +1 @@ +../../xz
\ No newline at end of file diff --git a/data/libapt/libapt b/data/libapt/libapt new file mode 120000 index 000000000..280bf477b --- /dev/null +++ b/data/libapt/libapt @@ -0,0 +1 @@ +../../libapt
\ No newline at end of file diff --git a/data/libapt/make.sh b/data/libapt/make.sh new file mode 100644 index 000000000..bfc52ca73 --- /dev/null +++ b/data/libapt/make.sh @@ -0,0 +1,11 @@ +cp -a "$(PKG_DEST_ _apt1.4)"/etc "${PKG_DEST}" +cp -a "$(PKG_DEST_ _apt1.4)"/var "${PKG_DEST}" + +pkg: mkdir -p /usr +cp -a "$(PKG_DEST_ _apt1.4)"/usr/lib "${PKG_DEST}"/usr +cp -a "$(PKG_DEST_ _apt1.4)"/usr/libexec "${PKG_DEST}"/usr +echo rm -f "${PKG_DEST}"/usr/lib/libapt-pkg.* +rm -f "${PKG_DEST}"/usr/lib/libapt-pkg.* +pkg: ln -s ../libexec/apt /usr/lib/apt +pkg: rm -f /usr/libexec/apt/methods/https +pkg: ln -s http /usr/libexec/apt/methods/https diff --git a/data/libgmp10/make.sh b/data/libgmp10/make.sh index 42c34de6b..3197d5831 100644 --- a/data/libgmp10/make.sh +++ b/data/libgmp10/make.sh @@ -1,4 +1,8 @@ pkg:setup -pkg:configure --with-libgcrypt-prefix="$(PKG_DEST_ gcrypt)/usr" +if [[ "${PKG_CFTARG}" == "1443.00" ]]; then + pkg:configure --with-libgcrypt-prefix="$(PKG_DEST_ gcrypt)/usr" +else + pkg:configure --with-libgcrypt-prefix="$(PKG_DEST_ gcrypt)/usr" --disable-assembly +fi pkg:make -j8 pkg:install diff --git a/data/libgpg-error/triplet.diff b/data/libgpg-error/triplet.diff index b0efa85d3..42ecb5b9c 100644 --- a/data/libgpg-error/triplet.diff +++ b/data/libgpg-error/triplet.diff @@ -1,10 +1,11 @@ diff -ur libgpg-error-1.32/src/mkheader.c libgpg-error-1.32+iPhone/src/mkheader.c --- libgpg-error-1.32/src/mkheader.c 2018-03-13 22:56:20.000000000 -1000 +++ libgpg-error-1.32+iPhone/src/mkheader.c 2018-08-01 15:13:26.000000000 -1000 -@@ -90,6 +90,8 @@ +@@ -90,6 +90,9 @@ {"powerpc-unknown-linux-gnuspe", "powerpc-unknown-linux-gnu" }, {"arm-unknown-linux-gnueabihf", "arm-unknown-linux-gnueabi" }, ++ {"arm-apple-darwin11", "arm-apple-darwin" }, + {"aarch64-apple-darwin14", "aarch64-apple-darwin" }, + {"aarch64-apple-darwin17", "aarch64-apple-darwin" }, {"armv7-unknown-linux-gnueabihf" }, diff --git a/data/lz4/_metadata/in.550.58 b/data/lz4/_metadata/in.550.58 new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/data/lz4/_metadata/in.550.58 diff --git a/data/openssl/iphoneos.diff b/data/openssl/iphoneos.diff index 62b171cf4..3e22940fd 100644 --- a/data/openssl/iphoneos.diff +++ b/data/openssl/iphoneos.diff @@ -6,8 +6,8 @@ diff -ur openssl-1.0.2o/Configure openssl-1.0.2o+iPhone/Configure "debug-darwin-ppc-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DB_ENDIAN -g -Wall -O::-D_REENTRANT:MACOSX::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${ppc32_asm}:osx32:dlfcn:darwin-shared:-fPIC:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", # iPhoneOS/iOS -"iphoneos-cross","llvm-gcc:-O3 -isysroot \$(CROSS_TOP)/SDKs/\$(CROSS_SDK) -fomit-frame-pointer -fno-common::-D_REENTRANT:iOS:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", -+"iphoneos-arm","arm-apple-darwin9-gcc:-O3 -fomit-frame-pointer -fno-common::-D_REENTRANT:iOS:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", -+"iphoneos-arm","aarch64-apple-darwin17-gcc:-O3 -fomit-frame-pointer -fno-common::-D_REENTRANT:iOS:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", ++"arm-apple-darwin11","arm-apple-darwin11-gcc:-O3 -fomit-frame-pointer -fno-common::-D_REENTRANT:iOS:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", ++"aarch64-apple-darwin17","aarch64-apple-darwin17-gcc:-O3 -fomit-frame-pointer -fno-common::-D_REENTRANT:iOS:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", ##### A/UX "aux3-gcc","gcc:-O2 -DTERMIO::(unknown):AUX:-lbsd:RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:::", @@ -21,9 +21,9 @@ diff -ur openssl-1.0.2o/config openssl-1.0.2o+iPhone/config - *-*-iphoneos) - options="$options -arch%20${MACHINE}" - OUT="iphoneos-cross" ;; -+ iphoneos-arm) ++ arm-apple-darwin11) + OUT="iphoneos-arm" ;; -+ iphoneos-arm64) ++ aarch64-apple-darwin17) + OUT="iphoneos-arm" ;; alpha-*-linux2) ISA=`awk '/cpu model/{print$4;exit(0);}' /proc/cpuinfo` diff --git a/data/openssl/make.sh b/data/openssl/make.sh index ba217e0e5..d83b0e547 100644 --- a/data/openssl/make.sh +++ b/data/openssl/make.sh @@ -1,6 +1,6 @@ pkg:setup -echo ./Configure -D__DARWIN_UNIX03 "${PKG_ARCH}" --prefix=/usr --openssldir=/usr/lib/ssl shared -./Configure -D__DARWIN_UNIX03 "${PKG_ARCH}" --prefix=/usr --openssldir=/usr/lib/ssl shared +echo ./Configure -D__DARWIN_UNIX03 "${PKG_TARG}" --prefix=/usr --openssldir=/usr/lib/ssl shared +./Configure -D__DARWIN_UNIX03 "${PKG_TARG}" --prefix=/usr --openssldir=/usr/lib/ssl shared make AR="${PKG_TARG}-ar -r" -j8 make install INSTALL_PREFIX="${PKG_DEST}" pkg: rm -rf /usr/lib/man /usr/lib/ssl/man |