Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 19 Mar 2007 12:35:37 -0600
From:      "Coleman Kane" <zombyfork@gmail.com>
To:        "Jack L." <xxjack12xx@gmail.com>
Cc:        Andriy Gapon <avg@icyb.net.ua>, freebsd-amd64@freebsd.org
Subject:   Re: 32-bit/i386 ports/packges on amd64
Message-ID:  <346a80220703191135w3e4fdb92ic8c93a38ff37f15a@mail.gmail.com>
In-Reply-To: <ab581e310703190929x269bc9a3w364f801fbeff8b0e@mail.gmail.com>
References:  <45FE7615.3090606@icyb.net.ua> <ab581e310703190929x269bc9a3w364f801fbeff8b0e@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 3/19/07, Jack L. <xxjack12xx@gmail.com> wrote:
>
> > P.S.
> > Isn't it a little bit ironic that using *Linux* 32-bit packages on amd64
> > is a supported and easy option, but using FreeBSD i386 packages is a
> > gray, if not dark, territory ?
> > BTW, it seems that various Linux distros have developed ways for easy
> > co-existence of x86 and x86_64 packages.
> >
> Yes, it is odd... I couldn't get the amd64 shoutcast to work (I think
> it should be marked as i386 only) but I did get the linux-shoutcast to
> work on amd64 which is 32 bit. Very interesting indeed. Would be nice
> if amd64 supported i386 as well as it does with linux 32 bit.


It is not that odd so long as you look at the history of the project(s), as
i386 FreeBSD binaries work quite fine on FreeBSD/amd64 (providing you have
the appropriate i386 libraries). In addition, the i386 Linux ports work
because i386 Linux emulation has been ported over to FreeBSD/amd64. The
linux-binary ports are just installations that use the linux userland in
/compat/linux. There could be a /compat/freebsd32 or similar to do this.
What many people, including myself, have done is to build a package of a
port (cd /usr/ports/lang/mit-scheme; make package) on a 32-bit machine and
then pkg_add the tarball on the new system. Ports is really set up to target
architectures different from the current one. Linuxes have lib64 directories
for 64-bit versions of libraries and bin64 directories for 64-bit binaries.
I believe that Solaris does something similar.

Some ports in FreeBSD already have linux-* variants, such that you can
install firefox or "linux-firefox", but these are two different ports. Many
linuxes use the same approach for the 32/64 installations. The problem is
that (I think) the FreeBSD developers lack Time, and that they'd like a
solution that doesn't involve installing duplicated versions of all
ports/packages for every supported binary emulation.

The problem is not the lack of 32-bit support on FreeBSD/amd64 (which
actually works really well) but the lack of a user-friendly system for
installing 32 and 64 bit versions of ports from the same ports repository
and managing them all. In fact, the binary emulation infrastructure

You could perhaps compile+install your 32-bit freebsd userland (using
existing infrastructure in /usr/src) into /compat/freebsd32 and then use
chroot to run 32-bit /compat/freebsd32/bin/tcsh inside of the
/compat/freebsd32 root. Once there you could have a separate repository for
ports, as well as a seperate /var/db/pkg for 32-bit packages.

--
Coleman Kane



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?346a80220703191135w3e4fdb92ic8c93a38ff37f15a>