From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id B0E4A13832E for ; Sat, 20 Aug 2016 12:13:58 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id C97FDE094C; Sat, 20 Aug 2016 12:13:48 +0000 (UTC) Received: from resqmta-ch2-10v.sys.comcast.net (resqmta-ch2-10v.sys.comcast.net [69.252.207.42]) (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 BF924E0912 for ; Sat, 20 Aug 2016 12:13:47 +0000 (UTC) Received: from resomta-ch2-13v.sys.comcast.net ([69.252.207.109]) by resqmta-ch2-10v.sys.comcast.net with SMTP id b59fbh0ZaRingb59nbBnEB; Sat, 20 Aug 2016 12:13:47 +0000 Received: from [192.168.1.13] ([76.106.83.43]) by resomta-ch2-13v.sys.comcast.net with SMTP id b59lbIqsbZC4eb59mbMpZG; Sat, 20 Aug 2016 12:13:46 +0000 From: Joshua Kinard Subject: [gentoo-dev] [PATCH] kernel-2.eclass: introduce K_FROM_GIT for sources that derive from git repos To: Gentoo-dev Message-ID: <40b687e0-4d53-9a84-aa05-dc34f72049a3@gentoo.org> Date: Sat, 20 Aug 2016 08:13:22 -0400 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 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: multipart/mixed; boundary="------------540C66BD9F01DE1A55A95433" X-CMAE-Envelope: MS4wfHh9BxXc/SuyLemgO54aMCGaLaa9GQvbTlQrhtBMDq7D9L4MrRBqO0P5LXYY6mw5oGSn1jLzh3GYxq9AZP+7byfgI+5POP57YnyvGA0/pnT/Ygddu31O ESRYSsrgrNib7CBB5nzfHGtjYBvGLGG+pxNjVrCdPo0nGPAZKU9MGCJPoKZbMqP17zchwWbkRr1PTQ== X-Archives-Salt: 9bc24788-988a-44f5-8ff4-bd2cadf45d11 X-Archives-Hash: df914397d10022f58209b4452b36c2e0 This is a multi-part message in MIME format. --------------540C66BD9F01DE1A55A95433 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit All, It looks like that sometime around Linux 3.15, some kind of a quirk was introduced where a patch that contains the removal of a symlink followed by the addition of a file with the same name as the symlink causes patch's --dry-run phase to fail, which kills 'epatch'. See Bug #507656. A workaround was added to kernel-2.eclass, around line 1093, that hardcodes a check for sys-kernel/git-sources, to avoid this issue. Well, sys-kernel/mips-sources is also affected by the same issue. I'm close to releasing a newer mips-sources, having spent the last few months re-writing/refactoring chunks of old SGI IP27/BRIDGE code, and rather than add another hardcode to kernel-2, I instead created a new variable, K_FROM_GIT, that will replace the hardcode. When set to a value, it triggers the workaround, which still affects current kernels. This results in a cleaner implementation instead of a hardcoded ebuild, should future kernel packages sourced from a git repo get added. Patch is attached for review. Thanks! -- Joshua Kinard Gentoo/MIPS kumba@gentoo.org 6144R/F5C6C943 2015-04-27 177C 1972 1FB8 F254 BAD0 3E72 5C63 F4E3 F5C6 C943 "The past tempts us, the present confuses us, the future frightens us. And our lives slip away, moment by moment, lost in that vast, terrible in-between." --Emperor Turhan, Centauri Republic --------------540C66BD9F01DE1A55A95433 Content-Type: text/x-patch; name="kernel-2_eclass-from-git.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="kernel-2_eclass-from-git.diff" --- /usr/portage/eclass/kernel-2.eclass.orig 2016-08-19 07:44:46.149376480 -0400 +++ /usr/portage/eclass/kernel-2.eclass 2016-08-19 08:29:50.729377972 -0400 @@ -49,6 +49,9 @@ # as a result the user cannot choose to apply those patches. # K_EXP_GENPATCHES_LIST - A list of patches to pick from "experimental" to apply when # the USE flag is unset and K_EXP_GENPATCHES_PULL is set. +# K_FROM_GIT - If set, this variable signals that the kernel sources derives from a git tree and special +# handling will be applied so that any patches that are applied will actually apply. +# # K_GENPATCHES_VER - The version of the genpatches tarball(s) to apply. # A value of "5" would apply genpatches-2.6.12-5 to # my-sources-2.6.12.ebuild @@ -1090,7 +1093,7 @@ unipatch() { # # # https://bugs.gentoo.org/show_bug.cgi?id=507656 # #################################################################### - if [[ ${PN} == "git-sources" ]] ; then + if [[ -n ${K_FROM_GIT} ]] ; then if [[ ${KV_MAJOR} -gt 3 || ( ${KV_MAJOR} -eq 3 && ${KV_PATCH} -gt 15 ) && ${RELEASETYPE} == -rc ]] ; then ebegin "Applying ${i/*\//} (-p1)" --------------540C66BD9F01DE1A55A95433--