summaryrefslogtreecommitdiff
path: root/debian/patches
diff options
context:
space:
mode:
authorSalvatore Bonaccorso <carnil@debian.org>2017-02-17 14:56:09 +0000
committerSalvatore Bonaccorso <carnil@debian.org>2017-02-17 14:56:09 +0000
commit8d5e97cbd510924d2ca139796d67f07695834612 (patch)
treeb9efad95437bd9ece7bf6d5e29a81a8544d5fa24 /debian/patches
pcre3 (2:8.39-2.1) unstable; urgency=high
* Non-maintainer upload. * CVE-2017-6004: crafted regular expression may cause denial of service (Closes: #855405) # imported from the archive
Diffstat (limited to 'debian/patches')
-rw-r--r--debian/patches/CVE-2017-6004.patch19
-rw-r--r--debian/patches/Disable_JIT_on_sparc64.patch25
-rw-r--r--debian/patches/PCRE6_compatible_API.patch53
-rw-r--r--debian/patches/no_jit_x32_powerpcspe.patch38
-rw-r--r--debian/patches/pcre_info.patch394
-rw-r--r--debian/patches/pcregrep.1-patch30
-rw-r--r--debian/patches/pcreposix.patch36
-rw-r--r--debian/patches/series8
-rw-r--r--debian/patches/soname.patch28
9 files changed, 631 insertions, 0 deletions
diff --git a/debian/patches/CVE-2017-6004.patch b/debian/patches/CVE-2017-6004.patch
new file mode 100644
index 0000000..afec3f8
--- /dev/null
+++ b/debian/patches/CVE-2017-6004.patch
@@ -0,0 +1,19 @@
+Description: CVE-2017-6004: crafted regular expression may cause denial of service
+Origin: upstream, https://vcs.pcre.org/pcre/code/trunk/pcre_jit_compile.c?r1=1676&r2=1680&view=patch
+Bug: https://bugs.exim.org/show_bug.cgi?id=2035
+Bug-Debian: https://bugs.debian.org/855405
+Forwarded: not-needed
+Author: Salvatore Bonaccorso <carnil@debian.org>
+Last-Update: 2017-02-17
+
+--- a/pcre_jit_compile.c
++++ b/pcre_jit_compile.c
+@@ -8111,7 +8111,7 @@ if (opcode == OP_COND || opcode == OP_SC
+
+ if (*matchingpath == OP_FAIL)
+ stacksize = 0;
+- if (*matchingpath == OP_RREF)
++ else if (*matchingpath == OP_RREF)
+ {
+ stacksize = GET2(matchingpath, 1);
+ if (common->currententry == NULL)
diff --git a/debian/patches/Disable_JIT_on_sparc64.patch b/debian/patches/Disable_JIT_on_sparc64.patch
new file mode 100644
index 0000000..7583e4d
--- /dev/null
+++ b/debian/patches/Disable_JIT_on_sparc64.patch
@@ -0,0 +1,25 @@
+From: Matthew Vernon <matthew@debian.org>
+Date: Wed, 13 Jul 2016 21:20:13 +0100
+Subject: Disable_JIT_on_sparc64
+
+---
+ sljit/sljitConfigInternal.h | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/sljit/sljitConfigInternal.h b/sljit/sljitConfigInternal.h
+index b2bc80a..2d031f5 100644
+--- a/sljit/sljitConfigInternal.h
++++ b/sljit/sljitConfigInternal.h
+@@ -145,7 +145,11 @@
+ #elif defined(__mips64)
+ #define SLJIT_CONFIG_MIPS_64 1
+ #elif defined(__sparc__) || defined(__sparc)
+-#define SLJIT_CONFIG_SPARC_32 1
++# if defined(__arch64__)
++# define SLJIT_CONFIG_UNSUPPORTED 1
++# else
++# define SLJIT_CONFIG_SPARC_32 1
++# endif
+ #elif defined(__tilegx__)
+ #define SLJIT_CONFIG_TILEGX 1
+ #else
diff --git a/debian/patches/PCRE6_compatible_API.patch b/debian/patches/PCRE6_compatible_API.patch
new file mode 100644
index 0000000..e2d1d83
--- /dev/null
+++ b/debian/patches/PCRE6_compatible_API.patch
@@ -0,0 +1,53 @@
+From: Mark Baker <mark@mnb.org.uk>
+Date: Wed, 13 Jul 2016 21:20:13 +0100
+Subject: PCRE6_compatible_API
+
+---
+ pcrecpp.cc | 6 ++++++
+ pcrecpp.h | 2 ++
+ pcretest.c | 2 +-
+ 3 files changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/pcrecpp.cc b/pcrecpp.cc
+index d09c9ab..728b074 100644
+--- a/pcrecpp.cc
++++ b/pcrecpp.cc
+@@ -80,6 +80,12 @@ static const string empty_string;
+ // If the user doesn't ask for any options, we just use this one
+ static RE_Options default_options;
+
++// PCRE6.x compatible API
++void RE::Init(const char *c_pat, const RE_Options* options) {
++ const string cxx_pat(c_pat);
++ Init(cxx_pat, options);
++}
++
+ void RE::Init(const string& pat, const RE_Options* options) {
+ pattern_ = pat;
+ if (options == NULL) {
+diff --git a/pcrecpp.h b/pcrecpp.h
+index 3e594b0..a520057 100644
+--- a/pcrecpp.h
++++ b/pcrecpp.h
+@@ -658,6 +658,8 @@ class PCRECPP_EXP_DEFN RE {
+ private:
+
+ void Init(const string& pattern, const RE_Options* options);
++ // Old version from PCRE 6.x, for compatibility
++ void Init(const char *pattern, const RE_Options* options);
+ void Cleanup();
+
+ // Match against "text", filling in "vec" (up to "vecsize" * 2/3) with
+diff --git a/pcretest.c b/pcretest.c
+index 78ef517..f42f0a3 100644
+--- a/pcretest.c
++++ b/pcretest.c
+@@ -2984,7 +2984,7 @@ int main(int argc, char **argv)
+ {
+ FILE *infile = stdin;
+ const char *version;
+-int options = 0;
++long int options = 0;
+ int study_options = 0;
+ int default_find_match_limit = FALSE;
+ pcre_uint32 default_options = 0;
diff --git a/debian/patches/no_jit_x32_powerpcspe.patch b/debian/patches/no_jit_x32_powerpcspe.patch
new file mode 100644
index 0000000..af4fcdc
--- /dev/null
+++ b/debian/patches/no_jit_x32_powerpcspe.patch
@@ -0,0 +1,38 @@
+From: Matthew Vernon <matthew@debian.org>
+Date: Wed, 13 Jul 2016 21:20:13 +0100
+Subject: no_jit_x32_powerpcspe
+
+---
+ sljit/sljitConfigInternal.h | 12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/sljit/sljitConfigInternal.h b/sljit/sljitConfigInternal.h
+index 9275b14..b2bc80a 100644
+--- a/sljit/sljitConfigInternal.h
++++ b/sljit/sljitConfigInternal.h
+@@ -117,7 +117,11 @@
+ #if defined(__i386__) || defined(__i386)
+ #define SLJIT_CONFIG_X86_32 1
+ #elif defined(__x86_64__)
+-#define SLJIT_CONFIG_X86_64 1
++# if defined(__ILP32__)
++# define SLJIT_CONFIG_UNSUPPORTED 1
++# else
++# define SLJIT_CONFIG_X86_64 1
++# endif
+ #elif defined(__arm__) || defined(__ARM__)
+ #ifdef __thumb2__
+ #define SLJIT_CONFIG_ARM_THUMB2 1
+@@ -131,7 +135,11 @@
+ #elif defined(__ppc64__) || defined(__powerpc64__) || defined(_ARCH_PPC64) || (defined(_POWER) && defined(__64BIT__))
+ #define SLJIT_CONFIG_PPC_64 1
+ #elif defined(__ppc__) || defined(__powerpc__) || defined(_ARCH_PPC) || defined(_ARCH_PWR) || defined(_ARCH_PWR2) || defined(_POWER)
+-#define SLJIT_CONFIG_PPC_32 1
++# ifndef __NO_FPRS__
++# define SLJIT_CONFIG_PPC_32 1
++# else
++# define SLJIT_CONFIG_UNSUPPORTED 1
++# endif
+ #elif defined(__mips__) && !defined(_LP64)
+ #define SLJIT_CONFIG_MIPS_32 1
+ #elif defined(__mips64)
diff --git a/debian/patches/pcre_info.patch b/debian/patches/pcre_info.patch
new file mode 100644
index 0000000..f913353
--- /dev/null
+++ b/debian/patches/pcre_info.patch
@@ -0,0 +1,394 @@
+From: Mark Baker <mark@mnb.org.uk>
+Date: Wed, 13 Jul 2016 21:20:13 +0100
+Subject: pcre_info
+
+---
+ Makefile.am | 3 ++-
+ Makefile.in | 79 ++++++++++++++++++++++++++++-------------------------
+ pcre_info.c | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 134 insertions(+), 38 deletions(-)
+ create mode 100644 pcre_info.c
+
+diff --git a/Makefile.am b/Makefile.am
+index 22b6947..59c564a 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -233,6 +233,7 @@ libpcre_la_SOURCES = \
+ pcre_fullinfo.c \
+ pcre_get.c \
+ pcre_globals.c \
++ pcre_info.c \
+ pcre_internal.h \
+ pcre_jit_compile.c \
+ pcre_maketables.c \
+@@ -648,7 +649,7 @@ test: check ;
+ # nice DLL for Windows use". (It is used by the pcre.dll target.)
+ DLL_OBJS= pcre_byte_order.o pcre_compile.o pcre_config.o \
+ pcre_dfa_exec.o pcre_exec.o pcre_fullinfo.o pcre_get.o \
+- pcre_globals.o pcre_jit_compile.o pcre_maketables.o \
++ pcre_globals.o pcre_info.o pcre_jit_compile.o pcre_maketables.o \
+ pcre_newline.o pcre_ord2utf8.o pcre_refcount.o \
+ pcre_study.o pcre_tables.o pcre_ucd.o \
+ pcre_valid_utf8.o pcre_version.o pcre_chartables.o \
+diff --git a/Makefile.in b/Makefile.in
+index 6d03912..22c1ae9 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -218,11 +218,11 @@ LTLIBRARIES = $(lib_LTLIBRARIES)
+ libpcre_la_DEPENDENCIES =
+ am__libpcre_la_SOURCES_DIST = pcre_byte_order.c pcre_compile.c \
+ pcre_config.c pcre_dfa_exec.c pcre_exec.c pcre_fullinfo.c \
+- pcre_get.c pcre_globals.c pcre_internal.h pcre_jit_compile.c \
+- pcre_maketables.c pcre_newline.c pcre_ord2utf8.c \
+- pcre_refcount.c pcre_string_utils.c pcre_study.c pcre_tables.c \
+- pcre_ucd.c pcre_valid_utf8.c pcre_version.c pcre_xclass.c \
+- ucp.h
++ pcre_get.c pcre_globals.c pcre_info.c pcre_internal.h \
++ pcre_jit_compile.c pcre_maketables.c pcre_newline.c \
++ pcre_ord2utf8.c pcre_refcount.c pcre_string_utils.c \
++ pcre_study.c pcre_tables.c pcre_ucd.c pcre_valid_utf8.c \
++ pcre_version.c pcre_xclass.c ucp.h
+ @WITH_PCRE8_TRUE@am_libpcre_la_OBJECTS = \
+ @WITH_PCRE8_TRUE@ libpcre_la-pcre_byte_order.lo \
+ @WITH_PCRE8_TRUE@ libpcre_la-pcre_compile.lo \
+@@ -232,6 +232,7 @@ am__libpcre_la_SOURCES_DIST = pcre_byte_order.c pcre_compile.c \
+ @WITH_PCRE8_TRUE@ libpcre_la-pcre_fullinfo.lo \
+ @WITH_PCRE8_TRUE@ libpcre_la-pcre_get.lo \
+ @WITH_PCRE8_TRUE@ libpcre_la-pcre_globals.lo \
++@WITH_PCRE8_TRUE@ libpcre_la-pcre_info.lo \
+ @WITH_PCRE8_TRUE@ libpcre_la-pcre_jit_compile.lo \
+ @WITH_PCRE8_TRUE@ libpcre_la-pcre_maketables.lo \
+ @WITH_PCRE8_TRUE@ libpcre_la-pcre_newline.lo \
+@@ -251,7 +252,7 @@ libpcre_la_OBJECTS = $(am_libpcre_la_OBJECTS) \
+ AM_V_lt = $(am__v_lt_@AM_V@)
+ am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+ am__v_lt_0 = --silent
+-am__v_lt_1 =
++am__v_lt_1 =
+ libpcre_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libpcre_la_CFLAGS) \
+ $(CFLAGS) $(libpcre_la_LDFLAGS) $(LDFLAGS) -o $@
+@@ -449,11 +450,11 @@ am__v_P_1 = :
+ AM_V_GEN = $(am__v_GEN_@AM_V@)
+ am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+ am__v_GEN_0 = @echo " GEN " $@;
+-am__v_GEN_1 =
++am__v_GEN_1 =
+ AM_V_at = $(am__v_at_@AM_V@)
+ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+ am__v_at_0 = @
+-am__v_at_1 =
++am__v_at_1 =
+ DEFAULT_INCLUDES = -I.@am__isrc@
+ depcomp = $(SHELL) $(top_srcdir)/depcomp
+ am__depfiles_maybe = depfiles
+@@ -467,7 +468,7 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ AM_V_CC = $(am__v_CC_@AM_V@)
+ am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+ am__v_CC_0 = @echo " CC " $@;
+-am__v_CC_1 =
++am__v_CC_1 =
+ CCLD = $(CC)
+ LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+@@ -475,7 +476,7 @@ LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+ am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+ am__v_CCLD_0 = @echo " CCLD " $@;
+-am__v_CCLD_1 =
++am__v_CCLD_1 =
+ CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+ LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
+@@ -485,7 +486,7 @@ LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
+ AM_V_CXX = $(am__v_CXX_@AM_V@)
+ am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
+ am__v_CXX_0 = @echo " CXX " $@;
+-am__v_CXX_1 =
++am__v_CXX_1 =
+ CXXLD = $(CXX)
+ CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+@@ -493,7 +494,7 @@ CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
+ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
+ am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
+ am__v_CXXLD_0 = @echo " CXXLD " $@;
+-am__v_CXXLD_1 =
++am__v_CXXLD_1 =
+ SOURCES = $(libpcre_la_SOURCES) $(nodist_libpcre_la_SOURCES) \
+ $(libpcre16_la_SOURCES) $(nodist_libpcre16_la_SOURCES) \
+ $(libpcre32_la_SOURCES) $(nodist_libpcre32_la_SOURCES) \
+@@ -832,9 +833,6 @@ PCRE_MAJOR = @PCRE_MAJOR@
+ PCRE_MINOR = @PCRE_MINOR@
+ PCRE_PRERELEASE = @PCRE_PRERELEASE@
+ PCRE_STATIC_CFLAG = @PCRE_STATIC_CFLAG@
+-PKG_CONFIG = @PKG_CONFIG@
+-PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+-PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+ PTHREAD_CC = @PTHREAD_CC@
+ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+ PTHREAD_LIBS = @PTHREAD_LIBS@
+@@ -844,8 +842,6 @@ SET_MAKE = @SET_MAKE@
+ SHELL = @SHELL@
+ SHTOOL = @SHTOOL@
+ STRIP = @STRIP@
+-VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
+-VALGRIND_LIBS = @VALGRIND_LIBS@
+ VERSION = @VERSION@
+ VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+ VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
+@@ -988,7 +984,7 @@ dist_noinst_DATA = $(pcrecpp_html)
+ # The Libtool libraries to install. We'll add to this later.
+ lib_LTLIBRARIES = $(am__append_4) $(am__append_5) $(am__append_6) \
+ $(am__append_20) $(am__append_22)
+-check_SCRIPTS =
++check_SCRIPTS =
+ dist_noinst_SCRIPTS = RunTest $(am__append_39)
+
+ # Additional files to delete on 'make clean' and 'make maintainer-clean'.
+@@ -1093,6 +1089,7 @@ BUILT_SOURCES = pcre_chartables.c
+ @WITH_PCRE8_TRUE@ pcre_fullinfo.c \
+ @WITH_PCRE8_TRUE@ pcre_get.c \
+ @WITH_PCRE8_TRUE@ pcre_globals.c \
++@WITH_PCRE8_TRUE@ pcre_info.c \
+ @WITH_PCRE8_TRUE@ pcre_internal.h \
+ @WITH_PCRE8_TRUE@ pcre_jit_compile.c \
+ @WITH_PCRE8_TRUE@ pcre_maketables.c \
+@@ -1110,7 +1107,7 @@ BUILT_SOURCES = pcre_chartables.c
+
+ @WITH_PCRE8_TRUE@libpcre_la_CFLAGS = $(VISIBILITY_CFLAGS) $(AM_CFLAGS) \
+ @WITH_PCRE8_TRUE@ $(am__append_7) $(am__append_10)
+-@WITH_PCRE8_TRUE@libpcre_la_LIBADD =
++@WITH_PCRE8_TRUE@libpcre_la_LIBADD =
+ @WITH_PCRE8_TRUE@nodist_libpcre_la_SOURCES = \
+ @WITH_PCRE8_TRUE@ pcre_chartables.c
+
+@@ -1141,7 +1138,7 @@ BUILT_SOURCES = pcre_chartables.c
+ @WITH_PCRE16_TRUE@libpcre16_la_CFLAGS = $(VISIBILITY_CFLAGS) \
+ @WITH_PCRE16_TRUE@ $(AM_CFLAGS) $(am__append_8) \
+ @WITH_PCRE16_TRUE@ $(am__append_11)
+-@WITH_PCRE16_TRUE@libpcre16_la_LIBADD =
++@WITH_PCRE16_TRUE@libpcre16_la_LIBADD =
+ @WITH_PCRE16_TRUE@nodist_libpcre16_la_SOURCES = \
+ @WITH_PCRE16_TRUE@ pcre_chartables.c
+
+@@ -1172,7 +1169,7 @@ BUILT_SOURCES = pcre_chartables.c
+ @WITH_PCRE32_TRUE@libpcre32_la_CFLAGS = $(VISIBILITY_CFLAGS) \
+ @WITH_PCRE32_TRUE@ $(AM_CFLAGS) $(am__append_9) \
+ @WITH_PCRE32_TRUE@ $(am__append_12)
+-@WITH_PCRE32_TRUE@libpcre32_la_LIBADD =
++@WITH_PCRE32_TRUE@libpcre32_la_LIBADD =
+ @WITH_PCRE32_TRUE@nodist_libpcre32_la_SOURCES = \
+ @WITH_PCRE32_TRUE@ pcre_chartables.c
+
+@@ -1227,7 +1224,7 @@ pcretest_LDADD = $(LIBREADLINE) $(am__append_30) $(am__append_32) \
+ # nice DLL for Windows use". (It is used by the pcre.dll target.)
+ DLL_OBJS = pcre_byte_order.o pcre_compile.o pcre_config.o \
+ pcre_dfa_exec.o pcre_exec.o pcre_fullinfo.o pcre_get.o \
+- pcre_globals.o pcre_jit_compile.o pcre_maketables.o \
++ pcre_globals.o pcre_info.o pcre_jit_compile.o pcre_maketables.o \
+ pcre_newline.o pcre_ord2utf8.o pcre_refcount.o \
+ pcre_study.o pcre_tables.o pcre_ucd.o \
+ pcre_valid_utf8.o pcre_version.o pcre_chartables.o \
+@@ -1313,8 +1310,8 @@ pcrecpp_man = doc/pcrecpp.3
+ @WITH_GCOV_TRUE@COVERAGE_NAME = $(PACKAGE)-$(VERSION)
+ @WITH_GCOV_TRUE@COVERAGE_OUTPUT_FILE = $(COVERAGE_NAME)-coverage.info
+ @WITH_GCOV_TRUE@COVERAGE_OUTPUT_DIR = $(COVERAGE_NAME)-coverage
+-@WITH_GCOV_TRUE@COVERAGE_LCOV_EXTRA_FLAGS =
+-@WITH_GCOV_TRUE@COVERAGE_GENHTML_EXTRA_FLAGS =
++@WITH_GCOV_TRUE@COVERAGE_LCOV_EXTRA_FLAGS =
++@WITH_GCOV_TRUE@COVERAGE_GENHTML_EXTRA_FLAGS =
+ @WITH_GCOV_TRUE@coverage_quiet = $(coverage_quiet_$(V))
+ @WITH_GCOV_TRUE@coverage_quiet_ = $(coverage_quiet_$(AM_DEFAULT_VERBOSITY))
+ @WITH_GCOV_TRUE@coverage_quiet_0 = --quiet
+@@ -1364,7 +1361,7 @@ config.h: stamp-h1
+ stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
+ @rm -f stamp-h1
+ cd $(top_builddir) && $(SHELL) ./config.status config.h
+-$(srcdir)/config.h.in: $(am__configure_deps)
++$(srcdir)/config.h.in: $(am__configure_deps)
+ ($(am__cd) $(top_srcdir) && $(AUTOHEADER))
+ rm -f stamp-h1
+ touch $@
+@@ -1425,19 +1422,19 @@ clean-libLTLIBRARIES:
+ rm -f $${locs}; \
+ }
+
+-libpcre.la: $(libpcre_la_OBJECTS) $(libpcre_la_DEPENDENCIES) $(EXTRA_libpcre_la_DEPENDENCIES)
++libpcre.la: $(libpcre_la_OBJECTS) $(libpcre_la_DEPENDENCIES) $(EXTRA_libpcre_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libpcre_la_LINK) $(am_libpcre_la_rpath) $(libpcre_la_OBJECTS) $(libpcre_la_LIBADD) $(LIBS)
+
+-libpcre16.la: $(libpcre16_la_OBJECTS) $(libpcre16_la_DEPENDENCIES) $(EXTRA_libpcre16_la_DEPENDENCIES)
++libpcre16.la: $(libpcre16_la_OBJECTS) $(libpcre16_la_DEPENDENCIES) $(EXTRA_libpcre16_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libpcre16_la_LINK) $(am_libpcre16_la_rpath) $(libpcre16_la_OBJECTS) $(libpcre16_la_LIBADD) $(LIBS)
+
+-libpcre32.la: $(libpcre32_la_OBJECTS) $(libpcre32_la_DEPENDENCIES) $(EXTRA_libpcre32_la_DEPENDENCIES)
++libpcre32.la: $(libpcre32_la_OBJECTS) $(libpcre32_la_DEPENDENCIES) $(EXTRA_libpcre32_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libpcre32_la_LINK) $(am_libpcre32_la_rpath) $(libpcre32_la_OBJECTS) $(libpcre32_la_LIBADD) $(LIBS)
+
+-libpcrecpp.la: $(libpcrecpp_la_OBJECTS) $(libpcrecpp_la_DEPENDENCIES) $(EXTRA_libpcrecpp_la_DEPENDENCIES)
++libpcrecpp.la: $(libpcrecpp_la_OBJECTS) $(libpcrecpp_la_DEPENDENCIES) $(EXTRA_libpcrecpp_la_DEPENDENCIES)
+ $(AM_V_CXXLD)$(libpcrecpp_la_LINK) $(am_libpcrecpp_la_rpath) $(libpcrecpp_la_OBJECTS) $(libpcrecpp_la_LIBADD) $(LIBS)
+
+-libpcreposix.la: $(libpcreposix_la_OBJECTS) $(libpcreposix_la_DEPENDENCIES) $(EXTRA_libpcreposix_la_DEPENDENCIES)
++libpcreposix.la: $(libpcreposix_la_OBJECTS) $(libpcreposix_la_DEPENDENCIES) $(EXTRA_libpcreposix_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libpcreposix_la_LINK) $(am_libpcreposix_la_rpath) $(libpcreposix_la_OBJECTS) $(libpcreposix_la_LIBADD) $(LIBS)
+ install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+@@ -1498,31 +1495,31 @@ clean-noinstPROGRAMS:
+ echo " rm -f" $$list; \
+ rm -f $$list
+
+-dftables$(EXEEXT): $(dftables_OBJECTS) $(dftables_DEPENDENCIES) $(EXTRA_dftables_DEPENDENCIES)
++dftables$(EXEEXT): $(dftables_OBJECTS) $(dftables_DEPENDENCIES) $(EXTRA_dftables_DEPENDENCIES)
+ @rm -f dftables$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(dftables_OBJECTS) $(dftables_LDADD) $(LIBS)
+
+-pcre_jit_test$(EXEEXT): $(pcre_jit_test_OBJECTS) $(pcre_jit_test_DEPENDENCIES) $(EXTRA_pcre_jit_test_DEPENDENCIES)
++pcre_jit_test$(EXEEXT): $(pcre_jit_test_OBJECTS) $(pcre_jit_test_DEPENDENCIES) $(EXTRA_pcre_jit_test_DEPENDENCIES)
+ @rm -f pcre_jit_test$(EXEEXT)
+ $(AM_V_CCLD)$(pcre_jit_test_LINK) $(pcre_jit_test_OBJECTS) $(pcre_jit_test_LDADD) $(LIBS)
+
+-pcre_scanner_unittest$(EXEEXT): $(pcre_scanner_unittest_OBJECTS) $(pcre_scanner_unittest_DEPENDENCIES) $(EXTRA_pcre_scanner_unittest_DEPENDENCIES)
++pcre_scanner_unittest$(EXEEXT): $(pcre_scanner_unittest_OBJECTS) $(pcre_scanner_unittest_DEPENDENCIES) $(EXTRA_pcre_scanner_unittest_DEPENDENCIES)
+ @rm -f pcre_scanner_unittest$(EXEEXT)
+ $(AM_V_CXXLD)$(pcre_scanner_unittest_LINK) $(pcre_scanner_unittest_OBJECTS) $(pcre_scanner_unittest_LDADD) $(LIBS)
+
+-pcre_stringpiece_unittest$(EXEEXT): $(pcre_stringpiece_unittest_OBJECTS) $(pcre_stringpiece_unittest_DEPENDENCIES) $(EXTRA_pcre_stringpiece_unittest_DEPENDENCIES)
++pcre_stringpiece_unittest$(EXEEXT): $(pcre_stringpiece_unittest_OBJECTS) $(pcre_stringpiece_unittest_DEPENDENCIES) $(EXTRA_pcre_stringpiece_unittest_DEPENDENCIES)
+ @rm -f pcre_stringpiece_unittest$(EXEEXT)
+ $(AM_V_CXXLD)$(pcre_stringpiece_unittest_LINK) $(pcre_stringpiece_unittest_OBJECTS) $(pcre_stringpiece_unittest_LDADD) $(LIBS)
+
+-pcrecpp_unittest$(EXEEXT): $(pcrecpp_unittest_OBJECTS) $(pcrecpp_unittest_DEPENDENCIES) $(EXTRA_pcrecpp_unittest_DEPENDENCIES)
++pcrecpp_unittest$(EXEEXT): $(pcrecpp_unittest_OBJECTS) $(pcrecpp_unittest_DEPENDENCIES) $(EXTRA_pcrecpp_unittest_DEPENDENCIES)
+ @rm -f pcrecpp_unittest$(EXEEXT)
+ $(AM_V_CXXLD)$(pcrecpp_unittest_LINK) $(pcrecpp_unittest_OBJECTS) $(pcrecpp_unittest_LDADD) $(LIBS)
+
+-pcregrep$(EXEEXT): $(pcregrep_OBJECTS) $(pcregrep_DEPENDENCIES) $(EXTRA_pcregrep_DEPENDENCIES)
++pcregrep$(EXEEXT): $(pcregrep_OBJECTS) $(pcregrep_DEPENDENCIES) $(EXTRA_pcregrep_DEPENDENCIES)
+ @rm -f pcregrep$(EXEEXT)
+ $(AM_V_CCLD)$(pcregrep_LINK) $(pcregrep_OBJECTS) $(pcregrep_LDADD) $(LIBS)
+
+-pcretest$(EXEEXT): $(pcretest_OBJECTS) $(pcretest_DEPENDENCIES) $(EXTRA_pcretest_DEPENDENCIES)
++pcretest$(EXEEXT): $(pcretest_OBJECTS) $(pcretest_DEPENDENCIES) $(EXTRA_pcretest_DEPENDENCIES)
+ @rm -f pcretest$(EXEEXT)
+ $(AM_V_CCLD)$(pcretest_LINK) $(pcretest_OBJECTS) $(pcretest_LDADD) $(LIBS)
+ install-binSCRIPTS: $(bin_SCRIPTS)
+@@ -1623,6 +1620,7 @@ distclean-compile:
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpcre_la-pcre_fullinfo.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpcre_la-pcre_get.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpcre_la-pcre_globals.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpcre_la-pcre_info.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpcre_la-pcre_jit_compile.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpcre_la-pcre_maketables.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpcre_la-pcre_newline.Plo@am__quote@
+@@ -1726,6 +1724,13 @@ libpcre_la-pcre_globals.lo: pcre_globals.c
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre_la_CFLAGS) $(CFLAGS) -c -o libpcre_la-pcre_globals.lo `test -f 'pcre_globals.c' || echo '$(srcdir)/'`pcre_globals.c
+
++libpcre_la-pcre_info.lo: pcre_info.c
++@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre_la_CFLAGS) $(CFLAGS) -MT libpcre_la-pcre_info.lo -MD -MP -MF $(DEPDIR)/libpcre_la-pcre_info.Tpo -c -o libpcre_la-pcre_info.lo `test -f 'pcre_info.c' || echo '$(srcdir)/'`pcre_info.c
++@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libpcre_la-pcre_info.Tpo $(DEPDIR)/libpcre_la-pcre_info.Plo
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pcre_info.c' object='libpcre_la-pcre_info.lo' libtool=yes @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre_la_CFLAGS) $(CFLAGS) -c -o libpcre_la-pcre_info.lo `test -f 'pcre_info.c' || echo '$(srcdir)/'`pcre_info.c
++
+ libpcre_la-pcre_jit_compile.lo: pcre_jit_compile.c
+ @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre_la_CFLAGS) $(CFLAGS) -MT libpcre_la-pcre_jit_compile.lo -MD -MP -MF $(DEPDIR)/libpcre_la-pcre_jit_compile.Tpo -c -o libpcre_la-pcre_jit_compile.lo `test -f 'pcre_jit_compile.c' || echo '$(srcdir)/'`pcre_jit_compile.c
+ @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libpcre_la-pcre_jit_compile.Tpo $(DEPDIR)/libpcre_la-pcre_jit_compile.Plo
+diff --git a/pcre_info.c b/pcre_info.c
+new file mode 100644
+index 0000000..17dafea
+--- /dev/null
++++ b/pcre_info.c
+@@ -0,0 +1,90 @@
++/*************************************************
++* Perl-Compatible Regular Expressions *
++*************************************************/
++
++/* PCRE is a library of functions to support regular expressions whose syntax
++and semantics are as close as possible to those of the Perl 5 language.
++
++ Written by Philip Hazel
++ Copyright (c) 1997-2009 University of Cambridge
++
++-----------------------------------------------------------------------------
++Redistribution and use in source and binary forms, with or without
++modification, are permitted provided that the following conditions are met:
++
++ * Redistributions of source code must retain the above copyright notice,
++ this list of conditions and the following disclaimer.
++
++ * Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++
++ * Neither the name of the University of Cambridge nor the names of its
++ contributors may be used to endorse or promote products derived from
++ this software without specific prior written permission.
++
++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
++AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
++LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
++CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
++SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
++INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
++CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
++ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
++POSSIBILITY OF SUCH DAMAGE.
++-----------------------------------------------------------------------------
++*/
++
++
++/* This module contains the external function pcre_info(), which gives some
++information about a compiled pattern. However, use of this function is now
++deprecated, as it has been superseded by pcre_fullinfo(). */
++
++
++#ifdef HAVE_CONFIG_H
++#include "config.h"
++#endif
++
++#include "pcre_internal.h"
++
++
++/*************************************************
++* (Obsolete) Return info about compiled pattern *
++*************************************************/
++
++/* This is the original "info" function. It picks potentially useful data out
++of the private structure, but its interface was too rigid. It remains for
++backwards compatibility. The public options are passed back in an int - though
++the re->options field has been expanded to a long int, all the public options
++at the low end of it, and so even on 16-bit systems this will still be OK.
++Therefore, I haven't changed the API for pcre_info().
++
++Arguments:
++ argument_re points to compiled code
++ optptr where to pass back the options
++ first_byte where to pass back the first character,
++ or -1 if multiline and all branches start ^,
++ or -2 otherwise
++
++Returns: number of capturing subpatterns
++ or negative values on error
++*/
++
++PCRE_EXP_DEFN int PCRE_CALL_CONVENTION
++pcre_info(const pcre *argument_re, int *optptr, int *first_byte)
++{
++const real_pcre *re = (const real_pcre *)argument_re;
++if (re == NULL) return PCRE_ERROR_NULL;
++if (re->magic_number != MAGIC_NUMBER)
++ return PCRE_ERROR_BADMAGIC;
++
++if (optptr != NULL) *optptr = (int)(re->options & PUBLIC_COMPILE_OPTIONS);
++if (first_byte != NULL)
++ *first_byte = ((re->flags & PCRE_FIRSTSET) != 0)? re->first_char :
++ ((re->flags & PCRE_STARTLINE) != 0)? -1 : -2;
++return re->top_bracket;
++}
++
++/* End of pcre_info.c */
diff --git a/debian/patches/pcregrep.1-patch b/debian/patches/pcregrep.1-patch
new file mode 100644
index 0000000..4ecab6f
--- /dev/null
+++ b/debian/patches/pcregrep.1-patch
@@ -0,0 +1,30 @@
+From: Mark Baker <mark@mnb.org.uk>
+Date: Wed, 13 Jul 2016 21:20:13 +0100
+Subject: pcregrep.1-patch
+
+---
+ doc/pcregrep.1 | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/doc/pcregrep.1 b/doc/pcregrep.1
+index 9886675..07b8f57 100644
+--- a/doc/pcregrep.1
++++ b/doc/pcregrep.1
+@@ -3,6 +3,7 @@
+ pcregrep - a grep with Perl-compatible regular expressions.
+ .SH SYNOPSIS
+ .B pcregrep [options] [long options] [pattern] [path1 path2 ...]
++.B zpcregrep [options] [long options] [pattern] [file1 file2 ...]
+ .
+ .SH DESCRIPTION
+ .rs
+@@ -87,6 +88,9 @@ the matching substrings are being shown.
+ If the \fBLC_ALL\fP or \fBLC_CTYPE\fP environment variable is set,
+ \fBpcregrep\fP uses the value to set a locale when calling the PCRE library.
+ The \fB--locale\fP option can be used to override this.
++.P
++\fBzpcregrep\fR is a wrapper script that allows pcregrep to work on
++gzip compressed files.
+ .
+ .
+ .SH "SUPPORT FOR COMPRESSED FILES"
diff --git a/debian/patches/pcreposix.patch b/debian/patches/pcreposix.patch
new file mode 100644
index 0000000..c2bbacb
--- /dev/null
+++ b/debian/patches/pcreposix.patch
@@ -0,0 +1,36 @@
+From: Mark Baker <mark@mnb.org.uk>
+Date: Wed, 13 Jul 2016 21:20:13 +0100
+Subject: pcreposix
+
+---
+ pcreposix.h | 13 +++++++++----
+ 1 file changed, 9 insertions(+), 4 deletions(-)
+
+diff --git a/pcreposix.h b/pcreposix.h
+index c77c0b0..4527f78 100644
+--- a/pcreposix.h
++++ b/pcreposix.h
+@@ -133,14 +133,19 @@ file. */
+
+ /* The functions */
+
+-PCREPOSIX_EXP_DECL int regcomp(regex_t *, const char *, int);
+-PCREPOSIX_EXP_DECL int regexec(const regex_t *, const char *, size_t,
++PCREPOSIX_EXP_DECL int pcreposix_regcomp(regex_t *, const char *, int);
++PCREPOSIX_EXP_DECL int pcreposix_regexec(const regex_t *, const char *, size_t,
+ regmatch_t *, int);
+-PCREPOSIX_EXP_DECL size_t regerror(int, const regex_t *, char *, size_t);
+-PCREPOSIX_EXP_DECL void regfree(regex_t *);
++PCREPOSIX_EXP_DECL size_t pcreposix_regerror(int, const regex_t *, char *, size_t);
++PCREPOSIX_EXP_DECL void pcreposix_regfree(regex_t *);
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+ #endif
+
++#define regcomp pcreposix_regcomp
++#define regexec pcreposix_regexec
++#define regerror pcreposix_regerror
++#define regfree pcreposix_regfree
++
+ #endif /* End of pcreposix.h */
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..d0ac423
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1,8 @@
+PCRE6_compatible_API.patch
+pcreposix.patch
+pcre_info.patch
+pcregrep.1-patch
+soname.patch
+no_jit_x32_powerpcspe.patch
+Disable_JIT_on_sparc64.patch
+CVE-2017-6004.patch
diff --git a/debian/patches/soname.patch b/debian/patches/soname.patch
new file mode 100644
index 0000000..fb9a11d
--- /dev/null
+++ b/debian/patches/soname.patch
@@ -0,0 +1,28 @@
+From: Mark Baker <mark@mnb.org.uk>
+Date: Wed, 13 Jul 2016 21:20:13 +0100
+Subject: soname
+
+===================================================================
+---
+ configure.ac | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 3cefaf1..6077ad5 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -17,10 +17,10 @@ m4_define(pcre_date, [2016-06-14])
+ # 50 lines of this file. Please update that if the variables above are moved.
+
+ # Libtool shared library interface versions (current:revision:age)
+-m4_define(libpcre_version, [3:7:2])
+-m4_define(libpcre16_version, [2:7:2])
+-m4_define(libpcre32_version, [0:7:0])
+-m4_define(libpcreposix_version, [0:4:0])
++m4_define(libpcre_version, [16:3:13])
++m4_define(libpcre16_version, [16:3:13])
++m4_define(libpcre32_version, [16:3:13])
++m4_define(libpcreposix_version, [16:3:13])
+ m4_define(libpcrecpp_version, [0:1:0])
+
+ AC_PREREQ(2.57)