How image installs work [was Re: The image question]
Jordan K. Hubbard
jkh at brierdr.com
Mon Mar 12 16:01:49 PDT 2007
On Mar 12, 2007, at 1:47 PM, Ryan Schmidt wrote:
> Seems to me that it would be ideal if I could have version A of a
> library installed, then install a whole bunch of software that
> depends on that library. Then install a new version B of the
> library which breaks backward compatibility. Keep both versions of
> the library installed at the same time. Attempting to uninstall
> version A would show you which other packages still depend on
> version A of the library, so that you can rebuild those packages
> against version B. Once you've done all that, version A can be
> uninstalled.
As a number of people have pointed out, this does not absolutely
require image mode in order to work since you can always just do name-
munging on all the different B, C, D, ... versions of that library
(the dylibs already version, but let's assume that this is a complex
library and also has headers/helpers that need to be munged as well
in order to achieve peaceful multi-version co-existence). It simply
makes it a bit more elegant since name munging comes for free as a
result of partitioning the namespace by version string in the depot.
The hard part comes when you decide to upgrade all the things which
depend on A. Sure, it's easy enough to programmatically determine
how many things depend on A and how many depend on B, but rolling
back all the dependencies on A and rebuilding them in hopes that
they'll still build AND will properly latch on to B, there's just no
guarantee that this is going to work when so many parts of the system
are moving independently. In the case where you have several dozen
dependents, chances are excellent that the automation is going to
succeed in rebuilding about half of them (remember, at any given
time, at least 50% of MacPorts actually fail to build right now) and
the other half will be in some hosed, uninstalled but not
successfully reinstalled, state.
If you further assume that people are relying on this software, it's
pretty depressing. It's sort of like saying, as an OS vendor, that
any given software update MIGHT render your system completely
inoperative, but no more than 50% of the time. Go ahead, apply it!
You have a 50% chance of coming through it completely unharmed, after
all, so why are you being such a wuss! :-)
- Jordan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macports-users/attachments/20070312/ed67d71e/attachment.html
More information about the macports-users
mailing list