ScoopInstaller / Scoop

A command-line installer for Windows.
https://scoop.sh
Other
21.25k stars 1.41k forks source link

[Bug] bucket add for https://github.com/Design2Production/scoop.git takes a very long time on some systems #5462

Closed josephnarai closed 1 year ago

josephnarai commented 1 year ago

Bug Report

Current Behavior

I am using scoop to deploy our application to client systems. Some of them are low power PCs, just displaying images on large screens (like a shopping center).

scoop bucket add scoop https://github.com/Design2Production/scoop.git

immediately displays

Checking repo...

At which point it takes up to 15 minutes or more... sometime is passes, and sometimes it fails with various network errors.

error: RPC failed; curl 56 Recv failure: Connection was reset error: 5401 bytes of body are still expected fetch-pack: unexpected disconnect while reading sideband packet fatal: early EOF fatal: fetch-pack: invalid index-pack output OK

the repo is approx 200MB in size.

The issue is these devices are on 4G and sometimes have poor internet... however, all of the other aspects of the scoop installation works fine... it just seems to be this that it's getting stuck on...

Is there any way this can be made faster and more reliable?

Expected Behavior

It should be able to add the bucket and if not, it should fail quikcly, not wait for 15mins only to fail...

Additional context/output

Possible Solution

System details

Windows version: [e.g. 7, 8, 10, 11]

OS architecture: [e.g. 32bit, 64bit, arm64]

PowerShell version: [output of "$($PSVersionTable.PSVersion)"]

Additional software: [(optional) e.g. ConEmu, Git]

Scoop Configuration

//# Your configuration here
{
    "last_update":  "2023-04-10T15:10:38.6190829+10:00",
    "scoop_branch":  "master",
    "scoop_repo":  "https://github.com/ScoopInstaller/Scoop"
}
josephnarai commented 1 year ago

Just a note that I found a work around which involved zipping up my scoop bucket folder and manually uploading via the connectwise remote control app... then unzipping into the bucket folder... and then re-running my install script, which then just updates the repo instead of trying to download it...

a terrible work around... can anyone suggest a solution?

r15ch13 commented 1 year ago

How about adding the zip files of DeviceProxy, RemoteCommandRunner and serman as assets to a "release" and point your manifests there? Or better, create a dummy repo per program and add the releases there. Then Git doesn't have to clone a big repo, to just download the files anyway because they are not in the cache directory. Also you could use the standard auto update settings for the Manifests.

A manifest could look like this:

{
    "version": "1.7.5.27",
    "homepage": "https://github.com/Design2Production/DeviceProxy"
    "url": "https://github.com/Design2Production/DeviceProxy/releases/download/v1.7.5.27/DeviceProxy_1.7.5.27.zip",
    "extract_dir": "DeviceProxy",
    "bin": "DeviceProxy.exe",
    "hash": "844B77B2BAA483951EB73F6C6A2A9F9FA980B48144E11E059A1B2526FBE3D6B3",
    "checkver": "github"
    "autoupdate": {
        "url": "https://github.com/Design2Production/DeviceProxy/releases/download/v$version/DeviceProxy_$version.zip"
    }
}
{
    "version": "1.0.1",
    "homepage": "https://github.com/Design2Production/serman"
    "url": "https://github.com/Design2Production/serman/releases/download/v1.0.1/serman_1.0.1.zip",
    "bin": "serman.exe",
    "hash": "5B87654DBB282E5B86857E64C3F3A7ED77DA5A09E91B2D282E10B468220F8BD2",
    "checkver": "github"
    "autoupdate": {
        "url": "https://github.com/Design2Production/serman/releases/download/v$version/serman_$version.zip"
    }
}
josephnarai commented 1 year ago

Oh, so the zips don't need to be in the repo? I didn't realize that was possible. I'll look into it. Thanks!

Joseph Narai • Zenso


From: Richard Kuhnt @.> Sent: Monday, April 10, 2023 6:22:42 PM To: ScoopInstaller/Scoop @.> Cc: Joseph Narai @.>; Author @.> Subject: Re: [ScoopInstaller/Scoop] [Bug] bucket add for https://github.com/Design2Production/scoop.git takes a very long time on some systems (Issue #5462)

How about adding the zip files of DeviceProxy, RemoteCommandRunner and serman as assets to a "release" and point your manifests there? Or better, create a dummy repo per program and add the releases there. Then Git doesn't have to clone a big repo, to just download the files anyway because they are not in the cache directory. Also you could use the standard auto update settings for the Manifests.

A manifest could look like this:

{ "version": "1.7.5.27", "homepage": "https://github.com/Design2Production/DeviceProxy" "url": "https://github.com/Design2Production/DeviceProxy/releases/download/v1.7.5.27/DeviceProxy_1.7.5.27.zip", "extractdir": "DeviceProxy", "bin": "DeviceProxy.exe", "hash": "844B77B2BAA483951EB73F6C6A2A9F9FA980B48144E11E059A1B2526FBE3D6B3", "checkver": "github" "autoupdate": { "url": "https://github.com/Design2Production/DeviceProxy/releases/download/v$version/DeviceProxy$version.zip" } }

— Reply to this email directly, view it on GitHubhttps://github.com/ScoopInstaller/Scoop/issues/5462#issuecomment-1501545596, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ADMH5IX5OXJ4C5MQZL6KF43XAO7NFANCNFSM6AAAAAAWYTRH5Q. You are receiving this because you authored the thread.Message ID: @.***>

josephnarai commented 1 year ago

I've managed to implement this - I replicated the repo and excluded the folder with the build files... so this new repo is the new bucket, and it just points to the old repos files. Works a treat, thank you for the suggestion.