Skip to content

Commit

Permalink
Create Framework64 directory on 64-bit.
Browse files Browse the repository at this point in the history
For wine bug 46639.
  • Loading branch information
Vincent Povirk committed Feb 14, 2019
1 parent e2d5c24 commit 30d5d66
Show file tree
Hide file tree
Showing 6 changed files with 109 additions and 2 deletions.
80 changes: 79 additions & 1 deletion build-winemono.sh
Expand Up @@ -188,17 +188,28 @@ build_cli ()
cp -r "$BUILDDIR/build-cross-cli-win32-install/etc" "$BUILDDIR/image/"
cp -r "$BUILDDIR/build-cross-cli-win32-install/lib/mono" "$BUILDDIR/image/lib"

cp "$BUILDDIR/build-cross-cli-win32-install/etc/mono/2.0/machine.config" "$BUILDDIR/image/1.1-machine.config64"
cp "$BUILDDIR/build-cross-cli-win32-install/etc/mono/2.0/machine.config" "$BUILDDIR/image/2.0-machine.config64"
cp "$BUILDDIR/build-cross-cli-win32-install/etc/mono/4.0/machine.config" "$BUILDDIR/image/4.0-machine.config64"

cp "$BUILDDIR/build-cross-cli-win32-install/etc/mono/2.0/machine.config" "$BUILDDIR/image/1.1-machine.config"
cp "$BUILDDIR/build-cross-cli-win32-install/etc/mono/2.0/machine.config" "$BUILDDIR/image/2.0-machine.config"
cp "$BUILDDIR/build-cross-cli-win32-install/etc/mono/4.0/machine.config" "$BUILDDIR/image/4.0-machine.config"

cp "$BUILDDIR/build-cross-cli-win32-install/lib/mono/2.0-api/mscorlib.dll" "$BUILDDIR/image/1.1-mscorlib.dll64"
cp "$BUILDDIR/build-cross-cli-win32-install/lib/mono/2.0-api/mscorlib.dll" "$BUILDDIR/image/2.0-mscorlib.dll64"
cp "$BUILDDIR/build-cross-cli-win32-install/lib/mono/4.0/mscorlib.dll" "$BUILDDIR/image/4.0-mscorlib.dll64"

cp "$BUILDDIR/build-cross-cli-win32-install/lib/mono/2.0-api/mscorlib.dll" "$BUILDDIR/image/1.1-mscorlib.dll"
cp "$BUILDDIR/build-cross-cli-win32-install/lib/mono/2.0-api/mscorlib.dll" "$BUILDDIR/image/2.0-mscorlib.dll"
cp "$BUILDDIR/build-cross-cli-win32-install/lib/mono/4.0/mscorlib.dll" "$BUILDDIR/image/4.0-mscorlib.dll"

mcs "$SRCDIR/csc-wrapper.cs" /d:VERSION40 -out:"$BUILDDIR"/image/4.0-csc.exe -r:Mono.Posix || exit 1
mcs "$SRCDIR/csc-wrapper.cs" /d:VERSION20 -out:"$BUILDDIR"/image/2.0-csc.exe -r:Mono.Posix || exit 1

cp "$BUILDDIR"/image/4.0-csc.exe "$BUILDDIR"/image/4.0-csc.exe64
cp "$BUILDDIR"/image/2.0-csc.exe "$BUILDDIR"/image/2.0-csc.exe64

# remove debug files
cd "$BUILDDIR"
for f in `find image|grep -E '\.(mdb|pdb)$'`; do
Expand Down Expand Up @@ -228,6 +239,16 @@ build_directorytable ()
printf 'WindowsDotNetFramework30wpf\tWindowsDotNetFramework30\twpf\n'
printf 'WindowsDotNetFramework40\tWindowsDotNetFramework\tv4.0.30319\n'
printf 'WindowsDotNetFramework40Config\tWindowsDotNetFramework40\tCONFIG\n'
printf 'WindowsDotNetFramework64\tWindowsDotNet\tFramework64\n'
printf 'WindowsDotNetFramework11_64\tWindowsDotNetFramework64\tv1.1.4322\n'
printf 'WindowsDotNetFramework11Config64\tWindowsDotNetFramework11_64\tCONFIG\n'
printf 'WindowsDotNetFramework20_64\tWindowsDotNetFramework64\tv2.0.50727\n'
printf 'WindowsDotNetFramework20Config64\tWindowsDotNetFramework20_64\tCONFIG\n'
printf 'WindowsDotNetFramework30_64\tWindowsDotNetFramework64\tv3.0\n'
printf 'WindowsDotNetFramework30wcf64\tWindowsDotNetFramework30_64\twindows communication foundation\n'
printf 'WindowsDotNetFramework30wpf64\tWindowsDotNetFramework30_64\twpf\n'
printf 'WindowsDotNetFramework40_64\tWindowsDotNetFramework64\tv4.0.30319\n'
printf 'WindowsDotNetFramework40Config64\tWindowsDotNetFramework40_64\tCONFIG\n'

