Source: babel
Tags: patch
Followup-For: Bug #723789
User: debian-powe...@lists.debian.org
Usertags: ppc64el

Hello sirs.

Maybe it would be more practical if it used dh_autoreconf, instead of plain
autoreconf command, wouldn't it?

Anyway, when you set the package to run autoreconf, the Makefile.in files are
re-generated, and the patch named debian/patches/banish-rpath.patch loses its
effect. So the rpath comes back and the binary looks for the .so objects which
were dropped in the past.

Looking at the changelog in d/changelog, I see parsifal is set to use only
static libs. So, in the patch below, I include a -static flag to parsifal's
LDFLAGS.
That way, the package builds through to the end -- although with warnings.

I also included some flags to unset bool and vector when compiling some files,
because those keywords were causing conflict due to macros with the same name.

It would also be interesting to fix the clean target, because it is not
cleaning the build tree completely. Unfortunately I was not able to do so.

In conclusion, I know this is not ideal, but here is a debdiff in which:

- I included the usage of dh_autoreconf (with a debian/autoreconf file, since
there are more directories to be updated by autoreconf)
- There are 2 files within debian/patches. One is to use the flags -Ubool and
-Uvector so there is no confusion with the gcc macros. Another is to include
the flag -static to Makefile.am, so Makefile.in and subsequent autotools files
can be generated without having to patch Makefile.in.

Please have a look and let me know if what you think. 

Thanks and regards.
Fernando


-- System Information:
Debian Release: jessie/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: ppc64el (ppc64le)

