[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: amd64 and dpkg and so



* Junichi Uekawa <dancer@netfort.gr.jp> [030904 20:27]:
> > And marc.miller@amd.com writes:
> > > They won't always conflict, most notably in the case of libraries.
> > > 64-bit libraries are in /usr/lib64 and 32-bit libraries are in
> > > /usr/lib.
> > 
> > Presumably the packages for the libraries will have different names,
> > and thus different entries in /usr/share/doc, so again that wouldn't
> > be a problem.  (I haven't followed the discussion about this very
> > closely though.)
> 
> That presumption is not quite correct.
> These libraries have the same soname and installed in different directories,
> and 32-bit and 64-bit versions only differ by the architecture field;
> i.e. they probably share /usr/share/doc and /etc.

While my other reply was correct I am not sure if I addressed the
question... so here is another attempt.

Say you have two simple packages in i386 now, let's call them libfoo and
bar.  First is a library, the second is a utility.

  package  arch    contents
 ---------------------------------------------
  libfoo   i386   /lib/libfoo.so    /usr/share/doc/libfoo-version/libfoo.txt
  bar      i386   /bin/bar          /usr/share/doc/bar-version/bar.txt

In the 64/32-biarch system you would have the following packages:

  package  arch     contents
 ----------------------------------------------
  libfoo   i386    /lib/libfoo.so    /usr/share/doc/libfoo-version/libfoo.txt
  bar      i386    /bin/bar          /usr/share/doc/bar/bar.txt

  lib64foo amd64   /lib64/libfoo.so  /usr/share/doc/lib64foo-version/lib64foo.txt
  bar      amd64   /bin/bar          /usr/share/doc/bar-version/bar.txt

The first two packages did not change.  If you apt-get them, they will
come from the i386 archive.  This is good.

The 64bit version of libfoo, is called lib64foo.  This way you can
install both if you need both to satisfy dependencies.

Note however, that you cannot have two versions of bar installed.  Both
i386 and amd64 have the same package name and hence clash.  You can tell
apt which you prefer to install amd64 or i386 (in case there is a choice
as there is with bar), but dpkg will prevent both from being installed.

Also note that if the i386 bar happens to depend on libfoo, then the
amd64 bar will depend on lib64foo.

Finally, if the documentation part of the package is large, we currently
split the packages up into multiple ones: like dpkg and dpkg-doc, for
example.

So if the above /usr/share/doc/libfoo was large I would split libfoo
into libfoo, libfoo-doc, and lib64foo while porting it to amd64.

BTW, for those that don't know:  The above relationships are coded up in
my dpkg patches.  The apt stuff is a bit more complex and is not yet
finished; more specifically, apt-get will revert to i386 if I don't keep
my amd64 packages upto date with the i386 archive :(

B.

-- 
				WebSig: http://www.jukie.net/~bart/sig/

Attachment: pgpX1C8idb36y.pgp
Description: PGP signature


Reply to: