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 8F5AC13827A for ; Fri, 27 May 2016 01:29:15 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 7797B14245; Fri, 27 May 2016 01:29:07 +0000 (UTC) Received: from mail-yw0-f196.google.com (mail-yw0-f196.google.com [209.85.161.196]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 72C4C21C04D for ; Fri, 27 May 2016 01:29:06 +0000 (UTC) Received: by mail-yw0-f196.google.com with SMTP id j74so4531921ywg.1 for ; Thu, 26 May 2016 18:29:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to; bh=BQ4P0n1bJBdA5EIMqPiD0M0AAN5RB3/alXXu7vG7gME=; b=bmd8jZ9QXitNC3ttTd+nYXHQPFcdw+RsHTmvZa4Bp/2yYMtJnzd2Ib0GQx1lWDw4eZ mL+cQrgvaNaxA9A9KCE+ZfyyKVa589TADYveC53IdCypOCZY6hn8tcBa2uhM/x1jaSlu dD7r6c+rgYEnVwp5OAaWKDqek/zICHW4I+L1gHNIdF+bdby3r1YZOg5LT2AZa8u2Sx3w vHAbK5LKw9SkGYbZOPUh+B9hmmLVH2/KB+H11loXSJUaX8Qp9IbUc+DnK9RkFoQEOECJ QUwQTcLXoA/ds5FA8RPR8/od3QTq3xshAHZFX77whFsrRlzcGaWdEYwY4zslNpJKuT1o ySKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to; bh=BQ4P0n1bJBdA5EIMqPiD0M0AAN5RB3/alXXu7vG7gME=; b=BXhgfMv4pfECqnSKhZL8I3GBl4USNw9EL3oBtAgCa4tCt3B8cSODJtRsDq2mz6HLvF W0pr3Lt00zN3wbWdsnPoAkS54KubqnfFjV8Xs4WH6AB4ITADyrZjrrC8cGE3Nnz3WlNw y6/TJs24ov9V3eAUeL0eF6jcvU8Er9d6C0jWSLJa/6l7M97y6wJTElDTMqh2EdUvAkS2 wIJTaNP142qC8oJTd6xKZpy6ay2MEcInbJrIAcboI+OxLqt9KhZzMZ5OMkyrMicF/bgn 3Bq1Yx0Iu+WCfBBTwsal6LOsXEuD1R4rrjRqZVl4NXFvJqVCtvTE+6b2SNx8c2RArE/g tihw== X-Gm-Message-State: ALyK8tKbrs+KlIFTr2Isid9jqPCITuLX6b6vkl2XM6KO3eREwi4M/wQa57fJmFuef9e1zSEr1VLOuIZruCLnew== Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-dev@lists.gentoo.org Reply-to: gentoo-dev@lists.gentoo.org MIME-Version: 1.0 X-Received: by 10.37.6.135 with SMTP id 129mr7372745ybg.88.1464312514229; Thu, 26 May 2016 18:28:34 -0700 (PDT) Received: by 10.13.241.199 with HTTP; Thu, 26 May 2016 18:28:34 -0700 (PDT) In-Reply-To: References: Date: Fri, 27 May 2016 13:28:34 +1200 Message-ID: Subject: Re: [gentoo-dev] What are eblits? From: Kent Fredric To: gentoo-dev Content-Type: text/plain; charset=UTF-8 X-Archives-Salt: 0a9cd9a1-b0c1-49ce-8506-4ea4566b6499 X-Archives-Hash: 5342187283498ae6ebd44cc9a382b41a On 27 May 2016 at 10:28, rindeal wrote: > > 1) what are they? > 2) why are they used? My best explanation is its a way to re-use very large amounts of code between 2 ebuilds, without resorting to: a) Copying the whole ebuild and hoping you find the relevant part in diffs b) Not needing reams of version-specific conditional code to make copying ebuilds between versions easier. c) Not needing confusing eclasses that exist to serve a single package, loaded with lots of weird conditional logic. My understanding is you could effectively roll the eblits back into the ebuild statically, just doing so would make keeping the changes consistent harder. Its clearly designed for a system where you have ~10 different versions of Perl available or ~10 different versions of glibc available, but you don't want to pay the price of duplicating that logic wholesale for every minor concurrent revision, and only want to update essential differences when you need to, not because you have to. That said, its a very confusing system to get your head around, because its *basically* yet another "mixin" system like "inherit", but done in bash, which itself is a rather strange language to be doing something as complicated as mixins. -- Kent KENTNL - https://metacpan.org/author/KENTNL