cd "$BUILDDIR/image"

Expand All @@ -254,7 +275,6 @@ build_componenttable ()
printf 'Component\tComponent\n'

printf 'mono-registry\t{93BE4304-497C-4ACB-A0FD-1C3695C011B4}\tWindowsDotNetFramework\t4\t\tDotNetFrameworkInstallRoot\n'
printf 'mono-registry64\t{E088D122-0696-4137-BC4E-C999303B4BE2}\tWindowsDotNetFramework\t260\t\tDotNetFrameworkInstallRoot\n'
printf 'config-1.1\t{0DA29B5A-2050-4200-92EE-442D1EE6CF96}\tWindowsDotNetFramework11Config\t0\t\t1.1-machine.config\n'
printf 'config-2.0\t{ABB0BF6A-6610-4E45-8194-64D596667621}\tWindowsDotNetFramework20Config\t0\t\t2.0-machine.config\n'
printf 'config-4.0\t{511C0294-4504-4FC9-B5A7-E85CCEE95C6B}\tWindowsDotNetFramework40Config\t0\t\t4.0-machine.config\n'
Expand All @@ -266,6 +286,17 @@ build_componenttable ()
printf 'framework30wcf-folder\t{1ECAD22C-31C2-4BAC-AC74-78883C396FAB}\tWindowsDotNetFramework30wcf\t0\t\t\n'
printf 'framework30wpf-folder\t{3C146462-0CAF-4F07-83E6-A75A2A5DE961}\tWindowsDotNetFramework30wpf\t0\t\t\n'
printf 'framework40-folder\t{29ECF991-3E9E-4D23-B0B2-874631642B13}\tWindowsDotNetFramework40\t0\t\tmscorlib.dll\n'
printf 'mono-registry64\t{E088D122-0696-4137-BC4E-C999303B4BE2}\tWindowsDotNetFramework64\t260\t\tDotNetFrameworkInstallRoot\n'
printf 'config-1.1_64\t{0DA29B5A-2050-4200-92EE-442D1EE6CF96}\tWindowsDotNetFramework11Config64\t0\t(VersionNT64)\t1.1-machine.config\n'
printf 'config-2.0_64\t{ABB0BF6A-6610-4E45-8194-64D596667621}\tWindowsDotNetFramework20Config64\t0\t(VersionNT64)\t2.0-machine.config\n'
printf 'config-4.0_64\t{511C0294-4504-4FC9-B5A7-E85CCEE95C6B}\tWindowsDotNetFramework40Config64\t0\t(VersionNT64)\t4.0-machine.config\n'
printf 'framework-folder64\t{41B3A67B-63F4-4491-A53C-9E792BE5A889}\tWindowsDotNetFramework64\t0\t(VersionNT64)\t\n'
printf 'framework11-folder64\t{1D62EE73-2E84-4B96-BBB4-6439D5AECA11}\tWindowsDotNetFramework11_64\t0\t(VersionNT64)\tmscorlib.dll\n'
printf 'framework20-folder64\t{FFFB78E1-C0E2-438E-82FB-6FD6A897B9A6}\tWindowsDotNetFramework20_64\t0\t(VersionNT64)\tmscorlib.dll\n'
printf 'framework30-folder64\t{382F2EFD-0770-453C-BE85-B4437DB7F596}\tWindowsDotNetFramework30_64\t0\t(VersionNT64)\t\n'
printf 'framework30wcf-folder64\t{1E3E0042-917F-4ADD-B52F-83B47643C1FD}\tWindowsDotNetFramework30wcf64\t0\t(VersionNT64)\t\n'
printf 'framework30wpf-folder64\t{98A7F632-7B5F-4E51-A7E0-BBECAD55ED2E}\tWindowsDotNetFramework30wpf64\t0\t(VersionNT64)\t\n'
printf 'framework40-folder64\t{D796E473-D76E-46E3-8FEF-F04617D98C7C}\tWindowsDotNetFramework40_64\t0\t(VersionNT64)\tmscorlib.dll\n'
printf 'monobase-folder\t{BE46D94A-7443-4B5C-9B91-6A83815365AB}\tMONOBASEDIR\t0\t\t\n'
printf 'mono-folder\t{FD7F9172-4E35-4DF5-BD6A-FB7B795D9346}\tMONODIR\t0\t\t\n'

