On Tue, 16 Sep 2003, Rick Rankin wrote:
I ran into a situation I hadn't seen before a few days ago when I used
setup to update my Cygwin installation from 1.5.3 to 1.5.4. What
happened was that there were several packages, in addition to
cygwin-1.5.4, that had updates available. Setup downloaded the updates,
then uninstalled the old packages, including cygwin-1.5.3. When it went
to install the updates, cygwin-1.5.4 was *not* the first package that
got installed, so any postinstallion scripts failed with a dialog box
from the O/S saying that "Windows cannot find cygwin1.dll in <path
list>" until after cygwin itself was updated. After setup installed the
cygwin package, the rest of the postinstall scripts ran fine.
Is the cygwin package given any special consideration during the install
process (e.g., last to be uninstalled, first to be (re)installed), or is
this something that's expected to be handled by the dependency list?
I've been perusing the setup sources, but I haven't quite figured out
the dependency processing, yet. So far, I haven't found anything related
via Google searches, either.
--Rick
The setup program simply performs a topological sort of the package
dependence graph, and then traverses the packages in that order. Of
course, since the graph is cyclic, topological order is not unique. In
any case, the postinstall scripts should run after *all* the packages are
unpacked, so you shouldn't be missing cygwin1.dll on postinstall.
However, preremove scripts are run just before the corresponding package
is removed (in alphabetical order, IIRC). This presents a problem, but
noone so far has considered it a large enough problem to invest the effort
in a fix. It's likely that you saw this particular problem in your
upgrade. <http://cygwin.com/acronyms/#PTC>.
Igor