From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 6AF13138CD0 for ; Sat, 30 May 2015 07:50:53 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 7AFA1E0880; Sat, 30 May 2015 07:50:45 +0000 (UTC) Received: from mail-ig0-f171.google.com (mail-ig0-f171.google.com [209.85.213.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 68E74E07AE for ; Sat, 30 May 2015 07:50:44 +0000 (UTC) Received: by igbsb11 with SMTP id sb11so30456308igb.0 for ; Sat, 30 May 2015 00:50:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:content-type; bh=4bKts0n3uqGDXJhqDr5U1+5swvHnTkq8qfhSCoQdubU=; b=wAUBfYb2NZeA0JxdAHDBJayufjLyguyQlzlo4/vrVJRKpbm4HVpn0WeLRaz+4FfU2I fQBzY6e2p7ZHONSKNkHE9DMkI6ElRT5IKxiulwKpDz/iz00+hp4az+TiRE8/Kljl0olr WuLbaJqDmfWi0hrHFwfeEAnXGuollz/vKAFLNWBEfQ5R1R0DTZOF6T7llw/F6qckh8cA +Be9o/eL+tWoc4BlvfpaVnefW4JOirYZTjW0Fnv203U/cSCAOwWw6i4rmqmEKztYWqfx 1Iq1ni6ip+e5kRKFF8/vwOYvlfPVSFtyqbLHs2KJZPXoA2D82y5ldfkagi7h4MlO1dk9 XIDg== 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 X-Received: by 10.107.135.214 with SMTP id r83mr15176947ioi.13.1432972243925; Sat, 30 May 2015 00:50:43 -0700 (PDT) Sender: freemanrich@gmail.com Received: by 10.107.6.34 with HTTP; Sat, 30 May 2015 00:50:43 -0700 (PDT) In-Reply-To: <20150530051103.61fd58eaaa4044f52a38a6ad@gentoo.org> References: <20150530051103.61fd58eaaa4044f52a38a6ad@gentoo.org> Date: Sat, 30 May 2015 03:50:43 -0400 X-Google-Sender-Auth: Rq3Wi04z3fauIi1EJNaatYVZYDc Message-ID: Subject: Re: [gentoo-user] What is the definition of a gentoo "binary" package? From: Rich Freeman To: gentoo-user@lists.gentoo.org Content-Type: text/plain; charset=UTF-8 X-Archives-Salt: 97bb3e30-5e20-425b-9673-9d55c41f4b8e X-Archives-Hash: 018444032c5450d419a3fe887b6fb59c On Fri, May 29, 2015 at 10:11 PM, Andrew Savchenko wrote: > On Fri, 29 May 2015 18:48:55 -0700 walt wrote: >> >> The libreoffice-bin package wanted to drag in dozens of other non-binary >> gentoo packages before it would install itself, and even caused a blocker >> between two different versions of poppler. (I said "no" because I thought >> the blocker would make the entire experiment fail in the end.) > > It requires many other packages because it was compiled with > specific versions of that packages. Of course that other packages > will be source ebuilds mostly. > > You have blockers because your current system have different > versions of some of that packages. These issues are usually solved > either via slot installs or update of your currently installed > system. Sometimes emerge -DNu @world may be needed. > Just a bit more explanation... Binary distros, like Debian, typically solve this problem by using releases. In a release most packages have fixed versions, especially those which have many reverse dependencies, like core libraries. When Debian 9 is being prepared for release, somebody will decide that it will use poppler version 0.35 or whatever is in vogue at the time, and so on. Then all the maintainers will build all the packages that use it against poppler-0.35. This prevents the blocker situation that you're witnessing. If there is a later security patch, any fixes will be backported as needed so that they can stay with poppler-0.35 which prevents them from having to update dozens or hundreds of other packages in some kind of coordinated mini-release. Eventually a new release comes along, and they update all of their packages in lockstep to a new set of versions, so that they reach a new consistent depgraph. Of course, they can use the equivalent of slots as well, so for some libraries they may support more than one specific version, but it is still coordinated in this manner. With Gentoo we're spoiled by the ability to generally be able to install arbitrary pairings of package versions, since we build everything from source and emerge will link everything against whatever we're using. When we do change a key dependency, then a combination of slot-operator-deps, preserved-rebuild, and revdep-rebuild will rebuild everything that breaks. Of course, we're still limited by API-compatibility and feature use, which puts some constraints on what we can install. We're even more limited when braindead upstreams don't properly use SONAMEs and such, which creates blockers that can't be resolved using slots. However, in general we get a lot of flexibility, which lets us keep most packages closer to upstream and we don't have to packport fixes to poppler-0.35 for 3 years since we can just use poppler-0.36 instead, and so on. However, the moment you start installing packages that use precompiled dynamic binaries we become just like Debian, except we DON'T use releases and thus we don't guarantee tree-wide compatibility with a very specific version of every library. So, once you start installing these packages you're much more likely to run into blockers and other issues, especially if you have a fair number of them. They exist for convenience, but you'll never get the full "Gentoo experience" using them, and if you're really looking to use a lot of standardized binary packages for everything, well, you're probably better-off with a distro designed with that in mind (ie, basically everybody else). -- Rich