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

