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>