From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1OmU6v-0000Ae-8Q for garchives@archives.gentoo.org; Fri, 20 Aug 2010 16:06:29 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 9549FE0801; Fri, 20 Aug 2010 16:06:13 +0000 (UTC) Received: from mailgate.caprica.metux.de (caprica.metux.de [82.165.128.25]) by pigeon.gentoo.org (Postfix) with ESMTP id 4B11EE086D for ; Fri, 20 Aug 2010 16:06:10 +0000 (UTC) Received: from mailgate.caprica.metux.de (localhost.localdomain [127.0.0.1]) by mailgate.caprica.metux.de (8.14.4/8.14.4) with ESMTP id o7KG61jI010400 for ; Fri, 20 Aug 2010 18:06:01 +0200 Received: (from uucp@localhost) by mailgate.caprica.metux.de (8.14.4/8.14.4/Submit) with UUCP id o7KG5DjI010375 for gentoo-user@lists.gentoo.org; Fri, 20 Aug 2010 18:05:13 +0200 Received: (from weigelt@localhost) by nibiru.metux.de (8.12.10/8.12.10) id o7KFu5Uj011060 for gentoo-user@lists.gentoo.org; Fri, 20 Aug 2010 17:56:05 +0200 Date: Fri, 20 Aug 2010 17:56:05 +0200 From: Enrico Weigelt To: gentoo-user@lists.gentoo.org Subject: Re: [gentoo-user] Re: emerge 32bits on 64bits platform Message-ID: <20100820155605.GA21342@nibiru.local> References: <201008162013.41980.stephane@22decembre.eu> Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-user@lists.gentoo.org Reply-to: gentoo-user@lists.gentoo.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.1i X-Terror: bin laden, kill bush, Briefbombe, Massenvernichtung, KZ, X-Nazi: Weisse Rasse, Hitlers Wiederauferstehung, 42, X-Antichrist: weg mit schaeuble, ausrotten, heiliger krieg, al quaida, X-Killer: 23, endloesung, Weltuntergang, X-Doof: wer das liest ist doof X-Archives-Salt: 211f5c3d-9d0d-4b66-ac25-c113fde47567 X-Archives-Hash: 937975b42df764ed521f45800b5ffbf2 * Nikos Chantziaras wrote: > Welcome to hell. No, that's possible, as others pointed out. There was > an initiative to bring true multilib to Gentoo a year or so back (maybe > more) but it seems it died and no one's working on it. > > For your browser this is probably not so problematic. But imagine > someone running the latest graphics stack (libdrm, mesa, etc.) on his > 64bit machine, but its totally useless because proprietary Linux games > are 32bit and thus won't run. The problem here is that this essentially means having two systems in one, 32bit and a 64bit one. To make it really clean, we'd actually need two separate installations (eg. using jails). But that makes administration quite complex. Perhaps portage could be extended to support a concept of subsystems, which are fully self-conftained for the runtime stuff only (but no portage, toolchains, etc). Everything that's not required for booting and building (so, the essential base-packages) is now sitting within a subsystem (maybe that's even a jail). Each subsystem of course also has its own /var/db/pkg etc (maybe even own /etc/portage stuff). Portage would now compute an internal portage tree for all subsystems using namespaces. The actual build then runs in an sysroot environment for the actual subsystem. Let's take an example: mc On an fresh system, `emerge -peqt app-misc/mc` looks like this: [ebuild N ] app-misc/mc-4.7.0.3 USE="edit gpm -X -nls -samba -slang" [ebuild N ] sys-libs/gpm-1.20.5 USE="(-selinux)" [ebuild N ] app-arch/xz-utils-4.999.9_beta USE="threads -nls -static-libs" [ebuild N ] dev-libs/glib-2.24.1-r1 USE="-debug -doc -fam -hardened (-selinux) -xattr" [ebuild N ] sys-devel/gettext-0.17-r1 USE="-acl -doc -emacs -nls -nocxx -openmp" [ebuild N ] dev-util/gtk-doc-am-1.15 [ebuild N ] app-text/docbook-xml-dtd-4.3-r1 [ebuild N ] dev-libs/libxslt-1.1.26 USE="-crypt -debug -python" [ebuild N ] dev-libs/libxml2-2.7.7 USE="-debug -doc -examples -ipv6 -python -readline -test" [nomerge ] app-text/docbook-xml-dtd-4.3-r1 [ebuild N ] app-text/sgml-common-0.6.3-r5 [ebuild N ] app-arch/unzip-6.0-r1 USE="bzip2 -unicode" [nomerge ] app-misc/mc-4.7.0.3 USE="edit gpm -X -nls -samba -slang" [ebuild N ] dev-util/pkgconfig-0.25-r2 USE="-hardened" [nomerge ] app-text/docbook-xml-dtd-4.3-r1 [ebuild N ] app-text/docbook-xsl-stylesheets-1.75.2 [ebuild N ] app-text/build-docbook-catalog-1.4 Now on the new model it would be: `emerge -peqt x86_32::app-misc/mc` [ebuild N ] x86_32::app-misc/mc-4.7.0.3 USE="edit gpm -X -nls -samba -slang" [ebuild N ] x86_32::sys-libs/gpm-1.20.5 USE="(-selinux)" [ebuild N ] main::app-arch/xz-utils-4.999.9_beta USE="threads -nls -static-libs" [ebuild N ] x86_32::dev-libs/glib-2.24.1-r1 USE="-debug -doc -fam -hardened (-selinux) -xattr" [ebuild N ] main::sys-devel/gettext-0.17-r1 USE="-acl -doc -emacs -nls -nocxx -openmp" [ebuild N ] x86_32::sys-devel/gettext-0.17-r1 USE="-acl -doc -emacs -nls -nocxx -openmp" [ebuild N ] x86_32::dev-util/gtk-doc-am-1.15 [ebuild N ] main::app-text/docbook-xml-dtd-4.3-r1 [ebuild N ] x86_32::dev-libs/libxslt-1.1.26 USE="-crypt -debug -python" [ebuild N ] x86_32::dev-libs/libxml2-2.7.7 USE="-debug -doc -examples -ipv6 -python -readline -test" [nomerge ] main::app-text/docbook-xml-dtd-4.3-r1 [ebuild N ] main::app-text/sgml-common-0.6.3-r5 [ebuild N ] main::app-arch/unzip-6.0-r1 USE="bzip2 -unicode" [nomerge ] x86_32::app-misc/mc-4.7.0.3 USE="edit gpm -X -nls -samba -slang" [ebuild N ] main::dev-util/pkgconfig-0.25-r2 USE="-hardened" [nomerge ] main::app-text/docbook-xml-dtd-4.3-r1 [ebuild N ] main::app-text/docbook-xsl-stylesheets-1.75.2 [ebuild N ] main::app-text/build-docbook-catalog-1.4 Note that here portage into which subsystem a package has to go in. That's done by a new kind of depdendencies: buildtool. So a plain system (w/o subsystems at all), these simply would be silently added to $DEPEND (prefixed w/ "main::"). Of course, this requires all packages to be fully crosscompilable in sysroot, and here's yet some work to do (essentially, that's what oss-qm is doing all the day ;-p). Ah, and this approach can also supersede crossdev (at least most of it) and provide a fine tool for managing tiny containers which don't need their own toolchain and portage stuff. cu -- ---------------------------------------------------------------------- Enrico Weigelt, metux IT service -- http://www.metux.de/ phone: +49 36207 519931 email: weigelt@metux.de mobile: +49 151 27565287 icq: 210169427 skype: nekrad666 ---------------------------------------------------------------------- Embedded-Linux / Portierung / Opensource-QM / Verteilte Systeme ----------------------------------------------------------------------