On 06/18/2014 08:24 PM, Mark Baker wrote:
On 18 Jun 2014, at 18:44, Helmut Grohne <[email protected]> wrote:
Control: tags -1 - patch
On Mon, Jun 16, 2014 at 06:28:40PM +0200, Helmut Grohne wrote:
On Thu, Jun 12, 2014 at 02:00:26PM +0200, Erwan Prioul wrote:
* Build using dh-autoreconf for new port support.
The original pcre3 package patches configure to "fix" the soname.
Yes. It is unfortunate that this is necessary, but debian had PCRE building a
shared library before this was supported upstream, and when upstream added
shared library support I felt that compatibility with existing debian packages
was more important than compatibility with other linux distributions so kept
the soname I had previously used. Since then there has never been a need for a
change to the soname, or I would have taken the opportunity to change it to be
the same as upstream.
By applying dh-autoreconf this "fix" is ignored and the resulting binary
packages become broken.
Presumably what I need to do is to patch configure.ac instead of configure. The
version numbers appear to be conveniently at the top of there, so this should
be straightforward.
Hi,
I've reworked the initial patch according to the previous comments:
- Nothing about parallel building.
- No more changes about the dh_makeshlibs invocations.
- A new entry into debian/patches to patch files outside the debian
directory (no_jit_ppc64el.patch to disable JIT on ppc64el).
I've added a change into soname.patch to apply changes into configure.ac
instead of configure.
Erwan.
--- a/debian/control
+++ b/debian/control
@@ -3,7 +3,7 @@
Priority: optional
Maintainer: Mark Baker <[email protected]>
Standards-Version: 3.9.3
-Build-Depends: debhelper (>= 5.0.22), dpkg-dev (>= 1.16.0)
+Build-Depends: debhelper (>= 5.0.22), dpkg-dev (>= 1.16.0), dh-autoreconf
Package: libpcre3
Section: libs
--- a/debian/patches/no_jit_ppc64el.patch
+++ b/debian/patches/no_jit_ppc64el.patch
@@ -0,0 +1,18 @@
+Description: Disable JIT on ppc64el, needs explicit porting to ELFv2.
+Author: Adam Conrad <[email protected]>
+
+--- pcre3-8.31.orig/sljit/sljitConfigInternal.h
++++ pcre3-8.31/sljit/sljitConfigInternal.h
+@@ -94,7 +94,11 @@
+ #define SLJIT_CONFIG_ARM_V5 1
+ #endif
+ #elif defined(__ppc64__) || defined(__powerpc64__)
+-#define SLJIT_CONFIG_PPC_64 1
++# if _CALL_ELF != 2
++# define SLJIT_CONFIG_PPC_64 1
++# else
++# define SLJIT_CONFIG_UNSUPPORTED 1
++# endif
+ #elif defined(__ppc__) || defined(__powerpc__)
+ #define SLJIT_CONFIG_PPC_32 1
+ #elif defined(__mips__)
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -4,3 +4,4 @@
pcregrep.1-patch
soname.patch
bug1287
+no_jit_ppc64el.patch
--- a/debian/patches/soname.patch
+++ b/debian/patches/soname.patch
@@ -1,23 +1,20 @@
From: Mark Baker <[email protected]>
Description: Change soname to what debian use
-Index: pcre3-8.31/configure
+
+Index: b/configure.ac
===================================================================
---- pcre3-8.31.orig/configure 2012-07-06 10:02:02.000000000 +0100
-+++ pcre3-8.31/configure 2012-09-13 19:47:13.000000000 +0100
-@@ -17190,13 +17190,13 @@
- # (Note: The libpcre*_version bits are m4 variables, assigned above)
+--- a/configure.ac
++++ b/configure.ac
+@@ -17,9 +17,9 @@
+ # 50 lines of this file. Please update that if the variables above are moved.
- EXTRA_LIBPCRE_LDFLAGS="$EXTRA_LIBPCRE_LDFLAGS \
-- $NO_UNDEFINED -version-info 1:1:0"
-+ $NO_UNDEFINED -version-info 16:1:13"
+ # Libtool shared library interface versions (current:revision:age)
+-m4_define(libpcre_version, [1:1:0])
+-m4_define(libpcre16_version, [0:1:0])
+-m4_define(libpcreposix_version, [0:1:0])
++m4_define(libpcre_version, [16:1:13])
++m4_define(libpcre16_version, [16:1:13])
++m4_define(libpcreposix_version, [16:1:13])
+ m4_define(libpcrecpp_version, [0:0:0])
- EXTRA_LIBPCRE16_LDFLAGS="$EXTRA_LIBPCRE16_LDFLAGS \
-- $NO_UNDEFINED -version-info 0:1:0"
-+ $NO_UNDEFINED -version-info 16:1:13"
-
- EXTRA_LIBPCREPOSIX_LDFLAGS="$EXTRA_LIBPCREPOSIX_LDFLAGS \
-- $NO_UNDEFINED -version-info 0:1:0"
-+ $NO_UNDEFINED -version-info 16:1:13"
-
- EXTRA_LIBPCRECPP_LDFLAGS="$EXTRA_LIBPCRECPP_LDFLAGS \
- $NO_UNDEFINED -version-info 0:0:0 \
+ AC_PREREQ(2.57)
--- a/debian/rules
+++ b/debian/rules
@@ -27,9 +27,10 @@
INSTALL_PROGRAM += -s
endif
-config.status: configure
+configure-stamp:
dh_testdir
# Add here commands to configure the package.
+ dh_autoreconf
CC_FOR_BUILD=cc CFLAGS="$(CFLAGS)" ./configure \
--host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) \
--prefix=/usr --mandir=\$${prefix}/share/man \
@@ -38,11 +39,12 @@
--enable-utf8 --enable-unicode-properties \
--disable-silent-rules \
$(shell . debian/jit-test)
+ touch configure-stamp
build: build-arch build-indep
build-arch: build-stamp
build-indep: build-stamp
-build-stamp: config.status
+build-stamp: configure-stamp
dh_testdir
# Add here commands to compile the package.
@@ -53,10 +55,10 @@
touch build-stamp
-clean: config.status
+clean:
dh_testdir
dh_testroot
- rm -f build-stamp
+ rm -f configure-stamp build-stamp
# Add here commands to clean up after the build process.
[ ! -f Makefile ] || $(MAKE) distclean
### -test -r /usr/share/misc/config.sub && \
@@ -64,5 +66,6 @@
### -test -r /usr/share/misc/config.guess && \
### cp -f /usr/share/misc/config.guess config.guess
rm -f dftables testsavedregex
+ dh_autoreconf_clean
dh_clean
install: build