>-----Original Message-----
>From: Agustin Martin [mailto:agmar...@debian.org] 
>Sent: Friday, October 03, 2014 12:54 PM
>To: David Sanders; 763...@bugs.debian.org
>Subject: Re: Bug#763892: aspell-en needs to be Multi-Arch: foreign
>
>The problem I see above is in aspell-no, which does not use
aspell-autobuildhash, and >is an arch:any package that might not work with
multiarch. In this particular case, pulled >aspell-no:i386 will use 32 bit
sizes and is usable with libaspell15:amd64, but aspell->no:amd64 will not
work with current aspell because it was built with 64 bit numbers 
>
>IIRC, Debian aspell maintainer, Brian Nelson, set as policy that all aspell
dictionaries >must be automatically built at postinst stage, but do not have
the reference here. 
>
>I am cloning this bug report to aspell-no. I think it should use
aspell-autobuildhash. As a >lesser evil, should be rebuilt with new aspell
to make sure 32 bit numbers are always >used in hash creation and set
appropriate versioned dependency on aspell, although >might show some exotic
behavior during installation, like the one seen above.
>
>We might later conclude that all aspell:all dicts need to be set as
>"Multi-Arch: foreign", but we should discard aspell-no influence first.
>

You have identified an additional problem that I did not see.  That is that
aspell-no is not compatible with multi-arch as it stands right now.  This
problem also applies to aspell-da which has the same problem.  Bugs with
"important" priority need to be filled against these two packages to they
can be fixed before the next release.

But back to aspell-en.  I stand behind my theory that aspell-en and the
other aspell-xx packages need to be Multi-Arch: foreign.  I should have
stated in my original bug report that this was my THEORY.  I guess I didn't
have my morning coffee.

According to:
https://wiki.debian.org/Multiarch/Implementation#Multi-Arch:_foreign_support
_packages
A runtime support package such as a dictionary must be marked Multi-Arch:
foreign.

According to https://wiki.ubuntu.com/MultiarchSpec
The package manager (apt-get) will only install a runtime support package to
satisfy a dependency for a foreign architecture if it is marked Multi-Arch:
foreign.

So an apt-get install libaspell15:i386 installs the Norwegian dictionary
aspell-no:i386 because aspell-en (and the other aspell-xx packages) are not
eligible to satisfy the dependency on an aspell dictionary due to the lack
of Multi-Arch: foreign.

To illustrate, consider:
david@deb8vm:~/Downloads/aspell$ apt-cache depends libaspell15:i386
libaspell15:i386
  Depends: libc6:i386
  Depends: libgcc1:i386
  Depends: libstdc++6:i386
  PreDepends: multiarch-support:i386
    multiarch-support
  Suggests: aspell:i386
 |Recommends: <aspell-en:i386>
 |Recommends: <aspell-dictionary:i386>
  Recommends: <aspell6a-dictionary:i386>
    aspell-da:i386
    aspell-no:i386
  Conflicts: <aspell6-dictionary>
  Conflicts: <aspell6-dictionary:i386>
  Breaks: <aspell-bin>
  Breaks: <aspell-bin:i386>
  Replaces: libaspell15
  Breaks: libaspell15

As you can see there is no install candidate for aspell-en or
aspell-dictionary.  We have only aspell-da:i386 and aspell-no:i386.  Apt-get
installs aspell-no:i386.

Compare this situation with this:
david@deb8vm:~/Downloads/aspell$ apt-cache depends libaspell15
libaspell15
  Depends: libc6
  Depends: libgcc1
  Depends: libstdc++6
  PreDepends: multiarch-support
    multiarch-support:i386
  Suggests: aspell
    aspell:i386
 |Recommends: aspell-en
 |Recommends: <aspell-dictionary>
    aspell-am
    aspell-ar
    aspell-ar-large
    aspell-bg
    aspell-br
    aspell-ca
    aspell-cs
    aspell-cy
    aspell-de
    aspell-de-alt
    aspell-el
    aspell-en
    aspell-eo
    aspell-eo-cx7
    aspell-es
    aspell-et
    aspell-eu-es
    aspell-fa
    aspell-fo
    aspell-fr
    aspell-ga
    aspell-gl-minimos
    aspell-he
    aspell-hr
    aspell-hsb
    aspell-hu
    aspell-hy
    aspell-is
    aspell-it
    aspell-kk
    aspell-ku
    aspell-lt
    aspell-lv
    aspell-nl
    aspell-pl
    aspell-pt-br
    aspell-pt-pt
    aspell-ro
    aspell-ru
    aspell-sk
    aspell-sl
    aspell-sv
    aspell-tl
    aspell-uk
    aspell-uz
  Recommends: <aspell6a-dictionary>
    aspell-da
    aspell-no
  Conflicts: <aspell6-dictionary>
  Conflicts: <aspell6-dictionary:i386>
  Breaks: <aspell-bin>
  Breaks: <aspell-bin:i386>
  Replaces: libaspell15:i386
  Breaks: libaspell15:i386

As you see aspell-en and aspell-xx are listed as install candidates for the
64-bit libaspell15 library support files.  The problem only involves trying
to install the 32-bit library on a 64-bit system.

The same problem reappears trying to install libenchant1c2a:i386.  In this
case there is no aspell install candidate at all (since it doesn't depend on
the Norwegian and Danish dictionaries) and the result is that apt-get
installs iukrainian:i386.  The problem is not with iukrainian but rather
with the aspell dictionaries.

Hope this helps.  This is only a one line change in the spec file for these
packages.  It is my hope that the maintainers will want to fix the problem.
But it could also easily be a NMU.  With the freeze on the horizon, there is
some urgency to do something now.

David


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to