cryinkfly / Autodesk-Fusion-360-for-Linux

This is a project, where I give you a way to use Autodesk Fusion 360 on Linux!
https://github.com/cryinkfly/Fusion-360---Linux-Wine-Version-/wiki
MIT License
1.79k stars 115 forks source link

[RFC] A Bottles' installer manifest *solved* #231

Closed RushingAlien closed 1 year ago

RushingAlien commented 2 years ago

Hell there, not sure if RFC is the appropriate here! I am currently attempting to write a Bottles' installer manifest for fusion360, however I seem to be hitting bug #215 and ommiting --quiet from the second install phase does not help, I am asking for feedback. gambar

Name: fusion360
Description : Fusion 360 is a cloud-based 3D CAD, CAM & CAE design tool from Autodesk. It is available on a number of platforms including Windows, Mac & In-Browser.
Grade : Bronze
Arch: win64

Dependencies:
- atmlib
- gdiplus
- msxml4
- msxml6
- vcredist2019
- winhttp

Executable:
  name: Fusion 360
  icon: fusion360.png
  file: fusion360.exe
  path: userdir/AppData/Roaming/Microsoft/Windows/Start Menu/Fusion360.lnk
  arguments: ""

Parameters:
  dxvk: true
  sync: esync

Steps:
- action: install_exe
  file_name: Fusion 360 Admin Install.exe
  url: https://dl.appstreaming.autodesk.com/production/installers/Fusion%20360%20Admin%20Install.exe
  rename: Fusion360installer.exe
  file_checksum: 4d7f2df94b6e87074dfdacf329e63ecb
  arguments: -p deploy -g -f log.txt --quiet

- action: install_exe
  file_name: Fusion 360 Admin Install.exe
  url: https://dl.appstreaming.autodesk.com/production/installers/Fusion%20360%20Admin%20Install.exe
  rename: Fusion360installer.exe
  file_checksum: 4d7f2df94b6e87074dfdacf329e63ecb
  arguments: -p deploy -g -f log.txt --quiet

docs : https://maintainers.usebottles.com https://github.com/bottlesdevs/programs

cryinkfly commented 2 years ago

Please look here: https://maintainers.usebottles.com/installers/structure/Actions#title10

It looks like you have to let the command run.

RushingAlien commented 2 years ago

Hi! thanks for answering. https://maintainers.usebottles.com/installers/structure/Actions#title1 Already runs Fusion360installer.exe, similarly to line 218 and 219 in stable-branch/bin/install.sh streamer.exe runs and "installs" fusion360. Maybe i am missing some custom commands, please let me know if i did.

SebBoulet commented 2 years ago

It could be that the streamer is failing (silently) half way through. If you remove the -f log.txt parameter, the streamer will generate an installation log in ~/wineprefixes/fusion360/drive_c/users/$USER/AppData/Local/Autodesk/autodesk.webdeploy.streamer.log which might indicate what's happening under the covers.

That's how I discovered that on my system, the streamer crashes just before copying the Fusion360.exe. (I'm still trying to figure out why)

Thermionix commented 2 years ago
2022-06-25 18:58:36,539 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.windows.platform - DEBUG :: ShellLink creation succeeded.  Setting path to \\?\C:\Program Files\Autodesk\webdeploy\production\6a0c9611291d45bb9226980209917c3d\FusionLauncher.exe
2022-06-25 18:58:36,539 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.windows.platform - DEBUG :: Setting shortcut target: C:\Program Files\Autodesk\webdeploy\production\6a0c9611291d45bb9226980209917c3d\FusionLauncher.exe
2022-06-25 18:58:36,543 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.windows.platform - DEBUG :: Setting icon id: 0
2022-06-25 18:58:36,544 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.manifests - DEBUG :: Searching for manifest object member: System.AppUserModel.ID
2022-06-25 18:58:36,544 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.utils - DEBUG :: Recording C:\users\Public\Desktop\Autodesk Fusion 360.lnk and None for rollback.
2022-06-25 18:58:36,544 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.windows.platform - DEBUG :: Writing shortcut file C:\users\Public\Desktop\Autodesk Fusion 360.lnk
2022-06-25 18:58:36,555 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.manifests - DEBUG :: Searching for manifest object member: properties
2022-06-25 18:58:36,555 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.manifests - DEBUG :: Searching for manifest object member: name
2022-06-25 18:58:36,555 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.windows.platform - INFO :: original name: Autodesk Fusion 360
2022-06-25 18:58:36,555 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.windows.platform - INFO :: stream name: production
2022-06-25 18:58:36,555 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.windows.platform - INFO :: new name: Autodesk Fusion 360
2022-06-25 18:58:36,555 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.manifests - DEBUG :: Searching for manifest object member: properties
2022-06-25 18:58:36,555 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.manifests - DEBUG :: Searching for manifest object member: icon
2022-06-25 18:58:36,555 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.manifests - DEBUG :: Searching for manifest object member: properties
2022-06-25 18:58:36,556 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.manifests - DEBUG :: Searching for manifest object member: destination
2022-06-25 18:58:36,556 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.windows.platform - INFO :: original launch icon: C:\Program Files\Autodesk\webdeploy\production\6a0c9611291d45bb9226980209917c3d\Fusion360.ico Fusion360.ico
2022-06-25 18:58:36,556 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.windows.platform - INFO :: new launch icon: C:\Program Files\Autodesk\webdeploy\production\6a0c9611291d45bb9226980209917c3d\Fusion360.ico
2022-06-25 18:58:36,556 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.manifests - DEBUG :: Searching for manifest object member: properties
2022-06-25 18:58:36,556 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.manifests - DEBUG :: Searching for manifest object member: icon-id
2022-06-25 18:58:36,556 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.manifests - DEBUG :: Searching for manifest object member: properties
2022-06-25 18:58:36,556 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.manifests - DEBUG :: Searching for manifest object member: arguments
2022-06-25 18:58:36,556 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.manifests - DEBUG :: Searching for manifest object member: properties
2022-06-25 18:58:36,556 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.manifests - DEBUG :: Searching for manifest object member: shell-properties
2022-06-25 18:58:36,557 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.windows.platform - DEBUG :: Shortcut destination is C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Autodesk
2022-06-25 18:58:36,557 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.windows.platform - DEBUG :: ShellLink creation succeeded.  Setting path to \\?\C:\Program Files\Autodesk\webdeploy\production\6a0c9611291d45bb9226980209917c3d\FusionLauncher.exe
2022-06-25 18:58:36,557 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.windows.platform - DEBUG :: Setting shortcut target: C:\Program Files\Autodesk\webdeploy\production\6a0c9611291d45bb9226980209917c3d\FusionLauncher.exe
2022-06-25 18:58:36,560 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.windows.platform - DEBUG :: Setting icon id: 0
2022-06-25 18:58:36,560 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.manifests - DEBUG :: Searching for manifest object member: System.AppUserModel.ID
2022-06-25 18:58:36,561 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.utils - DEBUG :: Recording C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Autodesk\Autodesk Fusion 360.lnk and None for rollback.
2022-06-25 18:58:36,561 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.windows.platform - DEBUG :: Writing shortcut file C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Autodesk\Autodesk Fusion 360.lnk
2022-06-25 18:58:36,571 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.manifests - DEBUG :: Searching for manifest object member: id
2022-06-25 18:58:36,572 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.manifests - DEBUG :: Searching for manifest object member: id
2022-06-25 18:58:36,572 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.manifests - DEBUG :: Searching for manifest object member: id
2022-06-25 18:58:36,572 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.manifests - DEBUG :: Executing callback on reference to \\?\C:\Program Files\Autodesk\webdeploy\production\6a0c9611291d45bb9226980209917c3d\FusionLauncher.exe.ini
2022-06-25 18:58:36,572 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.windows.platform - DEBUG :: Visiting file: {"id": "88ab02c8fa7e418e8661a61570d01246", "properties": {"auid": "AutodeskInc.Fusion360${streamtag}", "cmd": "73e72ada57b7480280f7a6f4a289729f", "global-flag": "0", "write-ini": "true"}}
2022-06-25 18:58:36,573 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.manifests - DEBUG :: Searching for manifest object member: properties
2022-06-25 18:58:36,573 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.manifests - DEBUG :: Searching for manifest object member: properties
2022-06-25 18:58:36,573 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.manifests - DEBUG :: Searching for manifest object member: launchable
2022-06-25 18:58:36,573 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.windows.platform - INFO :: Refresh icons for upgrade or live update on Win10 and above
2022-06-25 18:58:36,578 - MainProcess(264) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.process.process - WARNING :: Exception processing tasks for 2907d96bb112fb703e3967c28f873531e5de461d: [WinError 2] File not found
2022-06-25 18:58:36,608 - MainProcess(264) - MainThread - adsk.dls.streamer.process.process - INFO :: The host dl.appstreaming.autodesk.com is accessible
2022-06-25 18:58:36,613 - MainProcess(264) - MainThread - adsk.dls.streamer.process.process - INFO :: S_I: MTA0Ljc0LjM5LjIxMQ==
2022-06-25 18:58:36,619 - MainProcess(264) - MainThread - adsk.dls.streamer.process.process - INFO :: C_PR_I: MTkyLjE2OC4xLjEwMQ==
2022-06-25 18:58:36,625 - MainProcess(264) - MainThread - adsk.dls.streamer.network_checker - WARNING :: Failed to get local dns [WinError 2] File not found.
2022-06-25 18:58:36,625 - MainProcess(264) - MainThread - adsk.dls.streamer.process.process - INFO :: Local DNS: 
2022-06-25 18:58:36,626 - MainProcess(264) - MainThread - adsk.dls.streamer.process.process - INFO :: Detected proxies: e30=
2022-06-25 18:58:36,626 - MainProcess(264) - MainThread - adsk.dls.streamer.process.process - ERROR :: Exception during processing:
Traceback (most recent call last):
  File "R:\src\adsk\dls\streamer\process\process.py", line 1133, in execute
  File "R:\src\adsk\dls\streamer\process\process.py", line 1080, in execute_without_errorhandling
  File "R:\src\adsk\dls\streamer\process\process.py", line 906, in _config_app
  File "R:\src\adsk\dls\streamer\process\process.py", line 1842, in _do_installation
  File "R:\src\adsk\dls\streamer\process\process.py", line 1603, in wait_threads
  File "E:\Jenkins\3P\PYTHON\3.9.6\WIN64_1\lib\concurrent\futures\thread.py", line 52, in run
  File "R:\src\adsk\dls\streamer\process\process.py", line 1723, in execute_tasks
  File "R:\src\adsk\dls\streamer\process\process.py", line 403, in _executetasks
  File "R:\src\adsk\dls\streamer\windows\platform.py", line 329, in create_launch_items
  File "E:\Jenkins\3P\PYTHON\3.9.6\WIN64_1\lib\subprocess.py", line 368, in check_call
  File "E:\Jenkins\3P\PYTHON\3.9.6\WIN64_1\lib\subprocess.py", line 349, in call
  File "E:\Jenkins\3P\PYTHON\3.9.6\WIN64_1\lib\subprocess.py", line 951, in __init__
  File "E:\Jenkins\3P\PYTHON\3.9.6\WIN64_1\lib\subprocess.py", line 1420, in _execute_child
