summaryrefslogtreecommitdiff
path: root/data/_dpkg
diff options
context:
space:
mode:
authorSam Bingner <sam@bingner.com>2018-10-12 12:58:23 -1000
committerSam Bingner <sam@bingner.com>2018-10-12 12:58:23 -1000
commitb61e8b5a784a8bc7c9369fb00a5467cb33b98d59 (patch)
treef6f7932948ffacb1d20042d0b78c75c0269272b4 /data/_dpkg
parentd1f39061fe45b841063274ec9945732775896e02 (diff)
Update dpkg
Diffstat (limited to 'data/_dpkg')
-rw-r--r--data/_dpkg/_metadata/description1
l---------data/_dpkg/_metadata/gzip.dep1
-rw-r--r--data/_dpkg/_metadata/homepage1
-rw-r--r--data/_dpkg/_metadata/in.1443.000
l---------data/_dpkg/_metadata/license1
l---------data/_dpkg/_metadata/lzma.dep1
l---------data/_dpkg/_metadata/maintainer1
-rw-r--r--data/_dpkg/_metadata/name1
l---------data/_dpkg/_metadata/ncurses.dep1
-rw-r--r--data/_dpkg/_metadata/predepends_1
-rw-r--r--data/_dpkg/_metadata/priority1
-rw-r--r--data/_dpkg/_metadata/role1
-rw-r--r--data/_dpkg/_metadata/section1
-rw-r--r--data/_dpkg/_metadata/tags1
-rw-r--r--data/_dpkg/_metadata/version1
l---------data/_dpkg/_metadata/xz.dep1
-rw-r--r--data/_dpkg/_metadata/zlib1
-rw-r--r--data/_dpkg/blankline.diff43
-rw-r--r--data/_dpkg/checkpath.diff21
-rw-r--r--data/_dpkg/dpkg_1.18.25.tar.xzbin0 -> 4541640 bytes
-rw-r--r--data/_dpkg/extrainst.diff31
-rw-r--r--data/_dpkg/libdirperl.diff20
-rw-r--r--data/_dpkg/lzma.diff64
-rw-r--r--data/_dpkg/make.sh6
-rw-r--r--data/_dpkg/nullptr.diff79
-rw-r--r--data/_dpkg/runcmd.diff16
-rw-r--r--data/_dpkg/telesphoreo.diff12
-rw-r--r--data/_dpkg/tolerance.diff37
28 files changed, 345 insertions, 0 deletions
diff --git a/data/_dpkg/_metadata/description b/data/_dpkg/_metadata/description
new file mode 100644
index 000000000..e90cf26d7
--- /dev/null
+++ b/data/_dpkg/_metadata/description
@@ -0,0 +1 @@
+package maintainance tools from Debian
diff --git a/data/_dpkg/_metadata/gzip.dep b/data/_dpkg/_metadata/gzip.dep
new file mode 120000
index 000000000..c6c801e81
--- /dev/null
+++ b/data/_dpkg/_metadata/gzip.dep
@@ -0,0 +1 @@
+../../gzip \ No newline at end of file
diff --git a/data/_dpkg/_metadata/homepage b/data/_dpkg/_metadata/homepage
new file mode 100644
index 000000000..c5221e589
--- /dev/null
+++ b/data/_dpkg/_metadata/homepage
@@ -0,0 +1 @@
+http://wiki.debian.org/Teams/Dpkg
diff --git a/data/_dpkg/_metadata/in.1443.00 b/data/_dpkg/_metadata/in.1443.00
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/data/_dpkg/_metadata/in.1443.00
diff --git a/data/_dpkg/_metadata/license b/data/_dpkg/_metadata/license
new file mode 120000
index 000000000..9c13a9a0f
--- /dev/null
+++ b/data/_dpkg/_metadata/license
@@ -0,0 +1 @@
+../../../licenses/gpl-2 \ No newline at end of file
diff --git a/data/_dpkg/_metadata/lzma.dep b/data/_dpkg/_metadata/lzma.dep
new file mode 120000
index 000000000..f84114cb9
--- /dev/null
+++ b/data/_dpkg/_metadata/lzma.dep
@@ -0,0 +1 @@
+../../lzma \ No newline at end of file
diff --git a/data/_dpkg/_metadata/maintainer b/data/_dpkg/_metadata/maintainer
new file mode 120000
index 000000000..573d7ebef
--- /dev/null
+++ b/data/_dpkg/_metadata/maintainer
@@ -0,0 +1 @@
+../../../people/sbingner \ No newline at end of file
diff --git a/data/_dpkg/_metadata/name b/data/_dpkg/_metadata/name
new file mode 100644
index 000000000..ae3d1f762
--- /dev/null
+++ b/data/_dpkg/_metadata/name
@@ -0,0 +1 @@
+Debian Packager
diff --git a/data/_dpkg/_metadata/ncurses.dep b/data/_dpkg/_metadata/ncurses.dep
new file mode 120000
index 000000000..a395fad08
--- /dev/null
+++ b/data/_dpkg/_metadata/ncurses.dep
@@ -0,0 +1 @@
+../../ncurses \ No newline at end of file
diff --git a/data/_dpkg/_metadata/predepends_ b/data/_dpkg/_metadata/predepends_
new file mode 100644
index 000000000..e0fb874aa
--- /dev/null
+++ b/data/_dpkg/_metadata/predepends_
@@ -0,0 +1 @@
+tar (>= 1.23)
diff --git a/data/_dpkg/_metadata/priority b/data/_dpkg/_metadata/priority
new file mode 100644
index 000000000..fad9e164a
--- /dev/null
+++ b/data/_dpkg/_metadata/priority
@@ -0,0 +1 @@
+required
diff --git a/data/_dpkg/_metadata/role b/data/_dpkg/_metadata/role
new file mode 100644
index 000000000..52b4d7301
--- /dev/null
+++ b/data/_dpkg/_metadata/role
@@ -0,0 +1 @@
+hacker
diff --git a/data/_dpkg/_metadata/section b/data/_dpkg/_metadata/section
new file mode 100644
index 000000000..702b7b8d3
--- /dev/null
+++ b/data/_dpkg/_metadata/section
@@ -0,0 +1 @@
+Packaging
diff --git a/data/_dpkg/_metadata/tags b/data/_dpkg/_metadata/tags
new file mode 100644
index 000000000..ad5d50831
--- /dev/null
+++ b/data/_dpkg/_metadata/tags
@@ -0,0 +1 @@
+purpose::console
diff --git a/data/_dpkg/_metadata/version b/data/_dpkg/_metadata/version
new file mode 100644
index 000000000..3ed574417
--- /dev/null
+++ b/data/_dpkg/_metadata/version
@@ -0,0 +1 @@
+1.18.25
diff --git a/data/_dpkg/_metadata/xz.dep b/data/_dpkg/_metadata/xz.dep
new file mode 120000
index 000000000..d5eb7ae54
--- /dev/null
+++ b/data/_dpkg/_metadata/xz.dep
@@ -0,0 +1 @@
+../../xz \ No newline at end of file
diff --git a/data/_dpkg/_metadata/zlib b/data/_dpkg/_metadata/zlib
new file mode 100644
index 000000000..d234d64b1
--- /dev/null
+++ b/data/_dpkg/_metadata/zlib
@@ -0,0 +1 @@
+gzip
diff --git a/data/_dpkg/blankline.diff b/data/_dpkg/blankline.diff
new file mode 100644
index 000000000..91e7de913
--- /dev/null
+++ b/data/_dpkg/blankline.diff
@@ -0,0 +1,43 @@
+diff -ur dpkg-1.18.25/lib/dpkg/parse.c dpkg-1.18.25+iPhone/lib/dpkg/parse.c
+--- dpkg-1.18.25/lib/dpkg/parse.c 2018-06-25 16:48:17.000000000 -1000
++++ dpkg-1.18.25+iPhone/lib/dpkg/parse.c 2018-09-14 10:11:08.000000000 -1000
+@@ -622,8 +622,6 @@
+
+ /* Loop per field. */
+ for (;;) {
+- bool blank_line;
+-
+ /* Scan field name. */
+ fs->fieldstart = ps->dataptr - 1;
+ while (!parse_at_eof(ps) && !c_isspace(c) && c != ':' && c != MSDOS_EOF_CHAR)
+@@ -667,20 +665,10 @@
+ parse_error(ps, _("MSDOS end of file (^Z) in value of field '%.*s' (missing newline?)"),
+ fs->fieldlen, fs->fieldstart);
+
+- blank_line = false;
+-
+ /* Scan field value. */
+ fs->valuestart = ps->dataptr - 1;
+ for (;;) {
+ if (c == '\n' || c == MSDOS_EOF_CHAR) {
+- if (blank_line) {
+- if (ps->flags & pdb_lax_stanza_parser)
+- parse_warn(ps, _("blank line in value of field '%.*s'"),
+- fs->fieldlen, fs->fieldstart);
+- else
+- parse_error(ps, _("blank line in value of field '%.*s'"),
+- fs->fieldlen, fs->fieldstart);
+- }
+ ps->lno++;
+
+ if (parse_at_eof(ps))
+@@ -692,9 +680,6 @@
+ break;
+
+ parse_ungetc(c, ps);
+- blank_line = true;
+- } else if (blank_line && !c_isspace(c)) {
+- blank_line = false;
+ }
+
+ if (parse_at_eof(ps))
diff --git a/data/_dpkg/checkpath.diff b/data/_dpkg/checkpath.diff
new file mode 100644
index 000000000..f29bf4480
--- /dev/null
+++ b/data/_dpkg/checkpath.diff
@@ -0,0 +1,21 @@
+diff -ru dpkg-1.18.10/src/help.c dpkg-1.18.10+iPhone/src/help.c
+--- dpkg-1.18.10/src/help.c 2016-07-05 01:55:14.000000000 +0000
++++ dpkg-1.18.10+iPhone/src/help.c 2016-08-22 21:34:30.000000000 +0000
+@@ -121,16 +121,7 @@
+ TAR,
+ DIFF,
+ BACKEND,
+- /* Mac OS X uses dyld (Mach-O) instead of ld.so (ELF), and does not have
+- * an ldconfig. */
+-#if defined(__APPLE__) && defined(__MACH__)
+- "update_dyld_shared_cache",
+-#else
+- "ldconfig",
+-#endif
+-#if BUILD_START_STOP_DAEMON
+- "start-stop-daemon",
+-#endif
++ "launchctl",
+ NULL
+ };
+
diff --git a/data/_dpkg/dpkg_1.18.25.tar.xz b/data/_dpkg/dpkg_1.18.25.tar.xz
new file mode 100644
index 000000000..b8a34c817
--- /dev/null
+++ b/data/_dpkg/dpkg_1.18.25.tar.xz
Binary files differ
diff --git a/data/_dpkg/extrainst.diff b/data/_dpkg/extrainst.diff
new file mode 100644
index 000000000..fe3052600
--- /dev/null
+++ b/data/_dpkg/extrainst.diff
@@ -0,0 +1,31 @@
+diff -ru dpkg-1.18.10/lib/dpkg/dpkg.h dpkg-1.18.10+iPhone/lib/dpkg/dpkg.h
+--- dpkg-1.18.10/lib/dpkg/dpkg.h 2016-07-05 01:55:13.000000000 +0000
++++ dpkg-1.18.10+iPhone/lib/dpkg/dpkg.h 2016-08-15 23:45:06.000000000 +0000
+@@ -68,6 +68,7 @@
+ #define CONTROLFILE "control"
+ #define CONFFILESFILE "conffiles"
+ #define PREINSTFILE "preinst"
++#define EXTRAINSTFILE "extrainst_"
+ #define POSTINSTFILE "postinst"
+ #define PRERMFILE "prerm"
+ #define POSTRMFILE "postrm"
+diff -ru dpkg-1.18.10/src/unpack.c dpkg-1.18.10+iPhone/src/unpack.c
+--- dpkg-1.18.10/src/unpack.c 2016-07-05 02:00:41.000000000 +0000
++++ dpkg-1.18.10+iPhone/src/unpack.c 2016-08-15 23:43:41.000000000 +0000
+@@ -1434,6 +1434,16 @@
+
+ tar_deferred_extract(newfiles_queue.head, pkg);
+
++ if (oldversionstatus == PKG_STAT_NOTINSTALLED || oldversionstatus == PKG_STAT_CONFIGFILES) {
++ maintscript_new(pkg, EXTRAINSTFILE, "extra-installation", cidir, cidirrest,
++ "install", NULL);
++ } else {
++ maintscript_new(pkg, EXTRAINSTFILE, "extra-installation", cidir, cidirrest,
++ "upgrade",
++ versiondescribe(&pkg->installed.version, vdew_nonambig),
++ NULL);
++ }
++
+ if (oldversionstatus == PKG_STAT_HALFINSTALLED ||
+ oldversionstatus == PKG_STAT_UNPACKED) {
+ /* Packages that were in ‘installed’ and ‘postinstfailed’ have been
diff --git a/data/_dpkg/libdirperl.diff b/data/_dpkg/libdirperl.diff
new file mode 100644
index 000000000..dbafeb842
--- /dev/null
+++ b/data/_dpkg/libdirperl.diff
@@ -0,0 +1,20 @@
+diff -ur dpkg-1.18.25/configure dpkg-1.18.25+iPhone/configure
+--- dpkg-1.18.25/configure 2018-06-26 00:28:08.000000000 -1000
++++ dpkg-1.18.25+iPhone/configure 2018-09-14 10:14:00.000000000 -1000
+@@ -909,6 +909,7 @@
+ CPP
+ LT_SYS_LIBRARY_PATH
+ PERL
++LIBDIR_PERL
+ PERL_LIBDIR
+ TAR
+ CXX
+@@ -15450,7 +15451,7 @@
+ # Let the user override the variable.
+ if test -z "$PERL_LIBDIR"; then :
+
+- PERL_LIBDIR=$($PERL -MConfig -e \
++ PERL_LIBDIR=$($LIBDIR_PERL -MConfig -e \
+ 'my $r = $Config{vendorlibexp};
+ $r =~ s/$Config{vendorprefixexp}/\$(prefix)/;
+ print $r')
diff --git a/data/_dpkg/lzma.diff b/data/_dpkg/lzma.diff
new file mode 100644
index 000000000..9ce2d4aef
--- /dev/null
+++ b/data/_dpkg/lzma.diff
@@ -0,0 +1,64 @@
+diff -ur dpkg-1.18.25/dpkg-deb/main.c dpkg-1.18.25+iPhone/dpkg-deb/main.c
+--- dpkg-1.18.25/dpkg-deb/main.c 2018-06-25 16:48:17.000000000 -1000
++++ dpkg-1.18.25+iPhone/dpkg-deb/main.c 2018-09-14 10:15:39.000000000 -1000
+@@ -192,8 +192,6 @@
+ compress_params.type = compressor_find_by_name(value);
+ if (compress_params.type == COMPRESSOR_TYPE_UNKNOWN)
+ badusage(_("unknown compression type '%s'!"), value);
+- if (compress_params.type == COMPRESSOR_TYPE_LZMA)
+- badusage(_("obsolete compression type '%s'; use xz instead"), value);
+ if (compress_params.type == COMPRESSOR_TYPE_BZIP2)
+ badusage(_("obsolete compression type '%s'; use xz or gzip instead"), value);
+ }
+diff -ur dpkg-1.18.25/lib/dpkg/compress.c dpkg-1.18.25+iPhone/lib/dpkg/compress.c
+--- dpkg-1.18.25/lib/dpkg/compress.c 2018-06-17 05:49:22.000000000 -1000
++++ dpkg-1.18.25+iPhone/lib/dpkg/compress.c 2018-09-14 10:14:50.000000000 -1000
+@@ -664,6 +664,16 @@
+ * Lzma compressor.
+ */
+
++#define LZMA "lzma"
++
++static void
++fixup_lzma_params(struct compress_params *params)
++{
++ /* Normalize compression level. */
++ if (params->level == 0)
++ params->level = 1;
++}
++
+ #ifdef WITH_LIBLZMA
+ static void
+ filter_unlzma_init(struct io_lzma *io, lzma_stream *s)
+@@ -725,10 +735,12 @@
+ filter_lzma(&io, fd_in, fd_out);
+ }
+ #else
++static const char *env_lzma[] = { "LZMA", NULL };
++
+ static void
+ decompress_lzma(int fd_in, int fd_out, const char *desc)
+ {
+- fd_fd_filter(fd_in, fd_out, desc, env_xz, XZ, "-dc", "--format=lzma", NULL);
++ fd_fd_filter(fd_in, fd_out, desc, env_lzma, LZMA, "-dc", NULL);
+ }
+
+ static void
+@@ -737,7 +749,7 @@
+ char combuf[6];
+
+ snprintf(combuf, sizeof(combuf), "-c%d", params->level);
+- fd_fd_filter(fd_in, fd_out, desc, env_xz, XZ, combuf, "--format=lzma", NULL);
++ fd_fd_filter(fd_in, fd_out, desc, env_lzma, LZMA, combuf, NULL);
+ }
+ #endif
+
+@@ -745,7 +757,7 @@
+ .name = "lzma",
+ .extension = ".lzma",
+ .default_level = 6,
+- .fixup_params = fixup_none_params,
++ .fixup_params = fixup_lzma_params,
+ .compress = compress_lzma,
+ .decompress = decompress_lzma,
+ };
diff --git a/data/_dpkg/make.sh b/data/_dpkg/make.sh
new file mode 100644
index 000000000..69af2ba92
--- /dev/null
+++ b/data/_dpkg/make.sh
@@ -0,0 +1,6 @@
+pkg:setup
+#autoconf
+#cp -a libcompat/obstack.[ch] lib
+pkg:configure --with-admindir=/var/lib/dpkg --disable-start-stop-daemon --disable-nls --sysconfdir=/etc --disable-linker-optimisations dpkg_cv_va_copy=yes --enable-static=yes --enable-shared=no --with-dpkg-deb-compressor=gzip TAR=tar LIBDIR_PERL="$(echo "$(PKG_WORK_ perl)"/perl-5*/miniperl_top)" PERL=/usr/bin/perl
+pkg:make
+pkg:install
diff --git a/data/_dpkg/nullptr.diff b/data/_dpkg/nullptr.diff
new file mode 100644
index 000000000..8679bb25d
--- /dev/null
+++ b/data/_dpkg/nullptr.diff
@@ -0,0 +1,79 @@
+diff -ur dpkg-1.18.10/dselect/method.cc dpkg-1.18.10+iPhone/dselect/method.cc
+--- dpkg-1.18.10/dselect/method.cc 2016-07-04 16:00:41.000000000 -1000
++++ dpkg-1.18.10+iPhone/dselect/method.cc 2018-07-25 16:26:13.000000000 -1000
+@@ -50,10 +50,10 @@
+ static const char *const methoddirectories[]= {
+ LIBDIR "/" METHODSDIR,
+ LOCALLIBDIR "/" METHODSDIR,
+- nullptr
++ NULL
+ };
+
+-static char *methodlockfile = nullptr;
++static char *methodlockfile = NULL;
+ static int methlockfd= -1;
+
+ static void
+@@ -84,7 +84,7 @@
+ int nread;
+
+ if (!options) {
+- newoptions = nullptr;
++ newoptions = NULL;
+ nread= 0;
+ for (ccpp= methoddirectories; *ccpp; ccpp++)
+ readmethods(*ccpp, &newoptions, &nread);
+@@ -101,7 +101,7 @@
+ static enum urqresult lockmethod(void) {
+ struct flock fl;
+
+- if (methodlockfile == nullptr)
++ if (methodlockfile == NULL)
+ methodlockfile = dpkg_db_get_path(METHLOCKFILE);
+
+ if (methlockfd == -1) {
+@@ -124,7 +124,7 @@
+ sthfailed(_("cannot lock access method area"));
+ return urqr_fail;
+ }
+- push_cleanup(cu_unlockmethod, ~0, nullptr, 0, 0);
++ push_cleanup(cu_unlockmethod, ~0, NULL, 0, 0);
+ return urqr_normal;
+ }
+
+@@ -140,7 +140,7 @@
+
+ pid = subproc_fork();
+ if (pid == 0) {
+- subproc_signals_cleanup(0, nullptr);
++ subproc_signals_cleanup(0, NULL);
+ command_exec(cmd);
+ }
+
+@@ -178,7 +178,7 @@
+
+ command_init(&cmd, coption->meth->path, name);
+ command_add_args(&cmd, exepath, dpkg_db_get_dir(),
+- coption->meth->name, coption->name, nullptr);
++ coption->meth->name, coption->name, NULL);
+ ur = falliblesubprocess(&cmd);
+ command_destroy(&cmd);
+ } else {
+@@ -204,7 +204,7 @@
+
+ command_init(&cmd, DPKG, name);
+ command_add_args(&cmd, DPKG, "--admindir", dpkg_db_get_dir(), "--pending",
+- dpkgmode, nullptr);
++ dpkgmode, NULL);
+
+ cursesoff();
+ printf("running dpkg --pending %s ...\n",dpkgmode);
+@@ -243,7 +243,7 @@
+
+ command_init(&cmd, coption->meth->path, _("query/setup script"));
+ command_add_args(&cmd, METHODSETUPSCRIPT, dpkg_db_get_dir(),
+- coption->meth->name, coption->name, nullptr);
++ coption->meth->name, coption->name, NULL);
+ ur = falliblesubprocess(&cmd);
+ command_destroy(&cmd);
+ if (ur == urqr_normal) writecurrentopt();
diff --git a/data/_dpkg/runcmd.diff b/data/_dpkg/runcmd.diff
new file mode 100644
index 000000000..dd2213d51
--- /dev/null
+++ b/data/_dpkg/runcmd.diff
@@ -0,0 +1,16 @@
+diff -ur dpkg-1.18.25/lib/dpkg/command.c dpkg-1.18.25+iPhone/lib/dpkg/command.c
+--- dpkg-1.18.25/lib/dpkg/command.c 2018-03-21 18:29:34.000000000 -1000
++++ dpkg-1.18.25+iPhone/lib/dpkg/command.c 2018-10-12 12:36:05.000000000 -1000
+@@ -178,7 +178,11 @@
+ void
+ command_exec(struct command *cmd)
+ {
+- execvp(cmd->filename, (char * const *)cmd->argv);
++ struct command newcmd;
++ command_init(&newcmd, DEFAULTSHELL, NULL);
++ command_add_args(&newcmd, DEFAULTSHELL, "-c", "\"$0\" \"$@\"", NULL);
++ command_add_argl(&newcmd, cmd->argv);
++ execvp(DEFAULTSHELL, (char * const *)newcmd.argv);
+ ohshite(_("unable to execute %s (%s)"), cmd->name, cmd->filename);
+ }
+
diff --git a/data/_dpkg/telesphoreo.diff b/data/_dpkg/telesphoreo.diff
new file mode 100644
index 000000000..d13b9cb70
--- /dev/null
+++ b/data/_dpkg/telesphoreo.diff
@@ -0,0 +1,12 @@
+diff -ur dpkg-1.18.25/data/tupletable dpkg-1.18.25+iPhone/data/tupletable
+--- dpkg-1.18.25/data/tupletable 2018-06-17 05:49:22.000000000 -1000
++++ dpkg-1.18.25+iPhone/data/tupletable 2018-09-14 10:22:50.000000000 -1000
+@@ -33,6 +33,8 @@
+ base-bsd-openbsd-<cpu> openbsd-<cpu>
+ base-bsd-netbsd-<cpu> netbsd-<cpu>
+ base-bsd-darwin-<cpu> darwin-<cpu>
++base-bsd-darwin-arm iphoneos-arm
++base-bsd-darwin-arm64 iphoneos-arm
+ base-sysv-aix-<cpu> aix-<cpu>
+ base-sysv-solaris-<cpu> solaris-<cpu>
+ eabi-uclibc-uclinux-arm uclinux-armel
diff --git a/data/_dpkg/tolerance.diff b/data/_dpkg/tolerance.diff
new file mode 100644
index 000000000..f1c1400f6
--- /dev/null
+++ b/data/_dpkg/tolerance.diff
@@ -0,0 +1,37 @@
+diff -ur dpkg-1.18.25/lib/dpkg/parse.c dpkg-1.18.25+iPhone/lib/dpkg/parse.c
+--- dpkg-1.18.25/lib/dpkg/parse.c 2018-06-25 16:48:17.000000000 -1000
++++ dpkg-1.18.25+iPhone/lib/dpkg/parse.c 2018-09-14 10:07:52.000000000 -1000
+@@ -187,8 +187,6 @@
+ if ((ps->flags & pdb_recordavailable) ||
+ (pkg->status != PKG_STAT_NOTINSTALLED &&
+ pkg->status != PKG_STAT_HALFINSTALLED)) {
+- parse_ensure_have_field(ps, &pkgbin->description, "description");
+- parse_ensure_have_field(ps, &pkgbin->maintainer, "maintainer");
+ parse_must_have_field(ps, pkgbin->version.version, "version");
+ }
+
+diff -ur dpkg-1.18.25/lib/dpkg/parsehelp.c dpkg-1.18.25+iPhone/lib/dpkg/parsehelp.c
+--- dpkg-1.18.25/lib/dpkg/parsehelp.c 2018-06-17 05:49:22.000000000 -1000
++++ dpkg-1.18.25+iPhone/lib/dpkg/parsehelp.c 2018-09-14 10:09:14.000000000 -1000
+@@ -239,21 +239,6 @@
+ }
+ rversion->revision= hyphen ? hyphen : "";
+
+- /* XXX: Would be faster to use something like cisversion and cisrevision. */
+- ptr = rversion->version;
+- if (!*ptr)
+- return dpkg_put_error(err, _("version number is empty"));
+- if (*ptr && !c_isdigit(*ptr++))
+- return dpkg_put_warn(err, _("version number does not start with digit"));
+- for (; *ptr; ptr++) {
+- if (!c_isdigit(*ptr) && !c_isalpha(*ptr) && strchr(".-+~:", *ptr) == NULL)
+- return dpkg_put_warn(err, _("invalid character in version number"));
+- }
+- for (ptr = rversion->revision; *ptr; ptr++) {
+- if (!c_isdigit(*ptr) && !c_isalpha(*ptr) && strchr(".+~", *ptr) == NULL)
+- return dpkg_put_warn(err, _("invalid character in revision number"));
+- }
+-
+ return 0;
+ }
+