summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Bingner <sam@bingner.com>2018-12-12 12:22:43 -1000
committerSam Bingner <sam@bingner.com>2018-12-12 12:22:43 -1000
commit8392357d8d02c96c1a0b6933c0748e47c29e7e30 (patch)
tree768c720bd5ea29f74ef8d24ec04906615d9ab487
parent9a4df01578b80a11383cc2376e38104c7c7644f6 (diff)
parent289fb68d04f3511395da101a87a87eb176ef36d4 (diff)
Merge testing to master
-rw-r--r--.gitignore8
-rwxr-xr-xconstruct.sh4
-rwxr-xr-xcontrol.sh4
l---------data/_apt/_metadata/berkeleydb.dep1
l---------data/_apt/_metadata/bzip2.dep1
l---------data/_apt/_metadata/curl.dep1
l---------data/_apt/_metadata/dpkg.dep1
l---------data/_apt/_metadata/gnupg.dep1
l---------data/_apt/_metadata/gzip.dep1
-rw-r--r--data/_apt/_metadata/in.1443.00 (renamed from data/_apt7/_metadata/in.1443.00)0
-rw-r--r--data/_apt/_metadata/license142
l---------data/_apt/_metadata/lz4.dep (renamed from data/_apt7/_metadata/lz4.dep)0
l---------data/_apt/_metadata/lzma.dep1
l---------data/_apt/_metadata/maintainer1
-rw-r--r--data/_apt/_metadata/notes2
-rw-r--r--data/_apt/_metadata/section1
l---------data/_apt/_metadata/sed.dep1
-rw-r--r--data/_apt/_metadata/tags1
-rw-r--r--data/_apt/_metadata/version1
-rw-r--r--data/_apt/apt-nito.tgz (renamed from data/_apt7/apt-nito.tgz)bin38054572 -> 38054572 bytes
-rw-r--r--data/_apt/cftype.diff (renamed from data/_apt7/cftype.diff)0
-rw-r--r--data/_apt/date-errors.diff (renamed from data/_apt7/date-errors.diff)0
-rw-r--r--data/_apt/make.sh32
-rw-r--r--data/_apt/sandbox-errors.diff (renamed from data/_apt7/sandbox-errors.diff)0
-rw-r--r--data/_apt/sha1.diff (renamed from data/_apt7/sha1.diff)0
l---------data/_apt1.4/_metadata/berkeleydb.dep1
l---------data/_apt1.4/_metadata/bzip2.dep1
l---------data/_apt1.4/_metadata/curl.dep1
l---------data/_apt1.4/_metadata/dpkg.dep1
l---------data/_apt1.4/_metadata/gnupg.dep1
l---------data/_apt1.4/_metadata/gzip.dep1
-rw-r--r--data/_apt1.4/_metadata/in.1443.00 (renamed from data/apt7-key/_metadata/in.1443.00)0
-rw-r--r--data/_apt1.4/_metadata/license142
l---------data/_apt1.4/_metadata/lz4.dep (renamed from data/apt7-lib/_metadata/lz4.dep)0
l---------data/_apt1.4/_metadata/lzma.dep1
l---------data/_apt1.4/_metadata/maintainer1
-rw-r--r--data/_apt1.4/_metadata/notes2
-rw-r--r--data/_apt1.4/_metadata/section1
l---------data/_apt1.4/_metadata/sed.dep1
-rw-r--r--data/_apt1.4/_metadata/tags1
-rw-r--r--data/_apt1.4/_metadata/version1
-rw-r--r--data/_apt1.4/apt-nito.tgzbin0 -> 38054572 bytes
-rw-r--r--data/_apt1.4/cftype.diff11
-rw-r--r--data/_apt1.4/date-errors.diff12
-rw-r--r--data/_apt1.4/make.sh32
-rw-r--r--data/_apt1.4/sandbox-errors.diff10
-rw-r--r--data/_apt1.4/sha1.diff12
l---------data/_apt7/_metadata/maintainer2
-rw-r--r--data/_apt7/_metadata/version2
-rw-r--r--data/_apt7/abi-4.8.diff315
-rw-r--r--data/_apt7/apt-get.diff20
-rw-r--r--data/_apt7/apt_0.7.25.3.tar.gzbin0 -> 2646727 bytes
-rw-r--r--data/_apt7/aptbug545699.args1
-rw-r--r--data/_apt7/aptbug545699.diff71
-rw-r--r--data/_apt7/architecture.diff13
-rw-r--r--data/_apt7/cache-limit.diff21
-rw-r--r--data/_apt7/cfnetwork.diff703
-rw-r--r--data/_apt7/deblistparser.diff27
-rw-r--r--data/_apt7/deprecated.diff13
-rw-r--r--data/_apt7/display.diff125
-rw-r--r--data/_apt7/find.diff37
-rw-r--r--data/_apt7/finddesc.diff59
-rw-r--r--data/_apt7/hashtable.diff61
-rw-r--r--data/_apt7/iconv.diff23
-rw-r--r--data/_apt7/insensitive.diff12
-rw-r--r--data/_apt7/intl.diff12
-rw-r--r--data/_apt7/longdesc.diff17
-rw-r--r--data/_apt7/make.sh36
-rw-r--r--data/_apt7/map_anon.diff17
-rw-r--r--data/_apt7/memrchr.c161
-rw-r--r--data/_apt7/memrchr.diff195
-rw-r--r--data/_apt7/mmap.diff199
-rw-r--r--data/_apt7/parallel.diff33
-rw-r--r--data/_apt7/port.diff216
-rw-r--r--data/_apt7/printf.diff12
-rw-r--r--data/_apt7/public.diff15
-rw-r--r--data/_apt7/reinstreq.diff21
-rw-r--r--data/_apt7/strdupa.diff80
-rw-r--r--data/_apt7/tag.diff280
-rw-r--r--data/_apt7/timestamp.diff (renamed from data/apt7-lib/_metadata/in.1443.00)0
-rw-r--r--data/_apt7/tolerance.diff24
-rw-r--r--data/_apt7/tornado.diff719
-rw-r--r--data/_apt7/torque.diff147
-rw-r--r--data/_apt7/turbulence.diff64
-rw-r--r--data/_openssl0.9.8/Makefile739
-rw-r--r--data/_openssl0.9.8/_metadata/description1
-rw-r--r--data/_openssl0.9.8/_metadata/in.1443.00 (renamed from data/apt7/_metadata/in.1443.00)0
-rw-r--r--data/_openssl0.9.8/_metadata/license127
l---------data/_openssl0.9.8/_metadata/maintainer1
-rw-r--r--data/_openssl0.9.8/_metadata/name1
-rw-r--r--data/_openssl0.9.8/_metadata/priority1
-rw-r--r--data/_openssl0.9.8/_metadata/role1
-rw-r--r--data/_openssl0.9.8/_metadata/section1
-rw-r--r--data/_openssl0.9.8/_metadata/tags1
-rw-r--r--data/_openssl0.9.8/_metadata/version1
-rw-r--r--data/_openssl0.9.8/engines-path.diff54
-rw-r--r--data/_openssl0.9.8/iphoneos.diff31
-rw-r--r--data/_openssl0.9.8/make.sh8
-rw-r--r--data/_openssl0.9.8/openssl-0.9.8zh.tar.gzbin0 -> 3818524 bytes
-rw-r--r--data/_openssl0.9.8/parallel.diff14
-rw-r--r--data/_openssl0.9.8/timestamp.diff11
-rw-r--r--data/_openssl1.0/_metadata/depends1
-rw-r--r--data/_openssl1.0/_metadata/description1
-rw-r--r--data/_openssl1.0/_metadata/in.1443.000
-rw-r--r--data/_openssl1.0/_metadata/license127
l---------data/_openssl1.0/_metadata/maintainer1
-rw-r--r--data/_openssl1.0/_metadata/name1
-rw-r--r--data/_openssl1.0/_metadata/priority1
-rw-r--r--data/_openssl1.0/_metadata/role1
-rw-r--r--data/_openssl1.0/_metadata/section1
-rw-r--r--data/_openssl1.0/_metadata/tags1
-rw-r--r--data/_openssl1.0/_metadata/version1
-rw-r--r--data/_openssl1.0/engines-path.diff83
-rw-r--r--data/_openssl1.0/iphoneos.diff (renamed from data/openssl/iphoneos.diff)8
-rw-r--r--data/_openssl1.0/make.sh11
-rw-r--r--data/_openssl1.0/openssl-1.0.2q.tar.gzbin0 -> 5345604 bytes
l---------data/apt-key/_metadata/_apt1.4.dep1
-rw-r--r--data/apt-key/_metadata/breaks1
-rw-r--r--data/apt-key/_metadata/conflicts1
l---------data/apt-key/_metadata/coreutils.dep (renamed from data/apt7-key/_metadata/coreutils.dep)0
-rw-r--r--data/apt-key/_metadata/description1
-rw-r--r--data/apt-key/_metadata/in.1443.000
l---------data/apt-key/_metadata/libapt.dep1
l---------data/apt-key/_metadata/license1
l---------data/apt-key/_metadata/maintainer1
-rw-r--r--data/apt-key/_metadata/name1
-rw-r--r--data/apt-key/_metadata/priority1
-rw-r--r--data/apt-key/_metadata/replaces1
-rw-r--r--data/apt-key/_metadata/role1
l---------data/apt-key/_metadata/section1
-rw-r--r--data/apt-key/_metadata/tags1
l---------data/apt-key/_metadata/version1
-rw-r--r--data/apt-key/make.sh2
-rw-r--r--data/apt-rdepends/_metadata/description1
-rw-r--r--data/apt-rdepends/_metadata/in.1443.000
-rw-r--r--data/apt-rdepends/_metadata/in.550.580
l---------data/apt-rdepends/_metadata/libapt-pkg-perl.dep1
l---------data/apt-rdepends/_metadata/license1
l---------data/apt-rdepends/_metadata/maintainer1
-rw-r--r--data/apt-rdepends/_metadata/priority1
-rw-r--r--data/apt-rdepends/_metadata/role1
-rw-r--r--data/apt-rdepends/_metadata/section1
-rw-r--r--data/apt-rdepends/_metadata/tags1
-rw-r--r--data/apt-rdepends/_metadata/version1
-rw-r--r--data/apt-rdepends/apt-rdepends-1.3.0.tar.bz2bin0 -> 13420 bytes
-rw-r--r--data/apt-rdepends/make.sh2
-rw-r--r--data/apt-rdepends/makefile.diff30
-rw-r--r--data/apt/_metadata/depends2
-rw-r--r--data/apt/_metadata/name2
l---------data/apt1.4/_metadata/_apt1.4.dep1
l---------data/apt1.4/_metadata/apt-key.dep1
l---------data/apt1.4/_metadata/berkeleydb.dep1
-rw-r--r--data/apt1.4/_metadata/conflicts1
-rw-r--r--data/apt1.4/_metadata/description1
-rw-r--r--data/apt1.4/_metadata/in.1443.000
l---------data/apt1.4/_metadata/libapt.dep1
l---------data/apt1.4/_metadata/libapt.ver.iphoneos-arm1
l---------data/apt1.4/_metadata/license1
l---------data/apt1.4/_metadata/maintainer1
-rw-r--r--data/apt1.4/_metadata/name1
-rw-r--r--data/apt1.4/_metadata/priority1
-rw-r--r--data/apt1.4/_metadata/role1
l---------data/apt1.4/_metadata/section1
-rw-r--r--data/apt1.4/_metadata/tags1
l---------data/apt1.4/_metadata/version1
-rw-r--r--data/apt1.4/make.sh4
-rw-r--r--data/apt7-lib/_metadata/priority2
-rw-r--r--data/apt7-lib/make.sh6
-rw-r--r--[l---------]data/apt7/_metadata/apt7-lib.ver.iphoneos-arm2
-rw-r--r--data/berkeleydb/_metadata/version2
-rw-r--r--data/berkeleydb/case.diff31
-rw-r--r--data/berkeleydb/db-4.6.21.tar.gzbin11881885 -> 0 bytes
-rw-r--r--data/berkeleydb/db-6.2.32.tar.gzbin0 -> 45342417 bytes
l---------data/bind/_metadata/libssl1.0.dep1
l---------data/bind/_metadata/openssl.dep1
-rw-r--r--data/bind/_metadata/version2
-rw-r--r--data/bind/bind-9.11.5.tar.gz (renamed from data/bind/bind-9.11.4.tar.gz)bin9621408 -> 8810710 bytes
-rw-r--r--data/bind/make.sh2
-rw-r--r--data/curl/_metadata/in.550.580
l---------data/curl/_metadata/libssl1.0.dep1
l---------data/curl/_metadata/openssl.dep1
-rw-r--r--data/curl/_metadata/version2
-rw-r--r--data/curl/curl-7.61.0.tar.xzbin2348892 -> 0 bytes
-rw-r--r--data/curl/curl-7.62.0.tar.xzbin0 -> 2395476 bytes
-rw-r--r--data/diskdev-cmds/_metadata/version2
-rw-r--r--data/diskdev-cmds/diskdev_cmds-576.tar.gzbin135055 -> 0 bytes
-rw-r--r--data/diskdev-cmds/diskdev_cmds-593.221.1.tar.gzbin0 -> 133423 bytes
-rw-r--r--data/dpkg-perl/_metadata/in.550.580
-rw-r--r--data/dpkg/_metadata/priority2
-rw-r--r--data/expat/_metadata/in.550.580
l---------data/git/_metadata/_openssl1.0.dep1
-rw-r--r--data/git/_metadata/in.550.580
l---------data/git/_metadata/libssl1.0.dep1
l---------data/git/_metadata/openssl.dep1
l---------data/irssi/_metadata/libssl1.0.dep1
l---------data/irssi/_metadata/openssl.dep1
-rw-r--r--data/libapt-pkg-dev/_metadata/description1
-rw-r--r--data/libapt-pkg-dev/_metadata/in.1443.000
l---------data/libapt-pkg-dev/_metadata/libapt-pkg5.0.dep1
l---------data/libapt-pkg-dev/_metadata/license1
l---------data/libapt-pkg-dev/_metadata/maintainer1
-rw-r--r--data/libapt-pkg-dev/_metadata/name1
-rw-r--r--data/libapt-pkg-dev/_metadata/priority1
-rw-r--r--data/libapt-pkg-dev/_metadata/provides1
-rw-r--r--data/libapt-pkg-dev/_metadata/role1
-rw-r--r--data/libapt-pkg-dev/_metadata/section1
-rw-r--r--data/libapt-pkg-dev/_metadata/tags1
l---------data/libapt-pkg-dev/_metadata/version1
-rw-r--r--data/libapt-pkg-dev/make.sh3
l---------data/libapt-pkg-perl/_metadata/_apt1.4.dep1
-rw-r--r--data/libapt-pkg-perl/_metadata/description1
-rw-r--r--data/libapt-pkg-perl/_metadata/in.1443.000
-rw-r--r--data/libapt-pkg-perl/_metadata/in.550.580
l---------data/libapt-pkg-perl/_metadata/libapt-pkg5.0.dep1
-rw-r--r--data/libapt-pkg-perl/_metadata/license248
l---------data/libapt-pkg-perl/_metadata/maintainer1
l---------data/libapt-pkg-perl/_metadata/perl.dep1
-rw-r--r--data/libapt-pkg-perl/_metadata/priority1
-rw-r--r--data/libapt-pkg-perl/_metadata/role1
-rw-r--r--data/libapt-pkg-perl/_metadata/section1
-rw-r--r--data/libapt-pkg-perl/_metadata/tags1
-rw-r--r--data/libapt-pkg-perl/_metadata/version1
-rw-r--r--data/libapt-pkg-perl/libapt-pkg-perl_0.1.34.tar.xzbin0 -> 42480 bytes
-rw-r--r--data/libapt-pkg-perl/make.sh8
l---------data/libapt-pkg5.0/_metadata/_apt1.4.dep1
l---------data/libapt-pkg5.0/_metadata/bzip2.dep1
-rw-r--r--data/libapt-pkg5.0/_metadata/conflicts1
-rw-r--r--data/libapt-pkg5.0/_metadata/description1
-rw-r--r--data/libapt-pkg5.0/_metadata/in.1443.000
-rw-r--r--data/libapt-pkg5.0/_metadata/in.550.580
l---------data/libapt-pkg5.0/_metadata/license1
l---------data/libapt-pkg5.0/_metadata/lz4.dep1
l---------data/libapt-pkg5.0/_metadata/lzma.dep1
l---------data/libapt-pkg5.0/_metadata/maintainer1
-rw-r--r--data/libapt-pkg5.0/_metadata/name1
-rw-r--r--data/libapt-pkg5.0/_metadata/priority1
-rw-r--r--data/libapt-pkg5.0/_metadata/provides1
-rw-r--r--data/libapt-pkg5.0/_metadata/role1
-rw-r--r--data/libapt-pkg5.0/_metadata/section1
-rw-r--r--data/libapt-pkg5.0/_metadata/tags1
l---------data/libapt-pkg5.0/_metadata/version1
l---------data/libapt-pkg5.0/_metadata/xz.dep (renamed from data/apt7-lib/_metadata/xz.dep)0
-rw-r--r--data/libapt-pkg5.0/make.sh2
l---------data/libapt/_metadata/_apt1.4.dep1
-rw-r--r--data/libapt/_metadata/breaks1
l---------data/libapt/_metadata/bzip2.dep1
-rw-r--r--data/libapt/_metadata/conflicts1
-rw-r--r--data/libapt/_metadata/depends1
-rw-r--r--data/libapt/_metadata/description1
l---------data/libapt/_metadata/dpkg.dep1
-rw-r--r--data/libapt/_metadata/dpkg.ver.iphoneos-arm1
l---------data/libapt/_metadata/gnupg.dep1
l---------data/libapt/_metadata/gzip.dep1
-rw-r--r--data/libapt/_metadata/in.1443.000
l---------data/libapt/_metadata/license1
l---------data/libapt/_metadata/lz4.dep1
l---------data/libapt/_metadata/lzma.dep1
l---------data/libapt/_metadata/maintainer1
-rw-r--r--data/libapt/_metadata/name1
-rw-r--r--data/libapt/_metadata/priority1
-rw-r--r--data/libapt/_metadata/role1
-rw-r--r--data/libapt/_metadata/section1
-rw-r--r--data/libapt/_metadata/tags1
l---------data/libapt/_metadata/version1
l---------data/libapt/_metadata/xz.dep1
l---------data/libapt/libapt1
-rw-r--r--data/libapt/make.sh11
-rw-r--r--data/libevent/_metadata/in.550.580
l---------data/libevent/_metadata/libssl1.0.dep1
l---------data/libevent/_metadata/openssl.dep1
-rw-r--r--data/libgmp10/make.sh6
-rw-r--r--data/libgpg-error/triplet.diff3
l---------data/libnghttp2/_metadata/_openssl1.0.dep1
-rw-r--r--data/libnghttp2/_metadata/in.550.580
l---------data/libnghttp2/_metadata/libssl1.0.dep1
l---------data/libnghttp2/_metadata/openssl.dep1
l---------data/libserf/_metadata/libssl1.0.dep1
-rw-r--r--data/libserf/make.sh2
l---------data/libssh2/_metadata/_openssl1.0.dep1
-rw-r--r--data/libssh2/_metadata/in.550.580
l---------data/libssh2/_metadata/libssl1.0.dep1
l---------data/libssh2/_metadata/openssl.dep1
l---------data/libssl-dev/_metadata/_openssl1.0.dep1
-rw-r--r--data/libssl-dev/_metadata/description1
-rw-r--r--data/libssl-dev/_metadata/in.1443.000
-rw-r--r--data/libssl-dev/_metadata/in.550.580
l---------data/libssl-dev/_metadata/libssl1.0.dep1
l---------data/libssl-dev/_metadata/libssl1.0.ver.iphoneos-arm1
l---------data/libssl-dev/_metadata/license1
l---------data/libssl-dev/_metadata/maintainer1
-rw-r--r--data/libssl-dev/_metadata/name1
l---------data/libssl-dev/_metadata/priority1
l---------data/libssl-dev/_metadata/role1
l---------data/libssl-dev/_metadata/section1
l---------data/libssl-dev/_metadata/tags1
l---------data/libssl-dev/_metadata/version1
-rw-r--r--data/libssl-dev/make.sh3
l---------data/libssl0.9.8/_metadata/_openssl0.9.8.dep1
-rw-r--r--data/libssl0.9.8/_metadata/conflicts1
-rw-r--r--data/libssl0.9.8/_metadata/description1
-rw-r--r--data/libssl0.9.8/_metadata/in.1443.000
-rw-r--r--data/libssl0.9.8/_metadata/in.550.580
l---------data/libssl0.9.8/_metadata/license1
l---------data/libssl0.9.8/_metadata/maintainer1
-rw-r--r--data/libssl0.9.8/_metadata/name1
l---------data/libssl0.9.8/_metadata/priority1
l---------data/libssl0.9.8/_metadata/role1
l---------data/libssl0.9.8/_metadata/section1
l---------data/libssl0.9.8/_metadata/tags1
l---------data/libssl0.9.8/_metadata/version1
-rw-r--r--data/libssl0.9.8/make.sh3
l---------data/libssl1.0/_metadata/_openssl1.0.dep1
-rw-r--r--data/libssl1.0/_metadata/conflicts1
-rw-r--r--data/libssl1.0/_metadata/depends1
-rw-r--r--data/libssl1.0/_metadata/description1
-rw-r--r--data/libssl1.0/_metadata/in.1443.000
-rw-r--r--data/libssl1.0/_metadata/in.550.580
l---------data/libssl1.0/_metadata/license1
l---------data/libssl1.0/_metadata/maintainer1
-rw-r--r--data/libssl1.0/_metadata/name1
l---------data/libssl1.0/_metadata/priority1
l---------data/libssl1.0/_metadata/role1
l---------data/libssl1.0/_metadata/section1
l---------data/libssl1.0/_metadata/tags1
l---------data/libssl1.0/_metadata/version1
-rw-r--r--data/libssl1.0/make.sh3
l---------data/lighttpd/_metadata/libssl1.0.dep1
l---------data/lighttpd/_metadata/openssl.dep1
l---------data/links/_metadata/libssl1.0.dep1
l---------data/links/_metadata/openssl.dep1
l---------data/lynx/_metadata/libssl1.0.dep1
l---------data/lynx/_metadata/openssl.dep1
-rw-r--r--data/lz4/_metadata/in.550.580
-rw-r--r--data/lzma/_metadata/version2
l---------[-rw-r--r--]data/mterminal/_metadata/license25
l---------data/nail/_metadata/libssl1.0.dep1
l---------data/nail/_metadata/openssl.dep1
l---------data/neon/_metadata/libssl1.0.dep1
l---------data/neon/_metadata/openssl.dep1
l---------data/netatalk/_metadata/libssl1.0.dep1
l---------data/netatalk/_metadata/openssl.dep1
l---------data/odcctools/_metadata/libssl1.0.dep1
l---------data/odcctools/_metadata/openssl.dep1
l---------data/openssh/_metadata/libssl1.0.dep1
l---------data/openssh/_metadata/openssl.dep1
-rw-r--r--data/openssh/_metadata/version2
-rw-r--r--data/openssh/openssh-7.7p1.tar.gzbin1536900 -> 0 bytes
-rw-r--r--data/openssh/openssh-7.9p1.tar.gzbin0 -> 1565384 bytes
-rw-r--r--data/openssh/privsep.diff94
-rw-r--r--data/openssl/_metadata/depends2
-rw-r--r--data/openssl/_metadata/description2
-rw-r--r--data/openssl/_metadata/in.550.580
l---------data/openssl/_metadata/libssl1.0.dep1
l---------data/openssl/_metadata/libssl1.0.ver.iphoneos-arm1
l---------[-rw-r--r--]data/openssl/_metadata/license128
l---------data/openssl/_metadata/maintainer2
l---------[-rw-r--r--]data/openssl/_metadata/priority2
l---------[-rw-r--r--]data/openssl/_metadata/role2
l---------[-rw-r--r--]data/openssl/_metadata/section2
l---------[-rw-r--r--]data/openssl/_metadata/tags2
l---------[-rw-r--r--]data/openssl/_metadata/version2
-rw-r--r--data/openssl/make.sh16
-rw-r--r--data/openssl/openssl-1.0.2o.tar.gzbin5329472 -> 0 bytes
l---------data/python/_metadata/libssl1.0.dep1
l---------data/python/_metadata/openssl.dep1
l---------data/raop-play/_metadata/libssl1.0.dep1
l---------data/raop-play/_metadata/openssl.dep1
l---------data/rdesktop/_metadata/libssl1.0.dep1
l---------data/rdesktop/_metadata/openssl.dep1
l---------data/ruby/_metadata/libssl1.0.dep1
l---------data/ruby/_metadata/openssl.dep1
l---------data/socat/_metadata/libssl1.0.dep1
l---------data/socat/_metadata/openssl.dep1
l---------data/stunnel/_metadata/libssl1.0.dep1
l---------data/stunnel/_metadata/openssl.dep1
-rw-r--r--data/subversion/_metadata/version2
-rw-r--r--data/subversion/subversion-1.11.0.tar.bz2 (renamed from data/subversion/subversion-1.10.2.tar.bz2)bin8369762 -> 8490744 bytes
-rw-r--r--data/tar/_metadata/conflicts1
l---------data/tcpdump/_metadata/libssl1.0.dep1
l---------data/tcpdump/_metadata/openssl.dep1
l---------data/vfdecrypt/_metadata/libssl1.0.dep1
l---------data/vfdecrypt/_metadata/openssl.dep1
l---------data/vpnc_/_metadata/libssl1.0.dep1
l---------data/vpnc_/_metadata/openssl.dep1
l---------data/wget/_metadata/libssl1.0.dep1
l---------data/wget/_metadata/openssl.dep1
l---------data/xar/_metadata/libssl1.0.dep1
l---------data/xar/_metadata/openssl.dep1
l---------data/xpwn/_metadata/libssl1.0.dep1
l---------data/xpwn/_metadata/openssl.dep1
-rw-r--r--data/xz/_metadata/depends_2
-rwxr-xr-xmake.sh3
-rwxr-xr-xpackage.sh21
393 files changed, 5977 insertions, 333 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000..281411653
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,8 @@
+/apt
+/apt-old
+/work
+/xtra
+/stat
+/debs
+/dest
+/overrides.txt
diff --git a/construct.sh b/construct.sh
index f31d1c5ca..aa3d1e400 100755
--- a/construct.sh
+++ b/construct.sh
@@ -8,6 +8,8 @@ PKG_RVSN=1
PKG_REPO="${PKG_BASE}/apt/"
+rm -rf "${PKG_BASE}/apt-old"
+cp -a "${PKG_REPO}" "${PKG_BASE}/apt-old"
rm -rf "${PKG_REPO}/debs/"
mkdir -p "${PKG_REPO}/debs/"
@@ -134,3 +136,5 @@ EOF
gpg -abs -o Release.gpg Release
popd
done
+
+diff -x Release.gpg -x Release -x Packages.xz -x Packages.bz2 -ur "${PKG_BASE}/apt-old/" "${PKG_REPO}"
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
index 8ebac625c..8ebac625c 100644
--- a/data/_apt7/apt-nito.tgz
+++ b/data/_apt/apt-nito.tgz
Binary files differ
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
new file mode 100644
index 000000000..8ebac625c
--- /dev/null
+++ b/data/_apt1.4/apt-nito.tgz
Binary files differ
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
new file mode 100644
index 000000000..72b140be8
--- /dev/null
+++ b/data/_apt7/apt_0.7.25.3.tar.gz
Binary files differ
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/_openssl0.9.8/Makefile b/data/_openssl0.9.8/Makefile
new file mode 100644
index 000000000..ff6ccaba0
--- /dev/null
+++ b/data/_openssl0.9.8/Makefile
@@ -0,0 +1,739 @@
+### Generated automatically from Makefile.org by Configure.
+
+##
+## Makefile for OpenSSL
+##
+
+VERSION=0.9.8zh
+MAJOR=0
+MINOR=9.8
+SHLIB_VERSION_NUMBER=0.9.8
+SHLIB_VERSION_HISTORY=
+SHLIB_MAJOR=0
+SHLIB_MINOR=9.8
+SHLIB_EXT=.$(SHLIB_MAJOR).$(SHLIB_MINOR).dylib
+PLATFORM=aarch64-apple-darwin17
+OPTIONS=-D__DARWIN_UNIX03 --prefix=/usr --openssldir=/usr/lib/ssl enable-shared no-camellia no-capieng no-cms no-gmp no-jpake no-krb5 no-mdc2 no-montasm no-rc5 no-rfc3779 no-seed no-zlib no-zlib-dynamic
+CONFIGURE_ARGS=-D__DARWIN_UNIX03 aarch64-apple-darwin17 --prefix=/usr --openssldir=/usr/lib/ssl shared
+SHLIB_TARGET=darwin-shared
+
+# HERE indicates where this Makefile lives. This can be used to indicate
+# where sub-Makefiles are expected to be. Currently has very limited usage,
+# and should probably not be bothered with at all.
+HERE=.
+
+# INSTALL_PREFIX is for package builders so that they can configure
+# for, say, /usr/ and yet have everything installed to /tmp/somedir/usr/.
+# Normally it is left empty.
+INSTALL_PREFIX=
+INSTALLTOP=/usr
+
+# Do not edit this manually. Use Configure --openssldir=DIR do change this!
+OPENSSLDIR=/usr/lib/ssl
+
+# NO_IDEA - Define to build without the IDEA algorithm
+# NO_RC4 - Define to build without the RC4 algorithm
+# NO_RC2 - Define to build without the RC2 algorithm
+# THREADS - Define when building with threads, you will probably also need any
+# system defines as well, i.e. _REENTERANT for Solaris 2.[34]
+# TERMIO - Define the termio terminal subsystem, needed if sgtty is missing.
+# TERMIOS - Define the termios terminal subsystem, Silicon Graphics.
+# LONGCRYPT - Define to use HPUX 10.x's long password modification to crypt(3).
+# DEVRANDOM - Give this the value of the 'random device' if your OS supports
+# one. 32 bytes will be read from this when the random
+# number generator is initalised.
+# SSL_FORBID_ENULL - define if you want the server to be not able to use the
+# NULL encryption ciphers.
+#
+# LOCK_DEBUG - turns on lots of lock debug output :-)
+# REF_CHECK - turn on some xyz_free() assertions.
+# REF_PRINT - prints some stuff on structure free.
+# CRYPTO_MDEBUG - turns on my 'memory leak' detecting stuff
+# MFUNC - Make all Malloc/Free/Realloc calls call
+# CRYPTO_malloc/CRYPTO_free/CRYPTO_realloc which can be setup to
+# call application defined callbacks via CRYPTO_set_mem_functions()
+# MD5_ASM needs to be defined to use the x86 assembler for MD5
+# SHA1_ASM needs to be defined to use the x86 assembler for SHA1
+# RMD160_ASM needs to be defined to use the x86 assembler for RIPEMD160
+# Do not define B_ENDIAN or L_ENDIAN if 'unsigned long' == 8. It must
+# equal 4.
+# PKCS1_CHECK - pkcs1 tests.
+
+CC= aarch64-apple-darwin17-gcc
+CFLAG= -fPIC -fno-common -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -D__DARWIN_UNIX03 -O3 -fomit-frame-pointer -fno-common
+DEPFLAG= -DOPENSSL_NO_CAMELLIA -DOPENSSL_NO_CAPIENG -DOPENSSL_NO_CMS -DOPENSSL_NO_GMP -DOPENSSL_NO_JPAKE -DOPENSSL_NO_MDC2 -DOPENSSL_NO_RC5 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_SEED
+PEX_LIBS= -Wl,-search_paths_first
+EX_LIBS=
+EXE_EXT=
+ARFLAGS=
+AR= ar $(ARFLAGS) r
+ARD=ar $(ARFLAGS) d
+RANLIB= aarch64-apple-darwin17-ranlib
+PERL= /opt/local/bin/perl5
+TAR= tar
+TARFLAGS= --no-recursion --record-size=10240
+MAKEDEPPROG=makedepend
+LIBDIR=lib
+
+# We let the C compiler driver to take care of .s files. This is done in
+# order to be excused from maintaining a separate set of architecture
+# dependent assembler flags. E.g. if you throw -mcpu=ultrasparc at SPARC
+# gcc, then the driver will automatically translate it to -xarch=v8plus
+# and pass it down to assembler.
+AS=$(CC) -c
+ASFLAG=$(CFLAG)
+
+# For x86 assembler: Set PROCESSOR to 386 if you want to support
+# the 80386.
+PROCESSOR=
+
+# CPUID module collects small commonly used assembler snippets
+CPUID_OBJ=
+BN_ASM= bn_asm.o
+DES_ENC= des_enc.o fcrypt_b.o
+AES_ASM_OBJ= aes_core.o aes_cbc.o
+BF_ENC= bf_enc.o
+CAST_ENC= c_enc.o
+RC4_ENC= rc4_enc.o rc4_skey.o
+RC5_ENC= rc5_enc.o
+MD5_ASM_OBJ=
+SHA1_ASM_OBJ=
+RMD160_ASM_OBJ=
+
+# KRB5 stuff
+KRB5_INCLUDES=
+LIBKRB5=
+
+# Zlib stuff
+ZLIB_INCLUDE=
+LIBZLIB=
+
+# This is the location of fipscanister.o and friends.
+# The FIPS module build will place it $(INSTALLTOP)/lib
+# but since $(INSTALLTOP) can only take the default value
+# when the module is built it will be in /usr/local/ssl/lib
+# $(INSTALLTOP) for this build make be different so hard
+# code the path.
+
+FIPSLIBDIR=/usr/local/ssl/fips-1.0/lib/
+
+# This is set to "y" if fipscanister.o is compiled internally as
+# opposed to coming from an external validated location.
+
+FIPSCANISTERINTERNAL=n
+
+# The location of the library which contains fipscanister.o
+# normally it will be libcrypto unless fipsdso is set in which
+# case it will be libfips. If not compiling in FIPS mode at all
+# this is empty making it a useful test for a FIPS compile.
+
+FIPSCANLIB=
+
+# Shared library base address. Currently only used on Windows.
+#
+
+BASEADDR=0xFB00000
+
+DIRS= crypto ssl engines apps test tools
+SHLIBDIRS= crypto ssl
+
+# dirs in crypto to build
+SDIRS= \
+ objects \
+ md2 md4 md5 sha hmac ripemd \
+ des aes rc2 rc4 idea bf cast \
+ bn ec rsa dsa ecdsa dh ecdh dso engine \
+ buffer bio stack lhash rand err \
+ evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp ocsp ui krb5 \
+ store pqueue
+# keep in mind that the above list is adjusted by ./Configure
+# according to no-xxx arguments...
+
+# tests to perform. "alltests" is a special word indicating that all tests
+# should be performed.
+TESTS = alltests
+
+MAKEFILE= Makefile
+
+MANDIR=$(OPENSSLDIR)/man
+MAN1=1
+MAN3=3
+MANSUFFIX=
+SHELL=/bin/sh
+
+TOP= .
+ONEDIRS=out tmp
+EDIRS= times doc bugs util include certs ms shlib mt demos perl sf dep VMS
+WDIRS= windows
+LIBS= libcrypto.a libssl.a
+SHARED_CRYPTO=libcrypto$(SHLIB_EXT)
+SHARED_SSL=libssl$(SHLIB_EXT)
+SHARED_FIPS=
+SHARED_LIBS=$(SHARED_FIPS) $(SHARED_CRYPTO) $(SHARED_SSL)
+SHARED_LIBS_LINK_EXTS=.$(SHLIB_MAJOR).dylib .dylib
+SHARED_LDFLAGS=-dynamiclib
+
+GENERAL= Makefile
+BASENAME= openssl
+NAME= $(BASENAME)-$(VERSION)
+TARFILE= $(NAME).tar
+WTARFILE= $(NAME)-win.tar
+EXHEADER= e_os2.h
+HEADER= e_os.h
+
+all: Makefile build_all openssl.pc libssl.pc libcrypto.pc
+
+# as we stick to -e, CLEARENV ensures that local variables in lower
+# Makefiles remain local and variable. $${VAR+VAR} is tribute to Korn
+# shell, which [annoyingly enough] terminates unset with error if VAR
+# is not present:-( TOP= && unset TOP is tribute to HP-UX /bin/sh,
+# which terminates unset with error if no variable was present:-(
+CLEARENV= TOP= && unset TOP $${LIB+LIB} $${LIBS+LIBS} \
+ $${INCLUDE+INCLUDE} $${INCLUDES+INCLUDES} \
+ $${DIR+DIR} $${DIRS+DIRS} $${SRC+SRC} \
+ $${LIBSRC+LIBSRC} $${LIBOBJ+LIBOBJ} $${ALL+ALL} \
+ $${EXHEADER+EXHEADER} $${HEADER+HEADER} \
+ $${GENERAL+GENERAL} $${CFLAGS+CFLAGS} \
+ $${ASFLAGS+ASFLAGS} $${AFLAGS+AFLAGS} \
+ $${LDCMD+LDCMD} $${LDFLAGS+LDFLAGS} \
+ $${SHAREDCMD+SHAREDCMD} $${SHAREDFLAGS+SHAREDFLAGS} \
+ $${SHARED_LIB+SHARED_LIB} $${LIBEXTRAS+LIBEXTRAS}
+
+BUILDENV= PLATFORM='${PLATFORM}' PROCESSOR='${PROCESSOR}' \
+ CC='${CC}' CFLAG='${CFLAG}' \
+ AS='${CC}' ASFLAG='${CFLAG} -c' \
+ AR='${AR}' PERL='${PERL}' RANLIB='${RANLIB}' \
+ SDIRS='${SDIRS}' LIBRPATH='${INSTALLTOP}/$(LIBDIR)' \
+ INSTALL_PREFIX='${INSTALL_PREFIX}' \
+ INSTALLTOP='${INSTALLTOP}' OPENSSLDIR='${OPENSSLDIR}' \
+ LIBDIR='${LIBDIR}' \
+ MAKEDEPEND='$$$${TOP}/util/domd $$$${TOP} -MD ${MAKEDEPPROG}' \
+ DEPFLAG='-DOPENSSL_NO_DEPRECATED ${DEPFLAG}' \
+ MAKEDEPPROG='${MAKEDEPPROG}' \
+ SHARED_LDFLAGS='${SHARED_LDFLAGS}' \
+ KRB5_INCLUDES='${KRB5_INCLUDES}' LIBKRB5='${LIBKRB5}' \
+ EXE_EXT='${EXE_EXT}' SHARED_LIBS='${SHARED_LIBS}' \
+ SHLIB_EXT='${SHLIB_EXT}' SHLIB_TARGET='${SHLIB_TARGET}' \
+ PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' \
+ CPUID_OBJ='${CPUID_OBJ}' \
+ BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' \
+ AES_ASM_OBJ='${AES_ASM_OBJ}' \
+ BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' \
+ RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' \
+ SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' \
+ MD5_ASM_OBJ='${MD5_ASM_OBJ}' \
+ RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' \
+ FIPSLIBDIR='${FIPSLIBDIR}' \
+ FIPSCANLIB="$${FIPSCANLIB:-$(FIPSCANLIB)}" \
+ FIPSCANISTERINTERNAL='${FIPSCANISTERINTERNAL}' \
+ FIPS_EX_OBJ='${FIPS_EX_OBJ}' \
+ THIS=$${THIS:-$@} MAKEFILE=Makefile MAKEOVERRIDES=
+# MAKEOVERRIDES= effectively "equalizes" GNU-ish and SysV-ish make flavors,
+# which in turn eliminates ambiguities in variable treatment with -e.
+
+# BUILD_CMD is a generic macro to build a given target in a given
+# subdirectory. The target must be given through the shell variable
+# `target' and the subdirectory to build in must be given through `dir'.
+# This macro shouldn't be used directly, use RECURSIVE_BUILD_CMD or
+# BUILD_ONE_CMD instead.
+#
+# BUILD_ONE_CMD is a macro to build a given target in a given
+# subdirectory if that subdirectory is part of $(DIRS). It requires
+# exactly the same shell variables as BUILD_CMD.
+#
+# RECURSIVE_BUILD_CMD is a macro to build a given target in all
+# subdirectories defined in $(DIRS). It requires that the target
+# is given through the shell variable `target'.
+BUILD_CMD= if [ -d "$$dir" ]; then \
+ ( [ $$target != all -a -z "$(FIPSCANLIB)" ] && FIPSCANLIB=/dev/null; \
+ cd $$dir && echo "making $$target in $$dir..." && \
+ $(CLEARENV) && $(MAKE) -e $(BUILDENV) TOP=.. DIR=$$dir $$target \
+ ) || exit 1; \
+ fi
+RECURSIVE_BUILD_CMD=for dir in $(DIRS); do $(BUILD_CMD); done
+BUILD_ONE_CMD=\
+ if echo " $(DIRS) " | grep " $$dir " >/dev/null 2>/dev/null; then \
+ $(BUILD_CMD); \
+ fi
+
+reflect:
+ @[ -n "$(THIS)" ] && $(CLEARENV) && $(MAKE) $(THIS) -e $(BUILDENV)
+
+FIPS_EX_OBJ= ../crypto/aes/aes_cfb.o \
+ ../crypto/aes/aes_ecb.o \
+ ../crypto/aes/aes_ofb.o \
+ ../crypto/bn/bn_add.o \
+ ../crypto/bn/bn_blind.o \
+ ../crypto/bn/bn_ctx.o \
+ ../crypto/bn/bn_div.o \
+ ../crypto/bn/bn_exp2.o \
+ ../crypto/bn/bn_exp.o \
+ ../crypto/bn/bn_gcd.o \
+ ../crypto/bn/bn_lib.o \
+ ../crypto/bn/bn_mod.o \
+ ../crypto/bn/bn_mont.o \
+ ../crypto/bn/bn_mul.o \
+ ../crypto/bn/bn_prime.o \
+ ../crypto/bn/bn_rand.o \
+ ../crypto/bn/bn_recp.o \
+ ../crypto/bn/bn_shift.o \
+ ../crypto/bn/bn_sqr.o \
+ ../crypto/bn/bn_word.o \
+ ../crypto/bn/bn_x931p.o \
+ ../crypto/buffer/buf_str.o \
+ ../crypto/cryptlib.o \
+ ../crypto/des/cfb64ede.o \
+ ../crypto/des/cfb64enc.o \
+ ../crypto/des/cfb_enc.o \
+ ../crypto/des/ecb3_enc.o \
+ ../crypto/des/ecb_enc.o \
+ ../crypto/des/ofb64ede.o \
+ ../crypto/des/ofb64enc.o \
+ ../crypto/des/fcrypt.o \
+ ../crypto/des/set_key.o \
+ ../crypto/dsa/dsa_utl.o \
+ ../crypto/dsa/dsa_sign.o \
+ ../crypto/dsa/dsa_vrf.o \
+ ../crypto/err/err.o \
+ ../crypto/evp/digest.o \
+ ../crypto/evp/enc_min.o \
+ ../crypto/evp/e_aes.o \
+ ../crypto/evp/e_des3.o \
+ ../crypto/evp/p_sign.o \
+ ../crypto/evp/p_verify.o \
+ ../crypto/mem_clr.o \
+ ../crypto/mem.o \
+ ../crypto/rand/md_rand.o \
+ ../crypto/rand/rand_egd.o \
+ ../crypto/rand/randfile.o \
+ ../crypto/rand/rand_lib.o \
+ ../crypto/rand/rand_os2.o \
+ ../crypto/rand/rand_unix.o \
+ ../crypto/rand/rand_win.o \
+ ../crypto/rsa/rsa_lib.o \
+ ../crypto/rsa/rsa_none.o \
+ ../crypto/rsa/rsa_oaep.o \
+ ../crypto/rsa/rsa_pk1.o \
+ ../crypto/rsa/rsa_pss.o \
+ ../crypto/rsa/rsa_ssl.o \
+ ../crypto/rsa/rsa_x931.o \
+ ../crypto/sha/sha1dgst.o \
+ ../crypto/sha/sha256.o \
+ ../crypto/sha/sha512.o \
+ ../crypto/uid.o
+
+sub_all: build_all
+build_all: build_libs build_apps build_tests build_tools
+
+build_libs: build_crypto build_fips build_ssl build_shared build_engines
+
+build_crypto:
+ if [ -n "$(FIPSCANLIB)" ]; then \
+ EXCL_OBJ='$(AES_ASM_OBJ) $(BN_ASM) $(DES_ENC) $(CPUID_OBJ) $(SHA1_ASM_OBJ) $(FIPS_EX_OBJ)' ; export EXCL_OBJ ; \
+ ARX='$(PERL) $${TOP}/util/arx.pl $(AR)' ; \
+ else \
+ ARX='${AR}' ; \
+ fi ; export ARX ; \
+ dir=crypto; target=all; $(BUILD_ONE_CMD)
+build_fips:
+ @dir=fips; target=all; [ -z "$(FIPSCANLIB)" ] || $(BUILD_ONE_CMD)
+build_ssl: build_crypto
+ @dir=ssl; target=all; $(BUILD_ONE_CMD)
+build_engines: build_crypto
+ @dir=engines; target=all; $(BUILD_ONE_CMD)
+build_apps: build_libs
+ @dir=apps; target=all; $(BUILD_ONE_CMD)
+build_tests: build_libs
+ @dir=test; target=all; $(BUILD_ONE_CMD)
+build_tools: build_libs
+ @dir=tools; target=all; $(BUILD_ONE_CMD)
+
+all_testapps: build_libs build_testapps
+build_testapps:
+ @dir=crypto; target=testapps; $(BUILD_ONE_CMD)
+
+build_shared: $(SHARED_LIBS)
+libcrypto$(SHLIB_EXT): libcrypto.a $(SHARED_FIPS)
+ @if [ "$(SHLIB_TARGET)" != "" ]; then \
+ if [ "$(FIPSCANLIB)" = "libfips" ]; then \
+ $(ARD) libcrypto.a fipscanister.o ; \
+ $(MAKE) SHLIBDIRS='crypto' SHLIBDEPS='-lfips' build-shared; \
+ $(AR) libcrypto.a fips/fipscanister.o ; \
+ else \
+ if [ "$(FIPSCANLIB)" = "libcrypto" ]; then \
+ FIPSLD_CC="$(CC)"; CC=fips/fipsld; \
+ export CC FIPSLD_CC; \
+ fi; \
+ $(MAKE) -e SHLIBDIRS='crypto' build-shared; \
+ fi \
+ else \
+ echo "There's no support for shared libraries on this platform" >&2; \
+ exit 1; \
+ fi
+
+libcrypto.a: build_crypto
+
+libssl.a: build_ssl
+
+libssl$(SHLIB_EXT): libcrypto$(SHLIB_EXT) libssl.a
+ @if [ "$(SHLIB_TARGET)" != "" ]; then \
+ shlibdeps=-lcrypto; \
+ [ "$(FIPSCANLIB)" = "libfips" ] && shlibdeps="$$shlibdeps -lfips"; \
+ $(MAKE) SHLIBDIRS=ssl SHLIBDEPS="$$shlibdeps" build-shared; \
+ else \
+ echo "There's no support for shared libraries on this platform" >&2 ; \
+ exit 1; \
+ fi
+
+fips/fipscanister.o: build_fips
+libfips$(SHLIB_EXT): fips/fipscanister.o
+ @if [ "$(SHLIB_TARGET)" != "" ]; then \
+ FIPSLD_CC="$(CC)"; CC=fips/fipsld; export CC FIPSLD_CC; \
+ $(MAKE) -f Makefile.shared -e $(BUILDENV) \
+ CC=$${CC} LIBNAME=fips THIS=$@ \
+ LIBEXTRAS=fips/fipscanister.o \
+ LIBDEPS="$(EX_LIBS)" \
+ LIBVERSION=${SHLIB_MAJOR}.${SHLIB_MINOR} \
+ link_o.$(SHLIB_TARGET) || { rm -f $@; exit 1; } \
+ else \
+ echo "There's no support for shared libraries on this platform" >&2; \
+ exit 1; \
+ fi
+
+libfips.a:
+ dir=fips; target=all; $(BUILD_ONE_CMD)
+
+clean-shared:
+ @set -e; for i in $(SHLIBDIRS); do \
+ if [ -n "$(SHARED_LIBS_LINK_EXTS)" ]; then \
+ tmp="$(SHARED_LIBS_LINK_EXTS)"; \
+ for j in $${tmp:-x}; do \
+ ( set -x; rm -f lib$$i$$j ); \
+ done; \
+ fi; \
+ ( set -x; rm -f lib$$i$(SHLIB_EXT) ); \
+ if [ "$(PLATFORM)" = "Cygwin" ]; then \
+ ( set -x; rm -f cyg$$i$(SHLIB_EXT) lib$$i$(SHLIB_EXT).a ); \
+ fi; \
+ done
+
+link-shared:
+ @ set -e; for i in ${SHLIBDIRS}; do \
+ $(MAKE) -f $(HERE)/Makefile.shared -e $(BUILDENV) \
+ LIBNAME=$$i LIBVERSION=${SHLIB_MAJOR}.${SHLIB_MINOR} \
+ LIBCOMPATVERSIONS=";${SHLIB_VERSION_HISTORY}" \
+ symlink.$(SHLIB_TARGET); \
+ libs="$$libs -l$$i"; \
+ done
+
+build-shared: do_$(SHLIB_TARGET) link-shared
+
+do_$(SHLIB_TARGET):
+ @ set -e; libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
+ if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
+ libs="$(LIBKRB5) $$libs"; \
+ fi; \
+ $(CLEARENV) && $(MAKE) -f Makefile.shared -e $(BUILDENV) \
+ LIBNAME=$$i LIBVERSION=${SHLIB_MAJOR}.${SHLIB_MINOR} \
+ LIBCOMPATVERSIONS=";${SHLIB_VERSION_HISTORY}" \
+ LIBDEPS="$$libs $(EX_LIBS)" \
+ link_a.$(SHLIB_TARGET); \
+ libs="-l$$i $$libs"; \
+ done
+
+libcrypto.pc: Makefile
+ @ ( echo 'prefix=$(INSTALLTOP)'; \
+ echo 'exec_prefix=$${prefix}'; \
+ echo 'libdir=$${exec_prefix}/$(LIBDIR)'; \
+ echo 'includedir=$${prefix}/include'; \
+ echo ''; \
+ echo 'Name: OpenSSL-libcrypto'; \
+ echo 'Description: OpenSSL cryptography library'; \
+ echo 'Version: '$(VERSION); \
+ echo 'Requires: '; \
+ echo 'Libs: -L$${libdir} -lcrypto $(EX_LIBS)'; \
+ echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > libcrypto.pc
+
+libssl.pc: Makefile
+ @ ( echo 'prefix=$(INSTALLTOP)'; \
+ echo 'exec_prefix=$${prefix}'; \
+ echo 'libdir=$${exec_prefix}/$(LIBDIR)'; \
+ echo 'includedir=$${prefix}/include'; \
+ echo ''; \
+ echo 'Name: OpenSSL'; \
+ echo 'Description: Secure Sockets Layer and cryptography libraries'; \
+ echo 'Version: '$(VERSION); \
+ echo 'Requires: '; \
+ echo 'Libs: -L$${libdir} -lssl -lcrypto $(EX_LIBS)'; \
+ echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > libssl.pc
+
+openssl.pc: Makefile
+ @ ( echo 'prefix=$(INSTALLTOP)'; \
+ echo 'exec_prefix=$${prefix}'; \
+ echo 'libdir=$${exec_prefix}/$(LIBDIR)'; \
+ echo 'includedir=$${prefix}/include'; \
+ echo ''; \
+ echo 'Name: OpenSSL'; \
+ echo 'Description: Secure Sockets Layer and cryptography libraries and tools'; \
+ echo 'Version: '$(VERSION); \
+ echo 'Requires: '; \
+ echo 'Libs: -L$${libdir} -lssl -lcrypto $(EX_LIBS)'; \
+ echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > openssl.pc
+
+Makefile: Makefile.org Configure config
+ @echo "Makefile is older than Makefile.org, Configure or config."
+ @echo "Reconfigure the source tree (via './config' or 'perl Configure'), please."
+ @false
+
+libclean:
+ rm -f *.map *.so *.so.* *.dll engines/*.so engines/*.dll *.a engines/*.a */lib */*/lib
+
+clean: libclean
+ rm -f shlib/*.o *.o core a.out fluff rehash.time testlog make.log cctest cctest.c
+ @set -e; target=clean; $(RECURSIVE_BUILD_CMD)
+ rm -f $(LIBS)
+ rm -f openssl.pc libssl.pc libcrypto.pc
+ rm -f speed.* .pure
+ rm -f $(TARFILE)
+ @set -e; for i in $(ONEDIRS) ;\
+ do \
+ rm -fr $$i/*; \
+ done
+
+makefile.one: files
+ $(PERL) util/mk1mf.pl >makefile.one; \
+ sh util/do_ms.sh
+
+files:
+ $(PERL) $(TOP)/util/files.pl Makefile > $(TOP)/MINFO
+ @set -e; target=files; $(RECURSIVE_BUILD_CMD)
+
+links:
+ @$(PERL) $(TOP)/util/mkdir-p.pl include/openssl
+ @$(PERL) $(TOP)/util/mklink.pl include/openssl $(EXHEADER)
+ @set -e; target=links; $(RECURSIVE_BUILD_CMD)
+ @if [ -z "$(FIPSCANLIB)" ]; then \
+ set -e; target=links; dir=fips ; $(BUILD_CMD) ; \
+ fi
+
+gentests:
+ @(cd test && echo "generating dummy tests (if needed)..." && \
+ $(CLEARENV) && $(MAKE) -e $(BUILDENV) TESTS='${TESTS}' OPENSSL_DEBUG_MEMORY=on generate );
+
+dclean:
+ rm -f *.bak
+ @set -e; target=dclean; $(RECURSIVE_BUILD_CMD)
+
+rehash: rehash.time
+rehash.time: certs apps
+ @if [ -z "$(CROSS_COMPILE)" ]; then \
+ (OPENSSL="`pwd`/util/opensslwrap.sh"; \
+ OPENSSL_DEBUG_MEMORY=on; \
+ export OPENSSL OPENSSL_DEBUG_MEMORY; \
+ $(PERL) tools/c_rehash certs) && \
+ touch rehash.time; \
+ fi
+
+test: tests
+
+tests: rehash
+ @(cd test && echo "testing..." && \
+ $(CLEARENV) && $(MAKE) -e $(BUILDENV) TOP=.. TESTS='${TESTS}' OPENSSL_DEBUG_MEMORY=on tests );
+ util/opensslwrap.sh version -a
+
+report:
+ @$(PERL) util/selftest.pl
+
+depend:
+ @set -e; target=depend; $(RECURSIVE_BUILD_CMD)
+
+lint:
+ @set -e; target=lint; $(RECURSIVE_BUILD_CMD)
+
+tags:
+ rm -f TAGS
+ find . -name '[^.]*.[ch]' | xargs etags -a
+
+errors:
+ $(PERL) util/mkerr.pl -recurse -write
+ (cd engines; $(MAKE) PERL=$(PERL) errors)
+ $(PERL) util/ck_errf.pl */*.c */*/*.c
+
+stacks:
+ $(PERL) util/mkstack.pl -write
+
+util/libeay.num::
+ $(PERL) util/mkdef.pl crypto update
+
+util/ssleay.num::
+ $(PERL) util/mkdef.pl ssl update
+
+crypto/objects/obj_dat.h: crypto/objects/obj_dat.pl crypto/objects/obj_mac.h
+ $(PERL) crypto/objects/obj_dat.pl crypto/objects/obj_mac.h crypto/objects/obj_dat.h
+crypto/objects/obj_mac.h: crypto/objects/objects.pl crypto/objects/objects.txt crypto/objects/obj_mac.num
+ $(PERL) crypto/objects/objects.pl crypto/objects/objects.txt crypto/objects/obj_mac.num crypto/objects/obj_mac.h
+
+apps/openssl-vms.cnf: apps/openssl.cnf
+ $(PERL) VMS/VMSify-conf.pl < apps/openssl.cnf > apps/openssl-vms.cnf
+
+crypto/bn/bn_prime.h: crypto/bn/bn_prime.pl
+ $(PERL) crypto/bn/bn_prime.pl >crypto/bn/bn_prime.h
+
+
+TABLE: Configure
+ (echo 'Output of `Configure TABLE'"':"; \
+ $(PERL) Configure TABLE) > TABLE
+
+update: errors stacks util/libeay.num util/ssleay.num crypto/objects/obj_dat.h apps/openssl-vms.cnf crypto/bn/bn_prime.h TABLE depend
+
+# Build distribution tar-file. As the list of files returned by "find" is
+# pretty long, on several platforms a "too many arguments" error or similar
+# would occur. Therefore the list of files is temporarily stored into a file
+# and read directly, requiring GNU-Tar. Call "make TAR=gtar dist" if the normal
+# tar does not support the --files-from option.
+TAR_COMMAND=$(TAR) $(TARFLAGS) --files-from ../$(TARFILE).list \
+ --owner openssl:0 --group openssl:0 \
+ --transform 's|^|openssl-$(VERSION)/|' \
+ -cvf -
+
+../$(TARFILE).list:
+ find * \! -name STATUS \! -name TABLE \! -name '*.o' \! -name '*.a' \
+ \! -name '*.so' \! -name '*.so.*' \! -name 'openssl' \
+ \! -name '*test' \! -name '.#*' \! -name '*~' \
+ | sort > ../$(TARFILE).list
+
+tar: ../$(TARFILE).list
+ find . -type d -print | xargs chmod 755
+ find . -type f -print | xargs chmod a+r
+ find . -type f -perm -0100 -print | xargs chmod a+x
+ $(TAR_COMMAND) | gzip --best >../$(TARFILE).gz
+ rm -f ../$(TARFILE).list
+ ls -l ../$(TARFILE).gz
+
+tar-snap: ../$(TARFILE).list
+ $(TAR_COMMAND) > ../$(TARFILE)
+ rm -f ../$(TARFILE).list
+ ls -l ../$(TARFILE)
+
+dist:
+ $(PERL) Configure dist
+ @$(MAKE) dist_pem_h
+ @$(MAKE) SDIRS='${SDIRS}' clean
+ @$(MAKE) TAR='${TAR}' TARFLAGS='${TARFLAGS}' tar
+
+dist_pem_h:
+ (cd crypto/pem; $(MAKE) -e $(BUILDENV) pem.h; $(MAKE) clean)
+
+install: all install_docs install_sw
+
+install_sw:
+ @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \
+ $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR) \
+ $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines \
+ $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig \
+ $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl \
+ $(INSTALL_PREFIX)$(OPENSSLDIR)/misc \
+ $(INSTALL_PREFIX)$(OPENSSLDIR)/certs \
+ $(INSTALL_PREFIX)$(OPENSSLDIR)/private
+ @set -e; headerlist="$(EXHEADER)"; for i in $$headerlist;\
+ do \
+ (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+ chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+ done;
+ @set -e; target=install; $(RECURSIVE_BUILD_CMD)
+ @set -e; for i in $(LIBS) ;\
+ do \
+ if [ -f "$$i" ]; then \
+ ( echo installing $$i; \
+ cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
+ $(RANLIB) $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
+ chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
+ mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i ); \
+ fi; \
+ done;
+ @set -e; if [ -n "$(SHARED_LIBS)" ]; then \
+ tmp="$(SHARED_LIBS)"; \
+ for i in $${tmp:-x}; \
+ do \
+ if [ -f "$$i" -o -f "$$i.a" ]; then \
+ ( echo installing $$i; \
+ if [ "$(PLATFORM)" != "Cygwin" ]; then \
+ cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
+ chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
+ mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i; \
+ else \
+ c=`echo $$i | sed 's/^lib\(.*\)\.dll\.a/cyg\1-$(SHLIB_VERSION_NUMBER).dll/'`; \
+ cp $$c $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \
+ chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \
+ mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c; \
+ cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
+ chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
+ mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i; \
+ fi ); \
+ fi; \
+ done; \
+ ( here="`pwd`"; \
+ cd $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR); \
+ $(MAKE) -f $$here/Makefile HERE="$$here" link-shared ); \
+ if [ "$(INSTALLTOP)" != "/usr" ]; then \
+ echo 'OpenSSL shared libraries have been installed in:'; \
+ echo ' $(INSTALLTOP)'; \
+ echo ''; \
+ sed -e '1,/^$$/d' doc/openssl-shared.txt; \
+ fi; \
+ fi
+ cp libcrypto.pc $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig
+ chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/libcrypto.pc
+ cp libssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig
+ chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/libssl.pc
+ cp openssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig
+ chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/openssl.pc
+
+install_docs:
+ @$(PERL) $(TOP)/util/mkdir-p.pl \
+ $(INSTALL_PREFIX)$(MANDIR)/man1 \
+ $(INSTALL_PREFIX)$(MANDIR)/man3 \
+ $(INSTALL_PREFIX)$(MANDIR)/man5 \
+ $(INSTALL_PREFIX)$(MANDIR)/man7
+ @pod2man="`cd ./util; ./pod2mantest $(PERL)`"; \
+ here="`pwd`"; \
+ filecase=; \
+ if [ "$(PLATFORM)" = "DJGPP" -o "$(PLATFORM)" = "Cygwin" -o "$(PLATFORM)" = "mingw" ]; then \
+ filecase=-i; \
+ fi; \
+ set -e; for i in doc/apps/*.pod; do \
+ fn=`basename $$i .pod`; \
+ sec=`$(PERL) util/extract-section.pl 1 < $$i`; \
+ echo "installing man$$sec/$$fn.$${sec}$(MANSUFFIX)"; \
+ (cd `$(PERL) util/dirname.pl $$i`; \
+ sh -c "$$pod2man \
+ --section=$$sec --center=OpenSSL \
+ --release=$(VERSION) `basename $$i`") \
+ > $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \
+ $(PERL) util/extract-names.pl < $$i | \
+ (grep -v $$filecase "^$$fn\$$"; true) | \
+ (grep -v "[ ]"; true) | \
+ (cd $(INSTALL_PREFIX)$(MANDIR)/man$$sec/; \
+ while read n; do \
+ $$here/util/point.sh $$fn.$${sec}$(MANSUFFIX) "$$n".$${sec}$(MANSUFFIX); \
+ done); \
+ done; \
+ set -e; for i in doc/crypto/*.pod doc/ssl/*.pod; do \
+ fn=`basename $$i .pod`; \
+ sec=`$(PERL) util/extract-section.pl 3 < $$i`; \
+ echo "installing man$$sec/$$fn.$${sec}$(MANSUFFIX)"; \
+ (cd `$(PERL) util/dirname.pl $$i`; \
+ sh -c "$$pod2man \
+ --section=$$sec --center=OpenSSL \
+ --release=$(VERSION) `basename $$i`") \
+ > $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \
+ $(PERL) util/extract-names.pl < $$i | \
+ (grep -v $$filecase "^$$fn\$$"; true) | \
+ (grep -v "[ ]"; true) | \
+ (cd $(INSTALL_PREFIX)$(MANDIR)/man$$sec/; \
+ while read n; do \
+ $$here/util/point.sh $$fn.$${sec}$(MANSUFFIX) "$$n".$${sec}$(MANSUFFIX); \
+ done); \
+ done
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
diff --git a/data/_openssl0.9.8/_metadata/description b/data/_openssl0.9.8/_metadata/description
new file mode 100644
index 000000000..3750ad4db
--- /dev/null
+++ b/data/_openssl0.9.8/_metadata/description
@@ -0,0 +1 @@
+SSL library and cryptographic tools
diff --git a/data/apt7/_metadata/in.1443.00 b/data/_openssl0.9.8/_metadata/in.1443.00
index e69de29bb..e69de29bb 100644
--- a/data/apt7/_metadata/in.1443.00
+++ b/data/_openssl0.9.8/_metadata/in.1443.00
diff --git a/data/_openssl0.9.8/_metadata/license b/data/_openssl0.9.8/_metadata/license
new file mode 100644
index 000000000..ff99d9724
--- /dev/null
+++ b/data/_openssl0.9.8/_metadata/license
@@ -0,0 +1,127 @@
+
+ LICENSE ISSUES
+ ==============
+
+ The OpenSSL toolkit stays under a dual license, i.e. both the conditions of
+ the OpenSSL License and the original SSLeay license apply to the toolkit.
+ See below for the actual license texts. Actually both licenses are BSD-style
+ Open Source licenses. In case of any license issues related to OpenSSL
+ please contact openssl-core@openssl.org.
+
+ OpenSSL License
+ ---------------
+
+/* ====================================================================
+ * Copyright (c) 1998-2007 The OpenSSL Project. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. All advertising materials mentioning features or use of this
+ * software must display the following acknowledgment:
+ * "This product includes software developed by the OpenSSL Project
+ * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
+ *
+ * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ * endorse or promote products derived from this software without
+ * prior written permission. For written permission, please contact
+ * openssl-core@openssl.org.
+ *
+ * 5. Products derived from this software may not be called "OpenSSL"
+ * nor may "OpenSSL" appear in their names without prior written
+ * permission of the OpenSSL Project.
+ *
+ * 6. Redistributions of any form whatsoever must retain the following
+ * acknowledgment:
+ * "This product includes software developed by the OpenSSL Project
+ * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+ * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This product includes cryptographic software written by Eric Young
+ * (eay@cryptsoft.com). This product includes software written by Tim
+ * Hudson (tjh@cryptsoft.com).
+ *
+ */
+
+ Original SSLeay License
+ -----------------------
+
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
+ * All rights reserved.
+ *
+ * This package is an SSL implementation written
+ * by Eric Young (eay@cryptsoft.com).
+ * The implementation was written so as to conform with Netscapes SSL.
+ *
+ * This library is free for commercial and non-commercial use as long as
+ * the following conditions are aheared to. The following conditions
+ * apply to all code found in this distribution, be it the RC4, RSA,
+ * lhash, DES, etc., code; not just the SSL code. The SSL documentation
+ * included with this distribution is covered by the same copyright terms
+ * except that the holder is Tim Hudson (tjh@cryptsoft.com).
+ *
+ * Copyright remains Eric Young's, and as such any Copyright notices in
+ * the code are not to be removed.
+ * If this package is used in a product, Eric Young should be given attribution
+ * as the author of the parts of the library used.
+ * This can be in the form of a textual message at program startup or
+ * in documentation (online or textual) provided with the package.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * "This product includes cryptographic software written by
+ * Eric Young (eay@cryptsoft.com)"
+ * The word 'cryptographic' can be left out if the rouines from the library
+ * being used are not cryptographic related :-).
+ * 4. If you include any Windows specific code (or a derivative thereof) from
+ * the apps directory (application code) you must include an acknowledgement:
+ * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
+ *
+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * The licence and distribution terms for any publically available version or
+ * derivative of this code cannot be changed. i.e. this code cannot simply be
+ * copied and put under another distribution licence
+ * [including the GNU Public Licence.]
+ */
+
diff --git a/data/_openssl0.9.8/_metadata/maintainer b/data/_openssl0.9.8/_metadata/maintainer
new file mode 120000
index 000000000..0fa66e077
--- /dev/null
+++ b/data/_openssl0.9.8/_metadata/maintainer
@@ -0,0 +1 @@
+../../../people/saurik \ No newline at end of file
diff --git a/data/_openssl0.9.8/_metadata/name b/data/_openssl0.9.8/_metadata/name
new file mode 100644
index 000000000..effce34b6
--- /dev/null
+++ b/data/_openssl0.9.8/_metadata/name
@@ -0,0 +1 @@
+OpenSSL
diff --git a/data/_openssl0.9.8/_metadata/priority b/data/_openssl0.9.8/_metadata/priority
new file mode 100644
index 000000000..a6a7b9cd7
--- /dev/null
+++ b/data/_openssl0.9.8/_metadata/priority
@@ -0,0 +1 @@
+standard
diff --git a/data/_openssl0.9.8/_metadata/role b/data/_openssl0.9.8/_metadata/role
new file mode 100644
index 000000000..8d0320866
--- /dev/null
+++ b/data/_openssl0.9.8/_metadata/role
@@ -0,0 +1 @@
+developer
diff --git a/data/_openssl0.9.8/_metadata/section b/data/_openssl0.9.8/_metadata/section
new file mode 100644
index 000000000..4b487b7d5
--- /dev/null
+++ b/data/_openssl0.9.8/_metadata/section
@@ -0,0 +1 @@
+Security
diff --git a/data/_openssl0.9.8/_metadata/tags b/data/_openssl0.9.8/_metadata/tags
new file mode 100644
index 000000000..a8928cec8
--- /dev/null
+++ b/data/_openssl0.9.8/_metadata/tags
@@ -0,0 +1 @@
+purpose::library
diff --git a/data/_openssl0.9.8/_metadata/version b/data/_openssl0.9.8/_metadata/version
new file mode 100644
index 000000000..0833830a9
--- /dev/null
+++ b/data/_openssl0.9.8/_metadata/version
@@ -0,0 +1 @@
+0.9.8zh
diff --git a/data/_openssl0.9.8/engines-path.diff b/data/_openssl0.9.8/engines-path.diff
new file mode 100644
index 000000000..c032834df
--- /dev/null
+++ b/data/_openssl0.9.8/engines-path.diff
@@ -0,0 +1,54 @@
+diff -ur openssl-0.9.8zh/Configure openssl-0.9.8zh+iPhone/Configure
+--- openssl-0.9.8zh/Configure 2015-12-03 04:59:07.000000000 -1000
++++ openssl-0.9.8zh+iPhone/Configure 2018-12-10 10:00:55.000000000 -1000
+@@ -1700,7 +1700,7 @@
+ # $foo is to become "$prefix/lib$multilib/engines";
+ # as Makefile.org and engines/Makefile are adapted for
+ # $multilib suffix.
+- my $foo = "$prefix/lib/engines";
++ my $foo = "$prefix/lib/engines-0.9.8";
+ $foo =~ s/\\/\\\\/g;
+ print OUT "#define ENGINESDIR \"$foo\"\n";
+ }
+diff -ur openssl-0.9.8zh/Makefile.org openssl-0.9.8zh+iPhone/Makefile.org
+--- openssl-0.9.8zh/Makefile.org 2015-12-03 04:59:07.000000000 -1000
++++ openssl-0.9.8zh+iPhone/Makefile.org 2018-12-10 10:00:01.000000000 -1000
+@@ -623,7 +623,7 @@
+ install_sw:
+ @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \
+ $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR) \
+- $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines \
++ $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines-0.9.8 \
+ $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig \
+ $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl \
+ $(INSTALL_PREFIX)$(OPENSSLDIR)/misc \
+diff -ur openssl-0.9.8zh/engines/Makefile openssl-0.9.8zh+iPhone/engines/Makefile
+--- openssl-0.9.8zh/engines/Makefile 2015-12-03 05:00:15.000000000 -1000
++++ openssl-0.9.8zh+iPhone/engines/Makefile 2018-12-10 10:00:01.000000000 -1000
+@@ -92,7 +92,7 @@
+ @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+ @if [ -n "$(SHARED_LIBS)" ]; then \
+ set -e; \
+- $(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/lib/engines; \
++ $(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/lib/engines-0.9.8; \
+ for l in $(LIBNAMES); do \
+ ( echo installing $$l; \
+ if [ "$(PLATFORM)" != "Cygwin" ]; then \
+@@ -101,13 +101,13 @@
+ *DSO_DL*) sfx="sl";; \
+ *) sfx="bad";; \
+ esac; \
+- cp lib$$l.$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/lib$$l.$$sfx.new; \
++ cp lib$$l.$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines-0.9.8/lib$$l.$$sfx.new; \
+ else \
+ sfx="so"; \
+- cp cyg$$l.dll $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/lib$$l.$$sfx.new; \
++ cp cyg$$l.dll $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines-0.9.8/lib$$l.$$sfx.new; \
+ fi; \
+- chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/lib$$l.$$sfx.new; \
+- mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/lib$$l.$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/lib$$l.$$sfx ); \
++ chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines-0.9.8/lib$$l.$$sfx.new; \
++ mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines-0.9.8/lib$$l.$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines-0.9.8/lib$$l.$$sfx ); \
+ done; \
+ fi
+
diff --git a/data/_openssl0.9.8/iphoneos.diff b/data/_openssl0.9.8/iphoneos.diff
new file mode 100644
index 000000000..48569a923
--- /dev/null
+++ b/data/_openssl0.9.8/iphoneos.diff
@@ -0,0 +1,31 @@
+diff -ur openssl-0.9.8zc/Configure openssl-0.9.8zc+iPhone/Configure
+--- openssl-0.9.8zc/Configure 2014-10-15 02:45:00.000000000 -1000
++++ openssl-0.9.8zc+iPhone/Configure 2018-12-10 08:55:55.000000000 -1000
+@@ -534,6 +534,13 @@
+ "darwin64-x86_64-cc","cc:-arch x86_64 -O3 -fomit-frame-pointer -DL_ENDIAN -DMD32_REG_T=int -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-arch x86_64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
+ "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::osx_ppc32.o::::::::::dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
+
++##### iPhoneOS
++"darwin-arm-gcc","arm-apple-darwin-gcc:-arch arm -O3 -fomit-frame-pointer -fno-common::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-arch arm -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib:arm-apple-darwin-ranlib",
++"darwin8-arm-gcc","arm-apple-darwin8-gcc:-O3 -fomit-frame-pointer -fno-common::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-arch arm -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib:arm-apple-darwin8-ranlib",
++"darwin9-arm-gcc","arm-apple-darwin9-gcc:-O3 -fomit-frame-pointer -fno-common::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-arch arm -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib:arm-apple-darwin9-ranlib",
++"arm-apple-darwin11","arm-apple-darwin11-gcc:-O3 -fomit-frame-pointer -fno-common::-D_REENTRANT:MACOSX:-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-ranlib",
++"aarch64-apple-darwin17","aarch64-apple-darwin17-gcc:-O3 -fomit-frame-pointer -fno-common::-D_REENTRANT:MACOSX:-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-ranlib",
++
+ ##### A/UX
+ "aux3-gcc","gcc:-O2 -DTERMIO::(unknown):AUX:-lbsd:RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:::",
+
+diff -ur openssl-0.9.8zc/config openssl-0.9.8zc+iPhone/config
+--- openssl-0.9.8zc/config 2014-10-15 02:45:00.000000000 -1000
++++ openssl-0.9.8zc+iPhone/config 2018-12-10 08:57:55.000000000 -1000
+@@ -525,6 +525,10 @@
+ ppc-apple-rhapsody) OUT="rhapsody-ppc-cc" ;;
+ ppc-apple-darwin*) OUT="darwin-ppc-cc" ;;
+ i386-apple-darwin*) OUT="darwin-i386-cc" ;;
++ arm-apple-darwin11)
++ OUT="iphoneos-arm" ;;
++ aarch64-apple-darwin17)
++ OUT="iphoneos-arm" ;;
+ alpha-*-linux2)
+ ISA=`awk '/cpu model/{print$4;exit(0);}' /proc/cpuinfo`
+ case ${ISA:-generic} in
diff --git a/data/_openssl0.9.8/make.sh b/data/_openssl0.9.8/make.sh
new file mode 100644
index 000000000..090177bac
--- /dev/null
+++ b/data/_openssl0.9.8/make.sh
@@ -0,0 +1,8 @@
+pkg:setup
+./Configure -D__DARWIN_UNIX03 "${PKG_TARG}" --prefix=/usr --openssldir=/usr/lib/ssl shared
+make -j16 AR="${PKG_TARG}-ar -r"
+make install_sw INSTALL_PREFIX="${PKG_DEST}"
+pkg: mkdir -p /etc/ssl
+mv "${PKG_DEST}"/usr/lib/ssl/{certs,openssl.cnf,private} "${PKG_DEST}"/etc/ssl
+ln -s /etc/ssl/{certs,openssl.cnf,private} "${PKG_DEST}"/usr/lib/ssl
+rm -rf "${PKG_DEST}"/usr/lib/*.a
diff --git a/data/_openssl0.9.8/openssl-0.9.8zh.tar.gz b/data/_openssl0.9.8/openssl-0.9.8zh.tar.gz
new file mode 100644
index 000000000..2b4050da6
--- /dev/null
+++ b/data/_openssl0.9.8/openssl-0.9.8zh.tar.gz
Binary files differ
diff --git a/data/_openssl0.9.8/parallel.diff b/data/_openssl0.9.8/parallel.diff
new file mode 100644
index 000000000..177eed429
--- /dev/null
+++ b/data/_openssl0.9.8/parallel.diff
@@ -0,0 +1,14 @@
+diff -ur openssl-0.9.8zh/Makefile.org openssl-0.9.8zc+iPhone/Makefile.org
+--- openssl-0.9.8zh/Makefile.org 2014-10-15 02:45:00.000000000 -1000
++++ openssl-0.9.8zh+iPhone/Makefile.org 2018-12-10 08:55:55.000000000 -1000
+@@ -371,6 +371,10 @@
+ exit 1; \
+ fi
+
++libcrypto.a: build_crypto
++
++libssl.a: build_ssl
++
+ libssl$(SHLIB_EXT): libcrypto$(SHLIB_EXT) libssl.a
+ @if [ "$(SHLIB_TARGET)" != "" ]; then \
+ shlibdeps=-lcrypto; \
diff --git a/data/_openssl0.9.8/timestamp.diff b/data/_openssl0.9.8/timestamp.diff
new file mode 100644
index 000000000..f1e61a446
--- /dev/null
+++ b/data/_openssl0.9.8/timestamp.diff
@@ -0,0 +1,11 @@
+diff -ru openssl-0.9.8g/crypto/Makefile openssl-0.9.8g+iPhone/crypto/Makefile
+--- openssl-0.9.8g/crypto/Makefile 2006-02-04 01:48:41.000000000 +0000
++++ openssl-0.9.8g+iPhone/crypto/Makefile 2008-06-17 20:45:57.000000000 +0000
+@@ -54,7 +54,6 @@
+ echo ' /* auto-generated by crypto/Makefile for crypto/cversion.c */'; \
+ echo ' #define CFLAGS "$(CC) $(CFLAG)"'; \
+ echo ' #define PLATFORM "$(PLATFORM)"'; \
+- echo " #define DATE \"`LC_ALL=C LC_TIME=C date`\""; \
+ echo '#endif' ) >buildinf.h
+
+ x86cpuid-elf.s: x86cpuid.pl perlasm/x86asm.pl
diff --git a/data/_openssl1.0/_metadata/depends b/data/_openssl1.0/_metadata/depends
new file mode 100644
index 000000000..a779e5d04
--- /dev/null
+++ b/data/_openssl1.0/_metadata/depends
@@ -0,0 +1 @@
+ca-certificates
diff --git a/data/_openssl1.0/_metadata/description b/data/_openssl1.0/_metadata/description
new file mode 100644
index 000000000..3750ad4db
--- /dev/null
+++ b/data/_openssl1.0/_metadata/description
@@ -0,0 +1 @@
+SSL library and cryptographic tools
diff --git a/data/_openssl1.0/_metadata/in.1443.00 b/data/_openssl1.0/_metadata/in.1443.00
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/data/_openssl1.0/_metadata/in.1443.00
diff --git a/data/_openssl1.0/_metadata/license b/data/_openssl1.0/_metadata/license
new file mode 100644
index 000000000..ff99d9724
--- /dev/null
+++ b/data/_openssl1.0/_metadata/license
@@ -0,0 +1,127 @@
+
+ LICENSE ISSUES
+ ==============
+
+ The OpenSSL toolkit stays under a dual license, i.e. both the conditions of
+ the OpenSSL License and the original SSLeay license apply to the toolkit.
+ See below for the actual license texts. Actually both licenses are BSD-style
+ Open Source licenses. In case of any license issues related to OpenSSL
+ please contact openssl-core@openssl.org.
+
+ OpenSSL License
+ ---------------
+
+/* ====================================================================
+ * Copyright (c) 1998-2007 The OpenSSL Project. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. All advertising materials mentioning features or use of this
+ * software must display the following acknowledgment:
+ * "This product includes software developed by the OpenSSL Project
+ * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
+ *
+ * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ * endorse or promote products derived from this software without
+ * prior written permission. For written permission, please contact
+ * openssl-core@openssl.org.
+ *
+ * 5. Products derived from this software may not be called "OpenSSL"
+ * nor may "OpenSSL" appear in their names without prior written
+ * permission of the OpenSSL Project.
+ *
+ * 6. Redistributions of any form whatsoever must retain the following
+ * acknowledgment:
+ * "This product includes software developed by the OpenSSL Project
+ * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+ * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This product includes cryptographic software written by Eric Young
+ * (eay@cryptsoft.com). This product includes software written by Tim
+ * Hudson (tjh@cryptsoft.com).
+ *
+ */
+
+ Original SSLeay License
+ -----------------------
+
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
+ * All rights reserved.
+ *
+ * This package is an SSL implementation written
+ * by Eric Young (eay@cryptsoft.com).
+ * The implementation was written so as to conform with Netscapes SSL.
+ *
+ * This library is free for commercial and non-commercial use as long as
+ * the following conditions are aheared to. The following conditions
+ * apply to all code found in this distribution, be it the RC4, RSA,
+ * lhash, DES, etc., code; not just the SSL code. The SSL documentation
+ * included with this distribution is covered by the same copyright terms
+ * except that the holder is Tim Hudson (tjh@cryptsoft.com).
+ *
+ * Copyright remains Eric Young's, and as such any Copyright notices in
+ * the code are not to be removed.
+ * If this package is used in a product, Eric Young should be given attribution
+ * as the author of the parts of the library used.
+ * This can be in the form of a textual message at program startup or
+ * in documentation (online or textual) provided with the package.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * "This product includes cryptographic software written by
+ * Eric Young (eay@cryptsoft.com)"
+ * The word 'cryptographic' can be left out if the rouines from the library
+ * being used are not cryptographic related :-).
+ * 4. If you include any Windows specific code (or a derivative thereof) from
+ * the apps directory (application code) you must include an acknowledgement:
+ * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
+ *
+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * The licence and distribution terms for any publically available version or
+ * derivative of this code cannot be changed. i.e. this code cannot simply be
+ * copied and put under another distribution licence
+ * [including the GNU Public Licence.]
+ */
+
diff --git a/data/_openssl1.0/_metadata/maintainer b/data/_openssl1.0/_metadata/maintainer
new file mode 120000
index 000000000..573d7ebef
--- /dev/null
+++ b/data/_openssl1.0/_metadata/maintainer
@@ -0,0 +1 @@
+../../../people/sbingner \ No newline at end of file
diff --git a/data/_openssl1.0/_metadata/name b/data/_openssl1.0/_metadata/name
new file mode 100644
index 000000000..effce34b6
--- /dev/null
+++ b/data/_openssl1.0/_metadata/name
@@ -0,0 +1 @@
+OpenSSL
diff --git a/data/_openssl1.0/_metadata/priority b/data/_openssl1.0/_metadata/priority
new file mode 100644
index 000000000..a6a7b9cd7
--- /dev/null
+++ b/data/_openssl1.0/_metadata/priority
@@ -0,0 +1 @@
+standard
diff --git a/data/_openssl1.0/_metadata/role b/data/_openssl1.0/_metadata/role
new file mode 100644
index 000000000..8d0320866
--- /dev/null
+++ b/data/_openssl1.0/_metadata/role
@@ -0,0 +1 @@
+developer
diff --git a/data/_openssl1.0/_metadata/section b/data/_openssl1.0/_metadata/section
new file mode 100644
index 000000000..4b487b7d5
--- /dev/null
+++ b/data/_openssl1.0/_metadata/section
@@ -0,0 +1 @@
+Security
diff --git a/data/_openssl1.0/_metadata/tags b/data/_openssl1.0/_metadata/tags
new file mode 100644
index 000000000..a8928cec8
--- /dev/null
+++ b/data/_openssl1.0/_metadata/tags
@@ -0,0 +1 @@
+purpose::library
diff --git a/data/_openssl1.0/_metadata/version b/data/_openssl1.0/_metadata/version
new file mode 100644
index 000000000..688126b53
--- /dev/null
+++ b/data/_openssl1.0/_metadata/version
@@ -0,0 +1 @@
+1.0.2q
diff --git a/data/_openssl1.0/engines-path.diff b/data/_openssl1.0/engines-path.diff
new file mode 100644
index 000000000..08659af8c
--- /dev/null
+++ b/data/_openssl1.0/engines-path.diff
@@ -0,0 +1,83 @@
+diff -ur openssl-1.0.2q/Configure openssl-1.0.2q+iPhone/Configure
+--- openssl-1.0.2q/Configure 2018-11-20 03:44:48.000000000 -1000
++++ openssl-1.0.2q+iPhone/Configure 2018-12-09 21:49:24.000000000 -1000
+@@ -1939,7 +1939,7 @@
+ }
+ elsif (/^#define\s+ENGINESDIR/)
+ {
+- my $foo = "$prefix/$libdir/engines";
++ my $foo = "$prefix/$libdir/engines-1.0";
+ $foo =~ s/\\/\\\\/g;
+ print OUT "#define ENGINESDIR \"$foo\"\n";
+ }
+diff -ur openssl-1.0.2q/Makefile.org openssl-1.0.2q+iPhone/Makefile.org
+--- openssl-1.0.2q/Makefile.org 2018-11-20 03:44:48.000000000 -1000
++++ openssl-1.0.2q+iPhone/Makefile.org 2018-12-09 21:49:24.000000000 -1000
+@@ -545,7 +545,7 @@
+ install_sw:
+ @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \
+ $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR) \
+- $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines \
++ $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines-1.0 \
+ $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig \
+ $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl \
+ $(INSTALL_PREFIX)$(OPENSSLDIR)/misc \
+diff -ur openssl-1.0.2q/engines/Makefile openssl-1.0.2q+iPhone/engines/Makefile
+--- openssl-1.0.2q/engines/Makefile 2018-11-20 03:44:49.000000000 -1000
++++ openssl-1.0.2q+iPhone/engines/Makefile 2018-12-09 21:50:10.000000000 -1000
+@@ -107,13 +107,13 @@
+ @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+ @if [ -n "$(SHARED_LIBS)" ]; then \
+ set -e; \
+- $(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines; \
++ $(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines-1.0; \
+ for l in $(LIBNAMES); do \
+ ( echo installing $$l; \
+ pfx=lib; \
+ if expr "$(PLATFORM)" : "Cygwin" >/dev/null; then \
+ sfx=".so"; \
+- cp cyg$$l.dll $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \
++ cp cyg$$l.dll $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines-1.0/$$pfx$$l$$sfx.new; \
+ else \
+ case "$(CFLAGS)" in \
+ *DSO_BEOS*) sfx=".so";; \
+@@ -122,10 +122,10 @@
+ *DSO_WIN32*) sfx="eay32.dll"; pfx=;; \
+ *) sfx=".bad";; \
+ esac; \
+- cp $$pfx$$l$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \
++ cp $$pfx$$l$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines-1.0/$$pfx$$l$$sfx.new; \
+ fi; \
+- chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \
+- mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx ); \
++ chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines-1.0/$$pfx$$l$$sfx.new; \
++ mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines-1.0/$$pfx$$l$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines-1.0/$$pfx$$l$$sfx ); \
+ done; \
+ fi
+ @target=install; $(RECURSIVE_MAKE)
+diff -ur openssl-1.0.2q/engines/ccgost/Makefile openssl-1.0.2q+iPhone/engines/ccgost/Makefile
+--- openssl-1.0.2q/engines/ccgost/Makefile 2018-11-20 03:44:49.000000000 -1000
++++ openssl-1.0.2q+iPhone/engines/ccgost/Makefile 2018-12-09 21:50:45.000000000 -1000
+@@ -47,7 +47,7 @@
+ pfx=lib; \
+ if expr "$(PLATFORM)" : "Cygwin" >/dev/null; then \
+ sfx=".so"; \
+- cp cyg$(LIBNAME).dll $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx.new; \
++ cp cyg$(LIBNAME).dll $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines-1.0/$${pfx}$(LIBNAME)$$sfx.new; \
+ else \
+ case "$(CFLAGS)" in \
+ *DSO_BEOS*) sfx=".so";; \
+@@ -56,10 +56,10 @@
+ *DSO_WIN32*) sfx="eay32.dll"; pfx=;; \
+ *) sfx=".bad";; \
+ esac; \
+- cp $${pfx}$(LIBNAME)$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx.new; \
++ cp $${pfx}$(LIBNAME)$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines-1.0/$${pfx}$(LIBNAME)$$sfx.new; \
+ fi; \
+- chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx.new; \
+- mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx; \
++ chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines-1.0/$${pfx}$(LIBNAME)$$sfx.new; \
++ mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines-1.0/$${pfx}$(LIBNAME)$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines-1.0/$${pfx}$(LIBNAME)$$sfx; \
+ fi
+
+ links:
diff --git a/data/openssl/iphoneos.diff b/data/_openssl1.0/iphoneos.diff
index 62b171cf4..3e22940fd 100644
--- a/data/openssl/iphoneos.diff
+++ b/data/_openssl1.0/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/_openssl1.0/make.sh b/data/_openssl1.0/make.sh
new file mode 100644
index 000000000..d83b0e547
--- /dev/null
+++ b/data/_openssl1.0/make.sh
@@ -0,0 +1,11 @@
+pkg:setup
+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
+pkg: mkdir -p /etc/ssl
+mv "${PKG_DEST}"/usr/lib/ssl/{certs,openssl.cnf,private} "${PKG_DEST}"/etc/ssl
+ln -s /etc/ssl/{certs,openssl.cnf,private} "${PKG_DEST}"/usr/lib/ssl
+pkg: ln -s certs/cacert.pem /usr/lib/ssl/cert.pem
+rm -rf "${PKG_DEST}"/usr/lib/*.a
diff --git a/data/_openssl1.0/openssl-1.0.2q.tar.gz b/data/_openssl1.0/openssl-1.0.2q.tar.gz
new file mode 100644
index 000000000..26ca0019e
--- /dev/null
+++ b/data/_openssl1.0/openssl-1.0.2q.tar.gz
Binary files differ
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/apt-key/_metadata/in.1443.00 b/data/apt-key/_metadata/in.1443.00
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ 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
new file mode 100644
index 000000000..968dca7bd
--- /dev/null
+++ b/data/apt-rdepends/apt-rdepends-1.3.0.tar.bz2
Binary files differ
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/berkeleydb/_metadata/version b/data/berkeleydb/_metadata/version
index 1529b5150..d1c34fe6f 100644
--- a/data/berkeleydb/_metadata/version
+++ b/data/berkeleydb/_metadata/version
@@ -1 +1 @@
-4.6.21
+6.2.32
diff --git a/data/berkeleydb/case.diff b/data/berkeleydb/case.diff
deleted file mode 100644
index 2587fb6f5..000000000
--- a/data/berkeleydb/case.diff
+++ /dev/null
@@ -1,31 +0,0 @@
-diff -ru db-4.6.21/dist/aclocal/mutex.m4 db-4.6.21+iPhone/dist/aclocal/mutex.m4
---- db-4.6.21/dist/aclocal/mutex.m4 2007-05-18 15:08:50.000000000 +0000
-+++ db-4.6.21+iPhone/dist/aclocal/mutex.m4 2008-08-22 07:58:41.000000000 +0000
-@@ -534,21 +534,21 @@
- # Configure a pthreads-style mutex implementation.
- hybrid=pthread
- case "$db_cv_mutex" in
--POSIX/pthreads*) ADDITIONAL_OBJS="mut_pthread${o} $ADDITIONAL_OBJS"
-- AC_DEFINE(HAVE_MUTEX_PTHREADS)
-- AH_TEMPLATE(HAVE_MUTEX_PTHREADS,
-- [Define to 1 to use POSIX 1003.1 pthread_XXX mutexes.]);;
- POSIX/pthreads/private*)ADDITIONAL_OBJS="mut_pthread${o} $ADDITIONAL_OBJS"
- AC_DEFINE(HAVE_MUTEX_PTHREADS)
- AC_DEFINE(HAVE_MUTEX_THREAD_ONLY)
- AH_TEMPLATE(HAVE_MUTEX_THREAD_ONLY,
- [Define to 1 to configure mutexes intra-process only.]);;
--POSIX/pthreads/library*)ADDITIONAL_OBJS="mut_pthread${o} $ADDITIONAL_OBJS"
-- AC_DEFINE(HAVE_MUTEX_PTHREADS);;
- POSIX/pthreads/library/private*)
- ADDITIONAL_OBJS="mut_pthread${o} $ADDITIONAL_OBJS"
- AC_DEFINE(HAVE_MUTEX_PTHREADS)
- AC_DEFINE(HAVE_MUTEX_THREAD_ONLY);;
-+POSIX/pthreads/library*)ADDITIONAL_OBJS="mut_pthread${o} $ADDITIONAL_OBJS"
-+ AC_DEFINE(HAVE_MUTEX_PTHREADS);;
-+POSIX/pthreads*) ADDITIONAL_OBJS="mut_pthread${o} $ADDITIONAL_OBJS"
-+ AC_DEFINE(HAVE_MUTEX_PTHREADS)
-+ AH_TEMPLATE(HAVE_MUTEX_PTHREADS,
-+ [Define to 1 to use POSIX 1003.1 pthread_XXX mutexes.]);;
- Solaris/lwp*) ADDITIONAL_OBJS="mut_pthread${o} $ADDITIONAL_OBJS"
- AC_DEFINE(HAVE_MUTEX_SOLARIS_LWP)
- AH_TEMPLATE(HAVE_MUTEX_SOLARIS_LWP,
diff --git a/data/berkeleydb/db-4.6.21.tar.gz b/data/berkeleydb/db-4.6.21.tar.gz
deleted file mode 100644
index 47287abca..000000000
--- a/data/berkeleydb/db-4.6.21.tar.gz
+++ /dev/null
Binary files differ
diff --git a/data/berkeleydb/db-6.2.32.tar.gz b/data/berkeleydb/db-6.2.32.tar.gz
new file mode 100644
index 000000000..80380b32f
--- /dev/null
+++ b/data/berkeleydb/db-6.2.32.tar.gz
Binary files differ
diff --git a/data/bind/_metadata/libssl1.0.dep b/data/bind/_metadata/libssl1.0.dep
new file mode 120000
index 000000000..a501d00a8
--- /dev/null
+++ b/data/bind/_metadata/libssl1.0.dep
@@ -0,0 +1 @@
+../../libssl1.0 \ No newline at end of file
diff --git a/data/bind/_metadata/openssl.dep b/data/bind/_metadata/openssl.dep
deleted file mode 120000
index 9b58fd56b..000000000
--- a/data/bind/_metadata/openssl.dep
+++ /dev/null
@@ -1 +0,0 @@
-../../openssl \ No newline at end of file
diff --git a/data/bind/_metadata/version b/data/bind/_metadata/version
index c6452b21b..f456c0a21 100644
--- a/data/bind/_metadata/version
+++ b/data/bind/_metadata/version
@@ -1 +1 @@
-9.11.4
+9.11.5
diff --git a/data/bind/bind-9.11.4.tar.gz b/data/bind/bind-9.11.5.tar.gz
index 0015037f4..83752448a 100644
--- a/data/bind/bind-9.11.4.tar.gz
+++ b/data/bind/bind-9.11.5.tar.gz
Binary files differ
diff --git a/data/bind/make.sh b/data/bind/make.sh
index 5599e8212..bfbd90d4b 100644
--- a/data/bind/make.sh
+++ b/data/bind/make.sh
@@ -1,4 +1,4 @@
pkg:setup
-pkg:configure --with-randomdev=/dev/random BUILD_CC=gcc --with-openssl="$(PKG_DEST_ openssl)/usr" --with-ecdsa=no --with-gost=no --with-eddsa=no --with-libxml2=no --with-zlib="${PKG_ROOT}/usr" --with-gssapi=no
+pkg:configure --with-randomdev=/dev/random BUILD_CC=gcc --with-openssl="$(PKG_DEST_ _openssl1.0)/usr" --with-ecdsa=no --with-gost=no --with-eddsa=no --with-libxml2=no --with-zlib="${PKG_ROOT}/usr" --with-gssapi=no
make -j8 CFLAGS="${CFLAGS} -DNO_VERSION_DATE"
pkg:install
diff --git a/data/curl/_metadata/in.550.58 b/data/curl/_metadata/in.550.58
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/data/curl/_metadata/in.550.58
diff --git a/data/curl/_metadata/libssl1.0.dep b/data/curl/_metadata/libssl1.0.dep
new file mode 120000
index 000000000..a501d00a8
--- /dev/null
+++ b/data/curl/_metadata/libssl1.0.dep
@@ -0,0 +1 @@
+../../libssl1.0 \ No newline at end of file
diff --git a/data/curl/_metadata/openssl.dep b/data/curl/_metadata/openssl.dep
deleted file mode 120000
index 9b58fd56b..000000000
--- a/data/curl/_metadata/openssl.dep
+++ /dev/null
@@ -1 +0,0 @@
-../../openssl \ No newline at end of file
diff --git a/data/curl/_metadata/version b/data/curl/_metadata/version
index 4a41042a4..3fa542c1e 100644
--- a/data/curl/_metadata/version
+++ b/data/curl/_metadata/version
@@ -1 +1 @@
-7.61.0
+7.62.0
diff --git a/data/curl/curl-7.61.0.tar.xz b/data/curl/curl-7.61.0.tar.xz
deleted file mode 100644
index f0ab97141..000000000
--- a/data/curl/curl-7.61.0.tar.xz
+++ /dev/null
Binary files differ
diff --git a/data/curl/curl-7.62.0.tar.xz b/data/curl/curl-7.62.0.tar.xz
new file mode 100644
index 000000000..cd9a67d82
--- /dev/null
+++ b/data/curl/curl-7.62.0.tar.xz
Binary files differ
diff --git a/data/diskdev-cmds/_metadata/version b/data/diskdev-cmds/_metadata/version
index bb7a7c1b1..fec150702 100644
--- a/data/diskdev-cmds/_metadata/version
+++ b/data/diskdev-cmds/_metadata/version
@@ -1 +1 @@
-576
+593.221.1
diff --git a/data/diskdev-cmds/diskdev_cmds-576.tar.gz b/data/diskdev-cmds/diskdev_cmds-576.tar.gz
deleted file mode 100644
index b7af905f8..000000000
--- a/data/diskdev-cmds/diskdev_cmds-576.tar.gz
+++ /dev/null
Binary files differ
diff --git a/data/diskdev-cmds/diskdev_cmds-593.221.1.tar.gz b/data/diskdev-cmds/diskdev_cmds-593.221.1.tar.gz
new file mode 100644
index 000000000..579fd970d
--- /dev/null
+++ b/data/diskdev-cmds/diskdev_cmds-593.221.1.tar.gz
Binary files differ
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/dpkg/_metadata/priority b/data/dpkg/_metadata/priority
index fad9e164a..d0b3ce728 100644
--- a/data/dpkg/_metadata/priority
+++ b/data/dpkg/_metadata/priority
@@ -1 +1 @@
-required
++required
diff --git a/data/expat/_metadata/in.550.58 b/data/expat/_metadata/in.550.58
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/data/expat/_metadata/in.550.58
diff --git a/data/git/_metadata/_openssl1.0.dep b/data/git/_metadata/_openssl1.0.dep
new file mode 120000
index 000000000..7ff94c52c
--- /dev/null
+++ b/data/git/_metadata/_openssl1.0.dep
@@ -0,0 +1 @@
+../../_openssl1.0 \ No newline at end of file
diff --git a/data/git/_metadata/in.550.58 b/data/git/_metadata/in.550.58
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/data/git/_metadata/in.550.58
diff --git a/data/git/_metadata/libssl1.0.dep b/data/git/_metadata/libssl1.0.dep
new file mode 120000
index 000000000..a501d00a8
--- /dev/null
+++ b/data/git/_metadata/libssl1.0.dep
@@ -0,0 +1 @@
+../../libssl1.0 \ No newline at end of file
diff --git a/data/git/_metadata/openssl.dep b/data/git/_metadata/openssl.dep
deleted file mode 120000
index 9b58fd56b..000000000
--- a/data/git/_metadata/openssl.dep
+++ /dev/null
@@ -1 +0,0 @@
-../../openssl \ No newline at end of file
diff --git a/data/irssi/_metadata/libssl1.0.dep b/data/irssi/_metadata/libssl1.0.dep
new file mode 120000
index 000000000..a501d00a8
--- /dev/null
+++ b/data/irssi/_metadata/libssl1.0.dep
@@ -0,0 +1 @@
+../../libssl1.0 \ No newline at end of file
diff --git a/data/irssi/_metadata/openssl.dep b/data/irssi/_metadata/openssl.dep
deleted file mode 120000
index 9b58fd56b..000000000
--- a/data/irssi/_metadata/openssl.dep
+++ /dev/null
@@ -1 +0,0 @@
-../../openssl \ No newline at end of file
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
new file mode 100644
index 000000000..7a9b2da60
--- /dev/null
+++ b/data/libapt-pkg-perl/libapt-pkg-perl_0.1.34.tar.xz
Binary files differ
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/libevent/_metadata/in.550.58 b/data/libevent/_metadata/in.550.58
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/data/libevent/_metadata/in.550.58
diff --git a/data/libevent/_metadata/libssl1.0.dep b/data/libevent/_metadata/libssl1.0.dep
new file mode 120000
index 000000000..a501d00a8
--- /dev/null
+++ b/data/libevent/_metadata/libssl1.0.dep
@@ -0,0 +1 @@
+../../libssl1.0 \ No newline at end of file
diff --git a/data/libevent/_metadata/openssl.dep b/data/libevent/_metadata/openssl.dep
deleted file mode 120000
index 9b58fd56b..000000000
--- a/data/libevent/_metadata/openssl.dep
+++ /dev/null
@@ -1 +0,0 @@
-../../openssl \ No newline at end of file
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/libnghttp2/_metadata/_openssl1.0.dep b/data/libnghttp2/_metadata/_openssl1.0.dep
new file mode 120000
index 000000000..7ff94c52c
--- /dev/null
+++ b/data/libnghttp2/_metadata/_openssl1.0.dep
@@ -0,0 +1 @@
+../../_openssl1.0 \ No newline at end of file
diff --git a/data/libnghttp2/_metadata/in.550.58 b/data/libnghttp2/_metadata/in.550.58
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/data/libnghttp2/_metadata/in.550.58
diff --git a/data/libnghttp2/_metadata/libssl1.0.dep b/data/libnghttp2/_metadata/libssl1.0.dep
new file mode 120000
index 000000000..a501d00a8
--- /dev/null
+++ b/data/libnghttp2/_metadata/libssl1.0.dep
@@ -0,0 +1 @@
+../../libssl1.0 \ No newline at end of file
diff --git a/data/libnghttp2/_metadata/openssl.dep b/data/libnghttp2/_metadata/openssl.dep
deleted file mode 120000
index 9b58fd56b..000000000
--- a/data/libnghttp2/_metadata/openssl.dep
+++ /dev/null
@@ -1 +0,0 @@
-../../openssl \ No newline at end of file
diff --git a/data/libserf/_metadata/libssl1.0.dep b/data/libserf/_metadata/libssl1.0.dep
new file mode 120000
index 000000000..a501d00a8
--- /dev/null
+++ b/data/libserf/_metadata/libssl1.0.dep
@@ -0,0 +1 @@
+../../libssl1.0 \ No newline at end of file
diff --git a/data/libserf/make.sh b/data/libserf/make.sh
index 71f549558..a01af491e 100644
--- a/data/libserf/make.sh
+++ b/data/libserf/make.sh
@@ -1,6 +1,6 @@
pkg:setup
export PATH
-SCONS="scons APR=\"$(echo $(PKG_WORK_ _apr)/*/apr-1-config)\" APU=\"$(echo $(PKG_WORK_ apr-util)/*/apu-1-config)\" OPENSSL=\"$(PKG_DEST_ openssl)/usr\" PREFIX=/usr LIBDIR=/usr/lib CC=\"$(which ${PKG_TARG}-gcc)\" SOURCE_LAYOUT=1 LINKFLAGS=\"-L$(PKG_DEST_ _apr)/usr/lib -L$(PKG_DEST_ apr-util)/usr/lib -L$(PKG_DEST_ expat)/usr/lib\""
+SCONS="scons APR=\"$(echo $(PKG_WORK_ _apr)/*/apr-1-config)\" APU=\"$(echo $(PKG_WORK_ apr-util)/*/apu-1-config)\" OPENSSL=\"$(PKG_DEST_ _openssl1.0)/usr\" PREFIX=/usr LIBDIR=/usr/lib CC=\"$(which ${PKG_TARG}-gcc)\" SOURCE_LAYOUT=1 LINKFLAGS=\"-L$(PKG_DEST_ _apr)/usr/lib -L$(PKG_DEST_ apr-util)/usr/lib -L$(PKG_DEST_ expat)/usr/lib\""
echo ${SCONS}
eval ${SCONS}
mkdir -p "$(PKG_DEST_ libserf)"
diff --git a/data/libssh2/_metadata/_openssl1.0.dep b/data/libssh2/_metadata/_openssl1.0.dep
new file mode 120000
index 000000000..7ff94c52c
--- /dev/null
+++ b/data/libssh2/_metadata/_openssl1.0.dep
@@ -0,0 +1 @@
+../../_openssl1.0 \ No newline at end of file
diff --git a/data/libssh2/_metadata/in.550.58 b/data/libssh2/_metadata/in.550.58
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/data/libssh2/_metadata/in.550.58
diff --git a/data/libssh2/_metadata/libssl1.0.dep b/data/libssh2/_metadata/libssl1.0.dep
new file mode 120000
index 000000000..a501d00a8
--- /dev/null
+++ b/data/libssh2/_metadata/libssl1.0.dep
@@ -0,0 +1 @@
+../../libssl1.0 \ No newline at end of file
diff --git a/data/libssh2/_metadata/openssl.dep b/data/libssh2/_metadata/openssl.dep
deleted file mode 120000
index 9b58fd56b..000000000
--- a/data/libssh2/_metadata/openssl.dep
+++ /dev/null
@@ -1 +0,0 @@
-../../openssl \ No newline at end of file
diff --git a/data/libssl-dev/_metadata/_openssl1.0.dep b/data/libssl-dev/_metadata/_openssl1.0.dep
new file mode 120000
index 000000000..7ff94c52c
--- /dev/null
+++ b/data/libssl-dev/_metadata/_openssl1.0.dep
@@ -0,0 +1 @@
+../../_openssl1.0 \ No newline at end of file
diff --git a/data/libssl-dev/_metadata/description b/data/libssl-dev/_metadata/description
new file mode 100644
index 000000000..0f17498f7
--- /dev/null
+++ b/data/libssl-dev/_metadata/description
@@ -0,0 +1 @@
+OpenSSL Libraries for version 1.0
diff --git a/data/libssl-dev/_metadata/in.1443.00 b/data/libssl-dev/_metadata/in.1443.00
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/data/libssl-dev/_metadata/in.1443.00
diff --git a/data/libssl-dev/_metadata/in.550.58 b/data/libssl-dev/_metadata/in.550.58
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/data/libssl-dev/_metadata/in.550.58
diff --git a/data/libssl-dev/_metadata/libssl1.0.dep b/data/libssl-dev/_metadata/libssl1.0.dep
new file mode 120000
index 000000000..a501d00a8
--- /dev/null
+++ b/data/libssl-dev/_metadata/libssl1.0.dep
@@ -0,0 +1 @@
+../../libssl1.0 \ No newline at end of file
diff --git a/data/libssl-dev/_metadata/libssl1.0.ver.iphoneos-arm b/data/libssl-dev/_metadata/libssl1.0.ver.iphoneos-arm
new file mode 120000
index 000000000..827dd0dfb
--- /dev/null
+++ b/data/libssl-dev/_metadata/libssl1.0.ver.iphoneos-arm
@@ -0,0 +1 @@
+../../libssl1.0/_metadata/version \ No newline at end of file
diff --git a/data/libssl-dev/_metadata/license b/data/libssl-dev/_metadata/license
new file mode 120000
index 000000000..88ecc67af
--- /dev/null
+++ b/data/libssl-dev/_metadata/license
@@ -0,0 +1 @@
+../../_openssl1.0/_metadata/license \ No newline at end of file
diff --git a/data/libssl-dev/_metadata/maintainer b/data/libssl-dev/_metadata/maintainer
new file mode 120000
index 000000000..9feba3530
--- /dev/null
+++ b/data/libssl-dev/_metadata/maintainer
@@ -0,0 +1 @@
+../../_openssl1.0/_metadata/maintainer \ No newline at end of file
diff --git a/data/libssl-dev/_metadata/name b/data/libssl-dev/_metadata/name
new file mode 100644
index 000000000..ab59700c1
--- /dev/null
+++ b/data/libssl-dev/_metadata/name
@@ -0,0 +1 @@
+OpenSSL 1.0 Libraries
diff --git a/data/libssl-dev/_metadata/priority b/data/libssl-dev/_metadata/priority
new file mode 120000
index 000000000..7b8c4d01f
--- /dev/null
+++ b/data/libssl-dev/_metadata/priority
@@ -0,0 +1 @@
+../../_openssl1.0/_metadata/priority \ No newline at end of file
diff --git a/data/libssl-dev/_metadata/role b/data/libssl-dev/_metadata/role
new file mode 120000
index 000000000..2948edd45
--- /dev/null
+++ b/data/libssl-dev/_metadata/role
@@ -0,0 +1 @@
+../../_openssl1.0/_metadata/role \ No newline at end of file
diff --git a/data/libssl-dev/_metadata/section b/data/libssl-dev/_metadata/section
new file mode 120000
index 000000000..4372ae2c4
--- /dev/null
+++ b/data/libssl-dev/_metadata/section
@@ -0,0 +1 @@
+../../_openssl1.0/_metadata/section \ No newline at end of file
diff --git a/data/libssl-dev/_metadata/tags b/data/libssl-dev/_metadata/tags
new file mode 120000
index 000000000..575278f73
--- /dev/null
+++ b/data/libssl-dev/_metadata/tags
@@ -0,0 +1 @@
+../../_openssl1.0/_metadata/tags \ No newline at end of file
diff --git a/data/libssl-dev/_metadata/version b/data/libssl-dev/_metadata/version
new file mode 120000
index 000000000..7c50f5d10
--- /dev/null
+++ b/data/libssl-dev/_metadata/version
@@ -0,0 +1 @@
+../../_openssl1.0/_metadata/version \ No newline at end of file
diff --git a/data/libssl-dev/make.sh b/data/libssl-dev/make.sh
new file mode 100644
index 000000000..8a714aee1
--- /dev/null
+++ b/data/libssl-dev/make.sh
@@ -0,0 +1,3 @@
+pkg: mkdir -p /usr/lib /usr/include
+cp -a "$(PKG_DEST_ _openssl1.0)"/usr/lib/{lib{ssl,crypto}.dylib,pkgconfig} "${PKG_DEST}"/usr/lib
+cp -a "$(PKG_DEST_ _openssl1.0)"/usr/include "${PKG_DEST}"/usr
diff --git a/data/libssl0.9.8/_metadata/_openssl0.9.8.dep b/data/libssl0.9.8/_metadata/_openssl0.9.8.dep
new file mode 120000
index 000000000..ff75a5b25
--- /dev/null
+++ b/data/libssl0.9.8/_metadata/_openssl0.9.8.dep
@@ -0,0 +1 @@
+../../_openssl0.9.8 \ No newline at end of file
diff --git a/data/libssl0.9.8/_metadata/conflicts b/data/libssl0.9.8/_metadata/conflicts
new file mode 100644
index 000000000..3cbc3925d
--- /dev/null
+++ b/data/libssl0.9.8/_metadata/conflicts
@@ -0,0 +1 @@
+openssl (<<1.0)
diff --git a/data/libssl0.9.8/_metadata/description b/data/libssl0.9.8/_metadata/description
new file mode 100644
index 000000000..0f17498f7
--- /dev/null
+++ b/data/libssl0.9.8/_metadata/description
@@ -0,0 +1 @@
+OpenSSL Libraries for version 1.0
diff --git a/data/libssl0.9.8/_metadata/in.1443.00 b/data/libssl0.9.8/_metadata/in.1443.00
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/data/libssl0.9.8/_metadata/in.1443.00
diff --git a/data/libssl0.9.8/_metadata/in.550.58 b/data/libssl0.9.8/_metadata/in.550.58
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/data/libssl0.9.8/_metadata/in.550.58
diff --git a/data/libssl0.9.8/_metadata/license b/data/libssl0.9.8/_metadata/license
new file mode 120000
index 000000000..1984d7204
--- /dev/null
+++ b/data/libssl0.9.8/_metadata/license
@@ -0,0 +1 @@
+../../_openssl0.9.8/_metadata/license \ No newline at end of file
diff --git a/data/libssl0.9.8/_metadata/maintainer b/data/libssl0.9.8/_metadata/maintainer
new file mode 120000
index 000000000..906a1a514
--- /dev/null
+++ b/data/libssl0.9.8/_metadata/maintainer
@@ -0,0 +1 @@
+../../_openssl0.9.8/_metadata/maintainer \ No newline at end of file
diff --git a/data/libssl0.9.8/_metadata/name b/data/libssl0.9.8/_metadata/name
new file mode 100644
index 000000000..19b388e20
--- /dev/null
+++ b/data/libssl0.9.8/_metadata/name
@@ -0,0 +1 @@
+OpenSSL 0.9.8 Libraries
diff --git a/data/libssl0.9.8/_metadata/priority b/data/libssl0.9.8/_metadata/priority
new file mode 120000
index 000000000..e6d907f23
--- /dev/null
+++ b/data/libssl0.9.8/_metadata/priority
@@ -0,0 +1 @@
+../../_openssl0.9.8/_metadata/priority \ No newline at end of file
diff --git a/data/libssl0.9.8/_metadata/role b/data/libssl0.9.8/_metadata/role
new file mode 120000
index 000000000..d64edd8a2
--- /dev/null
+++ b/data/libssl0.9.8/_metadata/role
@@ -0,0 +1 @@
+../../_openssl0.9.8/_metadata/role \ No newline at end of file
diff --git a/data/libssl0.9.8/_metadata/section b/data/libssl0.9.8/_metadata/section
new file mode 120000
index 000000000..7508fbffb
--- /dev/null
+++ b/data/libssl0.9.8/_metadata/section
@@ -0,0 +1 @@
+../../_openssl0.9.8/_metadata/section \ No newline at end of file
diff --git a/data/libssl0.9.8/_metadata/tags b/data/libssl0.9.8/_metadata/tags
new file mode 120000
index 000000000..c72fbcd8a
--- /dev/null
+++ b/data/libssl0.9.8/_metadata/tags
@@ -0,0 +1 @@
+../../_openssl0.9.8/_metadata/tags \ No newline at end of file
diff --git a/data/libssl0.9.8/_metadata/version b/data/libssl0.9.8/_metadata/version
new file mode 120000
index 000000000..f847ca867
--- /dev/null
+++ b/data/libssl0.9.8/_metadata/version
@@ -0,0 +1 @@
+../../_openssl0.9.8/_metadata/version \ No newline at end of file
diff --git a/data/libssl0.9.8/make.sh b/data/libssl0.9.8/make.sh
new file mode 100644
index 000000000..498514130
--- /dev/null
+++ b/data/libssl0.9.8/make.sh
@@ -0,0 +1,3 @@
+pkg: mkdir -p /usr/lib
+cp -a "$(PKG_DEST_ _openssl0.9.8)"/usr/lib "${PKG_DEST}"/usr
+pkg: rm -rf /usr/lib/{lib{ssl,crypto}.dylib,ssl,pkgconfig}
diff --git a/data/libssl1.0/_metadata/_openssl1.0.dep b/data/libssl1.0/_metadata/_openssl1.0.dep
new file mode 120000
index 000000000..7ff94c52c
--- /dev/null
+++ b/data/libssl1.0/_metadata/_openssl1.0.dep
@@ -0,0 +1 @@
+../../_openssl1.0 \ No newline at end of file
diff --git a/data/libssl1.0/_metadata/conflicts b/data/libssl1.0/_metadata/conflicts
new file mode 100644
index 000000000..9116e75b4
--- /dev/null
+++ b/data/libssl1.0/_metadata/conflicts
@@ -0,0 +1 @@
+openssl (<<1.0.2q)
diff --git a/data/libssl1.0/_metadata/depends b/data/libssl1.0/_metadata/depends
new file mode 100644
index 000000000..a779e5d04
--- /dev/null
+++ b/data/libssl1.0/_metadata/depends
@@ -0,0 +1 @@
+ca-certificates
diff --git a/data/libssl1.0/_metadata/description b/data/libssl1.0/_metadata/description
new file mode 100644
index 000000000..0f17498f7
--- /dev/null
+++ b/data/libssl1.0/_metadata/description
@@ -0,0 +1 @@
+OpenSSL Libraries for version 1.0
diff --git a/data/libssl1.0/_metadata/in.1443.00 b/data/libssl1.0/_metadata/in.1443.00
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/data/libssl1.0/_metadata/in.1443.00
diff --git a/data/libssl1.0/_metadata/in.550.58 b/data/libssl1.0/_metadata/in.550.58
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/data/libssl1.0/_metadata/in.550.58
diff --git a/data/libssl1.0/_metadata/license b/data/libssl1.0/_metadata/license
new file mode 120000
index 000000000..88ecc67af
--- /dev/null
+++ b/data/libssl1.0/_metadata/license
@@ -0,0 +1 @@
+../../_openssl1.0/_metadata/license \ No newline at end of file
diff --git a/data/libssl1.0/_metadata/maintainer b/data/libssl1.0/_metadata/maintainer
new file mode 120000
index 000000000..9feba3530
--- /dev/null
+++ b/data/libssl1.0/_metadata/maintainer
@@ -0,0 +1 @@
+../../_openssl1.0/_metadata/maintainer \ No newline at end of file
diff --git a/data/libssl1.0/_metadata/name b/data/libssl1.0/_metadata/name
new file mode 100644
index 000000000..ab59700c1
--- /dev/null
+++ b/data/libssl1.0/_metadata/name
@@ -0,0 +1 @@
+OpenSSL 1.0 Libraries
diff --git a/data/libssl1.0/_metadata/priority b/data/libssl1.0/_metadata/priority
new file mode 120000
index 000000000..7b8c4d01f
--- /dev/null
+++ b/data/libssl1.0/_metadata/priority
@@ -0,0 +1 @@
+../../_openssl1.0/_metadata/priority \ No newline at end of file
diff --git a/data/libssl1.0/_metadata/role b/data/libssl1.0/_metadata/role
new file mode 120000
index 000000000..2948edd45
--- /dev/null
+++ b/data/libssl1.0/_metadata/role
@@ -0,0 +1 @@
+../../_openssl1.0/_metadata/role \ No newline at end of file
diff --git a/data/libssl1.0/_metadata/section b/data/libssl1.0/_metadata/section
new file mode 120000
index 000000000..4372ae2c4
--- /dev/null
+++ b/data/libssl1.0/_metadata/section
@@ -0,0 +1 @@
+../../_openssl1.0/_metadata/section \ No newline at end of file
diff --git a/data/libssl1.0/_metadata/tags b/data/libssl1.0/_metadata/tags
new file mode 120000
index 000000000..575278f73
--- /dev/null
+++ b/data/libssl1.0/_metadata/tags
@@ -0,0 +1 @@
+../../_openssl1.0/_metadata/tags \ No newline at end of file
diff --git a/data/libssl1.0/_metadata/version b/data/libssl1.0/_metadata/version
new file mode 120000
index 000000000..7c50f5d10
--- /dev/null
+++ b/data/libssl1.0/_metadata/version
@@ -0,0 +1 @@
+../../_openssl1.0/_metadata/version \ No newline at end of file
diff --git a/data/libssl1.0/make.sh b/data/libssl1.0/make.sh
new file mode 100644
index 000000000..20fb6b7ba
--- /dev/null
+++ b/data/libssl1.0/make.sh
@@ -0,0 +1,3 @@
+pkg: mkdir -p /usr/lib
+cp -a "$(PKG_DEST_ _openssl1.0)"/usr/lib "${PKG_DEST}"/usr
+pkg: rm -rf /usr/lib/{lib{ssl,crypto}.dylib,ssl,pkgconfig}
diff --git a/data/lighttpd/_metadata/libssl1.0.dep b/data/lighttpd/_metadata/libssl1.0.dep
new file mode 120000
index 000000000..a501d00a8
--- /dev/null
+++ b/data/lighttpd/_metadata/libssl1.0.dep
@@ -0,0 +1 @@
+../../libssl1.0 \ No newline at end of file
diff --git a/data/lighttpd/_metadata/openssl.dep b/data/lighttpd/_metadata/openssl.dep
deleted file mode 120000
index 9b58fd56b..000000000
--- a/data/lighttpd/_metadata/openssl.dep
+++ /dev/null
@@ -1 +0,0 @@
-../../openssl \ No newline at end of file
diff --git a/data/links/_metadata/libssl1.0.dep b/data/links/_metadata/libssl1.0.dep
new file mode 120000
index 000000000..a501d00a8
--- /dev/null
+++ b/data/links/_metadata/libssl1.0.dep
@@ -0,0 +1 @@
+../../libssl1.0 \ No newline at end of file
diff --git a/data/links/_metadata/openssl.dep b/data/links/_metadata/openssl.dep
deleted file mode 120000
index 9b58fd56b..000000000
--- a/data/links/_metadata/openssl.dep
+++ /dev/null
@@ -1 +0,0 @@
-../../openssl \ No newline at end of file
diff --git a/data/lynx/_metadata/libssl1.0.dep b/data/lynx/_metadata/libssl1.0.dep
new file mode 120000
index 000000000..a501d00a8
--- /dev/null
+++ b/data/lynx/_metadata/libssl1.0.dep
@@ -0,0 +1 @@
+../../libssl1.0 \ No newline at end of file
diff --git a/data/lynx/_metadata/openssl.dep b/data/lynx/_metadata/openssl.dep
deleted file mode 120000
index 9b58fd56b..000000000
--- a/data/lynx/_metadata/openssl.dep
+++ /dev/null
@@ -1 +0,0 @@
-../../openssl \ No newline at end of file
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/lzma/_metadata/version b/data/lzma/_metadata/version
index 0e3c33916..c8a6ff9cd 100644
--- a/data/lzma/_metadata/version
+++ b/data/lzma/_metadata/version
@@ -1 +1 @@
-4.32.7
+1:4.32.7
diff --git a/data/mterminal/_metadata/license b/data/mterminal/_metadata/license
index be7df868d..9c13a9a0f 100644..120000
--- a/data/mterminal/_metadata/license
+++ b/data/mterminal/_metadata/license
@@ -1,24 +1 @@
-// -*- mode:objc -*-
-/*
- ** VT100Screen.m
- **
- ** Copyright (c) 2002, 2003, 2007
- **
- ** Author: Fabian, Ujwal S. Setlur
- ** Initial code by Kiichi Kusama
- ** Ported to MobileTerminal (from iTerm) by Allen Porter
- **
- ** 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 2 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, write to the Free Software
- ** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
+../../../licenses/gpl-2 \ No newline at end of file
diff --git a/data/nail/_metadata/libssl1.0.dep b/data/nail/_metadata/libssl1.0.dep
new file mode 120000
index 000000000..a501d00a8
--- /dev/null
+++ b/data/nail/_metadata/libssl1.0.dep
@@ -0,0 +1 @@
+../../libssl1.0 \ No newline at end of file
diff --git a/data/nail/_metadata/openssl.dep b/data/nail/_metadata/openssl.dep
deleted file mode 120000
index 9b58fd56b..000000000
--- a/data/nail/_metadata/openssl.dep
+++ /dev/null
@@ -1 +0,0 @@
-../../openssl \ No newline at end of file
diff --git a/data/neon/_metadata/libssl1.0.dep b/data/neon/_metadata/libssl1.0.dep
new file mode 120000
index 000000000..a501d00a8
--- /dev/null
+++ b/data/neon/_metadata/libssl1.0.dep
@@ -0,0 +1 @@
+../../libssl1.0 \ No newline at end of file
diff --git a/data/neon/_metadata/openssl.dep b/data/neon/_metadata/openssl.dep
deleted file mode 120000
index 9b58fd56b..000000000
--- a/data/neon/_metadata/openssl.dep
+++ /dev/null
@@ -1 +0,0 @@
-../../openssl \ No newline at end of file
diff --git a/data/netatalk/_metadata/libssl1.0.dep b/data/netatalk/_metadata/libssl1.0.dep
new file mode 120000
index 000000000..a501d00a8
--- /dev/null
+++ b/data/netatalk/_metadata/libssl1.0.dep
@@ -0,0 +1 @@
+../../libssl1.0 \ No newline at end of file
diff --git a/data/netatalk/_metadata/openssl.dep b/data/netatalk/_metadata/openssl.dep
deleted file mode 120000
index 9b58fd56b..000000000
--- a/data/netatalk/_metadata/openssl.dep
+++ /dev/null
@@ -1 +0,0 @@
-../../openssl \ No newline at end of file
diff --git a/data/odcctools/_metadata/libssl1.0.dep b/data/odcctools/_metadata/libssl1.0.dep
new file mode 120000
index 000000000..a501d00a8
--- /dev/null
+++ b/data/odcctools/_metadata/libssl1.0.dep
@@ -0,0 +1 @@
+../../libssl1.0 \ No newline at end of file
diff --git a/data/odcctools/_metadata/openssl.dep b/data/odcctools/_metadata/openssl.dep
deleted file mode 120000
index 9b58fd56b..000000000
--- a/data/odcctools/_metadata/openssl.dep
+++ /dev/null
@@ -1 +0,0 @@
-../../openssl \ No newline at end of file
diff --git a/data/openssh/_metadata/libssl1.0.dep b/data/openssh/_metadata/libssl1.0.dep
new file mode 120000
index 000000000..a501d00a8
--- /dev/null
+++ b/data/openssh/_metadata/libssl1.0.dep
@@ -0,0 +1 @@
+../../libssl1.0 \ No newline at end of file
diff --git a/data/openssh/_metadata/openssl.dep b/data/openssh/_metadata/openssl.dep
deleted file mode 120000
index 9b58fd56b..000000000
--- a/data/openssh/_metadata/openssl.dep
+++ /dev/null
@@ -1 +0,0 @@
-../../openssl \ No newline at end of file
diff --git a/data/openssh/_metadata/version b/data/openssh/_metadata/version
index d4461db47..11ec65529 100644
--- a/data/openssh/_metadata/version
+++ b/data/openssh/_metadata/version
@@ -1 +1 @@
-7.7p1
+7.9p1
diff --git a/data/openssh/openssh-7.7p1.tar.gz b/data/openssh/openssh-7.7p1.tar.gz
deleted file mode 100644
index 776707ee5..000000000
--- a/data/openssh/openssh-7.7p1.tar.gz
+++ /dev/null
Binary files differ
diff --git a/data/openssh/openssh-7.9p1.tar.gz b/data/openssh/openssh-7.9p1.tar.gz
new file mode 100644
index 000000000..38f492774
--- /dev/null
+++ b/data/openssh/openssh-7.9p1.tar.gz
Binary files differ
diff --git a/data/openssh/privsep.diff b/data/openssh/privsep.diff
index 2f53b4da3..3f2b4d28b 100644
--- a/data/openssh/privsep.diff
+++ b/data/openssh/privsep.diff
@@ -1,8 +1,7 @@
-diff --git a/contrib/cygwin/ssh-host-config b/contrib/cygwin/ssh-host-config
-index db6aaa08..d934d09b 100644
---- a/contrib/cygwin/ssh-host-config
-+++ b/contrib/cygwin/ssh-host-config
-@@ -63,6 +63,7 @@ sshd_config_configured=no
+diff -ur openssh-7.9p1/contrib/cygwin/ssh-host-config openssh-7.9p1+iPhone/contrib/cygwin/ssh-host-config
+--- openssh-7.9p1/contrib/cygwin/ssh-host-config 2018-10-16 14:01:20.000000000 -1000
++++ openssh-7.9p1+iPhone/contrib/cygwin/ssh-host-config 2018-12-10 10:14:07.000000000 -1000
+@@ -63,6 +63,7 @@
port_number=22
service_name=sshd
strictmodes=yes
@@ -10,7 +9,7 @@ index db6aaa08..d934d09b 100644
cygwin_value=""
user_account=
password_value=
-@@ -139,21 +140,33 @@ sshd_strictmodes() {
+@@ -139,21 +140,33 @@
# ======================================================================
# Routine: sshd_privsep
@@ -23,6 +22,13 @@ index db6aaa08..d934d09b 100644
if [ "${sshd_config_configured}" != "yes" ]
then
- if ! csih_create_unprivileged_user sshd
+- then
+- csih_error_recoverable "Could not create user 'sshd'!"
+- csih_error_recoverable "You will not be able to run an sshd service"
+- csih_error_recoverable "under a privileged account successfully."
+- csih_error_recoverable "Make sure to create a non-privileged user 'sshd'"
+- csih_error_recoverable "manually before trying to run the service!"
+- let ++ret
+ echo
+ csih_inform "Privilege separation is set to 'sandbox' by default since"
+ csih_inform "OpenSSH 6.1. This is unsupported by Cygwin and has to be set"
@@ -31,13 +37,7 @@ index db6aaa08..d934d09b 100644
+ csih_inform "called 'sshd'."
+ csih_inform "For more info on privilege separation read /usr/share/doc/openssh/README.privsep."
+ if csih_request "Should privilege separation be used?"
- then
-- csih_error_recoverable "Could not create user 'sshd'!"
-- csih_error_recoverable "You will not be able to run an sshd service"
-- csih_error_recoverable "under a privileged account successfully."
-- csih_error_recoverable "Make sure to create a non-privileged user 'sshd'"
-- csih_error_recoverable "manually before trying to run the service!"
-- let ++ret
++ then
+ privsep_used=yes
+ if ! csih_create_unprivileged_user sshd
+ then
@@ -52,7 +52,7 @@ index db6aaa08..d934d09b 100644
fi
fi
return $ret
-@@ -189,6 +202,18 @@ sshd_config_tweak() {
+@@ -189,6 +202,18 @@
let ++ret
fi
fi
@@ -71,7 +71,7 @@ index db6aaa08..d934d09b 100644
return $ret
} # --- End of sshd_config_tweak --- #
-@@ -668,7 +693,7 @@ then
+@@ -668,7 +693,7 @@
fi
fi
@@ -80,20 +80,19 @@ index db6aaa08..d934d09b 100644
csih_install_config "${SYSCONFDIR}/sshd_config" "${SYSCONFDIR}/defaults" || let ++warning_cnt
if ! /usr/bin/cmp "${SYSCONFDIR}/sshd_config" "${SYSCONFDIR}/defaults/${SYSCONFDIR}/sshd_config" >/dev/null 2>&1
then
-diff --git a/servconf.c b/servconf.c
-index 0f0d0906..a63cec91 100644
---- a/servconf.c
-+++ b/servconf.c
-@@ -590,7 +590,7 @@ static struct {
+diff -ur openssh-7.9p1/servconf.c openssh-7.9p1+iPhone/servconf.c
+--- openssh-7.9p1/servconf.c 2018-10-16 14:01:20.000000000 -1000
++++ openssh-7.9p1+iPhone/servconf.c 2018-12-10 10:14:07.000000000 -1000
+@@ -614,7 +614,7 @@
{ "clientalivecountmax", sClientAliveCountMax, SSHCFG_ALL },
{ "authorizedkeysfile", sAuthorizedKeysFile, SSHCFG_ALL },
{ "authorizedkeysfile2", sDeprecated, SSHCFG_ALL },
- { "useprivilegeseparation", sDeprecated, SSHCFG_GLOBAL},
+ { "useprivilegeseparation", sUsePrivilegeSeparation, SSHCFG_GLOBAL},
{ "acceptenv", sAcceptEnv, SSHCFG_ALL },
+ { "setenv", sSetEnv, SSHCFG_ALL },
{ "permittunnel", sPermitTunnel, SSHCFG_ALL },
- { "permittty", sPermitTTY, SSHCFG_ALL },
-@@ -1130,6 +1130,13 @@ static const struct multistate multistate_gatewayports[] = {
+@@ -1187,6 +1187,13 @@
{ "no", 0 },
{ NULL, -1 }
};
@@ -107,7 +106,7 @@ index 0f0d0906..a63cec91 100644
static const struct multistate multistate_tcpfwd[] = {
{ "yes", FORWARD_ALLOW },
{ "all", FORWARD_ALLOW },
-@@ -1563,6 +1570,11 @@ process_server_config_line(ServerOptions *options, char *line,
+@@ -1646,6 +1653,11 @@
intptr = &options->disable_forwarding;
goto parse_flag;
@@ -119,7 +118,7 @@ index 0f0d0906..a63cec91 100644
case sAllowUsers:
while ((arg = strdelim(&cp)) && *arg != '\0') {
if (match_user(NULL, NULL, NULL, arg) == -1)
-@@ -2289,6 +2301,8 @@ fmt_intarg(ServerOpCodes code, int val)
+@@ -2407,6 +2419,8 @@
return fmt_multistate_int(val, multistate_gatewayports);
case sCompression:
return fmt_multistate_int(val, multistate_compression);
@@ -128,7 +127,7 @@ index 0f0d0906..a63cec91 100644
case sAllowTcpForwarding:
return fmt_multistate_int(val, multistate_tcpfwd);
case sAllowStreamLocalForwarding:
-@@ -2480,6 +2494,7 @@ dump_config(ServerOptions *o)
+@@ -2586,6 +2600,7 @@
dump_cfg_fmtint(sDisableForwarding, o->disable_forwarding);
dump_cfg_fmtint(sAllowStreamLocalForwarding, o->allow_streamlocal_forwarding);
dump_cfg_fmtint(sStreamLocalBindUnlink, o->fwd_opts.streamlocal_bind_unlink);
@@ -136,11 +135,11 @@ index 0f0d0906..a63cec91 100644
dump_cfg_fmtint(sFingerprintHash, o->fingerprint_hash);
dump_cfg_fmtint(sExposeAuthInfo, o->expose_userauth_info);
-diff --git a/sshd.c b/sshd.c
-index fd95b681..697f5a8b 100644
---- a/sshd.c
-+++ b/sshd.c
-@@ -228,7 +228,6 @@ int startup_pipe; /* in child */
+Only in openssh-7.9p1+iPhone: servconf.c.orig
+diff -ur openssh-7.9p1/sshd.c openssh-7.9p1+iPhone/sshd.c
+--- openssh-7.9p1/sshd.c 2018-10-16 14:01:20.000000000 -1000
++++ openssh-7.9p1+iPhone/sshd.c 2018-12-10 10:14:07.000000000 -1000
+@@ -228,7 +228,6 @@
int use_privsep = -1;
struct monitor *pmonitor = NULL;
int privsep_is_preauth = 1;
@@ -148,7 +147,7 @@ index fd95b681..697f5a8b 100644
/* global authentication context */
Authctxt *the_authctxt = NULL;
-@@ -541,7 +540,7 @@ privsep_preauth_child(void)
+@@ -545,7 +544,7 @@
demote_sensitive_data();
/* Demote the child */
@@ -157,7 +156,7 @@ index fd95b681..697f5a8b 100644
/* Change our root directory */
if (chroot(_PATH_PRIVSEP_CHROOT_DIR) == -1)
fatal("chroot(\"%s\"): %s", _PATH_PRIVSEP_CHROOT_DIR,
-@@ -1641,9 +1640,8 @@ main(int ac, char **av)
+@@ -1730,9 +1729,8 @@
);
/* Store privilege separation user for later use if required. */
@@ -168,8 +167,8 @@ index fd95b681..697f5a8b 100644
fatal("Privilege separation user %s does not exist",
SSH_PRIVSEP_USER);
} else {
-@@ -1801,7 +1790,7 @@ main(int ac, char **av)
- key_type(key));
+@@ -1858,7 +1856,7 @@
+ sshkey_type(key));
}
- if (privsep_chroot) {
@@ -177,23 +176,22 @@ index fd95b681..697f5a8b 100644
struct stat st;
if ((stat(_PATH_PRIVSEP_CHROOT_DIR, &st) == -1) ||
-diff --git a/sshd_config b/sshd_config
-index 3109d5d7..018b5eb2 100644
---- a/sshd_config
-+++ b/sshd_config
-@@ -92,6 +92,7 @@ AuthorizedKeysFile .ssh/authorized_keys
+Only in openssh-7.9p1+iPhone: sshd.c.orig
+diff -ur openssh-7.9p1/sshd_config openssh-7.9p1+iPhone/sshd_config
+--- openssh-7.9p1/sshd_config 2018-10-16 14:01:20.000000000 -1000
++++ openssh-7.9p1+iPhone/sshd_config 2018-12-10 10:14:59.000000000 -1000
+@@ -90,6 +90,7 @@
+ #PermitTTY yes
+ #PrintMotd yes
#PrintLastLog yes
- #TCPKeepAlive yes
- #UseLogin no
+#UsePrivilegeSeparation sandbox
+ #TCPKeepAlive yes
#PermitUserEnvironment no
#Compression delayed
- #ClientAliveInterval 0
-diff --git a/sshd_config.5 b/sshd_config.5
-index e3c7c393..20a185f0 100644
---- a/sshd_config.5
-+++ b/sshd_config.5
-@@ -1542,6 +1542,28 @@ is enabled, you will not be able to run
+diff -ur openssh-7.9p1/sshd_config.5 openssh-7.9p1+iPhone/sshd_config.5
+--- openssh-7.9p1/sshd_config.5 2018-10-16 14:01:20.000000000 -1000
++++ openssh-7.9p1+iPhone/sshd_config.5 2018-12-10 10:14:07.000000000 -1000
+@@ -1624,6 +1624,28 @@
as a non-root user.
The default is
.Cm no .
@@ -222,3 +220,5 @@ index e3c7c393..20a185f0 100644
.It Cm VersionAddendum
Optionally specifies additional text to append to the SSH protocol banner
sent by the server upon connection.
+Only in openssh-7.9p1+iPhone: sshd_config.5.orig
+Only in openssh-7.9p1+iPhone: sshd_config.orig
diff --git a/data/openssl/_metadata/depends b/data/openssl/_metadata/depends
index a779e5d04..fd4988ec3 100644
--- a/data/openssl/_metadata/depends
+++ b/data/openssl/_metadata/depends
@@ -1 +1 @@
-ca-certificates
+firmware (>=11.0) | libssl0.9.8
diff --git a/data/openssl/_metadata/description b/data/openssl/_metadata/description
index 3750ad4db..9f645abb8 100644
--- a/data/openssl/_metadata/description
+++ b/data/openssl/_metadata/description
@@ -1 +1 @@
-SSL library and cryptographic tools
+OpenSSL tools
diff --git a/data/openssl/_metadata/in.550.58 b/data/openssl/_metadata/in.550.58
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/data/openssl/_metadata/in.550.58
diff --git a/data/openssl/_metadata/libssl1.0.dep b/data/openssl/_metadata/libssl1.0.dep
new file mode 120000
index 000000000..a501d00a8
--- /dev/null
+++ b/data/openssl/_metadata/libssl1.0.dep
@@ -0,0 +1 @@
+../../libssl1.0 \ No newline at end of file
diff --git a/data/openssl/_metadata/libssl1.0.ver.iphoneos-arm b/data/openssl/_metadata/libssl1.0.ver.iphoneos-arm
new file mode 120000
index 000000000..827dd0dfb
--- /dev/null
+++ b/data/openssl/_metadata/libssl1.0.ver.iphoneos-arm
@@ -0,0 +1 @@
+../../libssl1.0/_metadata/version \ No newline at end of file
diff --git a/data/openssl/_metadata/license b/data/openssl/_metadata/license
index ff99d9724..88ecc67af 100644..120000
--- a/data/openssl/_metadata/license
+++ b/data/openssl/_metadata/license
@@ -1,127 +1 @@
-
- LICENSE ISSUES
- ==============
-
- The OpenSSL toolkit stays under a dual license, i.e. both the conditions of
- the OpenSSL License and the original SSLeay license apply to the toolkit.
- See below for the actual license texts. Actually both licenses are BSD-style
- Open Source licenses. In case of any license issues related to OpenSSL
- please contact openssl-core@openssl.org.
-
- OpenSSL License
- ---------------
-
-/* ====================================================================
- * Copyright (c) 1998-2007 The OpenSSL Project. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. All advertising materials mentioning features or use of this
- * software must display the following acknowledgment:
- * "This product includes software developed by the OpenSSL Project
- * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
- *
- * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
- * endorse or promote products derived from this software without
- * prior written permission. For written permission, please contact
- * openssl-core@openssl.org.
- *
- * 5. Products derived from this software may not be called "OpenSSL"
- * nor may "OpenSSL" appear in their names without prior written
- * permission of the OpenSSL Project.
- *
- * 6. Redistributions of any form whatsoever must retain the following
- * acknowledgment:
- * "This product includes software developed by the OpenSSL Project
- * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
- *
- * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
- * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- * ====================================================================
- *
- * This product includes cryptographic software written by Eric Young
- * (eay@cryptsoft.com). This product includes software written by Tim
- * Hudson (tjh@cryptsoft.com).
- *
- */
-
- Original SSLeay License
- -----------------------
-
-/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- *
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to. The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code. The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- *
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * "This product includes cryptographic software written by
- * Eric Young (eay@cryptsoft.com)"
- * The word 'cryptographic' can be left out if the rouines from the library
- * being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
- * the apps directory (application code) you must include an acknowledgement:
- * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- *
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed. i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
+../../_openssl1.0/_metadata/license \ No newline at end of file
diff --git a/data/openssl/_metadata/maintainer b/data/openssl/_metadata/maintainer
index 573d7ebef..9feba3530 120000
--- a/data/openssl/_metadata/maintainer
+++ b/data/openssl/_metadata/maintainer
@@ -1 +1 @@
-../../../people/sbingner \ No newline at end of file
+../../_openssl1.0/_metadata/maintainer \ No newline at end of file
diff --git a/data/openssl/_metadata/priority b/data/openssl/_metadata/priority
index a6a7b9cd7..7b8c4d01f 100644..120000
--- a/data/openssl/_metadata/priority
+++ b/data/openssl/_metadata/priority
@@ -1 +1 @@
-standard
+../../_openssl1.0/_metadata/priority \ No newline at end of file
diff --git a/data/openssl/_metadata/role b/data/openssl/_metadata/role
index 8d0320866..2948edd45 100644..120000
--- a/data/openssl/_metadata/role
+++ b/data/openssl/_metadata/role
@@ -1 +1 @@
-developer
+../../_openssl1.0/_metadata/role \ No newline at end of file
diff --git a/data/openssl/_metadata/section b/data/openssl/_metadata/section
index 4b487b7d5..4372ae2c4 100644..120000
--- a/data/openssl/_metadata/section
+++ b/data/openssl/_metadata/section
@@ -1 +1 @@
-Security
+../../_openssl1.0/_metadata/section \ No newline at end of file
diff --git a/data/openssl/_metadata/tags b/data/openssl/_metadata/tags
index a8928cec8..575278f73 100644..120000
--- a/data/openssl/_metadata/tags
+++ b/data/openssl/_metadata/tags
@@ -1 +1 @@
-purpose::library
+../../_openssl1.0/_metadata/tags \ No newline at end of file
diff --git a/data/openssl/_metadata/version b/data/openssl/_metadata/version
index 44a7436c8..7c50f5d10 100644..120000
--- a/data/openssl/_metadata/version
+++ b/data/openssl/_metadata/version
@@ -1 +1 @@
-1.0.2o
+../../_openssl1.0/_metadata/version \ No newline at end of file
diff --git a/data/openssl/make.sh b/data/openssl/make.sh
index ba217e0e5..cd09794ff 100644
--- a/data/openssl/make.sh
+++ b/data/openssl/make.sh
@@ -1,11 +1,5 @@
-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
-make AR="${PKG_TARG}-ar -r" -j8
-make install INSTALL_PREFIX="${PKG_DEST}"
-pkg: rm -rf /usr/lib/man /usr/lib/ssl/man
-pkg: mkdir -p /etc/ssl
-mv "${PKG_DEST}"/usr/lib/ssl/{certs,openssl.cnf,private} "${PKG_DEST}"/etc/ssl
-ln -s /etc/ssl/{certs,openssl.cnf,private} "${PKG_DEST}"/usr/lib/ssl
-pkg: ln -s certs/cacert.pem /usr/lib/ssl/cert.pem
-rm -rf "${PKG_DEST}"/usr/lib/*.a
+pkg: mkdir -p /usr/lib
+cp -a "$(PKG_DEST_ _openssl1.0)"/etc "${PKG_DEST}"/
+cp -a "$(PKG_DEST_ _openssl1.0)"/usr/bin "${PKG_DEST}"/usr
+cp -a "$(PKG_DEST_ _openssl1.0)"/usr/include "${PKG_DEST}"/usr
+cp -a "$(PKG_DEST_ _openssl1.0)"/usr/lib/ssl "${PKG_DEST}"/usr/lib
diff --git a/data/openssl/openssl-1.0.2o.tar.gz b/data/openssl/openssl-1.0.2o.tar.gz
deleted file mode 100644
index fff6a9003..000000000
--- a/data/openssl/openssl-1.0.2o.tar.gz
+++ /dev/null
Binary files differ
diff --git a/data/python/_metadata/libssl1.0.dep b/data/python/_metadata/libssl1.0.dep
new file mode 120000
index 000000000..a501d00a8
--- /dev/null
+++ b/data/python/_metadata/libssl1.0.dep
@@ -0,0 +1 @@
+../../libssl1.0 \ No newline at end of file
diff --git a/data/python/_metadata/openssl.dep b/data/python/_metadata/openssl.dep
deleted file mode 120000
index 9b58fd56b..000000000
--- a/data/python/_metadata/openssl.dep
+++ /dev/null
@@ -1 +0,0 @@
-../../openssl \ No newline at end of file
diff --git a/data/raop-play/_metadata/libssl1.0.dep b/data/raop-play/_metadata/libssl1.0.dep
new file mode 120000
index 000000000..a501d00a8
--- /dev/null
+++ b/data/raop-play/_metadata/libssl1.0.dep
@@ -0,0 +1 @@
+../../libssl1.0 \ No newline at end of file
diff --git a/data/raop-play/_metadata/openssl.dep b/data/raop-play/_metadata/openssl.dep
deleted file mode 120000
index 9b58fd56b..000000000
--- a/data/raop-play/_metadata/openssl.dep
+++ /dev/null
@@ -1 +0,0 @@
-../../openssl \ No newline at end of file
diff --git a/data/rdesktop/_metadata/libssl1.0.dep b/data/rdesktop/_metadata/libssl1.0.dep
new file mode 120000
index 000000000..a501d00a8
--- /dev/null
+++ b/data/rdesktop/_metadata/libssl1.0.dep
@@ -0,0 +1 @@
+../../libssl1.0 \ No newline at end of file
diff --git a/data/rdesktop/_metadata/openssl.dep b/data/rdesktop/_metadata/openssl.dep
deleted file mode 120000
index 9b58fd56b..000000000
--- a/data/rdesktop/_metadata/openssl.dep
+++ /dev/null
@@ -1 +0,0 @@
-../../openssl \ No newline at end of file
diff --git a/data/ruby/_metadata/libssl1.0.dep b/data/ruby/_metadata/libssl1.0.dep
new file mode 120000
index 000000000..a501d00a8
--- /dev/null
+++ b/data/ruby/_metadata/libssl1.0.dep
@@ -0,0 +1 @@
+../../libssl1.0 \ No newline at end of file
diff --git a/data/ruby/_metadata/openssl.dep b/data/ruby/_metadata/openssl.dep
deleted file mode 120000
index 9b58fd56b..000000000
--- a/data/ruby/_metadata/openssl.dep
+++ /dev/null
@@ -1 +0,0 @@
-../../openssl \ No newline at end of file
diff --git a/data/socat/_metadata/libssl1.0.dep b/data/socat/_metadata/libssl1.0.dep
new file mode 120000
index 000000000..a501d00a8
--- /dev/null
+++ b/data/socat/_metadata/libssl1.0.dep
@@ -0,0 +1 @@
+../../libssl1.0 \ No newline at end of file
diff --git a/data/socat/_metadata/openssl.dep b/data/socat/_metadata/openssl.dep
deleted file mode 120000
index 9b58fd56b..000000000
--- a/data/socat/_metadata/openssl.dep
+++ /dev/null
@@ -1 +0,0 @@
-../../openssl \ No newline at end of file
diff --git a/data/stunnel/_metadata/libssl1.0.dep b/data/stunnel/_metadata/libssl1.0.dep
new file mode 120000
index 000000000..a501d00a8
--- /dev/null
+++ b/data/stunnel/_metadata/libssl1.0.dep
@@ -0,0 +1 @@
+../../libssl1.0 \ No newline at end of file
diff --git a/data/stunnel/_metadata/openssl.dep b/data/stunnel/_metadata/openssl.dep
deleted file mode 120000
index 9b58fd56b..000000000
--- a/data/stunnel/_metadata/openssl.dep
+++ /dev/null
@@ -1 +0,0 @@
-../../openssl \ No newline at end of file
diff --git a/data/subversion/_metadata/version b/data/subversion/_metadata/version
index 5ad2491cf..1cac385c6 100644
--- a/data/subversion/_metadata/version
+++ b/data/subversion/_metadata/version
@@ -1 +1 @@
-1.10.2
+1.11.0
diff --git a/data/subversion/subversion-1.10.2.tar.bz2 b/data/subversion/subversion-1.11.0.tar.bz2
index 276e55419..4363743bb 100644
--- a/data/subversion/subversion-1.10.2.tar.bz2
+++ b/data/subversion/subversion-1.11.0.tar.bz2
Binary files differ
diff --git a/data/tar/_metadata/conflicts b/data/tar/_metadata/conflicts
new file mode 100644
index 000000000..dedffe154
--- /dev/null
+++ b/data/tar/_metadata/conflicts
@@ -0,0 +1 @@
+dpkg (=1.18.24)
diff --git a/data/tcpdump/_metadata/libssl1.0.dep b/data/tcpdump/_metadata/libssl1.0.dep
new file mode 120000
index 000000000..a501d00a8
--- /dev/null
+++ b/data/tcpdump/_metadata/libssl1.0.dep
@@ -0,0 +1 @@
+../../libssl1.0 \ No newline at end of file
diff --git a/data/tcpdump/_metadata/openssl.dep b/data/tcpdump/_metadata/openssl.dep
deleted file mode 120000
index 9b58fd56b..000000000
--- a/data/tcpdump/_metadata/openssl.dep
+++ /dev/null
@@ -1 +0,0 @@
-../../openssl \ No newline at end of file
diff --git a/data/vfdecrypt/_metadata/libssl1.0.dep b/data/vfdecrypt/_metadata/libssl1.0.dep
new file mode 120000
index 000000000..a501d00a8
--- /dev/null
+++ b/data/vfdecrypt/_metadata/libssl1.0.dep
@@ -0,0 +1 @@
+../../libssl1.0 \ No newline at end of file
diff --git a/data/vfdecrypt/_metadata/openssl.dep b/data/vfdecrypt/_metadata/openssl.dep
deleted file mode 120000
index 9b58fd56b..000000000
--- a/data/vfdecrypt/_metadata/openssl.dep
+++ /dev/null
@@ -1 +0,0 @@
-../../openssl \ No newline at end of file
diff --git a/data/vpnc_/_metadata/libssl1.0.dep b/data/vpnc_/_metadata/libssl1.0.dep
new file mode 120000
index 000000000..a501d00a8
--- /dev/null
+++ b/data/vpnc_/_metadata/libssl1.0.dep
@@ -0,0 +1 @@
+../../libssl1.0 \ No newline at end of file
diff --git a/data/vpnc_/_metadata/openssl.dep b/data/vpnc_/_metadata/openssl.dep
deleted file mode 120000
index 9b58fd56b..000000000
--- a/data/vpnc_/_metadata/openssl.dep
+++ /dev/null
@@ -1 +0,0 @@
-../../openssl \ No newline at end of file
diff --git a/data/wget/_metadata/libssl1.0.dep b/data/wget/_metadata/libssl1.0.dep
new file mode 120000
index 000000000..a501d00a8
--- /dev/null
+++ b/data/wget/_metadata/libssl1.0.dep
@@ -0,0 +1 @@
+../../libssl1.0 \ No newline at end of file
diff --git a/data/wget/_metadata/openssl.dep b/data/wget/_metadata/openssl.dep
deleted file mode 120000
index 9b58fd56b..000000000
--- a/data/wget/_metadata/openssl.dep
+++ /dev/null
@@ -1 +0,0 @@
-../../openssl \ No newline at end of file
diff --git a/data/xar/_metadata/libssl1.0.dep b/data/xar/_metadata/libssl1.0.dep
new file mode 120000
index 000000000..a501d00a8
--- /dev/null
+++ b/data/xar/_metadata/libssl1.0.dep
@@ -0,0 +1 @@
+../../libssl1.0 \ No newline at end of file
diff --git a/data/xar/_metadata/openssl.dep b/data/xar/_metadata/openssl.dep
deleted file mode 120000
index 9b58fd56b..000000000
--- a/data/xar/_metadata/openssl.dep
+++ /dev/null
@@ -1 +0,0 @@
-../../openssl \ No newline at end of file
diff --git a/data/xpwn/_metadata/libssl1.0.dep b/data/xpwn/_metadata/libssl1.0.dep
new file mode 120000
index 000000000..a501d00a8
--- /dev/null
+++ b/data/xpwn/_metadata/libssl1.0.dep
@@ -0,0 +1 @@
+../../libssl1.0 \ No newline at end of file
diff --git a/data/xpwn/_metadata/openssl.dep b/data/xpwn/_metadata/openssl.dep
deleted file mode 120000
index 9b58fd56b..000000000
--- a/data/xpwn/_metadata/openssl.dep
+++ /dev/null
@@ -1 +0,0 @@
-../../openssl \ No newline at end of file
diff --git a/data/xz/_metadata/depends_ b/data/xz/_metadata/depends_
index 2ca8b5ee2..d36a64d23 100644
--- a/data/xz/_metadata/depends_
+++ b/data/xz/_metadata/depends_
@@ -1 +1 @@
-lzma (=4.32.7-5)
+lzma (>=1:0)
diff --git a/make.sh b/make.sh
index 57b6a6935..1cdb35e85 100755
--- a/make.sh
+++ b/make.sh
@@ -224,6 +224,9 @@ find "${PKG_DEST}" -type f -name '*.a' -print0 | while read -r -d $'\0' bin; do
"${PKG_BASE}/util/arid" "${bin}"
done
+if [[ -f "${PKG_STAT}/data-ver" ]] && dpkg --compare-versions $(cat "${PKG_DATA}/_metadata/version") gt $(cat "${PKG_STAT}/data-ver"); then
+ rm "${PKG_STAT}/dest-ver"
+fi
cp -aL "${PKG_DATA}/_metadata/version" "${PKG_STAT}/data-ver"
echo "${PKG_HASH}" >"${PKG_STAT}/data-md5"
diff --git a/package.sh b/package.sh
index 25db5b39b..24ccad70d 100755
--- a/package.sh
+++ b/package.sh
@@ -11,7 +11,6 @@ export PKG_MAKE=$0
export PKG_NAME=${1%_}
export PKG_BASE=$(realpath "$(dirname "$0")")
-source "${PKG_BASE}/helper.sh"
# when running fakeroot, we shouldn't use the previous build result
# as we don't have the fakeroot session info anymore
@@ -22,6 +21,8 @@ else
./remake.sh "${PKG_NAME}"
fi
+source "${PKG_BASE}/helper.sh"
+
pkg: mkdir -p /DEBIAN
./control.sh "${PKG_NAME}" control >"$(pkg_ /DEBIAN/control)"
@@ -44,19 +45,23 @@ fi
export PKG_HASH=$(util/catdir.sh "${PKG_DEST}" | md5sum | cut -d ' ' -f 1)
echo "hashed dest ${PKG_NAME} to: ${PKG_HASH}"
+NEED_PACK=0
-if [[ -e "${PKG_STAT}/dest-md5" && ${PKG_HASH} == $(cat "${PKG_STAT}/dest-md5" 2>/dev/null) ]]; then
- echo "skipping re-package of ${PKG_NAME}"
-else
+if [[ -z ${PKG_RVSN} || ! -e "${PKG_STAT}/dest-md5" || ${PKG_HASH} != $(cat "${PKG_STAT}/dest-md5" 2>/dev/null) ]]; then
if [[ -z ${PKG_RVSN} ]]; then
PKG_RVSN=1
else
PKG_RVSN=$((${PKG_RVSN} + 1))
fi
-
- if [[ ! -d "${PKG_BASE}/debs/${PKG_CFTARG}" ]]; then
- mkdir -p "${PKG_BASE}/debs/${PKG_CFTARG}"
- fi
+ NEED_PACK=1
+fi
+export PKG_PACK=${PKG_BASE}/debs/${PKG_CFTARG}/${PKG_NAME}_${PKG_VRSN}-${PKG_RVSN}_${PKG_ARCH}.deb
+if [[ ${NEED_PACK} == 0 && -f "${PKG_PACK}" ]]; then
+ echo "skipping re-package of ${PKG_NAME}"
+else
+ if [[ ! -d "${PKG_BASE}/debs/${PKG_CFTARG}" ]]; then
+ mkdir -p "${PKG_BASE}/debs/${PKG_CFTARG}"
+ fi
export PKG_PACK=${PKG_BASE}/debs/${PKG_CFTARG}/${PKG_NAME}_${PKG_VRSN}-${PKG_RVSN}_${PKG_ARCH}.deb
if [[ -e ${PKG_PACK} ]]; then
echo "package ${PKG_PACK} already exists..."