FileNotFoundError: [WinError 2] File not found

-------------------------------------------------------------------------------
2022-06-25 18:58:36,628 - MainProcess(264) - MainThread - adsk.dls.streamer.process.process - WARNING :: No reporterror callback method found on sink: None
2022-06-25 18:58:36,629 - MainProcess(264) - MainThread - adsk.dls.streamer.utils - DEBUG :: Removing the file C:\users\Public\Desktop\Autodesk Fusion 360.lnk
2022-06-25 18:58:36,631 - MainProcess(264) - MainThread - adsk.dls.streamer.utils - DEBUG :: Removing the file C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Autodesk\Autodesk Fusion 360.lnk
2022-06-25 18:58:36,632 - MainProcess(264) - MainThread - adsk.dls.streamer.utils - DEBUG :: Reseting collection of tracked files
2022-06-25 18:58:36,632 - MainProcess(264) - MainThread - adsk.dls.streamer.windows.platform - DEBUG ::  Open the key: Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
2022-06-25 18:58:36,632 - MainProcess(264) - MainThread - adsk.dls.streamer.windows.platform - WARNING :: Failed to run ie4uinit -ClearIconCache :  [WinError 2] File not found
2022-06-25 18:58:36,632 - MainProcess(264) - MainThread - adsk.dls.streamer.process.process - DEBUG :: Rolling back activated configuration files for package 2907d96bb112fb703e3967c28f873531e5de461d
2022-06-25 18:58:36,633 - MainProcess(264) - MainThread - adsk.dls.streamer.utils - DEBUG :: Removing the file \\?\C:\Program Files\Autodesk\webdeploy\production\59c8a288d74003935db5128cd3acb5349f9d794a\Fusion 360.server.config
2022-06-25 18:58:36,634 - MainProcess(264) - MainThread - adsk.dls.streamer.process.process - DEBUG :: Successfully remove \\?\C:\Program Files\Autodesk\webdeploy\production\59c8a288d74003935db5128cd3acb5349f9d794a\Fusion 360.server.config
2022-06-25 18:58:36,637 - MainProcess(264) - MainThread - adsk.dls.streamer.process.process - INFO :: Detecting the orphans ... 
2022-06-25 18:58:36,637 - MainProcess(264) - MainThread - adsk.dls.streamer.registry - DEBUG :: Retreiving list of orphaned files with: SELECT * FROM tblFILES WHERE "pkgid" IS NULL
2022-06-25 18:58:36,670 - MainProcess(264) - MainThread - adsk.dls.streamer.process.process - WARNING :: Error detected, removing cache file list in 2907d96bb112fb703e3967c28f873531e5de461d

