From owner-freebsd-ports@FreeBSD.ORG Sat Apr 10 21:12:16 2010 Return-Path: Delivered-To: ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7EC62106564A; Sat, 10 Apr 2010 21:12:16 +0000 (UTC) (envelope-from julianelischer@gmail.com) Received: from mail-qy0-f181.google.com (mail-qy0-f181.google.com [209.85.221.181]) by mx1.freebsd.org (Postfix) with ESMTP id D84738FC08; Sat, 10 Apr 2010 21:12:15 +0000 (UTC) Received: by qyk11 with SMTP id 11so3734061qyk.13 for ; Sat, 10 Apr 2010 14:12:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:sender:message-id:date:from :user-agent:mime-version:to:cc:subject:references:in-reply-to :content-type:content-transfer-encoding; bh=qEAGxMVhRRlVPfF8fhkHuiTYifr4VFzc45C7DlzaKFQ=; b=W3Iw4kWDWQ2dxm+wmz1KNVGRm7ax9yBw5jYj2a0gE51ddRTVAnkGER+UkowS8WsiO4 c1A8K/5k3qIR/KFey2UO+AL0Bh8QZJdcd0R7q+WdzGgecEV0BOdkIxw1F9i6y7MhNe1D 5yLxuk+r2M6qxJlk8Oa6/KpIUFombGv/AU/Vs= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; b=eDtmtmIw/SuGaQZNsjD7zSuy8KsCi9MBElR7hzXGLlnYDLokOZD9ma/KC0hu+rvCgV tFWNuGm90rjR+Diw+Jj/y7a8c9hxMdWqUedbTew2C8xpoza/+0uXWS9j0+lBmAjJDM78 K0Wh5gG++18nfLpPi8gzj+3I70Nwmv7wSX84M= Received: by 10.229.217.206 with SMTP id hn14mr2801432qcb.70.1270933934928; Sat, 10 Apr 2010 14:12:14 -0700 (PDT) Received: from julian-mac.elischer.org (h-67-100-89-137.snfccasy.static.covad.net [67.100.89.137]) by mx.google.com with ESMTPS id v37sm3695078qce.18.2010.04.10.14.12.12 (version=TLSv1/SSLv3 cipher=RC4-MD5); Sat, 10 Apr 2010 14:12:14 -0700 (PDT) Sender: Julian Elischer Message-ID: <4BC0E9AE.1000904@elischer.org> Date: Sat, 10 Apr 2010 14:12:14 -0700 From: Julian Elischer User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.4; en-US; rv:1.9.1.9) Gecko/20100317 Thunderbird/3.0.4 MIME-Version: 1.0 To: Tim Kientzle References: <4BBFD502.1010507@elischer.org> <4BC03ABA.6090309@elischer.org> <4BC0CC6F.7010009@freebsd.org> In-Reply-To: <4BC0CC6F.7010009@freebsd.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: ports@freebsd.org, "Sam Fourman Jr." , FreeBSD Current Subject: Re: ports and PBIs 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: Sat, 10 Apr 2010 21:12:16 -0000 On 4/10/10 12:07 PM, Tim Kientzle wrote: > Garrett Cooper wrote: >> If I'm understanding you correctly you're saying it's an issue when I do: >> >> pkg_add A B C >> >> # 1 year passes >> >> pkg_add D >> >> # D depends on A, B, C, of different revisions. pkg_add barfs because >> it can't find the applications, etc. >> >> This is something that's been hashed over a number of times (a few of >> which I've participated in in #bsdports). There needs to be a simple >> update command which will handle the action of upgrading packages, >> because there isn't a proper command that will do so today. > > I'm not convinced that the "simple update command" you > mention is actually feasible, much less desirable. > (If I want to try out the new Firefox, why does that > imply that my year-old Gimp has to be upgraded?) > > As for feasibility, here's the easy problem: > A2.7 requires B3.6 > ... one year passes ... > A4.8 now requires B7.2 > But A4.8 is incompatible with B3.6 and A2.7 is > incompatible with B7.2. So neither A nor B > can be updated separately without breaking the system. > > Here's the hard problem: > A2.7 requires B3.6 > ... one year passes ... > I want to install C1.0 which requires B7.2 > but there hasn't been a new release of A that > works with B7.2. > So I now simply cannot have both C1.0 and A2.7 > installed at the same time because they require > different versions of B. > > PBI avoids both of these problems. It may > be unsuitable for embedded systems[1], but > I see no reason we should not extend the existing > ports/packages system with additional tools that > target certain use cases, and PBI seems a good > fit for the desktop case. > > Tim > > [1] Actually, PBI might work just fine even for > embedded if we address the disk bloat issue. One > approach would be to make > /Package/Bar/libfoo-2.8.7.so > a symlink or hardlink to > /Package/Shared/libfoo-2.8.7.so- > This gives easy sharing of identical files. > It's even easy to handle at install time: > * Installer writes libfoo-2.8.7.so to > /Package/Shared/libfoo-2.8.7.so-temp- > * Installer computes hash of file as it's written > * Installer renames file (delete if rename fails with EEXIST) > * Installer writes symlink or hardlink into /Package/Bar yeah that's more or less what we were thinking.. hardlinks allow you to garbage collect when the last pbi that needs something is replaced/removed. It's also to handle the cases where library A wants library B. you don't want library A in the shared place looking for B back in the original PBI directory so there may need to be some patching up. > > _______________________________________________ > freebsd-current@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"