On Sat, Sep 27, 2014 at 07:14:17PM -0400, David Sanders wrote:
> On Sep 27, 2014, at 3:17 PM, Agustin Martin <[email protected]> wrote:
> ..
> > Uploaded 0.60.7~20110707-1.2~exp3 to experimental. Should work around
> > that recreation using the original pristine file. It has gone through
> > autobuilders and should already be available in experimental mirrors.
> > diff against exp1 experimental upload is attached for maintainer info.
> > 
> > After the upload I noticed a couple of minor things pending, but that
> > should not affect multiarch behavior. Will add them before uploading
> > the real NMU.
> > 
> > If you want to test things like aspell:i386 in an amd64 box you willl
> > also need last dictionaries-common version (1.23.12), already uploaded
> > to sid.
> ..
> 
> 
> I installed the new experimental version of aspell.  libaspell15:i386
> also installed on my amd64 system.  However apt-get insisted on also
> installing aspell-no.  This was unexpected.  I have aspell-en installed
> and don’t need a Norwegian dictionary but I went ahead and let it
> install.

Hi David, thanks a lot for your help.

I was testing in a sid+experimental amd64 chroot with i386 as foreign arch
and could not reproduce this, might be some things have been fixed in sid.

> My system doesn’t pull in packages from unstable so I couldn’t install
> aspell:i386 or the new dictionaries-common.  So for testing I tried to
> install libenchant1c2a:i386.  It won’t install either, perhaps for the
> same reasons, but someone should probably check.

Tested in the same amd64 chroot. libenchant1c2a:i386 pulls iukrainian:i386
and ispell(:amd64) for no good reason, as well as dictionaries-common,
libhunspell-1.3-0:i386 and libaspell15:i386. May be related to iukrainian
being arch:any, but who knows. Of course, installed iukrainian:i386 does
not work with ispell:amd64 as expected. Dependency chain seems somewhere
weird.

On the other hand, libenchant1c2a (really libenchant1c2a:amd64) installs
smoothly, pulling aspell, aspell-en, dictionaries-common, libhunspell-1.3-0
and libaspell15, as without multiarch.

> For testing I installed xmlcopyeditor:i386 which depends on
> libaspell15:i386.  It installed and I successfully spell checked an xml
> document.  So I would say that things are working.  More testing needs
> to be done and once dictionaries-common makes it to the testing
> repository I’ll do more.

I think is time to start testing everything in real life (aka sid).

I have uploaded 0.60.7~20110707-1.2 to DELAYED/2. I am aware this is much
shorter than the usual delay for NMUs, but we have been playing with all
these uploads to experimental for nearly 15 days without ustream
objection. Also, freeze is approaching and this needs to be tested as much
as possible. 

Maintainer, I am attaching a complete diff against last sid version. As soon
as the delayed package reaches sid I will commit my changes to the aspell
collab-maint git repo.


Regards,

