[Bug 35794] New: iTunes 7 installer aborts early (failure to find builtin 'RegExp' class)

wine-bugs at winehq.org wine-bugs at winehq.org
Sun Mar 16 07:07:28 CDT 2014


https://bugs.winehq.org/show_bug.cgi?id=35794

            Bug ID: 35794
           Summary: iTunes 7 installer aborts early (failure to find
                    builtin 'RegExp' class)
           Product: Wine
           Version: 1.7.14
          Hardware: x86
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: vbscript
          Assignee: wine-bugs at winehq.org
          Reporter: focht at gmx.net

Hello folks,

continuation of bug 34154

--- snip ---
$ WINEDEBUG=+tid,+seh,+relay,+vbscript,+ole,+variant wine ./iTunesSetup7.exe
>>log.txt 2>&1
...
002f:trace:vbscript:disp_get_id using IDispatch
002f:trace:ole:ITypeInfo_fnGetIDsOfNames (0x1daf30) Name L"CompareVersions"
cNames 1
...
002f:warn:ole:ITypeInfo_fnGetIDsOfNames no names found
002f:fixme:msi:AutomationObject_GetIDsOfNames Unknown member
L"CompareVersions", clsid {000c109e-0000-0000-c000-000000000046}
...
002f:trace:vbscript:interp_errmode 1
002f:trace:vbscript:interp_new L"RegExp"
002f:fixme:vbscript:interp_new Class L"RegExp" not found
002f:fixme:vbscript:exec_script Failed 80004005 in resume next mode 
...
002d:err:msi:ITERATE_Actions Execution halted, action L"iTunesLaunchConditions"
returned 1603
--- snip ---

Relevant VBScript code snippet:

--- snip ---
...

Sub iTunesLaunchConditions
    PreventDowngrade
    DetectGEARDriverSetDeletion
    CheckUnsupportediPodSoftware
End Sub

Function CompareVersions(sVersion1, sVersion2)
    Dim rgExpVersionComponents
    Dim oMatches1, oMatches2
    Dim iVersion1, iVersion2
    Dim i

    On Error Resume Next
    Set rgExpVersionComponents = New RegExp
    rgExpVersionComponents.Pattern = "(\d+)\.?"
    rgExpVersionComponents.Global= True
    Set oMatches1 = rgExpVersionComponents.Execute(sVersion1)
    Set oMatches2 = rgExpVersionComponents.Execute(sVersion2)
    i = 0
    Do
        Err.Clear
        iVersion1 = 0
        iVersion2 = 0
        iVersion1 = CInt(oMatches1(i).SubMatches(0))
        iVersion2 = CInt(oMatches2(i).SubMatches(0))
        If iVersion1 < iVersion2 Then
            CompareVersions = -1
            Exit Function
        ElseIf iVersion1 > iVersion2 Then
            CompareVersions = 1
            Exit Function
        End If
        i = i + 1
    Loop While Err.number = 0
    CompareVersions = 0
End Function

Sub PreventDowngrade
    Const msiInstallStateAdvertised = 1
    Dim Installer
    Dim RelatedProducts
    Dim UpgradeCode
    Dim ProductCode
    Dim ProductVersion
    Dim ProductVersionMax
    Dim ProductVersionFound

    On Error Resume Next
    Set Installer = Session.Installer
    ProductVersion = Session.Property("ProductVersion")
    ProductVersionMax = ""
    UpgradeCode = Session.Property("UpgradeCode")
    Set RelatedProducts = Installer.RelatedProducts(UpgradeCode)
    For Each ProductCode in RelatedProducts
        If Installer.ProductState(ProductCode) = msiInstallStateAdvertised Then
            ProductVersionFound = Installer.ProductInfo(ProductCode, "Version")
        Else
            Err.Clear : ProductVersionFound =
Installer.ProductInfo(ProductCode, "VersionString")
            If Err.number <> 0 Then ProductVersionFound = ""
        End If
        If CompareVersions(ProductVersionFound, ProductVersionMax) > 0 Then
ProductVersionMax = ProductVersionFound
    Next
    If CompareVersions(ProductVersionMax, ProductVersion) > 0 Then
        Session.Property("BNEWERITUNESISINSTALLED") = "1"
    Else
        Session.Property("BNEWERITUNESISINSTALLED") = ""
    End If
End Sub

...
--- snip ---

-> 'Set rgExpVersionComponents = New RegExp'

$ sha1sum iTunesSetup7.exe 
5cdc86b2edb1411b9a022f05b1bfbe858fbcf901  iTunesSetup7.exe

$ du -sh iTunesSetup7.exe 
35M    iTunesSetup7.exe

$ wine --version
wine-1.7.14-126-g2bb1059

Regards

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list