2022-06-25 18:58:37,498 - MainProcess(264) - MainThread - adsk.dls.streamer.process.process - DEBUG :: Successfully remove \\?\c:\program files\autodesk\webdeploy\production\59c8a288d74003935db5128cd3acb5349f9d794a\fusion360.exe
2022-06-25 18:58:37,502 - MainProcess(264) - MainThread - adsk.dls.streamer.utils - DEBUG :: Removing the file \\?\c:\program files\autodesk\webdeploy\production\59c8a288d74003935db5128cd3acb5349f9d794a\fusionlauncher.exe
2022-06-25 18:58:37,504 - MainProcess(264) - MainThread - adsk.dls.streamer.process.process - DEBUG :: Successfully remove \\?\c:\program files\autodesk\webdeploy\production\59c8a288d74003935db5128cd3acb5349f9d794a\fusionlauncher.exe
Thermionix commented 2 years ago

Ok, reading the debug a bit more; adsk.dls.streamer.windows.platform - INFO :: Refresh icons for upgrade or live update on Win10 and above adsk.dls.streamer.windows.platform - DEBUG :: Open the key: Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced adsk.dls.streamer.windows.platform - WARNING :: Failed to run ie4uinit -ClearIconCache : [WinError 2] File not found

Seems to be related to attempting to update the IconCache after writing Autodesk Fusion 360.lnk ie4uinit.exe doesn't exist in wine I've tried using winetricks win7 & winetricks win81 on fresh prefixes but this line is always getting run and causing the error

this is the same issue in #243 #244

There is no winetricks package that will add ie4uinit.exe (as its part of IE which requires winearch 32)

Thermionix commented 2 years ago

trying a fake exe via

cd "$WINEPREFIX/drive_c/windows/system32/"
winebuild --exe -o ie4uinit.exe -m64

however upon running now getting

