summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJay Freeman <saurik@saurik.com>2008-01-02 02:54:43 +0000
committerJay Freeman <saurik@saurik.com>2008-01-02 02:54:43 +0000
commit7fe4faa796d3393f6a806c3ebb56c0a2792c1144 (patch)
tree9565d87578116d8cdb2d1577085bd6e9f3f04853
parent0673535c576267adb537935c02917a526166442d (diff)
Now serving 100 packages, fixed gzip priority/dependents, and moved subversion to versioning.
git-svn-id: http://svn.telesphoreo.org/trunk@8 514c082c-b64e-11dc-b46d-3d985efe055d
-rwxr-xr-xconstruct.sh8
l---------data/apt/_metadata/gzip.dep1
-rw-r--r--data/cpio/_metadata/description2
l---------data/cpio/_metadata/license1
l---------data/cpio/_metadata/maintainer1
-rw-r--r--data/cpio/_metadata/priority1
-rw-r--r--data/cpio/_metadata/section1
-rw-r--r--data/cpio/_metadata/version1
-rw-r--r--data/cpio/cpio-2.9.tar.gzbin0 -> 977105 bytes
-rw-r--r--data/cpio/make.sh6
-rw-r--r--data/cpio/static.diff64
-rw-r--r--data/cvs/_metadata/description2
-rw-r--r--data/cvs/_metadata/license251
l---------data/cvs/_metadata/maintainer1
-rw-r--r--data/cvs/_metadata/priority1
-rw-r--r--data/cvs/_metadata/section1
-rw-r--r--data/cvs/_metadata/version1
-rw-r--r--data/cvs/cvs-1.11.22.tar.gzbin0 -> 3463528 bytes
-rw-r--r--data/cvs/make.sh5
-rw-r--r--data/dict/_metadata/description2
l---------data/dict/_metadata/license1
l---------data/dict/_metadata/maintainer1
-rw-r--r--data/dict/_metadata/priority1
-rw-r--r--data/dict/_metadata/section1
-rw-r--r--data/dict/_metadata/version1
-rw-r--r--data/dict/dictd-1.9.9.tar.gzbin0 -> 668844 bytes
-rw-r--r--data/dict/function.diff39
-rw-r--r--data/dict/label.diff12
-rw-r--r--data/dict/make.sh6
-rw-r--r--data/dict/tools.diff12
-rw-r--r--data/ed/_metadata/description2
l---------data/ed/_metadata/license1
l---------data/ed/_metadata/maintainer1
-rw-r--r--data/ed/_metadata/priority1
-rw-r--r--data/ed/_metadata/section1
-rw-r--r--data/ed/_metadata/version1
-rw-r--r--data/ed/ed-0.8.tar.bz2bin0 -> 68052 bytes
-rw-r--r--data/ed/make.sh5
-rw-r--r--data/fastjar/_metadata/description2
l---------data/fastjar/_metadata/license1
l---------data/fastjar/_metadata/maintainer1
-rw-r--r--data/fastjar/_metadata/priority1
-rw-r--r--data/fastjar/_metadata/section1
-rw-r--r--data/fastjar/_metadata/version1
-rw-r--r--data/fastjar/fastjar-0.94.tar.gzbin0 -> 77399 bytes
-rw-r--r--data/fastjar/make.sh6
-rw-r--r--data/gzip/_metadata/priority2
-rw-r--r--data/indent/_metadata/description2
l---------data/indent/_metadata/license1
l---------data/indent/_metadata/maintainer1
-rw-r--r--data/indent/_metadata/priority1
-rw-r--r--data/indent/_metadata/section1
-rw-r--r--data/indent/_metadata/version1
-rw-r--r--data/indent/indent-2.2.9.tar.gzbin0 -> 678173 bytes
-rw-r--r--data/indent/make.sh9
-rw-r--r--data/indent/static.diff12
-rw-r--r--data/inetutils/_metadata/description2
l---------data/inetutils/_metadata/license1
l---------data/inetutils/_metadata/maintainer1
-rw-r--r--data/inetutils/_metadata/priority1
-rw-r--r--data/inetutils/_metadata/section1
-rw-r--r--data/inetutils/_metadata/version1
-rw-r--r--data/inetutils/inetutils-1.5.tar.gzbin0 -> 1390529 bytes
-rw-r--r--data/inetutils/make.sh7
-rw-r--r--data/inetutils/sysnerr.diff11
-rw-r--r--data/inetutils/utmpx.diff32
-rw-r--r--data/krb5/_metadata/description2
l---------data/krb5/_metadata/libresolv.dep1
-rw-r--r--data/krb5/_metadata/license99
l---------data/krb5/_metadata/maintainer1
-rw-r--r--data/krb5/_metadata/priority1
-rw-r--r--data/krb5/_metadata/section1
-rw-r--r--data/krb5/_metadata/version1
-rw-r--r--data/krb5/krb5-1.6.3.tar.gzbin0 -> 11899169 bytes
-rw-r--r--data/krb5/libresolv.diff48
-rw-r--r--data/krb5/make.sh7
-rw-r--r--data/krb5/nocommon.diff12
-rw-r--r--data/libdict/_metadata/description2
-rw-r--r--data/libdict/_metadata/license20
l---------data/libdict/_metadata/maintainer1
-rw-r--r--data/libdict/_metadata/priority1
-rw-r--r--data/libdict/_metadata/section1
-rw-r--r--data/libdict/_metadata/version1
-rw-r--r--data/libdict/libdict-0.9.tar.gzbin0 -> 49548 bytes
-rw-r--r--data/libdict/make.sh8
-rw-r--r--data/libdict/namespace.diff13
-rw-r--r--data/libdict/tools.diff35
-rw-r--r--data/libresolv/_metadata/description2
l---------data/libresolv/_metadata/license1
l---------data/libresolv/_metadata/maintainer1
-rw-r--r--data/libresolv/_metadata/priority1
-rw-r--r--data/libresolv/_metadata/section1
-rw-r--r--data/libresolv/_metadata/version1
-rw-r--r--data/libresolv/dnsinfo_copy.c338
-rw-r--r--data/libresolv/dnsinfo_private.c76
-rw-r--r--data/libresolv/dnsinfo_private.h193
-rw-r--r--data/libresolv/libresolv-19.tar.gzbin0 -> 135079 bytes
-rw-r--r--data/libresolv/make.sh6
-rw-r--r--data/libresolv/shared_dns_info.h180
-rw-r--r--data/libresolv/shared_dns_infoUser.c524
-rw-r--r--data/libresolv/shared_dns_info_types.h51
-rw-r--r--data/libxml2/_metadata/description2
-rw-r--r--data/libxml2/_metadata/license27
l---------data/libxml2/_metadata/maintainer1
-rw-r--r--data/libxml2/_metadata/priority1
-rw-r--r--data/libxml2/_metadata/section1
-rw-r--r--data/libxml2/_metadata/version1
-rw-r--r--data/libxml2/libxml2-2.6.30.tar.gzbin0 -> 4726657 bytes
-rw-r--r--data/libxml2/make.sh5
-rw-r--r--data/lynx/_metadata/description2
l---------data/lynx/_metadata/license1
l---------data/lynx/_metadata/maintainer1
l---------data/lynx/_metadata/ncurses.dep1
l---------data/lynx/_metadata/openssl.dep1
-rw-r--r--data/lynx/_metadata/priority1
-rw-r--r--data/lynx/_metadata/section1
-rw-r--r--data/lynx/_metadata/version1
-rw-r--r--data/lynx/lynx2.8.6.tar.bz2bin0 -> 2290787 bytes
-rw-r--r--data/lynx/make.sh5
-rw-r--r--data/minicom/_metadata/description2
-rw-r--r--data/minicom/_metadata/license19
l---------data/minicom/_metadata/maintainer1
-rw-r--r--data/minicom/_metadata/priority1
-rw-r--r--data/minicom/_metadata/section1
-rw-r--r--data/minicom/_metadata/version1
-rw-r--r--data/minicom/make.sh6
-rw-r--r--data/minicom/minicom-2.2.tar.gzbin0 -> 720536 bytes
-rw-r--r--data/minicom/types.diff12
-rw-r--r--data/minicom/wprintf.diff1158
-rw-r--r--data/pcre/_metadata/description2
-rw-r--r--data/pcre/_metadata/license68
l---------data/pcre/_metadata/maintainer1
-rw-r--r--data/pcre/_metadata/priority1
-rw-r--r--data/pcre/_metadata/section1
-rw-r--r--data/pcre/_metadata/version1
-rw-r--r--data/pcre/make.sh5
-rw-r--r--data/pcre/pcre-7.4.tar.gzbin0 -> 1106897 bytes
-rw-r--r--data/ruby/_metadata/description2
-rw-r--r--data/ruby/_metadata/license56
l---------data/ruby/_metadata/maintainer1
-rw-r--r--data/ruby/_metadata/priority1
-rw-r--r--data/ruby/_metadata/section1
-rw-r--r--data/ruby/_metadata/version1
-rw-r--r--data/ruby/make.sh8
-rw-r--r--data/ruby/ruby-1.9.0-0.tar.gzbin0 -> 5923616 bytes
-rw-r--r--data/ruby/tools.diff30
-rw-r--r--data/sqlite3/_metadata/description2
-rw-r--r--data/sqlite3/_metadata/license6
l---------data/sqlite3/_metadata/maintainer1
-rw-r--r--data/sqlite3/_metadata/priority1
-rw-r--r--data/sqlite3/_metadata/section1
-rw-r--r--data/sqlite3/_metadata/version1
-rw-r--r--data/sqlite3/make.sh6
-rw-r--r--data/sqlite3/sqlite-3.5.4.tar.gzbin0 -> 2092372 bytes
-rw-r--r--data/stunnel/_metadata/description2
-rw-r--r--data/stunnel/_metadata/license19
l---------data/stunnel/_metadata/maintainer1
-rw-r--r--data/stunnel/_metadata/priority1
-rw-r--r--data/stunnel/_metadata/section1
-rw-r--r--data/stunnel/_metadata/version1
-rw-r--r--data/stunnel/dylib.diff53
-rw-r--r--data/stunnel/make.sh7
-rw-r--r--data/stunnel/stunnel-3.26.tar.gzbin0 -> 228923 bytes
-rw-r--r--data/subversion/_metadata/section2
-rw-r--r--data/uuid/_metadata/description2
-rw-r--r--data/uuid/_metadata/license23
l---------data/uuid/_metadata/maintainer1
-rw-r--r--data/uuid/_metadata/priority1
-rw-r--r--data/uuid/_metadata/section1
-rw-r--r--data/uuid/_metadata/version1
-rw-r--r--data/uuid/make.sh6
-rw-r--r--data/uuid/strip.diff12
-rw-r--r--data/uuid/uuid-1.6.0.tar.gzbin0 -> 406796 bytes
-rw-r--r--data/xml2/_metadata/description2
l---------data/xml2/_metadata/libxml2.dep1
l---------data/xml2/_metadata/license1
l---------data/xml2/_metadata/maintainer1
-rw-r--r--data/xml2/_metadata/priority1
-rw-r--r--data/xml2/_metadata/section1
-rw-r--r--data/xml2/_metadata/version1
-rw-r--r--data/xml2/characters.diff30
-rw-r--r--data/xml2/make.sh5
-rw-r--r--data/xml2/xml2-0.2.tar.gzbin0 -> 10925 bytes
-rwxr-xr-xmake.sh9
184 files changed, 3796 insertions, 6 deletions
diff --git a/construct.sh b/construct.sh
index 7b5c20205..bd0c5dfe0 100755
--- a/construct.sh
+++ b/construct.sh
@@ -14,9 +14,11 @@ rm -rf "${PKG_REPO}/debs"
cp -a debs "${PKG_REPO}"
cd "${PKG_REPO}/dists/tangelo"
+export PKG_RVSN=8
+
cat >main/binary-darwin-arm/Release <<EOF
Archive: stable
-Version: 1.0r5
+Version: 1.0r${PKG_RVSN}
Component: main
Origin: saurik
Label: Telesphoreo
@@ -28,11 +30,11 @@ EOF
Origin: saurik
Label: Telesphoreo
Suite: stable
-Version: 1.0r5
+Version: 1.0r${PKG_RVSN}
Codename: tangelo
Architectures: darwin-arm
Components: main
-Description: Telesphoreo Tangelo 1.0r5
+Description: Telesphoreo Tangelo 1.0r${PKG_RVSN}
MD5Sum:
EOF
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/cpio/_metadata/description b/data/cpio/_metadata/description
new file mode 100644
index 000000000..005d9a0c9
--- /dev/null
+++ b/data/cpio/_metadata/description
@@ -0,0 +1,2 @@
+this package isn't described yet
+This package, which I'm certain is incredibly interesting, has yet to be described. This is probably because Jay has spent days getting all kinds of bookkeeping issues, like copyright notifications, all in their correct places, and descriptions just aren't the most important thing he could be working on. If this is a problem, please come back later.
diff --git a/data/cpio/_metadata/license b/data/cpio/_metadata/license
new file mode 120000
index 000000000..af4224931
--- /dev/null
+++ b/data/cpio/_metadata/license
@@ -0,0 +1 @@
+../../../licenses/gpl-3 \ No newline at end of file
diff --git a/data/cpio/_metadata/maintainer b/data/cpio/_metadata/maintainer
new file mode 120000
index 000000000..0fa66e077
--- /dev/null
+++ b/data/cpio/_metadata/maintainer
@@ -0,0 +1 @@
+../../../people/saurik \ No newline at end of file
diff --git a/data/cpio/_metadata/priority b/data/cpio/_metadata/priority
new file mode 100644
index 000000000..134d9bc32
--- /dev/null
+++ b/data/cpio/_metadata/priority
@@ -0,0 +1 @@
+optional
diff --git a/data/cpio/_metadata/section b/data/cpio/_metadata/section
new file mode 100644
index 000000000..f1d43c641
--- /dev/null
+++ b/data/cpio/_metadata/section
@@ -0,0 +1 @@
+archive
diff --git a/data/cpio/_metadata/version b/data/cpio/_metadata/version
new file mode 100644
index 000000000..8c2691509
--- /dev/null
+++ b/data/cpio/_metadata/version
@@ -0,0 +1 @@
+2.9
diff --git a/data/cpio/cpio-2.9.tar.gz b/data/cpio/cpio-2.9.tar.gz
new file mode 100644
index 000000000..ebdb4fb10
--- /dev/null
+++ b/data/cpio/cpio-2.9.tar.gz
Binary files differ
diff --git a/data/cpio/make.sh b/data/cpio/make.sh
new file mode 100644
index 000000000..e100ef1b5
--- /dev/null
+++ b/data/cpio/make.sh
@@ -0,0 +1,6 @@
+pkg:extract
+cd *
+pkg:patch
+pkg:configure ac_cv_func_obstack=no
+make
+pkg:install
diff --git a/data/cpio/static.diff b/data/cpio/static.diff
new file mode 100644
index 000000000..41733b504
--- /dev/null
+++ b/data/cpio/static.diff
@@ -0,0 +1,64 @@
+diff -r -u tar-1.19/lib/argp-fmtstream.h tar-1.19+iPhone/lib/argp-fmtstream.h
+--- tar-1.19/lib/argp-fmtstream.h 2007-09-28 13:11:36.000000000 +0000
++++ tar-1.19+iPhone/lib/argp-fmtstream.h 2007-12-26 23:04:38.000000000 +0000
+@@ -135,15 +135,15 @@
+ const char *__fmt, ...)
+ __attribute__ ((__format__ (printf, 2, 3)));
+
+-extern int __argp_fmtstream_putc (argp_fmtstream_t __fs, int __ch);
+-extern int argp_fmtstream_putc (argp_fmtstream_t __fs, int __ch);
++static int __argp_fmtstream_putc (argp_fmtstream_t __fs, int __ch);
++static int argp_fmtstream_putc (argp_fmtstream_t __fs, int __ch);
+
+-extern int __argp_fmtstream_puts (argp_fmtstream_t __fs, const char *__str);
+-extern int argp_fmtstream_puts (argp_fmtstream_t __fs, const char *__str);
++static int __argp_fmtstream_puts (argp_fmtstream_t __fs, const char *__str);
++static int argp_fmtstream_puts (argp_fmtstream_t __fs, const char *__str);
+
+-extern size_t __argp_fmtstream_write (argp_fmtstream_t __fs,
++static size_t __argp_fmtstream_write (argp_fmtstream_t __fs,
+ const char *__str, size_t __len);
+-extern size_t argp_fmtstream_write (argp_fmtstream_t __fs,
++static size_t argp_fmtstream_write (argp_fmtstream_t __fs,
+ const char *__str, size_t __len);
+
+ /* Access macros for various bits of state. */
+@@ -155,25 +155,25 @@
+ #define __argp_fmtstream_wmargin argp_fmtstream_wmargin
+
+ /* Set __FS's left margin to LMARGIN and return the old value. */
+-extern size_t argp_fmtstream_set_lmargin (argp_fmtstream_t __fs,
++static size_t argp_fmtstream_set_lmargin (argp_fmtstream_t __fs,
+ size_t __lmargin);
+ extern size_t __argp_fmtstream_set_lmargin (argp_fmtstream_t __fs,
+ size_t __lmargin);
+
+ /* Set __FS's right margin to __RMARGIN and return the old value. */
+-extern size_t argp_fmtstream_set_rmargin (argp_fmtstream_t __fs,
++static size_t argp_fmtstream_set_rmargin (argp_fmtstream_t __fs,
+ size_t __rmargin);
+ extern size_t __argp_fmtstream_set_rmargin (argp_fmtstream_t __fs,
+ size_t __rmargin);
+
+ /* Set __FS's wrap margin to __WMARGIN and return the old value. */
+-extern size_t argp_fmtstream_set_wmargin (argp_fmtstream_t __fs,
++static size_t argp_fmtstream_set_wmargin (argp_fmtstream_t __fs,
+ size_t __wmargin);
+ extern size_t __argp_fmtstream_set_wmargin (argp_fmtstream_t __fs,
+ size_t __wmargin);
+
+ /* Return the column number of the current output point in __FS. */
+-extern size_t argp_fmtstream_point (argp_fmtstream_t __fs);
++static size_t argp_fmtstream_point (argp_fmtstream_t __fs);
+ extern size_t __argp_fmtstream_point (argp_fmtstream_t __fs);
+
+ /* Internal routines. */
+@@ -198,7 +198,7 @@
+ #endif
+
+ #ifndef ARGP_FS_EI
+-#define ARGP_FS_EI extern inline
++#define ARGP_FS_EI static inline
+ #endif
+
+ ARGP_FS_EI size_t
diff --git a/data/cvs/_metadata/description b/data/cvs/_metadata/description
new file mode 100644
index 000000000..005d9a0c9
--- /dev/null
+++ b/data/cvs/_metadata/description
@@ -0,0 +1,2 @@
+this package isn't described yet
+This package, which I'm certain is incredibly interesting, has yet to be described. This is probably because Jay has spent days getting all kinds of bookkeeping issues, like copyright notifications, all in their correct places, and descriptions just aren't the most important thing he could be working on. If this is a problem, please come back later.
diff --git a/data/cvs/_metadata/license b/data/cvs/_metadata/license
new file mode 100644
index 000000000..57da8a45c
--- /dev/null
+++ b/data/cvs/_metadata/license
@@ -0,0 +1,251 @@
+[I have snipped the snail mail address of the FSF because it has
+changed in the past and is likely to change again. The current
+address should be at http://www.gnu.org/]
+
+ GNU GENERAL PUBLIC LICENSE
+ Version 1, February 1989
+
+ Copyright (C) 1989 Free Software Foundation, Inc.
+ 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.
+
+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/cvs/_metadata/maintainer b/data/cvs/_metadata/maintainer
new file mode 120000
index 000000000..0fa66e077
--- /dev/null
+++ b/data/cvs/_metadata/maintainer
@@ -0,0 +1 @@
+../../../people/saurik \ No newline at end of file
diff --git a/data/cvs/_metadata/priority b/data/cvs/_metadata/priority
new file mode 100644
index 000000000..134d9bc32
--- /dev/null
+++ b/data/cvs/_metadata/priority
@@ -0,0 +1 @@
+optional
diff --git a/data/cvs/_metadata/section b/data/cvs/_metadata/section
new file mode 100644
index 000000000..7fd8a7f94
--- /dev/null
+++ b/data/cvs/_metadata/section
@@ -0,0 +1 @@
+versioning
diff --git a/data/cvs/_metadata/version b/data/cvs/_metadata/version
new file mode 100644
index 000000000..45333f34e
--- /dev/null
+++ b/data/cvs/_metadata/version
@@ -0,0 +1 @@
+1.11.22
diff --git a/data/cvs/cvs-1.11.22.tar.gz b/data/cvs/cvs-1.11.22.tar.gz
new file mode 100644
index 000000000..b135ea320
--- /dev/null
+++ b/data/cvs/cvs-1.11.22.tar.gz
Binary files differ
diff --git a/data/cvs/make.sh b/data/cvs/make.sh
new file mode 100644
index 000000000..0874bed08
--- /dev/null
+++ b/data/cvs/make.sh
@@ -0,0 +1,5 @@
+pkg:extract
+cd *
+pkg:configure --without-gssapi
+make
+pkg:install
diff --git a/data/dict/_metadata/description b/data/dict/_metadata/description
new file mode 100644
index 000000000..005d9a0c9
--- /dev/null
+++ b/data/dict/_metadata/description
@@ -0,0 +1,2 @@
+this package isn't described yet
+This package, which I'm certain is incredibly interesting, has yet to be described. This is probably because Jay has spent days getting all kinds of bookkeeping issues, like copyright notifications, all in their correct places, and descriptions just aren't the most important thing he could be working on. If this is a problem, please come back later.
diff --git a/data/dict/_metadata/license b/data/dict/_metadata/license
new file mode 120000
index 000000000..9c13a9a0f
--- /dev/null
+++ b/data/dict/_metadata/license
@@ -0,0 +1 @@
+../../../licenses/gpl-2 \ No newline at end of file
diff --git a/data/dict/_metadata/maintainer b/data/dict/_metadata/maintainer
new file mode 120000
index 000000000..0fa66e077
--- /dev/null
+++ b/data/dict/_metadata/maintainer
@@ -0,0 +1 @@
+../../../people/saurik \ No newline at end of file
diff --git a/data/dict/_metadata/priority b/data/dict/_metadata/priority
new file mode 100644
index 000000000..134d9bc32
--- /dev/null
+++ b/data/dict/_metadata/priority
@@ -0,0 +1 @@
+optional
diff --git a/data/dict/_metadata/section b/data/dict/_metadata/section
new file mode 100644
index 000000000..992ae1298
--- /dev/null
+++ b/data/dict/_metadata/section
@@ -0,0 +1 @@
+network
diff --git a/data/dict/_metadata/version b/data/dict/_metadata/version
new file mode 100644
index 000000000..6ae756c47
--- /dev/null
+++ b/data/dict/_metadata/version
@@ -0,0 +1 @@
+1.9.9
diff --git a/data/dict/dictd-1.9.9.tar.gz b/data/dict/dictd-1.9.9.tar.gz
new file mode 100644
index 000000000..d1afc815f
--- /dev/null
+++ b/data/dict/dictd-1.9.9.tar.gz
Binary files differ
diff --git a/data/dict/function.diff b/data/dict/function.diff
new file mode 100644
index 000000000..779cff617
--- /dev/null
+++ b/data/dict/function.diff
@@ -0,0 +1,39 @@
+diff -r -u dictd-1.9.9/libmaa/parse.c dictd-1.9.9+iPhone/libmaa/parse.c
+--- dictd-1.9.9/libmaa/parse.c 2002-08-02 19:43:15.000000000 +0000
++++ dictd-1.9.9+iPhone/libmaa/parse.c 2008-01-01 23:41:00.000000000 +0000
+@@ -75,7 +75,7 @@
+
+ if (!cpp) {
+ if ((cpp = getenv( "KHEPERA_CPP" ))) {
+- PRINTF(MAA_PARSE,(__FUNCTION__ ": Using KHEPERA_CPP from %s\n",cpp));
++ PRINTF(MAA_PARSE,("%s: Using KHEPERA_CPP from %s\n",__FUNCTION__,cpp));
+ }
+
+ /* Always look for gcc's cpp first, since
+@@ -86,7 +86,7 @@
+
+ if (fread( buf, 1, 1023, tmp ) > 0) {
+ if ((t = strchr( buf, '\n' ))) *t = '\0';
+- PRINTF(MAA_PARSE,(__FUNCTION__ ": Using GNU cpp from %s\n",buf));
++ PRINTF(MAA_PARSE,("%s: Using GNU cpp from %s\n",__FUNCTION__,buf));
+ cpp = str_find( buf );
+ extra_options = "-nostdinc -nostdinc++";
+ }
+@@ -103,7 +103,7 @@
+ for (pt = cpps; **pt; pt++) {
+ if (!access( *pt, X_OK )) {
+ PRINTF(MAA_PARSE,
+- (__FUNCTION__ ": Using system cpp from %s\n",*pt));
++ ("%s: Using system cpp from %s\n",__FUNCTION__,*pt));
+ cpp = *pt;
+ break;
+ }
+@@ -123,7 +123,7 @@
+ sprintf( buffer, "%s -I. %s %s 2>/dev/null", cpp,
+ _prs_cpp_options ? _prs_cpp_options : "", filename );
+
+- PRINTF(MAA_PARSE,(__FUNCTION__ ": %s\n",buffer));
++ PRINTF(MAA_PARSE,("%s: %s\n",__FUNCTION__,buffer));
+ if (!(yyin = popen( buffer, "r" )))
+ err_fatal_errno( __FUNCTION__,
+ "Cannot open \"%s\" for read\n", filename );
diff --git a/data/dict/label.diff b/data/dict/label.diff
new file mode 100644
index 000000000..607956c22
--- /dev/null
+++ b/data/dict/label.diff
@@ -0,0 +1,12 @@
+diff -r -u dictd-1.9.9/dictfmt.c dictd-1.9.9+iPhone/dictfmt.c
+--- dictd-1.9.9/dictfmt.c 2003-03-19 16:43:26.000000000 +0000
++++ dictd-1.9.9+iPhone/dictfmt.c 2008-01-01 23:49:30.000000000 +0000
+@@ -776,7 +776,7 @@
+ fmt_string(buf);
+ fmt_newline();
+ }
+- skip:
++ skip:;
+ }
+
+ fmt_closeindex();
diff --git a/data/dict/make.sh b/data/dict/make.sh
new file mode 100644
index 000000000..84f49c26f
--- /dev/null
+++ b/data/dict/make.sh
@@ -0,0 +1,6 @@
+pkg:extract
+cd *
+pkg:patch
+pkg:configure ac_cv_type_wint_t=yes ac_cv_prog_AR=$(which arm-apple-darwin-ar)
+make AR=arm-apple-darwin-ar
+pkg:install
diff --git a/data/dict/tools.diff b/data/dict/tools.diff
new file mode 100644
index 000000000..ee1c84485
--- /dev/null
+++ b/data/dict/tools.diff
@@ -0,0 +1,12 @@
+diff -r -u dictd-1.9.9/regex/Makefile dictd-1.9.9+iPhone/regex/Makefile
+--- dictd-1.9.9/regex/Makefile 2002-05-03 14:12:24.000000000 +0000
++++ dictd-1.9.9+iPhone/regex/Makefile 2008-01-01 23:48:15.000000000 +0000
+@@ -39,7 +39,7 @@
+
+ libregex.a: $(OBJPRODN)
+ rm -f libregex.a
+- ar crv libregex.a $(OBJPRODN)
++ $(AR) crv libregex.a $(OBJPRODN)
+
+ purge:
+ rm -f *.o
diff --git a/data/ed/_metadata/description b/data/ed/_metadata/description
new file mode 100644
index 000000000..005d9a0c9
--- /dev/null
+++ b/data/ed/_metadata/description
@@ -0,0 +1,2 @@
+this package isn't described yet
+This package, which I'm certain is incredibly interesting, has yet to be described. This is probably because Jay has spent days getting all kinds of bookkeeping issues, like copyright notifications, all in their correct places, and descriptions just aren't the most important thing he could be working on. If this is a problem, please come back later.
diff --git a/data/ed/_metadata/license b/data/ed/_metadata/license
new file mode 120000
index 000000000..af4224931
--- /dev/null
+++ b/data/ed/_metadata/license
@@ -0,0 +1 @@
+../../../licenses/gpl-3 \ No newline at end of file
diff --git a/data/ed/_metadata/maintainer b/data/ed/_metadata/maintainer
new file mode 120000
index 000000000..0fa66e077
--- /dev/null
+++ b/data/ed/_metadata/maintainer
@@ -0,0 +1 @@
+../../../people/saurik \ No newline at end of file
diff --git a/data/ed/_metadata/priority b/data/ed/_metadata/priority
new file mode 100644
index 000000000..ea5b3d7ee
--- /dev/null
+++ b/data/ed/_metadata/priority
@@ -0,0 +1 @@
+important
diff --git a/data/ed/_metadata/section b/data/ed/_metadata/section
new file mode 100644
index 000000000..85042acd1
--- /dev/null
+++ b/data/ed/_metadata/section
@@ -0,0 +1 @@
+editor
diff --git a/data/ed/_metadata/version b/data/ed/_metadata/version
new file mode 100644
index 000000000..aec258df7
--- /dev/null
+++ b/data/ed/_metadata/version
@@ -0,0 +1 @@
+0.8
diff --git a/data/ed/ed-0.8.tar.bz2 b/data/ed/ed-0.8.tar.bz2
new file mode 100644
index 000000000..af5339baa
--- /dev/null
+++ b/data/ed/ed-0.8.tar.bz2
Binary files differ
diff --git a/data/ed/make.sh b/data/ed/make.sh
new file mode 100644
index 000000000..3504cbff8
--- /dev/null
+++ b/data/ed/make.sh
@@ -0,0 +1,5 @@
+pkg:extract
+cd *
+./configure --prefix=/usr
+make CC=arm-apple-darwin-gcc
+pkg:install
diff --git a/data/fastjar/_metadata/description b/data/fastjar/_metadata/description
new file mode 100644
index 000000000..005d9a0c9
--- /dev/null
+++ b/data/fastjar/_metadata/description
@@ -0,0 +1,2 @@
+this package isn't described yet
+This package, which I'm certain is incredibly interesting, has yet to be described. This is probably because Jay has spent days getting all kinds of bookkeeping issues, like copyright notifications, all in their correct places, and descriptions just aren't the most important thing he could be working on. If this is a problem, please come back later.
diff --git a/data/fastjar/_metadata/license b/data/fastjar/_metadata/license
new file mode 120000
index 000000000..9c13a9a0f
--- /dev/null
+++ b/data/fastjar/_metadata/license
@@ -0,0 +1 @@
+../../../licenses/gpl-2 \ No newline at end of file
diff --git a/data/fastjar/_metadata/maintainer b/data/fastjar/_metadata/maintainer
new file mode 120000
index 000000000..0fa66e077
--- /dev/null
+++ b/data/fastjar/_metadata/maintainer
@@ -0,0 +1 @@
+../../../people/saurik \ No newline at end of file
diff --git a/data/fastjar/_metadata/priority b/data/fastjar/_metadata/priority
new file mode 100644
index 000000000..134d9bc32
--- /dev/null
+++ b/data/fastjar/_metadata/priority
@@ -0,0 +1 @@
+optional
diff --git a/data/fastjar/_metadata/section b/data/fastjar/_metadata/section
new file mode 100644
index 000000000..f1d43c641
--- /dev/null
+++ b/data/fastjar/_metadata/section
@@ -0,0 +1 @@
+archive
diff --git a/data/fastjar/_metadata/version b/data/fastjar/_metadata/version
new file mode 100644
index 000000000..fc7307432
--- /dev/null
+++ b/data/fastjar/_metadata/version
@@ -0,0 +1 @@
+0.94
diff --git a/data/fastjar/fastjar-0.94.tar.gz b/data/fastjar/fastjar-0.94.tar.gz
new file mode 100644
index 000000000..67d369926
--- /dev/null
+++ b/data/fastjar/fastjar-0.94.tar.gz
Binary files differ
diff --git a/data/fastjar/make.sh b/data/fastjar/make.sh
new file mode 100644
index 000000000..a2d6f6ae5
--- /dev/null
+++ b/data/fastjar/make.sh
@@ -0,0 +1,6 @@
+pkg:extract
+cd *
+autoconf
+pkg:configure
+make
+pkg:install
diff --git a/data/gzip/_metadata/priority b/data/gzip/_metadata/priority
index ea5b3d7ee..fad9e164a 100644
--- a/data/gzip/_metadata/priority
+++ b/data/gzip/_metadata/priority
@@ -1 +1 @@
-important
+required
diff --git a/data/indent/_metadata/description b/data/indent/_metadata/description
new file mode 100644
index 000000000..005d9a0c9
--- /dev/null
+++ b/data/indent/_metadata/description
@@ -0,0 +1,2 @@
+this package isn't described yet
+This package, which I'm certain is incredibly interesting, has yet to be described. This is probably because Jay has spent days getting all kinds of bookkeeping issues, like copyright notifications, all in their correct places, and descriptions just aren't the most important thing he could be working on. If this is a problem, please come back later.
diff --git a/data/indent/_metadata/license b/data/indent/_metadata/license
new file mode 120000
index 000000000..9c13a9a0f
--- /dev/null
+++ b/data/indent/_metadata/license
@@ -0,0 +1 @@
+../../../licenses/gpl-2 \ No newline at end of file
diff --git a/data/indent/_metadata/maintainer b/data/indent/_metadata/maintainer
new file mode 120000
index 000000000..0fa66e077
--- /dev/null
+++ b/data/indent/_metadata/maintainer
@@ -0,0 +1 @@
+../../../people/saurik \ No newline at end of file
diff --git a/data/indent/_metadata/priority b/data/indent/_metadata/priority
new file mode 100644
index 000000000..a6a7b9cd7
--- /dev/null
+++ b/data/indent/_metadata/priority
@@ -0,0 +1 @@
+standard
diff --git a/data/indent/_metadata/section b/data/indent/_metadata/section
new file mode 100644
index 000000000..2ac05bdde
--- /dev/null
+++ b/data/indent/_metadata/section
@@ -0,0 +1 @@
+console
diff --git a/data/indent/_metadata/version b/data/indent/_metadata/version
new file mode 100644
index 000000000..a6333e400
--- /dev/null
+++ b/data/indent/_metadata/version
@@ -0,0 +1 @@
+2.2.9
diff --git a/data/indent/indent-2.2.9.tar.gz b/data/indent/indent-2.2.9.tar.gz
new file mode 100644
index 000000000..154636662
--- /dev/null
+++ b/data/indent/indent-2.2.9.tar.gz
Binary files differ
diff --git a/data/indent/make.sh b/data/indent/make.sh
new file mode 100644
index 000000000..db0c3a79d
--- /dev/null
+++ b/data/indent/make.sh
@@ -0,0 +1,9 @@
+pkg:extract
+cd *
+pkg:patch
+pkg:configure
+cd man
+make CC=gcc
+cd ..
+make
+pkg:install
diff --git a/data/indent/static.diff b/data/indent/static.diff
new file mode 100644
index 000000000..485f33555
--- /dev/null
+++ b/data/indent/static.diff
@@ -0,0 +1,12 @@
+diff -ru indent-2.2.9/src/indent.h indent-2.2.9+iPhone/src/indent.h
+--- indent-2.2.9/src/indent.h 2002-11-10 21:02:48.000000000 +0000
++++ indent-2.2.9+iPhone/src/indent.h 2008-01-01 23:08:20.000000000 +0000
+@@ -96,8 +96,6 @@
+ /* Size of the input program, not including the ' \n\0' we add at the end */
+ extern unsigned long in_prog_size;
+
+-/* The output file. */
+-extern FILE *output;
+
+
+
diff --git a/data/inetutils/_metadata/description b/data/inetutils/_metadata/description
new file mode 100644
index 000000000..005d9a0c9
--- /dev/null
+++ b/data/inetutils/_metadata/description
@@ -0,0 +1,2 @@
+this package isn't described yet
+This package, which I'm certain is incredibly interesting, has yet to be described. This is probably because Jay has spent days getting all kinds of bookkeeping issues, like copyright notifications, all in their correct places, and descriptions just aren't the most important thing he could be working on. If this is a problem, please come back later.
diff --git a/data/inetutils/_metadata/license b/data/inetutils/_metadata/license
new file mode 120000
index 000000000..af4224931
--- /dev/null
+++ b/data/inetutils/_metadata/license
@@ -0,0 +1 @@
+../../../licenses/gpl-3 \ No newline at end of file
diff --git a/data/inetutils/_metadata/maintainer b/data/inetutils/_metadata/maintainer
new file mode 120000
index 000000000..0fa66e077
--- /dev/null
+++ b/data/inetutils/_metadata/maintainer
@@ -0,0 +1 @@
+../../../people/saurik \ No newline at end of file
diff --git a/data/inetutils/_metadata/priority b/data/inetutils/_metadata/priority
new file mode 100644
index 000000000..a6a7b9cd7
--- /dev/null
+++ b/data/inetutils/_metadata/priority
@@ -0,0 +1 @@
+standard
diff --git a/data/inetutils/_metadata/section b/data/inetutils/_metadata/section
new file mode 100644
index 000000000..992ae1298
--- /dev/null
+++ b/data/inetutils/_metadata/section
@@ -0,0 +1 @@
+network
diff --git a/data/inetutils/_metadata/version b/data/inetutils/_metadata/version
new file mode 100644
index 000000000..c239c60cb
--- /dev/null
+++ b/data/inetutils/_metadata/version
@@ -0,0 +1 @@
+1.5
diff --git a/data/inetutils/inetutils-1.5.tar.gz b/data/inetutils/inetutils-1.5.tar.gz
new file mode 100644
index 000000000..94e0641d7
--- /dev/null
+++ b/data/inetutils/inetutils-1.5.tar.gz
Binary files differ
diff --git a/data/inetutils/make.sh b/data/inetutils/make.sh
new file mode 100644
index 000000000..c48344358
--- /dev/null
+++ b/data/inetutils/make.sh
@@ -0,0 +1,7 @@
+pkg:extract
+cd *
+pkg:patch
+autoconf
+pkg:configure ac_cv_type_sa_family_t=yes ac_cv_type_socklen_t=yes ac_cv_member_struct_utmp_ut_user=yes ac_cv_func_obstack=no
+make
+pkg:install
diff --git a/data/inetutils/sysnerr.diff b/data/inetutils/sysnerr.diff
new file mode 100644
index 000000000..402cfe598
--- /dev/null
+++ b/data/inetutils/sysnerr.diff
@@ -0,0 +1,11 @@
+diff -ru inetutils-1.5/talk/io.c inetutils-1.5+iPhone/talk/io.c
+--- inetutils-1.5/talk/io.c 2006-10-11 21:46:26.000000000 +0000
++++ inetutils-1.5+iPhone/talk/io.c 2008-01-02 02:27:47.000000000 +0000
+@@ -129,7 +129,6 @@
+ }
+
+ extern int errno;
+-extern int sys_nerr;
+
+ /*
+ * p_error prints the system error message on the standard location
diff --git a/data/inetutils/utmpx.diff b/data/inetutils/utmpx.diff
new file mode 100644
index 000000000..b3b64cb58
--- /dev/null
+++ b/data/inetutils/utmpx.diff
@@ -0,0 +1,32 @@
+diff -ru inetutils-1.5/configure.ac inetutils-1.5+iPhone/configure.ac
+--- inetutils-1.5/configure.ac 2007-06-28 22:58:23.000000000 +0000
++++ inetutils-1.5+iPhone/configure.ac 2008-01-02 02:07:05.000000000 +0000
+@@ -776,8 +776,7 @@
+ AC_DEFINE(UTMPX, 1, [FIXME])
+ AC_DEFINE(HAVE_STREAMSPTY, 1, [FIXME])
+ ;;
+-*irix* | *hpux*)
+- AC_DEFINE(UTMPX, 1, [FIXME])
++*irix* | *hpux* | *darwin*)
+ AC_DEFINE(UTMPX, 1, [FIXME])
+ ;;
+ esac
+diff -ru inetutils-1.5/libinetutils/utmp_logout.c inetutils-1.5+iPhone/libinetutils/utmp_logout.c
+--- inetutils-1.5/libinetutils/utmp_logout.c 2006-10-11 21:46:24.000000000 +0000
++++ inetutils-1.5+iPhone/libinetutils/utmp_logout.c 2008-01-02 02:23:02.000000000 +0000
+@@ -52,11 +52,15 @@
+
+ if ((ut = getutxline(&utx))) {
+ ut->ut_type = DEAD_PROCESS;
++#ifdef HAVE_STRUCT_UTMPX_UT_EXIT
+ ut->ut_exit.e_termination = 0;
+ ut->ut_exit.e_exit = 0;
++#endif
+ gettimeofday(&(ut->ut_tv), 0);
+ pututxline(ut);
++#ifdef HAVE_UPDWTMPX
+ updwtmpx(PATH_WTMPX, ut);
++#endif
+ }
+ endutxent();
+ #else
diff --git a/data/krb5/_metadata/description b/data/krb5/_metadata/description
new file mode 100644
index 000000000..005d9a0c9
--- /dev/null
+++ b/data/krb5/_metadata/description
@@ -0,0 +1,2 @@
+this package isn't described yet
+This package, which I'm certain is incredibly interesting, has yet to be described. This is probably because Jay has spent days getting all kinds of bookkeeping issues, like copyright notifications, all in their correct places, and descriptions just aren't the most important thing he could be working on. If this is a problem, please come back later.
diff --git a/data/krb5/_metadata/libresolv.dep b/data/krb5/_metadata/libresolv.dep
new file mode 120000
index 000000000..40a8d5796
--- /dev/null
+++ b/data/krb5/_metadata/libresolv.dep
@@ -0,0 +1 @@
+../../libresolv \ No newline at end of file
diff --git a/data/krb5/_metadata/license b/data/krb5/_metadata/license
new file mode 100644
index 000000000..7cdf93542
--- /dev/null
+++ b/data/krb5/_metadata/license
@@ -0,0 +1,99 @@
+ Copyright (c) 2004 Sun Microsystems, Inc.
+
+ Permission is hereby granted, free of charge, to any person obtaining a
+ copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+
+ The above copyright notice and this permission notice shall be included
+ in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ --------------------
+
+MIT Kerberos includes documentation and software developed at the
+University of California at Berkeley, which includes this copyright
+notice:
+
+ Copyright (C) 1983 Regents of the University of California.
+ 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. Neither the name of the University nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "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 REGENTS 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.
+
+ --------------------
+
+Portions contributed by Novell, Inc., including the LDAP database
+backend, are subject to the following license:
+
+ Copyright (c) 2004-2005, Novell, Inc.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * 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.
+ * The copyright holder's name is not used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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.
+
+ --------------------
+
+Portions funded by Sandia National Laboratory and developed by the
+University of Michigan's Center for Information Technology
+Integration, including the PKINIT implementation, are subject to the
+following license:
+
+ COPYRIGHT (C) 2006-2007
+ THE REGENTS OF THE UNIVERSITY OF MICHIGAN
+ ALL RIGHTS RESERVED
diff --git a/data/krb5/_metadata/maintainer b/data/krb5/_metadata/maintainer
new file mode 120000
index 000000000..0fa66e077
--- /dev/null
+++ b/data/krb5/_metadata/maintainer
@@ -0,0 +1 @@
+../../../people/saurik \ No newline at end of file
diff --git a/data/krb5/_metadata/priority b/data/krb5/_metadata/priority
new file mode 100644
index 000000000..134d9bc32
--- /dev/null
+++ b/data/krb5/_metadata/priority
@@ -0,0 +1 @@
+optional
diff --git a/data/krb5/_metadata/section b/data/krb5/_metadata/section
new file mode 100644
index 000000000..e644cf4d5
--- /dev/null
+++ b/data/krb5/_metadata/section
@@ -0,0 +1 @@
+security
diff --git a/data/krb5/_metadata/version b/data/krb5/_metadata/version
new file mode 100644
index 000000000..266146b87
--- /dev/null
+++ b/data/krb5/_metadata/version
@@ -0,0 +1 @@
+1.6.3
diff --git a/data/krb5/krb5-1.6.3.tar.gz b/data/krb5/krb5-1.6.3.tar.gz
new file mode 100644
index 000000000..9f48dc80a
--- /dev/null
+++ b/data/krb5/krb5-1.6.3.tar.gz
Binary files differ
diff --git a/data/krb5/libresolv.diff b/data/krb5/libresolv.diff
new file mode 100644
index 000000000..0ed115bb6
--- /dev/null
+++ b/data/krb5/libresolv.diff
@@ -0,0 +1,48 @@
+diff -ru krb5-1.6.3/src/lib/kadm5/clnt/Makefile.in krb5-1.6.3+iPhone/src/lib/kadm5/clnt/Makefile.in
+--- krb5-1.6.3/src/lib/kadm5/clnt/Makefile.in 2007-09-18 04:22:24.000000000 +0000
++++ krb5-1.6.3+iPhone/src/lib/kadm5/clnt/Makefile.in 2008-01-02 01:01:40.000000000 +0000
+@@ -5,6 +5,8 @@
+ LOCALINCLUDES = -I$(BUILDTOP)/include/kadm5
+ DEFS=
+
++MAKE_SHLIB_COMMAND += $(LIBRESOLV)
++
+ LIBBASE=kadm5clnt
+ LIBMAJOR=5
+ LIBMINOR=1
+diff -ru krb5-1.6.3/src/lib/kadm5/srv/Makefile.in krb5-1.6.3+iPhone/src/lib/kadm5/srv/Makefile.in
+--- krb5-1.6.3/src/lib/kadm5/srv/Makefile.in 2007-09-18 04:22:24.000000000 +0000
++++ krb5-1.6.3+iPhone/src/lib/kadm5/srv/Makefile.in 2008-01-02 01:02:05.000000000 +0000
+@@ -8,6 +8,8 @@
+ DEFINES = @HESIOD_DEFS@
+ DEFS=
+
++MAKE_SHLIB_COMMAND += $(LIBRESOLV)
++
+ ##DOSBUILDTOP = ..\..\..
+ ##DOSLIBNAME = libkadm5srv.lib
+
+diff -ru krb5-1.6.3/src/lib/krb4/Makefile.in krb5-1.6.3+iPhone/src/lib/krb4/Makefile.in
+--- krb5-1.6.3/src/lib/krb4/Makefile.in 2007-09-18 04:22:24.000000000 +0000
++++ krb5-1.6.3+iPhone/src/lib/krb4/Makefile.in 2008-01-02 00:58:53.000000000 +0000
+@@ -6,6 +6,8 @@
+ DEFINES= -DKRB4_USE_KEYTAB
+ DEFS=
+
++MAKE_SHLIB_COMMAND += $(LIBRESOLV)
++
+ ##DOS##BUILDTOP = ..\..
+ ##DOS##LIBNAME=$(OUTPRE)krb4.lib
+ ##DOS##OBJFILE=$(OUTPRE)krb4.lst
+diff -ru krb5-1.6.3/src/lib/rpc/Makefile.in krb5-1.6.3+iPhone/src/lib/rpc/Makefile.in
+--- krb5-1.6.3/src/lib/rpc/Makefile.in 2006-10-05 14:05:40.000000000 +0000
++++ krb5-1.6.3+iPhone/src/lib/rpc/Makefile.in 2008-01-02 01:01:02.000000000 +0000
+@@ -5,6 +5,8 @@
+ DEFINES = -DGSSAPI_KRB5 -DDEBUG_GSSAPI=0 -DGSSRPC__IMPL
+ DEFS=
+
++MAKE_SHLIB_COMMAND += $(LIBRESOLV)
++
+ SUBDIRS=unit-test
+
+ ##DOSBUILDTOP = ..\..
diff --git a/data/krb5/make.sh b/data/krb5/make.sh
new file mode 100644
index 000000000..74b159213
--- /dev/null
+++ b/data/krb5/make.sh
@@ -0,0 +1,7 @@
+pkg:extract
+cd *
+pkg:patch
+cd src
+pkg:configure ac_cv_func_regcomp=yes ac_cv_printf_positional=yes ac_cv_file__etc_environment=no ac_cv_file__etc_TIMEZONE=no ac_cv_prog_AR="$(which arm-apple-darwin-ar)" krb5_cv_attr_constructor_destructor=yes,yes
+make LIBRESOLV='-dylib_file /usr/lib/libresolv.dylib:${PKG_ROOT}/usr/lib/libresolv.dylib'
+pkg:install
diff --git a/data/krb5/nocommon.diff b/data/krb5/nocommon.diff
new file mode 100644
index 000000000..e40be92fd
--- /dev/null
+++ b/data/krb5/nocommon.diff
@@ -0,0 +1,12 @@
+diff -ru krb5-1.6.3/src/config/pre.in krb5-1.6.3+iPhone/src/config/pre.in
+--- krb5-1.6.3/src/config/pre.in 2006-10-15 18:19:28.000000000 +0000
++++ krb5-1.6.3+iPhone/src/config/pre.in 2008-01-02 01:03:37.000000000 +0000
+@@ -158,7 +158,7 @@
+ # PTHREAD_CFLAGS set by configure, not included in CFLAGS so that we
+ # don't pull the pthreads library into shared libraries
+ ALL_CFLAGS = $(DEFS) $(DEFINES) $(KRB_INCLUDES) $(LOCALINCLUDES) \
+- -DKRB5_DEPRECATED=1 -DKRB5_PRIVATE=1 \
++ -DKRB5_DEPRECATED=1 -DKRB5_PRIVATE=1 -fno-common \
+ $(CPPFLAGS) $(CFLAGS) $(PTHREAD_CFLAGS)
+
+ CFLAGS = @CFLAGS@
diff --git a/data/libdict/_metadata/description b/data/libdict/_metadata/description
new file mode 100644
index 000000000..005d9a0c9
--- /dev/null
+++ b/data/libdict/_metadata/description
@@ -0,0 +1,2 @@
+this package isn't described yet
+This package, which I'm certain is incredibly interesting, has yet to be described. This is probably because Jay has spent days getting all kinds of bookkeeping issues, like copyright notifications, all in their correct places, and descriptions just aren't the most important thing he could be working on. If this is a problem, please come back later.
diff --git a/data/libdict/_metadata/license b/data/libdict/_metadata/license
new file mode 100644
index 000000000..2787e673e
--- /dev/null
+++ b/data/libdict/_metadata/license
@@ -0,0 +1,20 @@
+ Copyright (c) 2001, 2002 Steven Young
+
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/data/libdict/_metadata/maintainer b/data/libdict/_metadata/maintainer
new file mode 120000
index 000000000..0fa66e077
--- /dev/null
+++ b/data/libdict/_metadata/maintainer
@@ -0,0 +1 @@
+../../../people/saurik \ No newline at end of file
diff --git a/data/libdict/_metadata/priority b/data/libdict/_metadata/priority
new file mode 100644
index 000000000..134d9bc32
--- /dev/null
+++ b/data/libdict/_metadata/priority
@@ -0,0 +1 @@
+optional
diff --git a/data/libdict/_metadata/section b/data/libdict/_metadata/section
new file mode 100644
index 000000000..992ae1298
--- /dev/null
+++ b/data/libdict/_metadata/section
@@ -0,0 +1 @@
+network
diff --git a/data/libdict/_metadata/version b/data/libdict/_metadata/version
new file mode 100644
index 000000000..b63ba696b
--- /dev/null
+++ b/data/libdict/_metadata/version
@@ -0,0 +1 @@
+0.9
diff --git a/data/libdict/libdict-0.9.tar.gz b/data/libdict/libdict-0.9.tar.gz
new file mode 100644
index 000000000..8ee8666b2
--- /dev/null
+++ b/data/libdict/libdict-0.9.tar.gz
Binary files differ
diff --git a/data/libdict/make.sh b/data/libdict/make.sh
new file mode 100644
index 000000000..f6eda4ab7
--- /dev/null
+++ b/data/libdict/make.sh
@@ -0,0 +1,8 @@
+pkg:extract
+cd *
+pkg:patch
+cd src
+make CC=arm-apple-darwin-gcc CXX=arm-apple-darwin-g++
+pkg: mkdir -p /usr/lib /usr/include
+pkg: cp -a libdict.a /usr/lib
+pkg: cp -a include/*.{h,hpp} /usr/include
diff --git a/data/libdict/namespace.diff b/data/libdict/namespace.diff
new file mode 100644
index 000000000..aefde1da0
--- /dev/null
+++ b/data/libdict/namespace.diff
@@ -0,0 +1,13 @@
+diff -ru libdict-0.9/src/examples/cpptest.cpp libdict-0.9+iPhone/src/examples/cpptest.cpp
+--- libdict-0.9/src/examples/cpptest.cpp 2002-03-15 19:03:40.000000000 +0000
++++ libdict-0.9+iPhone/src/examples/cpptest.cpp 2008-01-01 23:33:06.000000000 +0000
+@@ -32,6 +32,8 @@
+ #include <unistd.h>
+ #include "libdict-wrap.hpp"
+
++using namespace std;
++
+ int main(int argc, char **argv) {
+ class dictConn dc;
+ char optch;
+
diff --git a/data/libdict/tools.diff b/data/libdict/tools.diff
new file mode 100644
index 000000000..16f469f20
--- /dev/null
+++ b/data/libdict/tools.diff
@@ -0,0 +1,35 @@
+diff -ru libdict-0.9/src/examples/Makefile libdict-0.9+iPhone/src/examples/Makefile
+--- libdict-0.9/src/examples/Makefile 2002-03-14 17:23:04.000000000 +0000
++++ libdict-0.9+iPhone/src/examples/Makefile 2008-01-01 23:32:52.000000000 +0000
+@@ -7,8 +7,8 @@
+ all: dictcli cpptest
+
+ dictcli:
+- cc -o dictcli dictcli.c ${LIBS} ${CFLAGS} ${CWARN} ${LDFLAGS}
++ $(CC) -o dictcli dictcli.c ${LIBS} ${CFLAGS} ${CWARN} ${LDFLAGS}
+ cpptest:
+- c++ -o cpptest cpptest.cpp ${LIBS} ${CFLAGS} ${CWARN} ${LDFLAGS}
++ $(CXX) -o cpptest cpptest.cpp ${LIBS} ${CFLAGS} ${CWARN} ${LDFLAGS}
+ clean:
+ rm -f *.o dictcli cpptest *.core
+diff -ru libdict-0.9/src/Makefile libdict-0.9+iPhone/src/Makefile
+--- libdict-0.9/src/Makefile 2002-03-15 19:10:17.000000000 +0000
++++ libdict-0.9+iPhone/src/Makefile 2008-01-01 23:32:32.000000000 +0000
+@@ -18,13 +18,13 @@
+ ${CXX} ${CFLAGS} -c libdict-wrap.cpp
+ libdict.a: ${OBJ} ${CPPOBJ}
+ rm -f libdict.a
+- ar rc libdict.a *.o
+- ranlib libdict.a
++ arm-apple-darwin-ar rc libdict.a *.o
++ arm-apple-darwin-ranlib libdict.a
+ clean: clean-example
+ rm -f *.o *.core core
+ superclean: clean
+ rm -f libdict.a
+ example:
+- (cd examples; make)
++ (cd examples; $(MAKE))
+ clean-example:
+- (cd examples; make clean)
++ (cd examples; $(MAKE) clean)
diff --git a/data/libresolv/_metadata/description b/data/libresolv/_metadata/description
new file mode 100644
index 000000000..005d9a0c9
--- /dev/null
+++ b/data/libresolv/_metadata/description
@@ -0,0 +1,2 @@
+this package isn't described yet
+This package, which I'm certain is incredibly interesting, has yet to be described. This is probably because Jay has spent days getting all kinds of bookkeeping issues, like copyright notifications, all in their correct places, and descriptions just aren't the most important thing he could be working on. If this is a problem, please come back later.
diff --git a/data/libresolv/_metadata/license b/data/libresolv/_metadata/license
new file mode 120000
index 000000000..9e5e5e89d
--- /dev/null
+++ b/data/libresolv/_metadata/license
@@ -0,0 +1 @@
+../../../licenses/apsl-2.0 \ No newline at end of file
diff --git a/data/libresolv/_metadata/maintainer b/data/libresolv/_metadata/maintainer
new file mode 120000
index 000000000..0fa66e077
--- /dev/null
+++ b/data/libresolv/_metadata/maintainer
@@ -0,0 +1 @@
+../../../people/saurik \ No newline at end of file
diff --git a/data/libresolv/_metadata/priority b/data/libresolv/_metadata/priority
new file mode 100644
index 000000000..ea5b3d7ee
--- /dev/null
+++ b/data/libresolv/_metadata/priority
@@ -0,0 +1 @@
+important
diff --git a/data/libresolv/_metadata/section b/data/libresolv/_metadata/section
new file mode 100644
index 000000000..992ae1298
--- /dev/null
+++ b/data/libresolv/_metadata/section
@@ -0,0 +1 @@
+network
diff --git a/data/libresolv/_metadata/version b/data/libresolv/_metadata/version
new file mode 100644
index 000000000..d6b24041c
--- /dev/null
+++ b/data/libresolv/_metadata/version
@@ -0,0 +1 @@
+19
diff --git a/data/libresolv/dnsinfo_copy.c b/data/libresolv/dnsinfo_copy.c
new file mode 100644
index 000000000..882b697b9
--- /dev/null
+++ b/data/libresolv/dnsinfo_copy.c
@@ -0,0 +1,338 @@
+/*
+ * Copyright (c) 2004 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_LICENSE_HEADER_END@
+ */
+
+/*
+ * Modification History
+ *
+ * March 9, 2004 Allan Nathanson <ajn@apple.com>
+ * - initial revision
+ */
+
+#include <stdlib.h>
+#include <mach/mach.h>
+#include <mach/mach_error.h>
+
+#include "dnsinfo.h"
+#include "dnsinfo_private.h"
+#include "shared_dns_info.h"
+
+
+static boolean_t
+add_list(void **padding, uint32_t *n_padding, int32_t count, int32_t size, void **list)
+{
+ int32_t need;
+
+ need = count * size;
+ if (need > *n_padding) {
+ return FALSE;
+ }
+
+ *list = (need == 0) ? NULL : *padding;
+ *padding += need;
+ *n_padding -= need;
+ return TRUE;
+}
+
+
+static _dns_config_buf_t *
+copy_dns_info()
+{
+ uint8_t *buf = NULL;
+ dnsDataOut_t dataRef = NULL;
+ mach_msg_type_number_t dataLen = 0;
+ mach_port_t server;
+ kern_return_t status;
+
+ server = _dns_configuration_server_port();
+ if (server == MACH_PORT_NULL) {
+ return NULL;
+ }
+
+ status = shared_dns_infoGet(server, &dataRef, &dataLen);
+ (void)mach_port_deallocate(mach_task_self(), server);
+ if (status != KERN_SUCCESS) {
+ mach_error("shared_dns_infoGet():", status);
+ return NULL;
+ }
+
+ if (dataRef != NULL) {
+ if (dataLen >= sizeof(_dns_config_buf_t)) {
+ _dns_config_buf_t *config = (_dns_config_buf_t *)dataRef;
+ uint32_t len;
+ uint32_t n_padding = ntohl(config->n_padding);
+
+ len = dataLen + n_padding;
+ buf = malloc(len);
+ bcopy((void *)dataRef, buf, dataLen);
+ bzero(&buf[dataLen], n_padding);
+ }
+
+ status = vm_deallocate(mach_task_self(), (vm_address_t)dataRef, dataLen);
+ if (status != KERN_SUCCESS) {
+ mach_error("vm_deallocate():", status);
+ free(buf);
+ return NULL;
+ }
+ }
+
+ return (_dns_config_buf_t *)buf;
+}
+
+
+static dns_resolver_t *
+expand_resolver(_dns_resolver_buf_t *buf, uint32_t n_buf, void **padding, uint32_t *n_padding)
+{
+ dns_attribute_t *attribute;
+ uint32_t n_attribute;
+ int32_t n_nameserver = 0;
+ int32_t n_search = 0;
+ int32_t n_sortaddr = 0;
+ dns_resolver_t *resolver = (dns_resolver_t *)&buf->resolver;
+
+ if (n_buf < sizeof(_dns_resolver_buf_t)) {
+ goto error;
+ }
+
+ // initialize domain
+
+ resolver->domain = NULL;
+
+ // initialize nameserver list
+
+ resolver->n_nameserver = ntohl(resolver->n_nameserver);
+ if (!add_list(padding,
+ n_padding,
+ resolver->n_nameserver,
+ sizeof(struct sockaddr *),
+ (void **)&resolver->nameserver)) {
+ goto error;
+ }
+
+ // initialize port
+
+ resolver->port = ntohs(resolver->port);
+
+ // initialize search list
+
+ resolver->n_search = ntohl(resolver->n_search);
+ if (!add_list(padding,
+ n_padding,
+ resolver->n_search,
+ sizeof(char *),
+ (void **)&resolver->search)) {
+ goto error;
+ }
+
+ // initialize sortaddr list
+
+ resolver->n_sortaddr = ntohl(resolver->n_sortaddr);
+ if (!add_list(padding,
+ n_padding,
+ resolver->n_sortaddr,
+ sizeof(dns_sortaddr_t *),
+ (void **)&resolver->sortaddr)) {
+ goto error;
+ }
+
+ // initialize options
+
+ resolver->options = NULL;
+
+ // initialize timeout
+
+ resolver->timeout = ntohl(resolver->timeout);
+
+ // initialize search_order
+
+ resolver->search_order = ntohl(resolver->search_order);
+
+ // process resolver buffer "attribute" data
+
+ n_attribute = n_buf - sizeof(_dns_resolver_buf_t);
+ attribute = (dns_attribute_t *)&buf->attribute[0];
+ if (n_attribute != ntohl(buf->n_attribute)) {
+ goto error;
+ }
+
+ while (n_attribute >= sizeof(dns_attribute_t)) {
+ int32_t attribute_length = ntohl(attribute->length);
+
+ switch (ntohl(attribute->type)) {
+ case RESOLVER_ATTRIBUTE_DOMAIN :
+ resolver->domain = (char *)&attribute->attribute[0];
+ break;
+
+ case RESOLVER_ATTRIBUTE_ADDRESS :
+ resolver->nameserver[n_nameserver++] = (struct sockaddr *)&attribute->attribute[0];
+ break;
+
+ case RESOLVER_ATTRIBUTE_SEARCH :
+ resolver->search[n_search++] = (char *)&attribute->attribute[0];
+ break;
+
+ case RESOLVER_ATTRIBUTE_SORTADDR :
+ resolver->sortaddr[n_sortaddr++] = (dns_sortaddr_t *)&attribute->attribute[0];
+ break;
+
+ case RESOLVER_ATTRIBUTE_OPTIONS :
+ resolver->options = (char *)&attribute->attribute[0];
+ break;
+
+ default :
+ break;
+ }
+
+ attribute = (dns_attribute_t *)((void *)attribute + attribute_length);
+ n_attribute -= attribute_length;
+ }
+
+ if ((n_nameserver != resolver->n_nameserver) ||
+ (n_search != resolver->n_search ) ||
+ (n_sortaddr != resolver->n_sortaddr )) {
+ goto error;
+ }
+
+ return resolver;
+
+ error :
+
+ return NULL;
+}
+
+
+static dns_config_t *
+expand_config(_dns_config_buf_t *buf)
+{
+ dns_attribute_t *attribute;
+ dns_config_t *config = (dns_config_t *)buf;
+ uint32_t n_attribute;
+ uint32_t n_padding;
+ int32_t n_resolver = 0;
+ void *padding;
+
+ // establish padding
+
+ padding = &buf->attribute[ntohl(buf->n_attribute)];
+ n_padding = ntohl(buf->n_padding);
+
+ // initialize resolver list
+
+ config->n_resolver = ntohl(config->n_resolver);
+ if (!add_list(&padding,
+ &n_padding,
+ config->n_resolver,
+ sizeof(dns_resolver_t *),
+ (void **)&config->resolver)) {
+ goto error;
+ }
+
+ // process configuration buffer "attribute" data
+
+ n_attribute = ntohl(buf->n_attribute);
+ attribute = (dns_attribute_t *)&buf->attribute[0];
+
+ while (n_attribute >= sizeof(dns_attribute_t)) {
+ int32_t attribute_length = ntohl(attribute->length);
+
+ switch (ntohl(attribute->type)) {
+ case CONFIG_ATTRIBUTE_RESOLVER : {
+ dns_resolver_t *resolver;
+
+ // expand resolver buffer
+
+ resolver = expand_resolver((_dns_resolver_buf_t *)&attribute->attribute[0],
+ attribute_length - sizeof(dns_attribute_t),
+ &padding,
+ &n_padding);
+ if (resolver == NULL) {
+ goto error;
+ }
+
+ // add resolver to config list
+
+ config->resolver[n_resolver++] = resolver;
+
+ break;
+ }
+
+ default :
+ break;
+ }
+
+ attribute = (dns_attribute_t *)((void *)attribute + attribute_length);
+ n_attribute -= attribute_length;
+ }
+
+ if (n_resolver != config->n_resolver) {
+ goto error;
+ }
+
+ return config;
+
+ error :
+
+ return NULL;
+}
+
+
+__private_extern__
+const char *
+dns_configuration_notify_key()
+{
+ return _dns_configuration_notify_key();
+}
+
+
+__private_extern__
+dns_config_t *
+dns_configuration_copy()
+{
+ _dns_config_buf_t *buf;
+ dns_config_t *config;
+
+ buf = copy_dns_info();
+ if (buf == NULL) {
+ return NULL;
+ }
+
+ config = expand_config(buf);
+ if (config == NULL) {
+ free(buf);
+ return NULL;
+ }
+
+ return config;
+}
+
+
+__private_extern__
+void
+dns_configuration_free(dns_config_t *config)
+{
+ if (config == NULL) {
+ return;
+ }
+
+ free((void *)config);
+ return;
+}
diff --git a/data/libresolv/dnsinfo_private.c b/data/libresolv/dnsinfo_private.c
new file mode 100644
index 000000000..96663693a
--- /dev/null
+++ b/data/libresolv/dnsinfo_private.c
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 2004, 2005 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_LICENSE_HEADER_END@
+ */
+
+/*
+ * Modification History
+ *
+ * March 9, 2004 Allan Nathanson <ajn@apple.com>
+ * - initial revision
+ */
+
+#include <stdlib.h>
+#include <mach/mach.h>
+#include <mach/mach_error.h>
+#include <servers/bootstrap.h>
+
+#include "dnsinfo_private.h"
+#include "shared_dns_info_types.h"
+
+
+__private_extern__
+const char *
+_dns_configuration_notify_key()
+{
+ return "com.apple.system.SystemConfiguration.dns_configuration";
+}
+
+
+__private_extern__
+mach_port_t
+_dns_configuration_server_port()
+{
+ mach_port_t server = MACH_PORT_NULL;
+ char *server_name;
+ kern_return_t status;
+
+ server_name = getenv("DNS_SERVER");
+ if (!server_name) {
+ server_name = DNS_SERVER;
+ }
+
+ status = bootstrap_look_up(bootstrap_port, server_name, &server);
+ switch (status) {
+ case BOOTSTRAP_SUCCESS :
+ /* service currently registered, "a good thing" (tm) */
+ break;
+ case BOOTSTRAP_UNKNOWN_SERVICE :
+ /* service not currently registered, try again later */
+ return MACH_PORT_NULL;
+ default :
+ mach_error("could not lookup DNS configuration info service:", status);
+ return MACH_PORT_NULL;
+ }
+
+ return server;
+}
+
diff --git a/data/libresolv/dnsinfo_private.h b/data/libresolv/dnsinfo_private.h
new file mode 100644
index 000000000..5e6ac0e5a
--- /dev/null
+++ b/data/libresolv/dnsinfo_private.h
@@ -0,0 +1,193 @@
+/*
+ * Copyright (c) 2004, 2005 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_LICENSE_HEADER_END@
+ */
+
+#ifndef __DNSINFO_PRIVATE_H__
+#define __DNSINFO_PRIVATE_H__
+
+
+#include <AvailabilityMacros.h>
+#include <sys/cdefs.h>
+#include <stdint.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <mach/mach.h>
+
+#include "dnsinfo.h"
+
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1040
+
+/*
+ * What's all of this stuff about???
+ *
+ * In order to minimize the amount of data conversions associated with
+ * storing, retrieving, and accessing the systems DNS configuration I
+ * have opted to create a memory image filled with the actual data
+ * types / structures that would be used by those applications which
+ * make use of these APIS. The implication here is that we use
+ * sockaddr's for addresses, char *'s for strings, etc.
+ *
+ * To achieve this goal the APIs which are used to store and access the
+ * configuration data build and use a single buffer of the relevant
+ * bits. When multiple instances of a given type / structure are needed
+ * we maintain a count, the actual data, and when the configuration has
+ * been unpacked, arrays of pointers to the data.
+ *
+ * In memory, the data looks as follows:
+ *
+ * +-------------------------------------------------------------------+
+ * | struct _dns_config_buf_t |
+ * +-+-------------+---------------------------------------------------+
+ * | | config | struct dns_config_t |
+ * | | +-+--------------+----------------------------------+
+ * | | | | n_resolver | int32_t | <- # of name resolvers
+ * | | | +--------------+----------------------------------+
+ * | | | | resolver | dns_resolver_t ** | <- not used during creation, filled
+ * | | | | | | in with pointer to a list of
+ * | | | | | | resolver configurations which be
+ * | | | | | | established in the "padding"
+ * | | | +--------------+----------------------------------+
+ * | | | | ... | ... |
+ * | +-------------+-+--------------+----------------------------------+
+ * | | n_attribute | uint32_t | <- how many bytes of "attribute"
+ * | | | | data is associated with the
+ * | | | | configuration
+ * |-+-------------+---------------------------------------------------+
+ * | | n_padding | uint32_t | <- how many additional bytes
+ * | | | | for arrays (of pointers), ...
+ * +-+-------------+---------------------------------------------------+
+ * | struct dns_attribute_t |
+ * |-+-------------+---------------------------------------------------+
+ * | | type | uint32_t | <- type of attribute (e.g. CONFIG_ATTRIBUTE_RESOLVER)
+ * | +-------------+---------------------------------------------------+
+ * | | length | uint32_t | <- length of the attribute
+ * | +-------------+---------------------------------------------------+
+ * | | attribute | struct _dns_resolver_buf_t | <- the attribute data (resolver configuration #1)
+ * | | +-+-------------+-----------------------------------+
+ * | | | | resolver | struct dns_resolver_t |
+ * | | | | +--------------+--------------------+
+ * | | | | | domain | char * | <- not used during creation,
+ * | | | | | | | filled in with pointer to
+ * | | | | | | | domain name in the "padding"
+ * | | | | +--------------+--------------------+
+ * | | | | | n_nameserver | int32_t | <- # of name server addresses
+ * | | | | +--------------+--------------------+
+ * | | | | | nameserver | struct sockaddr ** | <- not used during creation,
+ * | | | | | | | filled in with pointer to
+ * | | | | | | | a list of addresses which
+ * | | | | | | | will be established in the
+ * | | | | | | | "padding"
+ * | | | | +--------------+--------------------+
+ * | | | | | ... |
+ * | | +-+-------------+--------------+--------------------+
+ * | | | | n_attribute | uint32_t |
+ * | | +-+-------------+-----------------------------------+
+ * | | | | attribute | struct dns_attribute_t |
+ * | | | | +-+-----------+---------------------+
+ * | | | | | | type | uint32_t | <- type of attribute (e.g. RESOLVER_ATTRIBUTE_DOMAIN)
+ * | | | | | +-----------+---------------------+
+ * | | | | | | length | uint32_t | <- length of the attribute
+ * | | | | | +-----------+---------------------+
+ * | | | | | | attribute | | <- the attribute data ("apple.com")
+ * | | +-+-------------+-------------+---------------------+
+ * | | | | attribute | struct dns_attribute_t |
+ * | | | | +-+-----------+---------------------+
+ * | | | | | | type | uint32_t | <- type of attribute (e.g. RESOLVER_ATTRIBUTE_ADDRESS)
+ * | | | | | +-----------+---------------------+
+ * | | | | | | length | uint32_t | <- length of the attribute
+ * | | | | | +-----------+---------------------+
+ * | | | | | | attribute | | <- the attribute data ("struct sockaddr_in" #1)
+ * | | +---------------+-----------------------------------+
+ * | | | | attribute | struct dns_attribute_t |
+ * | | | | +-+-----------+---------------------+
+ * | | | | | | type | uint32_t | <- type of attribute (e.g. RESOLVER_ATTRIBUTE_ADDRESS)
+ * | | | | | +-----------+---------------------+
+ * | | | | | | length | uint32_t | <- length of the attribute
+ * | | | | | +-----------+---------------------+
+ * | | | | | | attribute | | <- the attribute data ("struct sockaddr_in" #2)
+ * | | +---------------+-----------------------------------+
+ * | | | ... |
+ * +-+-------------+---------------------------------------------------+
+ * | | attribute | struct _dns_resolver_buf_t | <- the attribute data (resolver configuration #2)
+ * | | +---------------+-----------------------------------+
+ * | | | ... |
+ * +---------------+---------------------------------------------------+
+ * | | ... |
+ * +---------------+---------------------------------------------------+
+ *
+ * When the data is unpacked the "n_padding" additional bytes
+ * specified in configuration buffer will be allocated at the
+ * end of this buffer. Arrays of pointers will be allocated
+ * within the extra space array element (an "attribute") is
+ * encountered the pointer reference will be filled in.
+ */
+
+
+// configuration buffer attributes
+enum {
+ CONFIG_ATTRIBUTE_RESOLVER = 1
+};
+
+
+// resolver buffer attributes
+enum {
+ RESOLVER_ATTRIBUTE_DOMAIN = 10,
+ RESOLVER_ATTRIBUTE_ADDRESS,
+ RESOLVER_ATTRIBUTE_SEARCH,
+ RESOLVER_ATTRIBUTE_SORTADDR,
+ RESOLVER_ATTRIBUTE_OPTIONS
+};
+
+
+typedef struct {
+ uint32_t type;
+ uint32_t length;
+ uint8_t attribute[0];
+} dns_attribute_t;
+
+
+typedef struct {
+ dns_config_t config;
+ uint32_t n_attribute;
+ uint32_t n_padding;
+ uint8_t attribute[0];
+} _dns_config_buf_t;
+
+
+typedef struct {
+ dns_resolver_t resolver;
+ uint32_t n_attribute;
+ uint8_t attribute[0];
+} _dns_resolver_buf_t;
+
+
+__BEGIN_DECLS
+
+const char * _dns_configuration_notify_key() AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
+mach_port_t _dns_configuration_server_port() AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
+
+__END_DECLS
+
+#endif /* MAC_OS_X_VERSION_MAX_ALLOWED >= 1040 */
+
+#endif /* __DNSINFO_PRIVATE_H__ */
diff --git a/data/libresolv/libresolv-19.tar.gz b/data/libresolv/libresolv-19.tar.gz
new file mode 100644
index 000000000..eac1867b6
--- /dev/null
+++ b/data/libresolv/libresolv-19.tar.gz
Binary files differ
diff --git a/data/libresolv/make.sh b/data/libresolv/make.sh
new file mode 100644
index 000000000..96cb9c2eb
--- /dev/null
+++ b/data/libresolv/make.sh
@@ -0,0 +1,6 @@
+pkg:extract
+cd *
+cp -a "${PKG_DATA}"/*.[ch] .
+arm-apple-darwin-gcc -fno-common !(dns_async).c -o libresolv.dylib -dynamiclib -I. -DkDNSServiceFlagsReturnIntermediates=0x1000 -linfo -install_name /usr/lib/libresolv.dylib
+pkg: mkdir -p /usr/lib
+pkg: cp -a libresolv.dylib /usr/lib
diff --git a/data/libresolv/shared_dns_info.h b/data/libresolv/shared_dns_info.h
new file mode 100644
index 000000000..c03837252
--- /dev/null
+++ b/data/libresolv/shared_dns_info.h
@@ -0,0 +1,180 @@
+#ifndef _shared_dns_info_user_
+#define _shared_dns_info_user_
+
+/* Module shared_dns_info */
+
+#include <string.h>
+#include <mach/ndr.h>
+#include <mach/boolean.h>
+#include <mach/kern_return.h>
+#include <mach/notify.h>
+#include <mach/mach_types.h>
+#include <mach/message.h>
+#include <mach/mig_errors.h>
+#include <mach/port.h>
+
+#ifdef AUTOTEST
+#ifndef FUNCTION_PTR_T
+#define FUNCTION_PTR_T
+typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
+typedef struct {
+ char *name;
+ function_ptr_t function;
+} function_table_entry;
+typedef function_table_entry *function_table_t;
+#endif /* FUNCTION_PTR_T */
+#endif /* AUTOTEST */
+
+#ifndef shared_dns_info_MSG_COUNT
+#define shared_dns_info_MSG_COUNT 2
+#endif /* shared_dns_info_MSG_COUNT */
+
+#include <mach/std_types.h>
+#include <mach/mig.h>
+#include <mach/mig.h>
+#include <mach/mach_types.h>
+#include "shared_dns_info_types.h"
+
+#ifdef __BeforeMigUserHeader
+__BeforeMigUserHeader
+#endif /* __BeforeMigUserHeader */
+
+#include <sys/cdefs.h>
+__BEGIN_DECLS
+
+
+/* Routine shared_dns_infoGet */
+#ifdef mig_external
+mig_external
+#else
+extern
+#endif /* mig_external */
+kern_return_t shared_dns_infoGet
+(
+ mach_port_t server,
+ dnsDataOut_t *data,
+ mach_msg_type_number_t *dataCnt
+);
+
+/* Routine shared_dns_infoSet */
+#ifdef mig_external
+mig_external
+#else
+extern
+#endif /* mig_external */
+kern_return_t shared_dns_infoSet
+(
+ mach_port_t server,
+ dnsData_t data,
+ mach_msg_type_number_t dataCnt
+);
+
+__END_DECLS
+
+/********************** Caution **************************/
+/* The following data types should be used to calculate */
+/* maximum message sizes only. The actual message may be */
+/* smaller, and the position of the arguments within the */
+/* message layout may vary from what is presented here. */
+/* For example, if any of the arguments are variable- */
+/* sized, and less than the maximum is sent, the data */
+/* will be packed tight in the actual message to reduce */
+/* the presence of holes. */
+/********************** Caution **************************/
+
+/* typedefs for all requests */
+
+#ifndef __Request__shared_dns_info_subsystem__defined
+#define __Request__shared_dns_info_subsystem__defined
+
+#ifdef __MigPackStructs
+#pragma pack(4)
+#endif
+ typedef struct {
+ mach_msg_header_t Head;
+ } __Request__shared_dns_infoGet_t;
+#ifdef __MigPackStructs
+#pragma pack()
+#endif
+
+#ifdef __MigPackStructs
+#pragma pack(4)
+#endif
+ typedef struct {
+ mach_msg_header_t Head;
+ /* start of the kernel processed data */
+ mach_msg_body_t msgh_body;
+ mach_msg_ool_descriptor_t data;
+ /* end of the kernel processed data */
+ NDR_record_t NDR;
+ mach_msg_type_number_t dataCnt;
+ } __Request__shared_dns_infoSet_t;
+#ifdef __MigPackStructs
+#pragma pack()
+#endif
+#endif /* !__Request__shared_dns_info_subsystem__defined */
+
+/* union of all requests */
+
+#ifndef __RequestUnion__shared_dns_info_subsystem__defined
+#define __RequestUnion__shared_dns_info_subsystem__defined
+union __RequestUnion__shared_dns_info_subsystem {
+ __Request__shared_dns_infoGet_t Request_shared_dns_infoGet;
+ __Request__shared_dns_infoSet_t Request_shared_dns_infoSet;
+};
+#endif /* !__RequestUnion__shared_dns_info_subsystem__defined */
+/* typedefs for all replies */
+
+#ifndef __Reply__shared_dns_info_subsystem__defined
+#define __Reply__shared_dns_info_subsystem__defined
+
+#ifdef __MigPackStructs
+#pragma pack(4)
+#endif
+ typedef struct {
+ mach_msg_header_t Head;
+ /* start of the kernel processed data */
+ mach_msg_body_t msgh_body;
+ mach_msg_ool_descriptor_t data;
+ /* end of the kernel processed data */
+ NDR_record_t NDR;
+ mach_msg_type_number_t dataCnt;
+ } __Reply__shared_dns_infoGet_t;
+#ifdef __MigPackStructs
+#pragma pack()
+#endif
+
+#ifdef __MigPackStructs
+#pragma pack(4)
+#endif
+ typedef struct {
+ mach_msg_header_t Head;
+ NDR_record_t NDR;
+ kern_return_t RetCode;
+ } __Reply__shared_dns_infoSet_t;
+#ifdef __MigPackStructs
+#pragma pack()
+#endif
+#endif /* !__Reply__shared_dns_info_subsystem__defined */
+
+/* union of all replies */
+
+#ifndef __ReplyUnion__shared_dns_info_subsystem__defined
+#define __ReplyUnion__shared_dns_info_subsystem__defined
+union __ReplyUnion__shared_dns_info_subsystem {
+ __Reply__shared_dns_infoGet_t Reply_shared_dns_infoGet;
+ __Reply__shared_dns_infoSet_t Reply_shared_dns_infoSet;
+};
+#endif /* !__RequestUnion__shared_dns_info_subsystem__defined */
+
+#ifndef subsystem_to_name_map_shared_dns_info
+#define subsystem_to_name_map_shared_dns_info \
+ { "shared_dns_infoGet", 21000 },\
+ { "shared_dns_infoSet", 21001 }
+#endif
+
+#ifdef __AfterMigUserHeader
+__AfterMigUserHeader
+#endif /* __AfterMigUserHeader */
+
+#endif /* _shared_dns_info_user_ */
diff --git a/data/libresolv/shared_dns_infoUser.c b/data/libresolv/shared_dns_infoUser.c
new file mode 100644
index 000000000..64a7f16ce
--- /dev/null
+++ b/data/libresolv/shared_dns_infoUser.c
@@ -0,0 +1,524 @@
+/*
+ * IDENTIFICATION:
+ * stub generated Tue Jan 1 16:42:09 2008
+ * with a MiG generated Mon Sep 11 19:11:05 PDT 2006 by root@b09.apple.com
+ * OPTIONS:
+ */
+#define __MIG_check__Reply__shared_dns_info_subsystem__ 1
+#define __NDR_convert__Reply__shared_dns_info_subsystem__ 1
+#define __NDR_convert__mig_reply_error_subsystem__ 1
+
+#include "shared_dns_info.h"
+
+
+#ifndef mig_internal
+#define mig_internal static __inline__
+#endif /* mig_internal */
+
+#ifndef mig_external
+#define mig_external
+#endif /* mig_external */
+
+#if !defined(__MigTypeCheck) && defined(TypeCheck)
+#define __MigTypeCheck TypeCheck /* Legacy setting */
+#endif /* !defined(__MigTypeCheck) */
+
+#if !defined(__MigKernelSpecificCode) && defined(_MIG_KERNEL_SPECIFIC_CODE_)
+#define __MigKernelSpecificCode _MIG_KERNEL_SPECIFIC_CODE_ /* Legacy setting */
+#endif /* !defined(__MigKernelSpecificCode) */
+
+#ifndef LimitCheck
+#define LimitCheck 0
+#endif /* LimitCheck */
+
+#ifndef min
+#define min(a,b) ( ((a) < (b))? (a): (b) )
+#endif /* min */
+
+#if !defined(_WALIGN_)
+#define _WALIGN_(x) (((x) + 3) & ~3)
+#endif /* !defined(_WALIGN_) */
+
+#if !defined(_WALIGNSZ_)
+#define _WALIGNSZ_(x) _WALIGN_(sizeof(x))
+#endif /* !defined(_WALIGNSZ_) */
+
+#ifndef UseStaticTemplates
+#define UseStaticTemplates 0
+#endif /* UseStaticTemplates */
+
+#ifndef __MachMsgErrorWithTimeout
+#define __MachMsgErrorWithTimeout(_R_) { \
+ switch (_R_) { \
+ case MACH_SEND_INVALID_REPLY: \
+ case MACH_RCV_INVALID_NAME: \
+ case MACH_RCV_PORT_DIED: \
+ case MACH_RCV_PORT_CHANGED: \
+ case MACH_RCV_TIMED_OUT: \
+ mig_dealloc_reply_port(InP->Head.msgh_reply_port); \
+ break; \
+ default: \
+ mig_put_reply_port(InP->Head.msgh_reply_port); \
+ } \
+}
+#endif /* __MachMsgErrorWithTimeout */
+
+#ifndef __MachMsgErrorWithoutTimeout
+#define __MachMsgErrorWithoutTimeout(_R_) { \
+ switch (_R_) { \
+ case MACH_SEND_INVALID_REPLY: \
+ case MACH_RCV_INVALID_NAME: \
+ case MACH_RCV_PORT_DIED: \
+ case MACH_RCV_PORT_CHANGED: \
+ mig_dealloc_reply_port(InP->Head.msgh_reply_port); \
+ break; \
+ default: \
+ mig_put_reply_port(InP->Head.msgh_reply_port); \
+ } \
+}
+#endif /* __MachMsgErrorWithoutTimeout */
+
+#ifndef __DeclareSendRpc
+#define __DeclareSendRpc(_NUM_, _NAME_)
+#endif /* __DeclareSendRpc */
+
+#ifndef __BeforeSendRpc
+#define __BeforeSendRpc(_NUM_, _NAME_)
+#endif /* __BeforeSendRpc */
+
+#ifndef __AfterSendRpc
+#define __AfterSendRpc(_NUM_, _NAME_)
+#endif /* __AfterSendRpc */
+
+#ifndef __DeclareSendSimple
+#define __DeclareSendSimple(_NUM_, _NAME_)
+#endif /* __DeclareSendSimple */
+
+#ifndef __BeforeSendSimple
+#define __BeforeSendSimple(_NUM_, _NAME_)
+#endif /* __BeforeSendSimple */
+
+#ifndef __AfterSendSimple
+#define __AfterSendSimple(_NUM_, _NAME_)
+#endif /* __AfterSendSimple */
+
+#define msgh_request_port msgh_remote_port
+#define msgh_reply_port msgh_local_port
+
+
+
+#if ( __MigTypeCheck || __NDR_convert__ )
+#if __MIG_check__Reply__shared_dns_info_subsystem__
+#if !defined(__MIG_check__Reply__shared_dns_infoGet_t__defined)
+#define __MIG_check__Reply__shared_dns_infoGet_t__defined
+#ifndef __NDR_convert__int_rep__Reply__shared_dns_infoGet_t__data__defined
+#if defined(__NDR_convert__int_rep__shared_dns_info__dnsDataOut_t__defined)
+#define __NDR_convert__int_rep__Reply__shared_dns_infoGet_t__data__defined
+#define __NDR_convert__int_rep__Reply__shared_dns_infoGet_t__data(a, f, c) \
+ __NDR_convert__int_rep__shared_dns_info__dnsDataOut_t((dnsDataOut_t *)(a), f, c)
+#elif defined(__NDR_convert__int_rep__dnsDataOut_t__defined)
+#define __NDR_convert__int_rep__Reply__shared_dns_infoGet_t__data__defined
+#define __NDR_convert__int_rep__Reply__shared_dns_infoGet_t__data(a, f, c) \
+ __NDR_convert__int_rep__dnsDataOut_t((dnsDataOut_t *)(a), f, c)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__int_rep__Reply__shared_dns_infoGet_t__data__defined */
+
+
+#ifndef __NDR_convert__int_rep__Reply__shared_dns_infoGet_t__dataCnt__defined
+#if defined(__NDR_convert__int_rep__shared_dns_info__mach_msg_type_number_t__defined)
+#define __NDR_convert__int_rep__Reply__shared_dns_infoGet_t__dataCnt__defined
+#define __NDR_convert__int_rep__Reply__shared_dns_infoGet_t__dataCnt(a, f) \
+ __NDR_convert__int_rep__shared_dns_info__mach_msg_type_number_t((mach_msg_type_number_t *)(a), f)
+#elif defined(__NDR_convert__int_rep__mach_msg_type_number_t__defined)
+#define __NDR_convert__int_rep__Reply__shared_dns_infoGet_t__dataCnt__defined
+#define __NDR_convert__int_rep__Reply__shared_dns_infoGet_t__dataCnt(a, f) \
+ __NDR_convert__int_rep__mach_msg_type_number_t((mach_msg_type_number_t *)(a), f)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__int_rep__Reply__shared_dns_infoGet_t__dataCnt__defined */
+
+
+#ifndef __NDR_convert__char_rep__Reply__shared_dns_infoGet_t__data__defined
+#if defined(__NDR_convert__char_rep__shared_dns_info__dnsDataOut_t__defined)
+#define __NDR_convert__char_rep__Reply__shared_dns_infoGet_t__data__defined
+#define __NDR_convert__char_rep__Reply__shared_dns_infoGet_t__data(a, f, c) \
+ __NDR_convert__char_rep__shared_dns_info__dnsDataOut_t((dnsDataOut_t *)(a), f, c)
+#elif defined(__NDR_convert__char_rep__dnsDataOut_t__defined)
+#define __NDR_convert__char_rep__Reply__shared_dns_infoGet_t__data__defined
+#define __NDR_convert__char_rep__Reply__shared_dns_infoGet_t__data(a, f, c) \
+ __NDR_convert__char_rep__dnsDataOut_t((dnsDataOut_t *)(a), f, c)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__char_rep__Reply__shared_dns_infoGet_t__data__defined */
+
+
+
+#ifndef __NDR_convert__float_rep__Reply__shared_dns_infoGet_t__data__defined
+#if defined(__NDR_convert__float_rep__shared_dns_info__dnsDataOut_t__defined)
+#define __NDR_convert__float_rep__Reply__shared_dns_infoGet_t__data__defined
+#define __NDR_convert__float_rep__Reply__shared_dns_infoGet_t__data(a, f, c) \
+ __NDR_convert__float_rep__shared_dns_info__dnsDataOut_t((dnsDataOut_t *)(a), f, c)
+#elif defined(__NDR_convert__float_rep__dnsDataOut_t__defined)
+#define __NDR_convert__float_rep__Reply__shared_dns_infoGet_t__data__defined
+#define __NDR_convert__float_rep__Reply__shared_dns_infoGet_t__data(a, f, c) \
+ __NDR_convert__float_rep__dnsDataOut_t((dnsDataOut_t *)(a), f, c)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__float_rep__Reply__shared_dns_infoGet_t__data__defined */
+
+
+
+
+mig_internal kern_return_t __MIG_check__Reply__shared_dns_infoGet_t(__Reply__shared_dns_infoGet_t *Out0P)
+{
+
+ typedef __Reply__shared_dns_infoGet_t __Reply;
+ boolean_t msgh_simple;
+#if __MigTypeCheck
+ unsigned int msgh_size;
+#endif /* __MigTypeCheck */
+ if (Out0P->Head.msgh_id != 21100) {
+ if (Out0P->Head.msgh_id == MACH_NOTIFY_SEND_ONCE)
+ { return MIG_SERVER_DIED; }
+ else
+ { return MIG_REPLY_MISMATCH; }
+ }
+
+ msgh_simple = !(Out0P->Head.msgh_bits & MACH_MSGH_BITS_COMPLEX);
+#if __MigTypeCheck
+ msgh_size = Out0P->Head.msgh_size;
+
+ if ((msgh_simple || Out0P->msgh_body.msgh_descriptor_count != 1 ||
+ msgh_size != (mach_msg_size_t)sizeof(__Reply)) &&
+ (!msgh_simple || msgh_size != (mach_msg_size_t)sizeof(mig_reply_error_t) ||
+ ((mig_reply_error_t *)Out0P)->RetCode == KERN_SUCCESS))
+ { return MIG_TYPE_ERROR ; }
+#endif /* __MigTypeCheck */
+
+ if (msgh_simple) {
+#ifdef __NDR_convert__mig_reply_error_t__defined
+ __NDR_convert__mig_reply_error_t((mig_reply_error_t *)Out0P);
+#endif /* __NDR_convert__mig_reply_error_t__defined */
+ return ((mig_reply_error_t *)Out0P)->RetCode;
+ }
+
+#if __MigTypeCheck
+ if (Out0P->data.type != MACH_MSG_OOL_DESCRIPTOR)
+ { return MIG_TYPE_ERROR; }
+#endif /* __MigTypeCheck */
+
+#if defined(__NDR_convert__int_rep__Reply__shared_dns_infoGet_t__data__defined) || \
+ defined(__NDR_convert__int_rep__Reply__shared_dns_infoGet_t__dataCnt__defined)
+ if (Out0P->NDR.int_rep != NDR_record.int_rep) {
+#if defined(__NDR_convert__int_rep__Reply__shared_dns_infoGet_t__dataCnt__defined)
+ __NDR_convert__int_rep__Reply__shared_dns_infoGet_t__dataCnt(&Out0P->dataCnt, Out0P->NDR.int_rep);
+#endif /* __NDR_convert__int_rep__Reply__shared_dns_infoGet_t__dataCnt__defined */
+#if defined(__NDR_convert__int_rep__Reply__shared_dns_infoGet_t__data__defined)
+ __NDR_convert__int_rep__Reply__shared_dns_infoGet_t__data((dnsDataOut_t)(Out0P->data.address), Out0P->NDR.int_rep, Out0P->dataCnt);
+#endif /* __NDR_convert__int_rep__Reply__shared_dns_infoGet_t__data__defined */
+ }
+#endif /* defined(__NDR_convert__int_rep...) */
+
+#if defined(__NDR_convert__char_rep__Reply__shared_dns_infoGet_t__data__defined) || \
+ 0
+ if (Out0P->NDR.char_rep != NDR_record.char_rep) {
+#if defined(__NDR_convert__char_rep__Reply__shared_dns_infoGet_t__data__defined)
+ __NDR_convert__char_rep__Reply__shared_dns_infoGet_t__data((dnsDataOut_t)(Out0P->data.address), Out0P->NDR.char_rep, Out0P->dataCnt);
+#endif /* __NDR_convert__char_rep__Reply__shared_dns_infoGet_t__data__defined */
+ }
+#endif /* defined(__NDR_convert__char_rep...) */
+
+#if defined(__NDR_convert__float_rep__Reply__shared_dns_infoGet_t__data__defined) || \
+ 0
+ if (Out0P->NDR.float_rep != NDR_record.float_rep) {
+#if defined(__NDR_convert__float_rep__Reply__shared_dns_infoGet_t__data__defined)
+ __NDR_convert__float_rep__Reply__shared_dns_infoGet_t__data((dnsDataOut_t)(Out0P->data.address), Out0P->NDR.float_rep, Out0P->dataCnt);
+#endif /* __NDR_convert__float_rep__Reply__shared_dns_infoGet_t__data__defined */
+ }
+#endif /* defined(__NDR_convert__float_rep...) */
+
+ return MACH_MSG_SUCCESS;
+}
+#endif /* !defined(__MIG_check__Reply__shared_dns_infoGet_t__defined) */
+#endif /* __MIG_check__Reply__shared_dns_info_subsystem__ */
+#endif /* ( __MigTypeCheck || __NDR_convert__ ) */
+
+
+/* Routine shared_dns_infoGet */
+mig_external kern_return_t shared_dns_infoGet
+(
+ mach_port_t server,
+ dnsDataOut_t *data,
+ mach_msg_type_number_t *dataCnt
+)
+{
+ {
+
+#ifdef __MigPackStructs
+#pragma pack(4)
+#endif
+ typedef struct {
+ mach_msg_header_t Head;
+ } Request;
+#ifdef __MigPackStructs
+#pragma pack()
+#endif
+
+#ifdef __MigPackStructs
+#pragma pack(4)
+#endif
+ typedef struct {
+ mach_msg_header_t Head;
+ /* start of the kernel processed data */
+ mach_msg_body_t msgh_body;
+ mach_msg_ool_descriptor_t data;
+ /* end of the kernel processed data */
+ NDR_record_t NDR;
+ mach_msg_type_number_t dataCnt;
+ mach_msg_trailer_t trailer;
+ } Reply;
+#ifdef __MigPackStructs
+#pragma pack()
+#endif
+
+#ifdef __MigPackStructs
+#pragma pack(4)
+#endif
+ typedef struct {
+ mach_msg_header_t Head;
+ /* start of the kernel processed data */
+ mach_msg_body_t msgh_body;
+ mach_msg_ool_descriptor_t data;
+ /* end of the kernel processed data */
+ NDR_record_t NDR;
+ mach_msg_type_number_t dataCnt;
+ } __Reply;
+#ifdef __MigPackStructs
+#pragma pack()
+#endif
+ /*
+ * typedef struct {
+ * mach_msg_header_t Head;
+ * NDR_record_t NDR;
+ * kern_return_t RetCode;
+ * } mig_reply_error_t;
+ */
+
+ union {
+ Request In;
+ Reply Out;
+ } Mess;
+
+ Request *InP = &Mess.In;
+ Reply *Out0P = &Mess.Out;
+
+ mach_msg_return_t msg_result;
+
+#ifdef __MIG_check__Reply__shared_dns_infoGet_t__defined
+ kern_return_t check_result;
+#endif /* __MIG_check__Reply__shared_dns_infoGet_t__defined */
+
+ __DeclareSendRpc(21000, "shared_dns_infoGet")
+
+ InP->Head.msgh_bits =
+ MACH_MSGH_BITS(19, MACH_MSG_TYPE_MAKE_SEND_ONCE);
+ /* msgh_size passed as argument */
+ InP->Head.msgh_request_port = server;
+ InP->Head.msgh_reply_port = mig_get_reply_port();
+ InP->Head.msgh_id = 21000;
+
+ __BeforeSendRpc(21000, "shared_dns_infoGet")
+ msg_result = mach_msg(&InP->Head, MACH_SEND_MSG|MACH_RCV_MSG|MACH_MSG_OPTION_NONE, (mach_msg_size_t)sizeof(Request), (mach_msg_size_t)sizeof(Reply), InP->Head.msgh_reply_port, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL);
+ __AfterSendRpc(21000, "shared_dns_infoGet")
+ if (msg_result != MACH_MSG_SUCCESS) {
+ __MachMsgErrorWithoutTimeout(msg_result);
+ { return msg_result; }
+ }
+
+
+#if defined(__MIG_check__Reply__shared_dns_infoGet_t__defined)
+ check_result = __MIG_check__Reply__shared_dns_infoGet_t((__Reply__shared_dns_infoGet_t *)Out0P);
+ if (check_result != MACH_MSG_SUCCESS)
+ { return check_result; }
+#endif /* defined(__MIG_check__Reply__shared_dns_infoGet_t__defined) */
+
+ *data = (dnsDataOut_t)(Out0P->data.address);
+ *dataCnt = Out0P->dataCnt;
+
+ return KERN_SUCCESS;
+ }
+}
+
+#if ( __MigTypeCheck || __NDR_convert__ )
+#if __MIG_check__Reply__shared_dns_info_subsystem__
+#if !defined(__MIG_check__Reply__shared_dns_infoSet_t__defined)
+#define __MIG_check__Reply__shared_dns_infoSet_t__defined
+#ifndef __NDR_convert__int_rep__Reply__shared_dns_infoSet_t__RetCode__defined
+#if defined(__NDR_convert__int_rep__shared_dns_info__kern_return_t__defined)
+#define __NDR_convert__int_rep__Reply__shared_dns_infoSet_t__RetCode__defined
+#define __NDR_convert__int_rep__Reply__shared_dns_infoSet_t__RetCode(a, f) \
+ __NDR_convert__int_rep__shared_dns_info__kern_return_t((kern_return_t *)(a), f)
+#elif defined(__NDR_convert__int_rep__kern_return_t__defined)
+#define __NDR_convert__int_rep__Reply__shared_dns_infoSet_t__RetCode__defined
+#define __NDR_convert__int_rep__Reply__shared_dns_infoSet_t__RetCode(a, f) \
+ __NDR_convert__int_rep__kern_return_t((kern_return_t *)(a), f)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__int_rep__Reply__shared_dns_infoSet_t__RetCode__defined */
+
+
+
+
+
+mig_internal kern_return_t __MIG_check__Reply__shared_dns_infoSet_t(__Reply__shared_dns_infoSet_t *Out0P)
+{
+
+ typedef __Reply__shared_dns_infoSet_t __Reply;
+ if (Out0P->Head.msgh_id != 21101) {
+ if (Out0P->Head.msgh_id == MACH_NOTIFY_SEND_ONCE)
+ { return MIG_SERVER_DIED; }
+ else
+ { return MIG_REPLY_MISMATCH; }
+ }
+
+#if __MigTypeCheck
+ if ((Out0P->Head.msgh_bits & MACH_MSGH_BITS_COMPLEX) ||
+ (Out0P->Head.msgh_size != (mach_msg_size_t)sizeof(__Reply)))
+ { return MIG_TYPE_ERROR ; }
+#endif /* __MigTypeCheck */
+
+#if defined(__NDR_convert__int_rep__Reply__shared_dns_infoSet_t__RetCode__defined)
+ if (Out0P->NDR.int_rep != NDR_record.int_rep)
+ __NDR_convert__int_rep__Reply__shared_dns_infoSet_t__RetCode(&Out0P->RetCode, Out0P->NDR.int_rep);
+#endif /* __NDR_convert__int_rep__Reply__shared_dns_infoSet_t__RetCode__defined */
+ { return Out0P->RetCode;
+ }
+}
+#endif /* !defined(__MIG_check__Reply__shared_dns_infoSet_t__defined) */
+#endif /* __MIG_check__Reply__shared_dns_info_subsystem__ */
+#endif /* ( __MigTypeCheck || __NDR_convert__ ) */
+
+
+/* Routine shared_dns_infoSet */
+mig_external kern_return_t shared_dns_infoSet
+(
+ mach_port_t server,
+ dnsData_t data,
+ mach_msg_type_number_t dataCnt
+)
+{
+ {
+
+#ifdef __MigPackStructs
+#pragma pack(4)
+#endif
+ typedef struct {
+ mach_msg_header_t Head;
+ /* start of the kernel processed data */
+ mach_msg_body_t msgh_body;
+ mach_msg_ool_descriptor_t data;
+ /* end of the kernel processed data */
+ NDR_record_t NDR;
+ mach_msg_type_number_t dataCnt;
+ } Request;
+#ifdef __MigPackStructs
+#pragma pack()
+#endif
+
+#ifdef __MigPackStructs
+#pragma pack(4)
+#endif
+ typedef struct {
+ mach_msg_header_t Head;
+ NDR_record_t NDR;
+ kern_return_t RetCode;
+ mach_msg_trailer_t trailer;
+ } Reply;
+#ifdef __MigPackStructs
+#pragma pack()
+#endif
+
+#ifdef __MigPackStructs
+#pragma pack(4)
+#endif
+ typedef struct {
+ mach_msg_header_t Head;
+ NDR_record_t NDR;
+ kern_return_t RetCode;
+ } __Reply;
+#ifdef __MigPackStructs
+#pragma pack()
+#endif
+ /*
+ * typedef struct {
+ * mach_msg_header_t Head;
+ * NDR_record_t NDR;
+ * kern_return_t RetCode;
+ * } mig_reply_error_t;
+ */
+
+ union {
+ Request In;
+ Reply Out;
+ } Mess;
+
+ Request *InP = &Mess.In;
+ Reply *Out0P = &Mess.Out;
+
+ mach_msg_return_t msg_result;
+
+#ifdef __MIG_check__Reply__shared_dns_infoSet_t__defined
+ kern_return_t check_result;
+#endif /* __MIG_check__Reply__shared_dns_infoSet_t__defined */
+
+ __DeclareSendRpc(21001, "shared_dns_infoSet")
+
+#if UseStaticTemplates
+ const static mach_msg_ool_descriptor_t dataTemplate = {
+ /* addr = */ (void *)0,
+ /* size = */ 0,
+ /* deal = */ FALSE,
+ /* copy = */ MACH_MSG_VIRTUAL_COPY,
+ /* pad2 = */ 0,
+ /* type = */ MACH_MSG_OOL_DESCRIPTOR,
+ };
+#endif /* UseStaticTemplates */
+
+ InP->msgh_body.msgh_descriptor_count = 1;
+#if UseStaticTemplates
+ InP->data = dataTemplate;
+ InP->data.address = (void *)(data);
+ InP->data.size = dataCnt;
+#else /* UseStaticTemplates */
+ InP->data.address = (void *)(data);
+ InP->data.size = dataCnt;
+ InP->data.deallocate = FALSE;
+ InP->data.copy = MACH_MSG_VIRTUAL_COPY;
+ InP->data.type = MACH_MSG_OOL_DESCRIPTOR;
+#endif /* UseStaticTemplates */
+
+ InP->NDR = NDR_record;
+
+ InP->dataCnt = dataCnt;
+
+ InP->Head.msgh_bits = MACH_MSGH_BITS_COMPLEX|
+ MACH_MSGH_BITS(19, MACH_MSG_TYPE_MAKE_SEND_ONCE);
+ /* msgh_size passed as argument */
+ InP->Head.msgh_request_port = server;
+ InP->Head.msgh_reply_port = mig_get_reply_port();
+ InP->Head.msgh_id = 21001;
+
+ __BeforeSendRpc(21001, "shared_dns_infoSet")
+ msg_result = mach_msg(&InP->Head, MACH_SEND_MSG|MACH_RCV_MSG|MACH_MSG_OPTION_NONE, (mach_msg_size_t)sizeof(Request), (mach_msg_size_t)sizeof(Reply), InP->Head.msgh_reply_port, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL);
+ __AfterSendRpc(21001, "shared_dns_infoSet")
+ if (msg_result != MACH_MSG_SUCCESS) {
+ __MachMsgErrorWithoutTimeout(msg_result);
+ { return msg_result; }
+ }
+
+
+#if defined(__MIG_check__Reply__shared_dns_infoSet_t__defined)
+ check_result = __MIG_check__Reply__shared_dns_infoSet_t((__Reply__shared_dns_infoSet_t *)Out0P);
+ if (check_result != MACH_MSG_SUCCESS)
+ { return check_result; }
+#endif /* defined(__MIG_check__Reply__shared_dns_infoSet_t__defined) */
+
+ return KERN_SUCCESS;
+ }
+}
diff --git a/data/libresolv/shared_dns_info_types.h b/data/libresolv/shared_dns_info_types.h
new file mode 100644
index 000000000..e4fe4b679
--- /dev/null
+++ b/data/libresolv/shared_dns_info_types.h
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2004 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_LICENSE_HEADER_END@
+ */
+
+#ifndef _SHARED_DNS_INFO_TYPES_H
+#define _SHARED_DNS_INFO_TYPES_H
+
+/*
+ * Keep IPC functions private to the framework
+ */
+#ifdef mig_external
+#undef mig_external
+#endif
+#define mig_external __private_extern__
+
+/*
+ * Mach server port name
+ */
+#define DNS_SERVER "com.apple.SystemConfiguration.configd"
+
+/*
+ * Input arguments: DNS configuration
+ * (sent as out-of-line data in a message)
+ */
+typedef const char * dnsData_t;
+
+/* Output arguments: DNS configuration
+ * (sent as out-of-line data in a message)
+ */
+typedef char * dnsDataOut_t;
+
+#endif /* !_SHARED_DNS_INFO_TYPES_H */
diff --git a/data/libxml2/_metadata/description b/data/libxml2/_metadata/description
new file mode 100644
index 000000000..005d9a0c9
--- /dev/null
+++ b/data/libxml2/_metadata/description
@@ -0,0 +1,2 @@
+this package isn't described yet
+This package, which I'm certain is incredibly interesting, has yet to be described. This is probably because Jay has spent days getting all kinds of bookkeeping issues, like copyright notifications, all in their correct places, and descriptions just aren't the most important thing he could be working on. If this is a problem, please come back later.
diff --git a/data/libxml2/_metadata/license b/data/libxml2/_metadata/license
new file mode 100644
index 000000000..417e95531
--- /dev/null
+++ b/data/libxml2/_metadata/license
@@ -0,0 +1,27 @@
+Except where otherwise noted in the source code (e.g. the files hash.c,
+list.c and the trio files, which are covered by a similar licence but
+with different Copyright notices) all the files are:
+
+ Copyright (C) 1998-2003 Daniel Veillard. All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is fur-
+nished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
+NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+DANIEL VEILLARD BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON-
+NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of Daniel Veillard shall not
+be used in advertising or otherwise to promote the sale, use or other deal-
+ings in this Software without prior written authorization from him.
+
diff --git a/data/libxml2/_metadata/maintainer b/data/libxml2/_metadata/maintainer
new file mode 120000
index 000000000..0fa66e077
--- /dev/null
+++ b/data/libxml2/_metadata/maintainer
@@ -0,0 +1 @@
+../../../people/saurik \ No newline at end of file
diff --git a/data/libxml2/_metadata/priority b/data/libxml2/_metadata/priority
new file mode 100644
index 000000000..a6a7b9cd7
--- /dev/null
+++ b/data/libxml2/_metadata/priority
@@ -0,0 +1 @@
+standard
diff --git a/data/libxml2/_metadata/section b/data/libxml2/_metadata/section
new file mode 100644
index 000000000..a9fe5db96
--- /dev/null
+++ b/data/libxml2/_metadata/section
@@ -0,0 +1 @@
+xml
diff --git a/data/libxml2/_metadata/version b/data/libxml2/_metadata/version
new file mode 100644
index 000000000..cb7a35cab
--- /dev/null
+++ b/data/libxml2/_metadata/version
@@ -0,0 +1 @@
+2.6.30
diff --git a/data/libxml2/libxml2-2.6.30.tar.gz b/data/libxml2/libxml2-2.6.30.tar.gz
new file mode 100644
index 000000000..9091f21df
--- /dev/null
+++ b/data/libxml2/libxml2-2.6.30.tar.gz
Binary files differ
diff --git a/data/libxml2/make.sh b/data/libxml2/make.sh
new file mode 100644
index 000000000..4b553ed44
--- /dev/null
+++ b/data/libxml2/make.sh
@@ -0,0 +1,5 @@
+pkg:extract
+cd *
+pkg:configure --enable-static=no --without-python
+make
+pkg:install
diff --git a/data/lynx/_metadata/description b/data/lynx/_metadata/description
new file mode 100644
index 000000000..005d9a0c9
--- /dev/null
+++ b/data/lynx/_metadata/description
@@ -0,0 +1,2 @@
+this package isn't described yet
+This package, which I'm certain is incredibly interesting, has yet to be described. This is probably because Jay has spent days getting all kinds of bookkeeping issues, like copyright notifications, all in their correct places, and descriptions just aren't the most important thing he could be working on. If this is a problem, please come back later.
diff --git a/data/lynx/_metadata/license b/data/lynx/_metadata/license
new file mode 120000
index 000000000..9c13a9a0f
--- /dev/null
+++ b/data/lynx/_metadata/license
@@ -0,0 +1 @@
+../../../licenses/gpl-2 \ No newline at end of file
diff --git a/data/lynx/_metadata/maintainer b/data/lynx/_metadata/maintainer
new file mode 120000
index 000000000..0fa66e077
--- /dev/null
+++ b/data/lynx/_metadata/maintainer
@@ -0,0 +1 @@
+../../../people/saurik \ No newline at end of file
diff --git a/data/lynx/_metadata/ncurses.dep b/data/lynx/_metadata/ncurses.dep
new file mode 120000
index 000000000..a395fad08
--- /dev/null
+++ b/data/lynx/_metadata/ncurses.dep
@@ -0,0 +1 @@
+../../ncurses \ No newline at end of file
diff --git a/data/lynx/_metadata/openssl.dep b/data/lynx/_metadata/openssl.dep
new file mode 120000
index 000000000..9b58fd56b
--- /dev/null
+++ b/data/lynx/_metadata/openssl.dep
@@ -0,0 +1 @@
+../../openssl \ No newline at end of file
diff --git a/data/lynx/_metadata/priority b/data/lynx/_metadata/priority
new file mode 100644
index 000000000..134d9bc32
--- /dev/null
+++ b/data/lynx/_metadata/priority
@@ -0,0 +1 @@
+optional
diff --git a/data/lynx/_metadata/section b/data/lynx/_metadata/section
new file mode 100644
index 000000000..992ae1298
--- /dev/null
+++ b/data/lynx/_metadata/section
@@ -0,0 +1 @@
+network
diff --git a/data/lynx/_metadata/version b/data/lynx/_metadata/version
new file mode 100644
index 000000000..e43686acc
--- /dev/null
+++ b/data/lynx/_metadata/version
@@ -0,0 +1 @@
+2.8.6
diff --git a/data/lynx/lynx2.8.6.tar.bz2 b/data/lynx/lynx2.8.6.tar.bz2
new file mode 100644
index 000000000..c57a7c888
--- /dev/null
+++ b/data/lynx/lynx2.8.6.tar.bz2
Binary files differ
diff --git a/data/lynx/make.sh b/data/lynx/make.sh
new file mode 100644
index 000000000..dc7c87255
--- /dev/null
+++ b/data/lynx/make.sh
@@ -0,0 +1,5 @@
+pkg:extract
+cd *
+pkg:configure --with-screen=ncurses --with-ssl
+make
+pkg:install
diff --git a/data/minicom/_metadata/description b/data/minicom/_metadata/description
new file mode 100644
index 000000000..005d9a0c9
--- /dev/null
+++ b/data/minicom/_metadata/description
@@ -0,0 +1,2 @@
+this package isn't described yet
+This package, which I'm certain is incredibly interesting, has yet to be described. This is probably because Jay has spent days getting all kinds of bookkeeping issues, like copyright notifications, all in their correct places, and descriptions just aren't the most important thing he could be working on. If this is a problem, please come back later.
diff --git a/data/minicom/_metadata/license b/data/minicom/_metadata/license
new file mode 100644
index 000000000..5f5422350
--- /dev/null
+++ b/data/minicom/_metadata/license
@@ -0,0 +1,19 @@
+Minicom is Copyright (C) 1991,1992,1993,1994,1995,1996
+Miquel van Smoorenburg.
+
+ 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; version 2 dated June, 1991.
+
+ 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
+ USA.
+
+On Debian GNU/Linux systems, the complete text of the GNU General
+Public License can be found in `/usr/doc/copyright/GPL'.
diff --git a/data/minicom/_metadata/maintainer b/data/minicom/_metadata/maintainer
new file mode 120000
index 000000000..0fa66e077
--- /dev/null
+++ b/data/minicom/_metadata/maintainer
@@ -0,0 +1 @@
+../../../people/saurik \ No newline at end of file
diff --git a/data/minicom/_metadata/priority b/data/minicom/_metadata/priority
new file mode 100644
index 000000000..134d9bc32
--- /dev/null
+++ b/data/minicom/_metadata/priority
@@ -0,0 +1 @@
+optional
diff --git a/data/minicom/_metadata/section b/data/minicom/_metadata/section
new file mode 100644
index 000000000..992ae1298
--- /dev/null
+++ b/data/minicom/_metadata/section
@@ -0,0 +1 @@
+network
diff --git a/data/minicom/_metadata/version b/data/minicom/_metadata/version
new file mode 100644
index 000000000..8bbe6cf74
--- /dev/null
+++ b/data/minicom/_metadata/version
@@ -0,0 +1 @@
+2.2
diff --git a/data/minicom/make.sh b/data/minicom/make.sh
new file mode 100644
index 000000000..1b3c1b776
--- /dev/null
+++ b/data/minicom/make.sh
@@ -0,0 +1,6 @@
+pkg:extract
+cd *
+pkg:patch
+pkg:configure
+make
+pkg:install
diff --git a/data/minicom/minicom-2.2.tar.gz b/data/minicom/minicom-2.2.tar.gz
new file mode 100644
index 000000000..1637a8993
--- /dev/null
+++ b/data/minicom/minicom-2.2.tar.gz
Binary files differ
diff --git a/data/minicom/types.diff b/data/minicom/types.diff
new file mode 100644
index 000000000..153cf813c
--- /dev/null
+++ b/data/minicom/types.diff
@@ -0,0 +1,12 @@
+diff -ru minicom-2.2/src/minicom.h minicom-2.2+iPhone/src/minicom.h
+--- minicom-2.2/src/minicom.h 2005-10-31 11:10:57.000000000 +0000
++++ minicom-2.2+iPhone/src/minicom.h 2008-01-02 00:24:32.000000000 +0000
+@@ -34,6 +34,8 @@
+ #include <sys/un.h>
+ #endif
+
++#include <sys/types.h>
++
+ /*
+ * kubota@debian.or.jp 08/08/98
+ * COLS must be equal to or less than MAXCOLS.
diff --git a/data/minicom/wprintf.diff b/data/minicom/wprintf.diff
new file mode 100644
index 000000000..46d83fee7
--- /dev/null
+++ b/data/minicom/wprintf.diff
@@ -0,0 +1,1158 @@
+diff -ru minicom-2.2/src/config.c minicom-2.2+iPhone/src/config.c
+--- minicom-2.2/src/config.c 2006-04-02 09:52:30.000000000 +0000
++++ minicom-2.2+iPhone/src/config.c 2008-01-02 00:20:52.000000000 +0000
+@@ -253,9 +253,9 @@
+ w = wopen(5, 4, 75, 8, BDOUBLE, stdattr, mfcolor, mbcolor, 0, 0, 1);
+
+ wtitle(w, TMID, _("Logging options"));
+- wprintf(w, "%s %s\n", logfnstr, P_LOGFNAME);
+- wprintf(w, "%s %s\n", logconn, _(P_LOGCONN));
+- wprintf(w, "%s %s\n", logxfer, _(P_LOGXFER));
++ wprintf_(w, "%s %s\n", logfnstr, P_LOGFNAME);
++ wprintf_(w, "%s %s\n", logconn, _(P_LOGCONN));
++ wprintf_(w, "%s %s\n", logxfer, _(P_LOGXFER));
+ wlocate(w, 4, 4);
+ wputs(w, question);
+ wredraw(w, 1);
+@@ -274,13 +274,13 @@
+ case 'B':
+ strcpy(P_LOGCONN, yesno(P_LOGCONN[0] == 'N'));
+ wlocate(w, mbslen(logconn) + 1, 1);
+- wprintf(w, "%s ", _(P_LOGCONN));
++ wprintf_(w, "%s ", _(P_LOGCONN));
+ markch(P_LOGCONN);
+ break;
+ case 'C':
+ strcpy(P_LOGXFER, yesno(P_LOGXFER[0] == 'N'));
+ wlocate(w, mbslen(logxfer) + 1, 2);
+- wprintf(w, "%s ", _(P_LOGXFER));
++ wprintf_(w, "%s ", _(P_LOGXFER));
+ markch(P_LOGXFER);
+ break;
+ default:
+@@ -305,13 +305,13 @@
+ char *question = _("Change which setting?");
+
+ w = wopen(5, 5, 75, 12, BDOUBLE, stdattr, mfcolor, mbcolor, 0, 0, 1);
+- wprintf(w, "%s %.44s\n", download_directory, P_DOWNDIR);
+- wprintf(w, "%s %.44s\n", upload_directory, P_UPDIR);
+- wprintf(w, "%s %.44s\n", script_directory, P_SCRIPTDIR);
+- wprintf(w, "%s %.44s\n", script_program, P_SCRIPTPROG);
+- wprintf(w, "%s %.44s\n", kermit_program, P_KERMIT);
++ wprintf_(w, "%s %.44s\n", download_directory, P_DOWNDIR);
++ wprintf_(w, "%s %.44s\n", upload_directory, P_UPDIR);
++ wprintf_(w, "%s %.44s\n", script_directory, P_SCRIPTDIR);
++ wprintf_(w, "%s %.44s\n", script_program, P_SCRIPTPROG);
++ wprintf_(w, "%s %.44s\n", kermit_program, P_KERMIT);
+ #ifdef LOGFILE
+- wprintf(w, "%s\n", log_settings);
++ wprintf_(w, "%s\n", log_settings);
+ #endif
+ wlocate(w, 4, 8);
+ wputs(w, question);
+@@ -381,7 +381,7 @@
+ pgets(w, 15, n+1, P_PPROG(n), 31, 64);
+ do {
+ wlocate(w, 47, n + 1);
+- wprintf(w, "%c", P_PNN(n));
++ wprintf_(w, "%c", P_PNN(n));
+ c = rwxgetch();
+ if (c == 'Y')
+ P_PNN(n) = 'Y';
+@@ -390,7 +390,7 @@
+ } while (c != '\r' && c != '\n');
+ do {
+ wlocate(w, 52, n + 1);
+- wprintf(w, "%c", P_PUD(n));
++ wprintf_(w, "%c", P_PUD(n));
+ c = rwxgetch();
+ if (c == 'U')
+ P_PUD(n) = 'U';
+@@ -399,7 +399,7 @@
+ } while (c != '\r' && c != '\n');
+ do {
+ wlocate(w, 57, n + 1);
+- wprintf(w, "%c", P_PFULL(n));
++ wprintf_(w, "%c", P_PFULL(n));
+ c = rwxgetch();
+ if (c == 'Y')
+ P_PFULL(n) = 'Y';
+@@ -408,7 +408,7 @@
+ } while (c != '\r' && c != '\n');
+ do {
+ wlocate(w, 65, n + 1);
+- wprintf(w, "%c", P_PIORED(n));
++ wprintf_(w, "%c", P_PIORED(n));
+ c = rwxgetch();
+ if (c == 'Y')
+ P_PIORED(n) = 'Y';
+@@ -417,7 +417,7 @@
+ } while (c != '\r' && c != '\n');
+ do {
+ wlocate(w, 73, n + 1);
+- wprintf(w, "%c", P_MUL(n));
++ wprintf_(w, "%c", P_MUL(n));
+ c = rwxgetch();
+ if (c == 'Y')
+ P_MUL(n) = 'Y';
+@@ -449,21 +449,21 @@
+ for (f = 0; f < 12; f++) {
+ wlocate(w, 1, f + 1);
+ if (P_PNAME(f)[0])
+- wprintf(w, "%c %-10.10s %-31.31s %c %c %c %c %c",
++ wprintf_(w, "%c %-10.10s %-31.31s %c %c %c %c %c",
+ 'A' + f,
+ P_PNAME(f), P_PPROG(f),
+ P_PNN(f), P_PUD(f),
+ P_PFULL(f), P_PIORED(f),
+ P_MUL(f));
+ else
+- wprintf(w, "%c -", 'A' + f);
++ wprintf_(w, "%c -", 'A' + f);
+ }
+ wlocate(w, 1, 13);
+- wprintf(w, "%s %c", zmodem_download, P_PAUTO[0]);
++ wprintf_(w, "%s %c", zmodem_download, P_PAUTO[0]);
+ wlocate(w, 1, 14);
+- wprintf(w, "%s %s", use_filename_selection, _(P_FSELW));
++ wprintf_(w, "%s %s", use_filename_selection, _(P_FSELW));
+ wlocate(w, 1, 15);
+- wprintf(w, "%s %s", prompt_downdir, _(P_ASKDNDIR));
++ wprintf_(w, "%s %s", prompt_downdir, _(P_ASKDNDIR));
+
+ wlocate(w, 3, 17);
+ wputs(w, question);
+@@ -492,17 +492,17 @@
+ }
+ else if (c == 'M') {
+ wlocate(w, mbslen (zmodem_download) + 2, 13);
+- wprintf(w, " \b");
++ wprintf_(w, " \b");
+ c = rwxgetch();
+ if (c >= 'A' && c <= 'L') {
+ P_PAUTO[0] = c;
+ markch(P_PAUTO);
+- wprintf(w, "%c", c);
++ wprintf_(w, "%c", c);
+ } else if (c == '\n' || c == ' ') {
+ P_PAUTO[0] = ' ';
+ markch(P_PAUTO);
+ } else {
+- wprintf(w, "%c", P_PAUTO[0]);
++ wprintf_(w, "%c", P_PAUTO[0]);
+ }
+ c = 0;
+ }
+@@ -511,11 +511,11 @@
+ if (P_FSELW[0] == 'N') {
+ strcpy(P_ASKDNDIR, "No ");
+ wlocate(w, mbslen (prompt_downdir) + 2, 15);
+- wprintf(w, "%s ", _(P_ASKDNDIR));
++ wprintf_(w, "%s ", _(P_ASKDNDIR));
+ markch(P_ASKDNDIR);
+ }
+ wlocate(w, mbslen (use_filename_selection) + 2, 14);
+- wprintf(w, "%s ", _(P_FSELW));
++ wprintf_(w, "%s ", _(P_FSELW));
+ markch(P_FSELW);
+ }
+ else if (c == 'O') {
+@@ -523,11 +523,11 @@
+ if (P_ASKDNDIR[0] == 'Y') {
+ strcpy(P_FSELW, "Yes");
+ wlocate(w, mbslen (use_filename_selection) + 2, 14);
+- wprintf(w, "%s ", _(P_FSELW));
++ wprintf_(w, "%s ", _(P_FSELW));
+ markch(P_FSELW);
+ }
+ wlocate(w, mbslen (prompt_downdir) + 2, 15);
+- wprintf(w, "%s ", _(P_ASKDNDIR));
++ wprintf_(w, "%s ", _(P_ASKDNDIR));
+ markch(P_ASKDNDIR);
+ }
+ } while (c != '\n');
+@@ -547,14 +547,14 @@
+ char *question = _("Change which setting?");
+
+ w = wopen(5, 4, 75, 12, BDOUBLE, stdattr, mfcolor, mbcolor, 0, 0, 1);
+- wprintf(w, "%s %.41s\n", serial_device, P_PORT);
+- wprintf(w, "%s %.41s\n", lockfile_location, P_LOCK);
+- wprintf(w, "%s %.41s\n", callin_program, P_CALLIN);
+- wprintf(w, "%s %.41s\n", callout_program, P_CALLOUT);
+- wprintf(w, "%s %s %s%s%s\n",
++ wprintf_(w, "%s %.41s\n", serial_device, P_PORT);
++ wprintf_(w, "%s %.41s\n", lockfile_location, P_LOCK);
++ wprintf_(w, "%s %.41s\n", callin_program, P_CALLIN);
++ wprintf_(w, "%s %.41s\n", callout_program, P_CALLOUT);
++ wprintf_(w, "%s %s %s%s%s\n",
+ bps_par_bits, P_BAUDRATE, P_BITS, P_PARITY, P_STOPB);
+- wprintf(w, "%s %s\n", hardware_flow_control, _(P_HASRTS));
+- wprintf(w, "%s %s\n", software_flow_control, _(P_HASXON));
++ wprintf_(w, "%s %s\n", hardware_flow_control, _(P_HASRTS));
++ wprintf_(w, "%s %s\n", software_flow_control, _(P_HASXON));
+ wlocate(w, 4, 8);
+ wputs(w, question);
+ wredraw(w, 1);
+@@ -582,7 +582,7 @@
+ if (portfd >= 0)
+ port_init();
+ wlocate(w, mbslen (bps_par_bits) + 1, 4);
+- wprintf(w, "%s %s%s%s \n",
++ wprintf_(w, "%s %s%s%s \n",
+ P_BAUDRATE, P_BITS, P_PARITY, P_STOPB);
+ if (st)
+ mode_status();
+@@ -594,7 +594,7 @@
+ case 'F':
+ strcpy(P_HASRTS, yesno(P_HASRTS[0] == 'N'));
+ wlocate(w, mbslen (hardware_flow_control) + 1, 5);
+- wprintf(w, "%s ", _(P_HASRTS));
++ wprintf_(w, "%s ", _(P_HASRTS));
+ if (portfd >= 0)
+ port_init();
+ markch(P_HASRTS);
+@@ -602,7 +602,7 @@
+ case 'G':
+ strcpy(P_HASXON, yesno(P_HASXON[0] == 'N'));
+ wlocate(w, mbslen (software_flow_control) + 1, 6);
+- wprintf(w, "%s ", _(P_HASXON));
++ wprintf_(w, "%s ", _(P_HASXON));
+ if (portfd >= 0)
+ port_init();
+ markch(P_HASXON);
+@@ -652,39 +652,39 @@
+
+ dirflush = 0;
+ wtitle(w, TMID, _("Modem and dialing parameter setup"));
+- wprintf(w, "\n");
+- wprintf(w, "%s %.48s\n", init_string, P_MINIT);
+- wprintf(w, "%s %.48s\n", reset_string, P_MRESET);
+- wprintf(w, "%s %.48s\n", dialing_prefix_1, P_MDIALPRE);
+- wprintf(w, "%s %.48s\n", dialing_suffix_1, P_MDIALSUF);
+- wprintf(w, "%s %.48s\n", dialing_prefix_2, P_MDIALPRE2);
+- wprintf(w, "%s %.48s\n", dialing_suffix_2, P_MDIALSUF2);
+- wprintf(w, "%s %.48s\n", dialing_prefix_3, P_MDIALPRE3);
+- wprintf(w, "%s %.48s\n", dialing_suffix_3, P_MDIALSUF3);
+- wprintf(w, "%s %.48s\n", connect_string, P_MCONNECT);
+- wprintf(w, "%s %-20.20s %.20s\n", no_connect_strings, P_MNOCON1, P_MNOCON2);
++ wprintf_(w, "\n");
++ wprintf_(w, "%s %.48s\n", init_string, P_MINIT);
++ wprintf_(w, "%s %.48s\n", reset_string, P_MRESET);
++ wprintf_(w, "%s %.48s\n", dialing_prefix_1, P_MDIALPRE);
++ wprintf_(w, "%s %.48s\n", dialing_suffix_1, P_MDIALSUF);
++ wprintf_(w, "%s %.48s\n", dialing_prefix_2, P_MDIALPRE2);
++ wprintf_(w, "%s %.48s\n", dialing_suffix_2, P_MDIALSUF2);
++ wprintf_(w, "%s %.48s\n", dialing_prefix_3, P_MDIALPRE3);
++ wprintf_(w, "%s %.48s\n", dialing_suffix_3, P_MDIALSUF3);
++ wprintf_(w, "%s %.48s\n", connect_string, P_MCONNECT);
++ wprintf_(w, "%s %-20.20s %.20s\n", no_connect_strings, P_MNOCON1, P_MNOCON2);
+ wlocate(w, mbslen (no_connect_strings) + 1, 11);
+- wprintf(w, "%-20.20s %.20s\n", P_MNOCON3, P_MNOCON4);
+- wprintf(w, "%s %.48s\n", hangup_string, P_MHANGUP);
+- wprintf(w, "%s %.48s\n", dial_cancel_string, P_MDIALCAN);
+- wprintf(w, "\n");
+- wprintf(w, "%s %.3s\n", dial_time, P_MDIALTIME);
+- wprintf(w, "%s %.3s\n", delay_before_redial, P_MRDELAY);
+- wprintf(w, "%s %.3s\n", number_of_tries, P_MRETRIES);
+- wprintf(w, "%s %.3s\n", dtr_drop_time, P_MDROPDTR);
++ wprintf_(w, "%-20.20s %.20s\n", P_MNOCON3, P_MNOCON4);
++ wprintf_(w, "%s %.48s\n", hangup_string, P_MHANGUP);
++ wprintf_(w, "%s %.48s\n", dial_cancel_string, P_MDIALCAN);
++ wprintf_(w, "\n");
++ wprintf_(w, "%s %.3s\n", dial_time, P_MDIALTIME);
++ wprintf_(w, "%s %.3s\n", delay_before_redial, P_MRDELAY);
++ wprintf_(w, "%s %.3s\n", number_of_tries, P_MRETRIES);
++ wprintf_(w, "%s %.3s\n", dtr_drop_time, P_MDROPDTR);
+ wlocate(w, 34, 15);
+- wprintf(w, "%s %s\n", auto_bps_detect, _(P_MAUTOBAUD));
++ wprintf_(w, "%s %s\n", auto_bps_detect, _(P_MAUTOBAUD));
+ wlocate(w, 34, 16);
+- wprintf(w, "%s %s\n", modem_has_dcd_line, _(P_HASDCD));
++ wprintf_(w, "%s %s\n", modem_has_dcd_line, _(P_HASDCD));
+ wlocate(w, 34, 17);
+- wprintf(w, "%s %s\n", shown_speed, sspd(P_SHOWSPD));
++ wprintf_(w, "%s %s\n", shown_speed, sspd(P_SHOWSPD));
+ wlocate(w, 34, 18); /* Option for multi-node untag */
+- wprintf(w, "%s %s\n", multi_node, _(P_MULTILINE)); /* er 18-Apr-99 */
++ wprintf_(w, "%s %s\n", multi_node, _(P_MULTILINE)); /* er 18-Apr-99 */
+
+ wlocate(w, 1, 20);
+- wprintf(w, "%s ", question);
++ wprintf_(w, "%s ", question);
+ x = w->curx; y = w->cury;
+- wprintf(w, _(" (Return or Esc to exit)"));
++ wprintf_(w, _(" (Return or Esc to exit)"));
+ wredraw(w, 1);
+
+ while (1) {
+@@ -826,36 +826,36 @@
+
+ wtitle(w, TMID, _("Screen and keyboard"));
+
+- wprintf(w, "\n%s %s\n", command_key, P_ESCAPE);
+- wprintf(w, "%s %s\n", backspace_key, P_BACKSPACE);
+- wprintf(w, "%s %s\n", status_line, _(P_STATLINE));
+- wprintf(w, "%s %s\n", alarm_sound, _(P_SOUND));
++ wprintf_(w, "\n%s %s\n", command_key, P_ESCAPE);
++ wprintf_(w, "%s %s\n", backspace_key, P_BACKSPACE);
++ wprintf_(w, "%s %s\n", status_line, _(P_STATLINE));
++ wprintf_(w, "%s %s\n", alarm_sound, _(P_SOUND));
+ /* fmg - colors support */
+- wprintf(w, "%s %s\n", foreground_color_menu, _(J_col[mfcolor]));
+- wprintf(w, "%s %s\n", background_color_menu, _(J_col[mbcolor]));
+- wprintf(w, "%s %s\n", foreground_color_term, _(J_col[tfcolor]));
+- wprintf(w, "%s %s\n", background_color_term, _(J_col[tbcolor]));
+- wprintf(w, "%s %s\n", foreground_color_stat, _(J_col[sfcolor]));
+- wprintf(w, "%s %s\n", background_color_stat, _(J_col[sbcolor]));
++ wprintf_(w, "%s %s\n", foreground_color_menu, _(J_col[mfcolor]));
++ wprintf_(w, "%s %s\n", background_color_menu, _(J_col[mbcolor]));
++ wprintf_(w, "%s %s\n", foreground_color_term, _(J_col[tfcolor]));
++ wprintf_(w, "%s %s\n", background_color_term, _(J_col[tbcolor]));
++ wprintf_(w, "%s %s\n", foreground_color_stat, _(J_col[sfcolor]));
++ wprintf_(w, "%s %s\n", background_color_stat, _(J_col[sbcolor]));
+
+ /* MARK updated 02/17/95 - Configurable history buffer size */
+- wprintf(w, "%s %s\n", history_buffer_size, P_HISTSIZE);
++ wprintf_(w, "%s %s\n", history_buffer_size, P_HISTSIZE);
+
+ /* fmg - macros support */
+- wprintf(w, "%s %s\n", macros_file, P_MACROS);
+- wprintf(w, _(" M - Edit Macros\n"));
+- wprintf(w, "%s %s\n", macros_enabled, _(P_MACENAB));
+- wprintf(w, "%s %s\n", character_conversion, P_CONVF);
++ wprintf_(w, "%s %s\n", macros_file, P_MACROS);
++ wprintf_(w, _(" M - Edit Macros\n"));
++ wprintf_(w, "%s %s\n", macros_enabled, _(P_MACENAB));
++ wprintf_(w, "%s %s\n", character_conversion, P_CONVF);
+
+- wprintf(w, "%s %s\n", add_linefeed, P_ADDLINEFEED);
+- wprintf(w, "%s %s\n", local_echo, P_LOCALECHO);
++ wprintf_(w, "%s %s\n", add_linefeed, P_ADDLINEFEED);
++ wprintf_(w, "%s %s\n", local_echo, P_LOCALECHO);
+
+ wredraw(w, 1);
+
+ while (1) {
+ if (clr) {
+ wlocate(w, 2, maxy - miny);
+- wprintf(w, "%s ", question);
++ wprintf_(w, "%s ", question);
+ wclreol(w);
+ clr = 0;
+ } else
+@@ -961,7 +961,7 @@
+ else
+ psets(P_BACKSPACE, "DEL");
+ wlocate(w, mbslen (backspace_key) + 1, 2);
+- wprintf(w, "%s ", P_BACKSPACE);
++ wprintf_(w, "%s ", P_BACKSPACE);
+ keyboard(KSETBS, P_BACKSPACE[0] == 'B' ? 8 : 127);
+ break;
+ case 'C':
+@@ -975,12 +975,12 @@
+ tempst = 0;
+ }
+ wlocate(w, mbslen (status_line) + 1, 3);
+- wprintf(w, "%s ", _(P_STATLINE));
++ wprintf_(w, "%s ", _(P_STATLINE));
+ break;
+ case 'D':
+ psets(P_SOUND, yesno(P_SOUND[0] == 'N'));
+ wlocate(w, mbslen (alarm_sound) + 1, 4);
+- wprintf(w, "%s", _(P_SOUND));
++ wprintf_(w, "%s", _(P_SOUND));
+ break;
+ case 'E': /* fmg - letters cycle colors */
+ if (mfcolor == WHITE)
+@@ -989,7 +989,7 @@
+ mfcolor++;
+ psets(P_MFG, J_col[mfcolor]);
+ wlocate(w, mbslen (foreground_color_menu) + 1, 5);
+- wprintf(w, "%s ", _(J_col[mfcolor]));
++ wprintf_(w, "%s ", _(J_col[mfcolor]));
+ break;
+ case 'F': /* fmg - letters cycle colors */
+ if (mbcolor == WHITE)
+@@ -998,7 +998,7 @@
+ mbcolor++;
+ psets(P_MBG, J_col[mbcolor]);
+ wlocate(w, mbslen (background_color_menu) + 1, 6);
+- wprintf(w, "%s ", _(J_col[mbcolor]));
++ wprintf_(w, "%s ", _(J_col[mbcolor]));
+ break;
+ case 'G': /* fmg - letters cycle colors */
+ if (tfcolor == WHITE)
+@@ -1007,7 +1007,7 @@
+ tfcolor++;
+ psets(P_TFG, J_col[tfcolor]);
+ wlocate(w, mbslen (foreground_color_term) + 1, 7);
+- wprintf(w, "%s ", _(J_col[tfcolor]));
++ wprintf_(w, "%s ", _(J_col[tfcolor]));
+ if (us)
+ vt_pinit(us, tfcolor, tbcolor);
+ break;
+@@ -1018,7 +1018,7 @@
+ tbcolor++;
+ psets(P_TBG, J_col[tbcolor]);
+ wlocate(w, mbslen (background_color_term) + 1, 8);
+- wprintf(w, "%s ", _(J_col[tbcolor]));
++ wprintf_(w, "%s ", _(J_col[tbcolor]));
+ if (us)
+ vt_pinit(us, tfcolor, tbcolor);
+ break;
+@@ -1039,7 +1039,7 @@
+ }
+ psets(P_SFG, J_col[sfcolor]);
+ wlocate(w, mbslen (foreground_color_stat) + 1, 9);
+- wprintf(w, "%s ", _(J_col[sfcolor]));
++ wprintf_(w, "%s ", _(J_col[sfcolor]));
+ break;
+ case 'J': /* fmg - letters cycle colors & redraw stat line */
+ if (sbcolor == WHITE)
+@@ -1058,7 +1058,7 @@
+ }
+ psets(P_SBG, J_col[sbcolor]);
+ wlocate(w, mbslen (background_color_stat) + 1, 10);
+- wprintf(w, "%s ", _(J_col[sbcolor]));
++ wprintf_(w, "%s ", _(J_col[sbcolor]));
+ break;
+ case 'K': /* MARK updated 02/17/95 - Config history size */
+ pgets(w, mbslen (history_buffer_size) + 1, 11,
+@@ -1074,7 +1074,7 @@
+ strcpy(P_HISTSIZE,"5000");
+
+ wlocate(w, mbslen (history_buffer_size) + 1, 11);
+- wprintf(w, "%s ", P_HISTSIZE);
++ wprintf_(w, "%s ", P_HISTSIZE);
+ break;
+ case 'L': /* fmg - get local macros storage file */
+ pgets(w, mbslen (macros_file) + 1, 12, P_MACROS, 64, 64);
+@@ -1106,22 +1106,22 @@
+ case 'N':
+ psets(P_MACENAB, yesno(P_MACENAB[0] == 'N'));
+ wlocate(w, mbslen (macros_enabled) + 1, 14);
+- wprintf(w, "%s", _(P_MACENAB));
++ wprintf_(w, "%s", _(P_MACENAB));
+ break;
+ case 'O': /* Character conversions - jl / 04.09.97 */
+ doconv();
+ wlocate(w, mbslen (character_conversion) + 1, 15);
+- wprintf(w, "%-16.16s", _(P_CONVF));
++ wprintf_(w, "%-16.16s", _(P_CONVF));
+ break;
+ case 'P':
+ psets(P_ADDLINEFEED, yesno(P_ADDLINEFEED[0] == 'N'));
+ wlocate(w, strlen (add_linefeed) + 1, 15);
+- wprintf(w, "%s", _(P_ADDLINEFEED));
++ wprintf_(w, "%s", _(P_ADDLINEFEED));
+ break;
+ case 'Q':
+ psets(P_LOCALECHO, yesno(P_LOCALECHO[0] == 'N'));
+ wlocate(w, strlen (local_echo) + 1, 16);
+- wprintf(w, "%s", _(P_LOCALECHO));
++ wprintf_(w, "%s", _(P_LOCALECHO));
+ break;
+ }
+ }
+@@ -1148,12 +1148,12 @@
+
+ w = wopen(15, 7, 64, 15, BDOUBLE, stdattr, mfcolor, mbcolor, 0, 0, 1);
+ wtitle(w, TMID, _("Terminal settings"));
+- wprintf(w, "\n");
+- wprintf(w, "%s %s\n", terminal_emulation, terminal == VT100 ? "VT102" : "ANSI");
+- wprintf(w, "%s %s\n", backspace_key_sends, P_BACKSPACE);
+- wprintf(w, "%s %s\n", status_line, _(P_STATLINE));
+- wprintf(w, "%s %d\n", msg_nl_delay, vt_nl_delay);
+- wprintf(w, "%s %s\n", msg_answerback, P_ANSWERBACK);
++ wprintf_(w, "\n");
++ wprintf_(w, "%s %s\n", terminal_emulation, terminal == VT100 ? "VT102" : "ANSI");
++ wprintf_(w, "%s %s\n", backspace_key_sends, P_BACKSPACE);
++ wprintf_(w, "%s %s\n", status_line, _(P_STATLINE));
++ wprintf_(w, "%s %d\n", msg_nl_delay, vt_nl_delay);
++ wprintf_(w, "%s %s\n", msg_answerback, P_ANSWERBACK);
+ wlocate(w, 4, 7);
+ wputs(w, question);
+
+@@ -1180,9 +1180,9 @@
+ psets(P_BACKSPACE, "DEL");
+ }
+ wlocate(w, mbslen (terminal_emulation) + 1, 1);
+- wprintf(w, "%s ", new_term == VT100 ? "VT102" : "ANSI");
++ wprintf_(w, "%s ", new_term == VT100 ? "VT102" : "ANSI");
+ wlocate(w, mbslen (backspace_key_sends) + 1, 2);
+- wprintf(w, "%s ", P_BACKSPACE);
++ wprintf_(w, "%s ", P_BACKSPACE);
+ keyboard(KSETBS, P_BACKSPACE[0] == 'B' ? 8 : 127);
+ break;
+ case 'B':
+@@ -1191,7 +1191,7 @@
+ else
+ psets(P_BACKSPACE, "DEL");
+ wlocate(w, mbslen (backspace_key_sends) + 1, 2);
+- wprintf(w, "%s ", P_BACKSPACE);
++ wprintf_(w, "%s ", P_BACKSPACE);
+ keyboard(KSETBS, P_BACKSPACE[0] == 'B' ? 8 : 127);
+ break;
+ case 'C':
+@@ -1205,7 +1205,7 @@
+ tempst = 0;
+ }
+ wlocate(w, mbslen (status_line) + 1, 3);
+- wprintf(w, "%s ", _(P_STATLINE));
++ wprintf_(w, "%s ", _(P_STATLINE));
+ break;
+ case 'D':
+ sprintf(buf, "%d", vt_nl_delay);
+@@ -1213,7 +1213,7 @@
+ wgets(w, buf, 4, 4);
+ vt_nl_delay = atoi(buf);
+ wlocate(w, mbslen(msg_nl_delay) +1, 4);
+- wprintf(w, "%-3d", vt_nl_delay);
++ wprintf_(w, "%-3d", vt_nl_delay);
+ break;
+ case 'E':
+ pgets(w, strlen(msg_answerback) + 1, 5, P_ANSWERBACK, 50, 50);
+@@ -1423,7 +1423,7 @@
+
+ while (1) {
+ wlocate(w, 1, 1);
+- wprintf(w, _("Current: %5s %s%s%s "), ba, bi, pa, stopb);
++ wprintf_(w, _("Current: %5s %s%s%s "), ba, bi, pa, stopb);
+ wlocate(w, x, y);
+ wflush();
+ c = wxgetch();
+@@ -1537,7 +1537,7 @@
+ */
+ static void out_mac(WIN *w, char *s, char n)
+ {
+- wprintf(w, " %c : %.67s\n", n, s ? s : "[none]");
++ wprintf_(w, " %c : %.67s\n", n, s ? s : "[none]");
+ }
+
+ /*
+@@ -1553,7 +1553,7 @@
+ w = wopen(3, 6, 75, 24, BDOUBLE, stdattr, mfcolor, mbcolor, 0, 0, 1);
+ wtitle(w, TMID, _("F1 to F10 Macros"));
+
+- wprintf(w, "\n");
++ wprintf_(w, "\n");
+ out_mac(w,mmacs[Jm++].value, Jch++);
+ out_mac(w,mmacs[Jm++].value, Jch++);
+ out_mac(w,mmacs[Jm++].value, Jch++);
+@@ -1579,7 +1579,7 @@
+ wputs(w, _(" = 19200 8N1. (See the \"Comm Parameters\" menu for valid values of X.))"));
+ if (clr) {
+ wlocate(w, 1, 12);
+- wprintf(w, "%s ", question);
++ wprintf_(w, "%s ", question);
+ wclreol(w);
+ clr = 0;
+ } else
+@@ -1682,34 +1682,34 @@
+ while (1) {
+ if (redraw) {
+ winclr(w);
+- wprintf(w,
++ wprintf_(w,
+ _(" char in out char in out char in out char in out\n"));
+ for (i = offs, j = i+h, k = j+h, l = k+h;
+ i < offs+h && i < 256;
+ i++, j++, k++, l++) {
+- wprintf(w, "%3d (%c) %3d %3d ",
++ wprintf_(w, "%3d (%c) %3d %3d ",
+ i, prch(i), (int) vt_inmap[i], (int) vt_outmap[i]);
+ if (j < 256)
+- wprintf(w, "%3d (%c) %3d %3d ",
++ wprintf_(w, "%3d (%c) %3d %3d ",
+ j, prch(j), (int) vt_inmap[j], (int) vt_outmap[j]);
+ else
+- wprintf(w, " ");
++ wprintf_(w, " ");
+ if (k < 256)
+- wprintf(w, "%3d (%c) %3d %3d ",
++ wprintf_(w, "%3d (%c) %3d %3d ",
+ k, prch(k), (int) vt_inmap[k], (int) vt_outmap[k]);
+ else
+- wprintf(w, " ");
++ wprintf_(w, " ");
+ if (l < 256)
+- wprintf(w, "%3d (%c) %3d %3d\n",
++ wprintf_(w, "%3d (%c) %3d %3d\n",
+ l, prch(l), (int) vt_inmap[l], (int) vt_outmap[l]);
+ else
+- wprintf(w, " \n");
++ wprintf_(w, " \n");
+ }
+- wprintf(w, _("\n A - load table\tB - save table"));
++ wprintf_(w, _("\n A - load table\tB - save table"));
+ if (P_CONVF[0])
+- wprintf(w, _("\tfile:%s"),P_CONVF);
+- wprintf(w, _("\n C - edit char\tD - next screen\tE - prev screen\n"));
+- wprintf(w, _(" F - convert capture: %s\n"), _(P_CONVCAP));
++ wprintf_(w, _("\tfile:%s"),P_CONVF);
++ wprintf_(w, _("\n C - edit char\tD - next screen\tE - prev screen\n"));
++ wprintf_(w, _(" F - convert capture: %s\n"), _(P_CONVCAP));
+
+ wredraw(w, 1);
+ redraw = 0;
+@@ -1725,7 +1725,7 @@
+ case 'A':
+ strcpy(buf,P_CONVF);
+ prompt=_("Load file: %s");
+- wprintf(w, prompt, buf);
++ wprintf_(w, prompt, buf);
+ pgets(w, mbslen(prompt) - 1, ymax - 1, P_CONVF, 64, 64);
+ if (loadconv(P_CONVF) == 0) {
+ if (strcmp(P_CONVF,buf))
+@@ -1737,7 +1737,7 @@
+ case 'B':
+ strcpy(buf,P_CONVF);
+ prompt=_("Save as file: %s");
+- wprintf(w, prompt, buf);
++ wprintf_(w, prompt, buf);
+ pgets(w, mbslen(prompt) - 1, ymax - 1, P_CONVF, 64, 64);
+ if (saveconv(P_CONVF) == 0) {
+ if (strcmp(P_CONVF,buf))
+@@ -1748,7 +1748,7 @@
+ break;
+ case 'C':
+ prompt = _("Character to be edited: ");
+- wprintf(w, prompt);
++ wprintf_(w, prompt);
+ buf[0] = 0;
+ i = -1;
+ wlocate(w, mbslen(prompt), ymax - 1);
+@@ -1762,7 +1762,7 @@
+ sprintf(buf, "%u",(unsigned int) vt_inmap[i]);
+ wlocate(w, 30, ymax - 1);
+ prompt=_("Change input to: %s");
+- wprintf(w, prompt,buf);
++ wprintf_(w, prompt,buf);
+ wlocate(w, mbslen(prompt) + 28, ymax - 1);
+ wgets(w, buf, 4, 4);
+ sscanf(buf, "%d", &j);
+@@ -1774,7 +1774,7 @@
+ sprintf(buf, "%u",(unsigned int) vt_outmap[i]);
+ wlocate(w, 54, ymax - 1);
+ prompt = _("Change output to: %s");
+- wprintf(w, prompt, buf);
++ wprintf_(w, prompt, buf);
+ wlocate(w, mbslen(prompt) + 52, ymax - 1);
+ wgets(w, buf, 4, 4);
+ sscanf(buf, "%d", &j);
+diff -ru minicom-2.2/src/dial.c minicom-2.2+iPhone/src/dial.c
+--- minicom-2.2/src/dial.c 2005-10-31 12:13:51.000000000 +0000
++++ minicom-2.2+iPhone/src/dial.c 2008-01-02 00:20:52.000000000 +0000
+@@ -353,14 +353,14 @@
+ int ret = 0;
+
+ wlocate(dialwin, 1, 5);
+- wprintf(dialwin, _(" No connection: %s. \n"), s);
++ wprintf_(dialwin, _(" No connection: %s. \n"), s);
+ if (rtime < 0) {
+- wprintf(dialwin, _(" Press any key to continue.. "));
++ wprintf_(dialwin, _(" Press any key to continue.. "));
+ if (check_io(-1, 0, 10000, NULL, NULL) & 2)
+ keyboard(KGETKEY, 0);
+ return 0;
+ }
+- wprintf(dialwin, _(" Retry in %2d seconds "), rtime);
++ wprintf_(dialwin, _(" Retry in %2d seconds "), rtime);
+
+ for (f = rtime - 1; f >= 0; f--) {
+ x = check_io(-1, 0, 1000, NULL, NULL);
+@@ -372,7 +372,7 @@
+ break;
+ }
+ wlocate(dialwin, 0, 6);
+- wprintf(dialwin, _(" Retry in %2d seconds "), f);
++ wprintf_(dialwin, _(" Retry in %2d seconds "), f);
+ }
+ #ifdef HAVE_USLEEP
+ /* MARK updated 02/17/94 - Min dial delay set to 0.35 sec instead of 1 sec */
+@@ -383,8 +383,8 @@
+ sleep(1);
+ #endif
+ wlocate(dialwin, 1, 5);
+- wprintf(dialwin, " \n");
+- wprintf(dialwin, " ");
++ wprintf_(dialwin, " \n");
++ wprintf_(dialwin, " ");
+ return ret;
+ }
+
+@@ -417,12 +417,12 @@
+ wcursor(dialwin, CNONE);
+
+ wputs(dialwin, "\n");
+- wprintf(dialwin, " %s : %s\n", _("Dialing"), d->name);
+- wprintf(dialwin, _(" At : %s"), d->number);
+- wprintf(dialwin, "\n"); /* help translators */
++ wprintf_(dialwin, " %s : %s\n", _("Dialing"), d->name);
++ wprintf_(dialwin, _(" At : %s"), d->number);
++ wprintf_(dialwin, "\n"); /* help translators */
+ if (d->lastdate[0] && d->lasttime[0]) /* jl 26.01.98 */
+- wprintf(dialwin, _(" Last on : %s at %s"), d->lastdate, d->lasttime);
+- wprintf(dialwin, "\n");
++ wprintf_(dialwin, _(" Last on : %s at %s"), d->lastdate, d->lasttime);
++ wprintf_(dialwin, "\n");
+ wredraw(dialwin, 1);
+
+ /* Tell keyboard routines we need them. */
+@@ -447,14 +447,14 @@
+ d = dialents;
+ } while (!(d->flags & FL_TAG));
+ wlocate(dialwin, 0, 1);
+- wprintf(dialwin, " %s : %s", _("Dialing"), d->name);
++ wprintf_(dialwin, " %s : %s", _("Dialing"), d->name);
+ wclreol(dialwin);
+- wprintf(dialwin, "\n"); /* helps translators */
+- wprintf(dialwin, _(" At : %s"), d->number);
++ wprintf_(dialwin, "\n"); /* helps translators */
++ wprintf_(dialwin, _(" At : %s"), d->number);
+ wclreol(dialwin);
+ if (d->lastdate[0] && d->lasttime[0]) {
+- wprintf(dialwin, "\n"); /* don't merge with next printf, helps translators */
+- wprintf(dialwin, _(" Last on : %s at %s"),
++ wprintf_(dialwin, "\n"); /* don't merge with next printf, helps translators */
++ wprintf_(dialwin, _(" Last on : %s at %s"),
+ d->lastdate, d->lasttime);
+ wclreol(dialwin);
+ }
+@@ -469,9 +469,9 @@
+
+ /* Show used time */
+ wlocate(dialwin, 0, 4);
+- wprintf(dialwin, _(" Time : %-3d"), dialtime);
++ wprintf_(dialwin, _(" Time : %-3d"), dialtime);
+ if (maxretries > 1)
+- wprintf(dialwin, _(" Attempt #%d"), retries);
++ wprintf_(dialwin, _(" Attempt #%d"), retries);
+ wputs(dialwin, _("\n\n\n Escape to cancel, space to retry."));
+
+ /* Start the dial */
+@@ -591,7 +591,7 @@
+ keyboard(KSTOP, 0);
+ wclose(dialwin, 1);
+ /* Print out the connect strings. */
+- wprintf(us, "\r\n%s\r\n", modbuf);
++ wprintf_(us, "\r\n%s\r\n", modbuf);
+ dialwin = NULL;
+
+ /* Un-tag this entry. */
+@@ -646,7 +646,7 @@
+ if (dialtime < 0)
+ dialtime = 0;
+ wlocate(dialwin, 11, 4);
+- wprintf(dialwin, "%-3d ", dialtime);
++ wprintf_(dialwin, "%-3d ", dialtime);
+ if (dialtime <= 0) {
+ mputs(P_MDIALCAN, 0);
+ reason = _("Timeout");
+@@ -1073,23 +1073,23 @@
+ *question = _("Change which setting?");
+
+ w = wopen(5, 4, 75, 19, BDOUBLE, stdattr, mfcolor, mbcolor, 0, 0, 1);
+- wprintf(w, "%s %s\n", name, d->name);
+- wprintf(w, "%s %s\n", number, d->number);
+- wprintf(w, "%s %d\n", dial_string, d->dialtype + 1);
+- wprintf(w, "%s %s\n", local_echo, _(yesno(d->flags & FL_ECHO)));
+- wprintf(w, "%s %s\n", script, d->script);
+- wprintf(w, "%s %s\n", username, d->username);
+- wprintf(w, "%s %s\n", password, d->password);
+- wprintf(w, "%s %s\n", terminal_emulation, te[d->term - 1]);
+- wprintf(w, "%s %s\n", backspace_key_sends,
++ wprintf_(w, "%s %s\n", name, d->name);
++ wprintf_(w, "%s %s\n", number, d->number);
++ wprintf_(w, "%s %d\n", dial_string, d->dialtype + 1);
++ wprintf_(w, "%s %s\n", local_echo, _(yesno(d->flags & FL_ECHO)));
++ wprintf_(w, "%s %s\n", script, d->script);
++ wprintf_(w, "%s %s\n", username, d->username);
++ wprintf_(w, "%s %s\n", password, d->password);
++ wprintf_(w, "%s %s\n", terminal_emulation, te[d->term - 1]);
++ wprintf_(w, "%s %s\n", backspace_key_sends,
+ d->flags & FL_DEL ? _("Delete") : _("Backspace"));
+- wprintf(w, "%s %s\n", linewrap,
++ wprintf_(w, "%s %s\n", linewrap,
+ d->flags & FL_WRAP ? _("On") : _("Off"));
+- wprintf(w, "%s %s %s%s%s\n", line_settings,
++ wprintf_(w, "%s %s %s%s%s\n", line_settings,
+ d->baud, d->bits, d->parity, d->stopb);
+- wprintf(w, "%s %s\n", conversion_table, d->convfile);
+- wprintf(w, _(" Last dialed : %s %s\n"),d->lastdate,d->lasttime);
+- wprintf(w, _(" Times on : %d"),d->count);
++ wprintf_(w, "%s %s\n", conversion_table, d->convfile);
++ wprintf_(w, _(" Last dialed : %s %s\n"),d->lastdate,d->lasttime);
++ wprintf_(w, _(" Times on : %d"),d->count);
+ wlocate(w, 4, 15);
+ wputs(w, question);
+ wredraw(w, 1);
+@@ -1116,13 +1116,13 @@
+ case 'C':
+ d->dialtype = (d->dialtype + 1) % 3;
+ wlocate(w, mbslen (dial_string) + 1, 2);
+- wprintf(w, "%d", d->dialtype + 1);
++ wprintf_(w, "%d", d->dialtype + 1);
+ wflush();
+ break;
+ case 'D':
+ d->flags ^= FL_ECHO;
+ wlocate(w, mbslen (local_echo) + 1, 3);
+- wprintf(w, "%s", _(yesno(d->flags & FL_ECHO)));
++ wprintf_(w, "%s", _(yesno(d->flags & FL_ECHO)));
+ wflush();
+ break;
+ case 'E':
+@@ -1171,7 +1171,7 @@
+ case 'K':
+ get_bbp(d->baud, d->bits, d->parity, d->stopb, 1);
+ wlocate(w, mbslen (line_settings) + 1, 10);
+- wprintf(w, "%s %s%s%s ",
++ wprintf_(w, "%s %s%s%s ",
+ d->baud, d->bits, d->parity, d->stopb);
+ break;
+ case 'L': /* jl 21.09.97 */
+@@ -1207,9 +1207,9 @@
+ {
+ static const char spaces[] = " ";
+
+- wprintf(dsub, "%.*s", what_padding[k][0], spaces);
+- wprintf(dsub, "%.*s", what_lens[k], _(what[k]));
+- wprintf(dsub, "%.*s", what_padding[k][1], spaces);
++ wprintf_(dsub, "%.*s", what_padding[k][0], spaces);
++ wprintf_(dsub, "%.*s", what_lens[k], _(what[k]));
++ wprintf_(dsub, "%.*s", what_padding[k][1], spaces);
+ }
+
+ /*
+@@ -1256,7 +1256,7 @@
+ d = getno(f + top);
+ if (d == (struct dialent *)0)
+ break;
+- wprintf(dialw, fmt, f+1+top, (d->flags & FL_TAG) ? '>' : ' ',
++ wprintf_(dialw, fmt, f+1+top, (d->flags & FL_TAG) ? '>' : ' ',
+ d->name, d->number, d->lastdate, d->lasttime,
+ d->count, d->script);
+ }
+@@ -1508,7 +1508,7 @@
+
+ prdir(w, top, top);
+ wlocate(w, position_dialing_directory, w->ys - 1);
+- wprintf(w, "%*.*s", tagmvlen,tagmvlen, tag_exit);
++ wprintf_(w, "%*.*s", tagmvlen,tagmvlen, tag_exit);
+ dhili(position_dialing_directory, subm);
+ dirflush = 1;
+ wredraw(dsub, 1);
+@@ -1554,7 +1554,7 @@
+ wlocate(w, 4, cur + 1 - top);
+ d->flags ^= FL_TAG;
+ wsetattr(w, XA_REVERSE | stdattr);
+- wprintf(w, "%c", d->flags & FL_TAG ? '>' : ' ');
++ wprintf_(w, "%c", d->flags & FL_TAG ? '>' : ' ');
+ wsetattr(w, XA_NORMAL | stdattr);
+ cur += (cur < nrents - 1);
+ break;
+@@ -1713,7 +1713,7 @@
+ dedit(d);
+ changed++;
+ wlocate(w, 0, cur + 1 - top);
+- wprintf(w, fmt, cur+1, (d->flags & FL_TAG) ? 16 : ' ', d->name,
++ wprintf_(w, fmt, cur+1, (d->flags & FL_TAG) ? 16 : ' ', d->name,
+ d->number, d->lastdate, d->lasttime, d->count, d->script);
+ }
+
+@@ -1751,13 +1751,13 @@
+ /* Move the entry up/down in directory. */
+ if (subm == 5) {
+ wlocate(w, position_dialing_directory, w->ys - 1);
+- wprintf(w, "%*.*s", tagmvlen,tagmvlen, move_exit);
++ wprintf_(w, "%*.*s", tagmvlen,tagmvlen, move_exit);
+ cur = move_entry (w, d, cur, &top);
+ if (cur != ocur)
+ changed++;
+ ocur = cur;
+ wlocate(w, position_dialing_directory, w->ys - 1);
+- wprintf(w, "%*.*s", tagmvlen,tagmvlen, tag_exit);
++ wprintf_(w, "%*.*s", tagmvlen,tagmvlen, tag_exit);
+ }
+
+ /* Dial a number manually. */
+diff -ru minicom-2.2/src/file.c minicom-2.2+iPhone/src/file.c
+--- minicom-2.2/src/file.c 2005-08-14 20:39:30.000000000 +0000
++++ minicom-2.2+iPhone/src/file.c 2008-01-02 00:20:52.000000000 +0000
+@@ -89,11 +89,11 @@
+ {
+ static const char spaces[] = " ";
+
+- wprintf(dsub, "%.*s", what_padding[k][0], spaces);
++ wprintf_(dsub, "%.*s", what_padding[k][0], spaces);
+ wsetattr(dsub, start_attr);
+- wprintf(dsub, "%.*s", what_lens[k], _(what[k]));
++ wprintf_(dsub, "%.*s", what_lens[k], _(what[k]));
+ wsetattr(dsub, end_attr);
+- wprintf(dsub, "%.*s", what_padding[k][1], spaces);
++ wprintf_(dsub, "%.*s", what_padding[k][1], spaces);
+ }
+
+ /*
+@@ -163,9 +163,9 @@
+ wsetattr(dirw, XA_REVERSE | stdattr);
+ if (S_ISDIR(d->mode)) {
+ snprintf(t_str, sizeof(t_str), "[%s]", d->fname);
+- wprintf(dirw, f_str, t_str);
++ wprintf_(dirw, f_str, t_str);
+ } else
+- wprintf(dirw, f_str, d->fname);
++ wprintf_(dirw, f_str, d->fname);
+ wsetattr(dirw, XA_NORMAL | stdattr);
+ wputc(dirw, '\n');
+ }
+@@ -191,9 +191,9 @@
+ wsetattr(dirw, XA_REVERSE | stdattr);
+ if (S_ISDIR(dirdat->mode)) {
+ snprintf(t_str, sizeof(t_str), "[%s]", dirdat->fname);
+- wprintf(dirw, f_str, t_str);
++ wprintf_(dirw, f_str, t_str);
+ } else
+- wprintf(dirw, f_str, dirdat->fname);
++ wprintf_(dirw, f_str, dirdat->fname);
+ wsetattr(dirw, XA_NORMAL | stdattr);
+ dirflush = 1;
+ wflush();
+diff -ru minicom-2.2/src/help.c minicom-2.2+iPhone/src/help.c
+--- minicom-2.2/src/help.c 2005-10-31 10:31:38.000000000 +0000
++++ minicom-2.2+iPhone/src/help.c 2008-01-02 00:20:52.000000000 +0000
+@@ -38,7 +38,7 @@
+ wputs(w, _("Minicom Command Summary"));
+ wlocate(w, 10, 2);
+
+- wprintf(w, _("Commands can be called by %s<key>"), esc_key());
++ wprintf_(w, _("Commands can be called by %s<key>"), esc_key());
+
+ wlocate(w, 15, 4);
+ wputs(w, _("Main Functions"));
+diff -ru minicom-2.2/src/main.c minicom-2.2+iPhone/src/main.c
+--- minicom-2.2/src/main.c 2005-10-31 12:13:51.000000000 +0000
++++ minicom-2.2+iPhone/src/main.c 2008-01-02 00:20:52.000000000 +0000
+@@ -452,12 +452,12 @@
+ if (st) { /* if swich off status line - NOT print !!! (vlk@st.simbirsk.su) */
+ wlocate(st, 20, 0);
+ if (portfd_is_socket) {
+- wprintf(st, "unix-socket");
++ wprintf_(st, "unix-socket");
+ } else {
+ if (P_SHOWSPD[0] == 'l')
+- wprintf(st, "%6ld %s%s%s", linespd, P_BITS, P_PARITY, P_STOPB);
++ wprintf_(st, "%6ld %s%s%s", linespd, P_BITS, P_PARITY, P_STOPB);
+ else
+- wprintf(st, "%6.6s %s%s%s", P_BAUDRATE, P_BITS, P_PARITY, P_STOPB);
++ wprintf_(st, "%6.6s %s%s%s", P_BAUDRATE, P_BITS, P_PARITY, P_STOPB);
+ }
+ ret_csr();
+ }
+@@ -474,9 +474,9 @@
+ return;
+ wlocate(st, 63, 0);
+ if (online < 0)
+- wprintf(st, " %12.12s ", P_HASDCD[0] == 'Y' ? _("Offline") : _("OFFLINE"));
++ wprintf_(st, " %12.12s ", P_HASDCD[0] == 'Y' ? _("Offline") : _("OFFLINE"));
+ else
+- wprintf(st, " %s %02ld:%02ld", P_HASDCD[0] == 'Y' ? _("Online") : _("ONLINE"),
++ wprintf_(st, " %s %02ld:%02ld", P_HASDCD[0] == 'Y' ? _("Online") : _("ONLINE"),
+ online / 3600, (online / 60) % 60);
+
+ ret_csr();
+@@ -488,7 +488,7 @@
+ void curs_status(void)
+ {
+ wlocate(st, 33, 0);
+- wprintf(st, cursormode == NORMAL ? "NOR" : "APP");
++ wprintf_(st, cursormode == NORMAL ? "NOR" : "APP");
+ ret_csr();
+ }
+
+@@ -570,7 +570,7 @@
+ {
+ st->direct = 0;
+ wlocate(st, 0, 0);
+- wprintf(st,
++ wprintf_(st,
+ _(" %7.7sZ for help | | | Minicom %-6.6s | | "),
+ esc_key(), VERSION);
+ mode_status();
+@@ -598,9 +598,9 @@
+ return;
+ wlocate(st, 39, 0);
+ if (*s == 0)
+- wprintf(st, "Minicom %-6.6s", VERSION);
++ wprintf_(st, "Minicom %-6.6s", VERSION);
+ else
+- wprintf(st, "script %-7.7s", s);
++ wprintf_(st, "script %-7.7s", s);
+ ret_csr();
+ }
+
+diff -ru minicom-2.2/src/minicom.c minicom-2.2+iPhone/src/minicom.c
+--- minicom-2.2/src/minicom.c 2005-10-31 12:13:51.000000000 +0000
++++ minicom-2.2+iPhone/src/minicom.c 2008-01-02 00:20:52.000000000 +0000
+@@ -261,7 +261,7 @@
+ w_new->wrap = 0;
+
+ hline = _("SEARCH FOR (ESC=Exit)");
+- wprintf(w_new, "%s(%d):",hline,MAX_SEARCH);
++ wprintf_(w_new, "%s(%d):",hline,MAX_SEARCH);
+ wredraw(w_new, 1);
+ wflush();
+
+@@ -461,7 +461,7 @@
+ if (b_st->xs < 127)
+ hline0[b_st->xs] = 0;
+ hline = hline0;
+- wprintf(b_st, hline);
++ wprintf_(b_st, hline);
+ wredraw(b_st, 1);
+ wflush();
+
+@@ -514,7 +514,7 @@
+ searchhist(b_us, look_for);
+ /* must redraw status line... */
+ wlocate(b_st, 0, 0); /* move back to column 0! */
+- wprintf(b_st, hline); /* and show the above-defined hline */
++ wprintf_(b_st, hline); /* and show the above-defined hline */
+ wredraw(b_st, 1); /* again... */
+ /* highlight any matches */
+ if (wcslen(look_for) > 1) {
+@@ -723,7 +723,7 @@
+ hline = hline0;
+ }
+ wlocate(b_st, 0, 0);
+- wprintf(b_st, hline);
++ wprintf_(b_st, hline);
+ wredraw(b_st, 1);
+ if (citemode)
+ wlocate(b_us, 0, cite_y);
+@@ -743,7 +743,7 @@
+ break;
+ }
+ wlocate(b_st, 0, 0);
+- wprintf(b_st, hline);
++ wprintf_(b_st, hline);
+ wredraw(b_st, 1);
+ wdrawelm_inverse(b_us, cite_y, getline(b_us, cite_ystart));
+ wlocate(b_us, 0, cite_y);
+@@ -762,7 +762,7 @@
+ }
+ drawcite_whole(b_us, y, cite_ystart, cite_yend);
+ wlocate(b_st, 0, 0);
+- wprintf(b_st, hline);
++ wprintf_(b_st, hline);
+ wredraw(b_st, 1);
+ if (citemode)
+ wlocate(b_us, 0, cite_y);
+@@ -1338,13 +1338,13 @@
+ if (doinit)
+ modeminit();
+
+- wprintf(us, "\n%s %s\r\n", _("Welcome to minicom"), VERSION);
+- wprintf(us, "\n%s: %s\r\n", _("OPTIONS"), option_string);
++ wprintf_(us, "\n%s %s\r\n", _("Welcome to minicom"), VERSION);
++ wprintf_(us, "\n%s: %s\r\n", _("OPTIONS"), option_string);
+ #if defined (__DATE__) && defined (__TIME__)
+- wprintf(us, "%s %s, %s.\r\n",_("Compiled on"), __DATE__,__TIME__);
++ wprintf_(us, "%s %s, %s.\r\n",_("Compiled on"), __DATE__,__TIME__);
+ #endif
+- wprintf(us, "Port %s\n", P_PORT);
+- wprintf(us, _("\nPress %sZ for help on special keys%c\n\n"),esc_key(),'\r');
++ wprintf_(us, "Port %s\n", P_PORT);
++ wprintf_(us, _("\nPress %sZ for help on special keys%c\n\n"),esc_key(),'\r');
+
+ /* Now that all initialization is done, drop our priviliges. */
+ drop_privs();
+diff -ru minicom-2.2/src/updown.c minicom-2.2+iPhone/src/updown.c
+--- minicom-2.2/src/updown.c 2005-08-14 20:39:30.000000000 +0000
++++ minicom-2.2+iPhone/src/updown.c 2008-01-02 00:20:52.000000000 +0000
+@@ -355,7 +355,7 @@
+ if (win && (status & 0xFF00) == 0) {
+ #if VC_MUSIC
+ if (P_SOUND[0] == 'Y') {
+- wprintf(win, _("\n READY: press any key to continue..."));
++ wprintf_(win, _("\n READY: press any key to continue..."));
+ music();
+ } else
+ sleep(1);
+@@ -363,7 +363,7 @@
+ /* MARK updated 02/17/94 - If there was no VC_MUSIC capability, */
+ /* then at least make some beeps! */
+ if (P_SOUND[0] == 'Y')
+- wprintf(win, "\007\007\007");
++ wprintf_(win, "\007\007\007");
+ sleep(1);
+ #endif
+ }
+@@ -526,9 +526,9 @@
+ w = wopen(10, 5, 70, 10, BDOUBLE, stdattr, mfcolor, mbcolor, 0, 0, 1);
+ wtitle(w, TMID, _("Run a script"));
+ wputs(w, "\n");
+- wprintf(w, "%s %s\n", username, scr_user[0] ? msg : "");
+- wprintf(w, "%s %s\n", password, scr_passwd[0] ? msg : "");
+- wprintf(w, "%s %s\n", name_of_script, scr_name);
++ wprintf_(w, "%s %s\n", username, scr_user[0] ? msg : "");
++ wprintf_(w, "%s %s\n", password, scr_passwd[0] ? msg : "");
++ wprintf_(w, "%s %s\n", name_of_script, scr_name);
+ wlocate(w, 4, 5);
+ wputs(w, question);
+ wredraw(w, 1);
+diff -ru minicom-2.2/src/windiv.c minicom-2.2+iPhone/src/windiv.c
+--- minicom-2.2/src/windiv.c 2006-10-11 20:46:21.000000000 +0000
++++ minicom-2.2+iPhone/src/windiv.c 2008-01-02 00:20:52.000000000 +0000
+@@ -120,7 +120,7 @@
+ while (1) {
+ wlocate(w, 2 + offs + 10 * cur, 1);
+ if (!useattr)
+- wprintf(w, ">%s", _(s[cur]) + 1);
++ wprintf_(w, ">%s", _(s[cur]) + 1);
+ else {
+ wsetattr(w, XA_REVERSE | stdattr);
+ wputs(w, _(s[cur]));
+@@ -169,7 +169,7 @@
+ BDOUBLE, stdattr, mfcolor, mbcolor, 1, 0, 1);
+ wputs(w, s);
+ wlocate(w, 0, 1);
+- wprintf(w, "> %-38.38s", buf);
++ wprintf_(w, "> %-38.38s", buf);
+ wlocate(w, 2, 1);
+ if (wgets(w, buf, 38, 128) < 0)
+ buf = NULL;
+diff -ru minicom-2.2/src/window.c minicom-2.2+iPhone/src/window.c
+--- minicom-2.2/src/window.c 2005-11-06 19:20:57.000000000 +0000
++++ minicom-2.2+iPhone/src/window.c 2008-01-02 00:20:52.000000000 +0000
+@@ -1146,7 +1146,7 @@
+ * Print a formatted string in a window.
+ * Should return stringlength - but who cares.
+ */
+-int wprintf(WIN *win, const char *fmt, ...)
++int wprintf_(WIN *win, const char *fmt, ...)
+ {
+ char buf[160];
+ va_list va;
+@@ -1304,7 +1304,7 @@
+ wtitle(w, TMID, title);
+
+ for (c = 0; c < count; c++)
+- wprintf(w, " %s%s", _(choices[c]), c == count - 1 ? "" : "\n");
++ wprintf_(w, " %s%s", _(choices[c]), c == count - 1 ? "" : "\n");
+
+ wcurbar(w, cur, high_on);
+ wredraw(w, 1);
+diff -ru minicom-2.2/src/window.h minicom-2.2+iPhone/src/window.h
+--- minicom-2.2/src/window.h 2006-04-02 09:58:52.000000000 +0000
++++ minicom-2.2+iPhone/src/window.h 2008-01-02 00:20:50.000000000 +0000
+@@ -151,7 +151,7 @@
+ void wputc(WIN *win, wchar_t c);
+ void wdrawelm(WIN *win, int y, ELM *e);
+ void wputs(WIN *win, const char *s);
+-int wprintf(WIN *, const char *, ...)
++int wprintf_(WIN *, const char *, ...)
+ __attribute__((format(printf, 2, 3)));
+ void wbell(void);
+ void wcursor(WIN *win, int type);
diff --git a/data/pcre/_metadata/description b/data/pcre/_metadata/description
new file mode 100644
index 000000000..005d9a0c9
--- /dev/null
+++ b/data/pcre/_metadata/description
@@ -0,0 +1,2 @@
+this package isn't described yet
+This package, which I'm certain is incredibly interesting, has yet to be described. This is probably because Jay has spent days getting all kinds of bookkeeping issues, like copyright notifications, all in their correct places, and descriptions just aren't the most important thing he could be working on. If this is a problem, please come back later.
diff --git a/data/pcre/_metadata/license b/data/pcre/_metadata/license
new file mode 100644
index 000000000..4baa7d83a
--- /dev/null
+++ b/data/pcre/_metadata/license
@@ -0,0 +1,68 @@
+PCRE LICENCE
+------------
+
+PCRE is a library of functions to support regular expressions whose syntax
+and semantics are as close as possible to those of the Perl 5 language.
+
+Release 7 of PCRE is distributed under the terms of the "BSD" licence, as
+specified below. The documentation for PCRE, supplied in the "doc"
+directory, is distributed under the same terms as the software itself.
+
+The basic library functions are written in C and are freestanding. Also
+included in the distribution is a set of C++ wrapper functions.
+
+
+THE BASIC LIBRARY FUNCTIONS
+---------------------------
+
+Written by: Philip Hazel
+Email local part: ph10
+Email domain: cam.ac.uk
+
+University of Cambridge Computing Service,
+Cambridge, England.
+
+Copyright (c) 1997-2007 University of Cambridge
+All rights reserved.
+
+
+THE C++ WRAPPER FUNCTIONS
+-------------------------
+
+Contributed by: Google Inc.
+
+Copyright (c) 2007, Google Inc.
+All rights reserved.
+
+
+THE "BSD" LICENCE
+-----------------
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ * 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.
+
+ * Neither the name of the University of Cambridge nor the name of Google
+ Inc. nor the names of their contributors may be used to endorse or
+ promote products derived from this software without specific prior
+ written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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.
+
+End
diff --git a/data/pcre/_metadata/maintainer b/data/pcre/_metadata/maintainer
new file mode 120000
index 000000000..0fa66e077
--- /dev/null
+++ b/data/pcre/_metadata/maintainer
@@ -0,0 +1 @@
+../../../people/saurik \ No newline at end of file
diff --git a/data/pcre/_metadata/priority b/data/pcre/_metadata/priority
new file mode 100644
index 000000000..a6a7b9cd7
--- /dev/null
+++ b/data/pcre/_metadata/priority
@@ -0,0 +1 @@
+standard
diff --git a/data/pcre/_metadata/section b/data/pcre/_metadata/section
new file mode 100644
index 000000000..ee6a762e4
--- /dev/null
+++ b/data/pcre/_metadata/section
@@ -0,0 +1 @@
+utility
diff --git a/data/pcre/_metadata/version b/data/pcre/_metadata/version
new file mode 100644
index 000000000..37722ebbc
--- /dev/null
+++ b/data/pcre/_metadata/version
@@ -0,0 +1 @@
+7.4
diff --git a/data/pcre/make.sh b/data/pcre/make.sh
new file mode 100644
index 000000000..f08099126
--- /dev/null
+++ b/data/pcre/make.sh
@@ -0,0 +1,5 @@
+pkg:extract
+cd *
+pkg:configure --enable-static=no
+make
+pkg:install
diff --git a/data/pcre/pcre-7.4.tar.gz b/data/pcre/pcre-7.4.tar.gz
new file mode 100644
index 000000000..515fccb92
--- /dev/null
+++ b/data/pcre/pcre-7.4.tar.gz
Binary files differ
diff --git a/data/ruby/_metadata/description b/data/ruby/_metadata/description
new file mode 100644
index 000000000..005d9a0c9
--- /dev/null
+++ b/data/ruby/_metadata/description
@@ -0,0 +1,2 @@
+this package isn't described yet
+This package, which I'm certain is incredibly interesting, has yet to be described. This is probably because Jay has spent days getting all kinds of bookkeeping issues, like copyright notifications, all in their correct places, and descriptions just aren't the most important thing he could be working on. If this is a problem, please come back later.
diff --git a/data/ruby/_metadata/license b/data/ruby/_metadata/license
new file mode 100644
index 000000000..9043404a8
--- /dev/null
+++ b/data/ruby/_metadata/license
@@ -0,0 +1,56 @@
+Ruby is copyrighted free software by Yukihiro Matsumoto <matz@netlab.jp>.
+You can redistribute it and/or modify it under either the terms of the GPL
+version 2 (see the file GPL), or the conditions below:
+
+ 1. You may make and give away verbatim copies of the source form of the
+ software without restriction, provided that you duplicate all of the
+ original copyright notices and associated disclaimers.
+
+ 2. You may modify your copy of the software in any way, provided that
+ you do at least ONE of the following:
+
+ a) place your modifications in the Public Domain or otherwise
+ make them Freely Available, such as by posting said
+ modifications to Usenet or an equivalent medium, or by allowing
+ the author to include your modifications in the software.
+
+ b) use the modified software only within your corporation or
+ organization.
+
+ c) give non-standard binaries non-standard names, with
+ instructions on where to get the original software distribution.
+
+ d) make other distribution arrangements with the author.
+
+ 3. You may distribute the software in object code or binary form,
+ provided that you do at least ONE of the following:
+
+ a) distribute the binaries and library files of the software,
+ together with instructions (in the manual page or equivalent)
+ on where to get the original distribution.
+
+ b) accompany the distribution with the machine-readable source of
+ the software.
+
+ c) give non-standard binaries non-standard names, with
+ instructions on where to get the original software distribution.
+
+ d) make other distribution arrangements with the author.
+
+ 4. You may modify and include the part of the software into any other
+ software (possibly commercial). But some files in the distribution
+ are not written by the author, so that they are not under these terms.
+
+ For the list of those files and their copying conditions, see the
+ file LEGAL.
+
+ 5. The scripts and library files supplied as input to or produced as
+ output from the software do not automatically fall under the
+ copyright of the software, but belong to whomever generated them,
+ and may be sold commercially, and may be aggregated with this
+ software.
+
+ 6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE.
diff --git a/data/ruby/_metadata/maintainer b/data/ruby/_metadata/maintainer
new file mode 120000
index 000000000..0fa66e077
--- /dev/null
+++ b/data/ruby/_metadata/maintainer
@@ -0,0 +1 @@
+../../../people/saurik \ No newline at end of file
diff --git a/data/ruby/_metadata/priority b/data/ruby/_metadata/priority
new file mode 100644
index 000000000..134d9bc32
--- /dev/null
+++ b/data/ruby/_metadata/priority
@@ -0,0 +1 @@
+optional
diff --git a/data/ruby/_metadata/section b/data/ruby/_metadata/section
new file mode 100644
index 000000000..463a353df
--- /dev/null
+++ b/data/ruby/_metadata/section
@@ -0,0 +1 @@
+programming
diff --git a/data/ruby/_metadata/version b/data/ruby/_metadata/version
new file mode 100644
index 000000000..1b2c3b824
--- /dev/null
+++ b/data/ruby/_metadata/version
@@ -0,0 +1 @@
+1.9.0-0
diff --git a/data/ruby/make.sh b/data/ruby/make.sh
new file mode 100644
index 000000000..6618a55da
--- /dev/null
+++ b/data/ruby/make.sh
@@ -0,0 +1,8 @@
+pkg:extract
+cd *
+pkg:patch
+autoconf
+pkg:configure ac_cv_func_setpgrp_void=yes rb_cv_stack_grow_dir=-1 --disable-rpath --enable-shared
+make
+pkg:install
+pkg: rm -rf /usr/share
diff --git a/data/ruby/ruby-1.9.0-0.tar.gz b/data/ruby/ruby-1.9.0-0.tar.gz
new file mode 100644
index 000000000..8e2896f19
--- /dev/null
+++ b/data/ruby/ruby-1.9.0-0.tar.gz
Binary files differ
diff --git a/data/ruby/tools.diff b/data/ruby/tools.diff
new file mode 100644
index 000000000..5dc451bb1
--- /dev/null
+++ b/data/ruby/tools.diff
@@ -0,0 +1,30 @@
+diff -r -u ruby-1.9.0-0/configure.in ruby-1.9.0-0+iPhone/configure.in
+--- ruby-1.9.0-0/configure.in 2007-12-25 13:55:45.000000000 +0000
++++ ruby-1.9.0-0+iPhone/configure.in 2008-01-01 22:44:55.000000000 +0000
+@@ -1124,7 +1124,7 @@
+ rhapsody*) : ${LDSHARED='cc -dynamic -bundle -undefined suppress'}
+ : ${LDFLAGS=""}
+ rb_cv_dlopen=yes ;;
+- darwin*) : ${LDSHARED='cc -dynamic -bundle -undefined suppress -flat_namespace'}
++ darwin*) : ${LDSHARED='$(CC) -dynamic -bundle -undefined suppress -flat_namespace'}
+ : ${LDFLAGS=""}
+ : ${LIBPATHENV=DYLD_LIBRARY_PATH}
+ rb_cv_dlopen=yes ;;
+@@ -1270,7 +1270,7 @@
+ rhapsody*)
+ STRIP='strip -A -n';;
+ darwin*)
+- STRIP='strip -A -n';;
++ STRIP='arm-apple-darwin-strip -A -n';;
+ esac
+
+ EXTSTATIC=
+@@ -1462,7 +1462,7 @@
+ ;;
+ darwin*)
+ LIBRUBY_SO='lib$(RUBY_SO_NAME).$(MAJOR).$(MINOR).$(TEENY).dylib'
+- LIBRUBY_LDSHARED='cc -dynamiclib -undefined suppress -flat_namespace'
++ LIBRUBY_LDSHARED='$(CC) -dynamiclib -undefined suppress -flat_namespace'
+ LIBRUBY_DLDFLAGS='-install_name $(libdir)/lib$(RUBY_SO_NAME).dylib -current_version $(MAJOR).$(MINOR).$(TEENY) -compatibility_version $(MAJOR).$(MINOR)'
+ LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).$(MAJOR).$(MINOR).dylib lib$(RUBY_SO_NAME).dylib'
+ ;;
diff --git a/data/sqlite3/_metadata/description b/data/sqlite3/_metadata/description
new file mode 100644
index 000000000..005d9a0c9
--- /dev/null
+++ b/data/sqlite3/_metadata/description
@@ -0,0 +1,2 @@
+this package isn't described yet
+This package, which I'm certain is incredibly interesting, has yet to be described. This is probably because Jay has spent days getting all kinds of bookkeeping issues, like copyright notifications, all in their correct places, and descriptions just aren't the most important thing he could be working on. If this is a problem, please come back later.
diff --git a/data/sqlite3/_metadata/license b/data/sqlite3/_metadata/license
new file mode 100644
index 000000000..cc53a32d5
--- /dev/null
+++ b/data/sqlite3/_metadata/license
@@ -0,0 +1,6 @@
+** The author disclaims copyright to this source code. In place of
+** a legal notice, here is a blessing:
+**
+** May you do good and not evil.
+** May you find forgiveness for yourself and forgive others.
+** May you share freely, never taking more than you give.
diff --git a/data/sqlite3/_metadata/maintainer b/data/sqlite3/_metadata/maintainer
new file mode 120000
index 000000000..0fa66e077
--- /dev/null
+++ b/data/sqlite3/_metadata/maintainer
@@ -0,0 +1 @@
+../../../people/saurik \ No newline at end of file
diff --git a/data/sqlite3/_metadata/priority b/data/sqlite3/_metadata/priority
new file mode 100644
index 000000000..ea5b3d7ee
--- /dev/null
+++ b/data/sqlite3/_metadata/priority
@@ -0,0 +1 @@
+important
diff --git a/data/sqlite3/_metadata/section b/data/sqlite3/_metadata/section
new file mode 100644
index 000000000..aa0d57e89
--- /dev/null
+++ b/data/sqlite3/_metadata/section
@@ -0,0 +1 @@
+database
diff --git a/data/sqlite3/_metadata/version b/data/sqlite3/_metadata/version
new file mode 100644
index 000000000..65afb3b88
--- /dev/null
+++ b/data/sqlite3/_metadata/version
@@ -0,0 +1 @@
+3.5.4
diff --git a/data/sqlite3/make.sh b/data/sqlite3/make.sh
new file mode 100644
index 000000000..92dab11a4
--- /dev/null
+++ b/data/sqlite3/make.sh
@@ -0,0 +1,6 @@
+pkg:extract
+cd *
+pkg:configure --enable-static=no
+make
+pkg:install
+rm -f "${PKG_DEST}"/usr/lib/libsqlite3*.dylib
diff --git a/data/sqlite3/sqlite-3.5.4.tar.gz b/data/sqlite3/sqlite-3.5.4.tar.gz
new file mode 100644
index 000000000..e27f671e7
--- /dev/null
+++ b/data/sqlite3/sqlite-3.5.4.tar.gz
Binary files differ
diff --git a/data/stunnel/_metadata/description b/data/stunnel/_metadata/description
new file mode 100644
index 000000000..005d9a0c9
--- /dev/null
+++ b/data/stunnel/_metadata/description
@@ -0,0 +1,2 @@
+this package isn't described yet
+This package, which I'm certain is incredibly interesting, has yet to be described. This is probably because Jay has spent days getting all kinds of bookkeeping issues, like copyright notifications, all in their correct places, and descriptions just aren't the most important thing he could be working on. If this is a problem, please come back later.
diff --git a/data/stunnel/_metadata/license b/data/stunnel/_metadata/license
new file mode 100644
index 000000000..debb659f6
--- /dev/null
+++ b/data/stunnel/_metadata/license
@@ -0,0 +1,19 @@
+stunnel Universal SSL tunnel
+
+Distribution methods:
+
+ Source code is distributed under GPL license.
+ See COPYRIGHT.GPL file.
+
+ In addition, as a special exception, Michal Trojnara gives
+ permission to link the code of this program with the OpenSSL
+ library (or with modified versions of OpenSSL that use the same
+ license as OpenSSL), and distribute linked combinations including
+ the two. You must obey the GNU General Public License in all
+ respects for all of the code used other than OpenSSL. If you modify
+ this file, you may extend this exception to your version of the
+ file, but you are not obligated to do so. If you do not wish to
+ do so, delete this exception statement from your version.
+
+ Precompiled Windows binary is distributed under SSLeay license.
+ See COPYRIGHT.SSLeay file.
diff --git a/data/stunnel/_metadata/maintainer b/data/stunnel/_metadata/maintainer
new file mode 120000
index 000000000..0fa66e077
--- /dev/null
+++ b/data/stunnel/_metadata/maintainer
@@ -0,0 +1 @@
+../../../people/saurik \ No newline at end of file
diff --git a/data/stunnel/_metadata/priority b/data/stunnel/_metadata/priority
new file mode 100644
index 000000000..a6a7b9cd7
--- /dev/null
+++ b/data/stunnel/_metadata/priority
@@ -0,0 +1 @@
+standard
diff --git a/data/stunnel/_metadata/section b/data/stunnel/_metadata/section
new file mode 100644
index 000000000..992ae1298
--- /dev/null
+++ b/data/stunnel/_metadata/section
@@ -0,0 +1 @@
+network
diff --git a/data/stunnel/_metadata/version b/data/stunnel/_metadata/version
new file mode 100644
index 000000000..cf6715346
--- /dev/null
+++ b/data/stunnel/_metadata/version
@@ -0,0 +1 @@
+3.26
diff --git a/data/stunnel/dylib.diff b/data/stunnel/dylib.diff
new file mode 100644
index 000000000..afe8d48e9
--- /dev/null
+++ b/data/stunnel/dylib.diff
@@ -0,0 +1,53 @@
+diff -ru stunnel-3.26/Makefile.in stunnel-3.26+iPhone/Makefile.in
+--- stunnel-3.26/Makefile.in 2003-04-03 01:43:47.000000000 +0000
++++ stunnel-3.26+iPhone/Makefile.in 2008-01-02 01:33:45.000000000 +0000
+@@ -24,7 +24,7 @@
+ LIBS=@LIBS@
+ HEADERS=common.h prototypes.h client.h
+ OBJS=client.o stunnel.o ssl.o protocol.o sthreads.o pty.o log.o options.o
+-DESTFILES=$(sbindir)/stunnel $(libdir)/stunnel.so $(man8dir)/stunnel.8 $(PEM_DIR)/stunnel.pem
++DESTFILES=$(sbindir)/stunnel $(libdir)/libstunnel.dylib $(man8dir)/stunnel.8 $(PEM_DIR)/stunnel.pem
+
+ # Settings that are probably only useful for creating tarball dists
+ WINGCC=i586-mingw32msvc-gcc
+@@ -37,7 +37,7 @@
+
+ # standard external rules
+
+-all: stunnel stunnel.8 stunnel.html stunnel.so stunnel.pem
++all: stunnel stunnel.8 stunnel.html libstunnel.dylib stunnel.pem
+
+ install: all installdirs $(DESTFILES)
+
+@@ -48,7 +48,7 @@
+ $(MAKE) INSTALL='$(INSTALL) -s' install
+
+ clean:
+- rm -f stunnel stunnel.so $(OBJS) core config.log stunnel.log
++ rm -f stunnel libstunnel.dylib $(OBJS) core config.log stunnel.log
+
+ distclean: clean
+ rm -f config.cache config.status Makefile stunnel.pem stunnel.exe
+@@ -93,9 +93,8 @@
+ stunnel: $(OBJS)
+ $(CC) $(LDFLAGS) -o stunnel $(OBJS) $(LIBS)
+
+-stunnel.so: Makefile env.c
+- $(CC) -fPIC -shared $(LDFLAGS) -o stunnel.so env.c $(LIBS) || \
+- touch stunnel.so
++libstunnel.dylib: Makefile env.c
++ $(CC) -fPIC -shared $(LDFLAGS) -dynamiclib -o libstunnel.dylib env.c $(LIBS)
+
+ Makefile: configure Makefile.in
+ ./configure
+@@ -119,8 +118,8 @@
+ $(sbindir)/stunnel: stunnel
+ $(INSTALL) -m 711 stunnel $(sbindir)
+
+-$(libdir)/stunnel.so: stunnel.so
+- test ! -s stunnel.so || $(INSTALL) -m 755 stunnel.so $(libdir)
++$(libdir)/libstunnel.dylib: libstunnel.dylib
++ test ! -s libstunnel.dylib || $(INSTALL) -m 755 libstunnel.dylib $(libdir)
+
+ $(man8dir)/stunnel.8: stunnel.8
+ $(INSTALLMAN) -m 644 stunnel.8 $(man8dir)
diff --git a/data/stunnel/make.sh b/data/stunnel/make.sh
new file mode 100644
index 000000000..05f3c03cc
--- /dev/null
+++ b/data/stunnel/make.sh
@@ -0,0 +1,7 @@
+pkg:extract
+cd *
+pkg:patch
+pkg:configure ac_cv_file___dev_urandom_=yes ac_cv_file___dev_ptmx_=yes ac_cv_file___dev_ptc_=no --with-ssl="${PKG_ROOT}/usr"
+touch stunnel.pem
+make openssl="$(which openssl)"
+make install prefix="${PKG_DEST}/usr"
diff --git a/data/stunnel/stunnel-3.26.tar.gz b/data/stunnel/stunnel-3.26.tar.gz
new file mode 100644
index 000000000..c618afd8c
--- /dev/null
+++ b/data/stunnel/stunnel-3.26.tar.gz
Binary files differ
diff --git a/data/subversion/_metadata/section b/data/subversion/_metadata/section
index 842ba4a9c..7fd8a7f94 100644
--- a/data/subversion/_metadata/section
+++ b/data/subversion/_metadata/section
@@ -1 +1 @@
-toolchain
+versioning
diff --git a/data/uuid/_metadata/description b/data/uuid/_metadata/description
new file mode 100644
index 000000000..005d9a0c9
--- /dev/null
+++ b/data/uuid/_metadata/description
@@ -0,0 +1,2 @@
+this package isn't described yet
+This package, which I'm certain is incredibly interesting, has yet to be described. This is probably because Jay has spent days getting all kinds of bookkeeping issues, like copyright notifications, all in their correct places, and descriptions just aren't the most important thing he could be working on. If this is a problem, please come back later.
diff --git a/data/uuid/_metadata/license b/data/uuid/_metadata/license
new file mode 100644
index 000000000..c03b14124
--- /dev/null
+++ b/data/uuid/_metadata/license
@@ -0,0 +1,23 @@
+ Copyright (c) 2004-2007 Ralf S. Engelschall <rse@engelschall.com>
+ Copyright (c) 2004-2007 The OSSP Project <http://www.ossp.org/>
+
+ This file is part of OSSP uuid, a library for the generation
+ of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
+
+ Permission to use, copy, modify, and distribute this software for
+ any purpose with or without fee is hereby granted, provided that
+ the above copyright notice and this permission notice appear in all
+ copies.
+
+ THIS SOFTWARE IS PROVIDED ``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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+ 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.
diff --git a/data/uuid/_metadata/maintainer b/data/uuid/_metadata/maintainer
new file mode 120000
index 000000000..0fa66e077
--- /dev/null
+++ b/data/uuid/_metadata/maintainer
@@ -0,0 +1 @@
+../../../people/saurik \ No newline at end of file
diff --git a/data/uuid/_metadata/priority b/data/uuid/_metadata/priority
new file mode 100644
index 000000000..ea5b3d7ee
--- /dev/null
+++ b/data/uuid/_metadata/priority
@@ -0,0 +1 @@
+important
diff --git a/data/uuid/_metadata/section b/data/uuid/_metadata/section
new file mode 100644
index 000000000..f99e8394e
--- /dev/null
+++ b/data/uuid/_metadata/section
@@ -0,0 +1 @@
+platform
diff --git a/data/uuid/_metadata/version b/data/uuid/_metadata/version
new file mode 100644
index 000000000..dc1e644a1
--- /dev/null
+++ b/data/uuid/_metadata/version
@@ -0,0 +1 @@
+1.6.0
diff --git a/data/uuid/make.sh b/data/uuid/make.sh
new file mode 100644
index 000000000..2364bb283
--- /dev/null
+++ b/data/uuid/make.sh
@@ -0,0 +1,6 @@
+pkg:extract
+cd *
+pkg:patch
+pkg:configure ac_cv_va_copy=yes --enable-static=no
+make
+pkg:install
diff --git a/data/uuid/strip.diff b/data/uuid/strip.diff
new file mode 100644
index 000000000..d04fbe99d
--- /dev/null
+++ b/data/uuid/strip.diff
@@ -0,0 +1,12 @@
+diff -ru uuid-1.6.0/Makefile.in uuid-1.6.0+iPhone/Makefile.in
+--- uuid-1.6.0/Makefile.in 2007-05-19 19:58:11.000000000 +0000
++++ uuid-1.6.0+iPhone/Makefile.in 2008-01-02 02:41:23.000000000 +0000
+@@ -253,7 +253,7 @@
+ -@if [ ".$(WITH_CXX)" = .yes ]; then \
+ $(LIBTOOL) --mode=install $(SHTOOL) install -c -m 644 $(CXX_NAME) $(DESTDIR)$(libdir)/; \
+ fi
+- @$(LIBTOOL) --mode=install $(SHTOOL) install -c -s -m 755 uuid $(DESTDIR)$(bindir)/
++ @$(LIBTOOL) --mode=install $(SHTOOL) install -c -m 755 uuid $(DESTDIR)$(bindir)/
+ $(SHTOOL) install -c -m 644 $(S)/uuid.1 $(DESTDIR)$(mandir)/man1/
+ -@if [ ".$(WITH_PERL)" = .yes ]; then \
+ (cd $(S)/perl && $(MAKE) $(MFLAGS) install DESTDIR=$(DESTDIR)); \
diff --git a/data/uuid/uuid-1.6.0.tar.gz b/data/uuid/uuid-1.6.0.tar.gz
new file mode 100644
index 000000000..c913952c9
--- /dev/null
+++ b/data/uuid/uuid-1.6.0.tar.gz
Binary files differ
diff --git a/data/xml2/_metadata/description b/data/xml2/_metadata/description
new file mode 100644
index 000000000..005d9a0c9
--- /dev/null
+++ b/data/xml2/_metadata/description
@@ -0,0 +1,2 @@
+this package isn't described yet
+This package, which I'm certain is incredibly interesting, has yet to be described. This is probably because Jay has spent days getting all kinds of bookkeeping issues, like copyright notifications, all in their correct places, and descriptions just aren't the most important thing he could be working on. If this is a problem, please come back later.
diff --git a/data/xml2/_metadata/libxml2.dep b/data/xml2/_metadata/libxml2.dep
new file mode 120000
index 000000000..076284360
--- /dev/null
+++ b/data/xml2/_metadata/libxml2.dep
@@ -0,0 +1 @@
+../../libxml2 \ No newline at end of file
diff --git a/data/xml2/_metadata/license b/data/xml2/_metadata/license
new file mode 120000
index 000000000..9c13a9a0f
--- /dev/null
+++ b/data/xml2/_metadata/license
@@ -0,0 +1 @@
+../../../licenses/gpl-2 \ No newline at end of file
diff --git a/data/xml2/_metadata/maintainer b/data/xml2/_metadata/maintainer
new file mode 120000
index 000000000..0fa66e077
--- /dev/null
+++ b/data/xml2/_metadata/maintainer
@@ -0,0 +1 @@
+../../../people/saurik \ No newline at end of file
diff --git a/data/xml2/_metadata/priority b/data/xml2/_metadata/priority
new file mode 100644
index 000000000..134d9bc32
--- /dev/null
+++ b/data/xml2/_metadata/priority
@@ -0,0 +1 @@
+optional
diff --git a/data/xml2/_metadata/section b/data/xml2/_metadata/section
new file mode 100644
index 000000000..a9fe5db96
--- /dev/null
+++ b/data/xml2/_metadata/section
@@ -0,0 +1 @@
+xml
diff --git a/data/xml2/_metadata/version b/data/xml2/_metadata/version
new file mode 100644
index 000000000..3b04cfb60
--- /dev/null
+++ b/data/xml2/_metadata/version
@@ -0,0 +1 @@
+0.2
diff --git a/data/xml2/characters.diff b/data/xml2/characters.diff
new file mode 100644
index 000000000..9a1e706ca
--- /dev/null
+++ b/data/xml2/characters.diff
@@ -0,0 +1,30 @@
+diff -ru xml2-0.2/2xml.c xml2-0.2+iPhone/2xml.c
+--- xml2-0.2/2xml.c 2000-03-20 01:01:16.000000000 +0000
++++ xml2-0.2+iPhone/2xml.c 2008-01-01 23:24:52.000000000 +0000
+@@ -116,7 +116,7 @@
+ }
+ }
+
+-static void characters(const char *stuff,const char *context)
++static void characters_(const char *stuff,const char *context)
+ {
+ switch (context[0]) {
+ case '!':
+@@ -178,7 +178,7 @@
+ }
+
+ if (NULL == name && NULL == *ptr && NULL != content)
+- characters("\n",context);
++ characters_("\n",context);
+
+ release(ptr);
+
+@@ -199,7 +199,7 @@
+ }
+
+ *ptr = NULL;
+- if (NULL != content) characters(content,context);
++ if (NULL != content) characters_(content,context);
+ }
+
+ int main(int argc,char *argv[])
diff --git a/data/xml2/make.sh b/data/xml2/make.sh
new file mode 100644
index 000000000..9a580d2bd
--- /dev/null
+++ b/data/xml2/make.sh
@@ -0,0 +1,5 @@
+pkg:extract
+cd *
+pkg:patch
+make CC=arm-apple-darwin-gcc CFLAGS='-O2 -I/home/saurik/iphone/sysroot/usr/include/libxml2 -I/home/saurik/iphone/sysroot/usr/include/libxml2/libxml' LDLIBS=-lxml2
+pkg:usrbin 2html 2xml csv2 html2 xml2
diff --git a/data/xml2/xml2-0.2.tar.gz b/data/xml2/xml2-0.2.tar.gz
new file mode 100644
index 000000000..28aa04b63
--- /dev/null
+++ b/data/xml2/xml2-0.2.tar.gz
Binary files differ
diff --git a/make.sh b/make.sh
index 996041122..4708b6f5b 100755
--- a/make.sh
+++ b/make.sh
@@ -2,6 +2,11 @@
set -e
shopt -s extglob nullglob
+if [[ $# == 0 ]]; then
+ echo "usage: $0 <package>"
+ exit
+fi
+
export PKG_MAKE=$0
export PKG_NAME=${1%_}
@@ -131,9 +136,10 @@ function rmdir_() {
fi
}
-rm -rf "${PKG_DEST}/usr/share/info"
rm -rf "${PKG_DEST}/usr/share/locale"
rm -rf "${PKG_DEST}/usr/share/man"
+rm -rf "${PKG_DEST}/usr/share/info"
+rm -rf "${PKG_DEST}/usr/share/gtk-doc"
rm -rf "${PKG_DEST}/usr/share/doc"
rm -rf "${PKG_DEST}/usr/man"
rm -rf "${PKG_DEST}/usr/local/share/man"
@@ -142,6 +148,7 @@ rm -rf "${PKG_DEST}/usr/local/OpenSourceLicenses"
rm -f "${PKG_DEST}/usr/lib/charset.alias"
rm -rf "${PKG_DEST}/usr/info"
rm -rf "${PKG_DEST}/usr/docs"
+rm -rf "${PKG_DEST}/usr/doc"
rmdir_ "${PKG_DEST}/usr/share"
rmdir_ "${PKG_DEST}/usr/local/share"