-- 
Agustin
diff --git a/debian/aspell.compat b/debian/aspell.compat
index 35fde19..4fc730c 100644
--- a/debian/aspell.compat
+++ b/debian/aspell.compat
@@ -1 +1 @@
-0.60_c1
+0.60_c1+32bit
diff --git a/debian/changelog b/debian/changelog
index 8195ed8..ac7a8d2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,27 @@
+aspell (0.60.7~20110707-1.2) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Implement multiarch (Closes: #667592), (LP:#1324525, LP:#960160).
+  * Some independent changes needed for multiarch:
+    - 08_filters-info-installdir.diff: Make sure all filters related stuff
+      is installed together. This should make possible to have different
+      values for "pkgdatadir" and "pkglibdir" selections, thus really
+      fixing (Closes: #612051).
+    - Force aspell hash function to use a 32-bit integer to allow
+      hashes being shared between 32 and 64 bit architectures. Note that
+      they cannot be shared between systems with different endianness.
+    - Modify to use "/usr/share/aspell" for arch indep stuff, except
+      filters and dict description files. Change aspell compat level.
+    - 09_debian-dictdir.diff: Implement a new debian specific
+      "--debian-dict-dir" configure option to allow explicitly setting an
+      independent path for dictionaries.
+    - debian/rules: Make sure original Changelog.html is installed. It
+      gets rebuilt later and may lead to problems with multiarch if
+      different makeinfo versions are used in different architectures.
+  * debian/control: Canonicalize Vcs-* headers.
+
+ -- Agustin Martin Domingo <[email protected]>  Mon, 29 Sep 2014 12:04:58 +0200
+
 aspell (0.60.7~20110707-1.1) unstable; urgency=medium
 
   * Non-maintainer upload.
@@ -470,7 +494,7 @@ aspell (0.50.3-9) unstable; urgency=low
   * Corrected an erroneous example in the aspell.1 that incorrectly
     documented use of the "lang" option.  This caused confusion on how to
     use this option.  Also, noted the correct usage in README.Debian.
-    (Closes: #182077)  
+    (Closes: #182077)
   * Added a copy of the FDL to reference from the aspell.1 manpage.
   * Added a debian/aspell-doc.copyright that notes the true license (FDL)
     of the aspell documentation.
@@ -570,7 +594,7 @@ aspell (0.50.3-1) unstable; urgency=low
   * Wrote a new manpage for aspell-import
   * aspell-en is now distributed in a separate package
   * Remove the .aux temporary files from aspell-doc (Closes: #156686)
-  
+
  -- Brian Nelson <[email protected]>  Mon,  9 Dec 2002 22:22:47 -0800
 
 aspell (0.33.7.1-12) unstable; urgency=low
@@ -578,7 +602,7 @@ aspell (0.33.7.1-12) unstable; urgency=low
   * New maintainer
   * Changed Architecture fields to "any" now that the libtool bug causing
     the FTBFS on hppa has hopefully been fixed (Closes: #139515)
-  * Add the correct copyright file to aspell-en 
+  * Add the correct copyright file to aspell-en
 
  -- Brian Nelson <[email protected]>  Tue, 26 Nov 2002 23:52:53 -0800
 
@@ -669,7 +693,7 @@ aspell (0.33.7.1-2) unstable; urgency=low
 
 aspell (0.33.7.1-1) unstable; urgency=low
 
-  * New upstream version. 
+  * New upstream version.
   * Reworked package relationships:
     - added libstdc++-dev to Build-Depends
     - added aspell-da to aspell's Suggests
diff --git a/debian/compat b/debian/compat
index 7f8f011..ec63514 100644
--- a/debian/compat
+++ b/debian/compat
@@ -1 +1 @@
-7
+9
diff --git a/debian/control b/debian/control
index 57e9ad0..7dec9c1 100644
--- a/debian/control
+++ b/debian/control
@@ -2,19 +2,32 @@ Source: aspell
 Section: text
 Priority: optional
 Maintainer: Brian Nelson <[email protected]>
-Build-Depends: debhelper (>= 7), libncursesw5-dev | libncurses-dev, cdbs (>= 0.4.0), texinfo, dh-autoreconf, autotools-dev
+Build-Depends: debhelper (>= 9),
+	       libncursesw5-dev | libncurses-dev,
+	       cdbs (>= 0.4.0),
+	       texinfo,
+	       dh-autoreconf,
+	       autopoint,
+	       autotools-dev
 Standards-Version: 3.9.2
-Vcs-Git: git://git.debian.org/git/collab-maint/aspell
-Vcs-Browser: http://git.debian.org/?p=collab-maint/aspell.git
+Vcs-Git: git://anonscm.debian.org/collab-maint/aspell
+Vcs-Browser: http://anonscm.debian.org/gitweb/?p=collab-maint/aspell.git
 Homepage: http://aspell.net/
 
 Package: aspell
 Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, libaspell15 (= ${binary:Version}), dictionaries-common (>> 0.40)
+Multi-Arch: foreign
+Depends: ${shlibs:Depends},
+	 ${misc:Depends},
+	 libaspell15 (= ${binary:Version}),
+	 dictionaries-common (>> 0.40)
 Recommends: aspell-en | aspell-dictionary | aspell6a-dictionary
-Suggests: aspell-doc, spellutils
+Suggests: aspell-doc,
+	  spellutils
 Breaks: aspell-bin (<< 0.60.3-2)
-Replaces: aspell-bin (<< 0.60.3-2), aspell-hi (<= 0.01-1), aspell-mr (<= 0.10-1)
+Replaces: aspell-bin (<< 0.60.3-2),
+	  aspell-hi (<= 0.01-1),
+	  aspell-mr (<= 0.10-1)
 Provides: aspell-bin
 Description: GNU Aspell spell-checker
  GNU Aspell is a spell-checker which can be used either as a standalone
@@ -30,6 +43,7 @@ Description: GNU Aspell spell-checker
 
 Package: aspell-doc
 Architecture: all
+Multi-Arch: foreign
 Depends: ${misc:Depends}
 Section: doc
 Suggests: aspell (>> 0.60)
@@ -41,8 +55,11 @@ Description: Documentation for GNU Aspell spell-checker
 
 Package: libaspell15
 Architecture: any
+Multi-Arch: same
 Section: libs
-Depends: ${shlibs:Depends}, ${misc:Depends}
+Pre-Depends: ${misc:Pre-Depends}
+Depends: ${shlibs:Depends},
+	 ${misc:Depends}
 Conflicts: aspell6-dictionary
 Breaks: aspell-bin (<< 0.60.3-2)
 Recommends: aspell-en | aspell-dictionary | aspell6a-dictionary
@@ -55,8 +72,11 @@ Description: GNU Aspell spell-checker runtime library
 
 Package: libaspell-dev
 Architecture: any
+Multi-Arch: same
 Section: libdevel
-Depends: ${misc:Depends}, libaspell15 (= ${binary:Version})
+Pre-Depends: ${misc:Pre-Depends}
+Depends: ${misc:Depends},
+	 libaspell15 (= ${binary:Version})
 Suggests: aspell-doc
 Description: Development files for applications with GNU Aspell support
  This package contains the headers and static libraries for developing
@@ -69,8 +89,12 @@ Description: Development files for applications with GNU Aspell support
 
 Package: libpspell-dev
 Architecture: any
+Multi-Arch: same
 Section: libdevel
-Depends: ${misc:Depends}, libaspell15 (= ${binary:Version}), libaspell-dev
+Pre-Depends: ${misc:Pre-Depends}
+Depends: ${misc:Depends},
+	 libaspell15 (= ${binary:Version}),
+	 libaspell-dev
 Replaces: aspell-bin (<< 0.50.3-3)
 Suggests: aspell-doc
 Description: Development files for applications with pspell support
diff --git a/debian/libaspell-dev.install b/debian/libaspell-dev.install
index a3107a7..f684e7e 100644
--- a/debian/libaspell-dev.install
+++ b/debian/libaspell-dev.install
@@ -1,3 +1,3 @@
-usr/lib/libaspell.la
-usr/lib/libaspell.so
+usr/lib/*/libaspell.la
+usr/lib/*/libaspell.so
 usr/include/aspell.h
diff --git a/debian/libaspell15.install b/debian/libaspell15.install
index bd49147..cd49c5f 100644
--- a/debian/libaspell15.install
+++ b/debian/libaspell15.install
@@ -1,3 +1,4 @@
-usr/lib/libaspell.so.*
-usr/lib/libpspell.so.*
+usr/lib/*/libaspell.so.*
+usr/lib/*/libpspell.so.*
 usr/lib/aspell
+usr/share/aspell
diff --git a/debian/libpspell-dev.install b/debian/libpspell-dev.install
index a7e8e90..3bd049a 100644
--- a/debian/libpspell-dev.install
+++ b/debian/libpspell-dev.install
@@ -1,4 +1,4 @@
 usr/include/pspell
-usr/lib/libpspell.so
-usr/lib/libpspell.la
+usr/lib/*/libpspell.so
+usr/lib/*/libpspell.la
 usr/bin/pspell-config
diff --git a/debian/patches/08_filters-info-installdir.diff b/debian/patches/08_filters-info-installdir.diff
new file mode 100644
index 0000000..eff6c0d
--- /dev/null
+++ b/debian/patches/08_filters-info-installdir.diff
@@ -0,0 +1,20 @@
+Author: Agustin Martin Domingo <[email protected]>
+Description: Make sure all filters stuff is installed together, allowing separate datadir and libdir.
+Bug-Debian: http://bugs.debian.org/612051
+Applied-Upstream: Reported
+
+Index: aspell/Makefile.am
+===================================================================
+--- aspell.orig/Makefile.am	2014-09-09 15:04:40.659234249 +0200
++++ aspell/Makefile.am	2014-09-09 15:04:40.655234208 +0200
+@@ -258,8 +258,8 @@
+ endif # COMPILE_IN_FILTERS
+ 
+ noinst_DATA += $(static_optfiles) gen/filter.pot
+-opt_DATA = $(dynamic_optfiles)
+-filter_DATA = $(fltfiles)
++# opt_DATA = $(dynamic_optfiles)
++filter_DATA = $(fltfiles) $(dynamic_optfiles)
+ 
+ # settings.h added as a dependency so it will get recreated if
+ #   the COMPILE_IN_FILTERS option changes
diff --git a/debian/patches/09_debian-dictdir.diff b/debian/patches/09_debian-dictdir.diff
new file mode 100644
index 0000000..de07529
--- /dev/null
+++ b/debian/patches/09_debian-dictdir.diff
@@ -0,0 +1,75 @@
+Author: Agustin Martin Domingo <[email protected]>
+Description: Allow setting of dictionary path independently from libdir and datadir.
+
+This is needed for multiarch, see http://bugs.debian.org/667592
+
+Index: aspell/configure.ac
+===================================================================
+--- aspell.orig/configure.ac	2014-09-10 18:20:45.263223753 +0200
++++ aspell/configure.ac	2014-09-10 18:22:22.983302043 +0200
+@@ -47,6 +47,15 @@
+ 
+ AC_SUBST(pkglibdir)
+ 
++dnl Explicit dict dir selection for Debian
++
++AC_ARG_ENABLE(debian-dict-dir,
++  AS_HELP_STRING([--enable-debian-dict-dir=DIR],[dictionaries dir PKGLIBDIR]),
++  debdictdir=$enable_debian_dict_dir,
++  debdictdir=$pkglibdir)
++
++AC_SUBST(debdictdir)
++
+ dnl optional features
+ 
+ AC_ARG_ENABLE(win32-relocatable,
+Index: aspell/Makefile.am
+===================================================================
+--- aspell.orig/Makefile.am	2014-09-10 18:20:45.263223753 +0200
++++ aspell/Makefile.am	2014-09-10 18:22:22.983302043 +0200
+@@ -285,7 +285,7 @@
+ common/config.cpp: gen/dirs.h
+ 
+ gen/dirs.h: gen/mk-dirs_h.pl
+-	cd gen; perl mk-dirs_h.pl ${prefix} ${pkgdatadir} ${pkglibdir}  ${sysconfdir} >  dirs.h
++	cd gen; perl mk-dirs_h.pl ${prefix} ${pkgdatadir} ${pkglibdir}  ${sysconfdir} ${debdictdir} >  dirs.h
+ 
+ EXTRA_DIST += gen/mk-dirs_h.pl
+ CLEANFILES += gen/dirs.h
+Index: aspell/gen/mk-dirs_h.pl
+===================================================================
+--- aspell.orig/gen/mk-dirs_h.pl	2014-09-10 18:20:45.263223753 +0200
++++ aspell/gen/mk-dirs_h.pl	2014-09-10 18:22:22.983302043 +0200
+@@ -1,7 +1,7 @@
+ 
+ foreach (@ARGV) {s|/+|/|g; s|/$||;}
+ 
+-($prefix, $data, $lib, $conf) = @ARGV;
++($prefix, $data, $lib, $conf,$debdictdir) = @ARGV;
+ 
+ sub def ( $ ) {
+   return qq|"<prefix:$1>"| if $_[0] =~ m|^$prefix/?(.+)$|;
+@@ -13,4 +13,4 @@
+ print  qq|#define DICT_DIR "<data-dir>"\n| if $lib eq $data;
+ printf qq|#define DICT_DIR %s\n|, def($lib) if $lib ne $data;
+ printf qq|#define CONF_DIR %s\n|, def($conf);
+-
++printf qq|#define DEBIAN_DICT_DIR %s\n|, def($debdictdir);
+Index: aspell/common/config.cpp
+===================================================================
+--- aspell.orig/common/config.cpp	2014-09-10 18:20:45.263223753 +0200
++++ aspell/common/config.cpp	2014-09-10 18:22:22.983302043 +0200
+@@ -1365,7 +1365,7 @@
+        N_("location of language data files")}
+     , {"dict-alias", KeyInfoList, "",
+        N_("create dictionary aliases")}
+-    , {"dict-dir", KeyInfoString, DICT_DIR,
++    , {"dict-dir", KeyInfoString, DEBIAN_DICT_DIR,
+        N_("location of the main word list")}
+     , {"encoding",   KeyInfoString, "!encoding",
+        N_("encoding to expect data to be in"), KEYINFO_COMMON}
+@@ -1522,4 +1522,3 @@
+   }
+   
+ }
+-
diff --git a/debian/patches/series b/debian/patches/series
index 2b7c89a..f2678df 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -5,3 +5,5 @@
 05_doc_fix.diff
 07_filter.diff
 #10_autotools.diff
+08_filters-info-installdir.diff
+09_debian-dictdir.diff
diff --git a/debian/rules b/debian/rules
index cb30e24..6b0f9b2 100755
--- a/debian/rules
+++ b/debian/rules
@@ -4,11 +4,29 @@ include /usr/share/cdbs/1/rules/debhelper.mk
 include /usr/share/cdbs/1/class/autotools.mk
 include /usr/share/cdbs/1/rules/autoreconf.mk
 
+# These are used for cross-compiling and for saving the configure script
+# from having to guess our platform (since we know it already)
+DEB_HOST_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+DEB_HOST_MULTIARCH = $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
+
 DEB_DH_MAKESHLIBS_ARGS_ALL := -V'libaspell15 (>= 0.60.7~20110707)' -Xusr/lib/aspell
 
-DEB_DH_INSTALL_SOURCEDIR := debian/tmp
-DEB_INSTALL_CHANGELOGS_ALL := manual/aspell.html/ChangeLog.html
-DEB_CONFIGURE_EXTRA_FLAGS := --enable-pkgdatadir=/usr/lib/aspell --enable-pkglibdir=/usr/lib/aspell
+DEB_DH_INSTALL_SOURCEDIR   := debian/tmp
+DEB_INSTALL_CHANGELOGS_ALL := ChangeLog.html
+DEB_CONFIGURE_EXTRA_FLAGS  := --enable-pkgdatadir=/usr/share/aspell \
+	                      --enable-pkglibdir=/usr/lib/aspell/$(DEB_HOST_MULTIARCH) \
+			      --enable-debian-dict-dir=/usr/lib/aspell \
+			      --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) \
+	                      --enable-32-bit-hash-fun
+
+# Save a pristine copy of original changelog. Since it will be rebuilt
+# again later, use -n to preserve the original file instead of
+# having it overwritten with autogenerated file. Needed for multiarch
+# in case rebuild happens with different makeinfo versions resulting
+# in different results.
+makebuilddir::
+	cp -n manual/aspell.html/ChangeLog.html .
 
 build/aspell-doc::
 	make -C manual aspell.html aspell-dev.html
@@ -24,10 +42,13 @@ install/aspell-doc::
 binary-install/libaspell15::
 # Empty the dependency_libs lines in the .la files
 	sed -i "s,^dependency_libs=.*,dependency_libs=''," \
-	   debian/libaspell15/usr/lib/aspell/*.la
+	   debian/libaspell15/usr/lib/aspell/$(DEB_HOST_MULTIARCH)/*.la
 
 binary-install/libaspell-dev::
 binary-install/libpspell-dev::
 	sed -i "s,^dependency_libs=.*,dependency_libs=''," \
-	   debian/libaspell-dev/usr/lib/*.la \
-	   debian/libpspell-dev/usr/lib/*.la
+	   debian/libaspell-dev/usr/lib/$(DEB_HOST_MULTIARCH)/*.la \
+	   debian/libpspell-dev/usr/lib/$(DEB_HOST_MULTIARCH)/*.la
+
+clean::
+	rm -f ChangeLog.html

Reply via email to