Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Package Issue]: WiresharkFoundation.Wireshark #173054

Open
2 tasks done
dingwen07 opened this issue Sep 12, 2024 · 5 comments
Open
2 tasks done

[Package Issue]: WiresharkFoundation.Wireshark #173054

dingwen07 opened this issue Sep 12, 2024 · 5 comments
Labels
Help-Wanted This is a good candidate work item from the community. Issue-Bug It either shouldn't be doing this or needs an investigation.

Comments

@dingwen07
Copy link
Contributor

Please confirm these before moving forward

  • I have searched for my issue and not found a work-in-progress/duplicate/resolved issue.
  • I have not been informed if the issue is resolved in a preview version of the winget client.

Category of the issue

Installation issue.

Brief description of your issue

On Arm64 systems, WinGet defaults to install x86-64 version, --architecture Arm64 flag is required to install Arm64 version.

Steps to reproduce

On Windows on ARM system, run winget install WiresharkFoundation.Wireshark, it will download x86-64 version.

Run winget install WiresharkFoundation.Wireshark --architecture arm64 then it will correctly download the arm64 version.

Actual behavior

Install x86-64 version by default.

Expected behavior

Install Arm64 version by default on Arm64 systems.

Environment

Windows Package Manager (Preview) v1.9.2411-preview
Copyright (c) Microsoft Corporation. All rights reserved.

Windows: Windows.Desktop v10.0.26100.1742
System Architecture: Arm64
Package: Microsoft.DesktopAppInstaller v1.24.2411.0

Winget Directories
-----------------------------------------------------------------------------------------------------------------------
Logs                               %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\Diag…
User Settings                      %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\sett…
Portable Links Directory (User)    %LOCALAPPDATA%\Microsoft\WinGet\Links
Portable Links Directory (Machine) C:\Program Files\WinGet\Links
Portable Package Root (User)       %LOCALAPPDATA%\Microsoft\WinGet\Packages
Portable Package Root              C:\Program Files\WinGet\Packages
Portable Package Root (x86)        C:\Program Files (x86)\WinGet\Packages
Installer Downloads                %USERPROFILE%\OneDrive\Downloads

Links
---------------------------------------------------------------------------
Privacy Statement   https://aka.ms/winget-privacy
License Agreement   https://aka.ms/winget-license
Third Party Notices https://aka.ms/winget-3rdPartyNotice
Homepage            https://aka.ms/winget
Windows Store Terms https://www.microsoft.com/en-us/storedocs/terms-of-sale

Admin Setting                             State
--------------------------------------------------
LocalManifestFiles                        Disabled
BypassCertificatePinningForMicrosoftStore Disabled
InstallerHashOverride                     Disabled
LocalArchiveMalwareScanOverride           Disabled
ProxyCommandLineOptions                   Disabled
DefaultProxy                              Disabled

Screenshots and Logs

winget install WiresharkFoundation.Wireshark
Found Wireshark [WiresharkFoundation.Wireshark] Version 4.4.0
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Downloading https://2.na.dl.wireshark.org/win64/Wireshark-4.4.0-x64.msi
Cancelled

winget install WiresharkFoundation.Wireshark --architecture arm64
Found Wireshark [WiresharkFoundation.Wireshark] Version 4.4.0
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Downloading https://2.na.dl.wireshark.org/win64/Wireshark-4.4.0-arm64.exe
Cancelled
@dingwen07 dingwen07 added the Issue-Bug It either shouldn't be doing this or needs an investigation. label Sep 12, 2024
@microsoft-github-policy-service microsoft-github-policy-service bot added the Needs-Triage This work item needs to be triaged by a member of the core team. label Sep 12, 2024
@sarahsevee
Copy link
Contributor

sarahsevee commented Sep 12, 2024

The same behavior occurs on my machine.

The error appears to be related to the InstallerLocale being either missing or unnecessarily included, which is only added for the MSI installer.

Should the locale be added to all installers or removed altogether?

Testing with both options selects the appropriate architecture.

@sarahsevee
Copy link
Contributor

Winget now seems to prefer the x64 exe installer, instead of the x64 msi.

