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 1NNd4z-0003vq-3h for garchives@archives.gentoo.org; Thu, 24 Dec 2009 02:05:29 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 189E3E08BA for ; Thu, 24 Dec 2009 02:05:28 +0000 (UTC) Received: from IMPaqm1.telefonica.net (impaqm1.telefonica.net [213.4.129.21]) by pigeon.gentoo.org (Postfix) with ESMTP id 4F52FE070C for ; Thu, 24 Dec 2009 00:28:51 +0000 (UTC) Received: from IMPmailhost6.adm.correo ([10.20.102.127]) by IMPaqm1.telefonica.net with bizsmtp id Lo0Z1d00d2kvMAa01oUqhf; Thu, 24 Dec 2009 01:28:50 +0100 Received: from jesgue.homelinux.org ([78.136.66.163]) by IMPmailhost6.adm.correo with BIZ IMP id LoUU1d0013XLmEe1moUh4D; Thu, 24 Dec 2009 01:28:50 +0100 X-TE-authinfo: authemail="i92guboj.terra.es" |auth_email="i92guboj@terra.es" X-TE-AcuTerraCos: auth_cuTerraCos="cosuitera01" 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 Date: Thu, 24 Dec 2009 01:28:23 +0100 From: =?UTF-8?Q?Jes=C3=BAs_Guerrero?= To: Subject: Re: [gentoo-user] make an -9999 ebuild compile only if necessary In-Reply-To: <200912222228.40478.alan.mckinnon@gmail.com> References: <200912222228.40478.alan.mckinnon@gmail.com> Message-ID: X-Sender: i92guboj@terra.es User-Agent: RoundCube Webmail/0.3.1 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Archives-Salt: 55bc7170-e3b9-44b5-a43e-0079e97cf107 X-Archives-Hash: 563390236f9ed3129567a132a5b571f0 On Tue, 22 Dec 2009 22:28:40 +0200, Alan McKinnon wrote: > On Tuesday 22 December 2009 19:21:21 Helmut Jarausch wrote: >> Hi, >>=20 >> I have ebuilds fetching the source code directly from a repository >> (be it CVS,SVN,HG,GIT,...) >> I'd like to modify the .ebuild to enter compilation only if something >> has been updated. >> Is this possible, has somebody else tried to do so? >=20 > You can't. >=20 > The only things that trigger a recompile are the things you already kno= w >=20 > - version number change > - USE flag change > - mask change >=20 > None of those things has occurred in your scenario, so a recompile will > not=20 > happen. This is by design and you should leave it this way. I think that we are looking through the wrong lens. In this case version numbers will be plainly irrelevant 99% of the times, after all, it's a 99= 99 ebuild which we are talking about. Most times, the only factor that triggers the merge for a 9999 ebuild is *the user*. And nothing in the ebuild will prevent that of course, at least until Gentoo can control our minds, which will eventually happen :lol: What we should be looking at -i= n my humble opinion- is towards interrupting the execution of the ebuild on= ce that we find that there's nothing new (like when you do 'emake || die'). That's certainly possible as long as the RCS tool used provides a consistent way to check if there has been a commit that needs to be downloaded. Of course, we would need some kind of IGNORE_RCS_CHECKS boolean variable to override this, for those cases where we truly need to force a recompilation of the offending package, or a similar mechanism, which cou= ld also be printed using ewarn, einfo or whatever applies for the situation when the ebuild aborts. As far as I can think, I see no fundamental showstopper, this could be implemented at the corresponding eclass for the given RCS backend, I gues= s. That would save the need to modify every single 9999 ebuild (not that the= re are a lot anyway). The only problem is that the fact that there's nothing to download doesn't necessarily mean that your binary files are in sync with your sources. For example, the source tree could have been updated o= n a previous run of the build, but something might have stopped it before t= he final objects are dumped into your real SO from the sandbox (electrical outages, control+c's, build failures). Also, I am no specialist in RCS's, and I have no idea if there's a truly reliable way to get the needed info from them. > It's best to just always recompile everything, which is what you do whe= n > you=20 > work with CVS code manually. >=20 > I also asked the same question in the past - about e17 - the above is m= y > conclusions. The real question is if it's worth all the effort to implement the feature, I guess. In my case, when I am using development code for any reason I am also subscribed to the corresponding commits mailing list or tracker, that means that I get notified by email the following minute if there's anything new on that repository, and I can decide if the commit will do me any good or if I can wait for the next important one. So, in m= y case, the feature is not worth to invest a single minute. Of course, everyone is free to disagree. :) --=20 Jes=C3=BAs Guerrero