On 9/11/2020 4:30 PM, Achim Gratz wrote:
Ken Brown via Cygwin writes:
Unfortunately, this doesn't yet fix the problem with
fontconfig_dtd.sh.  The latter will now succeed if it is run after
libxml2.sh, but not if it is run first.  I'm not aware of any way to
force setup to run one postinstall script before another.

Multiple ways:

1. Make the libxml postinstall script sort lexically before any others
that depend on it.  Obviously this is brittle, but it might work in this
particular instance (autorebase does this).

2.  Make the libxml catalog creation a perpetual postinstall script with
prefix "0p_".  That only works if it doesn't depend on other postinstall
scripts having their work completed.

3. Implement and use the stratified postinstall concept originally
outlined at:
https://sourceware.org/legacy-ml/cygwin-apps/2014-12/msg00148.html

4. Use the package dependency order to order the postinstall script
activation.  With libzypp we should have the correct information, we'd
just need to somehow make the packagemeta iterator use it.  That still
won't work if we have dependency loops.

5. (Try to) Run any failed postinstalls again in setup and bail only if
the number of fails does not decrease from the last iteration.

At the time it was deemed too complicated and so we only use the "end"
strata for the perpetual postinstall scripts.  As said then, there would
need to be some serious discussion on how to coordinate the strata
assignments.

There's no dependency relation between libxml2 and libfontconfig-common, so #4 wouldn't fix the problem. And some of the other suggestions would require work on setup.exe that someone would have to do. The current problem is simple to fix and shouldn't have to wait for that.

I like your idea of using perpetual postinstall scripts. I think the way to do it is probably to make fontconfig_dtd.sh perpetual with prefix "zp_". That way if libfontconfig-common is installed without libxml2 but then libxml2 is installed later, the xmlcatalog command gets run. We would have to check that no harm is done if that xmlcatalog command gets run more than once.

Ken
--
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

Reply via email to