Is it advisable to have 2 different installers for the same scope and architecture? All installers are in machine scope.

@dingwen07
Copy link
Contributor Author

Winget now seems to prefer the x64 exe installer, instead of the x64 msi.

Is it advisable to have 2 different installers for the same scope and architecture? All installers are in machine scope.

In my system winget seem to prefer x64 MSI installer, I am not sure if that's related but there is no Arm64 MSI installer in the manifest because Wireshark doesn't provide that.

@sarahsevee
Copy link
Contributor

sarahsevee commented Sep 12, 2024

Winget now seems to prefer the x64 exe installer, instead of the x64 msi.
Is it advisable to have 2 different installers for the same scope and architecture? All installers are in machine scope.

In my system winget seem to prefer x64 MSI installer, I am not sure if that's related but there is no Arm64 MSI installer in the manifest because Wireshark doesn't provide that.

If you remove "InstallerLocale: en-US" from line 24, it will choose the correct architecture. But as mentioned, then on x64 it will prefer the x64 exe installer.

# Created with komac v2.6.0
# yaml-language-server: $schema=https://aka.ms/winget-manifest.installer.1.6.0.schema.json

PackageIdentifier: WiresharkFoundation.Wireshark
PackageVersion: 4.4.0
Platform:
- Windows.Desktop
Scope: machine
InstallModes:
- interactive
- silent
- silentWithProgress
UpgradeBehavior: install
ReleaseDate: 2024-08-28
Installers:
- Architecture: arm64
  InstallerType: nullsoft
  InstallerUrl: https://2.na.dl.wireshark.org/win64/Wireshark-4.4.0-arm64.exe
  InstallerSha256: C6DD8E0300FD3B12BA56184E0F9E2C6B91861E73F795D80E4FDDB748390BD83F
- Architecture: x64
  InstallerType: nullsoft
  InstallerUrl: https://2.na.dl.wireshark.org/win64/Wireshark-4.4.0-x64.exe
  InstallerSha256: F635E68EF536FE85B2C0D5AC12A1197BA015CACC0C866C1995AE75B2B5D957FD
- Architecture: x64
  InstallerType: wix
  InstallerUrl: https://2.na.dl.wireshark.org/win64/Wireshark-4.4.0-x64.msi
  InstallerSha256: 6518C93481D2269D04158C7A632DDF912E6EB332B0E4DA4FD247D6E0E3D7D363
  ProductCode: '{6921416A-050F-4E48-B9DA-94F8941A09F0}'
  AppsAndFeaturesEntries:
  - DisplayName: Wireshark
    Publisher: The Wireshark developer community, https://www.wireshark.org/
    ProductCode: '{6921416A-050F-4E48-B9DA-94F8941A09F0}'
    UpgradeCode: '{0D67AACE-269A-4264-81A3-DA8055C1C79C}'
  InstallationMetadata:
    DefaultInstallLocation: '%ProgramFiles%\Wireshark'
ManifestType: installer
ManifestVersion: 1.6.0

@stephengillie stephengillie added Help-Wanted This is a good candidate work item from the community. and removed Needs-Triage This work item needs to be triaged by a member of the core team. labels Sep 13, 2024
@sarahsevee
Copy link
Contributor

sarahsevee commented Sep 20, 2024

After having a further look into this, as detailed in the wireshark readme, the wix/msi installer is still experimental.

Should an experimental installer be packaged for winget?

Switching between installer types is problematic.

  • Going from nullsoft/exe to msi requires manual uninstall, the msi installer will just throw an error if it detects an exe installed version.
  • Going from msi to exe with default/silent flags, will bring up the repair/unistall window, if run without flags it will offer to remove the msi installed version.

For Arm64, there is no msi installer.
If x64 exe is installed on an arm64 machine, it will succesfully replace or update to the arm64 version, if the msi installer is removed from the package.

If the msi is removed though, you get the following error, when trying to update a msi install: The install technology of the newer version specified is different from the current version installed. Please uninstall the package and install the newer version.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Help-Wanted This is a good candidate work item from the community. Issue-Bug It either shouldn't be doing this or needs an investigation.
Projects
None yet
Development

No branches or pull requests

3 participants