2022-06-26 13:32:24,694 - MainProcess(260) - ThreadPoolExecutor-1_0 - adsk.dls.streamer.process.process - WARNING :: Exception processing tasks for 2907d96bb112fb703e3967c28f873531e5de461d: [WinError 193] Bad EXE format for %1
2022-06-26 13:32:24,712 - MainProcess(260) - MainThread - adsk.dls.streamer.process.process - INFO :: The host dl.appstreaming.autodesk.com is accessible
2022-06-26 13:32:24,714 - MainProcess(260) - MainThread - adsk.dls.streamer.process.process - INFO :: S_I: MTA0LjExNi45MS4xOTU=
2022-06-26 13:32:24,724 - MainProcess(260) - MainThread - adsk.dls.streamer.process.process - INFO :: C_PR_I: MTkyLjE2OC4xLjEwMQ==
2022-06-26 13:32:24,729 - MainProcess(260) - MainThread - adsk.dls.streamer.network_checker - WARNING :: Failed to get local dns [WinError 2] File not found.
2022-06-26 13:32:24,729 - MainProcess(260) - MainThread - adsk.dls.streamer.process.process - INFO :: Local DNS: 
2022-06-26 13:32:24,730 - MainProcess(260) - MainThread - adsk.dls.streamer.process.process - INFO :: Detected proxies: e30=
2022-06-26 13:32:24,730 - MainProcess(260) - MainThread - adsk.dls.streamer.process.process - ERROR :: Exception during processing:
Traceback (most recent call last):
  File "R:\src\adsk\dls\streamer\process\process.py", line 1133, in execute
  File "R:\src\adsk\dls\streamer\process\process.py", line 1080, in execute_without_errorhandling
  File "R:\src\adsk\dls\streamer\process\process.py", line 906, in _config_app
  File "R:\src\adsk\dls\streamer\process\process.py", line 1842, in _do_installation
  File "R:\src\adsk\dls\streamer\process\process.py", line 1603, in wait_threads
  File "E:\Jenkins\3P\PYTHON\3.9.6\WIN64_1\lib\concurrent\futures\thread.py", line 52, in run
  File "R:\src\adsk\dls\streamer\process\process.py", line 1723, in execute_tasks
  File "R:\src\adsk\dls\streamer\process\process.py", line 403, in _executetasks
  File "R:\src\adsk\dls\streamer\windows\platform.py", line 329, in create_launch_items
  File "E:\Jenkins\3P\PYTHON\3.9.6\WIN64_1\lib\subprocess.py", line 368, in check_call
  File "E:\Jenkins\3P\PYTHON\3.9.6\WIN64_1\lib\subprocess.py", line 349, in call
  File "E:\Jenkins\3P\PYTHON\3.9.6\WIN64_1\lib\subprocess.py", line 951, in __init__
  File "E:\Jenkins\3P\PYTHON\3.9.6\WIN64_1\lib\subprocess.py", line 1420, in _execute_child
OSError: [WinError 193] Bad EXE format for %1

-------------------------------------------------------------------------------
2022-06-26 13:32:24,732 - MainProcess(260) - MainThread - adsk.dls.streamer.process.process - WARNING :: No reporterror callback method found on sink: None
2022-06-26 13:32:24,733 - MainProcess(260) - MainThread - adsk.dls.streamer.utils - DEBUG :: Removing the file C:\users\Public\Desktop\Autodesk Fusion 360.lnk
2022-06-26 13:32:24,735 - MainProcess(260) - MainThread - adsk.dls.streamer.utils - DEBUG :: Removing the file C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Autodesk\Autodesk Fusion 360.lnk
2022-06-26 13:32:24,736 - MainProcess(260) - MainThread - adsk.dls.streamer.utils - DEBUG :: Reseting collection of tracked files
2022-06-26 13:32:24,736 - MainProcess(260) - MainThread - adsk.dls.streamer.windows.platform - DEBUG ::  Open the key: Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
2022-06-26 13:32:24,736 - MainProcess(260) - MainThread - adsk.dls.streamer.windows.platform - WARNING :: Failed to run ie4uinit -ClearIconCache :  [WinError 2] File not found

2022-06-26 13:32:26,752 - MainProcess(260) - MainThread - adsk.dls.streamer.manifests - DEBUG :: Searching for manifest object member: build-version
2022-06-26 13:32:26,752 - MainProcess(260) - MainThread - adsk.dls.streamer.process.process - WARNING :: Exception in Deploy [WinError 193] Bad EXE format for %1
Thermionix commented 2 years ago

implemented a fix in my repo

# Temporary hack to fix adsk.dls.streamer.windows.platform - WARNING :: Failed to run ie4uinit -ClearIconCache
cd "$WINEPREFIX/drive_c/windows/system32/"
cp icinfo.exe ie4uinit.exe

which enables streamer.exe to finish the install with the --quiet flag

RushingAlien commented 1 year ago

this should be marked as closed as a bottles contributor has added an installer with the needed workaround : https://github.com/bottlesdevs/programs/pull/101