From owner-freebsd-ports@FreeBSD.ORG Thu Dec 11 11:36:22 2008 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 423B71065672 for ; Thu, 11 Dec 2008 11:36:22 +0000 (UTC) (envelope-from amdmi3@amdmi3.ru) Received: from smtp.timeweb.ru (smtp.timeweb.ru [217.170.79.85]) by mx1.freebsd.org (Postfix) with ESMTP id B6A378FC13 for ; Thu, 11 Dec 2008 11:36:21 +0000 (UTC) (envelope-from amdmi3@amdmi3.ru) Received: from [213.148.20.85] (helo=hive.panopticon) by smtp.timeweb.ru with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.69) (envelope-from ) id 1LAjq9-0006NT-Cc; Thu, 11 Dec 2008 14:36:21 +0300 Received: from hades.panopticon (hades.panopticon [192.168.0.32]) by hive.panopticon (Postfix) with ESMTP id 292F712A0; Thu, 11 Dec 2008 14:35:06 +0300 (MSK) Received: by hades.panopticon (Postfix, from userid 1000) id 7C67F1702D; Thu, 11 Dec 2008 14:35:56 +0300 (MSK) Date: Thu, 11 Dec 2008 14:35:56 +0300 From: Dmitry Marakasov To: "Andrew W. Nosenko" Message-ID: <20081211113556.GA7422@hades.panopticon> References: <20081209181354.GB29817@hades.panopticon> <87tz9di38u.fsf@chateau.d.lf> <20081209222042.GC29817@hades.panopticon> <8763lsi10m.fsf@chateau.d.lf> <20081210181125.GA86341@hades.panopticon> <87zlj3heor.fsf@chateau.d.lf> <20081210223522.GA6367@hades.panopticon> <87vdtrhb6r.fsf@chateau.d.lf> <20081211082325.GA6167@hades.panopticon> <6161f3180812110156n43803ee9s88443b6777bd0743@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <6161f3180812110156n43803ee9s88443b6777bd0743@mail.gmail.com> User-Agent: Mutt/1.5.18 (2008-05-17) Cc: FreeBSD Ports Mailing List Subject: Re: [PROPOSAL] Ports using SCM repositories as source instead of distfiles X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Dec 2008 11:36:22 -0000 * Andrew W. Nosenko (andrew.w.nosenko@gmail.com) wrote: > > I understand. But you're implying that there is Makefile and it supports > > DESTDIR. As I understand, you're referring to autotools-based ports. > > Remember, those are less than 1/4 of the collection. > Excuse me, but he refers not to autotools-based ports, but to ports > that follows GNU Coding Standards (section "Makefile Conventions" if > more preciously). > Autotools just brings such support out-of-the-box. > And, IMO, projects that violates these things heavy, should be fixed upstream. > BTW, from my expiriense, there are little amount of project that > doesn't support DESTDIR of it's analog. And many of them may be > worked around anyway. I didn't count or check thoroughfully, but the feeling I've got from my 150+ ports is that no one actually supports it. I may be wrong though. And again, GNU Coding Standards don't cover build systems other than make. Also, it's not even a requirement: "So, we strongly recommend GNU packages support DESTDIR, though it is not an absolute requirement." I agree with that you can't require all upstream maintainers to support this feature. Architecturally this should be completely package manager's problem (i.e. upstream should only provide installation into PREFIX, and may optionally support DESTDIR, and if package manager needs features like that staged install or automatic plist generation, and upstream don't provide it, package manager should take care of it by itself. Tecnically, we may support DESTDIR in all ports. But considering the amount of work required, and increased complexety of everything as a result, I'd stick with static plists without hesitation. See http://lists.freebsd.org/pipermail/freebsd-ports/2006-August/034745.html those are some real examples of complexity and resulting confusion, from first variant of DESTDIR support in ports. Now, when we have one DESTDIR implementation, adding another will likely make some heads explode, just think of variable naming. I'll remind that what we are talking about is automatic plist generation, and I think that this can be done without any hacks like installing a port into intermediate directory before real installation just by logging all writes to the filesystem. This will require no modifications to the ports, very minor modifications to Mk, and will (in theory) work without fail whatever the port will install, also ensuring there're no runaway files (that is, files not listed in plist, or files not installed into DESTDIR for some reason). -- Dmitry Marakasov . 55B5 0596 FF1E 8D84 5F56 9510 D35A 80DD F9D2 F77D amdmi3@amdmi3.ru ..: jabber: amdmi3@jabber.ru http://www.amdmi3.ru