Expand Down Expand Up @@ -339,6 +370,16 @@ build_featurecomponentstable ()
printf 'wine_mono\tframework30wcf-folder\n'
printf 'wine_mono\tframework30wpf-folder\n'
printf 'wine_mono\tframework40-folder\n'
printf 'wine_mono\tconfig-1.1_64\n'
printf 'wine_mono\tconfig-2.0_64\n'
printf 'wine_mono\tconfig-4.0_64\n'
printf 'wine_mono\tframework-folder64\n'
printf 'wine_mono\tframework11-folder64\n'
printf 'wine_mono\tframework20-folder64\n'
printf 'wine_mono\tframework30-folder64\n'
printf 'wine_mono\tframework30wcf-folder64\n'
printf 'wine_mono\tframework30wpf-folder64\n'
printf 'wine_mono\tframework40-folder64\n'
printf 'wine_mono\tmonobase-folder\n'
printf 'wine_mono\tmono-folder\n'

Expand Down Expand Up @@ -406,6 +447,42 @@ build_filetable ()
COMPONENT=framework40-folder
BASENAME=csc.exe
;;
1.1-machine.config64)
COMPONENT=config-1.1_64
BASENAME=machine.config
;;
2.0-machine.config64)
COMPONENT=config-2.0_64
BASENAME=machine.config
;;
2.0-security.config64)
COMPONENT=config-2.0_64
BASENAME=security.config
;;
4.0-machine.config64)
COMPONENT=config-4.0_64
BASENAME=machine.config
;;
1.1-mscorlib.dll64)
COMPONENT=framework11-folder64
BASENAME=mscorlib.dll
;;
2.0-mscorlib.dll64)
COMPONENT=framework20-folder64
BASENAME=mscorlib.dll
;;
4.0-mscorlib.dll64)
COMPONENT=framework40-folder64
BASENAME=mscorlib.dll
;;
2.0-csc.exe64)
COMPONENT=framework20-folder64
BASENAME=csc.exe
;;
4.0-csc.exe64)
COMPONENT=framework40-folder64
BASENAME=csc.exe
;;
*)
COMPONENT=`dirname "$f"|sed -e 's/\//|/g'`
BASENAME=`basename "$f"`
Expand Down Expand Up @@ -541,6 +618,7 @@ build_cli
mkdir "$BUILDDIR"/image/support
cp "$SRCDIR"/dotnetfakedlls.inf "$BUILDDIR"/image/support/
cp "$SRCDIR"/security.config "$BUILDDIR"/image/2.0-security.config
cp "$SRCDIR"/security.config "$BUILDDIR"/image/2.0-security.config64

build_msi

Expand Down
16 changes: 16 additions & 0 deletions dotnetfakedlls.inf
Expand Up @@ -21,6 +21,9 @@ signature="$CHICAGO$"
[DefaultInstall]
WineFakeDlls=FakeDlls

[DefaultInstall.ntamd64]
WineFakeDlls=FakeDlls64

[FakeDlls]
10,Microsoft.NET\Framework\v1.1.4322,aspnet_regiis.exe
10,Microsoft.NET\Framework\v1.1.4322,ngen.exe
Expand All @@ -34,3 +37,16 @@ WineFakeDlls=FakeDlls
10,Microsoft.NET\Framework\v4.0.30319,ngen.exe
10,Microsoft.NET\Framework\v4.0.30319,fusion.dll

[FakeDlls64]
10,Microsoft.NET\Framework64\v1.1.4322,aspnet_regiis.exe
10,Microsoft.NET\Framework64\v1.1.4322,ngen.exe
10,Microsoft.NET\Framework64\v1.1.4322,fusion.dll
10,Microsoft.NET\Framework64\v1.1.4322,regsvcs.exe
10,Microsoft.NET\Framework64\v2.0.50727,ngen.exe
10,Microsoft.NET\Framework64\v2.0.50727,fusion.dll
10,Microsoft.NET\Framework64\v2.0.50727,regasm.exe
10,Microsoft.NET\Framework64\v3.0\windows communication foundation,servicemodelreg.exe
10,Microsoft.NET\Framework64\v3.0\wpf,presentationfontcache.exe
10,Microsoft.NET\Framework64\v4.0.30319,ngen.exe
10,Microsoft.NET\Framework64\v4.0.30319,fusion.dll

