aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta-filesystems/README12
-rw-r--r--meta-filesystems/recipes-support/fuse/files/CVE-2018-10906-1.patch52
-rw-r--r--meta-filesystems/recipes-support/fuse/files/CVE-2018-10906-2.patch48
-rw-r--r--meta-filesystems/recipes-support/fuse/fuse_2.9.7.bb2
-rw-r--r--meta-gnome/README11
-rw-r--r--meta-initramfs/README10
-rw-r--r--meta-multimedia/README15
-rw-r--r--meta-networking/MAINTAINERS7
-rw-r--r--meta-networking/recipes-connectivity/lftp/files/CVE-2018-10916.patch82
-rw-r--r--meta-networking/recipes-connectivity/lftp/lftp_4.7.7.bb1
-rw-r--r--meta-networking/recipes-connectivity/networkmanager/networkmanager_1.4.4.bb3
-rw-r--r--meta-networking/recipes-connectivity/samba/samba_4.6.7.bb3
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-fix-for-disable-des.patch32
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb4
-rw-r--r--meta-networking/recipes-support/arptables/arptables_git.bb3
-rw-r--r--meta-networking/recipes-support/dnsmasq/dnsmasq.inc4
-rw-r--r--meta-networking/recipes-support/dovecot/dovecot/0001-doveadm-Fix-parallel-build.patch38
-rw-r--r--meta-networking/recipes-support/dovecot/dovecot_2.2.29.bb4
-rw-r--r--meta-networking/recipes-support/open-isns/open-isns/0001-util.h-endian.h-is-available-on-musl-on-linux.patch38
-rw-r--r--meta-networking/recipes-support/open-isns/open-isns_0.97.bb6
-rw-r--r--meta-networking/recipes-support/stunnel/stunnel/fix-openssl-no-des.patch54
-rw-r--r--meta-networking/recipes-support/stunnel/stunnel_5.35.bb4
-rw-r--r--meta-networking/recipes-support/wireshark/wireshark_2.2.16.bb (renamed from meta-networking/recipes-support/wireshark/wireshark_2.2.10.bb)6
-rw-r--r--meta-oe/README10
-rw-r--r--meta-oe/licenses/FLTK530
-rw-r--r--meta-oe/licenses/UFL97
-rw-r--r--meta-oe/recipes-connectivity/packagegroups/packagegroup-tools-bluetooth.bb2
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb18
-rw-r--r--meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.67.bb2
-rw-r--r--meta-oe/recipes-devtools/lua/lua_5.3.4.bb2
-rw-r--r--meta-oe/recipes-devtools/php/php-7.1.9/CVE-2017-16642.patch5241
-rw-r--r--meta-oe/recipes-devtools/php/php_7.1.9.bb1
-rw-r--r--meta-oe/recipes-devtools/protobuf/protobuf_3.4.1.bb2
-rw-r--r--meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb2
-rw-r--r--meta-oe/recipes-extended/dialog/dialog_1.3-20160828.bb2
-rw-r--r--meta-oe/recipes-extended/hiredis/hiredis_0.13.1.bb3
-rw-r--r--meta-oe/recipes-extended/hwloc/hwloc_1.11.5.bb9
-rw-r--r--meta-oe/recipes-extended/leveldb/leveldb/0001-build_detect_platform-Check-for-__SSE4_2__.patch5
-rw-r--r--meta-oe/recipes-extended/libpwquality/libpwquality_1.4.0.bb4
-rw-r--r--meta-oe/recipes-extended/libreport/libreport_2.9.2.bb6
-rw-r--r--meta-oe/recipes-extended/polkit/polkit_0.113.bb4
-rw-r--r--meta-oe/recipes-extended/rarpd/rarpd_ss981107.bb8
-rw-r--r--meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb8
-rw-r--r--meta-oe/recipes-graphics/glm/glm_0.9.9-a2.bb (renamed from meta-oe/recipes-graphics/glm/glm_0.9.8.4.bb)10
-rw-r--r--meta-oe/recipes-graphics/tslib/tslib_1.1.bb2
-rw-r--r--meta-oe/recipes-navigation/gpsd/gpsd_3.16.bb14
-rw-r--r--meta-oe/recipes-support/dfu-util/dfu-util-native_0.9.bb7
-rw-r--r--meta-oe/recipes-support/fltk/fltk-native.bb5
-rw-r--r--meta-oe/recipes-support/fltk/fltk.bb2
-rw-r--r--meta-oe/recipes-support/gperftools/gperftools/sgidef.patch17
-rw-r--r--meta-oe/recipes-support/gperftools/gperftools_2.6.1.bb1
-rw-r--r--meta-oe/recipes-support/mysql/mariadb.inc1
-rw-r--r--meta-oe/recipes-support/openct/openct_0.6.20.bb8
-rw-r--r--meta-oe/recipes-support/openldap/openldap_2.4.45.bb1
-rw-r--r--meta-oe/recipes-support/passwdqc/passwdqc_1.3.1.bb2
-rw-r--r--meta-oe/recipes-support/postgresql/postgresql_9.4.15.bb (renamed from meta-oe/recipes-support/postgresql/postgresql_9.4.13.bb)4
-rw-r--r--meta-perl/README9
-rw-r--r--meta-python/README4
-rw-r--r--meta-python/recipes-devtools/python/python-asn1crypto.inc1
-rw-r--r--meta-python/recipes-devtools/python/python-attrs.inc9
-rw-r--r--meta-python/recipes-devtools/python/python-attrs_17.3.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-automat.inc24
-rw-r--r--meta-python/recipes-devtools/python/python-automat/0001-setup.py-remove-the-dependency-on-m2r.patch52
-rw-r--r--meta-python/recipes-devtools/python/python-automat_0.6.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-cffi.inc4
-rw-r--r--meta-python/recipes-devtools/python/python-cffi_1.11.2.bb (renamed from meta-python/recipes-devtools/python/python-cffi_1.11.0.bb)0
-rw-r--r--meta-python/recipes-devtools/python/python-constantly.inc11
-rw-r--r--meta-python/recipes-devtools/python/python-constantly_15.1.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-cryptography.inc8
-rw-r--r--meta-python/recipes-devtools/python/python-evdev_0.7.0.bb7
-rw-r--r--meta-python/recipes-devtools/python/python-hyperlink.inc17
-rw-r--r--meta-python/recipes-devtools/python/python-hyperlink_17.3.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-incremental.inc14
-rw-r--r--meta-python/recipes-devtools/python/python-incremental_17.5.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-twisted.inc4
-rw-r--r--meta-python/recipes-devtools/python/python-twisted_17.9.0.bb8
-rw-r--r--meta-python/recipes-devtools/python/python3-asn1crypto_0.23.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-attrs_17.3.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-automat_0.6.0.bb4
-rw-r--r--meta-python/recipes-devtools/python/python3-cffi_1.11.2.bb (renamed from meta-python/recipes-devtools/python/python3-cffi_1.11.0.bb)0
-rw-r--r--meta-python/recipes-devtools/python/python3-constantly_15.1.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-hyperlink_17.3.1.bb4
-rw-r--r--meta-python/recipes-devtools/python/python3-incremental_17.5.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-twisted_17.9.0.bb2
-rw-r--r--meta-webserver/README4
-rw-r--r--meta-webserver/recipes-httpd/apache2/apache2-native_2.4.27.bb1
-rw-r--r--meta-webserver/recipes-httpd/apache2/apache2_2.4.27.bb1
-rw-r--r--meta-webserver/recipes-httpd/apache2/files/CVE-2018-1333.patch44
-rw-r--r--meta-webserver/recipes-php/phpmyadmin/phpmyadmin_4.7.6.bb (renamed from meta-webserver/recipes-php/phpmyadmin/phpmyadmin_4.7.3.bb)4
-rw-r--r--meta-xfce/README11
-rw-r--r--meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.1.bb1
91 files changed, 6595 insertions, 140 deletions
diff --git a/meta-filesystems/README b/meta-filesystems/README
index d2716f8f1f..0f7cc9b3c1 100644
--- a/meta-filesystems/README
+++ b/meta-filesystems/README
@@ -10,22 +10,22 @@ Dependencies
This layer depends on:
URI: git://git.openembedded.org/bitbake
- branch: master
+ branch: 1.36
URI: git://git.openembedded.org/openembedded-core
layers: meta
- branch: master
+ branch: rocko
URI: git://git.openembedded.org/meta-openembedded
layers: meta-oe
- branch: master
+ branch: rocko
Patches
=======
Please submit any patches against the filesystems layer to the
OpenEmbedded development mailing list (openembedded-devel@lists.openembedded.org)
-with '[meta-filesystems]' in the subject.
+with '[meta-filesystems][rocko]' in the subject.
Maintainers List:
physfs Andreas Müller <schnitzeltony@googlemail.com>
@@ -66,8 +66,10 @@ When sending single patches, please use something like:
git send-email -1 -M \
--to openembedded-devel@lists.openembedded.org \
- --subject-prefix=meta-filesystems][PATCH
+ --subject-prefix=meta-filesystems][rocko][PATCH
+rocko Branch Maintainer:
+Armin Kuster <akuster808@gmail.com>
Table of Contents
=================
diff --git a/meta-filesystems/recipes-support/fuse/files/CVE-2018-10906-1.patch b/meta-filesystems/recipes-support/fuse/files/CVE-2018-10906-1.patch
new file mode 100644
index 0000000000..83bef30229
--- /dev/null
+++ b/meta-filesystems/recipes-support/fuse/files/CVE-2018-10906-1.patch
@@ -0,0 +1,52 @@
+From 28bdae3d113ef479c1660a581ef720cdc33bf466 Mon Sep 17 00:00:00 2001
+From: Jann Horn <jannh@google.com>
+Date: Fri, 13 Jul 2018 15:15:36 -0700
+Subject: [PATCH] fusermount: don't feed "escaped commas" into mount options
+
+The old code permits the following behavior:
+
+$ _FUSE_COMMFD=10000 priv_strace -etrace=mount -s200 fusermount -o 'foobar=\,allow_other' mount
+mount("/dev/fuse", ".", "fuse", MS_NOSUID|MS_NODEV, "foobar=\\,allow_other,fd=3,rootmode=40000,user_id=1000,group_id=1000") = -1 EINVAL (Invalid argument)
+
+However, backslashes do not have any special meaning for the kernel here.
+
+As it happens, you can't abuse this because there is no FUSE mount option
+that takes a string value that can contain backslashes; but this is very
+brittle. Don't interpret "escape characters" in places where they don't
+work.
+
+CVE: CVE-2018-10906
+Upstream-Status: Backport [https://github.com/libfuse/libfuse/commit/28bdae3d113ef479c1660a581ef720cdc33bf466]
+
+Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com>
+---
+ util/fusermount.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/util/fusermount.c b/util/fusermount.c
+index 0e1d34d..143bd4a 100644
+--- a/util/fusermount.c
++++ b/util/fusermount.c
+@@ -29,6 +29,7 @@
+ #include <sys/socket.h>
+ #include <sys/utsname.h>
+ #include <sched.h>
++#include <stdbool.h>
+
+ #define FUSE_COMMFD_ENV "_FUSE_COMMFD"
+
+@@ -754,8 +755,10 @@ static int do_mount(const char *mnt, char **typep, mode_t rootmode,
+ unsigned len;
+ const char *fsname_str = "fsname=";
+ const char *subtype_str = "subtype=";
++ bool escape_ok = begins_with(s, fsname_str) ||
++ begins_with(s, subtype_str);
+ for (len = 0; s[len]; len++) {
+- if (s[len] == '\\' && s[len + 1])
++ if (escape_ok && s[len] == '\\' && s[len + 1])
+ len++;
+ else if (s[len] == ',')
+ break;
+--
+2.13.3
+
diff --git a/meta-filesystems/recipes-support/fuse/files/CVE-2018-10906-2.patch b/meta-filesystems/recipes-support/fuse/files/CVE-2018-10906-2.patch
new file mode 100644
index 0000000000..104aa171bd
--- /dev/null
+++ b/meta-filesystems/recipes-support/fuse/files/CVE-2018-10906-2.patch
@@ -0,0 +1,48 @@
+From 5018a0c016495155ee598b7e0167b43d5d902414 Mon Sep 17 00:00:00 2001
+From: Jann Horn <jannh@google.com>
+Date: Sat, 14 Jul 2018 03:47:50 -0700
+Subject: [PATCH] fusermount: refuse unknown options
+
+Blacklists are notoriously fragile; especially if the kernel wishes to add
+some security-critical mount option at a later date, all existing systems
+with older versions of fusermount installed will suddenly have a security
+problem.
+Additionally, if the kernel's option parsing became a tiny bit laxer, the
+blacklist could probably be bypassed.
+
+Whitelist known-harmless flags instead, even if it's slightly more
+inconvenient.
+
+CVE: CVE-2018-10906
+Upstream-Status: Backport [https://github.com/libfuse/libfuse/commit/5018a0c016495155ee598b7e0167b43d5d902414]
+
+Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com>
+---
+ util/fusermount.c | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/util/fusermount.c b/util/fusermount.c
+index 4e0f51a..2792407 100644
+--- a/util/fusermount.c
++++ b/util/fusermount.c
+@@ -819,10 +819,16 @@ static int do_mount(const char *mnt, char **typep, mode_t rootmode,
+ flags |= flag;
+ else
+ flags &= ~flag;
+- } else {
++ } else if (opt_eq(s, len, "default_permissions") ||
++ opt_eq(s, len, "allow_other") ||
++ begins_with(s, "max_read=") ||
++ begins_with(s, "blksize=")) {
+ memcpy(d, s, len);
+ d += len;
+ *d++ = ',';
++ } else {
++ fprintf(stderr, "%s: unknown option '%.*s'\n", progname, len, s);
++ exit(1);
+ }
+ }
+ }
+--
+2.13.3
+
diff --git a/meta-filesystems/recipes-support/fuse/fuse_2.9.7.bb b/meta-filesystems/recipes-support/fuse/fuse_2.9.7.bb
index 202d4c3eb8..1eb9b70077 100644
--- a/meta-filesystems/recipes-support/fuse/fuse_2.9.7.bb
+++ b/meta-filesystems/recipes-support/fuse/fuse_2.9.7.bb
@@ -15,6 +15,8 @@ SRC_URI = "https://github.com/libfuse/libfuse/releases/download/${BP}/${BP}.tar.
file://aarch64.patch \
file://0001-fuse-fix-the-return-value-of-help-option.patch \
file://fuse.conf \
+ file://CVE-2018-10906-1.patch \
+ file://CVE-2018-10906-2.patch \
"
SRC_URI[md5sum] = "9bd4ce8184745fd3d000ca2692adacdb"
SRC_URI[sha256sum] = "832432d1ad4f833c20e13b57cf40ce5277a9d33e483205fc63c78111b3358874"
diff --git a/meta-gnome/README b/meta-gnome/README
index 0c4fbd2a54..25ef85d3f3 100644
--- a/meta-gnome/README
+++ b/meta-gnome/README
@@ -1,16 +1,17 @@
This layer depends on:
URI: git://github.com/openembedded/oe-core.git
-branch: master
+branch: rocko
revision: HEAD
URI: git://github.com/openembedded/meta-oe.git
-branch: master
+branch: rocko
revision: HEAD
-Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-gnome]' in the subject'
+Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-gnome][rocko]' in the subject'
When sending single patches, please using something like:
-'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-gnome][PATCH'
+'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-gnome][rocko][PATCH'
-Interim layer maintainer: Martin Jansa <Martin.Jansa@gmail.com>
+rocko Branch Maintainer:
+Armin Kuster <akuster808@gmail.com>
diff --git a/meta-initramfs/README b/meta-initramfs/README
index e24acf993c..b7dbfef2dc 100644
--- a/meta-initramfs/README
+++ b/meta-initramfs/README
@@ -12,7 +12,7 @@ Dependencies
This layer depends on:
URI: git://github.com/openembedded/oe-core.git
-branch: master
+branch: rocko
revision: HEAD
@@ -20,13 +20,13 @@ Maintenance
-----------
Send patches / pull requests to openembedded-devel@lists.openembedded.org
-with '[meta-initramfs]' in the subject.
+with '[meta-initramfs][rocko]' in the subject.
When sending single patches, please using something like:
-'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-initramfs][PATCH'
+'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-initramfs][rocko][PATCH'
-Layer maintainers: Andrea Adami <andrea.adami@gmail.com>
- Paul Eggleton <paul.eggleton@linux.intel.com>
+rocko Branch Maintainer:
+Armin Kuster <akuster808@gmail.com>
License
diff --git a/meta-multimedia/README b/meta-multimedia/README
index cbdc1b545d..b59dfe0df5 100644
--- a/meta-multimedia/README
+++ b/meta-multimedia/README
@@ -1,21 +1,20 @@
This layer depends on:
URI: git://github.com/openembedded/oe-core.git
-branch: master
+branch: rocko
revision: HEAD
URI: git://github.com/openembedded/meta-oe.git
-layers: meta-oe, meta-ruby
-branch: master
+layers: meta-oe
+branch: rocko
revision: HEAD
-Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-multimedia]' in the subject'
+Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-multimedia][rocko]' in the subject'
When sending single patches, please use something like:
-'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-multimedia][PATCH
+'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-multimedia][rocko][PATCH
You are encouraged to fork the mirror on github https://github.com/openembedded/meta-oe/ to share your patches, this is preferred for patch sets consisting of more than one patch. Other services like gitorious, repo.or.cz or self hosted setups are of course accepted as well, 'git fetch <remote>' works the same on all of them. We recommend github because it is free, easy to use, has been proven to be reliable and has a really good web GUI.
-Main layer maintainers: Koen Kooi <koen@dominion.thruhere.net>
- Martin Jansa <martin.jansa@gmail.com>
-
+rocko Branch Maintainer:
+Armin Kuster <akuster808@gmail.com>
diff --git a/meta-networking/MAINTAINERS b/meta-networking/MAINTAINERS
index bbb2d1b5b2..771c73cb09 100644
--- a/meta-networking/MAINTAINERS
+++ b/meta-networking/MAINTAINERS
@@ -2,13 +2,16 @@ This file contains a list of maintainers for the meta-networking layer.
Please submit any patches against meta-networking to the OpenEmbedded
development mailing list (openembedded-devel@lists.openembedded.org) with
-'[meta-networking]' in the subject.
+'[meta-networking][rocko]' in the subject.
When sending single patches, please use something like:
git send-email -1 -M \
--to openembedded-devel@lists.openembedded.org \
- --subject-prefix=meta-networking][PATCH
+ --subject-prefix=meta-networking][rocko][PATCH
+
+rocko Branch Maintainer:
+Armin Kuster <akuster808@gmail.com>
You may also contact the maintainers directly.
diff --git a/meta-networking/recipes-connectivity/lftp/files/CVE-2018-10916.patch b/meta-networking/recipes-connectivity/lftp/files/CVE-2018-10916.patch
new file mode 100644
index 0000000000..213403e82f
--- /dev/null
+++ b/meta-networking/recipes-connectivity/lftp/files/CVE-2018-10916.patch
@@ -0,0 +1,82 @@
+From a27e07d90a4608ceaf928b1babb27d4d803e1992 Mon Sep 17 00:00:00 2001
+From: "Alexander V. Lukyanov" <lavv17f@gmail.com>
+Date: Tue, 31 Jul 2018 10:57:35 +0300
+Subject: [PATCH] mirror: prepend ./ to rm and chmod arguments to avoid URL
+ recognition (fix #452)
+
+CVE: CVE-2018-10916
+Upstream-Status: Backport from v4.8.4
+
+Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com>
+---
+ src/MirrorJob.cc | 24 +++++++++---------------
+ 1 file changed, 9 insertions(+), 15 deletions(-)
+
+diff --git a/src/MirrorJob.cc b/src/MirrorJob.cc
+index cf106c40..0be45431 100644
+--- a/src/MirrorJob.cc
++++ b/src/MirrorJob.cc
+@@ -1164,24 +1164,21 @@ int MirrorJob::Do()
+ }
+ continue;
+ }
++ bool use_rmdir = (file->TypeIs(file->DIRECTORY)
++ && recursion_mode==RECURSION_NEVER);
+ if(script)
+ {
+- ArgV args("rm");
+- if(file->TypeIs(file->DIRECTORY))
+- {
+- if(recursion_mode==RECURSION_NEVER)
+- args.setarg(0,"rmdir");
+- else
+- args.Append("-r");
+- }
++ ArgV args(use_rmdir?"rmdir":"rm");
++ if(file->TypeIs(file->DIRECTORY) && !use_rmdir)
++ args.Append("-r");
+ args.Append(target_session->GetFileURL(file->name));
+ xstring_ca cmd(args.CombineQuoted());
+ fprintf(script,"%s\n",cmd.get());
+ }
+ if(!script_only)
+ {
+- ArgV *args=new ArgV("rm");
+- args->Append(file->name);
++ ArgV *args=new ArgV(use_rmdir?"rmdir":"rm");
++ args->Append(dir_file(".",file->name));
+ args->seek(1);
+ rmJob *j=new rmJob(target_session->Clone(),args);
+ j->cmdline.set_allocated(args->Combine());
+@@ -1185,10 +1182,7 @@ int MirrorJob::Do()
+ if(file->TypeIs(file->DIRECTORY))
+ {
+ if(recursion_mode==RECURSION_NEVER)
+- {
+- args->setarg(0,"rmdir");
+ j->Rmdir();
+- }
+ else
+ j->Recurse();
+ }
+@@ -1252,7 +1246,7 @@ int MirrorJob::Do()
+ if(!script_only)
+ {
+ ArgV *a=new ArgV("chmod");
+- a->Append(file->name);
++ a->Append(dir_file(".",file->name));
+ a->seek(1);
+ ChmodJob *cj=new ChmodJob(target_session->Clone(),
+ file->mode&~mode_mask,a);
+@@ -1372,7 +1366,7 @@ int MirrorJob::Do()
+ if(!script_only)
+ {
+ ArgV *args=new ArgV("rm");
+- args->Append(file->name);
++ args->Append(dir_file(".",file->name));
+ args->seek(1);
+ rmJob *j=new rmJob(source_session->Clone(),args);
+ j->cmdline.set_allocated(args->Combine());
+--
+2.13.3
+
diff --git a/meta-networking/recipes-connectivity/lftp/lftp_4.7.7.bb b/meta-networking/recipes-connectivity/lftp/lftp_4.7.7.bb
index b6b65da736..042b0aa54c 100644
--- a/meta-networking/recipes-connectivity/lftp/lftp_4.7.7.bb
+++ b/meta-networking/recipes-connectivity/lftp/lftp_4.7.7.bb
@@ -8,6 +8,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
SRC_URI = "http://lftp.yar.ru/ftp/lftp-${PV}.tar.bz2 \
file://fix-gcc-6-conflicts-signbit.patch \
+ file://CVE-2018-10916.patch \
"
SRC_URI[md5sum] = "3701e7675baa5619c92622eb141c8301"
SRC_URI[sha256sum] = "fe441f20a9a317cfb99a8b8e628ba0457df472b6d93964d17374d5b5ebdf9280"
diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.4.4.bb b/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.4.4.bb
index bfd2aada74..d5f456f37b 100644
--- a/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.4.4.bb
+++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.4.4.bb
@@ -60,7 +60,8 @@ do_compile_prepend() {
}
PACKAGECONFIG ??= "nss ifupdown netconfig dhclient dnsmasq \
- ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', 'consolekit', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', \
+ bb.utils.contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d), d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)} \
${@bb.utils.filter('DISTRO_FEATURES', 'wifi', d)} \
"
diff --git a/meta-networking/recipes-connectivity/samba/samba_4.6.7.bb b/meta-networking/recipes-connectivity/samba/samba_4.6.7.bb
index 59d7425c8d..2b227c95d1 100644
--- a/meta-networking/recipes-connectivity/samba/samba_4.6.7.bb
+++ b/meta-networking/recipes-connectivity/samba/samba_4.6.7.bb
@@ -186,7 +186,8 @@ python samba_populate_packages() {
PACKAGESPLITFUNCS_prepend = "samba_populate_packages "
-RDEPENDS_${PN} += "${PN}-base"
+RDEPENDS_${PN} += "${PN}-base ${PN}-python ${PN}-dsdb-modules"
+RDEPENDS_${PN}-python += "pytalloc python-tdb"
FILES_${PN}-base = "${sbindir}/nmbd \
${sbindir}/smbd \
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-fix-for-disable-des.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-fix-for-disable-des.patch
new file mode 100644
index 0000000000..25eb9c96ff
--- /dev/null
+++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-fix-for-disable-des.patch
@@ -0,0 +1,32 @@
+From 270e952f58a7e5ddeabe5a15e3ddaaadf40017d0 Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Thu, 22 Jun 2017 10:25:08 +0800
+Subject: [PATCH] net-snmp: fix for --disable-des
+
+Include des.h only if it's found in openssl so that
+the --disable-des works correctly.
+
+Upstream-Status: Submitted [net-snmp-coders@lists.sourceforge.net]
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ snmplib/scapi.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/snmplib/scapi.c b/snmplib/scapi.c
+index 16ac829..271684b 100644
+--- a/snmplib/scapi.c
++++ b/snmplib/scapi.c
+@@ -79,7 +79,9 @@ netsnmp_feature_child_of(usm_scapi, usm_support)
+ #include <openssl/hmac.h>
+ #include <openssl/evp.h>
+ #include <openssl/rand.h>
++#ifdef HAVE_OPENSSL_DES_H
+ #include <openssl/des.h>
++#endif
+ #ifdef HAVE_AES
+ #include <openssl/aes.h>
+ #endif
+--
+2.11.0
+
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb b/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb
index af6fd1b1fe..849ae0763c 100644
--- a/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb
+++ b/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb
@@ -31,6 +31,7 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/net-snmp/net-snmp-${PV}.zip \
file://0003-CHANGES-BUG-2712-Fix-Perl-module-compilation.patch \
file://0004-configure-fix-incorrect-variable.patch \
file://net-snmp-5.7.2-fix-engineBoots-value-on-SIGHUP.patch \
+ file://net-snmp-fix-for-disable-des.patch \
"
SRC_URI[md5sum] = "9f682bd70c717efdd9f15b686d07baee"
SRC_URI[sha256sum] = "e8dfc79b6539b71a6ff335746ce63d2da2239062ad41872fff4354cafed07a3e"
@@ -59,7 +60,8 @@ EXTRA_OECONF = "--enable-shared \
--with-defaults \
--with-install-prefix=${D} \
--with-persistent-directory=${localstatedir}/lib/net-snmp \
- ${@base_conditional('SITEINFO_ENDIANNESS', 'le', '--with-endianness=little', '--with-endianness=big', d)}"
+ ${@base_conditional('SITEINFO_ENDIANNESS', 'le', '--with-endianness=little', '--with-endianness=big', d)} \
+"
# net-snmp needs to have mib-modules=smux enabled to enable quagga to support snmp
EXTRA_OECONF += "--with-mib-modules=smux"
diff --git a/meta-networking/recipes-support/arptables/arptables_git.bb b/meta-networking/recipes-support/arptables/arptables_git.bb
index 274a55d91d..cec1d1f77e 100644
--- a/meta-networking/recipes-support/arptables/arptables_git.bb
+++ b/meta-networking/recipes-support/arptables/arptables_git.bb
@@ -23,7 +23,8 @@ inherit systemd
EXTRA_OEMAKE = "'BINDIR=${sbindir}' 'MANDIR=${mandir}'"
-do_install_append() {
+do_install() {
+ oe_runmake install DESTDIR=${D}
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
install -d ${D}${systemd_unitdir}/system
install -m 644 ${WORKDIR}/arptables.service ${D}${systemd_unitdir}/system
diff --git a/meta-networking/recipes-support/dnsmasq/dnsmasq.inc b/meta-networking/recipes-support/dnsmasq/dnsmasq.inc
index ef79c5f822..4f4bbf144a 100644
--- a/meta-networking/recipes-support/dnsmasq/dnsmasq.inc
+++ b/meta-networking/recipes-support/dnsmasq/dnsmasq.inc
@@ -6,8 +6,8 @@ LICENSE = "GPLv2 | GPLv3"
LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
file://COPYING-v3;md5=d32239bcb673463ab874e80d47fae504"
-#at least versions 2.15 and prior are moved to the archive folder on the server
-SRC_URI = "http://www.thekelleys.org.uk/dnsmasq/${@['archive/', ''][float(d.getVar('PV').split('.')[1]) > 15]}dnsmasq-${PV}.tar.gz;name=dnsmasq-${PV} \
+#at least versions 2.69 and prior are moved to the archive folder on the server
+SRC_URI = "http://www.thekelleys.org.uk/dnsmasq/${@['archive/', ''][float(d.getVar('PV').split('.')[1]) > 69]}dnsmasq-${PV}.tar.gz;name=dnsmasq-${PV} \
file://init \
file://dnsmasq.conf \
file://dnsmasq-resolvconf.service \
diff --git a/meta-networking/recipes-support/dovecot/dovecot/0001-doveadm-Fix-parallel-build.patch b/meta-networking/recipes-support/dovecot/dovecot/0001-doveadm-Fix-parallel-build.patch
new file mode 100644
index 0000000000..65ae9bf910
--- /dev/null
+++ b/meta-networking/recipes-support/dovecot/dovecot/0001-doveadm-Fix-parallel-build.patch
@@ -0,0 +1,38 @@
+From be9b3809b86fe593dbb16f0b981b3d315a27b799 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 22 Oct 2017 22:10:41 -0700
+Subject: [PATCH] doveadm: Fix parallel build
+
+Sometimes dovetail build fails with errors like
+
+doveadm-util.o: file not recognized: File truncated
+collect2: error: ld returned 1 exit status
+make[4]: *** [Makefile:812: test-doveadm-util] Error 1
+
+This is partial backport from
+
+https://github.com/dovecot/core/commit/b200bc3875fa06d42c8619865cc306c3297fcacc
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/doveadm/Makefile.am | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/doveadm/Makefile.am b/src/doveadm/Makefile.am
+index c644646..6ae9144 100644
+--- a/src/doveadm/Makefile.am
++++ b/src/doveadm/Makefile.am
+@@ -180,8 +180,8 @@ test_libs = \
+ ../lib/liblib.la
+ test_deps = $(noinst_LTLIBRARIES) $(test_libs)
+
+-test_doveadm_util_SOURCES = test-doveadm-util.c
+-test_doveadm_util_LDADD = doveadm-util.o $(test_libs) $(MODULE_LIBS)
++test_doveadm_util_SOURCES = doveadm-util.c test-doveadm-util.c
++test_doveadm_util_LDADD = $(test_libs) $(MODULE_LIBS)
+ test_doveadm_util_DEPENDENCIES = $(test_deps)
+
+ check: check-am check-test
+--
+2.14.2
+
diff --git a/meta-networking/recipes-support/dovecot/dovecot_2.2.29.bb b/meta-networking/recipes-support/dovecot/dovecot_2.2.29.bb
index d834bef71d..1663408736 100644
--- a/meta-networking/recipes-support/dovecot/dovecot_2.2.29.bb
+++ b/meta-networking/recipes-support/dovecot/dovecot_2.2.29.bb
@@ -8,7 +8,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a981379bd0f1c362f8d1d21515e5b30b"
SRC_URI = "http://dovecot.org/releases/2.2/dovecot-${PV}.tar.gz \
file://0001-configure.ac-convert-AC_TRY_RUN-to-AC_TRY_LINK-state.patch \
file://dovecot.service \
- file://dovecot.socket"
+ file://dovecot.socket \
+ file://0001-doveadm-Fix-parallel-build.patch \
+ "
SRC_URI[md5sum] = "ff95486a5c43025a2c3f5a712e7962b9"
SRC_URI[sha256sum] = "d939ea99126eb8a8c6955390b422b6e27ec0fa43a3b59b2b3218cb5ad67139a6"
diff --git a/meta-networking/recipes-support/open-isns/open-isns/0001-util.h-endian.h-is-available-on-musl-on-linux.patch b/meta-networking/recipes-support/open-isns/open-isns/0001-util.h-endian.h-is-available-on-musl-on-linux.patch
new file mode 100644
index 0000000000..825e2bf6ab
--- /dev/null
+++ b/meta-networking/recipes-support/open-isns/open-isns/0001-util.h-endian.h-is-available-on-musl-on-linux.patch
@@ -0,0 +1,38 @@
+From e0d86318227a23f00cf0f6639a6685bb9f5771a1 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 12 Dec 2017 09:42:19 -0800
+Subject: [PATCH] util.h: endian.h is available on musl on linux
+
+just checking for glibc alone is not enough since
+it excludes musl, therefore check for platform
+being linux as well
+
+Fixes build issues
+
+include/libisns/util.h:114:12: fatal error: sys/endian.h: No such file or directory
+ # include <sys/endian.h>
+ ^~~~~~~~~~~~~~
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted
+
+ include/libisns/util.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/libisns/util.h b/include/libisns/util.h
+index 9a2bd13..6cc1a1b 100644
+--- a/include/libisns/util.h
++++ b/include/libisns/util.h
+@@ -100,7 +100,7 @@ enum {
+ * There's no htonll yet
+ */
+ #ifndef htonll
+-# ifdef __GLIBC__
++# if defined(__GLIBC__) || defined(__linux__)
+ # include <endian.h>
+ # include <byteswap.h>
+ # if __BYTE_ORDER == __BIG_ENDIAN
+--
+2.15.1
+
diff --git a/meta-networking/recipes-support/open-isns/open-isns_0.97.bb b/meta-networking/recipes-support/open-isns/open-isns_0.97.bb
index 420ef5be00..cc2959e2b5 100644
--- a/meta-networking/recipes-support/open-isns/open-isns_0.97.bb
+++ b/meta-networking/recipes-support/open-isns/open-isns_0.97.bb
@@ -13,9 +13,9 @@ SECTION = "net"
DEPENDS = "openssl systemd"
-SRC_URI = " \
- git://github.com/open-iscsi/open-isns \
-"
+SRC_URI = "git://github.com/open-iscsi/open-isns \
+ file://0001-util.h-endian.h-is-available-on-musl-on-linux.patch \
+ "
SRCREV ?= "09954404e948e41eb0fce8e28836018b4ce3d20d"
diff --git a/meta-networking/recipes-support/stunnel/stunnel/fix-openssl-no-des.patch b/meta-networking/recipes-support/stunnel/stunnel/fix-openssl-no-des.patch
new file mode 100644
index 0000000000..209b0dd409
--- /dev/null
+++ b/meta-networking/recipes-support/stunnel/stunnel/fix-openssl-no-des.patch
@@ -0,0 +1,54 @@
+Upstream-Status: Pending
+
+When openssl disable des support with configure option 'no-des', it doesn't
+provide des related header file and functions. That causes stunnel compile
+failed. Fix it by checking macro OPENSSL_NO_DES to use openssl des related
+library conditionaly.
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+diff --git a/src/common.h b/src/common.h
+index f7d38b0..bf485af 100644
+--- a/src/common.h
++++ b/src/common.h
+@@ -471,7 +471,9 @@ extern char *sys_errlist[];
+ #ifndef OPENSSL_NO_MD4
+ #include <openssl/md4.h>
+ #endif /* !defined(OPENSSL_NO_MD4) */
++#ifndef OPENSSL_NO_DES
+ #include <openssl/des.h>
++#endif
+ #ifndef OPENSSL_NO_DH
+ #include <openssl/dh.h>
+ #if OPENSSL_VERSION_NUMBER<0x10100000L
+diff --git a/src/protocol.c b/src/protocol.c
+index 587df09..8198eb6 100644
+--- a/src/protocol.c
++++ b/src/protocol.c
+@@ -66,7 +66,7 @@ NOEXPORT char *imap_server(CLI *, SERVICE_OPTIONS *, const PHASE);
+ NOEXPORT char *nntp_client(CLI *, SERVICE_OPTIONS *, const PHASE);
+ NOEXPORT char *connect_server(CLI *, SERVICE_OPTIONS *, const PHASE);
+ NOEXPORT char *connect_client(CLI *, SERVICE_OPTIONS *, const PHASE);
+-#ifndef OPENSSL_NO_MD4
++#if !defined(OPENSSL_NO_MD4) && !defined(OPENSSL_NO_DES)
+ NOEXPORT void ntlm(CLI *, SERVICE_OPTIONS *);
+ NOEXPORT char *ntlm1();
+ NOEXPORT char *ntlm3(char *, char *, char *, char *);
+@@ -1175,7 +1175,7 @@ NOEXPORT char *connect_client(CLI *c, SERVICE_OPTIONS *opt, const PHASE phase) {
+ fd_printf(c, c->remote_fd.fd, "Host: %s", opt->protocol_host);
+ if(opt->protocol_username && opt->protocol_password) {
+ if(!strcasecmp(opt->protocol_authentication, "ntlm")) {
+-#ifndef OPENSSL_NO_MD4
++#if !defined(OPENSSL_NO_MD4) && !defined(OPENSSL_NO_DES)
+ ntlm(c, opt);
+ #else
+ s_log(LOG_ERR, "NTLM authentication is not available");
+@@ -1216,7 +1216,7 @@ NOEXPORT char *connect_client(CLI *c, SERVICE_OPTIONS *opt, const PHASE phase) {
+ return NULL;
+ }
+
+-#ifndef OPENSSL_NO_MD4
++#if !defined(OPENSSL_NO_MD4) && !defined(OPENSSL_NO_DES)
+
+ /*
+ * NTLM code is based on the following documentation:
diff --git a/meta-networking/recipes-support/stunnel/stunnel_5.35.bb b/meta-networking/recipes-support/stunnel/stunnel_5.35.bb
index efe9d9e578..ec8478d6be 100644
--- a/meta-networking/recipes-support/stunnel/stunnel_5.35.bb
+++ b/meta-networking/recipes-support/stunnel/stunnel_5.35.bb
@@ -8,7 +8,9 @@ DEPENDS = "openssl zlib tcp-wrappers"
RDEPENDS_${PN} += "perl"
-SRC_URI = "ftp://ftp.stunnel.org/stunnel/archive/5.x/${BP}.tar.gz"
+SRC_URI = "ftp://ftp.stunnel.org/stunnel/archive/5.x/${BP}.tar.gz \
+ file://fix-openssl-no-des.patch \
+"
SRC_URI[md5sum] = "9079f5fafbccaf88b7d92b227d78249a"
SRC_URI[sha256sum] = "ffa386ae4c825f35f35157c285e7402a6d58779ad8c3822f74a9d355b54aba1d"
diff --git a/meta-networking/recipes-support/wireshark/wireshark_2.2.10.bb b/meta-networking/recipes-support/wireshark/wireshark_2.2.16.bb
index 5358ba07f7..abeef693e8 100644
--- a/meta-networking/recipes-support/wireshark/wireshark_2.2.10.bb
+++ b/meta-networking/recipes-support/wireshark/wireshark_2.2.16.bb
@@ -10,8 +10,8 @@ SRC_URI = "https://2.na.dl.wireshark.org/src/all-versions/${BP}.tar.bz2"
PE = "1"
-SRC_URI[md5sum] = "ae3a1a43a6e3687f44a738fd15d78021"
-SRC_URI[sha256sum] = "8574a5e1fdec7affae640924bd46c1aed1bd866e02632fa5625e1450e4a50707"
+SRC_URI[md5sum] = "22128e617f3abdf87f7b5d7864d6d79e"
+SRC_URI[sha256sum] = "7dcc4e9f29ad8dd75849aa3b6f70b6ec82ab6899cb168096572775a6d97ced8a"
inherit autotools pkgconfig perlnative
@@ -39,7 +39,7 @@ PACKAGECONFIG[geoip] = "--with-geoip=yes, --with-geoip=no, geoip"
PACKAGECONFIG[plugins] = "--with-plugins=yes, --with-plugins=no"
PACKAGECONFIG[sbc] = "--with-sbc=yes, --with-sbc=no, sbc"
-PACKAGECONFIG[libssh] = "--with-ssh=yes, --with-ssh=no, libssh2"
+PACKAGECONFIG[libssh] = "--with-libssh=${STAGING_LIBDIR}, --with-libssh=no, libssh2"
# these next two options require addional layers
diff --git a/meta-oe/README b/meta-oe/README
index 6ad87c52b3..dabed2f6bc 100644
--- a/meta-oe/README
+++ b/meta-oe/README
@@ -1,15 +1,15 @@
This layer depends on:
URI: git://github.com/openembedded/oe-core.git
-branch: master
+branch: rocko
revision: HEAD
-Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-oe]' in the subject'
+Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-oe][rocko]' in the subject'
When sending single patches, please use something like:
-'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-oe][PATCH'
+'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-oe][rocko][PATCH'
You are encouraged to fork the mirror on github https://github.com/openembedded/meta-oe/ to share your patches, this is preferred for patch sets consisting of more than one patch. Other services like gitorious, repo.or.cz or self hosted setups are of course accepted as well, 'git fetch <remote>' works the same on all of them. We recommend github because it is free, easy to use, has been proven to be reliable and has a really good web GUI.
-Main layer maintainer: Koen Kooi <koen@dominion.thruhere.net>
- Martin Jansa <martin.jansa@gmail.com>
+rocko Branch Maintainer:
+Armin Kuster <akuster808@gmail.com>
diff --git a/meta-oe/licenses/FLTK b/meta-oe/licenses/FLTK
new file mode 100644
index 0000000000..9542075220
--- /dev/null
+++ b/meta-oe/licenses/FLTK
@@ -0,0 +1,530 @@
+ FLTK License
+ December 11, 2001
+
+The FLTK library and included programs are provided under the terms
+of the GNU Library General Public License (LGPL) with the following
+exceptions:
+
+ 1. Modifications to the FLTK configure script, config
+ header file, and makefiles by themselves to support
+ a specific platform do not constitute a modified or
+ derivative work.
+
+ The authors do request that such modifications be
+ contributed to the FLTK project - send all contributions
+ through the "Software Trouble Report" on the following page:
+
+ http://www.fltk.org/str.php
+
+ 2. Widgets that are subclassed from FLTK widgets do not
+ constitute a derivative work.
+
+ 3. Static linking of applications and widgets to the
+ FLTK library does not constitute a derivative work
+ and does not require the author to provide source
+ code for the application or widget, use the shared
+ FLTK libraries, or link their applications or
+ widgets against a user-supplied version of FLTK.
+
+ If you link the application or widget to a modified
+ version of FLTK, then the changes to FLTK must be
+ provided under the terms of the LGPL in sections
+ 1, 2, and 4.
+
+ 4. You do not have to provide a copy of the FLTK license
+ with programs that are linked to the FLTK library, nor
+ do you have to identify the FLTK license in your
+ program or documentation as required by section 6
+ of the LGPL.
+
+ However, programs must still identify their use of FLTK.
+ The following example statement can be included in user
+ documentation to satisfy this requirement:
+
+ [program/widget] is based in part on the work of
+ the FLTK project (http://www.fltk.org).
+
+-----------------------------------------------------------------------
+
+ GNU LIBRARY GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ [This is the first released version of the library GPL. It is
+ numbered 2 because it goes with version 2 of the ordinary GPL.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Library General Public License, applies to some
+specially designated Free Software Foundation software, and to any
+other libraries whose authors decide to use it. You can use it for
+your libraries, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), 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 library, or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link a program with the library, you must provide
+complete object files to the recipients so that they can relink them
+with the library, after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ Our method of protecting your rights has two steps: (1) copyright
+the library, and (2) offer you this license which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ Also, for each distributor's protection, we want to make certain
+that everyone understands that there is no warranty for this free
+library. If the library is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original
+version, so that any problems introduced by others will not reflect on
+the original authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that companies distributing free
+software will individually obtain patent licenses, thus in effect
+transforming the program into proprietary software. To prevent this,
+we have made it clear that any patent must be licensed for everyone's
+free use or not licensed at all.
+
+ Most GNU software, including some libraries, is covered by the ordinary
+GNU General Public License, which was designed for utility programs. This
+license, the GNU Library General Public License, applies to certain
+designated libraries. This license is quite different from the ordinary
+one; be sure to read it in full, and don't assume that anything in it is
+the same as in the ordinary license.
+
+ The reason we have a separate public license for some libraries is that
+they blur the distinction we usually make between modifying or adding to a
+program and simply using it. Linking a program with a library, without
+changing the library, is in some sense simply using the library, and is
+analogous to running a utility program or application program. However, in
+a textual and legal sense, the linked executable is a combined work, a
+derivative of the original library, and the ordinary General Public License
+treats it as such.
+
+ Because of this blurred distinction, using the ordinary General
+Public License for libraries did not effectively promote software
+sharing, because most developers did not use the libraries. We
+concluded that weaker conditions might promote sharing better.
+
+ However, unrestricted linking of non-free programs would deprive the
+users of those programs of all benefit from the free status of the
+libraries themselves. This Library General Public License is intended to
+permit developers of non-free programs to use free libraries, while
+preserving your freedom as a user of such programs to change the free
+libraries that are incorporated in them. (We have not seen how to achieve
+this as regards changes in header files, but we have achieved it as regards
+changes in the actual functions of the Library.) The hope is that this
+will lead to faster development of free libraries.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, while the latter only
+works together with the library.
+
+ Note that it is possible for a library to be covered by the ordinary
+General Public License rather than by this special one.
+
+ GNU LIBRARY GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library which
+contains a notice placed by the copyright holder or other authorized
+party saying it may be distributed under the terms of this Library
+General Public License (also called "this License"). Each licensee is
+addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete 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 License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ 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.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also compile or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ c) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ d) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the source code distributed need not include anything that is normally
+distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Library 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 Library
+specifies a version number of this 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 Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+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
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "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
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. 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 LIBRARY 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
+LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), 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 Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library. 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 library's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this library; if not, write to the Free
+ Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+ <signature of Ty Coon>, 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
diff --git a/meta-oe/licenses/UFL b/meta-oe/licenses/UFL
new file mode 100644
index 0000000000..e78ac4a5a6
--- /dev/null
+++ b/meta-oe/licenses/UFL
@@ -0,0 +1,97 @@
+-------------------------------
+UBUNTU FONT LICENCE Version 1.0
+-------------------------------
+
+PREAMBLE
+This licence allows the licensed fonts to be used, studied, modified and
+redistributed freely. The fonts, including any derivative works, can be
+bundled, embedded, and redistributed provided the terms of this licence
+are met. The fonts and derivatives, however, cannot be released under
+any other licence. The requirement for fonts to remain under this
+licence does not require any document created using the fonts or their
+derivatives to be published under this licence, as long as the primary
+purpose of the document is not to be a vehicle for the distribution of
+the fonts.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this licence and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Original Version" refers to the collection of Font Software components
+as received under this licence.
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting -- in part or in whole -- any of the components of the
+Original Version, by changing formats or by porting the Font Software to
+a new environment.
+
+"Copyright Holder(s)" refers to all individuals and companies who have a
+copyright ownership of the Font Software.
+
+"Substantially Changed" refers to Modified Versions which can be easily
+identified as dissimilar to the Font Software by users of the Font
+Software comparing the Original Version with the Modified Version.
+
+To "Propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification and with or without charging
+a redistribution fee), making available to the public, and in some
+countries other activities as well.
+
+PERMISSION & CONDITIONS
+This licence does not grant any rights under trademark law and all such
+rights are reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of the Font Software, to propagate the Font Software, subject to
+the below conditions:
+
+1) Each copy of the Font Software must contain the above copyright
+notice and this licence. These can be included either as stand-alone
+text files, human-readable headers or in the appropriate machine-
+readable metadata fields within text or binary files as long as those
+fields can be easily viewed by the user.
+
+2) The font name complies with the following:
+(a) The Original Version must retain its name, unmodified.
+(b) Modified Versions which are Substantially Changed must be renamed to
+avoid use of the name of the Original Version or similar names entirely.
+(c) Modified Versions which are not Substantially Changed must be
+renamed to both (i) retain the name of the Original Version and (ii) add
+additional naming elements to distinguish the Modified Version from the
+Original Version. The name of such Modified Versions must be the name of
+the Original Version, with "derivative X" where X represents the name of
+the new work, appended to that name.
+
+3) The name(s) of the Copyright Holder(s) and any contributor to the
+Font Software shall not be used to promote, endorse or advertise any
+Modified Version, except (i) as required by this licence, (ii) to
+acknowledge the contribution(s) of the Copyright Holder(s) or (iii) with
+their explicit written permission.
+
+4) The Font Software, modified or unmodified, in part or in whole, must
+be distributed entirely under this licence, and must not be distributed
+under any other licence. The requirement for fonts to remain under this
+licence does not affect any document created using the Font Software,
+except any version of the Font Software extracted from a document
+created using the Font Software may only be distributed under this
+licence.
+
+TERMINATION
+This licence becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
+COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER
+DEALINGS IN THE FONT SOFTWARE.
+
diff --git a/meta-oe/recipes-connectivity/packagegroups/packagegroup-tools-bluetooth.bb b/meta-oe/recipes-connectivity/packagegroups/packagegroup-tools-bluetooth.bb
index 317f9728bf..f2a16dcf71 100644
--- a/meta-oe/recipes-connectivity/packagegroups/packagegroup-tools-bluetooth.bb
+++ b/meta-oe/recipes-connectivity/packagegroups/packagegroup-tools-bluetooth.bb
@@ -15,13 +15,13 @@ inherit bluetooth
RDEPENDS_bluez4 = " \
obexftp \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'libasound-module-bluez', '', d)} \
"
RDEPENDS_bluez5 = " \
bluez5-noinst-tools \
bluez5-obex \
bluez5-testtools \
- libasound-module-bluez \
${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', \
'pulseaudio-module-bluetooth-discover \
pulseaudio-module-bluetooth-policy \
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb b/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb
index 75f5b9e26d..d3ccd1d064 100644
--- a/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb
+++ b/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb
@@ -54,24 +54,6 @@ inherit systemd
SYSTEMD_SERVICE_${PN} = "android-tools-adbd.service"
-# Get rid of files uneeded to build Android tools
-do_unpack_extra() {
- cd ${S}
- rm -rf \
- system/core/.git \
- system/extras/.git \
- hardware/libhardware/.git \
- external/libselinux/.git \
- build/.git
- git init
- git add .
- git commit -m \
- "Initial import - committed ${ANDROID_TAG}"
- git clean -fdx
-}
-
-addtask unpack_extra after do_unpack before do_patch
-
# Find libbsd headers during native builds
CC_append_class-native = " -I${STAGING_INCDIR}"
CC_append_class-nativesdk = " -I${STAGING_INCDIR}"
diff --git a/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.67.bb b/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.67.bb
index 62b2796181..8472aca6c1 100644
--- a/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.67.bb
+++ b/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.67.bb
@@ -1,7 +1,7 @@
SUMMARY = "Install a Debian system into a subdirectory"
HOMEPAGE = "https://wiki.debian.org/Debootstrap"
SECTION = "devel"
-LICENSE = "debootstrap-custom-license"
+LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://debian/copyright;md5=1e68ced6e1689d4cd9dac75ff5225608"
inherit pkgconfig
diff --git a/meta-oe/recipes-devtools/lua/lua_5.3.4.bb b/meta-oe/recipes-devtools/lua/lua_5.3.4.bb
index 28d71faef4..8f4e8fe68c 100644
--- a/meta-oe/recipes-devtools/lua/lua_5.3.4.bb
+++ b/meta-oe/recipes-devtools/lua/lua_5.3.4.bb
@@ -56,4 +56,4 @@ do_install_ptest () {
cp -R --no-dereference --preserve=mode,links -v ${WORKDIR}/lua-${PV}-tests ${D}${PTEST_PATH}/test
}
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-devtools/php/php-7.1.9/CVE-2017-16642.patch b/meta-oe/recipes-devtools/php/php-7.1.9/CVE-2017-16642.patch
new file mode 100644
index 0000000000..41d2a0f612
--- /dev/null
+++ b/meta-oe/recipes-devtools/php/php-7.1.9/CVE-2017-16642.patch
@@ -0,0 +1,5241 @@
+From f2f90767311355cafabff604a7a857ca60ee3f01 Mon Sep 17 00:00:00 2001
+From: Li Zhou <li.zhou@windriver.com>
+Date: Wed, 22 Nov 2017 21:14:59 -0800
+Subject: [PATCH] Fixed bug #75055 Out-Of-Bounds Read in timelib_meridian()
+
+Upstream-Status: Backport
+CVE: CVE-2017-16642
+Signed-off-by: Li Zhou <li.zhou@windriver.com>
+---
+ ext/date/lib/parse_date.c | 1544 +++++++++++++++++++++----------------
+ ext/date/lib/parse_date.re | 4 +-
+ ext/date/tests/bug53437_var3.phpt | 2 +-
+ ext/wddx/tests/bug75055.phpt | 20 +
+ ext/wddx/tests/bug75055.wddx | 13 +
+ 5 files changed, 911 insertions(+), 672 deletions(-)
+ create mode 100644 ext/wddx/tests/bug75055.phpt
+ create mode 100644 ext/wddx/tests/bug75055.wddx
+
+diff --git a/ext/date/lib/parse_date.c b/ext/date/lib/parse_date.c
+index f929619..6b11418 100644
+--- a/ext/date/lib/parse_date.c
++++ b/ext/date/lib/parse_date.c
+@@ -1,4 +1,5 @@
+-/* Generated by re2c 0.15.3 on Tue Jul 4 21:15:17 2017 */
++/* Generated by re2c 0.15.3 on Wed Nov 22 21:14:47 2017 */
++#line 1 "ext/date/lib/parse_date.re"
+ /*
+ * The MIT License (MIT)
+ *
+@@ -837,9 +838,11 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper)
+ std:
+ s->tok = cursor;
+ s->len = 0;
++#line 965 "ext/date/lib/parse_date.re"
+
+
+
++#line 846 "ext/date/lib/parse_date.c"
+ {
+ YYCTYPE yych;
+ unsigned int yyaccept = 0;
+@@ -962,18 +965,19 @@ yy2:
+ } else {
+ if (yych <= '@') goto yy3;
+ if (yych <= 'D') goto yy165;
+- goto yy1521;
++ goto yy1523;
+ }
+ } else {
+ if (yych <= 'd') {
+ if (yych <= 'Z') goto yy165;
+ if (yych >= 'a') goto yy170;
+ } else {
+- if (yych <= 'e') goto yy1530;
++ if (yych <= 'e') goto yy1532;
+ if (yych <= 'z') goto yy170;
+ }
+ }
+ yy3:
++#line 1673 "ext/date/lib/parse_date.re"
+ {
+ int tz_not_found;
+ DEBUG_OUTPUT("tzcorrection | tz");
+@@ -986,6 +990,7 @@ yy3:
+ TIMELIB_DEINIT;
+ return TIMELIB_TIMEZONE;
+ }
++#line 994 "ext/date/lib/parse_date.c"
+ yy4:
+ yych = *++YYCURSOR;
+ if (yych <= 'E') {
+@@ -995,7 +1000,7 @@ yy4:
+ } else {
+ if (yych <= '@') goto yy3;
+ if (yych <= 'D') goto yy165;
+- goto yy1521;
++ goto yy1523;
+ }
+ } else {
+ if (yych <= 'd') {
+@@ -1003,7 +1008,7 @@ yy4:
+ if (yych <= '`') goto yy3;
+ goto yy165;
+ } else {
+- if (yych <= 'e') goto yy1521;
++ if (yych <= 'e') goto yy1523;
+ if (yych <= 'z') goto yy165;
+ goto yy3;
+ }
+@@ -1017,12 +1022,12 @@ yy5:
+ goto yy165;
+ } else {
+ if (yych <= 'H') {
+- if (yych <= 'E') goto yy1492;
++ if (yych <= 'E') goto yy1494;
+ goto yy165;
+ } else {
+- if (yych <= 'I') goto yy1493;
++ if (yych <= 'I') goto yy1495;
+ if (yych <= 'N') goto yy165;
+- goto yy1491;
++ goto yy1493;
+ }
+ }
+ } else {
+@@ -1031,15 +1036,15 @@ yy5:
+ if (yych <= 'Z') goto yy165;
+ goto yy3;
+ } else {
+- if (yych == 'e') goto yy1508;
++ if (yych == 'e') goto yy1510;
+ goto yy170;
+ }
+ } else {
+ if (yych <= 'n') {
+- if (yych <= 'i') goto yy1509;
++ if (yych <= 'i') goto yy1511;
+ goto yy170;
+ } else {
+- if (yych <= 'o') goto yy1507;
++ if (yych <= 'o') goto yy1509;
+ if (yych <= 'z') goto yy170;
+ goto yy3;
+ }
+@@ -1054,12 +1059,12 @@ yy6:
+ goto yy165;
+ } else {
+ if (yych <= 'H') {
+- if (yych <= 'E') goto yy1492;
++ if (yych <= 'E') goto yy1494;
+ goto yy165;
+ } else {
+- if (yych <= 'I') goto yy1493;
++ if (yych <= 'I') goto yy1495;
+ if (yych <= 'N') goto yy165;
+- goto yy1491;
++ goto yy1493;
+ }
+ }
+ } else {
+@@ -1068,15 +1073,15 @@ yy6:
+ if (yych <= 'Z') goto yy165;
+ goto yy3;
+ } else {
+- if (yych == 'e') goto yy1492;
++ if (yych == 'e') goto yy1494;
+ goto yy165;
+ }
+ } else {
+ if (yych <= 'n') {
+- if (yych <= 'i') goto yy1493;
++ if (yych <= 'i') goto yy1495;
+ goto yy165;
+ } else {
+- if (yych <= 'o') goto yy1491;
++ if (yych <= 'o') goto yy1493;
+ if (yych <= 'z') goto yy165;
+ goto yy3;
+ }
+@@ -1088,24 +1093,24 @@ yy7:
+ if (yych <= 'A') {
+ if (yych == ')') goto yy164;
+ if (yych <= '@') goto yy3;
+- goto yy1461;
++ goto yy1463;
+ } else {
+- if (yych == 'I') goto yy1462;
++ if (yych == 'I') goto yy1464;
+ if (yych <= 'N') goto yy165;
+- goto yy1463;
++ goto yy1465;
+ }
+ } else {
+ if (yych <= 'h') {
+ if (yych <= 'Z') goto yy165;
+ if (yych <= '`') goto yy3;
+- if (yych <= 'a') goto yy1476;
++ if (yych <= 'a') goto yy1478;
+ goto yy170;
+ } else {
+ if (yych <= 'n') {
+- if (yych <= 'i') goto yy1477;
++ if (yych <= 'i') goto yy1479;
+ goto yy170;
+ } else {
+- if (yych <= 'o') goto yy1478;
++ if (yych <= 'o') goto yy1480;
+ if (yych <= 'z') goto yy170;
+ goto yy3;
+ }
+@@ -1117,24 +1122,24 @@ yy8:
+ if (yych <= 'A') {
+ if (yych == ')') goto yy164;
+ if (yych <= '@') goto yy3;
+- goto yy1461;
++ goto yy1463;
+ } else {
+- if (yych == 'I') goto yy1462;
++ if (yych == 'I') goto yy1464;
+ if (yych <= 'N') goto yy165;
+- goto yy1463;
++ goto yy1465;
+ }
+ } else {
+ if (yych <= 'h') {
+ if (yych <= 'Z') goto yy165;
+ if (yych <= '`') goto yy3;
+- if (yych <= 'a') goto yy1461;
++ if (yych <= 'a') goto yy1463;
+ goto yy165;
+ } else {
+ if (yych <= 'n') {
+- if (yych <= 'i') goto yy1462;
++ if (yych <= 'i') goto yy1464;
+ goto yy165;
+ } else {
+- if (yych <= 'o') goto yy1463;
++ if (yych <= 'o') goto yy1465;
+ if (yych <= 'z') goto yy165;
+ goto yy3;
+ }
+@@ -1146,15 +1151,15 @@ yy9:
+ switch (yych) {
+ case ')': goto yy164;
+ case '0':
+- case '1': goto yy1391;
+- case '2': goto yy1392;
++ case '1': goto yy1393;
++ case '2': goto yy1394;
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+- case '9': goto yy1393;
++ case '9': goto yy1395;
+ case 'A':
+ case 'B':
+ case 'C':
+@@ -1176,11 +1181,11 @@ yy9:
+ case 'X':
+ case 'Y':
+ case 'Z': goto yy165;
+- case 'E': goto yy1386;
+- case 'H': goto yy1387;
+- case 'O': goto yy1388;
+- case 'U': goto yy1389;
+- case 'W': goto yy1390;
++ case 'E': goto yy1388;
++ case 'H': goto yy1389;
++ case 'O': goto yy1390;
++ case 'U': goto yy1391;
++ case 'W': goto yy1392;
+ case 'a':
+ case 'b':
+ case 'c':
+@@ -1202,11 +1207,11 @@ yy9:
+ case 'x':
+ case 'y':
+ case 'z': goto yy170;
+- case 'e': goto yy1429;
+- case 'h': goto yy1430;
+- case 'o': goto yy1431;
+- case 'u': goto yy1432;
+- case 'w': goto yy1433;
++ case 'e': goto yy1431;
++ case 'h': goto yy1432;
++ case 'o': goto yy1433;
++ case 'u': goto yy1434;
++ case 'w': goto yy1435;
+ default: goto yy3;
+ }
+ yy10:
+@@ -1215,15 +1220,15 @@ yy10:
+ switch (yych) {
+ case ')': goto yy164;
+ case '0':
+- case '1': goto yy1391;
+- case '2': goto yy1392;
++ case '1': goto yy1393;
++ case '2': goto yy1394;
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+- case '9': goto yy1393;
++ case '9': goto yy1395;
+ case 'A':
+ case 'B':
+ case 'C':
+@@ -1267,28 +1272,30 @@ yy10:
+ case 'y':
+ case 'z': goto yy165;
+ case 'E':
+- case 'e': goto yy1386;
++ case 'e': goto yy1388;
+ case 'H':
+- case 'h': goto yy1387;
++ case 'h': goto yy1389;
+ case 'O':
+- case 'o': goto yy1388;
++ case 'o': goto yy1390;
+ case 'U':
+- case 'u': goto yy1389;
++ case 'u': goto yy1391;
+ case 'W':
+- case 'w': goto yy1390;
++ case 'w': goto yy1392;
+ default: goto yy3;
+ }
+ yy11:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+- if (yych == '-') goto yy1374;
++ if (yych == '-') goto yy1376;
+ if (yych <= '/') goto yy12;
+- if (yych <= '9') goto yy1375;
++ if (yych <= '9') goto yy1377;
+ yy12:
++#line 1768 "ext/date/lib/parse_date.re"
+ {
+ add_error(s, "Unexpected character");
+ goto std;
+ }
++#line 1299 "ext/date/lib/parse_date.c"
+ yy13:
+ yych = *++YYCURSOR;
+ if (yych <= 'R') {
+@@ -1299,16 +1306,16 @@ yy13:
+ } else {
+ if (yych <= '@') goto yy3;
+ if (yych <= 'D') goto yy165;
+- goto yy1310;
++ goto yy1311;
+ }
+ } else {
+ if (yych <= 'N') {
+- if (yych == 'I') goto yy1311;
++ if (yych == 'I') goto yy1312;
+ goto yy165;
+ } else {
+- if (yych <= 'O') goto yy1312;
++ if (yych <= 'O') goto yy1313;
+ if (yych <= 'Q') goto yy165;
+- goto yy1313;
++ goto yy1314;
+ }
+ }
+ } else {
+@@ -1318,16 +1325,16 @@ yy13:
+ if (yych <= '`') goto yy3;
+ goto yy170;
+ } else {
+- if (yych <= 'e') goto yy1351;
++ if (yych <= 'e') goto yy1353;
+ if (yych <= 'h') goto yy170;
+- goto yy1352;
++ goto yy1354;
+ }
+ } else {
+ if (yych <= 'q') {
+- if (yych == 'o') goto yy1353;
++ if (yych == 'o') goto yy1355;
+ goto yy170;
+ } else {
+- if (yych <= 'r') goto yy1354;
++ if (yych <= 'r') goto yy1356;
+ if (yych <= 'z') goto yy170;
+ goto yy3;
+ }
+@@ -1343,16 +1350,16 @@ yy14:
+ } else {
+ if (yych <= '@') goto yy3;
+ if (yych <= 'D') goto yy165;
+- goto yy1310;
++ goto yy1311;
+ }
+ } else {
+ if (yych <= 'N') {
+- if (yych == 'I') goto yy1311;
++ if (yych == 'I') goto yy1312;
+ goto yy165;
+ } else {
+- if (yych <= 'O') goto yy1312;
++ if (yych <= 'O') goto yy1313;
+ if (yych <= 'Q') goto yy165;
+- goto yy1313;
++ goto yy1314;
+ }
+ }
+ } else {
+@@ -1362,16 +1369,16 @@ yy14:
+ if (yych <= '`') goto yy3;
+ goto yy165;
+ } else {
+- if (yych <= 'e') goto yy1310;
++ if (yych <= 'e') goto yy1311;
+ if (yych <= 'h') goto yy165;
+- goto yy1311;
++ goto yy1312;
+ }
+ } else {
+ if (yych <= 'q') {
+- if (yych == 'o') goto yy1312;
++ if (yych == 'o') goto yy1313;
+ goto yy165;
+ } else {
+- if (yych <= 'r') goto yy1313;
++ if (yych <= 'r') goto yy1314;
+ if (yych <= 'z') goto yy165;
+ goto yy3;
+ }
+@@ -1382,13 +1389,13 @@ yy15:
+ if (yych <= 'A') {
+ if (yych == ')') goto yy164;
+ if (yych <= '@') goto yy3;
+- goto yy1296;
++ goto yy1297;
+ } else {
+ if (yych <= '`') {
+ if (yych <= 'Z') goto yy165;
+ goto yy3;
+ } else {
+- if (yych <= 'a') goto yy1307;
++ if (yych <= 'a') goto yy1308;
+ if (yych <= 'z') goto yy170;
+ goto yy3;
+ }
+@@ -1398,13 +1405,13 @@ yy16:
+ if (yych <= 'A') {
+ if (yych == ')') goto yy164;
+ if (yych <= '@') goto yy3;
+- goto yy1296;
++ goto yy1297;
+ } else {
+ if (yych <= '`') {
+ if (yych <= 'Z') goto yy165;
+ goto yy3;
+ } else {
+- if (yych <= 'a') goto yy1296;
++ if (yych <= 'a') goto yy1297;
+ if (yych <= 'z') goto yy165;
+ goto yy3;
+ }
+@@ -1420,7 +1427,7 @@ yy17:
+ if (yych <= 'Z') goto yy165;
+ goto yy3;
+ } else {
+- if (yych <= 'a') goto yy1293;
++ if (yych <= 'a') goto yy1294;
+ if (yych <= 'z') goto yy170;
+ goto yy3;
+ }
+@@ -2495,18 +2502,22 @@ yy48:
+ if (yych <= '/') goto yy49;
+ if (yych <= '9') goto yy54;
+ yy49:
++#line 1757 "ext/date/lib/parse_date.re"
+ {
+ goto std;
+ }
++#line 2510 "ext/date/lib/parse_date.c"
+ yy50:
+ yych = *++YYCURSOR;
+ goto yy49;
+ yy51:
+ ++YYCURSOR;
++#line 1762 "ext/date/lib/parse_date.re"
+ {
+ s->pos = cursor; s->line++;
+ goto std;
+ }
++#line 2521 "ext/date/lib/parse_date.c"
+ yy53:
+ yych = *++YYCURSOR;
+ goto yy12;
+@@ -2693,23 +2704,23 @@ yy56:
+ }
+ } else {
+ if (yyaccept == 28) {
+- goto yy1377;
++ goto yy1379;
+ } else {
+- goto yy1415;
++ goto yy1417;
+ }
+ }
+ } else {
+ if (yyaccept <= 31) {
+ if (yyaccept == 30) {
+- goto yy1418;
++ goto yy1420;
+ } else {
+- goto yy1498;
++ goto yy1500;
+ }
+ } else {
+ if (yyaccept == 32) {
+- goto yy1506;
++ goto yy1508;
+ } else {
+- goto yy1529;
++ goto yy1531;
+ }
+ }
+ }
+@@ -2920,6 +2931,7 @@ yy73:
+ if (yych == 'S') goto yy75;
+ if (yych == 's') goto yy75;
+ yy74:
++#line 1741 "ext/date/lib/parse_date.re"
+ {
+ timelib_ull i;
+ DEBUG_OUTPUT("relative");
+@@ -2934,6 +2946,7 @@ yy74:
+ TIMELIB_DEINIT;
+ return TIMELIB_RELATIVE;
+ }
++#line 2950 "ext/date/lib/parse_date.c"
+ yy75:
+ yych = *++YYCURSOR;
+ if (yych == 'D') goto yy76;
+@@ -3719,6 +3732,7 @@ yy190:
+ }
+ }
+ yy191:
++#line 1604 "ext/date/lib/parse_date.re"
+ {
+ const timelib_relunit* relunit;
+ DEBUG_OUTPUT("daytext");
+@@ -3735,6 +3749,7 @@ yy191:
+ TIMELIB_DEINIT;
+ return TIMELIB_WEEKDAY;
+ }
++#line 3753 "ext/date/lib/parse_date.c"
+ yy192:
+ yych = *++YYCURSOR;
+ if (yych <= 'K') {
+@@ -4227,6 +4242,7 @@ yy217:
+ }
+ }
+ yy218:
++#line 1663 "ext/date/lib/parse_date.re"
+ {
+ DEBUG_OUTPUT("monthtext");
+ TIMELIB_INIT;
+@@ -4235,6 +4251,7 @@ yy218:
+ TIMELIB_DEINIT;
+ return TIMELIB_DATE_TEXT;
+ }
++#line 4255 "ext/date/lib/parse_date.c"
+ yy219:
+ ++YYCURSOR;
+ if ((YYLIMIT - YYCURSOR) < 23) YYFILL(23);
+@@ -4469,6 +4486,7 @@ yy231:
+ if (yych == 't') goto yy319;
+ goto yy237;
+ yy232:
++#line 1409 "ext/date/lib/parse_date.re"
+ {
+ int length = 0;
+ DEBUG_OUTPUT("datetextual | datenoyear");
+@@ -4481,6 +4499,7 @@ yy232:
+ TIMELIB_DEINIT;
+ return TIMELIB_DATE_TEXT;
+ }
++#line 4503 "ext/date/lib/parse_date.c"
+ yy233:
+ yyaccept = 6;
+ yych = *(YYMARKER = ++YYCURSOR);
+@@ -4593,6 +4612,7 @@ yy245:
+ if (yych <= ':') goto yy248;
+ }
+ yy246:
++#line 1711 "ext/date/lib/parse_date.re"
+ {
+ int tz_not_found;
+ DEBUG_OUTPUT("dateshortwithtimeshort | dateshortwithtimelong | dateshortwithtimelongtz");
+@@ -4621,6 +4641,7 @@ yy246:
+ TIMELIB_DEINIT;
+ return TIMELIB_SHORTDATE_WITH_TIME;
+ }
++#line 4645 "ext/date/lib/parse_date.c"
+ yy247:
+ yyaccept = 7;
+ yych = *(YYMARKER = ++YYCURSOR);
+@@ -4893,6 +4914,7 @@ yy269:
+ }
+ yy270:
+ ++YYCURSOR;
++#line 1687 "ext/date/lib/parse_date.re"
+ {
+ DEBUG_OUTPUT("dateshortwithtimeshort12 | dateshortwithtimelong12");
+ TIMELIB_INIT;
+@@ -4915,6 +4937,7 @@ yy270:
+ TIMELIB_DEINIT;
+ return TIMELIB_SHORTDATE_WITH_TIME;
+ }
++#line 4941 "ext/date/lib/parse_date.c"
+ yy272:
+ yych = *++YYCURSOR;
+ if (yych <= 0x1F) {
+@@ -5470,6 +5493,7 @@ yy320:
+ if (yych <= '/') goto yy56;
+ if (yych >= ':') goto yy56;
+ ++YYCURSOR;
++#line 1381 "ext/date/lib/parse_date.re"
+ {
+ int length = 0;
+ DEBUG_OUTPUT("datenoday");
+@@ -5482,6 +5506,7 @@ yy320:
+ TIMELIB_DEINIT;
+ return TIMELIB_DATE_NO_DAY;
+ }
++#line 5510 "ext/date/lib/parse_date.c"
+ yy323:
+ yych = *++YYCURSOR;
+ if (yych <= '9') {
+@@ -5704,6 +5729,7 @@ yy327:
+ if ((yych = *YYCURSOR) <= '/') goto yy330;
+ if (yych <= '9') goto yy331;
+ yy330:
++#line 1525 "ext/date/lib/parse_date.re"
+ {
+ int length = 0;
+ DEBUG_OUTPUT("pgtextshort");
+@@ -5716,6 +5742,7 @@ yy330:
+ TIMELIB_DEINIT;
+ return TIMELIB_PG_TEXT;
+ }
++#line 5746 "ext/date/lib/parse_date.c"
+ yy331:
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy330;
+@@ -6270,6 +6297,7 @@ yy356:
+ if (yych <= 'z') goto yy167;
+ }
+ yy357:
++#line 1583 "ext/date/lib/parse_date.re"
+ {
+ DEBUG_OUTPUT("ago");
+ TIMELIB_INIT;
+@@ -6289,6 +6317,7 @@ yy357:
+ TIMELIB_DEINIT;
+ return TIMELIB_AGO;
+ }
++#line 6321 "ext/date/lib/parse_date.c"
+ yy358:
+ yyaccept = 5;
+ yych = *(YYMARKER = ++YYCURSOR);
+@@ -8009,6 +8038,7 @@ yy417:
+ yy418:
+ ++YYCURSOR;
+ yy419:
++#line 1286 "ext/date/lib/parse_date.re"
+ {
+ DEBUG_OUTPUT("iso8601date4 | iso8601date2 | iso8601dateslash | dateslash");
+ TIMELIB_INIT;
+@@ -8019,6 +8049,7 @@ yy419:
+ TIMELIB_DEINIT;
+ return TIMELIB_ISO_DATE;
+ }
++#line 8053 "ext/date/lib/parse_date.c"
+ yy420:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+@@ -8641,6 +8672,7 @@ yy439:
+ }
+ }
+ yy440:
++#line 1423 "ext/date/lib/parse_date.re"
+ {
+ DEBUG_OUTPUT("datenoyearrev");
+ TIMELIB_INIT;
+@@ -8651,6 +8683,7 @@ yy440:
+ TIMELIB_DEINIT;
+ return TIMELIB_DATE_TEXT;
+ }
++#line 8687 "ext/date/lib/parse_date.c"
+ yy441:
+ yyaccept = 9;
+ yych = *(YYMARKER = ++YYCURSOR);
+@@ -8778,6 +8811,7 @@ yy450:
+ }
+ yy452:
+ ++YYCURSOR;
++#line 1141 "ext/date/lib/parse_date.re"
+ {
+ DEBUG_OUTPUT("timetiny12 | timeshort12 | timelong12");
+ TIMELIB_INIT;
+@@ -8793,6 +8827,7 @@ yy452:
+ TIMELIB_DEINIT;
+ return TIMELIB_TIME12;
+ }
++#line 8831 "ext/date/lib/parse_date.c"
+ yy454:
+ yyaccept = 10;
+ yych = *(YYMARKER = ++YYCURSOR);
+@@ -8803,6 +8838,7 @@ yy454:
+ if (yych <= ':') goto yy457;
+ }
+ yy455:
++#line 1178 "ext/date/lib/parse_date.re"
+ {
+ int tz_not_found;
+ DEBUG_OUTPUT("timeshort24 | timelong24 | iso8601long");
+@@ -8827,6 +8863,7 @@ yy455:
+ TIMELIB_DEINIT;
+ return TIMELIB_TIME24_WITH_ZONE;
+ }
++#line 8867 "ext/date/lib/parse_date.c"
+ yy456:
+ yyaccept = 10;
+ yych = *(YYMARKER = ++YYCURSOR);
+@@ -9103,6 +9140,7 @@ yy485:
+ }
+ yy487:
+ ++YYCURSOR;
++#line 1158 "ext/date/lib/parse_date.re"
+ {
+ DEBUG_OUTPUT("mssqltime");
+ TIMELIB_INIT;
+@@ -9121,6 +9159,7 @@ yy487:
+ TIMELIB_DEINIT;
+ return TIMELIB_TIME24_WITH_ZONE;
+ }
++#line 9163 "ext/date/lib/parse_date.c"
+ yy489:
+ yyaccept = 10;
+ YYMARKER = ++YYCURSOR;
+@@ -9215,6 +9254,7 @@ yy498:
+ if ((yych = *YYCURSOR) <= '/') goto yy499;
+ if (yych <= '9') goto yy505;
+ yy499:
++#line 1340 "ext/date/lib/parse_date.re"
+ {
+ int length = 0;
+ DEBUG_OUTPUT("datefull");
+@@ -9228,6 +9268,7 @@ yy499:
+ TIMELIB_DEINIT;
+ return TIMELIB_DATE_FULL;
+ }
++#line 9272 "ext/date/lib/parse_date.c"
+ yy500:
+ yych = *++YYCURSOR;
+ if (yych == 'M') goto yy501;
+@@ -9891,6 +9932,7 @@ yy569:
+ if (yych <= '/') goto yy56;
+ if (yych >= ':') goto yy56;
+ ++YYCURSOR;
++#line 1355 "ext/date/lib/parse_date.re"
+ {
+ DEBUG_OUTPUT("pointed date YYYY");
+ TIMELIB_INIT;
+@@ -9901,6 +9943,7 @@ yy569:
+ TIMELIB_DEINIT;
+ return TIMELIB_DATE_FULL_POINTED;
+ }
++#line 9947 "ext/date/lib/parse_date.c"
+ yy572:
+ yyaccept = 10;
+ yych = *(YYMARKER = ++YYCURSOR);
+@@ -9931,6 +9974,7 @@ yy575:
+ if (yych <= '/') goto yy576;
+ if (yych <= '9') goto yy569;
+ yy576:
++#line 1367 "ext/date/lib/parse_date.re"
+ {
+ int length = 0;
+ DEBUG_OUTPUT("pointed date YY");
+@@ -9943,6 +9987,7 @@ yy576:
+ TIMELIB_DEINIT;
+ return TIMELIB_DATE_FULL_POINTED;
+ }
++#line 9991 "ext/date/lib/parse_date.c"
+ yy577:
+ yyaccept = 10;
+ yych = *(YYMARKER = ++YYCURSOR);
+@@ -10538,6 +10583,7 @@ yy620:
+ }
+ }
+ yy621:
++#line 1326 "ext/date/lib/parse_date.re"
+ {
+ int length = 0;
+ DEBUG_OUTPUT("gnudateshort");
+@@ -10550,6 +10596,7 @@ yy621:
+ TIMELIB_DEINIT;
+ return TIMELIB_ISO_DATE;
+ }
++#line 10600 "ext/date/lib/parse_date.c"
+ yy622:
+ yyaccept = 12;
+ yych = *(YYMARKER = ++YYCURSOR);
+@@ -10645,6 +10692,7 @@ yy630:
+ }
+ }
+ yy631:
++#line 1270 "ext/date/lib/parse_date.re"
+ {
+ int length = 0;
+ DEBUG_OUTPUT("americanshort | american");
+@@ -10659,6 +10707,7 @@ yy631:
+ TIMELIB_DEINIT;
+ return TIMELIB_AMERICAN;
+ }
++#line 10711 "ext/date/lib/parse_date.c"
+ yy632:
+ yyaccept = 13;
+ yych = *(YYMARKER = ++YYCURSOR);
+@@ -10857,6 +10906,7 @@ yy664:
+ if (yych <= '9') goto yy667;
+ if (yych <= ':') goto yy668;
+ yy665:
++#line 1553 "ext/date/lib/parse_date.re"
+ {
+ int tz_not_found;
+ DEBUG_OUTPUT("clf");
+@@ -10876,6 +10926,7 @@ yy665:
+ TIMELIB_DEINIT;
+ return TIMELIB_CLF;
+ }
++#line 10930 "ext/date/lib/parse_date.c"
+ yy666:
+ yych = *++YYCURSOR;
+ if (yych <= '5') {
+@@ -11362,6 +11413,7 @@ yy727:
+ if (yych <= 't') goto yy627;
+ }
+ yy728:
++#line 1298 "ext/date/lib/parse_date.re"
+ {
+ int length = 0;
+ DEBUG_OUTPUT("iso8601date2");
+@@ -11374,6 +11426,7 @@ yy728:
+ TIMELIB_DEINIT;
+ return TIMELIB_ISO_DATE;
+ }
++#line 11430 "ext/date/lib/parse_date.c"
+ yy729:
+ yych = *++YYCURSOR;
+ if (yych == 'C') goto yy730;
+@@ -11404,6 +11457,7 @@ yy734:
+ if (yych >= '2') goto yy56;
+ yy735:
+ ++YYCURSOR;
++#line 1539 "ext/date/lib/parse_date.re"
+ {
+ int length = 0;
+ DEBUG_OUTPUT("pgtextreverse");
+@@ -11416,6 +11470,7 @@ yy735:
+ TIMELIB_DEINIT;
+ return TIMELIB_PG_TEXT;
+ }
++#line 11474 "ext/date/lib/parse_date.c"
+ yy737:
+ yych = *++YYCURSOR;
+ if (yych == 'V') goto yy730;
+@@ -11568,6 +11623,7 @@ yy747:
+ }
+ }
+ yy748:
++#line 1574 "ext/date/lib/parse_date.re"
+ {
+ DEBUG_OUTPUT("year4");
+ TIMELIB_INIT;
+@@ -11575,6 +11631,7 @@ yy748:
+ TIMELIB_DEINIT;
+ return TIMELIB_CLF;
+ }
++#line 11635 "ext/date/lib/parse_date.c"
+ yy749:
+ yych = *++YYCURSOR;
+ switch (yych) {
+@@ -11769,6 +11826,7 @@ yy757:
+ if (yych <= 'X') goto yy848;
+ }
+ yy758:
++#line 1395 "ext/date/lib/parse_date.re"
+ {
+ int length = 0;
+ DEBUG_OUTPUT("datenodayrev");
+@@ -11781,6 +11839,7 @@ yy758:
+ TIMELIB_DEINIT;
+ return TIMELIB_DATE_NO_DAY;
+ }
++#line 11843 "ext/date/lib/parse_date.c"
+ yy759:
+ yych = *++YYCURSOR;
+ if (yych == 'I') goto yy892;
+@@ -11980,6 +12039,7 @@ yy778:
+ if (yych <= '/') goto yy779;
+ if (yych <= '7') goto yy781;
+ yy779:
++#line 1506 "ext/date/lib/parse_date.re"
+ {
+ timelib_sll w, d;
+ DEBUG_OUTPUT("isoweek");
+@@ -11997,12 +12057,14 @@ yy779:
+ TIMELIB_DEINIT;
+ return TIMELIB_ISO_WEEK;
+ }
++#line 12061 "ext/date/lib/parse_date.c"
+ yy780:
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy56;
+ if (yych >= '8') goto yy56;
+ yy781:
+ ++YYCURSOR;
++#line 1487 "ext/date/lib/parse_date.re"
+ {
+ timelib_sll w, d;
+ DEBUG_OUTPUT("isoweekday");
+@@ -12020,6 +12082,7 @@ yy781:
+ TIMELIB_DEINIT;
+ return TIMELIB_ISO_WEEK;
+ }
++#line 12086 "ext/date/lib/parse_date.c"
+ yy783:
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy60;
+@@ -12085,6 +12148,7 @@ yy785:
+ }
+ }
+ yy786:
++#line 1473 "ext/date/lib/parse_date.re"
+ {
+ int length = 0;
+ DEBUG_OUTPUT("pgydotd");
+@@ -12097,6 +12161,7 @@ yy786:
+ TIMELIB_DEINIT;
+ return TIMELIB_PG_YEARDAY;
+ }
++#line 12165 "ext/date/lib/parse_date.c"
+ yy787:
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy60;
+@@ -12178,6 +12243,7 @@ yy805:
+ yy806:
+ ++YYCURSOR;
+ yy807:
++#line 1447 "ext/date/lib/parse_date.re"
+ {
+ int tz_not_found;
+ DEBUG_OUTPUT("xmlrpc | xmlrpcnocolon | soap | wddx | exif");
+@@ -12202,6 +12268,7 @@ yy807:
+ TIMELIB_DEINIT;
+ return TIMELIB_XMLRPC_SOAP;
+ }
++#line 12272 "ext/date/lib/parse_date.c"
+ yy808:
+ yych = *++YYCURSOR;
+ if (yych <= '2') {
+@@ -12490,6 +12557,7 @@ yy812:
+ }
+ }
+ yy813:
++#line 1435 "ext/date/lib/parse_date.re"
+ {
+ DEBUG_OUTPUT("datenocolon");
+ TIMELIB_INIT;
+@@ -12500,6 +12568,7 @@ yy813:
+ TIMELIB_DEINIT;
+ return TIMELIB_DATE_NOCOLON;
+ }
++#line 12572 "ext/date/lib/parse_date.c"
+ yy814:
+ yych = *++YYCURSOR;
+ if (yych <= 'H') {
+@@ -13293,6 +13362,7 @@ yy937:
+ if (yych <= '/') goto yy938;
+ if (yych <= '9') goto yy960;
+ yy938:
++#line 1312 "ext/date/lib/parse_date.re"
+ {
+ int length = 0;
+ DEBUG_OUTPUT("gnudateshorter");
+@@ -13305,6 +13375,7 @@ yy938:
+ TIMELIB_DEINIT;
+ return TIMELIB_ISO_DATE;
+ }
++#line 13379 "ext/date/lib/parse_date.c"
+ yy939:
+ yyaccept = 21;
+ yych = *(YYMARKER = ++YYCURSOR);
+@@ -14303,6 +14374,7 @@ yy1030:
+ }
+ }
+ yy1032:
++#line 1204 "ext/date/lib/parse_date.re"
+ {
+ DEBUG_OUTPUT("gnunocolon");
+ TIMELIB_INIT;
+@@ -14324,6 +14396,7 @@ yy1032:
+ TIMELIB_DEINIT;
+ return TIMELIB_GNU_NOCOLON;
+ }
++#line 14400 "ext/date/lib/parse_date.c"
+ yy1033:
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy60;
+@@ -14413,6 +14486,7 @@ yy1039:
+ }
+ }
+ yy1040:
++#line 1250 "ext/date/lib/parse_date.re"
+ {
+ int tz_not_found;
+ DEBUG_OUTPUT("iso8601nocolon");
+@@ -14431,6 +14505,7 @@ yy1040:
+ TIMELIB_DEINIT;
+ return TIMELIB_ISO_NOCOLON;
+ }
++#line 14509 "ext/date/lib/parse_date.c"
+ yy1041:
+ yyaccept = 24;
+ yych = *(YYMARKER = ++YYCURSOR);
+@@ -15362,6 +15437,7 @@ yy1083:
+ }
+ }
+ yy1084:
++#line 1646 "ext/date/lib/parse_date.re"
+ {
+ timelib_sll i;
+ int behavior = 0;
+@@ -15377,6 +15453,7 @@ yy1084:
+ TIMELIB_DEINIT;
+ return TIMELIB_RELATIVE;
+ }
++#line 15457 "ext/date/lib/parse_date.c"
+ yy1085:
+ ++YYCURSOR;
+ if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+@@ -15418,6 +15495,7 @@ yy1091:
+ if (yych != 'f') goto yy56;
+ yy1092:
+ ++YYCURSOR;
++#line 1119 "ext/date/lib/parse_date.re"
+ {
+ timelib_sll i;
+ int behavior = 0;
+@@ -15438,6 +15516,7 @@ yy1092:
+ TIMELIB_DEINIT;
+ return TIMELIB_WEEK_DAY_OF_MONTH;
+ }
++#line 15520 "ext/date/lib/parse_date.c"
+ yy1094:
+ yyaccept = 25;
+ yych = *(YYMARKER = ++YYCURSOR);
+@@ -15530,6 +15609,7 @@ yy1107:
+ }
+ }
+ yy1108:
++#line 1622 "ext/date/lib/parse_date.re"
+ {
+ timelib_sll i;
+ int behavior = 0;
+@@ -15552,6 +15632,7 @@ yy1108:
+ TIMELIB_DEINIT;
+ return TIMELIB_RELATIVE;
+ }
++#line 15636 "ext/date/lib/parse_date.c"
+ yy1109:
+ yych = *++YYCURSOR;
+ goto yy1084;
+@@ -18206,10 +18287,25 @@ yy1281:
+ yy1283:
+ yyaccept = 27;
+ yych = *(YYMARKER = ++YYCURSOR);
+- if (yych <= '/') goto yy1287;
+- if (yych <= '9') goto yy1286;
+- goto yy1287;
++ if (yych <= '@') {
++ if (yych <= 0x1F) {
++ if (yych == '\t') goto yy1287;
++ } else {
++ if (yych <= ' ') goto yy1287;
++ if (yych <= '/') goto yy1284;
++ if (yych <= '9') goto yy1286;
++ }
++ } else {
++ if (yych <= '`') {
++ if (yych <= 'A') goto yy1289;
++ if (yych == 'P') goto yy1289;
++ } else {
++ if (yych <= 'a') goto yy1289;
++ if (yych == 'p') goto yy1289;
++ }
++ }
+ yy1284:
++#line 1096 "ext/date/lib/parse_date.re"
+ {
+ DEBUG_OUTPUT("backof | frontof");
+ TIMELIB_INIT;
+@@ -18231,66 +18327,104 @@ yy1284:
+ TIMELIB_DEINIT;
+ return TIMELIB_LF_DAY_OF_MONTH;
+ }
++#line 18331 "ext/date/lib/parse_date.c"
+ yy1285:
+ yyaccept = 27;
+ yych = *(YYMARKER = ++YYCURSOR);
+- if (yych <= '/') goto yy1287;
+- if (yych >= '5') goto yy1287;
++ if (yych <= '@') {
++ if (yych <= 0x1F) {
++ if (yych == '\t') goto yy1287;
++ goto yy1284;
++ } else {
++ if (yych <= ' ') goto yy1287;
++ if (yych <= '/') goto yy1284;
++ if (yych >= '5') goto yy1284;
++ }
++ } else {
++ if (yych <= '`') {
++ if (yych <= 'A') goto yy1289;
++ if (yych == 'P') goto yy1289;
++ goto yy1284;
++ } else {
++ if (yych <= 'a') goto yy1289;
++ if (yych == 'p') goto yy1289;
++ goto yy1284;
++ }
++ }
+ yy1286:
+ yyaccept = 27;
+- YYMARKER = ++YYCURSOR;
++ yych = *(YYMARKER = ++YYCURSOR);
++ if (yych <= 'A') {
++ if (yych <= 0x1F) {
++ if (yych != '\t') goto yy1284;
++ } else {
++ if (yych <= ' ') goto yy1287;
++ if (yych <= '@') goto yy1284;
++ goto yy1289;
++ }
++ } else {
++ if (yych <= '`') {
++ if (yych == 'P') goto yy1289;
++ goto yy1284;
++ } else {
++ if (yych <= 'a') goto yy1289;
++ if (yych == 'p') goto yy1289;
++ goto yy1284;
++ }
++ }
++yy1287:
++ ++YYCURSOR;
+ if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
+ yych = *YYCURSOR;
+-yy1287:
+ if (yych <= 'A') {
+ if (yych <= 0x1F) {
+- if (yych == '\t') goto yy1286;
+- goto yy1284;
++ if (yych == '\t') goto yy1287;
++ goto yy56;
+ } else {
+- if (yych <= ' ') goto yy1286;
+- if (yych <= '@') goto yy1284;
++ if (yych <= ' ') goto yy1287;
++ if (yych <= '@') goto yy56;
+ }
+ } else {
+ if (yych <= '`') {
+- if (yych != 'P') goto yy1284;
++ if (yych != 'P') goto yy56;
+ } else {
+- if (yych <= 'a') goto yy1288;
+- if (yych != 'p') goto yy1284;
++ if (yych <= 'a') goto yy1289;
++ if (yych != 'p') goto yy56;
+ }
+ }
+-yy1288:
++yy1289:
+ yych = *++YYCURSOR;
+ if (yych <= 'L') {
+ if (yych != '.') goto yy56;
+ } else {
+- if (yych <= 'M') goto yy1290;
+- if (yych == 'm') goto yy1290;
++ if (yych <= 'M') goto yy1291;
++ if (yych == 'm') goto yy1291;
+ goto yy56;
+ }
+ yych = *++YYCURSOR;
+- if (yych == 'M') goto yy1290;
++ if (yych == 'M') goto yy1291;
+ if (yych != 'm') goto yy56;
+-yy1290:
++yy1291:
+ yych = *++YYCURSOR;
+ if (yych <= 0x1F) {
+- if (yych <= 0x00) goto yy1292;
+- if (yych == '\t') goto yy1292;
++ if (yych <= 0x00) goto yy1293;
++ if (yych == '\t') goto yy1293;
+ goto yy56;
+ } else {
+- if (yych <= ' ') goto yy1292;
++ if (yych <= ' ') goto yy1293;
+ if (yych != '.') goto yy56;
+ }
+ yych = *++YYCURSOR;
+ if (yych <= '\t') {
+- if (yych <= 0x00) goto yy1292;
++ if (yych <= 0x00) goto yy1293;
+ if (yych <= 0x08) goto yy56;
+ } else {
+ if (yych != ' ') goto yy56;
+ }
+-yy1292:
++yy1293:
+ yych = *++YYCURSOR;
+ goto yy1284;
+-yy1293:
++yy1294:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'B') {
+@@ -18314,13 +18448,13 @@ yy1293:
+ if (yych <= '`') goto yy3;
+ goto yy171;
+ } else {
+- if (yych <= 'c') goto yy1294;
++ if (yych <= 'c') goto yy1295;
+ if (yych <= 'z') goto yy171;
+ goto yy3;
+ }
+ }
+ }
+-yy1294:
++yy1295:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'J') {
+@@ -18344,13 +18478,13 @@ yy1294:
+ if (yych <= '`') goto yy3;
+ goto yy175;
+ } else {
+- if (yych <= 'k') goto yy1295;
++ if (yych <= 'k') goto yy1296;
+ if (yych <= 'z') goto yy175;
+ goto yy3;
+ }
+ }
+ }
+-yy1295:
++yy1296:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '.') {
+@@ -18375,7 +18509,7 @@ yy1295:
+ goto yy3;
+ }
+ }
+-yy1296:
++yy1297:
+ yych = *++YYCURSOR;
+ if (yych <= 'S') {
+ if (yych <= ')') {
+@@ -18391,12 +18525,12 @@ yy1296:
+ if (yych <= '`') goto yy3;
+ goto yy166;
+ } else {
+- if (yych <= 's') goto yy1297;
++ if (yych <= 's') goto yy1298;
+ if (yych <= 'z') goto yy166;
+ goto yy3;
+ }
+ }
+-yy1297:
++yy1298:
+ yych = *++YYCURSOR;
+ if (yych <= 'T') {
+ if (yych <= ')') {
+@@ -18412,12 +18546,12 @@ yy1297:
+ if (yych <= '`') goto yy3;
+ goto yy167;
+ } else {
+- if (yych <= 't') goto yy1298;
++ if (yych <= 't') goto yy1299;
+ if (yych <= 'z') goto yy167;
+ goto yy3;
+ }
+ }
+-yy1298:
++yy1299:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '(') {
+@@ -18438,19 +18572,19 @@ yy1298:
+ goto yy3;
+ }
+ }
+-yy1299:
++yy1300:
+ yych = *++YYCURSOR;
+- if (yych == 'D') goto yy1300;
++ if (yych == 'D') goto yy1301;
+ if (yych != 'd') goto yy1070;
+-yy1300:
++yy1301:
+ yych = *++YYCURSOR;
+- if (yych == 'A') goto yy1301;
++ if (yych == 'A') goto yy1302;
+ if (yych != 'a') goto yy56;
+-yy1301:
++yy1302:
+ yych = *++YYCURSOR;
+- if (yych == 'Y') goto yy1302;
++ if (yych == 'Y') goto yy1303;
+ if (yych != 'y') goto yy56;
+-yy1302:
++yy1303:
+ yyaccept = 25;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'R') {
+@@ -18461,14 +18595,15 @@ yy1302:
+ goto yy1084;
+ }
+ yych = *++YYCURSOR;
+- if (yych == 'O') goto yy1304;
++ if (yych == 'O') goto yy1305;
+ if (yych != 'o') goto yy56;
+-yy1304:
++yy1305:
+ yych = *++YYCURSOR;
+- if (yych == 'F') goto yy1305;
++ if (yych == 'F') goto yy1306;
+ if (yych != 'f') goto yy56;
+-yy1305:
++yy1306:
+ ++YYCURSOR;
++#line 1079 "ext/date/lib/parse_date.re"
+ {
+ DEBUG_OUTPUT("firstdayof | lastdayof");
+ TIMELIB_INIT;
+@@ -18484,7 +18619,8 @@ yy1305:
+ TIMELIB_DEINIT;
+ return TIMELIB_LF_DAY_OF_MONTH;
+ }
+-yy1307:
++#line 18623 "ext/date/lib/parse_date.c"
++yy1308:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'R') {
+@@ -18499,7 +18635,7 @@ yy1307:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'S') goto yy1297;
++ if (yych <= 'S') goto yy1298;
+ if (yych <= 'Z') goto yy166;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -18508,13 +18644,13 @@ yy1307:
+ if (yych <= '`') goto yy3;
+ goto yy171;
+ } else {
+- if (yych <= 's') goto yy1308;
++ if (yych <= 's') goto yy1309;
+ if (yych <= 'z') goto yy171;
+ goto yy3;
+ }
+ }
+ }
+-yy1308:
++yy1309:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'S') {
+@@ -18529,7 +18665,7 @@ yy1308:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'T') goto yy1298;
++ if (yych <= 'T') goto yy1299;
+ if (yych <= 'Z') goto yy167;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -18538,20 +18674,20 @@ yy1308:
+ if (yych <= '`') goto yy3;
+ goto yy175;
+ } else {
+- if (yych <= 't') goto yy1309;
++ if (yych <= 't') goto yy1310;
+ if (yych <= 'z') goto yy175;
+ goto yy3;
+ }
+ }
+ }
+-yy1309:
++yy1310:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '-') {
+ if (yych <= ' ') {
+ if (yych == '\t') goto yy1069;
+ if (yych <= 0x1F) goto yy3;
+- goto yy1299;
++ goto yy1300;
+ } else {
+ if (yych == ')') goto yy164;
+ if (yych <= ',') goto yy3;
+@@ -18573,7 +18709,7 @@ yy1309:
+ }
+ }
+ }
+-yy1310:
++yy1311:
+ yych = *++YYCURSOR;
+ if (yych <= 'B') {
+ if (yych <= ')') {
+@@ -18582,7 +18718,7 @@ yy1310:
+ } else {
+ if (yych <= '@') goto yy3;
+ if (yych <= 'A') goto yy166;
+- goto yy1346;
++ goto yy1348;
+ }
+ } else {
+ if (yych <= 'a') {
+@@ -18590,35 +18726,35 @@ yy1310:
+ if (yych <= '`') goto yy3;
+ goto yy166;
+ } else {
+- if (yych <= 'b') goto yy1346;
++ if (yych <= 'b') goto yy1348;
+ if (yych <= 'z') goto yy166;
+ goto yy3;
+ }
+ }
+-yy1311:
++yy1312:
+ yych = *++YYCURSOR;
+ if (yych <= 'R') {
+ if (yych <= '@') {
+ if (yych == ')') goto yy164;
+ goto yy3;
+ } else {
+- if (yych == 'F') goto yy1336;
++ if (yych == 'F') goto yy1338;
+ if (yych <= 'Q') goto yy166;
+- goto yy1335;
++ goto yy1337;
+ }
+ } else {
+ if (yych <= 'f') {
+ if (yych <= 'Z') goto yy166;
+ if (yych <= '`') goto yy3;
+ if (yych <= 'e') goto yy166;
+- goto yy1336;
++ goto yy1338;
+ } else {
+- if (yych == 'r') goto yy1335;
++ if (yych == 'r') goto yy1337;
+ if (yych <= 'z') goto yy166;
+ goto yy3;
+ }
+ }
+-yy1312:
++yy1313:
+ yych = *++YYCURSOR;
+ if (yych <= 'U') {
+ if (yych <= ')') {
+@@ -18627,7 +18763,7 @@ yy1312:
+ } else {
+ if (yych <= '@') goto yy3;
+ if (yych <= 'T') goto yy166;
+- goto yy1332;
++ goto yy1334;
+ }
+ } else {
+ if (yych <= 't') {
+@@ -18635,19 +18771,19 @@ yy1312:
+ if (yych <= '`') goto yy3;
+ goto yy166;
+ } else {
+- if (yych <= 'u') goto yy1332;
++ if (yych <= 'u') goto yy1334;
+ if (yych <= 'z') goto yy166;
+ goto yy3;
+ }
+ }
+-yy1313:
++yy1314:
+ yych = *++YYCURSOR;
+ if (yych <= 'O') {
+ if (yych <= '@') {
+ if (yych == ')') goto yy164;
+ goto yy3;
+ } else {
+- if (yych == 'I') goto yy1315;
++ if (yych == 'I') goto yy1316;
+ if (yych <= 'N') goto yy166;
+ }
+ } else {
+@@ -18655,14 +18791,14 @@ yy1313:
+ if (yych <= 'Z') goto yy166;
+ if (yych <= '`') goto yy3;
+ if (yych <= 'h') goto yy166;
+- goto yy1315;
++ goto yy1316;
+ } else {
+- if (yych == 'o') goto yy1314;
++ if (yych == 'o') goto yy1315;
+ if (yych <= 'z') goto yy166;
+ goto yy3;
+ }
+ }
+-yy1314:
++yy1315:
+ yych = *++YYCURSOR;
+ if (yych <= 'N') {
+ if (yych <= ')') {
+@@ -18671,7 +18807,7 @@ yy1314:
+ } else {
+ if (yych <= '@') goto yy3;
+ if (yych <= 'M') goto yy167;
+- goto yy1318;
++ goto yy1319;
+ }
+ } else {
+ if (yych <= 'm') {
+@@ -18679,12 +18815,12 @@ yy1314:
+ if (yych <= '`') goto yy3;
+ goto yy167;
+ } else {
+- if (yych <= 'n') goto yy1318;
++ if (yych <= 'n') goto yy1319;
+ if (yych <= 'z') goto yy167;
+ goto yy3;
+ }
+ }
+-yy1315:
++yy1316:
+ yych = *++YYCURSOR;
+ if (yych <= 'D') {
+ if (yych <= ')') {
+@@ -18700,12 +18836,12 @@ yy1315:
+ if (yych <= '`') goto yy191;
+ goto yy167;
+ } else {
+- if (yych <= 'd') goto yy1316;
++ if (yych <= 'd') goto yy1317;
+ if (yych <= 'z') goto yy167;
+ goto yy191;
+ }
+ }
+-yy1316:
++yy1317:
+ yych = *++YYCURSOR;
+ if (yych <= 'A') {
+ if (yych == ')') goto yy164;
+@@ -18715,12 +18851,12 @@ yy1316:
+ if (yych <= 'Z') goto yy168;
+ goto yy3;
+ } else {
+- if (yych <= 'a') goto yy1317;
++ if (yych <= 'a') goto yy1318;
+ if (yych <= 'z') goto yy168;
+ goto yy3;
+ }
+ }
+-yy1317:
++yy1318:
+ yych = *++YYCURSOR;
+ if (yych <= 'Y') {
+ if (yych <= ')') {
+@@ -18742,7 +18878,7 @@ yy1317:
+ goto yy3;
+ }
+ }
+-yy1318:
++yy1319:
+ yych = *++YYCURSOR;
+ if (yych <= 'T') {
+ if (yych <= ')') {
+@@ -18758,16 +18894,16 @@ yy1318:
+ if (yych <= '`') goto yy3;
+ goto yy168;
+ } else {
+- if (yych <= 't') goto yy1319;
++ if (yych <= 't') goto yy1320;
+ if (yych <= 'z') goto yy168;
+ goto yy3;
+ }
+ }
+-yy1319:
++yy1320:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= ')') {
+- if (yych == ' ') goto yy1320;
++ if (yych == ' ') goto yy1321;
+ if (yych <= '(') goto yy3;
+ goto yy164;
+ } else {
+@@ -18780,88 +18916,143 @@ yy1319:
+ goto yy3;
+ }
+ }
+-yy1320:
++yy1321:
+ yych = *++YYCURSOR;
+- if (yych == 'O') goto yy1321;
++ if (yych == 'O') goto yy1322;
+ if (yych != 'o') goto yy56;
+-yy1321:
++yy1322:
+ yych = *++YYCURSOR;
+- if (yych == 'F') goto yy1322;
++ if (yych == 'F') goto yy1323;
+ if (yych != 'f') goto yy56;
+-yy1322:
++yy1323:
+ yych = *++YYCURSOR;
+ if (yych != ' ') goto yy56;
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy56;
+- if (yych <= '1') goto yy1324;
+- if (yych <= '2') goto yy1325;
+- if (yych <= '9') goto yy1326;
++ if (yych <= '1') goto yy1325;
++ if (yych <= '2') goto yy1326;
++ if (yych <= '9') goto yy1327;
+ goto yy56;
+-yy1324:
+- yyaccept = 27;
+- yych = *(YYMARKER = ++YYCURSOR);
+- if (yych <= '/') goto yy1327;
+- if (yych <= '9') goto yy1326;
+- goto yy1327;
+ yy1325:
+ yyaccept = 27;
+ yych = *(YYMARKER = ++YYCURSOR);
+- if (yych <= '/') goto yy1327;
+- if (yych >= '5') goto yy1327;
++ if (yych <= '@') {
++ if (yych <= 0x1F) {
++ if (yych == '\t') goto yy1328;
++ goto yy1284;
++ } else {
++ if (yych <= ' ') goto yy1328;
++ if (yych <= '/') goto yy1284;
++ if (yych <= '9') goto yy1327;
++ goto yy1284;
++ }
++ } else {
++ if (yych <= '`') {
++ if (yych <= 'A') goto yy1330;
++ if (yych == 'P') goto yy1330;
++ goto yy1284;
++ } else {
++ if (yych <= 'a') goto yy1330;
++ if (yych == 'p') goto yy1330;
++ goto yy1284;
++ }
++ }
+ yy1326:
+ yyaccept = 27;
+- YYMARKER = ++YYCURSOR;
+- if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
+- yych = *YYCURSOR;
++ yych = *(YYMARKER = ++YYCURSOR);
++ if (yych <= '@') {
++ if (yych <= 0x1F) {
++ if (yych == '\t') goto yy1328;
++ goto yy1284;
++ } else {
++ if (yych <= ' ') goto yy1328;
++ if (yych <= '/') goto yy1284;
++ if (yych >= '5') goto yy1284;
++ }
++ } else {
++ if (yych <= '`') {
++ if (yych <= 'A') goto yy1330;
++ if (yych == 'P') goto yy1330;
++ goto yy1284;
++ } else {
++ if (yych <= 'a') goto yy1330;
++ if (yych == 'p') goto yy1330;
++ goto yy1284;
++ }
++ }
+ yy1327:
++ yyaccept = 27;
++ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'A') {
+ if (yych <= 0x1F) {
+- if (yych == '\t') goto yy1326;
+- goto yy1284;
++ if (yych != '\t') goto yy1284;
+ } else {
+- if (yych <= ' ') goto yy1326;
++ if (yych <= ' ') goto yy1328;
+ if (yych <= '@') goto yy1284;
++ goto yy1330;
+ }
+ } else {
+ if (yych <= '`') {
+- if (yych != 'P') goto yy1284;
++ if (yych == 'P') goto yy1330;
++ goto yy1284;
+ } else {
+- if (yych <= 'a') goto yy1328;
+- if (yych != 'p') goto yy1284;
++ if (yych <= 'a') goto yy1330;
++ if (yych == 'p') goto yy1330;
++ goto yy1284;
+ }
+ }
+ yy1328:
++ ++YYCURSOR;
++ if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
++ yych = *YYCURSOR;
++ if (yych <= 'A') {
++ if (yych <= 0x1F) {
++ if (yych == '\t') goto yy1328;
++ goto yy56;
++ } else {
++ if (yych <= ' ') goto yy1328;
++ if (yych <= '@') goto yy56;
++ }
++ } else {
++ if (yych <= '`') {
++ if (yych != 'P') goto yy56;
++ } else {
++ if (yych <= 'a') goto yy1330;
++ if (yych != 'p') goto yy56;
++ }
++ }
++yy1330:
+ yych = *++YYCURSOR;
+ if (yych <= 'L') {
+ if (yych != '.') goto yy56;
+ } else {
+- if (yych <= 'M') goto yy1330;
+- if (yych == 'm') goto yy1330;
++ if (yych <= 'M') goto yy1332;
++ if (yych == 'm') goto yy1332;
+ goto yy56;
+ }
+ yych = *++YYCURSOR;
+- if (yych == 'M') goto yy1330;
++ if (yych == 'M') goto yy1332;
+ if (yych != 'm') goto yy56;
+-yy1330:
++yy1332:
+ yych = *++YYCURSOR;
+ if (yych <= 0x1F) {
+- if (yych <= 0x00) goto yy1292;
+- if (yych == '\t') goto yy1292;
++ if (yych <= 0x00) goto yy1293;
++ if (yych == '\t') goto yy1293;
+ goto yy56;
+ } else {
+- if (yych <= ' ') goto yy1292;
++ if (yych <= ' ') goto yy1293;
+ if (yych != '.') goto yy56;
+ }
+ yych = *++YYCURSOR;
+ if (yych <= '\t') {
+- if (yych <= 0x00) goto yy1292;
++ if (yych <= 0x00) goto yy1293;
+ if (yych <= 0x08) goto yy56;
+- goto yy1292;
++ goto yy1293;
+ } else {
+- if (yych == ' ') goto yy1292;
++ if (yych == ' ') goto yy1293;
+ goto yy56;
+ }
+-yy1332:
++yy1334:
+ yych = *++YYCURSOR;
+ if (yych <= 'R') {
+ if (yych <= ')') {
+@@ -18877,12 +19068,12 @@ yy1332:
+ if (yych <= '`') goto yy3;
+ goto yy167;
+ } else {
+- if (yych <= 'r') goto yy1333;
++ if (yych <= 'r') goto yy1335;
+ if (yych <= 'z') goto yy167;
+ goto yy3;
+ }
+ }
+-yy1333:
++yy1335:
+ yych = *++YYCURSOR;
+ if (yych <= 'T') {
+ if (yych <= ')') {
+@@ -18898,12 +19089,12 @@ yy1333:
+ if (yych <= '`') goto yy3;
+ goto yy168;
+ } else {
+- if (yych <= 't') goto yy1334;
++ if (yych <= 't') goto yy1336;
+ if (yych <= 'z') goto yy168;
+ goto yy3;
+ }
+ }
+-yy1334:
++yy1336:
+ yych = *++YYCURSOR;
+ if (yych <= 'H') {
+ if (yych <= ')') {
+@@ -18925,7 +19116,7 @@ yy1334:
+ goto yy3;
+ }
+ }
+-yy1335:
++yy1337:
+ yych = *++YYCURSOR;
+ if (yych <= 'S') {
+ if (yych <= ')') {
+@@ -18934,7 +19125,7 @@ yy1335:
+ } else {
+ if (yych <= '@') goto yy3;
+ if (yych <= 'R') goto yy167;
+- goto yy1338;
++ goto yy1340;
+ }
+ } else {
+ if (yych <= 'r') {
+@@ -18942,12 +19133,12 @@ yy1335:
+ if (yych <= '`') goto yy3;
+ goto yy167;
+ } else {
+- if (yych <= 's') goto yy1338;
++ if (yych <= 's') goto yy1340;
+ if (yych <= 'z') goto yy167;
+ goto yy3;
+ }
+ }
+-yy1336:
++yy1338:
+ yych = *++YYCURSOR;
+ if (yych <= 'T') {
+ if (yych <= ')') {
+@@ -18963,12 +19154,12 @@ yy1336:
+ if (yych <= '`') goto yy3;
+ goto yy167;
+ } else {
+- if (yych <= 't') goto yy1337;
++ if (yych <= 't') goto yy1339;
+ if (yych <= 'z') goto yy167;
+ goto yy3;
+ }
+ }
+-yy1337:
++yy1339:
+ yych = *++YYCURSOR;
+ if (yych <= 'H') {
+ if (yych <= ')') {
+@@ -18990,7 +19181,7 @@ yy1337:
+ goto yy3;
+ }
+ }
+-yy1338:
++yy1340:
+ yych = *++YYCURSOR;
+ if (yych <= 'T') {
+ if (yych <= ')') {
+@@ -19006,12 +19197,12 @@ yy1338:
+ if (yych <= '`') goto yy3;
+ goto yy168;
+ } else {
+- if (yych <= 't') goto yy1339;
++ if (yych <= 't') goto yy1341;
+ if (yych <= 'z') goto yy168;
+ goto yy3;
+ }
+ }
+-yy1339:
++yy1341:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '(') {
+@@ -19032,19 +19223,19 @@ yy1339:
+ goto yy3;
+ }
+ }
+-yy1340:
++yy1342:
+ yych = *++YYCURSOR;
+- if (yych == 'D') goto yy1341;
++ if (yych == 'D') goto yy1343;
+ if (yych != 'd') goto yy1197;
+-yy1341:
++yy1343:
+ yych = *++YYCURSOR;
+- if (yych == 'A') goto yy1342;
++ if (yych == 'A') goto yy1344;
+ if (yych != 'a') goto yy56;
+-yy1342:
++yy1344:
+ yych = *++YYCURSOR;
+- if (yych == 'Y') goto yy1343;
++ if (yych == 'Y') goto yy1345;
+ if (yych != 'y') goto yy56;
+-yy1343:
++yy1345:
+ yyaccept = 25;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'R') {
+@@ -19055,14 +19246,14 @@ yy1343:
+ goto yy1084;
+ }
+ yych = *++YYCURSOR;
+- if (yych == 'O') goto yy1345;
++ if (yych == 'O') goto yy1347;
+ if (yych != 'o') goto yy56;
+-yy1345:
++yy1347:
+ yych = *++YYCURSOR;
+- if (yych == 'F') goto yy1305;
+- if (yych == 'f') goto yy1305;
++ if (yych == 'F') goto yy1306;
++ if (yych == 'f') goto yy1306;
+ goto yy56;
+-yy1346:
++yy1348:
+ yyaccept = 5;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '/') {
+@@ -19097,13 +19288,13 @@ yy1346:
+ if (yych <= '`') goto yy218;
+ goto yy167;
+ } else {
+- if (yych <= 'r') goto yy1347;
++ if (yych <= 'r') goto yy1349;
+ if (yych <= 'z') goto yy167;
+ goto yy218;
+ }
+ }
+ }
+-yy1347:
++yy1349:
+ yych = *++YYCURSOR;
+ if (yych <= 'U') {
+ if (yych <= ')') {
+@@ -19119,12 +19310,12 @@ yy1347:
+ if (yych <= '`') goto yy3;
+ goto yy168;
+ } else {
+- if (yych <= 'u') goto yy1348;
++ if (yych <= 'u') goto yy1350;
+ if (yych <= 'z') goto yy168;
+ goto yy3;
+ }
+ }
+-yy1348:
++yy1350:
+ yych = *++YYCURSOR;
+ if (yych <= 'A') {
+ if (yych == ')') goto yy164;
+@@ -19134,27 +19325,27 @@ yy1348:
+ if (yych <= 'Z') goto yy169;
+ goto yy3;
+ } else {
+- if (yych <= 'a') goto yy1349;
++ if (yych <= 'a') goto yy1351;
+ if (yych <= 'z') goto yy169;
+ goto yy3;
+ }
+ }
+-yy1349:
++yy1351:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'Q') {
+ if (yych == ')') goto yy164;
+ goto yy3;
+ } else {
+- if (yych <= 'R') goto yy1350;
++ if (yych <= 'R') goto yy1352;
+ if (yych != 'r') goto yy3;
+ }
+-yy1350:
++yy1352:
+ yych = *++YYCURSOR;
+ if (yych == 'Y') goto yy229;
+ if (yych == 'y') goto yy229;
+ goto yy56;
+-yy1351:
++yy1353:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'A') {
+@@ -19169,7 +19360,7 @@ yy1351:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'B') goto yy1346;
++ if (yych <= 'B') goto yy1348;
+ if (yych <= 'Z') goto yy166;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -19178,13 +19369,13 @@ yy1351:
+ if (yych <= '`') goto yy3;
+ goto yy171;
+ } else {
+- if (yych <= 'b') goto yy1369;
++ if (yych <= 'b') goto yy1371;
+ if (yych <= 'z') goto yy171;
+ goto yy3;
+ }
+ }
+ }
+-yy1352:
++yy1354:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'Q') {
+@@ -19201,14 +19392,14 @@ yy1352:
+ if (yych <= '/') goto yy172;
+ goto yy3;
+ } else {
+- if (yych == 'F') goto yy1336;
++ if (yych == 'F') goto yy1338;
+ goto yy166;
+ }
+ }
+ } else {
+ if (yych <= '`') {
+ if (yych <= 'Z') {
+- if (yych <= 'R') goto yy1335;
++ if (yych <= 'R') goto yy1337;
+ goto yy166;
+ } else {
+ if (yych == '_') goto yy172;
+@@ -19216,16 +19407,16 @@ yy1352:
+ }
+ } else {
+ if (yych <= 'q') {
+- if (yych == 'f') goto yy1365;
++ if (yych == 'f') goto yy1367;
+ goto yy171;
+ } else {
+- if (yych <= 'r') goto yy1364;
++ if (yych <= 'r') goto yy1366;
+ if (yych <= 'z') goto yy171;
+ goto yy3;
+ }
+ }
+ }
+-yy1353:
++yy1355:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'T') {
+@@ -19240,7 +19431,7 @@ yy1353:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'U') goto yy1332;
++ if (yych <= 'U') goto yy1334;
+ if (yych <= 'Z') goto yy166;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -19249,13 +19440,13 @@ yy1353:
+ if (yych <= '`') goto yy3;
+ goto yy171;
+ } else {
+- if (yych <= 'u') goto yy1361;
++ if (yych <= 'u') goto yy1363;
+ if (yych <= 'z') goto yy171;
+ goto yy3;
+ }
+ }
+ }
+-yy1354:
++yy1356:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'N') {
+@@ -19272,14 +19463,14 @@ yy1354:
+ if (yych <= '/') goto yy172;
+ goto yy3;
+ } else {
+- if (yych == 'I') goto yy1315;
++ if (yych == 'I') goto yy1316;
+ goto yy166;
+ }
+ }
+ } else {
+ if (yych <= '`') {
+ if (yych <= 'Z') {
+- if (yych <= 'O') goto yy1314;
++ if (yych <= 'O') goto yy1315;
+ goto yy166;
+ } else {
+ if (yych == '_') goto yy172;
+@@ -19287,16 +19478,16 @@ yy1354:
+ }
+ } else {
+ if (yych <= 'n') {
+- if (yych == 'i') goto yy1356;
++ if (yych == 'i') goto yy1358;
+ goto yy171;
+ } else {
+- if (yych <= 'o') goto yy1355;
++ if (yych <= 'o') goto yy1357;
+ if (yych <= 'z') goto yy171;
+ goto yy3;
+ }
+ }
+ }
+-yy1355:
++yy1357:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'M') {
+@@ -19311,7 +19502,7 @@ yy1355:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'N') goto yy1318;
++ if (yych <= 'N') goto yy1319;
+ if (yych <= 'Z') goto yy167;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -19320,13 +19511,13 @@ yy1355:
+ if (yych <= '`') goto yy3;
+ goto yy175;
+ } else {
+- if (yych <= 'n') goto yy1359;
++ if (yych <= 'n') goto yy1361;
+ if (yych <= 'z') goto yy175;
+ goto yy3;
+ }
+ }
+ }
+-yy1356:
++yy1358:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'C') {
+@@ -19341,7 +19532,7 @@ yy1356:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'D') goto yy1316;
++ if (yych <= 'D') goto yy1317;
+ if (yych <= 'Z') goto yy167;
+ if (yych <= '^') goto yy191;
+ goto yy172;
+@@ -19350,13 +19541,13 @@ yy1356:
+ if (yych <= '`') goto yy191;
+ goto yy175;
+ } else {
+- if (yych <= 'd') goto yy1357;
++ if (yych <= 'd') goto yy1359;
+ if (yych <= 'z') goto yy175;
+ goto yy191;
+ }
+ }
+ }
+-yy1357:
++yy1359:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '@') {
+@@ -19370,18 +19561,18 @@ yy1357:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'A') goto yy1317;
++ if (yych <= 'A') goto yy1318;
+ if (yych <= 'Z') goto yy168;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+ } else {
+ if (yych <= '`') goto yy3;
+- if (yych <= 'a') goto yy1358;
++ if (yych <= 'a') goto yy1360;
+ if (yych <= 'z') goto yy176;
+ goto yy3;
+ }
+ }
+-yy1358:
++yy1360:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'X') {
+@@ -19411,7 +19602,7 @@ yy1358:
+ }
+ }
+ }
+-yy1359:
++yy1361:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'S') {
+@@ -19426,7 +19617,7 @@ yy1359:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'T') goto yy1319;
++ if (yych <= 'T') goto yy1320;
+ if (yych <= 'Z') goto yy168;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -19435,18 +19626,18 @@ yy1359:
+ if (yych <= '`') goto yy3;
+ goto yy176;
+ } else {
+- if (yych <= 't') goto yy1360;
++ if (yych <= 't') goto yy1362;
+ if (yych <= 'z') goto yy176;
+ goto yy3;
+ }
+ }
+ }
+-yy1360:
++yy1362:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '.') {
+ if (yych <= '(') {
+- if (yych == ' ') goto yy1320;
++ if (yych == ' ') goto yy1321;
+ goto yy3;
+ } else {
+ if (yych <= ')') goto yy164;
+@@ -19466,7 +19657,7 @@ yy1360:
+ goto yy3;
+ }
+ }
+-yy1361:
++yy1363:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'Q') {
+@@ -19481,7 +19672,7 @@ yy1361:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'R') goto yy1333;
++ if (yych <= 'R') goto yy1335;
+ if (yych <= 'Z') goto yy167;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -19490,13 +19681,13 @@ yy1361:
+ if (yych <= '`') goto yy3;
+ goto yy175;
+ } else {
+- if (yych <= 'r') goto yy1362;
++ if (yych <= 'r') goto yy1364;
+ if (yych <= 'z') goto yy175;
+ goto yy3;
+ }
+ }
+ }
+-yy1362:
++yy1364:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'S') {
+@@ -19511,7 +19702,7 @@ yy1362:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'T') goto yy1334;
++ if (yych <= 'T') goto yy1336;
+ if (yych <= 'Z') goto yy168;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -19520,13 +19711,13 @@ yy1362:
+ if (yych <= '`') goto yy3;
+ goto yy176;
+ } else {
+- if (yych <= 't') goto yy1363;
++ if (yych <= 't') goto yy1365;
+ if (yych <= 'z') goto yy176;
+ goto yy3;
+ }
+ }
+ }
+-yy1363:
++yy1365:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'G') {
+@@ -19556,7 +19747,7 @@ yy1363:
+ }
+ }
+ }
+-yy1364:
++yy1366:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'R') {
+@@ -19571,7 +19762,7 @@ yy1364:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'S') goto yy1338;
++ if (yych <= 'S') goto yy1340;
+ if (yych <= 'Z') goto yy167;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -19580,13 +19771,13 @@ yy1364:
+ if (yych <= '`') goto yy3;
+ goto yy175;
+ } else {
+- if (yych <= 's') goto yy1367;
++ if (yych <= 's') goto yy1369;
+ if (yych <= 'z') goto yy175;
+ goto yy3;
+ }
+ }
+ }
+-yy1365:
++yy1367:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'S') {
+@@ -19601,7 +19792,7 @@ yy1365:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'T') goto yy1337;
++ if (yych <= 'T') goto yy1339;
+ if (yych <= 'Z') goto yy167;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -19610,13 +19801,13 @@ yy1365:
+ if (yych <= '`') goto yy3;
+ goto yy175;
+ } else {
+- if (yych <= 't') goto yy1366;
++ if (yych <= 't') goto yy1368;
+ if (yych <= 'z') goto yy175;
+ goto yy3;
+ }
+ }
+ }
+-yy1366:
++yy1368:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'G') {
+@@ -19646,7 +19837,7 @@ yy1366:
+ }
+ }
+ }
+-yy1367:
++yy1369:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'S') {
+@@ -19661,7 +19852,7 @@ yy1367:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'T') goto yy1339;
++ if (yych <= 'T') goto yy1341;
+ if (yych <= 'Z') goto yy168;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -19670,20 +19861,20 @@ yy1367:
+ if (yych <= '`') goto yy3;
+ goto yy176;
+ } else {
+- if (yych <= 't') goto yy1368;
++ if (yych <= 't') goto yy1370;
+ if (yych <= 'z') goto yy176;
+ goto yy3;
+ }
+ }
+ }
+-yy1368:
++yy1370:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '-') {
+ if (yych <= ' ') {
+ if (yych == '\t') goto yy1196;
+ if (yych <= 0x1F) goto yy3;
+- goto yy1340;
++ goto yy1342;
+ } else {
+ if (yych == ')') goto yy164;
+ if (yych <= ',') goto yy3;
+@@ -19705,7 +19896,7 @@ yy1368:
+ }
+ }
+ }
+-yy1369:
++yy1371:
+ yyaccept = 5;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '9') {
+@@ -19733,7 +19924,7 @@ yy1369:
+ if (yych <= '@') goto yy218;
+ goto yy167;
+ } else {
+- if (yych <= 'R') goto yy1347;
++ if (yych <= 'R') goto yy1349;
+ if (yych <= 'Z') goto yy167;
+ goto yy218;
+ }
+@@ -19743,13 +19934,13 @@ yy1369:
+ if (yych <= '`') goto yy218;
+ goto yy175;
+ } else {
+- if (yych <= 'r') goto yy1370;
++ if (yych <= 'r') goto yy1372;
+ if (yych <= 'z') goto yy175;
+ goto yy218;
+ }
+ }
+ }
+-yy1370:
++yy1372:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'T') {
+@@ -19764,7 +19955,7 @@ yy1370:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'U') goto yy1348;
++ if (yych <= 'U') goto yy1350;
+ if (yych <= 'Z') goto yy168;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -19773,13 +19964,13 @@ yy1370:
+ if (yych <= '`') goto yy3;
+ goto yy176;
+ } else {
+- if (yych <= 'u') goto yy1371;
++ if (yych <= 'u') goto yy1373;
+ if (yych <= 'z') goto yy176;
+ goto yy3;
+ }
+ }
+ }
+-yy1371:
++yy1373:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '@') {
+@@ -19793,18 +19984,18 @@ yy1371:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'A') goto yy1349;
++ if (yych <= 'A') goto yy1351;
+ if (yych <= 'Z') goto yy169;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+ } else {
+ if (yych <= '`') goto yy3;
+- if (yych <= 'a') goto yy1372;
++ if (yych <= 'a') goto yy1374;
+ if (yych <= 'z') goto yy177;
+ goto yy3;
+ }
+ }
+-yy1372:
++yy1374:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'Q') {
+@@ -19818,33 +20009,34 @@ yy1372:
+ }
+ } else {
+ if (yych <= '`') {
+- if (yych <= 'R') goto yy1350;
++ if (yych <= 'R') goto yy1352;
+ if (yych == '_') goto yy172;
+ goto yy3;
+ } else {
+- if (yych == 'r') goto yy1373;
++ if (yych == 'r') goto yy1375;
+ if (yych <= 'z') goto yy178;
+ goto yy3;
+ }
+ }
+-yy1373:
++yy1375:
+ yych = *++YYCURSOR;
+ if (yych == 'Y') goto yy229;
+ if (yych == 'y') goto yy341;
+ goto yy179;
+-yy1374:
++yy1376:
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy56;
+ if (yych >= ':') goto yy56;
+-yy1375:
++yy1377:
+ yyaccept = 28;
+ YYMARKER = ++YYCURSOR;
+ if ((YYLIMIT - YYCURSOR) < 7) YYFILL(7);
+ yych = *YYCURSOR;
+- if (yych == '.') goto yy1378;
+- if (yych <= '/') goto yy1377;
+- if (yych <= '9') goto yy1375;
+-yy1377:
++ if (yych == '.') goto yy1380;
++ if (yych <= '/') goto yy1379;
++ if (yych <= '9') goto yy1377;
++yy1379:
++#line 1025 "ext/date/lib/parse_date.re"
+ {
+ timelib_ull i;
+
+@@ -19869,7 +20061,8 @@ yy1377:
+ TIMELIB_DEINIT;
+ return TIMELIB_RELATIVE;
+ }
+-yy1378:
++#line 20065 "ext/date/lib/parse_date.c"
++yy1380:
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy56;
+ if (yych >= ':') goto yy56;
+@@ -19889,6 +20082,7 @@ yy1378:
+ if (yych <= '/') goto yy56;
+ if (yych >= ':') goto yy56;
+ ++YYCURSOR;
++#line 1051 "ext/date/lib/parse_date.re"
+ {
+ timelib_ull i, ms;
+
+@@ -19915,7 +20109,8 @@ yy1378:
+ TIMELIB_DEINIT;
+ return TIMELIB_RELATIVE;
+ }
+-yy1386:
++#line 20113 "ext/date/lib/parse_date.c"
++yy1388:
+ yych = *++YYCURSOR;
+ if (yych <= 'N') {
+ if (yych <= ')') {
+@@ -19924,7 +20119,7 @@ yy1386:
+ } else {
+ if (yych <= '@') goto yy3;
+ if (yych <= 'M') goto yy166;
+- goto yy1427;
++ goto yy1429;
+ }
+ } else {
+ if (yych <= 'm') {
+@@ -19932,58 +20127,58 @@ yy1386:
+ if (yych <= '`') goto yy3;
+ goto yy166;
+ } else {
+- if (yych <= 'n') goto yy1427;
++ if (yych <= 'n') goto yy1429;
+ if (yych <= 'z') goto yy166;
+ goto yy3;
+ }
+ }
+-yy1387:
++yy1389:
+ yych = *++YYCURSOR;
+ if (yych <= 'U') {
+ if (yych <= '@') {
+ if (yych == ')') goto yy164;
+ goto yy3;
+ } else {
+- if (yych == 'I') goto yy1419;
++ if (yych == 'I') goto yy1421;
+ if (yych <= 'T') goto yy166;
+- goto yy1420;
++ goto yy1422;
+ }
+ } else {
+ if (yych <= 'i') {
+ if (yych <= 'Z') goto yy166;
+ if (yych <= '`') goto yy3;
+ if (yych <= 'h') goto yy166;
+- goto yy1419;
++ goto yy1421;
+ } else {
+- if (yych == 'u') goto yy1420;
++ if (yych == 'u') goto yy1422;
+ if (yych <= 'z') goto yy166;
+ goto yy3;
+ }
+ }
+-yy1388:
++yy1390:
+ yych = *++YYCURSOR;
+ if (yych <= 'M') {
+ if (yych <= '@') {
+ if (yych == ')') goto yy164;
+ goto yy3;
+ } else {
+- if (yych == 'D') goto yy1408;
++ if (yych == 'D') goto yy1410;
+ if (yych <= 'L') goto yy166;
+- goto yy1409;
++ goto yy1411;
+ }
+ } else {
+ if (yych <= 'd') {
+ if (yych <= 'Z') goto yy166;
+ if (yych <= '`') goto yy3;
+ if (yych <= 'c') goto yy166;
+- goto yy1408;
++ goto yy1410;
+ } else {
+- if (yych == 'm') goto yy1409;
++ if (yych == 'm') goto yy1411;
+ if (yych <= 'z') goto yy166;
+ goto yy3;
+ }
+ }
+-yy1389:
++yy1391:
+ yych = *++YYCURSOR;
+ if (yych <= 'E') {
+ if (yych <= ')') {
+@@ -19992,7 +20187,7 @@ yy1389:
+ } else {
+ if (yych <= '@') goto yy3;
+ if (yych <= 'D') goto yy166;
+- goto yy1404;
++ goto yy1406;
+ }
+ } else {
+ if (yych <= 'd') {
+@@ -20000,12 +20195,12 @@ yy1389:
+ if (yych <= '`') goto yy3;
+ goto yy166;
+ } else {
+- if (yych <= 'e') goto yy1404;
++ if (yych <= 'e') goto yy1406;
+ if (yych <= 'z') goto yy166;
+ goto yy3;
+ }
+ }
+-yy1390:
++yy1392:
+ yych = *++YYCURSOR;
+ if (yych <= 'E') {
+ if (yych <= ')') {
+@@ -20014,7 +20209,7 @@ yy1390:
+ } else {
+ if (yych <= '@') goto yy3;
+ if (yych <= 'D') goto yy166;
+- goto yy1400;
++ goto yy1402;
+ }
+ } else {
+ if (yych <= 'd') {
+@@ -20022,68 +20217,68 @@ yy1390:
+ if (yych <= '`') goto yy3;
+ goto yy166;
+ } else {
+- if (yych <= 'e') goto yy1400;
++ if (yych <= 'e') goto yy1402;
+ if (yych <= 'z') goto yy166;
+ goto yy3;
+ }
+ }
+-yy1391:
++yy1393:
+ yych = *++YYCURSOR;
+ if (yych <= '/') {
+ if (yych == '.') goto yy1029;
+ goto yy56;
+ } else {
+- if (yych <= '9') goto yy1394;
++ if (yych <= '9') goto yy1396;
+ if (yych <= ':') goto yy1029;
+ goto yy56;
+ }
+-yy1392:
++yy1394:
+ yych = *++YYCURSOR;
+ if (yych <= '/') {
+ if (yych == '.') goto yy1029;
+ goto yy56;
+ } else {
+- if (yych <= '4') goto yy1394;
++ if (yych <= '4') goto yy1396;
+ if (yych == ':') goto yy1029;
+ goto yy56;
+ }
+-yy1393:
++yy1395:
+ yych = *++YYCURSOR;
+ if (yych == '.') goto yy1029;
+ if (yych == ':') goto yy1029;
+ goto yy56;
+-yy1394:
++yy1396:
+ yych = *++YYCURSOR;
+ if (yych <= '/') {
+ if (yych == '.') goto yy1029;
+ goto yy56;
+ } else {
+- if (yych <= '5') goto yy1395;
++ if (yych <= '5') goto yy1397;
+ if (yych == ':') goto yy1029;
+ goto yy56;
+ }
+-yy1395:
++yy1397:
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy56;
+ if (yych >= ':') goto yy56;
+ yyaccept = 23;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '/') goto yy1032;
+- if (yych <= '5') goto yy1397;
+- if (yych <= '6') goto yy1398;
++ if (yych <= '5') goto yy1399;
++ if (yych <= '6') goto yy1400;
+ goto yy1032;
+-yy1397:
++yy1399:
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy56;
+- if (yych <= '9') goto yy1399;
++ if (yych <= '9') goto yy1401;
+ goto yy56;
+-yy1398:
++yy1400:
+ yych = *++YYCURSOR;
+ if (yych != '0') goto yy56;
+-yy1399:
++yy1401:
+ yych = *++YYCURSOR;
+ goto yy1040;
+-yy1400:
++yy1402:
+ yych = *++YYCURSOR;
+ if (yych <= 'L') {
+ if (yych <= ')') {
+@@ -20099,12 +20294,12 @@ yy1400:
+ if (yych <= '`') goto yy3;
+ goto yy167;
+ } else {
+- if (yych <= 'l') goto yy1401;
++ if (yych <= 'l') goto yy1403;
+ if (yych <= 'z') goto yy167;
+ goto yy3;
+ }
+ }
+-yy1401:
++yy1403:
+ yych = *++YYCURSOR;
+ if (yych <= 'F') {
+ if (yych <= ')') {
+@@ -20120,12 +20315,12 @@ yy1401:
+ if (yych <= '`') goto yy3;
+ goto yy168;
+ } else {
+- if (yych <= 'f') goto yy1402;
++ if (yych <= 'f') goto yy1404;
+ if (yych <= 'z') goto yy168;
+ goto yy3;
+ }
+ }
+-yy1402:
++yy1404:
+ yych = *++YYCURSOR;
+ if (yych <= 'T') {
+ if (yych <= ')') {
+@@ -20141,12 +20336,12 @@ yy1402:
+ if (yych <= '`') goto yy3;
+ goto yy169;
+ } else {
+- if (yych <= 't') goto yy1403;
++ if (yych <= 't') goto yy1405;
+ if (yych <= 'z') goto yy169;
+ goto yy3;
+ }
+ }
+-yy1403:
++yy1405:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'G') {
+@@ -20157,7 +20352,7 @@ yy1403:
+ if (yych == 'h') goto yy1195;
+ goto yy3;
+ }
+-yy1404:
++yy1406:
+ yych = *++YYCURSOR;
+ if (yych <= 'S') {
+ if (yych <= ')') {
+@@ -20173,12 +20368,12 @@ yy1404:
+ if (yych <= '`') goto yy191;
+ goto yy167;
+ } else {
+- if (yych <= 's') goto yy1405;
++ if (yych <= 's') goto yy1407;
+ if (yych <= 'z') goto yy167;
+ goto yy191;
+ }
+ }
+-yy1405:
++yy1407:
+ yych = *++YYCURSOR;
+ if (yych <= 'D') {
+ if (yych <= ')') {
+@@ -20194,12 +20389,12 @@ yy1405:
+ if (yych <= '`') goto yy3;
+ goto yy168;
+ } else {
+- if (yych <= 'd') goto yy1406;
++ if (yych <= 'd') goto yy1408;
+ if (yych <= 'z') goto yy168;
+ goto yy3;
+ }
+ }
+-yy1406:
++yy1408:
+ yych = *++YYCURSOR;
+ if (yych <= 'A') {
+ if (yych == ')') goto yy164;
+@@ -20209,12 +20404,12 @@ yy1406:
+ if (yych <= 'Z') goto yy169;
+ goto yy3;
+ } else {
+- if (yych <= 'a') goto yy1407;
++ if (yych <= 'a') goto yy1409;
+ if (yych <= 'z') goto yy169;
+ goto yy3;
+ }
+ }
+-yy1407:
++yy1409:
+ yych = *++YYCURSOR;
+ if (yych <= 'X') {
+ if (yych == ')') goto yy164;
+@@ -20224,23 +20419,23 @@ yy1407:
+ if (yych == 'y') goto yy197;
+ goto yy3;
+ }
+-yy1408:
++yy1410:
+ yych = *++YYCURSOR;
+ if (yych <= 'A') {
+ if (yych == ')') goto yy164;
+ if (yych <= '@') goto yy3;
+- goto yy1416;
++ goto yy1418;
+ } else {
+ if (yych <= '`') {
+ if (yych <= 'Z') goto yy167;
+ goto yy3;
+ } else {
+- if (yych <= 'a') goto yy1416;
++ if (yych <= 'a') goto yy1418;
+ if (yych <= 'z') goto yy167;
+ goto yy3;
+ }
+ }
+-yy1409:
++yy1411:
+ yych = *++YYCURSOR;
+ if (yych <= 'O') {
+ if (yych <= ')') {
+@@ -20256,12 +20451,12 @@ yy1409:
+ if (yych <= '`') goto yy3;
+ goto yy167;
+ } else {
+- if (yych <= 'o') goto yy1410;
++ if (yych <= 'o') goto yy1412;
+ if (yych <= 'z') goto yy167;
+ goto yy3;
+ }
+ }
+-yy1410:
++yy1412:
+ yych = *++YYCURSOR;
+ if (yych <= 'R') {
+ if (yych <= ')') {
+@@ -20277,12 +20472,12 @@ yy1410:
+ if (yych <= '`') goto yy3;
+ goto yy168;
+ } else {
+- if (yych <= 'r') goto yy1411;
++ if (yych <= 'r') goto yy1413;
+ if (yych <= 'z') goto yy168;
+ goto yy3;
+ }
+ }
+-yy1411:
++yy1413:
+ yych = *++YYCURSOR;
+ if (yych <= 'R') {
+ if (yych <= ')') {
+@@ -20298,28 +20493,29 @@ yy1411:
+ if (yych <= '`') goto yy3;
+ goto yy169;
+ } else {
+- if (yych <= 'r') goto yy1412;
++ if (yych <= 'r') goto yy1414;
+ if (yych <= 'z') goto yy169;
+ goto yy3;
+ }
+ }
+-yy1412:
++yy1414:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'N') {
+ if (yych == ')') goto yy164;
+ goto yy3;
+ } else {
+- if (yych <= 'O') goto yy1413;
++ if (yych <= 'O') goto yy1415;
+ if (yych != 'o') goto yy3;
+ }
+-yy1413:
++yy1415:
+ yych = *++YYCURSOR;
+- if (yych == 'W') goto yy1414;
++ if (yych == 'W') goto yy1416;
+ if (yych != 'w') goto yy56;
+-yy1414:
++yy1416:
+ ++YYCURSOR;
+-yy1415:
++yy1417:
++#line 1013 "ext/date/lib/parse_date.re"
+ {
+ DEBUG_OUTPUT("tomorrow");
+ TIMELIB_INIT;
+@@ -20330,7 +20526,8 @@ yy1415:
+ TIMELIB_DEINIT;
+ return TIMELIB_RELATIVE;
+ }
+-yy1416:
++#line 20530 "ext/date/lib/parse_date.c"
++yy1418:
+ yych = *++YYCURSOR;
+ if (yych <= 'Y') {
+ if (yych <= ')') {
+@@ -20346,21 +20543,22 @@ yy1416:
+ if (yych <= '`') goto yy3;
+ goto yy168;
+ } else {
+- if (yych <= 'y') goto yy1417;
++ if (yych <= 'y') goto yy1419;
+ if (yych <= 'z') goto yy168;
+ goto yy3;
+ }
+ }
+-yy1417:
++yy1419:
+ ++YYCURSOR;
+ if ((yych = *YYCURSOR) <= '@') {
+ if (yych == ')') goto yy164;
+ } else {
+ if (yych <= 'Z') goto yy169;
+- if (yych <= '`') goto yy1418;
++ if (yych <= '`') goto yy1420;
+ if (yych <= 'z') goto yy169;
+ }
+-yy1418:
++yy1420:
++#line 1003 "ext/date/lib/parse_date.re"
+ {
+ DEBUG_OUTPUT("midnight | today");
+ TIMELIB_INIT;
+@@ -20369,7 +20567,8 @@ yy1418:
+ TIMELIB_DEINIT;
+ return TIMELIB_RELATIVE;
+ }
+-yy1419:
++#line 20571 "ext/date/lib/parse_date.c"
++yy1421:
+ yych = *++YYCURSOR;
+ if (yych <= 'S') {
+ if (yych <= '@') {
+@@ -20377,8 +20576,8 @@ yy1419:
+ goto yy3;
+ } else {
+ if (yych <= 'Q') goto yy167;
+- if (yych <= 'R') goto yy1425;
+- goto yy1426;
++ if (yych <= 'R') goto yy1427;
++ goto yy1428;
+ }
+ } else {
+ if (yych <= 'q') {
+@@ -20386,13 +20585,13 @@ yy1419:
+ if (yych <= '`') goto yy3;
+ goto yy167;
+ } else {
+- if (yych <= 'r') goto yy1425;
+- if (yych <= 's') goto yy1426;
++ if (yych <= 'r') goto yy1427;
++ if (yych <= 's') goto yy1428;
+ if (yych <= 'z') goto yy167;
+ goto yy3;
+ }
+ }
+-yy1420:
++yy1422:
+ yych = *++YYCURSOR;
+ if (yych <= 'R') {
+ if (yych <= ')') {
+@@ -20408,12 +20607,12 @@ yy1420:
+ if (yych <= '`') goto yy191;
+ goto yy167;
+ } else {
+- if (yych <= 'r') goto yy1421;
++ if (yych <= 'r') goto yy1423;
+ if (yych <= 'z') goto yy167;
+ goto yy191;
+ }
+ }
+-yy1421:
++yy1423:
+ yych = *++YYCURSOR;
+ if (yych <= 'S') {
+ if (yych <= ')') {
+@@ -20429,12 +20628,12 @@ yy1421:
+ if (yych <= '`') goto yy3;
+ goto yy168;
+ } else {
+- if (yych <= 's') goto yy1422;
++ if (yych <= 's') goto yy1424;
+ if (yych <= 'z') goto yy168;
+ goto yy3;
+ }
+ }
+-yy1422:
++yy1424:
+ yych = *++YYCURSOR;
+ if (yych <= 'D') {
+ if (yych <= ')') {
+@@ -20450,27 +20649,27 @@ yy1422:
+ if (yych <= '`') goto yy3;
+ goto yy169;
+ } else {
+- if (yych <= 'd') goto yy1423;
++ if (yych <= 'd') goto yy1425;
+ if (yych <= 'z') goto yy169;
+ goto yy3;
+ }
+ }
+-yy1423:
++yy1425:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '@') {
+ if (yych == ')') goto yy164;
+ goto yy3;
+ } else {
+- if (yych <= 'A') goto yy1424;
++ if (yych <= 'A') goto yy1426;
+ if (yych != 'a') goto yy3;
+ }
+-yy1424:
++yy1426:
+ yych = *++YYCURSOR;
+ if (yych == 'Y') goto yy197;
+ if (yych == 'y') goto yy197;
+ goto yy56;
+-yy1425:
++yy1427:
+ yych = *++YYCURSOR;
+ if (yych <= 'D') {
+ if (yych <= ')') {
+@@ -20492,7 +20691,7 @@ yy1425:
+ goto yy3;
+ }
+ }
+-yy1426:
++yy1428:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '(') {
+@@ -20514,7 +20713,7 @@ yy1426:
+ goto yy3;
+ }
+ }
+-yy1427:
++yy1429:
+ yych = *++YYCURSOR;
+ if (yych <= 'T') {
+ if (yych <= ')') {
+@@ -20530,12 +20729,12 @@ yy1427:
+ if (yych <= '`') goto yy3;
+ goto yy167;
+ } else {
+- if (yych <= 't') goto yy1428;
++ if (yych <= 't') goto yy1430;
+ if (yych <= 'z') goto yy167;
+ goto yy3;
+ }
+ }
+-yy1428:
++yy1430:
+ yych = *++YYCURSOR;
+ if (yych <= 'H') {
+ if (yych <= ')') {
+@@ -20557,7 +20756,7 @@ yy1428:
+ goto yy3;
+ }
+ }
+-yy1429:
++yy1431:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'M') {
+@@ -20572,7 +20771,7 @@ yy1429:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'N') goto yy1427;
++ if (yych <= 'N') goto yy1429;
+ if (yych <= 'Z') goto yy166;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -20581,13 +20780,13 @@ yy1429:
+ if (yych <= '`') goto yy3;
+ goto yy171;
+ } else {
+- if (yych <= 'n') goto yy1459;
++ if (yych <= 'n') goto yy1461;
+ if (yych <= 'z') goto yy171;
+ goto yy3;
+ }
+ }
+ }
+-yy1430:
++yy1432:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'T') {
+@@ -20604,14 +20803,14 @@ yy1430:
+ if (yych <= '/') goto yy172;
+ goto yy3;
+ } else {
+- if (yych == 'I') goto yy1419;
++ if (yych == 'I') goto yy1421;
+ goto yy166;
+ }
+ }
+ } else {
+ if (yych <= '`') {
+ if (yych <= 'Z') {
+- if (yych <= 'U') goto yy1420;
++ if (yych <= 'U') goto yy1422;
+ goto yy166;
+ } else {
+ if (yych == '_') goto yy172;
+@@ -20619,16 +20818,16 @@ yy1430:
+ }
+ } else {
+ if (yych <= 't') {
+- if (yych == 'i') goto yy1451;
++ if (yych == 'i') goto yy1453;
+ goto yy171;
+ } else {
+- if (yych <= 'u') goto yy1452;
++ if (yych <= 'u') goto yy1454;
+ if (yych <= 'z') goto yy171;
+ goto yy3;
+ }
+ }
+ }
+-yy1431:
++yy1433:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'L') {
+@@ -20645,14 +20844,14 @@ yy1431:
+ if (yych <= '/') goto yy172;
+ goto yy3;
+ } else {
+- if (yych == 'D') goto yy1408;
++ if (yych == 'D') goto yy1410;
+ goto yy166;
+ }
+ }
+ } else {
+ if (yych <= '`') {
+ if (yych <= 'Z') {
+- if (yych <= 'M') goto yy1409;
++ if (yych <= 'M') goto yy1411;
+ goto yy166;
+ } else {
+ if (yych == '_') goto yy172;
+@@ -20660,16 +20859,16 @@ yy1431:
+ }
+ } else {
+ if (yych <= 'l') {
+- if (yych == 'd') goto yy1442;
++ if (yych == 'd') goto yy1444;
+ goto yy171;
+ } else {
+- if (yych <= 'm') goto yy1443;
++ if (yych <= 'm') goto yy1445;
+ if (yych <= 'z') goto yy171;
+ goto yy3;
+ }
+ }
+ }
+-yy1432:
++yy1434:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'D') {
+@@ -20684,7 +20883,7 @@ yy1432:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'E') goto yy1404;
++ if (yych <= 'E') goto yy1406;
+ if (yych <= 'Z') goto yy166;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -20693,13 +20892,13 @@ yy1432:
+ if (yych <= '`') goto yy3;
+ goto yy171;
+ } else {
+- if (yych <= 'e') goto yy1438;
++ if (yych <= 'e') goto yy1440;
+ if (yych <= 'z') goto yy171;
+ goto yy3;
+ }
+ }
+ }
+-yy1433:
++yy1435:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'D') {
+@@ -20714,7 +20913,7 @@ yy1433:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'E') goto yy1400;
++ if (yych <= 'E') goto yy1402;
+ if (yych <= 'Z') goto yy166;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -20723,13 +20922,13 @@ yy1433:
+ if (yych <= '`') goto yy3;
+ goto yy171;
+ } else {
+- if (yych <= 'e') goto yy1434;
++ if (yych <= 'e') goto yy1436;
+ if (yych <= 'z') goto yy171;
+ goto yy3;
+ }
+ }
+ }
+-yy1434:
++yy1436:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'K') {
+@@ -20744,7 +20943,7 @@ yy1434:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'L') goto yy1401;
++ if (yych <= 'L') goto yy1403;
+ if (yych <= 'Z') goto yy167;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -20753,13 +20952,13 @@ yy1434:
+ if (yych <= '`') goto yy3;
+ goto yy175;
+ } else {
+- if (yych <= 'l') goto yy1435;
++ if (yych <= 'l') goto yy1437;
+ if (yych <= 'z') goto yy175;
+ goto yy3;
+ }
+ }
+ }
+-yy1435:
++yy1437:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'E') {
+@@ -20774,7 +20973,7 @@ yy1435:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'F') goto yy1402;
++ if (yych <= 'F') goto yy1404;
+ if (yych <= 'Z') goto yy168;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -20783,13 +20982,13 @@ yy1435:
+ if (yych <= '`') goto yy3;
+ goto yy176;
+ } else {
+- if (yych <= 'f') goto yy1436;
++ if (yych <= 'f') goto yy1438;
+ if (yych <= 'z') goto yy176;
+ goto yy3;
+ }
+ }
+ }
+-yy1436:
++yy1438:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'S') {
+@@ -20804,7 +21003,7 @@ yy1436:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'T') goto yy1403;
++ if (yych <= 'T') goto yy1405;
+ if (yych <= 'Z') goto yy169;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -20813,13 +21012,13 @@ yy1436:
+ if (yych <= '`') goto yy3;
+ goto yy177;
+ } else {
+- if (yych <= 't') goto yy1437;
++ if (yych <= 't') goto yy1439;
+ if (yych <= 'z') goto yy177;
+ goto yy3;
+ }
+ }
+ }
+-yy1437:
++yy1439:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'G') {
+@@ -20842,7 +21041,7 @@ yy1437:
+ goto yy3;
+ }
+ }
+-yy1438:
++yy1440:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'R') {
+@@ -20857,7 +21056,7 @@ yy1438:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'S') goto yy1405;
++ if (yych <= 'S') goto yy1407;
+ if (yych <= 'Z') goto yy167;
+ if (yych <= '^') goto yy191;
+ goto yy172;
+@@ -20866,13 +21065,13 @@ yy1438:
+ if (yych <= '`') goto yy191;
+ goto yy175;
+ } else {
+- if (yych <= 's') goto yy1439;
++ if (yych <= 's') goto yy1441;
+ if (yych <= 'z') goto yy175;
+ goto yy191;
+ }
+ }
+ }
+-yy1439:
++yy1441:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'C') {
+@@ -20887,7 +21086,7 @@ yy1439:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'D') goto yy1406;
++ if (yych <= 'D') goto yy1408;
+ if (yych <= 'Z') goto yy168;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -20896,13 +21095,13 @@ yy1439:
+ if (yych <= '`') goto yy3;
+ goto yy176;
+ } else {
+- if (yych <= 'd') goto yy1440;
++ if (yych <= 'd') goto yy1442;
+ if (yych <= 'z') goto yy176;
+ goto yy3;
+ }
+ }
+ }
+-yy1440:
++yy1442:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '@') {
+@@ -20916,18 +21115,18 @@ yy1440:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'A') goto yy1407;
++ if (yych <= 'A') goto yy1409;
+ if (yych <= 'Z') goto yy169;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+ } else {
+ if (yych <= '`') goto yy3;
+- if (yych <= 'a') goto yy1441;
++ if (yych <= 'a') goto yy1443;
+ if (yych <= 'z') goto yy177;
+ goto yy3;
+ }
+ }
+-yy1441:
++yy1443:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'X') {
+@@ -20950,7 +21149,7 @@ yy1441:
+ goto yy3;
+ }
+ }
+-yy1442:
++yy1444:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '@') {
+@@ -20964,18 +21163,18 @@ yy1442:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'A') goto yy1416;
++ if (yych <= 'A') goto yy1418;
+ if (yych <= 'Z') goto yy167;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+ } else {
+ if (yych <= '`') goto yy3;
+- if (yych <= 'a') goto yy1449;
++ if (yych <= 'a') goto yy1451;
+ if (yych <= 'z') goto yy175;
+ goto yy3;
+ }
+ }
+-yy1443:
++yy1445:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'N') {
+@@ -20990,7 +21189,7 @@ yy1443:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'O') goto yy1410;
++ if (yych <= 'O') goto yy1412;
+ if (yych <= 'Z') goto yy167;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -20999,13 +21198,13 @@ yy1443:
+ if (yych <= '`') goto yy3;
+ goto yy175;
+ } else {
+- if (yych <= 'o') goto yy1444;
++ if (yych <= 'o') goto yy1446;
+ if (yych <= 'z') goto yy175;
+ goto yy3;
+ }
+ }
+ }
+-yy1444:
++yy1446:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'Q') {
+@@ -21020,7 +21219,7 @@ yy1444:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'R') goto yy1411;
++ if (yych <= 'R') goto yy1413;
+ if (yych <= 'Z') goto yy168;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -21029,13 +21228,13 @@ yy1444:
+ if (yych <= '`') goto yy3;
+ goto yy176;
+ } else {
+- if (yych <= 'r') goto yy1445;
++ if (yych <= 'r') goto yy1447;
+ if (yych <= 'z') goto yy176;
+ goto yy3;
+ }
+ }
+ }
+-yy1445:
++yy1447:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'Q') {
+@@ -21050,7 +21249,7 @@ yy1445:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'R') goto yy1412;
++ if (yych <= 'R') goto yy1414;
+ if (yych <= 'Z') goto yy169;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -21059,13 +21258,13 @@ yy1445:
+ if (yych <= '`') goto yy3;
+ goto yy177;
+ } else {
+- if (yych <= 'r') goto yy1446;
++ if (yych <= 'r') goto yy1448;
+ if (yych <= 'z') goto yy177;
+ goto yy3;
+ }
+ }
+ }
+-yy1446:
++yy1448:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'N') {
+@@ -21079,18 +21278,18 @@ yy1446:
+ }
+ } else {
+ if (yych <= '`') {
+- if (yych <= 'O') goto yy1413;
++ if (yych <= 'O') goto yy1415;
+ if (yych == '_') goto yy172;
+ goto yy3;
+ } else {
+- if (yych == 'o') goto yy1447;
++ if (yych == 'o') goto yy1449;
+ if (yych <= 'z') goto yy178;
+ goto yy3;
+ }
+ }
+-yy1447:
++yy1449:
+ yych = *++YYCURSOR;
+- if (yych == 'W') goto yy1414;
++ if (yych == 'W') goto yy1416;
+ if (yych != 'w') goto yy179;
+ yyaccept = 29;
+ yych = *(YYMARKER = ++YYCURSOR);
+@@ -21099,13 +21298,13 @@ yy1447:
+ }
+ if (yych <= '.') {
+ if (yych == '-') goto yy172;
+- goto yy1415;
++ goto yy1417;
+ } else {
+ if (yych <= '/') goto yy172;
+ if (yych == '_') goto yy172;
+- goto yy1415;
++ goto yy1417;
+ }
+-yy1449:
++yy1451:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'X') {
+@@ -21120,7 +21319,7 @@ yy1449:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'Y') goto yy1417;
++ if (yych <= 'Y') goto yy1419;
+ if (yych <= 'Z') goto yy168;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -21129,36 +21328,36 @@ yy1449:
+ if (yych <= '`') goto yy3;
+ goto yy176;
+ } else {
+- if (yych <= 'y') goto yy1450;
++ if (yych <= 'y') goto yy1452;
+ if (yych <= 'z') goto yy176;
+ goto yy3;
+ }
+ }
+ }
+-yy1450:
++yy1452:
+ yyaccept = 30;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '/') {
+ if (yych <= ',') {
+ if (yych == ')') goto yy164;
+- goto yy1418;
++ goto yy1420;
+ } else {
+- if (yych == '.') goto yy1418;
++ if (yych == '.') goto yy1420;
+ goto yy172;
+ }
+ } else {
+ if (yych <= '^') {
+- if (yych <= '@') goto yy1418;
++ if (yych <= '@') goto yy1420;
+ if (yych <= 'Z') goto yy169;
+- goto yy1418;
++ goto yy1420;
+ } else {
+ if (yych <= '_') goto yy172;
+- if (yych <= '`') goto yy1418;
++ if (yych <= '`') goto yy1420;
+ if (yych <= 'z') goto yy177;
+- goto yy1418;
++ goto yy1420;
+ }
+ }
+-yy1451:
++yy1453:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'R') {
+@@ -21173,13 +21372,13 @@ yy1451:
+ } else {
+ if (yych <= '@') goto yy3;
+ if (yych <= 'Q') goto yy167;
+- goto yy1425;
++ goto yy1427;
+ }
+ }
+ } else {
+ if (yych <= '`') {
+ if (yych <= 'Z') {
+- if (yych <= 'S') goto yy1426;
++ if (yych <= 'S') goto yy1428;
+ goto yy167;
+ } else {
+ if (yych == '_') goto yy172;
+@@ -21188,15 +21387,15 @@ yy1451:
+ } else {
+ if (yych <= 'r') {
+ if (yych <= 'q') goto yy175;
+- goto yy1457;
++ goto yy1459;
+ } else {
+- if (yych <= 's') goto yy1458;
++ if (yych <= 's') goto yy1460;
+ if (yych <= 'z') goto yy175;
+ goto yy3;
+ }
+ }
+ }
+-yy1452:
++yy1454:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'Q') {
+@@ -21211,7 +21410,7 @@ yy1452:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'R') goto yy1421;
++ if (yych <= 'R') goto yy1423;
+ if (yych <= 'Z') goto yy167;
+ if (yych <= '^') goto yy191;
+ goto yy172;
+@@ -21220,13 +21419,13 @@ yy1452:
+ if (yych <= '`') goto yy191;
+ goto yy175;
+ } else {
+- if (yych <= 'r') goto yy1453;
++ if (yych <= 'r') goto yy1455;
+ if (yych <= 'z') goto yy175;
+ goto yy191;
+ }
+ }
+ }
+-yy1453:
++yy1455:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'R') {
+@@ -21241,7 +21440,7 @@ yy1453:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'S') goto yy1422;
++ if (yych <= 'S') goto yy1424;
+ if (yych <= 'Z') goto yy168;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -21250,13 +21449,13 @@ yy1453:
+ if (yych <= '`') goto yy3;
+ goto yy176;
+ } else {
+- if (yych <= 's') goto yy1454;
++ if (yych <= 's') goto yy1456;
+ if (yych <= 'z') goto yy176;
+ goto yy3;
+ }
+ }
+ }
+-yy1454:
++yy1456:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'C') {
+@@ -21271,7 +21470,7 @@ yy1454:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'D') goto yy1423;
++ if (yych <= 'D') goto yy1425;
+ if (yych <= 'Z') goto yy169;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -21280,13 +21479,13 @@ yy1454:
+ if (yych <= '`') goto yy3;
+ goto yy177;
+ } else {
+- if (yych <= 'd') goto yy1455;
++ if (yych <= 'd') goto yy1457;
+ if (yych <= 'z') goto yy177;
+ goto yy3;
+ }
+ }
+ }
+-yy1455:
++yy1457:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '@') {
+@@ -21300,22 +21499,22 @@ yy1455:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'A') goto yy1424;
++ if (yych <= 'A') goto yy1426;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+ } else {
+ if (yych <= '`') goto yy3;
+- if (yych <= 'a') goto yy1456;
++ if (yych <= 'a') goto yy1458;
+ if (yych <= 'z') goto yy178;
+ goto yy3;
+ }
+ }
+-yy1456:
++yy1458:
+ yych = *++YYCURSOR;
+ if (yych == 'Y') goto yy197;
+ if (yych == 'y') goto yy210;
+ goto yy179;
+-yy1457:
++yy1459:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'C') {
+@@ -21345,7 +21544,7 @@ yy1457:
+ }
+ }
+ }
+-yy1458:
++yy1460:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '-') {
+@@ -21374,7 +21573,7 @@ yy1458:
+ }
+ }
+ }
+-yy1459:
++yy1461:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'S') {
+@@ -21389,7 +21588,7 @@ yy1459:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'T') goto yy1428;
++ if (yych <= 'T') goto yy1430;
+ if (yych <= 'Z') goto yy167;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -21398,13 +21597,13 @@ yy1459:
+ if (yych <= '`') goto yy3;
+ goto yy175;
+ } else {
+- if (yych <= 't') goto yy1460;
++ if (yych <= 't') goto yy1462;
+ if (yych <= 'z') goto yy175;
+ goto yy3;
+ }
+ }
+ }
+-yy1460:
++yy1462:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'G') {
+@@ -21434,30 +21633,30 @@ yy1460:
+ }
+ }
+ }
+-yy1461:
++yy1463:
+ yych = *++YYCURSOR;
+ if (yych <= 'Y') {
+ if (yych <= '@') {
+ if (yych == ')') goto yy164;
+ goto yy3;
+ } else {
+- if (yych == 'R') goto yy1473;
++ if (yych == 'R') goto yy1475;
+ if (yych <= 'X') goto yy166;
+- goto yy1474;
++ goto yy1476;
+ }
+ } else {
+ if (yych <= 'r') {
+ if (yych <= 'Z') goto yy166;
+ if (yych <= '`') goto yy3;
+ if (yych <= 'q') goto yy166;
+- goto yy1473;
++ goto yy1475;
+ } else {
+- if (yych == 'y') goto yy1474;
++ if (yych == 'y') goto yy1476;
+ if (yych <= 'z') goto yy166;
+ goto yy3;
+ }
+ }
+-yy1462:
++yy1464:
+ yych = *++YYCURSOR;
+ if (yych <= 'D') {
+ if (yych <= ')') {
+@@ -21466,7 +21665,7 @@ yy1462:
+ } else {
+ if (yych <= '@') goto yy3;
+ if (yych <= 'C') goto yy166;
+- goto yy1467;
++ goto yy1469;
+ }
+ } else {
+ if (yych <= 'c') {
+@@ -21474,12 +21673,12 @@ yy1462:
+ if (yych <= '`') goto yy3;
+ goto yy166;
+ } else {
+- if (yych <= 'd') goto yy1467;
++ if (yych <= 'd') goto yy1469;
+ if (yych <= 'z') goto yy166;
+ goto yy3;
+ }
+ }
+-yy1463:
++yy1465:
+ yych = *++YYCURSOR;
+ if (yych <= 'N') {
+ if (yych <= ')') {
+@@ -21495,12 +21694,12 @@ yy1463:
+ if (yych <= '`') goto yy3;
+ goto yy166;
+ } else {
+- if (yych <= 'n') goto yy1464;
++ if (yych <= 'n') goto yy1466;
+ if (yych <= 'z') goto yy166;
+ goto yy3;
+ }
+ }
+-yy1464:
++yy1466:
+ yych = *++YYCURSOR;
+ if (yych <= 'D') {
+ if (yych <= ')') {
+@@ -21516,12 +21715,12 @@ yy1464:
+ if (yych <= '`') goto yy191;
+ goto yy167;
+ } else {
+- if (yych <= 'd') goto yy1465;
++ if (yych <= 'd') goto yy1467;
+ if (yych <= 'z') goto yy167;
+ goto yy191;
+ }
+ }
+-yy1465:
++yy1467:
+ yych = *++YYCURSOR;
+ if (yych <= 'A') {
+ if (yych == ')') goto yy164;
+@@ -21531,12 +21730,12 @@ yy1465:
+ if (yych <= 'Z') goto yy168;
+ goto yy3;
+ } else {
+- if (yych <= 'a') goto yy1466;
++ if (yych <= 'a') goto yy1468;
+ if (yych <= 'z') goto yy168;
+ goto yy3;
+ }
+ }
+-yy1466:
++yy1468:
+ yych = *++YYCURSOR;
+ if (yych <= 'Y') {
+ if (yych <= ')') {
+@@ -21558,7 +21757,7 @@ yy1466:
+ goto yy3;
+ }
+ }
+-yy1467:
++yy1469:
+ yych = *++YYCURSOR;
+ if (yych <= 'N') {
+ if (yych <= ')') {
+@@ -21574,12 +21773,12 @@ yy1467:
+ if (yych <= '`') goto yy3;
+ goto yy167;
+ } else {
+- if (yych <= 'n') goto yy1468;
++ if (yych <= 'n') goto yy1470;
+ if (yych <= 'z') goto yy167;
+ goto yy3;
+ }
+ }
+-yy1468:
++yy1470:
+ yych = *++YYCURSOR;
+ if (yych <= 'I') {
+ if (yych <= ')') {
+@@ -21595,12 +21794,12 @@ yy1468:
+ if (yych <= '`') goto yy3;
+ goto yy168;
+ } else {
+- if (yych <= 'i') goto yy1469;
++ if (yych <= 'i') goto yy1471;
+ if (yych <= 'z') goto yy168;
+ goto yy3;
+ }
+ }
+-yy1469:
++yy1471:
+ yych = *++YYCURSOR;
+ if (yych <= 'G') {
+ if (yych <= ')') {
+@@ -21616,29 +21815,29 @@ yy1469:
+ if (yych <= '`') goto yy3;
+ goto yy169;
+ } else {
+- if (yych <= 'g') goto yy1470;
++ if (yych <= 'g') goto yy1472;
+ if (yych <= 'z') goto yy169;
+ goto yy3;
+ }
+ }
+-yy1470:
++yy1472:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'G') {
+ if (yych == ')') goto yy164;
+ goto yy3;
+ } else {
+- if (yych <= 'H') goto yy1471;
++ if (yych <= 'H') goto yy1473;
+ if (yych != 'h') goto yy3;
+ }
+-yy1471:
++yy1473:
+ yych = *++YYCURSOR;
+- if (yych == 'T') goto yy1472;
++ if (yych == 'T') goto yy1474;
+ if (yych != 't') goto yy56;
+-yy1472:
++yy1474:
+ yych = *++YYCURSOR;
+- goto yy1418;
+-yy1473:
++ goto yy1420;
++yy1475:
+ yyaccept = 5;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '/') {
+@@ -21666,7 +21865,7 @@ yy1473:
+ if (yych <= '9') goto yy220;
+ goto yy218;
+ } else {
+- if (yych == 'C') goto yy1475;
++ if (yych == 'C') goto yy1477;
+ goto yy167;
+ }
+ } else {
+@@ -21674,13 +21873,13 @@ yy1473:
+ if (yych <= '`') goto yy218;
+ goto yy167;
+ } else {
+- if (yych <= 'c') goto yy1475;
++ if (yych <= 'c') goto yy1477;
+ if (yych <= 'z') goto yy167;
+ goto yy218;
+ }
+ }
+ }
+-yy1474:
++yy1476:
+ yyaccept = 5;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '-') {
+@@ -21705,7 +21904,7 @@ yy1474:
+ goto yy218;
+ }
+ }
+-yy1475:
++yy1477:
+ yych = *++YYCURSOR;
+ if (yych <= 'H') {
+ if (yych <= ')') {
+@@ -21727,7 +21926,7 @@ yy1475:
+ goto yy3;
+ }
+ }
+-yy1476:
++yy1478:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'X') {
+@@ -21744,14 +21943,14 @@ yy1476:
+ if (yych <= '/') goto yy172;
+ goto yy3;
+ } else {
+- if (yych == 'R') goto yy1473;
++ if (yych == 'R') goto yy1475;
+ goto yy166;
+ }
+ }
+ } else {
+ if (yych <= '`') {
+ if (yych <= 'Z') {
+- if (yych <= 'Y') goto yy1474;
++ if (yych <= 'Y') goto yy1476;
+ goto yy166;
+ } else {
+ if (yych == '_') goto yy172;
+@@ -21759,16 +21958,16 @@ yy1476:
+ }
+ } else {
+ if (yych <= 'x') {
+- if (yych == 'r') goto yy1488;
++ if (yych == 'r') goto yy1490;
+ goto yy171;
+ } else {
+- if (yych <= 'y') goto yy1489;
++ if (yych <= 'y') goto yy1491;
+ if (yych <= 'z') goto yy171;
+ goto yy3;
+ }
+ }
+ }
+-yy1477:
++yy1479:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'C') {
+@@ -21783,7 +21982,7 @@ yy1477:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'D') goto yy1467;
++ if (yych <= 'D') goto yy1469;
+ if (yych <= 'Z') goto yy166;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -21792,13 +21991,13 @@ yy1477:
+ if (yych <= '`') goto yy3;
+ goto yy171;
+ } else {
+- if (yych <= 'd') goto yy1482;
++ if (yych <= 'd') goto yy1484;
+ if (yych <= 'z') goto yy171;
+ goto yy3;
+ }
+ }
+ }
+-yy1478:
++yy1480:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'M') {
+@@ -21813,7 +22012,7 @@ yy1478:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'N') goto yy1464;
++ if (yych <= 'N') goto yy1466;
+ if (yych <= 'Z') goto yy166;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -21822,13 +22021,13 @@ yy1478:
+ if (yych <= '`') goto yy3;
+ goto yy171;
+ } else {
+- if (yych <= 'n') goto yy1479;
++ if (yych <= 'n') goto yy1481;
+ if (yych <= 'z') goto yy171;
+ goto yy3;
+ }
+ }
+ }
+-yy1479:
++yy1481:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'C') {
+@@ -21843,7 +22042,7 @@ yy1479:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'D') goto yy1465;
++ if (yych <= 'D') goto yy1467;
+ if (yych <= 'Z') goto yy167;
+ if (yych <= '^') goto yy191;
+ goto yy172;
+@@ -21852,13 +22051,13 @@ yy1479:
+ if (yych <= '`') goto yy191;
+ goto yy175;
+ } else {
+- if (yych <= 'd') goto yy1480;
++ if (yych <= 'd') goto yy1482;
+ if (yych <= 'z') goto yy175;
+ goto yy191;
+ }
+ }
+ }
+-yy1480:
++yy1482:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '@') {
+@@ -21872,18 +22071,18 @@ yy1480:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'A') goto yy1466;
++ if (yych <= 'A') goto yy1468;
+ if (yych <= 'Z') goto yy168;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+ } else {
+ if (yych <= '`') goto yy3;
+- if (yych <= 'a') goto yy1481;
++ if (yych <= 'a') goto yy1483;
+ if (yych <= 'z') goto yy176;
+ goto yy3;
+ }
+ }
+-yy1481:
++yy1483:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'X') {
+@@ -21913,7 +22112,7 @@ yy1481:
+ }
+ }
+ }
+-yy1482:
++yy1484:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'M') {
+@@ -21928,7 +22127,7 @@ yy1482:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'N') goto yy1468;
++ if (yych <= 'N') goto yy1470;
+ if (yych <= 'Z') goto yy167;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -21937,13 +22136,13 @@ yy1482:
+ if (yych <= '`') goto yy3;
+ goto yy175;
+ } else {
+- if (yych <= 'n') goto yy1483;
++ if (yych <= 'n') goto yy1485;
+ if (yych <= 'z') goto yy175;
+ goto yy3;
+ }
+ }
+ }
+-yy1483:
++yy1485:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'H') {
+@@ -21958,7 +22157,7 @@ yy1483:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'I') goto yy1469;
++ if (yych <= 'I') goto yy1471;
+ if (yych <= 'Z') goto yy168;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -21967,13 +22166,13 @@ yy1483:
+ if (yych <= '`') goto yy3;
+ goto yy176;
+ } else {
+- if (yych <= 'i') goto yy1484;
++ if (yych <= 'i') goto yy1486;
+ if (yych <= 'z') goto yy176;
+ goto yy3;
+ }
+ }
+ }
+-yy1484:
++yy1486:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'F') {
+@@ -21988,7 +22187,7 @@ yy1484:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'G') goto yy1470;
++ if (yych <= 'G') goto yy1472;
+ if (yych <= 'Z') goto yy169;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -21997,13 +22196,13 @@ yy1484:
+ if (yych <= '`') goto yy3;
+ goto yy177;
+ } else {
+- if (yych <= 'g') goto yy1485;
++ if (yych <= 'g') goto yy1487;
+ if (yych <= 'z') goto yy177;
+ goto yy3;
+ }
+ }
+ }
+-yy1485:
++yy1487:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'G') {
+@@ -22017,18 +22216,18 @@ yy1485:
+ }
+ } else {
+ if (yych <= '`') {
+- if (yych <= 'H') goto yy1471;
++ if (yych <= 'H') goto yy1473;
+ if (yych == '_') goto yy172;
+ goto yy3;
+ } else {
+- if (yych == 'h') goto yy1486;
++ if (yych == 'h') goto yy1488;
+ if (yych <= 'z') goto yy178;
+ goto yy3;
+ }
+ }
+-yy1486:
++yy1488:
+ yych = *++YYCURSOR;
+- if (yych == 'T') goto yy1472;
++ if (yych == 'T') goto yy1474;
+ if (yych != 't') goto yy179;
+ yyaccept = 30;
+ yych = *(YYMARKER = ++YYCURSOR);
+@@ -22037,13 +22236,13 @@ yy1486:
+ }
+ if (yych <= '.') {
+ if (yych == '-') goto yy172;
+- goto yy1418;
++ goto yy1420;
+ } else {
+ if (yych <= '/') goto yy172;
+ if (yych == '_') goto yy172;
+- goto yy1418;
++ goto yy1420;
+ }
+-yy1488:
++yy1490:
+ yyaccept = 5;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '9') {
+@@ -22071,7 +22270,7 @@ yy1488:
+ if (yych <= '@') goto yy218;
+ goto yy167;
+ } else {
+- if (yych <= 'C') goto yy1475;
++ if (yych <= 'C') goto yy1477;
+ if (yych <= 'Z') goto yy167;
+ goto yy218;
+ }
+@@ -22081,13 +22280,13 @@ yy1488:
+ if (yych <= '`') goto yy218;
+ goto yy175;
+ } else {
+- if (yych <= 'c') goto yy1490;
++ if (yych <= 'c') goto yy1492;
+ if (yych <= 'z') goto yy175;
+ goto yy218;
+ }
+ }
+ }
+-yy1489:
++yy1491:
+ yyaccept = 5;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '.') {
+@@ -22122,7 +22321,7 @@ yy1489:
+ }
+ }
+ }
+-yy1490:
++yy1492:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'G') {
+@@ -22152,7 +22351,7 @@ yy1490:
+ }
+ }
+ }
+-yy1491:
++yy1493:
+ yych = *++YYCURSOR;
+ if (yych <= 'W') {
+ if (yych <= 'N') {
+@@ -22160,29 +22359,29 @@ yy1491:
+ if (yych <= '@') goto yy3;
+ goto yy166;
+ } else {
+- if (yych <= 'O') goto yy1499;
++ if (yych <= 'O') goto yy1501;
+ if (yych <= 'U') goto yy166;
+- if (yych <= 'V') goto yy1500;
+- goto yy1497;
++ if (yych <= 'V') goto yy1502;
++ goto yy1499;
+ }
+ } else {
+ if (yych <= 'o') {
+ if (yych <= 'Z') goto yy166;
+ if (yych <= '`') goto yy3;
+ if (yych <= 'n') goto yy166;
+- goto yy1499;
++ goto yy1501;
+ } else {
+ if (yych <= 'v') {
+ if (yych <= 'u') goto yy166;
+- goto yy1500;
++ goto yy1502;
+ } else {
+- if (yych <= 'w') goto yy1497;
++ if (yych <= 'w') goto yy1499;
+ if (yych <= 'z') goto yy166;
+ goto yy3;
+ }
+ }
+ }
+-yy1492:
++yy1494:
+ yych = *++YYCURSOR;
+ if (yych <= 'X') {
+ if (yych <= ')') {
+@@ -22191,7 +22390,7 @@ yy1492:
+ } else {
+ if (yych <= '@') goto yy3;
+ if (yych <= 'W') goto yy166;
+- goto yy1496;
++ goto yy1498;
+ }
+ } else {
+ if (yych <= 'w') {
+@@ -22199,12 +22398,12 @@ yy1492:
+ if (yych <= '`') goto yy3;
+ goto yy166;
+ } else {
+- if (yych <= 'x') goto yy1496;
++ if (yych <= 'x') goto yy1498;
+ if (yych <= 'z') goto yy166;
+ goto yy3;
+ }
+ }
+-yy1493:
++yy1495:
+ yych = *++YYCURSOR;
+ if (yych <= 'N') {
+ if (yych <= ')') {
+@@ -22220,12 +22419,12 @@ yy1493:
+ if (yych <= '`') goto yy3;
+ goto yy166;
+ } else {
+- if (yych <= 'n') goto yy1494;
++ if (yych <= 'n') goto yy1496;
+ if (yych <= 'z') goto yy166;
+ goto yy3;
+ }
+ }
+-yy1494:
++yy1496:
+ yych = *++YYCURSOR;
+ if (yych <= 'T') {
+ if (yych <= ')') {
+@@ -22241,12 +22440,12 @@ yy1494:
+ if (yych <= '`') goto yy3;
+ goto yy167;
+ } else {
+- if (yych <= 't') goto yy1495;
++ if (yych <= 't') goto yy1497;
+ if (yych <= 'z') goto yy167;
+ goto yy3;
+ }
+ }
+-yy1495:
++yy1497:
+ yych = *++YYCURSOR;
+ if (yych <= 'H') {
+ if (yych <= ')') {
+@@ -22268,7 +22467,7 @@ yy1495:
+ goto yy3;
+ }
+ }
+-yy1496:
++yy1498:
+ yych = *++YYCURSOR;
+ if (yych <= 'T') {
+ if (yych <= ')') {
+@@ -22277,7 +22476,7 @@ yy1496:
+ } else {
+ if (yych <= '@') goto yy3;
+ if (yych <= 'S') goto yy167;
+- goto yy1426;
++ goto yy1428;
+ }
+ } else {
+ if (yych <= 's') {
+@@ -22285,21 +22484,22 @@ yy1496:
+ if (yych <= '`') goto yy3;
+ goto yy167;
+ } else {
+- if (yych <= 't') goto yy1426;
++ if (yych <= 't') goto yy1428;
+ if (yych <= 'z') goto yy167;
+ goto yy3;
+ }
+ }
+-yy1497:
++yy1499:
+ ++YYCURSOR;
+ if ((yych = *YYCURSOR) <= '@') {
+ if (yych == ')') goto yy164;
+ } else {
+ if (yych <= 'Z') goto yy167;
+- if (yych <= '`') goto yy1498;
++ if (yych <= '`') goto yy1500;
+ if (yych <= 'z') goto yy167;
+ }
+-yy1498:
++yy1500:
++#line 982 "ext/date/lib/parse_date.re"
+ {
+ DEBUG_OUTPUT("now");
+ TIMELIB_INIT;
+@@ -22307,7 +22507,8 @@ yy1498:
+ TIMELIB_DEINIT;
+ return TIMELIB_RELATIVE;
+ }
+-yy1499:
++#line 22511 "ext/date/lib/parse_date.c"
++yy1501:
+ yych = *++YYCURSOR;
+ if (yych <= 'N') {
+ if (yych <= ')') {
+@@ -22316,7 +22517,7 @@ yy1499:
+ } else {
+ if (yych <= '@') goto yy3;
+ if (yych <= 'M') goto yy167;
+- goto yy1505;
++ goto yy1507;
+ }
+ } else {
+ if (yych <= 'm') {
+@@ -22324,12 +22525,12 @@ yy1499:
+ if (yych <= '`') goto yy3;
+ goto yy167;
+ } else {
+- if (yych <= 'n') goto yy1505;
++ if (yych <= 'n') goto yy1507;
+ if (yych <= 'z') goto yy167;
+ goto yy3;
+ }
+ }
+-yy1500:
++yy1502:
+ yyaccept = 5;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '/') {
+@@ -22364,13 +22565,13 @@ yy1500:
+ if (yych <= '`') goto yy218;
+ goto yy167;
+ } else {
+- if (yych <= 'e') goto yy1501;
++ if (yych <= 'e') goto yy1503;
+ if (yych <= 'z') goto yy167;
+ goto yy218;
+ }
+ }
+ }
+-yy1501:
++yy1503:
+ yych = *++YYCURSOR;
+ if (yych <= 'M') {
+ if (yych <= ')') {
+@@ -22386,12 +22587,12 @@ yy1501:
+ if (yych <= '`') goto yy3;
+ goto yy168;
+ } else {
+- if (yych <= 'm') goto yy1502;
++ if (yych <= 'm') goto yy1504;
+ if (yych <= 'z') goto yy168;
+ goto yy3;
+ }
+ }
+-yy1502:
++yy1504:
+ yych = *++YYCURSOR;
+ if (yych <= 'B') {
+ if (yych <= ')') {
+@@ -22407,36 +22608,37 @@ yy1502:
+ if (yych <= '`') goto yy3;
+ goto yy169;
+ } else {
+- if (yych <= 'b') goto yy1503;
++ if (yych <= 'b') goto yy1505;
+ if (yych <= 'z') goto yy169;
+ goto yy3;
+ }
+ }
+-yy1503:
++yy1505:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'D') {
+ if (yych == ')') goto yy164;
+ goto yy3;
+ } else {
+- if (yych <= 'E') goto yy1504;
++ if (yych <= 'E') goto yy1506;
+ if (yych != 'e') goto yy3;
+ }
+-yy1504:
++yy1506:
+ yych = *++YYCURSOR;
+ if (yych == 'R') goto yy229;
+ if (yych == 'r') goto yy229;
+ goto yy56;
+-yy1505:
++yy1507:
+ ++YYCURSOR;
+ if ((yych = *YYCURSOR) <= '@') {
+ if (yych == ')') goto yy164;
+ } else {
+ if (yych <= 'Z') goto yy168;
+- if (yych <= '`') goto yy1506;
++ if (yych <= '`') goto yy1508;
+ if (yych <= 'z') goto yy168;
+ }
+-yy1506:
++yy1508:
++#line 991 "ext/date/lib/parse_date.re"
+ {
+ DEBUG_OUTPUT("noon");
+ TIMELIB_INIT;
+@@ -22447,7 +22649,8 @@ yy1506:
+ TIMELIB_DEINIT;
+ return TIMELIB_RELATIVE;
+ }
+-yy1507:
++#line 22653 "ext/date/lib/parse_date.c"
++yy1509:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'V') {
+@@ -22465,15 +22668,15 @@ yy1507:
+ if (yych <= '@') goto yy3;
+ goto yy166;
+ } else {
+- if (yych <= 'O') goto yy1499;
++ if (yych <= 'O') goto yy1501;
+ if (yych <= 'U') goto yy166;
+- goto yy1500;
++ goto yy1502;
+ }
+ }
+ } else {
+ if (yych <= 'n') {
+ if (yych <= '^') {
+- if (yych <= 'W') goto yy1497;
++ if (yych <= 'W') goto yy1499;
+ if (yych <= 'Z') goto yy166;
+ goto yy3;
+ } else {
+@@ -22483,17 +22686,17 @@ yy1507:
+ }
+ } else {
+ if (yych <= 'v') {
+- if (yych <= 'o') goto yy1514;
++ if (yych <= 'o') goto yy1516;
+ if (yych <= 'u') goto yy171;
+- goto yy1515;
++ goto yy1517;
+ } else {
+- if (yych <= 'w') goto yy1513;
++ if (yych <= 'w') goto yy1515;
+ if (yych <= 'z') goto yy171;
+ goto yy3;
+ }
+ }
+ }
+-yy1508:
++yy1510:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'W') {
+@@ -22508,7 +22711,7 @@ yy1508:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'X') goto yy1496;
++ if (yych <= 'X') goto yy1498;
+ if (yych <= 'Z') goto yy166;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -22517,13 +22720,13 @@ yy1508:
+ if (yych <= '`') goto yy3;
+ goto yy171;
+ } else {
+- if (yych <= 'x') goto yy1512;
++ if (yych <= 'x') goto yy1514;
+ if (yych <= 'z') goto yy171;
+ goto yy3;
+ }
+ }
+ }
+-yy1509:
++yy1511:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'M') {
+@@ -22538,7 +22741,7 @@ yy1509:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'N') goto yy1494;
++ if (yych <= 'N') goto yy1496;
+ if (yych <= 'Z') goto yy166;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -22547,13 +22750,13 @@ yy1509:
+ if (yych <= '`') goto yy3;
+ goto yy171;
+ } else {
+- if (yych <= 'n') goto yy1510;
++ if (yych <= 'n') goto yy1512;
+ if (yych <= 'z') goto yy171;
+ goto yy3;
+ }
+ }
+ }
+-yy1510:
++yy1512:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'S') {
+@@ -22568,7 +22771,7 @@ yy1510:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'T') goto yy1495;
++ if (yych <= 'T') goto yy1497;
+ if (yych <= 'Z') goto yy167;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -22577,13 +22780,13 @@ yy1510:
+ if (yych <= '`') goto yy3;
+ goto yy175;
+ } else {
+- if (yych <= 't') goto yy1511;
++ if (yych <= 't') goto yy1513;
+ if (yych <= 'z') goto yy175;
+ goto yy3;
+ }
+ }
+ }
+-yy1511:
++yy1513:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'G') {
+@@ -22613,7 +22816,7 @@ yy1511:
+ }
+ }
+ }
+-yy1512:
++yy1514:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'S') {
+@@ -22628,7 +22831,7 @@ yy1512:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'T') goto yy1426;
++ if (yych <= 'T') goto yy1428;
+ if (yych <= 'Z') goto yy167;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -22637,36 +22840,36 @@ yy1512:
+ if (yych <= '`') goto yy3;
+ goto yy175;
+ } else {
+- if (yych <= 't') goto yy1458;
++ if (yych <= 't') goto yy1460;
+ if (yych <= 'z') goto yy175;
+ goto yy3;
+ }
+ }
+ }
+-yy1513:
++yy1515:
+ yyaccept = 31;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '/') {
+ if (yych <= ',') {
+ if (yych == ')') goto yy164;
+- goto yy1498;
++ goto yy1500;
+ } else {
+- if (yych == '.') goto yy1498;
++ if (yych == '.') goto yy1500;
+ goto yy172;
+ }
+ } else {
+ if (yych <= '^') {
+- if (yych <= '@') goto yy1498;
++ if (yych <= '@') goto yy1500;
+ if (yych <= 'Z') goto yy167;
+- goto yy1498;
++ goto yy1500;
+ } else {
+ if (yych <= '_') goto yy172;
+- if (yych <= '`') goto yy1498;
++ if (yych <= '`') goto yy1500;
+ if (yych <= 'z') goto yy175;
+- goto yy1498;
++ goto yy1500;
+ }
+ }
+-yy1514:
++yy1516:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'M') {
+@@ -22681,7 +22884,7 @@ yy1514:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'N') goto yy1505;
++ if (yych <= 'N') goto yy1507;
+ if (yych <= 'Z') goto yy167;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -22690,13 +22893,13 @@ yy1514:
+ if (yych <= '`') goto yy3;
+ goto yy175;
+ } else {
+- if (yych <= 'n') goto yy1520;
++ if (yych <= 'n') goto yy1522;
+ if (yych <= 'z') goto yy175;
+ goto yy3;
+ }
+ }
+ }
+-yy1515:
++yy1517:
+ yyaccept = 5;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '9') {
+@@ -22724,7 +22927,7 @@ yy1515:
+ if (yych <= '@') goto yy218;
+ goto yy167;
+ } else {
+- if (yych <= 'E') goto yy1501;
++ if (yych <= 'E') goto yy1503;
+ if (yych <= 'Z') goto yy167;
+ goto yy218;
+ }
+@@ -22734,13 +22937,13 @@ yy1515:
+ if (yych <= '`') goto yy218;
+ goto yy175;
+ } else {
+- if (yych <= 'e') goto yy1516;
++ if (yych <= 'e') goto yy1518;
+ if (yych <= 'z') goto yy175;
+ goto yy218;
+ }
+ }
+ }
+-yy1516:
++yy1518:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'L') {
+@@ -22755,7 +22958,7 @@ yy1516:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'M') goto yy1502;
++ if (yych <= 'M') goto yy1504;
+ if (yych <= 'Z') goto yy168;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -22764,13 +22967,13 @@ yy1516:
+ if (yych <= '`') goto yy3;
+ goto yy176;
+ } else {
+- if (yych <= 'm') goto yy1517;
++ if (yych <= 'm') goto yy1519;
+ if (yych <= 'z') goto yy176;
+ goto yy3;
+ }
+ }
+ }
+-yy1517:
++yy1519:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'A') {
+@@ -22785,7 +22988,7 @@ yy1517:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'B') goto yy1503;
++ if (yych <= 'B') goto yy1505;
+ if (yych <= 'Z') goto yy169;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -22794,13 +22997,13 @@ yy1517:
+ if (yych <= '`') goto yy3;
+ goto yy177;
+ } else {
+- if (yych <= 'b') goto yy1518;
++ if (yych <= 'b') goto yy1520;
+ if (yych <= 'z') goto yy177;
+ goto yy3;
+ }
+ }
+ }
+-yy1518:
++yy1520:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'D') {
+@@ -22814,44 +23017,44 @@ yy1518:
+ }
+ } else {
+ if (yych <= '`') {
+- if (yych <= 'E') goto yy1504;
++ if (yych <= 'E') goto yy1506;
+ if (yych == '_') goto yy172;
+ goto yy3;
+ } else {
+- if (yych == 'e') goto yy1519;
++ if (yych == 'e') goto yy1521;
+ if (yych <= 'z') goto yy178;
+ goto yy3;
+ }
+ }
+-yy1519:
++yy1521:
+ yych = *++YYCURSOR;
+ if (yych == 'R') goto yy229;
+ if (yych == 'r') goto yy341;
+ goto yy179;
+-yy1520:
++yy1522:
+ yyaccept = 32;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '/') {
+ if (yych <= ',') {
+ if (yych == ')') goto yy164;
+- goto yy1506;
++ goto yy1508;
+ } else {
+- if (yych == '.') goto yy1506;
++ if (yych == '.') goto yy1508;
+ goto yy172;
+ }
+ } else {
+ if (yych <= '^') {
+- if (yych <= '@') goto yy1506;
++ if (yych <= '@') goto yy1508;
+ if (yych <= 'Z') goto yy168;
+- goto yy1506;
++ goto yy1508;
+ } else {
+ if (yych <= '_') goto yy172;
+- if (yych <= '`') goto yy1506;
++ if (yych <= '`') goto yy1508;
+ if (yych <= 'z') goto yy176;
+- goto yy1506;
++ goto yy1508;
+ }
+ }
+-yy1521:
++yy1523:
+ yych = *++YYCURSOR;
+ if (yych <= 'S') {
+ if (yych <= ')') {
+@@ -22867,12 +23070,12 @@ yy1521:
+ if (yych <= '`') goto yy3;
+ goto yy166;
+ } else {
+- if (yych <= 's') goto yy1522;
++ if (yych <= 's') goto yy1524;
+ if (yych <= 'z') goto yy166;
+ goto yy3;
+ }
+ }
+-yy1522:
++yy1524:
+ yych = *++YYCURSOR;
+ if (yych <= 'T') {
+ if (yych <= ')') {
+@@ -22888,12 +23091,12 @@ yy1522:
+ if (yych <= '`') goto yy3;
+ goto yy167;
+ } else {
+- if (yych <= 't') goto yy1523;
++ if (yych <= 't') goto yy1525;
+ if (yych <= 'z') goto yy167;
+ goto yy3;
+ }
+ }
+-yy1523:
++yy1525:
+ yych = *++YYCURSOR;
+ if (yych <= 'E') {
+ if (yych <= ')') {
+@@ -22909,12 +23112,12 @@ yy1523:
+ if (yych <= '`') goto yy3;
+ goto yy168;
+ } else {
+- if (yych <= 'e') goto yy1524;
++ if (yych <= 'e') goto yy1526;
+ if (yych <= 'z') goto yy168;
+ goto yy3;
+ }
+ }
+-yy1524:
++yy1526:
+ yych = *++YYCURSOR;
+ if (yych <= 'R') {
+ if (yych <= ')') {
+@@ -22930,32 +23133,33 @@ yy1524:
+ if (yych <= '`') goto yy3;
+ goto yy169;
+ } else {
+- if (yych <= 'r') goto yy1525;
++ if (yych <= 'r') goto yy1527;
+ if (yych <= 'z') goto yy169;
+ goto yy3;
+ }
+ }
+-yy1525:
++yy1527:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'C') {
+ if (yych == ')') goto yy164;
+ goto yy3;
+ } else {
+- if (yych <= 'D') goto yy1526;
++ if (yych <= 'D') goto yy1528;
+ if (yych != 'd') goto yy3;
+ }
+-yy1526:
++yy1528:
+ yych = *++YYCURSOR;
+- if (yych == 'A') goto yy1527;
++ if (yych == 'A') goto yy1529;
+ if (yych != 'a') goto yy56;
+-yy1527:
++yy1529:
+ yych = *++YYCURSOR;
+- if (yych == 'Y') goto yy1528;
++ if (yych == 'Y') goto yy1530;
+ if (yych != 'y') goto yy56;
+-yy1528:
++yy1530:
+ ++YYCURSOR;
+-yy1529:
++yy1531:
++#line 970 "ext/date/lib/parse_date.re"
+ {
+ DEBUG_OUTPUT("yesterday");
+ TIMELIB_INIT;
+@@ -22966,7 +23170,8 @@ yy1529:
+ TIMELIB_DEINIT;
+ return TIMELIB_RELATIVE;
+ }
+-yy1530:
++#line 23174 "ext/date/lib/parse_date.c"
++yy1532:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'R') {
+@@ -22981,7 +23186,7 @@ yy1530:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'S') goto yy1522;
++ if (yych <= 'S') goto yy1524;
+ if (yych <= 'Z') goto yy166;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -22990,13 +23195,13 @@ yy1530:
+ if (yych <= '`') goto yy3;
+ goto yy171;
+ } else {
+- if (yych <= 's') goto yy1531;
++ if (yych <= 's') goto yy1533;
+ if (yych <= 'z') goto yy171;
+ goto yy3;
+ }
+ }
+ }
+-yy1531:
++yy1533:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'S') {
+@@ -23011,7 +23216,7 @@ yy1531:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'T') goto yy1523;
++ if (yych <= 'T') goto yy1525;
+ if (yych <= 'Z') goto yy167;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -23020,13 +23225,13 @@ yy1531:
+ if (yych <= '`') goto yy3;
+ goto yy175;
+ } else {
+- if (yych <= 't') goto yy1532;
++ if (yych <= 't') goto yy1534;
+ if (yych <= 'z') goto yy175;
+ goto yy3;
+ }
+ }
+ }
+-yy1532:
++yy1534:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'D') {
+@@ -23041,7 +23246,7 @@ yy1532:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'E') goto yy1524;
++ if (yych <= 'E') goto yy1526;
+ if (yych <= 'Z') goto yy168;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -23050,13 +23255,13 @@ yy1532:
+ if (yych <= '`') goto yy3;
+ goto yy176;
+ } else {
+- if (yych <= 'e') goto yy1533;
++ if (yych <= 'e') goto yy1535;
+ if (yych <= 'z') goto yy176;
+ goto yy3;
+ }
+ }
+ }
+-yy1533:
++yy1535:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'Q') {
+@@ -23071,7 +23276,7 @@ yy1533:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'R') goto yy1525;
++ if (yych <= 'R') goto yy1527;
+ if (yych <= 'Z') goto yy169;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -23080,13 +23285,13 @@ yy1533:
+ if (yych <= '`') goto yy3;
+ goto yy177;
+ } else {
+- if (yych <= 'r') goto yy1534;
++ if (yych <= 'r') goto yy1536;
+ if (yych <= 'z') goto yy177;
+ goto yy3;
+ }
+ }
+ }
+-yy1534:
++yy1536:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'C') {
+@@ -23100,21 +23305,21 @@ yy1534:
+ }
+ } else {
+ if (yych <= '`') {
+- if (yych <= 'D') goto yy1526;
++ if (yych <= 'D') goto yy1528;
+ if (yych == '_') goto yy172;
+ goto yy3;
+ } else {
+- if (yych == 'd') goto yy1535;
++ if (yych == 'd') goto yy1537;
+ if (yych <= 'z') goto yy178;
+ goto yy3;
+ }
+ }
+-yy1535:
++yy1537:
+ yych = *++YYCURSOR;
+- if (yych == 'A') goto yy1527;
++ if (yych == 'A') goto yy1529;
+ if (yych != 'a') goto yy179;
+ yych = *++YYCURSOR;
+- if (yych == 'Y') goto yy1528;
++ if (yych == 'Y') goto yy1530;
+ if (yych != 'y') goto yy179;
+ yyaccept = 33;
+ yych = *(YYMARKER = ++YYCURSOR);
+@@ -23123,13 +23328,14 @@ yy1535:
+ }
+ if (yych <= '.') {
+ if (yych == '-') goto yy172;
+- goto yy1529;
++ goto yy1531;
+ } else {
+ if (yych <= '/') goto yy172;
+ if (yych == '_') goto yy172;
+- goto yy1529;
++ goto yy1531;
+ }
+ }
++#line 1772 "ext/date/lib/parse_date.re"
+
+ }
+
+diff --git a/ext/date/lib/parse_date.re b/ext/date/lib/parse_date.re
+index 74d9ea3..f26e276 100644
+--- a/ext/date/lib/parse_date.re
++++ b/ext/date/lib/parse_date.re
+@@ -931,8 +931,8 @@ isoweek = year4 "-"? "W" weekofyear;
+ exif = year4 ":" monthlz ":" daylz " " hour24lz ":" minutelz ":" secondlz;
+ firstdayof = 'first day of';
+ lastdayof = 'last day of';
+-backof = 'back of ' hour24 space? meridian?;
+-frontof = 'front of ' hour24 space? meridian?;
++backof = 'back of ' hour24 (space? meridian)?;
++frontof = 'front of ' hour24 (space? meridian)?;
+
+ /* Common Log Format: 10/Oct/2000:13:55:36 -0700 */
+ clf = day "/" monthabbr "/" year4 ":" hour24lz ":" minutelz ":" secondlz space tzcorrection;
+diff --git a/ext/date/tests/bug53437_var3.phpt b/ext/date/tests/bug53437_var3.phpt
+index 8f48b1b..8dcd4c8 100644
+--- a/ext/date/tests/bug53437_var3.phpt
++++ b/ext/date/tests/bug53437_var3.phpt
+@@ -40,7 +40,7 @@ object(DateInterval)#%d (16) {
+ ["special_amount"]=>
+ int(-1)
+ ["have_weekday_relative"]=>
+- int(9)
++ int(0)
+ ["have_special_relative"]=>
+ int(0)
+ ["f"]=>
+diff --git a/ext/wddx/tests/bug75055.phpt b/ext/wddx/tests/bug75055.phpt
+new file mode 100644
+index 0000000..2956284
+--- /dev/null
++++ b/ext/wddx/tests/bug75055.phpt
+@@ -0,0 +1,20 @@
++--TEST--
++Bug #75055 Out-Of-Bounds Read in timelib_meridian()
++--SKIPIF--
++<?php if (!extension_loaded("wddx")) print "skip"; ?>
++--FILE--
++<?php
++
++$file_str = dirname(__FILE__) . "/bug75055.wddx";
++
++$wddx_str = file_get_contents($file_str);
++print strlen($wddx_str) . " bytes read.\n";
++
++var_dump(wddx_deserialize($wddx_str));
++?>
++--EXPECT--
++323 bytes read.
++array(1) {
++ ["aDateTime"]=>
++ string(12) "frONt of 0 0"
++}
+diff --git a/ext/wddx/tests/bug75055.wddx b/ext/wddx/tests/bug75055.wddx
+new file mode 100644
+index 0000000..6493352
+--- /dev/null
++++ b/ext/wddx/tests/bug75055.wddx
+@@ -0,0 +1,13 @@
++<?xml version='1.0'?>
++<!DOCTYPE wddxPacket SYSTEM 'wddx_0100.dtd'>
++<wddxPacket version='1.0'>
++<header/>
++ <data>
++ <struct>
++ <var name='aDateTime'>
++ <dateTime>frONt of 0 0</dateTime>
++ </var>
++ </struct>
++ </data>
++</wddxPacket>
++
+--
+2.11.0
+
diff --git a/meta-oe/recipes-devtools/php/php_7.1.9.bb b/meta-oe/recipes-devtools/php/php_7.1.9.bb
index 157369e03f..acf68a0594 100644
--- a/meta-oe/recipes-devtools/php/php_7.1.9.bb
+++ b/meta-oe/recipes-devtools/php/php_7.1.9.bb
@@ -4,6 +4,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=c0af599f66d0461c5837c695fcbc5c1e"
SRC_URI += "file://change-AC_TRY_RUN-to-AC_TRY_LINK.patch \
file://0001-Specify-tag-with-libtool.patch \
+ file://CVE-2017-16642.patch \
"
SRC_URI[md5sum] = "2397be54f3281cdf30c7ef076b28f7d0"
SRC_URI[sha256sum] = "314dcc10dfdd7c4443edb4fe1e133a44f2b2a8351be8c9eb6ab9222d45fd9bae"
diff --git a/meta-oe/recipes-devtools/protobuf/protobuf_3.4.1.bb b/meta-oe/recipes-devtools/protobuf/protobuf_3.4.1.bb
index fae7c18a16..fe28f475a4 100644
--- a/meta-oe/recipes-devtools/protobuf/protobuf_3.4.1.bb
+++ b/meta-oe/recipes-devtools/protobuf/protobuf_3.4.1.bb
@@ -18,7 +18,7 @@ SRCREV = "b04e5cba356212e4e8c66c61bbe0c3a20537c5b9"
PV = "3.4.1+git${SRCPV}"
-SRC_URI = "git://github.com/google/protobuf.git;branch=3.4.x"
+SRC_URI = "git://github.com/google/protobuf.git"
EXTRA_OECONF += " --with-protoc=echo"
diff --git a/meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb b/meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb
index 0849e88564..91003f6e93 100644
--- a/meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb
+++ b/meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a6a4ddbb7cd2999f6827ee143f6fcd97"
DEPENDS = "openssl"
-SRC_URI = "ftp://ftp.cac.washington.edu/imap/imap-${PV}.tar.gz \
+SRC_URI = "https://fossies.org/linux/misc/old/imap-${PV}.tar.gz \
file://quote_cctype.patch \
file://imap-2007e-shared.patch \
file://imap-2007f-format-security.patch \
diff --git a/meta-oe/recipes-extended/dialog/dialog_1.3-20160828.bb b/meta-oe/recipes-extended/dialog/dialog_1.3-20160828.bb
index bff3d97d2a..85dede1779 100644
--- a/meta-oe/recipes-extended/dialog/dialog_1.3-20160828.bb
+++ b/meta-oe/recipes-extended/dialog/dialog_1.3-20160828.bb
@@ -8,7 +8,7 @@ DEPENDS = "ncurses"
LICENSE = "LGPL-2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343"
-SRC_URI = "ftp://invisible-island.net/dialog/dialog-${PV}.tgz \
+SRC_URI = "ftp://ftp.invisible-island.net/${BPN}/${BP}.tgz \
"
SRC_URI[md5sum] = "a39ec183517bc1feaff017d067300b8c"
SRC_URI[sha256sum] = "453095abaec288bfbc1ca9faced917e17742cff1ea45ec46210071ac153562f9"
diff --git a/meta-oe/recipes-extended/hiredis/hiredis_0.13.1.bb b/meta-oe/recipes-extended/hiredis/hiredis_0.13.1.bb
index 96b86f9a0c..fae30d771d 100644
--- a/meta-oe/recipes-extended/hiredis/hiredis_0.13.1.bb
+++ b/meta-oe/recipes-extended/hiredis/hiredis_0.13.1.bb
@@ -12,10 +12,11 @@ S = "${WORKDIR}/git"
inherit autotools-brokensep pkgconfig
+EXTRA_OEMAKE = "PREFIX=${prefix}"
+
# By default INSTALL variable in Makefile is equal to 'cp -a', which preserves
# ownership and causes host-user-contamination QA issue.
# And PREFIX defaults to /usr/local.
do_install_prepend() {
- export PREFIX=${prefix}
export INSTALL='cp -r'
}
diff --git a/meta-oe/recipes-extended/hwloc/hwloc_1.11.5.bb b/meta-oe/recipes-extended/hwloc/hwloc_1.11.5.bb
index d7fdd823c0..5a335b9249 100644
--- a/meta-oe/recipes-extended/hwloc/hwloc_1.11.5.bb
+++ b/meta-oe/recipes-extended/hwloc/hwloc_1.11.5.bb
@@ -24,9 +24,6 @@ PACKAGECONFIG[x11] = "--with-x,--without-x,virtual/libx11 cairo,cairo"
PACKAGECONFIG[pci] = "--enable-pci,--disable-pci,libpciaccess,libpciaccess"
# Split hwloc library into separate subpackage
-PACKAGES_prepend = " lib${PN} "
-FILES_lib${PN} += "${libdir}/lib${PN}.so*"
-RDEPENDS_${PN} += "lib${PN} (= ${EXTENDPKGV})"
-
-# XXX dev-so QA check doesn't like soname symlinks in non-dev packages
-INSANE_SKIP_lib${PN} += "dev-so"
+PACKAGES_prepend = " libhwloc "
+FILES_libhwloc += "${libdir}/libhwloc.so.*"
+RDEPENDS_${PN} += "libhwloc (= ${EXTENDPKGV})"
diff --git a/meta-oe/recipes-extended/leveldb/leveldb/0001-build_detect_platform-Check-for-__SSE4_2__.patch b/meta-oe/recipes-extended/leveldb/leveldb/0001-build_detect_platform-Check-for-__SSE4_2__.patch
index bbabf688d8..8f93cb325b 100644
--- a/meta-oe/recipes-extended/leveldb/leveldb/0001-build_detect_platform-Check-for-__SSE4_2__.patch
+++ b/meta-oe/recipes-extended/leveldb/leveldb/0001-build_detect_platform-Check-for-__SSE4_2__.patch
@@ -19,14 +19,15 @@ Index: git/build_detect_platform
===================================================================
--- git.orig/build_detect_platform
+++ git/build_detect_platform
-@@ -230,13 +230,12 @@ EOF
+@@ -224,13 +224,13 @@ EOF
rm -f $CXXOUTPUT 2>/dev/null
# Test if gcc SSE 4.2 is supported
- $CXX $CXXFLAGS -x c++ - -o $CXXOUTPUT -msse4.2 2>/dev/null <<EOF
-+ $CXX $CXXFLAGS -Werror -x c++ - -o $CXXOUTPUT -msse4.2 -dD -E 2>/dev/null | fgrep __SSE4_2__ $CXXOUTPUT 2>/dev/null <<EOF
++ $CXX $CXXFLAGS -Werror -x c++ - -o $CXXOUTPUT -msse4.2 -dD -E 2>/dev/null <<EOF
int main() {}
EOF
++ eval fgrep __SSE4_2__ $CXXOUTPUT >/dev/null 2>&1
if [ "$?" = 0 ]; then
PLATFORM_SSEFLAGS="-msse4.2"
fi
diff --git a/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.0.bb b/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.0.bb
index daf6604f25..2c96063f19 100644
--- a/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.0.bb
+++ b/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.0.bb
@@ -15,7 +15,7 @@ SRC_URI[sha256sum] = "1de6ff046cf2172d265a2cb6f8da439d894f3e4e8157b056c515515232
S = "${WORKDIR}/${SRCNAME}-${PV}"
DEPENDS = "cracklib virtual/gettext python3"
-RDEPENDS_python3-${PN} = "${PN}"
+RDEPENDS_python3-libpwquality = "${PN}"
inherit autotools python3native gettext
@@ -36,7 +36,7 @@ EXTRA_OECONF += "--with-python-rev=${PYTHON_BASEVERSION} \
PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}"
PACKAGECONFIG[pam] = "--enable-pam, --disable-pam, libpam"
-PACKAGES += "python3-${PN} python3-${PN}-dbg"
+PACKAGES += "python3-libpwquality python3-libpwquality-dbg"
FILES_${PN} += "${libdir}/security/pam_pwquality.so"
FILES_${PN}-dbg += "${libdir}/security/.debug"
FILES_${PN}-staticdev += "${libdir}/security/pam_pwquality.a"
diff --git a/meta-oe/recipes-extended/libreport/libreport_2.9.2.bb b/meta-oe/recipes-extended/libreport/libreport_2.9.2.bb
index 2fdfd7d725..525437bdb6 100644
--- a/meta-oe/recipes-extended/libreport/libreport_2.9.2.bb
+++ b/meta-oe/recipes-extended/libreport/libreport_2.9.2.bb
@@ -26,7 +26,7 @@ REQUIRED_DISTRO_FEATURES = "systemd"
inherit gettext autotools python3native pkgconfig
-RDEPENDS_${PN}-python3 += "${PN}"
+RDEPENDS_python3-libreport += "${PN}"
do_patch[prefuncs] += "do_gen_version"
do_gen_version() {
@@ -34,9 +34,9 @@ do_gen_version() {
./gen-version
}
-PACKAGES += "python3-${PN}"
+PACKAGES += "python3-libreport"
FILES_${PN} += "${datadir}/*"
FILES_${PN}-dbg += "${PYTHON_SITEPACKAGES_DIR}/*/.debug"
-FILES_python3-${PN} = "${PYTHON_SITEPACKAGES_DIR}/*"
+FILES_python3-libreport = "${PYTHON_SITEPACKAGES_DIR}/*"
diff --git a/meta-oe/recipes-extended/polkit/polkit_0.113.bb b/meta-oe/recipes-extended/polkit/polkit_0.113.bb
index 326c9340e9..f34928fe3a 100644
--- a/meta-oe/recipes-extended/polkit/polkit_0.113.bb
+++ b/meta-oe/recipes-extended/polkit/polkit_0.113.bb
@@ -10,7 +10,9 @@ DEPENDS = "expat glib-2.0 intltool-native mozjs"
inherit autotools gtk-doc pkgconfig useradd systemd gobject-introspection
PACKAGECONFIG = "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', 'consolekit', d)}"
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', \
+ bb.utils.contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d), d)} \
+ "
PACKAGECONFIG[pam] = "--with-authfw=pam,--with-authfw=shadow,libpam,libpam"
PACKAGECONFIG[systemd] = "--enable-libsystemd-login=yes --with-systemdsystemunitdir=${systemd_unitdir}/system/,--enable-libsystemd-login=no --with-systemdsystemunitdir=,systemd"
diff --git a/meta-oe/recipes-extended/rarpd/rarpd_ss981107.bb b/meta-oe/recipes-extended/rarpd/rarpd_ss981107.bb
index 4025b8087e..7c9f2df9db 100644
--- a/meta-oe/recipes-extended/rarpd/rarpd_ss981107.bb
+++ b/meta-oe/recipes-extended/rarpd/rarpd_ss981107.bb
@@ -38,13 +38,11 @@ do_install() {
install -m 644 rarpd.8 ${D}${mandir}/man8/rarpd.8
install -m 644 ${WORKDIR}/ethers.sample ${D}${sysconfdir}/ethers
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/rarpd.service ${D}${systemd_unitdir}/system/
- fi
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/rarpd.service ${D}${systemd_unitdir}/system/
}
-inherit ${@bb.utils.filter('VIRTUAL-RUNTIME_init_manager', 'systemd', d)}
+inherit systemd
SYSTEMD_PACKAGES = "${PN}"
SYSTEMD_SERVICE_${PN} = "rarpd.service"
diff --git a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb
index c6b9f1019b..3db8c14842 100644
--- a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb
+++ b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb
@@ -28,7 +28,7 @@ SRC_URI[md5sum] = "28021cdabc73690a94f4f9d57254ce30"
SRC_URI[sha256sum] = "634a67b2f7ac3b386a79160eb44413d618e33e4e7fc74ae68b0240484af149dd"
inherit autotools
-inherit ${@bb.utils.filter('VIRTUAL-RUNTIME_init_manager', 'systemd', d)}
+inherit systemd
SYSTEMD_PACKAGES = "${PN}"
SYSTEMD_SERVICE_${PN} = "sblim-sfcb.service"
@@ -53,10 +53,8 @@ do_install() {
oe_runmake DESTDIR=${D} install
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/sfcb.service ${D}${systemd_unitdir}/system/sblim-sfcb.service
- fi
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/sfcb.service ${D}${systemd_unitdir}/system/sblim-sfcb.service
install -d ${D}${sysconfdir}/init.d
mv ${D}${sysconfdir}/init.d/sfcb ${D}${sysconfdir}/init.d/sblim-sfcb
diff --git a/meta-oe/recipes-graphics/glm/glm_0.9.8.4.bb b/meta-oe/recipes-graphics/glm/glm_0.9.9-a2.bb
index 2d2e9ade48..ed050a148c 100644
--- a/meta-oe/recipes-graphics/glm/glm_0.9.8.4.bb
+++ b/meta-oe/recipes-graphics/glm/glm_0.9.9-a2.bb
@@ -8,15 +8,15 @@ BUGTRACKER = "https://github.com/g-truc/glm/issues"
SECTION = "libs"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://copying.txt;md5=4431606d144252143c9c3df384a74cad"
-
-SRC_URI = "git://github.com/g-truc/glm;protocol=https"
-
-SRCREV = "5dcc56489e1b66dfd5bca751fa9b8dc68059e008"
+LIC_FILES_CHKSUM = "file://readme.md;beginline=21;endline=22;md5=3075b5727d36f29edccf97b93e72b790"
+SRC_URI = "git://github.com/g-truc/glm;branch=master"
+SRCREV = "fcbedf5058ef8613dd02aac62ef00d55dcfeadd7"
S = "${WORKDIR}/git"
inherit cmake
FILES_${PN}-dev += "${libdir}/cmake"
RDEPENDS_${PN}-dev = ""
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-graphics/tslib/tslib_1.1.bb b/meta-oe/recipes-graphics/tslib/tslib_1.1.bb
index 502034a9c4..e7c48ff6ce 100644
--- a/meta-oe/recipes-graphics/tslib/tslib_1.1.bb
+++ b/meta-oe/recipes-graphics/tslib/tslib_1.1.bb
@@ -3,7 +3,7 @@ DESCRIPTION = "Tslib is an abstraction layer for touchscreen panel \
events, as well as a filter stack for the manipulation of those events. \
Tslib is generally used on embedded devices to provide a common user \
space interface to touchscreen functionality."
-HOMEPAGE = "http://tslib.berlios.de/"
+HOMEPAGE = "http://tslib.org/"
AUTHOR = "Russell King w/ plugins by Chris Larson et. al."
SECTION = "base"
diff --git a/meta-oe/recipes-navigation/gpsd/gpsd_3.16.bb b/meta-oe/recipes-navigation/gpsd/gpsd_3.16.bb
index f8e6a2b137..26d74867bf 100644
--- a/meta-oe/recipes-navigation/gpsd/gpsd_3.16.bb
+++ b/meta-oe/recipes-navigation/gpsd/gpsd_3.16.bb
@@ -120,7 +120,14 @@ RDEPENDS_gps-utils = "python-pygps"
SUMMARY_python-pygps = "Python bindings to gpsd"
FILES_python-pygps = "${PYTHON_SITEPACKAGES_DIR}/*"
-RDEPENDS_python-pygps = "python-core python-curses gpsd python-json"
+RDEPENDS_python-pygps = " \
+ python-core \
+ python-io \
+ python-threading \
+ python-terminal \
+ python-curses \
+ gpsd \
+ python-json"
RPROVIDES_${PN} += "${PN}-systemd"
RREPLACES_${PN} += "${PN}-systemd"
@@ -129,6 +136,5 @@ SYSTEMD_SERVICE_${PN} = "${PN}.socket"
ALTERNATIVE_${PN} = "gpsd-defaults"
-ALTERNATIVE_PATH = "${sysconfdir}/default/gpsd.default"
-ALTERNATIVE_LINK = "${sysconfdir}/default/gpsd"
-ALTERNATIVE_TARGET = "${sysconfdir}/default/gpsd.default"
+ALTERNATIVE_LINK_NAME[gpsd-defaults] = "${sysconfdir}/default/gpsd"
+ALTERNATIVE_TARGET[gpsd-defaults] = "${sysconfdir}/default/gpsd.default"
diff --git a/meta-oe/recipes-support/dfu-util/dfu-util-native_0.9.bb b/meta-oe/recipes-support/dfu-util/dfu-util-native_0.9.bb
index 7a7a662ab3..aeca23bf2d 100644
--- a/meta-oe/recipes-support/dfu-util/dfu-util-native_0.9.bb
+++ b/meta-oe/recipes-support/dfu-util/dfu-util-native_0.9.bb
@@ -8,9 +8,8 @@ SRC_URI += "file://0001-Revert-Makefile.am-Drop-static-dfu-util.patch"
do_deploy[sstate-outputdirs] = "${DEPLOY_DIR_TOOLS}"
do_deploy() {
- install -d ${DEPLOY_DIR_TOOLS}
- install -m 0755 src/dfu-util_static ${DEPLOY_DIR_TOOLS}/dfu-util-${PV}
- rm -f ${DEPLOY_DIR_TOOLS}/dfu-util
- ln -sf ./dfu-util-${PV} ${DEPLOY_DIR_TOOLS}/dfu-util
+ install -m 0755 src/dfu-util_static ${DEPLOYDIR}/dfu-util-${PV}
+ rm -f ${DEPLOYDIR}/dfu-util
+ ln -sf ./dfu-util-${PV} ${DEPLOYDIR}/dfu-util
}
addtask deploy before do_package after do_install
diff --git a/meta-oe/recipes-support/fltk/fltk-native.bb b/meta-oe/recipes-support/fltk/fltk-native.bb
index 353987e0fd..2636287e3a 100644
--- a/meta-oe/recipes-support/fltk/fltk-native.bb
+++ b/meta-oe/recipes-support/fltk/fltk-native.bb
@@ -14,3 +14,8 @@ EXTRA_OECMAKE += " \
-DOPTION_USE_XFIXES=OFF \
-DOPTION_USE_XCURSOR=OFF \
"
+
+do_install_append() {
+ # make sure native fltk-config is not used accidentaly
+ rm -f ${D}${bindir}/fltk-config
+}
diff --git a/meta-oe/recipes-support/fltk/fltk.bb b/meta-oe/recipes-support/fltk/fltk.bb
index 542fd661ea..619d1420a6 100644
--- a/meta-oe/recipes-support/fltk/fltk.bb
+++ b/meta-oe/recipes-support/fltk/fltk.bb
@@ -1,6 +1,6 @@
require ${BPN}.inc
-DEPENDS = "alsa-lib zlib jpeg libpng libxext libxft ${BPN}-native"
+DEPENDS = "alsa-lib zlib jpeg libpng libxext libxft"
inherit binconfig lib_package gtk-icon-cache mime
diff --git a/meta-oe/recipes-support/gperftools/gperftools/sgidef.patch b/meta-oe/recipes-support/gperftools/gperftools/sgidef.patch
new file mode 100644
index 0000000000..7e1a23bf68
--- /dev/null
+++ b/meta-oe/recipes-support/gperftools/gperftools/sgidef.patch
@@ -0,0 +1,17 @@
+sgidef.h does not exist on musl and its not needed to compile
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+Index: git/src/base/linux_syscall_support.h
+===================================================================
+--- git.orig/src/base/linux_syscall_support.h
++++ git/src/base/linux_syscall_support.h
+@@ -164,7 +164,7 @@ extern "C" {
+ #include <endian.h>
+ #include <fcntl.h>
+
+-#ifdef __mips__
++#if defined(__mips__) && defined(__glibc__)
+ /* Include definitions of the ABI currently in use. */
+ #include <sgidefs.h>
+ #endif
diff --git a/meta-oe/recipes-support/gperftools/gperftools_2.6.1.bb b/meta-oe/recipes-support/gperftools/gperftools_2.6.1.bb
index 8ce376c91d..ecac6c5cc8 100644
--- a/meta-oe/recipes-support/gperftools/gperftools_2.6.1.bb
+++ b/meta-oe/recipes-support/gperftools/gperftools_2.6.1.bb
@@ -12,6 +12,7 @@ SRC_URI = "git://github.com/gperftools/gperftools \
file://0001-include-fcntl.h-for-loff_t-definition.patch \
file://0001-disbale-heap-checkers-and-debug-allocator-on-musl.patch \
file://disable_libunwind_aarch64.patch \
+ file://sgidef.patch \
"
inherit autotools
diff --git a/meta-oe/recipes-support/mysql/mariadb.inc b/meta-oe/recipes-support/mysql/mariadb.inc
index 16dd9f9d59..263b3139e7 100644
--- a/meta-oe/recipes-support/mysql/mariadb.inc
+++ b/meta-oe/recipes-support/mysql/mariadb.inc
@@ -258,6 +258,7 @@ FILES_${PN}-server = "\
${bindir}/mysqlbinlog \
${bindir}/mysqld_multi \
${bindir}/mysqld_safe \
+ ${bindir}/mysqld_safe_helper \
${bindir}/mysqlhotcopy \
${bindir}/mysqltest \
${bindir}/ndb_delete_all \
diff --git a/meta-oe/recipes-support/openct/openct_0.6.20.bb b/meta-oe/recipes-support/openct/openct_0.6.20.bb
index c7d7203eda..913290cd97 100644
--- a/meta-oe/recipes-support/openct/openct_0.6.20.bb
+++ b/meta-oe/recipes-support/openct/openct_0.6.20.bb
@@ -25,7 +25,7 @@ SRC_URI[sha256sum] = "6cd3e2933d29eb1f875c838ee58b8071fd61f0ec8ed5922a86c01c805d
LICENSE = "LGPLv2+"
LIC_FILES_CHKSUM = "file://LGPL-2.1;md5=2d5025d4aa3495befef8f17206a5b0a1"
-inherit ${@bb.utils.filter('VIRTUAL-RUNTIME_init_manager', 'systemd', d)}
+inherit systemd
SYSTEMD_SERVICE_${PN} += "openct.service "
SYSTEMD_AUTO_ENABLE = "enable"
@@ -77,10 +77,8 @@ do_install () {
install -Dpm 755 ${WORKDIR}/openct.init ${D}/etc/init.d/openct
install -Dpm 644 ${WORKDIR}/openct.sysconfig ${D}/etc/sysconfig/openct
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- install -d ${D}/${systemd_unitdir}/system
- install -m 644 ${WORKDIR}/openct.service ${D}/${systemd_unitdir}/system
- fi
+ install -d ${D}/${systemd_unitdir}/system
+ install -m 644 ${WORKDIR}/openct.service ${D}/${systemd_unitdir}/system
so=$(find ${D} -name \*.so | sed "s|^${D}||")
sed -i -e 's|\\(LIBPATH\\s*\\).*|\\1$so|' etc/reader.conf
diff --git a/meta-oe/recipes-support/openldap/openldap_2.4.45.bb b/meta-oe/recipes-support/openldap/openldap_2.4.45.bb
index 06d2467ec7..82d6619838 100644
--- a/meta-oe/recipes-support/openldap/openldap_2.4.45.bb
+++ b/meta-oe/recipes-support/openldap/openldap_2.4.45.bb
@@ -188,6 +188,7 @@ do_install_append() {
# Installing slapd under ${sbin} is more FHS and LSB compliance
mv ${D}${libexecdir}/slapd ${D}/${sbindir}/slapd
+ rmdir --ignore-fail-on-non-empty ${D}${libexecdir}
SLAPTOOLS="slapadd slapcat slapdn slapindex slappasswd slaptest slapauth slapacl slapschema"
cd ${D}/${sbindir}/
rm -f ${SLAPTOOLS}
diff --git a/meta-oe/recipes-support/passwdqc/passwdqc_1.3.1.bb b/meta-oe/recipes-support/passwdqc/passwdqc_1.3.1.bb
index b8f923c29a..198db3ce72 100644
--- a/meta-oe/recipes-support/passwdqc/passwdqc_1.3.1.bb
+++ b/meta-oe/recipes-support/passwdqc/passwdqc_1.3.1.bb
@@ -59,5 +59,5 @@ FILES_lib${BPN} = "${base_libdir}/libpasswdqc.so.0"
FILES_pam-${BPN} = "${base_libdir}/security/pam_passwdqc.so"
FILES_${PN}-dbg += "${base_libdir}/security/.debug"
-RDEPENDS_${PN} = "lib${BPN}"
+RDEPENDS_${PN} = "lib${BPN} pam-${BPN}"
RDEPENDS_pam-${BPN} = "lib${BPN}"
diff --git a/meta-oe/recipes-support/postgresql/postgresql_9.4.13.bb b/meta-oe/recipes-support/postgresql/postgresql_9.4.15.bb
index bf97cad50f..eec099a129 100644
--- a/meta-oe/recipes-support/postgresql/postgresql_9.4.13.bb
+++ b/meta-oe/recipes-support/postgresql/postgresql_9.4.15.bb
@@ -11,5 +11,5 @@ do_compile_prepend_libc-musl() {
sed -i -e 's/\-lnsl//g' ${B}/src/Makefile.global
}
-SRC_URI[md5sum] = "dbdb9fbe1b9a394b9ac19d3113b73944"
-SRC_URI[sha256sum] = "0080f55d65194de8b96a2dab153443f8248ff2b2b10e6ab4cda2dcadcac7f2ab"
+SRC_URI[md5sum] = "0aada0833a9208ae5fab966c73c39379"
+SRC_URI[sha256sum] = "12bfb3c7e8e45515ef921ad365e122682a5c4935dcc0032644433af2de31acc4"
diff --git a/meta-perl/README b/meta-perl/README
index 68160a628c..cc965af9d7 100644
--- a/meta-perl/README
+++ b/meta-perl/README
@@ -52,7 +52,7 @@ Dependencies
This layer depends on:
URI: git://git.openembedded.org/openembedded-core
- branch: master
+ branch: rocko
revision: HEAD
prio: default
@@ -75,12 +75,13 @@ Maintenance
-----------
Send patches / pull requests to openembedded-devel@lists.openembedded.org with
-'[meta-perl]' in the subject.
+'[meta-perl][rocko]' in the subject.
When sending single patches, please using something like:
-'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-perl][PATCH'
+'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-perl][rocko][PATCH'
-Layer maintainer: Hongxu Jia <hongxu.jia@windriver.com>
+rocko Branch Maintainer:
+Armin Kuster <akuster808@gmail.com>
License
-------
diff --git a/meta-python/README b/meta-python/README
index 905d5ee5e5..43740f6271 100644
--- a/meta-python/README
+++ b/meta-python/README
@@ -17,12 +17,12 @@ The meta-python layer depends on:
URI: git://git.openembedded.org/openembedded-core
layers: meta
- branch: master
+ branch: rocko
revision: HEAD
URI: git://git.openembedded.org/meta-openembedded
layers: meta-oe
- branch: master
+ branch: rocko
revision: HEAD
Please follow the recommended setup procedures of your OE distribution.
diff --git a/meta-python/recipes-devtools/python/python-asn1crypto.inc b/meta-python/recipes-devtools/python/python-asn1crypto.inc
index 3bdb4b2352..41b7342194 100644
--- a/meta-python/recipes-devtools/python/python-asn1crypto.inc
+++ b/meta-python/recipes-devtools/python/python-asn1crypto.inc
@@ -10,3 +10,4 @@ SRC_URI[md5sum] = "97d54665c397b72b165768398dfdd876"
SRC_URI[sha256sum] = "0874981329cfebb366d6584c3d16e913f2a0eb026c9463efcc4aaf42a9d94d70"
inherit pypi
+BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python-attrs.inc b/meta-python/recipes-devtools/python/python-attrs.inc
new file mode 100644
index 0000000000..edde79e5d2
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python-attrs.inc
@@ -0,0 +1,9 @@
+DESCRIPTION = "Classes Without Boilerplate"
+HOMEPAGE = "http://www.attrs.org/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d4ab25949a73fe7d4fdee93bcbdbf8ff"
+
+SRC_URI[md5sum] = "4314f784ca3174d91956da9828248960"
+SRC_URI[sha256sum] = "c78f53e32d7cf36d8597c8a2c7e3c0ad210f97b9509e152e4c37fa80869f823c"
+
+inherit pypi
diff --git a/meta-python/recipes-devtools/python/python-attrs_17.3.0.bb b/meta-python/recipes-devtools/python/python-attrs_17.3.0.bb
new file mode 100644
index 0000000000..a6fdf158dc
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python-attrs_17.3.0.bb
@@ -0,0 +1,2 @@
+inherit setuptools
+require python-attrs.inc
diff --git a/meta-python/recipes-devtools/python/python-automat.inc b/meta-python/recipes-devtools/python/python-automat.inc
new file mode 100644
index 0000000000..43b9ce9e3c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python-automat.inc
@@ -0,0 +1,24 @@
+DESCRIPTION = "Self-service finite-state machines for the programmer on the go"
+HOMEPAGE = "https://github.com/glyph/Automat"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4ad213bcca81688e94593e5f60c87477"
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/python-automat:"
+
+SRC_URI[md5sum] = "ad7bba58d262d8956d732330cb5ef53d"
+SRC_URI[sha256sum] = "3c1fd04ecf08ac87b4dd3feae409542e9bf7827257097b2b6ed5692f69d6f6a8"
+
+PYPI_PACKAGE = "Automat"
+
+inherit pypi
+
+SRC_URI_append = " \
+ file://0001-setup.py-remove-the-dependency-on-m2r.patch \
+"
+
+DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-attrs \
+ ${PYTHON_PN}-six \
+"
diff --git a/meta-python/recipes-devtools/python/python-automat/0001-setup.py-remove-the-dependency-on-m2r.patch b/meta-python/recipes-devtools/python/python-automat/0001-setup.py-remove-the-dependency-on-m2r.patch
new file mode 100644
index 0000000000..0ebb220756
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python-automat/0001-setup.py-remove-the-dependency-on-m2r.patch
@@ -0,0 +1,52 @@
+From d5ebe479fc8fe11c5c75e7f35484849320349222 Mon Sep 17 00:00:00 2001
+From: Derek Straka <derek@asterius.io>
+Date: Fri, 22 Dec 2017 09:07:00 -0500
+Subject: [PATCH] setup.py: remove the dependency on m2r
+
+The dependency on m2r is removed here as it only provides the
+long_description value that is optional. This item is just the
+text that would be present on PyPi, so it doesn't provide much
+value in this case
+
+Upstream-Status: Inappropriate (OE specific)
+
+Signed-off-by: Derek Straka <derek@asterius.io>
+---
+ setup.py | 10 ----------
+ 1 file changed, 10 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index d360c64..7b4180a 100644
+--- a/setup.py
++++ b/setup.py
+@@ -4,14 +4,6 @@ Setup file for automat
+
+ from setuptools import setup, find_packages
+
+-try:
+- from m2r import parse_from_file
+- long_description = parse_from_file('README.md')
+-except(IOError, ImportError):
+- print("\n\n!!! m2r not found, long_description is bad, don't upload this to PyPI !!!\n\n")
+- import io
+- long_description = io.open('README.md', encoding="utf-8").read()
+-
+ setup(
+ name='Automat',
+ use_scm_version=True,
+@@ -19,12 +11,10 @@ setup(
+ description="""
+ Self-service finite-state machines for the programmer on the go.
+ """.strip(),
+- long_description=long_description,
+ packages=find_packages(exclude=[]),
+ package_dir={'automat': 'automat'},
+ setup_requires=[
+ 'setuptools-scm',
+- 'm2r',
+ ],
+ install_requires=[
+ "attrs>=16.1.0",
+--
+2.7.4
+
diff --git a/meta-python/recipes-devtools/python/python-automat_0.6.0.bb b/meta-python/recipes-devtools/python/python-automat_0.6.0.bb
new file mode 100644
index 0000000000..8ac8c9c0ff
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python-automat_0.6.0.bb
@@ -0,0 +1,2 @@
+inherit setuptools
+require python-automat.inc
diff --git a/meta-python/recipes-devtools/python/python-cffi.inc b/meta-python/recipes-devtools/python/python-cffi.inc
index 2d1f18f56c..8dcdb63341 100644
--- a/meta-python/recipes-devtools/python/python-cffi.inc
+++ b/meta-python/recipes-devtools/python/python-cffi.inc
@@ -4,8 +4,8 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=5677e2fdbf7cdda61d6dd2b57df547bf"
DEPENDS += "libffi ${PYTHON_PN}-pycparser"
-SRC_URI[md5sum] = "2c5939cc2fa0183fe0c2fcb6a4f1994d"
-SRC_URI[sha256sum] = "5f4ff33371c6969b39b293d9771ee91e81d26f9129be093ca1b7be357fcefd15"
+SRC_URI[md5sum] = "a731487324b501c8295221b629d3f5f3"
+SRC_URI[sha256sum] = "ab87dd91c0c4073758d07334c1e5f712ce8fe48f007b86f8238773963ee700a6"
RDEPENDS_${PN}_class-target = " \
${PYTHON_PN}-io \
diff --git a/meta-python/recipes-devtools/python/python-cffi_1.11.0.bb b/meta-python/recipes-devtools/python/python-cffi_1.11.2.bb
index 3cd62d1f78..3cd62d1f78 100644
--- a/meta-python/recipes-devtools/python/python-cffi_1.11.0.bb
+++ b/meta-python/recipes-devtools/python/python-cffi_1.11.2.bb
diff --git a/meta-python/recipes-devtools/python/python-constantly.inc b/meta-python/recipes-devtools/python/python-constantly.inc
new file mode 100644
index 0000000000..8153504929
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python-constantly.inc
@@ -0,0 +1,11 @@
+DESCRIPTION = "Symbolic constants in Python"
+HOMEPAGE = "https://github.com/twisted/constantly"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e393e4ddd223e3a74982efa784f89fd7"
+
+SRC_URI[md5sum] = "f0762f083d83039758e53f8cf0086eef"
+SRC_URI[sha256sum] = "586372eb92059873e29eba4f9dec8381541b4d3834660707faf8ba59146dfc35"
+
+inherit pypi
+
+RDEPENDS_${PN} += "${PYTHON_PN}-json"
diff --git a/meta-python/recipes-devtools/python/python-constantly_15.1.0.bb b/meta-python/recipes-devtools/python/python-constantly_15.1.0.bb
new file mode 100644
index 0000000000..29b15eb605
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python-constantly_15.1.0.bb
@@ -0,0 +1,2 @@
+inherit setuptools
+require python-constantly.inc
diff --git a/meta-python/recipes-devtools/python/python-cryptography.inc b/meta-python/recipes-devtools/python/python-cryptography.inc
index a4d1bbba99..4ba3e320fc 100644
--- a/meta-python/recipes-devtools/python/python-cryptography.inc
+++ b/meta-python/recipes-devtools/python/python-cryptography.inc
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=d5ede125ed08d4fd14ec44d334bdb388"
DEPENDS += " \
${PYTHON_PN}-cffi \
${PYTHON_PN}-cffi-native \
- ${PYTHON_PN}-pyasn1 \
+ ${PYTHON_PN}-asn1crypto \
${PYTHON_PN}-six \
"
@@ -16,7 +16,7 @@ SRC_URI[sha256sum] = "d04bb2425086c3fe86f7bc48915290b13e798497839fbb18ab7f6dffcf
RDEPENDS_${PN} += " \
${PYTHON_PN}-cffi \
${PYTHON_PN}-idna \
- ${PYTHON_PN}-pyasn1 \
+ ${PYTHON_PN}-asn1crypto \
${PYTHON_PN}-pycparser \
${PYTHON_PN}-setuptools \
${PYTHON_PN}-six \
@@ -26,7 +26,7 @@ RDEPENDS_${PN}_class-target += " \
${PYTHON_PN}-cffi \
${PYTHON_PN}-idna \
${PYTHON_PN}-numbers \
- ${PYTHON_PN}-pyasn1 \
+ ${PYTHON_PN}-asn1crypto \
${PYTHON_PN}-pycparser \
${PYTHON_PN}-subprocess \
${PYTHON_PN}-setuptools \
@@ -55,4 +55,6 @@ FILES_${PN}-dbg += " \
${libdir}/${PYTHON_PN}2.7/site-packages/${SRCNAME}/hazmat/bindings/.debug \
"
+LDFLAGS_append = " -pthread"
+
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-evdev_0.7.0.bb b/meta-python/recipes-devtools/python/python-evdev_0.7.0.bb
index 0875da45c3..0940b0057b 100644
--- a/meta-python/recipes-devtools/python/python-evdev_0.7.0.bb
+++ b/meta-python/recipes-devtools/python/python-evdev_0.7.0.bb
@@ -6,6 +6,13 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=18debddbb3f52c661a129724a883a8e2"
SRC_URI[md5sum] = "c7e855ae9f97f869a59e75b29f05ce74"
SRC_URI[sha256sum] = "57edafc469a414f58b51af1bfb9ee2babb9f626dd2df530d71c1176871850aa1"
+do_compile_prepend() {
+ rm -rf ${S}/evdev/ecodes.c
+}
+
+DISTUTILS_BUILD_ARGS = "build_ecodes --evdev-headers ${STAGING_DIR_TARGET}/usr/include/linux/input.h:${STAGING_DIR_TARGET}/usr/include/linux/input-event-codes.h"
+
+
inherit pypi setuptools
RDEPENDS_${PN} += "\
diff --git a/meta-python/recipes-devtools/python/python-hyperlink.inc b/meta-python/recipes-devtools/python/python-hyperlink.inc
new file mode 100644
index 0000000000..2b5b0a0ff3
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python-hyperlink.inc
@@ -0,0 +1,17 @@
+DESCRIPTION = "A featureful, correct URL for Python"
+HOMEPAGE = "https://github.com/python-hyper/hyperlink"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3893d4ed05dcc823f8ed685a9ea19bcb"
+
+SRC_URI[md5sum] = "eaccb9845b559817e838846669cbc68a"
+SRC_URI[sha256sum] = "bc4ffdbde9bdad204d507bd8f554f16bba82dd356f6130cb16f41422909c33bc"
+
+inherit pypi
+
+RDEPENDS_${PN} += "${PYTHON_PN}-stringold ${PYTHON_PN}-netclient"
+
+PACKAGES =. "${PN}-test "
+
+FILES_${PN}-test += " \
+ ${PYTHON_SITEPACKAGES_DIR}/hyperlinkt/test \
+"
diff --git a/meta-python/recipes-devtools/python/python-hyperlink_17.3.1.bb b/meta-python/recipes-devtools/python/python-hyperlink_17.3.1.bb
new file mode 100644
index 0000000000..59a9a5c8dd
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python-hyperlink_17.3.1.bb
@@ -0,0 +1,2 @@
+inherit setuptools
+require python-hyperlink.inc
diff --git a/meta-python/recipes-devtools/python/python-incremental.inc b/meta-python/recipes-devtools/python/python-incremental.inc
new file mode 100644
index 0000000000..3675458688
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python-incremental.inc
@@ -0,0 +1,14 @@
+DESCRIPTION = "Incremental is a small library that versions your Python projects"
+HOMEPAGE = "https://github.com/twisted/incremental"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6ca9b07f08e2c72d48c74d363d1e0e15"
+
+SRC_URI[md5sum] = "602746e0d438e075a5a9e0678140bba2"
+SRC_URI[sha256sum] = "7b751696aaf36eebfab537e458929e194460051ccad279c72b755a167eebd4b3"
+
+inherit pypi
+
+RDEPENDS_${PN} += " \
+ ${PYTHON_PN}-twisted \
+ ${PYTHON_PN}-click \
+"
diff --git a/meta-python/recipes-devtools/python/python-incremental_17.5.0.bb b/meta-python/recipes-devtools/python/python-incremental_17.5.0.bb
new file mode 100644
index 0000000000..139ac0c522
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python-incremental_17.5.0.bb
@@ -0,0 +1,2 @@
+inherit setuptools
+require python-incremental.inc
diff --git a/meta-python/recipes-devtools/python/python-twisted.inc b/meta-python/recipes-devtools/python/python-twisted.inc
index 4bd4788674..0dd584f9fe 100644
--- a/meta-python/recipes-devtools/python/python-twisted.inc
+++ b/meta-python/recipes-devtools/python/python-twisted.inc
@@ -41,16 +41,16 @@ PACKAGES =+ "\
RDEPENDS_${PN} = "\
${PN}-bin \
+ ${PN}-core \
${PN}-conch \
${PN}-mail \
${PN}-names \
- ${PN}-news \
${PN}-runner \
${PN}-web \
${PN}-words \
"
-RDEPENDS_${PN}-core = "python-core python-zopeinterface python-contextlib"
+RDEPENDS_${PN}-core = "${PYTHON_PN}-core ${PYTHON_PN}-zopeinterface ${PYTHON_PN}-incremental ${PYTHON_PN}-constantly ${PYTHON_PN}-hyperlink ${PYTHON_PN}-automat"
RDEPENDS_${PN}-test = "${PN}"
RDEPENDS_${PN}-conch = "${PN}-core ${PN}-protocols"
RDEPENDS_${PN}-mail = "${PN}-core ${PN}-protocols"
diff --git a/meta-python/recipes-devtools/python/python-twisted_17.9.0.bb b/meta-python/recipes-devtools/python/python-twisted_17.9.0.bb
index 3b4511077f..7fc8c65e5a 100644
--- a/meta-python/recipes-devtools/python/python-twisted_17.9.0.bb
+++ b/meta-python/recipes-devtools/python/python-twisted_17.9.0.bb
@@ -1,4 +1,10 @@
inherit pypi setuptools
require python-twisted.inc
-RDEPENDS_${PN}-core = "python-core python-zopeinterface python-contextlib"
+RDEPENDS_${PN}-core += "${PYTHON_PN}-contextlib"
+
+# Not yet ported to py3 yet available in py2
+# See src/twisted/python/_setup.py -- notPortedModules
+RDEPENDS_${PN} += "\
+ ${PN}-news \
+ "
diff --git a/meta-python/recipes-devtools/python/python3-asn1crypto_0.23.0.bb b/meta-python/recipes-devtools/python/python3-asn1crypto_0.23.0.bb
new file mode 100644
index 0000000000..30f3404173
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-asn1crypto_0.23.0.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-asn1crypto.inc
diff --git a/meta-python/recipes-devtools/python/python3-attrs_17.3.0.bb b/meta-python/recipes-devtools/python/python3-attrs_17.3.0.bb
new file mode 100644
index 0000000000..c34693f506
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-attrs_17.3.0.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-attrs.inc
diff --git a/meta-python/recipes-devtools/python/python3-automat_0.6.0.bb b/meta-python/recipes-devtools/python/python3-automat_0.6.0.bb
new file mode 100644
index 0000000000..0469e61380
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-automat_0.6.0.bb
@@ -0,0 +1,4 @@
+inherit setuptools3
+require python-automat.inc
+
+RDEPENDS_${PN} += "${PYTHON_PN}-enum "
diff --git a/meta-python/recipes-devtools/python/python3-cffi_1.11.0.bb b/meta-python/recipes-devtools/python/python3-cffi_1.11.2.bb
index e888084347..e888084347 100644
--- a/meta-python/recipes-devtools/python/python3-cffi_1.11.0.bb
+++ b/meta-python/recipes-devtools/python/python3-cffi_1.11.2.bb
diff --git a/meta-python/recipes-devtools/python/python3-constantly_15.1.0.bb b/meta-python/recipes-devtools/python/python3-constantly_15.1.0.bb
new file mode 100644
index 0000000000..3f667540d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-constantly_15.1.0.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-constantly.inc
diff --git a/meta-python/recipes-devtools/python/python3-hyperlink_17.3.1.bb b/meta-python/recipes-devtools/python/python3-hyperlink_17.3.1.bb
new file mode 100644
index 0000000000..3d30af29ad
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-hyperlink_17.3.1.bb
@@ -0,0 +1,4 @@
+inherit setuptools3
+require python-hyperlink.inc
+
+RDEPENDS_${PN} += "${PYTHON_PN}-selectors ${PYTHON_PN}-enum"
diff --git a/meta-python/recipes-devtools/python/python3-incremental_17.5.0.bb b/meta-python/recipes-devtools/python/python3-incremental_17.5.0.bb
new file mode 100644
index 0000000000..0f04df4a67
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-incremental_17.5.0.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-incremental.inc
diff --git a/meta-python/recipes-devtools/python/python3-twisted_17.9.0.bb b/meta-python/recipes-devtools/python/python3-twisted_17.9.0.bb
index 98016cca39..d7533d8e70 100644
--- a/meta-python/recipes-devtools/python/python3-twisted_17.9.0.bb
+++ b/meta-python/recipes-devtools/python/python3-twisted_17.9.0.bb
@@ -1,7 +1,7 @@
inherit pypi setuptools3
require python-twisted.inc
-RDEPENDS_${PN}-core = "python3-core python3-zopeinterface python3-lang"
+RDEPENDS_${PN}-core += "python3-lang"
FILES_${PN}-core_append += " \
${libdir}/${PYTHON_DIR}/site-packages/twisted/__pycache__ \
diff --git a/meta-webserver/README b/meta-webserver/README
index 7b60630700..f2928ab6cc 100644
--- a/meta-webserver/README
+++ b/meta-webserver/README
@@ -13,14 +13,14 @@ This layer depends on:
URI: git://github.com/openembedded/oe-core.git
subdirectory: meta
-branch: master
+branch: rocko
revision: HEAD
For some recipes, the meta-oe layer is required:
URI: git://github.com/openembedded/meta-oe.git
subdirectory: meta-oe
-branch: master
+branch: rocko
revision: HEAD
diff --git a/meta-webserver/recipes-httpd/apache2/apache2-native_2.4.27.bb b/meta-webserver/recipes-httpd/apache2/apache2-native_2.4.27.bb
index 4e893dbba1..dcd397670b 100644
--- a/meta-webserver/recipes-httpd/apache2/apache2-native_2.4.27.bb
+++ b/meta-webserver/recipes-httpd/apache2/apache2-native_2.4.27.bb
@@ -10,6 +10,7 @@ inherit autotools pkgconfig native
SRC_URI = "${APACHE_MIRROR}/httpd/httpd-${PV}.tar.bz2 \
file://0001-configure-use-pkg-config-for-PCRE-detection.patch \
+ file://CVE-2018-1333.patch \
"
S = "${WORKDIR}/httpd-${PV}"
diff --git a/meta-webserver/recipes-httpd/apache2/apache2_2.4.27.bb b/meta-webserver/recipes-httpd/apache2/apache2_2.4.27.bb
index 18808676a4..280350006d 100644
--- a/meta-webserver/recipes-httpd/apache2/apache2_2.4.27.bb
+++ b/meta-webserver/recipes-httpd/apache2/apache2_2.4.27.bb
@@ -21,6 +21,7 @@ SRC_URI = "${APACHE_MIRROR}/httpd/httpd-${PV}.tar.bz2 \
file://apache2-volatile.conf \
file://apache2.service \
file://volatiles.04_apache2 \
+ file://CVE-2018-1333.patch \
"
LIC_FILES_CHKSUM = "file://LICENSE;md5=dbff5a2b542fa58854455bf1a0b94b83"
diff --git a/meta-webserver/recipes-httpd/apache2/files/CVE-2018-1333.patch b/meta-webserver/recipes-httpd/apache2/files/CVE-2018-1333.patch
new file mode 100644
index 0000000000..9cd207c041
--- /dev/null
+++ b/meta-webserver/recipes-httpd/apache2/files/CVE-2018-1333.patch
@@ -0,0 +1,44 @@
+From 83a2e3866918ce6567a683eb4c660688d047ee81 Mon Sep 17 00:00:00 2001
+From: Stefan Eissing <stefan.eissing@greenbytes.de>
+Date: Wed, 18 Apr 2018 11:55:17 +0200
+Subject: [PATCH] * fixes a race condition where aborting streams triggers an
+ unnecessary timeout.
+
+Note: Re-factored upstream fix
+https://github.com/icing/mod_h2/commit/83a2e3866918ce6567a683eb4c660688d047ee81,
+so that it applies to httpd v2.4.27 code. Similarly done at
+http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/http2/h2_bucket_beam.c?r1=1828879&r2=1828878&pathrev=1828879
+
+CVE: CVE-2018-1333
+Upstream-Status: Backport [https://github.com/icing/mod_h2/commit/83a2e3866918ce6567a683eb4c660688d047ee81]
+
+Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com>
+
+diff -Naurp httpd-2.4.27_org/modules/http2/h2_bucket_beam.c httpd-2.4.27/modules/http2/h2_bucket_beam.c
+--- httpd-2.4.27_org/modules/http2/h2_bucket_beam.c 2017-04-21 06:52:05.000000000 -0700
++++ httpd-2.4.27/modules/http2/h2_bucket_beam.c 2018-07-24 23:44:40.888330955 -0700
+@@ -512,6 +512,7 @@ static void recv_buffer_cleanup(h2_bucke
+ apr_brigade_destroy(bb);
+ if (bl) enter_yellow(beam, bl);
+
++ apr_thread_cond_broadcast(beam->change);
+ if (beam->cons_ev_cb) {
+ beam->cons_ev_cb(beam->cons_ctx, beam);
+ }
+@@ -685,12 +686,10 @@ void h2_beam_abort(h2_bucket_beam *beam)
+ h2_beam_lock bl;
+
+ if (enter_yellow(beam, &bl) == APR_SUCCESS) {
+- if (!beam->aborted) {
+- beam->aborted = 1;
+- r_purge_sent(beam);
+- h2_blist_cleanup(&beam->send_list);
+- report_consumption(beam, &bl);
+- }
++ beam->aborted = 1;
++ r_purge_sent(beam);
++ h2_blist_cleanup(&beam->send_list);
++ report_consumption(beam, &bl);
+ if (beam->cond) {
+ apr_thread_cond_broadcast(beam->cond);
+ }
diff --git a/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_4.7.3.bb b/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_4.7.6.bb
index 9949a73954..672db58dca 100644
--- a/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_4.7.3.bb
+++ b/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_4.7.6.bb
@@ -11,8 +11,8 @@ SRC_URI = "https://files.phpmyadmin.net/phpMyAdmin/${PV}/phpMyAdmin-${PV}-all-la
file://apache.conf \
"
-SRC_URI[md5sum] = "4b0c5dbaf871eb86671613da3c31e6b3"
-SRC_URI[sha256sum] = "ed51669043f62494dc3bc21a87423373164ff63865a6c6bceaee535ef785f33e"
+SRC_URI[md5sum] = "a9aec05d44c68b4ac5e4987118d70cd7"
+SRC_URI[sha256sum] = "5fab6b92336386646bbb189d55817799487b5c27b06cab0cdfdcab3c88f5988f"
S = "${WORKDIR}/phpMyAdmin-${PV}-all-languages"
diff --git a/meta-xfce/README b/meta-xfce/README
index 33ef5096e8..33677973d3 100644
--- a/meta-xfce/README
+++ b/meta-xfce/README
@@ -1,11 +1,11 @@
This layer depends on:
URI: git://github.com/openembedded/oe-core.git
-branch: master
+branch: rocko
revision: HEAD
URI: git://github.com/openembedded/meta-oe.git
-branch: master
+branch: rocko
revision: HEAD
meta-xfce depends on meta-oe, meta-gnome and meta-multimedia in this repository.
@@ -14,9 +14,10 @@ this to local.conf:
BBMASK = "meta-xfce/recipes-multimedia"
-Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-xfce]' in the subject'
+Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-xfce][rocko]' in the subject'
When sending single patches, please using something like:
-'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-xfce][PATCH'
+'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-xfce][rocko][PATCH'
-Interim layer maintainer: Andreas Müller <schnitzeltony@googlemail.com>
+rocko Branch Maintainer:
+Armin Kuster <akuster808@gmail.com>
diff --git a/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.1.bb b/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.1.bb
index 06dea64b38..e449dceed0 100644
--- a/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.1.bb
+++ b/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.1.bb
@@ -12,6 +12,7 @@ SRC_URI[sha256sum] = "e62b31d9cf06a7414a26400c2ebe7a2ae7c2b22aa60f997f25145ea9eb
do_compile_prepend() {
mkdir -p lib
+ mkdir -p src
}
FILES_${PN} += " \