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