Kernel: Linux 3.13-1-powerpc64le (SMP w/16 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: sysvinit (via /sbin/init)
diff -Nru babel-1.4.0.dfsg/debian/autoreconf babel-1.4.0.dfsg/debian/autoreconf
--- babel-1.4.0.dfsg/debian/autoreconf	1970-01-01 00:00:00.000000000 +0000
+++ babel-1.4.0.dfsg/debian/autoreconf	2015-02-04 15:33:25.000000000 +0000
@@ -0,0 +1,2 @@
+.
+runtime
diff -Nru babel-1.4.0.dfsg/debian/changelog babel-1.4.0.dfsg/debian/changelog
--- babel-1.4.0.dfsg/debian/changelog	2013-05-26 19:33:17.000000000 +0000
+++ babel-1.4.0.dfsg/debian/changelog	2015-02-04 16:11:53.000000000 +0000
@@ -1,3 +1,12 @@
+babel (1.4.0.dfsg-8.2ppc64el1) UNRELEASED; urgency=medium
+
+  * d/patches/ubool-uvector.patch: this is to circumvent a problem with some
+    defined macros, which cause conflict with the keywords bool and vector.
+  * d/patches/static.patch: using flag -static within parsifal Makefile.am as
+    to follow changelog entry in 1.4.0.dfsg-1 to use static lib only.
+
+ -- Fernando Seiti Furusato <ferse...@br.ibm.com>  Wed, 04 Feb 2015 16:07:42 +0000
+
 babel (1.4.0.dfsg-8.2) unstable; urgency=low
 
   * Non-maintainer upload.
diff -Nru babel-1.4.0.dfsg/debian/control babel-1.4.0.dfsg/debian/control
--- babel-1.4.0.dfsg/debian/control	2013-05-26 19:29:56.000000000 +0000
+++ babel-1.4.0.dfsg/debian/control	2015-02-04 16:17:15.000000000 +0000
@@ -3,8 +3,8 @@
 Priority: extra
 Maintainer: "Adam C. Powell, IV" <hazel...@debian.org>
 Standards-Version: 3.9.1
-Build-Depends: debhelper (>= 5), gfortran, libltdl-dev, libtool,
-  automake, autoconf, libxml2-dev, default-jdk-builddep | java-gcj-compat-dev,
+Build-Depends: debhelper (>= 5), gfortran, libltdl-dev, dh-autoreconf,
+  libxml2-dev, default-jdk-builddep | java-gcj-compat-dev,
   fastjar, gcj-jdk | gjdoc, libxerces2-java, libgetopt-java, libxalan2-java,
   python-all-dev (>= 2.6.6-3~), python-numpy
 Build-Conflicts: libparsifal-dev
diff -Nru babel-1.4.0.dfsg/debian/patches/series babel-1.4.0.dfsg/debian/patches/series
--- babel-1.4.0.dfsg/debian/patches/series	2010-01-31 20:48:41.000000000 +0000
+++ babel-1.4.0.dfsg/debian/patches/series	2015-02-04 16:04:08.000000000 +0000
@@ -7,3 +7,5 @@
 no-manuals.patch
 sidlx-pointer.patch
 sh4-support.patch
+ubool-uvector.patch
+static.patch
diff -Nru babel-1.4.0.dfsg/debian/patches/static.patch babel-1.4.0.dfsg/debian/patches/static.patch
--- babel-1.4.0.dfsg/debian/patches/static.patch	1970-01-01 00:00:00.000000000 +0000
+++ babel-1.4.0.dfsg/debian/patches/static.patch	2015-02-04 16:13:31.000000000 +0000
@@ -0,0 +1,13 @@
+This patch sets -static flag to parsifal linker since the package no longer
+provides parsifal shared libs.
+--- a/runtime/libparsifal/src/Makefile.am
++++ b/runtime/libparsifal/src/Makefile.am
+@@ -12,7 +12,7 @@
+ libparsifal_la_SOURCES = $(CSOURCES)
+ 
+ ## RELEASE gets AC_SUBST'ed value from configure.ac:
+-libparsifal_la_LDFLAGS = -no-undefined -release @RELEASE@
++libparsifal_la_LDFLAGS = -no-undefined -release -static @RELEASE@
+ 
+ ## target include directory (/usr/include by default):
+ library_includedir=$(includedir)/libparsifal
diff -Nru babel-1.4.0.dfsg/debian/patches/ubool-uvector.patch babel-1.4.0.dfsg/debian/patches/ubool-uvector.patch
--- babel-1.4.0.dfsg/debian/patches/ubool-uvector.patch	1970-01-01 00:00:00.000000000 +0000
+++ babel-1.4.0.dfsg/debian/patches/ubool-uvector.patch	2015-02-04 15:32:41.000000000 +0000
@@ -0,0 +1,54 @@
+--- a/lib/sidlstubs/F03/Makefile.am
++++ b/lib/sidlstubs/F03/Makefile.am
+@@ -129,21 +129,21 @@
+ # Override default F03 macros since automake (as of 1.9.3) doesn't
+ # really allow us to override preprocessing step.
+ .F90.o:
+-	$(CPP) -traditional $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES)  $(AM_CPPFLAGS) $(CPPFLAGS) \
++	$(CPP) -traditional -Ubool -Uvector $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES)  $(AM_CPPFLAGS) $(CPPFLAGS) \
+ 		-P -o $(@:.o=.tmp) -x c `test -f '$<' || echo '$(srcdir)/'`$<
+ 	sed -e 's/^#pragma.*$$//' < $(@:.o=.tmp) > $(@:.o=$(F90CPPSUFFIX))
+ 	$(PPFCCOMPILE) -c -o $@ $(@:.o=$(F90CPPSUFFIX))
+ 	rm -f $(@:.o=$(F90CPPSUFFIX)) $(@:.o=.tmp)
+ 
+ .F90.obj:
+-	$(CPP) -traditional $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES)  $(AM_CPPFLAGS) $(CPPFLAGS) \
++	$(CPP) -traditional -Ubool -Uvector $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES)  $(AM_CPPFLAGS) $(CPPFLAGS) \
+ 		-P -o $(@:.obj=.tmp) -x c `test -f '$<' || echo '$(srcdir)/'`$<
+ 	sed -e 's/^#pragma.*$$//' < $(@:.obj=.tmp) > $(@:.obj=$(F90CPPSUFFIX))
+ 	$(PPFCCOMPILE) -c -o $@ $(@:.obj=$(F90CPPSUFFIX))
+ 	rm -f $(@:.obj=$(F90CPPSUFFIX)) $(@:.obj=.tmp)
+ 
+ .F90.lo:
+-	$(CPP) -traditional $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES)  $(AM_CPPFLAGS) $(CPPFLAGS) \
++	$(CPP) -traditional -Ubool -Uvector $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES)  $(AM_CPPFLAGS) $(CPPFLAGS) \
+ 		 -P -o $(@:.lo=.tmp) -x c `test -f '$<' || echo '$(srcdir)/'`$<
+ 	sed -e 's/^#pragma.*$$//' < $(@:.lo=.tmp) > $(@:.lo=$(F90CPPSUFFIX))
+ 	$(LTPPFCCOMPILE) -c -o $@  $(@:.lo=$(F90CPPSUFFIX))
+--- a/lib/sidlstubs/F90/Makefile.am
++++ b/lib/sidlstubs/F90/Makefile.am
+@@ -128,21 +128,21 @@
+ # Override default F90 macros since automake (as of 1.9.3) doesn't
+ # really allow us to override preprocessing step.
+ .F90.o:
+-	$(CPP) -traditional $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES)  $(AM_CPPFLAGS) $(CPPFLAGS) \
++	$(CPP) -traditional -Ubool -Uvector $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES)  $(AM_CPPFLAGS) $(CPPFLAGS) \
+ 		-P -o $(@:.o=.tmp) -x c `test -f '$<' || echo '$(srcdir)/'`$<
+ 	sed -e 's/^#pragma.*$$//' < $(@:.o=.tmp) > $(@:.o=$(F90CPPSUFFIX))
+ 	$(PPFCCOMPILE) -c -o $@ $(@:.o=$(F90CPPSUFFIX))
+ 	rm -f $(@:.o=$(F90CPPSUFFIX)) $(@:.o=.tmp)
+ 
+ .F90.obj:
+-	$(CPP) -traditional $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES)  $(AM_CPPFLAGS) $(CPPFLAGS) \
++	$(CPP) -traditional -Ubool -Uvector $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES)  $(AM_CPPFLAGS) $(CPPFLAGS) \
+ 		-P -o $(@:.obj=.tmp) -x c `test -f '$<' || echo '$(srcdir)/'`$<
+ 	sed -e 's/^#pragma.*$$//' < $(@:.obj=.tmp) > $(@:.obj=$(F90CPPSUFFIX))
+ 	$(PPFCCOMPILE) -c -o $@ $(@:.obj=$(F90CPPSUFFIX))
+ 	rm -f $(@:.obj=$(F90CPPSUFFIX)) $(@:.obj=.tmp)
+ 
+ .F90.lo:
+-	$(CPP) -traditional $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES)  $(AM_CPPFLAGS) $(CPPFLAGS) \
++	$(CPP) -traditional -Ubool -Uvector $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES)  $(AM_CPPFLAGS) $(CPPFLAGS) \
+ 		 -P -o $(@:.lo=.tmp) -x c `test -f '$<' || echo '$(srcdir)/'`$<
+ 	sed -e 's/^#pragma.*$$//' < $(@:.lo=.tmp) > $(@:.lo=$(F90CPPSUFFIX))
+ 	$(LTPPFCCOMPILE) -c -o $@  $(@:.lo=$(F90CPPSUFFIX))
diff -Nru babel-1.4.0.dfsg/debian/rules babel-1.4.0.dfsg/debian/rules
--- babel-1.4.0.dfsg/debian/rules	2013-05-26 19:30:28.000000000 +0000
+++ babel-1.4.0.dfsg/debian/rules	2015-02-04 15:33:14.000000000 +0000
@@ -6,14 +6,7 @@
 
 stamp-configure:
 	dh_testdir
-	(cd runtime && libtoolize --force)
-	(cd runtime && aclocal)
-	(cd runtime && automake)
-	(cd runtime && autoconf)
-	libtoolize --force
-	aclocal
-	automake
-	autoconf
+	dh_autoreconf
 	JNI_INCLUDES=-I/usr/lib/jvm/java-gcj/include \
 	  PYTHON=python ./configure --prefix=/usr
 	touch $@
@@ -54,6 +47,7 @@
 # This is left by a quilt push/pop sequence
 	rm -rf .pc
 	rm -f stamp-configure stamp-build*
+	dh_autoreconf_clean
 	dh_clean
 
 install: build $(PYOTHERS:%=install-python%)

Reply via email to