Menu

#431 MSI Installer for Windows ARM64

open
nobody
None
5
2022-09-25
2022-09-22
No

Hi!

Will it be possible to provide an MSI installer for using 7zip on Windows ARM64 devices?

Currently the 7-zip.org website provides an MSI installer for x86 and x64 archs, but only a self-extracting executable for ARM64.

My use case: I'm a maintainer of the Scoop package manager and I'm currently adding support for ARM64 installations. Since Scoop uses 7zip as its primary unarchiver, it needs to be able to install 7zip via MSI, from the console, unattended.

Thanks, and have a nice day!

Discussion

  • Igor Pavlov

    Igor Pavlov - 2022-09-22

    I still use old WIX program to create MSIs, that probably doesn't support ARM64.
    Also I can't test and debug arm64 installers, if I do some new non simple feature.
    So now I'm not ready to provide arm64 msi.

     
  • Rashil Gandhi

    Rashil Gandhi - 2022-09-23

    I would be more than happy to test any changes, if you require.

    Also, is it possible to extract the provided .exe from the console (without any GUI popup) in a specified location? We will use the .exe in the meanwhile.

     

    Last edit: Rashil Gandhi 2022-09-23
  • Igor Pavlov

    Igor Pavlov - 2022-09-23

    Yes, you can extract any files from .exe installer and use them.
    Installation provides shell context menu integration and some another things, like uninstaller.

     
  • Rashil Gandhi

    Rashil Gandhi - 2022-09-23

    Okay, thanks!

    So from the commandline I run 7z2201-arm64.exe /S /D="C:\Users\<user>\scoop\apps\7zip but it pops up UAC. What parameter do I use to avoid UAC? I don't have admin rights.

     

    Last edit: Rashil Gandhi 2022-09-23
  • Igor Pavlov

    Igor Pavlov - 2022-09-23

    probably you can use 7zr.exe x86 version from
    https://www.7-zip.org/a/7zr.exe

    7zr x 7z2201-arm64.exe -y -o"C:\path"
    
     

    Last edit: Igor Pavlov 2022-09-23
  • Rashil Gandhi

    Rashil Gandhi - 2022-09-25

    That will make installation quite complicated. Let me explain. The current Scoop manifest for 7zip looks like this:

    {
        "version": "22.01",
        "description": "A multi-format file archiver with high compression ratios",
        "homepage": "https://www.7-zip.org/",
        "license": "LGPL-2.1-or-later",
        "architecture": {
            "64bit": {
                "url": "https://7-zip.org/a/7z2201-x64.msi",
                "hash": "f4afba646166999d6090b5beddde546450262dc595dddeb62132da70f70d14ca"
            },
            "32bit": {
                "url": "https://7-zip.org/a/7z2201.msi",
                "hash": "a4913f98821e0da0c58cd3a7f2a59f1834b85b6ca6b3fdefa5454d6c3bbef54c"
            }
        },
        "extract_dir": "Files\\7-Zip",
        "bin": "7z.exe",
        "shortcuts": [
            [
                "7zFM.exe",
                "7-Zip"
            ]
        ],
        "persist": [
            "Codecs",
            "Formats"
        ],
        "checkver": {
            "url": "https://www.7-zip.org/download.html",
            "regex": "Download 7-Zip ([\\d.]+)"
        },
        "autoupdate": {
            "architecture": {
                "64bit": {
                    "url": "https://7-zip.org/a/7z$cleanVersion-x64.msi"
                },
                "32bit": {
                    "url": "https://7-zip.org/a/7z$cleanVersion.msi"
                }
            }
        }
    }
    

    If there's an ARM64 MSI, the manifest would just need another architecture field.

    But right now, a custom script would be needed to first download x86 7zr.exe and then use that to extract the .exe installer.

    If the .exe installer supported a parameter to suppress UAC, that would also work, because I would then modify the manifest similar to this one (this is for the 7 Taskbar Tweaker desktop app) - see the 'installer' field:

    {
        "version": "5.13",
        "description": "Allows you to configure various aspects of the Windows taskbar.",
        "homepage": "https://rammichael.com/7-taskbar-tweaker",
        "license": "Unknown",
        "url": "https://rammichael.com/downloads/7tt_setup.exe",
        "hash": "cf670147448e2fcd0057199c68b1094103e85d1a6a54449676169d2b3e500a7b",
        "bin": "7+ Taskbar Tweaker.exe",
        "pre_install": "if(!(test-path \"$persist_dir\\7+ Taskbar Tweaker.ini\")) { Add-Content \"$dir\\7+ Taskbar Tweaker.ini\" \"[Config]`r`nupdcheckauto=0`r`nupdcheck=0\" }",
        "installer": {
            "args": [
                "/portable",
                "/S",
                "/D=$dir"
            ]
        },
        "persist": "7+ Taskbar Tweaker.ini",
        "shortcuts": [
            [
                "7+ Taskbar Tweaker.exe",
                "7+ Taskbar Tweaker"
            ]
        ],
        "checkver": "Latest version: v([\\d.]+)",
        "autoupdate": {
            "url": "https://rammichael.com/downloads/7tt_setup.exe"
        }
    }
    

    I searched around for a bit and found this ticket regarding MSI installer: https://sourceforge.net/p/sevenzip/discussion/45797/thread/1b0e3cc2b7/
    What's the current status of that?

     
  • Igor Pavlov

    Igor Pavlov - 2022-09-25

    If the .exe installer supported a parameter to suppress UAC

    I don't know how to do it.
    UAC is forced by manifest in 7-zip installer.
    If it's some common problem for any program, then probably there is some external solution to disable UAC for any program. But I can't find simple solution with google search.

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.