mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-13 21:25:30 +03:00
fetchYarnDeps: fix broken fetching logic for github releases
When a dependency references a github *release* URL, that dependency must be fetched using https rather than git, since github does not require that release tarballs have any relationship whatsoever to the git history. This commit causes them to be fetched using https, not git. A test case (which fails prior to this commit, and passes afterwards) is included.
This commit is contained in:
parent
aefcf1642c
commit
84a75e9488
3 changed files with 16 additions and 3 deletions
|
@ -104,11 +104,14 @@ const downloadPkg = (pkg, verbose) => {
|
||||||
const [ url, hash ] = pkg.resolved.split('#')
|
const [ url, hash ] = pkg.resolved.split('#')
|
||||||
if (verbose) console.log('downloading ' + url)
|
if (verbose) console.log('downloading ' + url)
|
||||||
const fileName = urlToName(url)
|
const fileName = urlToName(url)
|
||||||
|
const s = url.split('/')
|
||||||
if (url.startsWith('https://codeload.github.com/') && url.includes('/tar.gz/')) {
|
if (url.startsWith('https://codeload.github.com/') && url.includes('/tar.gz/')) {
|
||||||
const s = url.split('/')
|
|
||||||
return downloadGit(fileName, `https://github.com/${s[3]}/${s[4]}.git`, s[s.length-1])
|
return downloadGit(fileName, `https://github.com/${s[3]}/${s[4]}.git`, s[s.length-1])
|
||||||
} else if (url.startsWith('https://github.com/') && url.endsWith('.tar.gz')) {
|
} else if (url.startsWith('https://github.com/') && url.endsWith('.tar.gz') &&
|
||||||
const s = url.split('/')
|
(
|
||||||
|
s.length <= 5 || // https://github.com/owner/repo.tgz#feedface...
|
||||||
|
s[5] == "archive" // https://github.com/owner/repo/archive/refs/tags/v0.220.1.tar.gz
|
||||||
|
)) {
|
||||||
return downloadGit(fileName, `https://github.com/${s[3]}/${s[4]}.git`, s[s.length-1].replace(/.tar.gz$/, ''))
|
return downloadGit(fileName, `https://github.com/${s[3]}/${s[4]}.git`, s[s.length-1].replace(/.tar.gz$/, ''))
|
||||||
} else if (isGitUrl(url)) {
|
} else if (isGitUrl(url)) {
|
||||||
return downloadGit(fileName, url.replace(/^git\+/, ''), hash)
|
return downloadGit(fileName, url.replace(/^git\+/, ''), hash)
|
||||||
|
|
|
@ -17,6 +17,10 @@
|
||||||
yarnLock = ./github.lock;
|
yarnLock = ./github.lock;
|
||||||
sha256 = "sha256-DIKrhDKoqm7tHZmcuh9eK9VTqp6BxeW0zqDUpY4F57A=";
|
sha256 = "sha256-DIKrhDKoqm7tHZmcuh9eK9VTqp6BxeW0zqDUpY4F57A=";
|
||||||
};
|
};
|
||||||
|
githubReleaseDep = testers.invalidateFetcherByDrvHash fetchYarnDeps {
|
||||||
|
yarnLock = ./github-release.lock;
|
||||||
|
sha256 = "sha256-g+y/H6k8LZ+IjWvkkwV7JhKQH1ycfeqzsIonNv4fDq8=";
|
||||||
|
};
|
||||||
gitUrlDep = testers.invalidateFetcherByDrvHash fetchYarnDeps {
|
gitUrlDep = testers.invalidateFetcherByDrvHash fetchYarnDeps {
|
||||||
yarnLock = ./giturl.lock;
|
yarnLock = ./giturl.lock;
|
||||||
sha256 = "sha256-VPnyqN6lePQZGXwR7VhbFnP7/0/LB621RZwT1F+KzVQ=";
|
sha256 = "sha256-VPnyqN6lePQZGXwR7VhbFnP7/0/LB621RZwT1F+KzVQ=";
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
"libsession_util_nodejs@https://github.com/oxen-io/libsession-util-nodejs/releases/download/v0.3.19/libsession_util_nodejs-v0.3.19.tar.gz":
|
||||||
|
version "0.3.19"
|
||||||
|
resolved "https://github.com/oxen-io/libsession-util-nodejs/releases/download/v0.3.19/libsession_util_nodejs-v0.3.19.tar.gz#221c1fc34fcc18601aea4ce1b733ebfa55af66ea"
|
||||||
|
dependencies:
|
||||||
|
cmake-js "^7.2.1"
|
||||||
|
node-addon-api "^6.1.0"
|
Loading…
Add table
Add a link
Reference in a new issue