postinstall: fontconfig abnormal exit

Ken Brown kbrown@cornell.edu
Fri Sep 11 21:13:27 GMT 2020


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


More information about the Cygwin mailing list