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 0C6B913877A for ; Sun, 15 Jun 2014 23:36:45 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id AA6B5E0ADF; Sun, 15 Jun 2014 23:36:38 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 97D4CE080D for ; Sun, 15 Jun 2014 23:36:37 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp.gentoo.org (Postfix) with ESMTP id 7AC7E33FE95 for ; Sun, 15 Jun 2014 23:36:36 +0000 (UTC) X-Virus-Scanned: by amavisd-new using ClamAV at gentoo.org X-Spam-Flag: NO X-Spam-Score: -1.492 X-Spam-Level: X-Spam-Status: No, score=-1.492 tagged_above=-999 required=5.5 tests=[AWL=-0.839, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-0.651, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=no Received: from smtp.gentoo.org ([IPv6:::ffff:127.0.0.1]) by localhost (smtp.gentoo.org [IPv6:::ffff:127.0.0.1]) (amavisd-new, port 10024) with ESMTP id GUR3RXTy2Ul1 for ; Sun, 15 Jun 2014 23:36:30 +0000 (UTC) Received: from plane.gmane.org (plane.gmane.org [80.91.229.3]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id B16C633FE9F for ; Sun, 15 Jun 2014 23:36:30 +0000 (UTC) Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1WwJyN-0008Qc-Qj for gentoo-dev@gentoo.org; Mon, 16 Jun 2014 01:36:27 +0200 Received: from ip68-231-22-224.ph.ph.cox.net ([68.231.22.224]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 16 Jun 2014 01:36:27 +0200 Received: from 1i5t5.duncan by ip68-231-22-224.ph.ph.cox.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 16 Jun 2014 01:36:27 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: gentoo-dev@lists.gentoo.org From: Duncan <1i5t5.duncan@cox.net> Subject: [gentoo-dev] Auto-patching ebuilds themselves Was: Eclass vs EAPI For Utility Functions (Patching/etc) Date: Sun, 15 Jun 2014 23:36:15 +0000 (UTC) Message-ID: References: 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 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: ip68-231-22-224.ph.ph.cox.net User-Agent: Pan/0.140 (Chocolate Salty Balls; GIT d447f7c /m/p/portage/src/egit-src/pan2) X-Archives-Salt: bb7e8e5a-ecde-40d5-878b-c96ac413f51d X-Archives-Hash: 9a04b2905487feb443480ed6772ad6c3 Rich Freeman posted on Sun, 15 Jun 2014 07:00:15 -0400 as excerpted: > Besides, I think user-patches are a GREAT feature to have, and one I use > all the time (without even thinking about it if a package with a patch > gets rebuilt). As I said in the meeting, if we were selling Gentoo to > make money, it would be the sort of feature that you'd advertise. Why > make it hard to use such a distinctive advantage of a source-based > distro? Agreed with everything, but focusing on the above as a jump-off point for... A similarly great feature to have would be epatch-ebuild. Back when gentoo/kde was trying to dump IUSE=semantic-desktop[1], I was doing enough ebuild patching with enough churn in the ebuilds[2] that manual per-ebuild patching was simply no longer feasible. It can be noted that normal sources patching (as epatch) would NOT work here, at least not easily, because it was the ebuilds themselves that were forcing the various semantic-desktop related config options on and forcing dependencies to match, so it was the ebuilds themselves that needed that patched back out. I ended up with an /etc/portage/patches.ebuild that mirrored /etc/portage/patches in functionality, using a sync script that download-updated both the gentoo tree and the layman-managed overlays, then _automatically_ applied the patches from the patches.ebuild tree and redigested the ebuilds[3], then regenerating cache to account for the changes. The _automatic_ bit being critical as at that point I was handling enough of them that doing it manually would not have been fun. Talk about a feature worth advertising, the user-level ability to automatically live-patch ebuilds by simply dropping a patch in the appropriate location just like we do sources was and remains great, definitely something I'd love to see in the PMs at some point. =:^) As we've found with user-epatched sources, this should greatly simplify deployment of experimental patches. Just attach the patch to the bug and tell the user what directory to drop it in, and no more worries about having to tell users what to edit or how to do manual patching, in ordered to test a fix. =:^) --- [1] Dropping IUSE=semantic-desktop: Something I'm /ever/ so glad gentoo/ kde changed their minds on. =:^) [2] The ebuilds in question were from the gentoo/kde overlay, before they reached the tree. That overlay and the ebuilds in it get a *LOT* of churn! [3] Redigesting: As I run live-sources kde there were few source tarballs to redigest, only the ebuilds. -- Duncan - List replies preferred. No HTML msgs. "Every nonfree program has a lord, a master -- and if you use the program, he is your master." Richard Stallman