Date: Sun, 11 Apr 2010 21:49:09 +1200 From: James Butler <sweetnavelorange@gmail.com> To: Tim Kientzle <kientzle@freebsd.org> Cc: Adam Vande More <amvandemore@gmail.com>, Kris Moore <kris@pcbsd.com>, John Hixson <jhixson@gmail.com>, "ports@freebsd.org" <ports@freebsd.org>, Julian Elischer <julian@elischer.org>, "Dave Fourman\(Gmail\)" <dfourman@gmail.com>, "Sam Fourman Jr." <sfourman@gmail.com>, Garrett Cooper <yanefbsd@gmail.com>, Matt Olander <matt@ixsystems.com>, Vanessa Kraus <vmkraus@gmail.com>, FreeBSD Current <current@freebsd.org> Subject: Re: ports and PBIs Message-ID: <g2nf0dd9eb91004110249m65161b1cve80a9d3db7e8d360@mail.gmail.com> In-Reply-To: <4BC0CC6F.7010009@freebsd.org> References: <4BBFD502.1010507@elischer.org> <r2w6201873e1004092011y829fe434w724ccde9cbf78e2c@mail.gmail.com> <o2z11167f521004092328z50ed9c9zde0294a344439709@mail.gmail.com> <x2i7d6fde3d1004100020oc8be3c51ree5f1e4b07b99f45@mail.gmail.com> <4BC03ABA.6090309@elischer.org> <q2q7d6fde3d1004100335ucf424ae0gbfcdba950fd68767@mail.gmail.com> <4BC0CC6F.7010009@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sunday, April 11, 2010, Tim Kientzle <kientzle@freebsd.org> 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: > =C2=A0 A2.7 requires B3.6 > =C2=A0 =C2=A0 ... one year passes ... > =C2=A0 A4.8 now requires B7.2 > But A4.8 is incompatible with B3.6 and A2.7 is > incompatible with B7.2. =C2=A0So neither A nor B > can be updated separately without breaking the system. > > Here's the hard problem: > =C2=A0 A2.7 requires B3.6 > =C2=A0 =C2=A0 ... one year passes ... > =C2=A0 I want to install C1.0 which requires B7.2 > =C2=A0 but there hasn't been a new release of A that > =C2=A0 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. =C2=A0It 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 Genuine (possibly stupid) question - in PBI land, what happens if package B is, say, CUPS? Does one need versioned rc.d scripts to start one or the other? Which one gets to claim port 631? -James Butler > [1] Actually, PBI might work just fine even for > embedded if we address the disk bloat issue. =C2=A0One > approach would be to make > =C2=A0 /Package/Bar/libfoo-2.8.7.so > a symlink or hardlink to > =C2=A0 /Package/Shared/libfoo-2.8.7.so-<MD5-hash> > This gives easy sharing of identical files. > It's even easy to handle at install time: > =C2=A0* Installer writes libfoo-2.8.7.so to > =C2=A0 =C2=A0 /Package/Shared/libfoo-2.8.7.so-temp-<PID of installer> > =C2=A0* Installer computes hash of file as it's written > =C2=A0* Installer renames file (delete if rename fails with EEXIST) > =C2=A0* Installer writes symlink or hardlink into /Package/Bar > > _______________________________________________ > freebsd-current@freebsd.org=C2=A0mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org= " >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?g2nf0dd9eb91004110249m65161b1cve80a9d3db7e8d360>