Bug 119897 - Installation glitch for EmojiOneColor-SVGinOT.ttf
Summary: Installation glitch for EmojiOneColor-SVGinOT.ttf
Status: VERIFIED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Installation (show other bugs)
Version:
(earliest affected)
6.1.1.2 release
Hardware: All Windows (All)
: medium normal
Assignee: Mike Kaganski
URL:
Whiteboard: target:6.2.0 target:6.1.2
Keywords:
Depends on:
Blocks:
 
Reported: 2018-09-15 17:00 UTC by V Stuart Foote
Modified: 2018-10-19 16:05 UTC (History)
5 users (show)

See Also:
Crash report or crash signature:


Attachments
LO 6.1.0.3 upgrade to 6.1.1.2 msiexec verbose install log -- zipped (2.57 MB, application/x-zip-compressed)
2018-09-15 17:00 UTC, V Stuart Foote
Details

Note You need to log in before you can comment on or make changes to this bug.
Description V Stuart Foote 2018-09-15 17:00:21 UTC
Created attachment 144901 [details]
LO 6.1.0.3 upgrade to 6.1.1.2 msiexec verbose install log -- zipped

On Windows 10 Home 64-bit en-US updating from 6.1.0.3 to 6.1.1.2

Reviewing verbose msiexec log--the EmojiOneColor-SVGinOT.ttf install ({0B0A7988-C980-8003-F086-DA086384E193}) is being disallowed bcz "the same component with higher versioned keyfile exists", but then the install proceeds to:

UnregisterSharedComponentProvider for its GUID

and then remove the font

Executing op: FileRemove(,FileName=EmojiOneColor-SVGinOT.ttf,,ComponentId={0B0A7988-C980-8003-F086-DA086384E193})
RemoveFiles: File: EmojiOneColor-SVGinOT.ttf, Directory: C:\WINDOWS\Fonts\


ends without EmojiOneColor font installed.

verbose install log attached...
Comment 1 V Stuart Foote 2018-09-15 17:17:51 UTC
Checked the installer packages for 6.1.0.3 and 6.1.1.2, as well as current master/6.2.0 packaging.  All show the same EmojiOneColor-SVGinOT.ttf ver 1.3.20160725 with the same HASH values:

MD5	31a2d6b5c2eb1a2ab23d465e492fd5cf
SHA-1	1847308f62889c7b3598d0a9e2a6b19cfb893172
SHA-256	43ac6c3705afbc3cef97dc2501f4e64168ba734816839059116ce9a19e9321a6

Don't beleive I'd installed another build of the font, but issue of course is that the installer logic Disallowed -- but then unregistered, and removed the font?
Comment 2 Mike Kaganski 2018-09-16 10:23:01 UTC
I believe that the problem is that the font's version is not detected properly when MSI is created - it's written as 1.0.0.0; then when installing a component with a version lower than installed on system, the funny thing happens (this is also related to bug 117492 - we uninstall previous package completely, but not reinstall the "older" version afterwards).

https://gerrit.libreoffice.org/60548
Comment 3 Commit Notification 2018-09-17 05:00:29 UTC
Mike Kaganski committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=38aae53a1004bb7393c81a98c7b370344613244e

tdf#119897: "Version " prefix is optional

It will be available in 6.2.0.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 4 Mike Kaganski 2018-09-17 05:47:00 UTC
The patch mentioned in comment 3 also affects KacstBook.ttf and KacstOffice.ttf (now they have version 2.1.0.0 in MSI).

Please test the fix in a daily. Backport to 6-1 is in https://gerrit.libreoffice.org/60556.
Comment 5 Commit Notification 2018-09-17 13:58:56 UTC
Mike Kaganski committed a patch related to this issue.
It has been pushed to "libreoffice-6-1":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=4db4befcb7f710cb9ec0dcc9968ee2d0b836a1c2&h=libreoffice-6-1

tdf#119897: "Version " prefix is optional

It will be available in 6.1.2.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 6 V Stuart Foote 2018-09-17 18:54:38 UTC
Nice catch Mike!

So needed further refinement of work on bug 116581 [1] for using the perl Font::TTF::Font module to correctly extract font version string, the perl syntax is certainly terse.

But makes refcount handling on Windows builds more reliable, 

If folks don't mind, I'll retest at 6.1.2, as testing master/6.2.0 is kind of disruptive needing a WRITER_REGISTRY=1 flag, or doing a Windows VM install to bang against.

=-ref-=
https://gerrit.libreoffice.org/#/c/51793/
Comment 7 Xisco Faulí 2018-10-19 11:35:33 UTC
> If folks don't mind, I'll retest at 6.1.2, as testing master/6.2.0 is kind
> of disruptive needing a WRITER_REGISTRY=1 flag, or doing a Windows VM
> install to bang against.

Hi Stuart,
Did you have the change to test it?
Should this issue be closed as RESOLVED FIXED ?
Comment 8 V Stuart Foote 2018-10-19 14:50:03 UTC
(In reply to Xisco Faulí from comment #7)
> ...
> Did you have the change to test it?
> Should this issue be closed as RESOLVED FIXED ?

Sorry lost track of this task--but, yes we get the correct behavior now. The snippet from a 6.1.1.2 -> 6.1.3.1 update shows:

MSI (s) (9C:84) [09:31:48:567]: Executing op: RegisterSharedComponentProvider(,,File=EmojiOneColor_SVGinOT.ttf,Component={0B0A7988-C980-8003-F086-DA086384E193},ComponentVersion=1.3.0.0,ProductCode={28CD926D-EB22-4B4B-9139-494A3C25C3E2},ProductVersion=6.1.3,PatchSize=0,PatchAttributes=0,PatchSequence=0,SharedComponent=0,IsFullFile=0)
MSI (s) (9C:84) [09:31:48:567]: Executing op: FileCopy(SourceName=EMOJIO~1.TTF|EmojiOneColor-SVGinOT.ttf,SourceCabKey=EmojiOneColor_SVGinOT.ttf,DestName=EmojiOneColor-SVGinOT.ttf,Attributes=16384,FileSize=6193636,PerTick=65536,,VerifyMedia=1,,,,,CheckCRC=0,Version=1.3.0.0,,InstallMode=58982400,,,,,,,)
MSI (s) (9C:84) [09:31:48:567]: File: C:\WINDOWS\Fonts\EmojiOneColor-SVGinOT.ttf;	Won't Overwrite;	Won't patch;	Existing file is of an equal version

So, the font version handling is what we needed.