1 change: 1 addition & 0 deletions msi-tables/customaction.idt
Expand Up @@ -2,3 +2,4 @@ Action Type Source Target ExtendedType
s72 i2 S72 L0 I4
CustomAction Action
INSTALLFAKEDLLS 1058 support rundll32 setupapi.dll,InstallHinfSection DefaultInstall 128 [$support]dotnetfakedlls.inf
INSTALLFAKEDLLSWOW64 1058 support [SystemFolder]\rundll32.exe setupapi.dll,InstallHinfSection DefaultInstall 128 [$support]dotnetfakedlls.inf
1 change: 1 addition & 0 deletions msi-tables/installexecutesequence.idt
Expand Up @@ -14,6 +14,7 @@ CreateFolders 750
RemoveFolders 760
InstallFiles 800
INSTALLFAKEDLLS (&wine_mono=3) 850
INSTALLFAKEDLLSWOW64 (&wine_mono=3) AND (VersionNT64) 851
RemoveRegistryValues 900
WriteRegistryValues 950
RegisterProduct 1000
Expand Down
2 changes: 1 addition & 1 deletion msi-tables/registry.idt
Expand Up @@ -51,7 +51,7 @@ MsiNet20SP2Product 2 Software\Classes\Installer\Products\DC3BF90CC0D3D2F398A9A6D
MsiNet20SP2InstallProps 2 Software\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\DC3BF90CC0D3D2F398A9A6D1762F70F3\InstallProperties * mono-registry
MsiNet20SP2Installed 2 Software\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\DC3BF90CC0D3D2F398A9A6D1762F70F3\InstallProperties WindowsInstaller #1 mono-registry
DotNetFrameworkKey_64 2 Software\Microsoft\.NETFramework * mono-registry64
DotNetFrameworkInstallRoot_64 2 Software\Microsoft\.NETFramework InstallRoot [$mono-registry] mono-registry64
DotNetFrameworkInstallRoot_64 2 Software\Microsoft\.NETFramework InstallRoot [$mono-registry64] mono-registry64
DotNetFrameworkPolicy10_64 2 Software\Microsoft\.NETFramework\policy\v1.0 + mono-registry64
DotNetFrameworkPolicy11_64 2 Software\Microsoft\.NETFramework\policy\v1.1 + mono-registry64
DotNetFrameworkPolicy20_64 2 Software\Microsoft\.NETFramework\policy\v2.0 50727 50727-50727 mono-registry64
Expand Down
11 changes: 11 additions & 0 deletions msi-tables/removefile.idt
Expand Up @@ -12,4 +12,15 @@ Framework30wcfServiceModelReg support servicemodelreg.exe WindowsDotNetFramework
Framework30wpfPresentationFontCache support presentationfontcache.exe WindowsDotNetFramework30wpf 2
Framework40Ngen support ngen.exe WindowsDotNetFramework40 2
Framework40Fusion support fusion.dll WindowsDotNetFramework40 2
Framework11AspnetRegiis64 support aspnet_regiis.exe WindowsDotNetFramework11_64 2
Framework11Ngen64 support ngen.exe WindowsDotNetFramework11_64 2
Framework11Fusion64 support fusion.dll WindowsDotNetFramework11_64 2
Framework11RegSvcs64 support regsvcs.exe WindowsDotNetFramework11_64 2
Framework20Ngen64 support ngen.exe WindowsDotNetFramework20_64 2
Framework20Fusion64 support fusion.dll WindowsDotNetFramework20_64 2
Framework20RegAsm64 support regasm.exe WindowsDotNetFramework20_64 2
Framework30wcfServiceModelReg64 support servicemodelreg.exe WindowsDotNetFramework30wcf64 2
Framework30wpfPresentationFontCache64 support presentationfontcache.exe WindowsDotNetFramework30wpf64 2
Framework40Ngen64 support ngen.exe WindowsDotNetFramework40_64 2
Framework40Fusion64 support fusion.dll WindowsDotNetFramework40_64 2

0 comments on commit 30d5d66

Please sign in to comment.