| Commit message (Expand) | Author | Age | Files | Lines |
| * | fetchzip: allow dropping unzip | Weijia Wang | 2024-01-12 | 1 | -2/+2 |
| * | fetchgitlab: make args more similar to fetchgithub | Nicolas Benes | 2023-11-18 | 1 | -1/+1 |
| * | fetchzip: cleanup and improve metrics a bit | Jan Malakhovski | 2023-08-08 | 1 | -34/+21 |
| * | Merge pull request #191355 from GenericNerdyUsername/fetchzip-include-hidden•••fetchzip: don't error out if the directory inside the archive starts with a "." | Robert Hensing | 2022-12-16 | 2 | -4/+12 |
| |\ |
|
| | * | fetchzip: don't error out if the directory inside the archive starts with a "." | GenericNerdyUsername | 2022-12-16 | 2 | -4/+12 |
| * | | fetchzip: auto generate name from pname-version | Hraban Luyat | 2022-11-07 | 1 | -1/+1 |
| * | | fetchzip: add pname+version support | Sandro Jäckel | 2022-10-04 | 1 | -3/+14 |
| |/ |
|
| * | fetchzip: force UTF-8 compatibel locale to unpack non-ASCII symbols•••musl and darwin support UTF-8 locales without any extras. As a result
unzip can unpack UTF-8 filenames there as is. But on glibc without
locale archive presence files get mangled as:
deps/αβ -> deps/#U03b1#U03b2
This makes `fetchzip` fixed-output derivations unstable.
Tested this change to fail in `coq.src` which was generated in system
that mangles UTF-8 symbols:
$ nix build -f. coq.src --rebuild -L
source> trying https://github.com/coq/coq/archive/V8.15.2.zip
source> % Total % Received % Xferd Average Speed Time Time Time Current
source> Dload Upload Total Spent Left Speed
source> 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0
source> 100 8945k 100 8945k 0 0 1513k 0 0:00:05 0:00:05 --:--:-- 1989k
source> unpacking source archive /build/V8.15.2.zip
error: hash mismatch in fixed-output derivation '/nix/store/hrnyykm7wgw8vxisgq7hc2bg5gr0y6s8-source.drv':
specified: sha256-h81nFqkuvZkMR7YLHy7laTq5yOhjMW+w6rYzncxvyD4=
got: sha256-DTspmwyD3Evl1CUmvUy2MonbLGUezvsHN3prmP9eK2I=
Note: it means that some of existing caches for fixed output
derivations become incorrect. It should not break already cached
tarballs on cache.nixos.org thus the impact should not be widespread.
| Sergei Trofimovich | 2022-06-11 | 1 | -2/+5 |
| * | treewide: extraPostFetch -> postFetch | Artturin | 2022-05-23 | 1 | -11/+3 |
| * | fetchzip: extraPostFetch -> postFetch && tests | Artturin | 2022-05-22 | 2 | -1/+32 |
| * | fetchzip: remove need for overrideAttrs | Jonathan Ringer | 2022-02-26 | 1 | -4/+4 |
| * | fetchzip: recursively run chmod +w on the unpackDir•••Fixes https://github.com/NixOS/nixpkgs/issues/136030
| Artturin | 2021-09-08 | 1 | -0/+1 |
| * | fetchzip: add extension parameter•••fetchzip downloads the file from specified URL, renames it to basename
of that url, and then relies on unzip to do the unpacking.
The first consequence is that this requires URL to end with proper
extension—otherwise it will fail to unpack. This is not always the
case and input-fonts workarounds this by adding “&.zip” query
parameter (which is obviously a hack and is not guaranteed to work
with every URL).
The second consequence is that basename of the url must be a valid
filename. I’ve tried to build a custom configuration of input-fonts
and I get an error from mv that the filename is too long:
> trying https://input.djr.com/build/?fontSelection=fourStyleFamily®ular=InputMonoNarrow-Regular&italic=InputMonoNarrow-Italic&bold=InputMonoNarrow-Bold&boldItalic=InputMonoNarrow-BoldItalic&a=0&g=0&i=topserif&l=serifs_round&zero=0&asterisk=height&braces=straight&preset=default&line-height=1.2&accept=I+do&email=&.zip
> % Total % Received % Xferd Average Speed Time Time Time Current
> Dload Upload Total Spent Left Speed
> 100 406k 100 406k 0 0 230k 0 0:00:01 0:00:01 --:--:-- 230k
> mv: failed to access '/build/?fontSelection=fourStyleFamily®ular=InputMonoNarrow-Regular&italic=InputMonoNarrow-Italic&bold=InputMonoNarrow-Bold&boldItalic=InputMonoNarrow-BoldItalic&a=0&g=0&i=topserif&l=serifs_round&zero=0&asterisk=height&braces=straight&preset=default&line-height=1.2&accept=I+do&email=&.zip': File name too long
We could use “name” parameter as the filename (that’s how it is used
in fetchurl). However, the previous attempt to do
so (fc01353703426458d6990239936659ed3130d294) was
reverted (24b5eb61eb944036b5716788ead1b204fba08719) because of the
introduced regression—many fetchzip invocations use names without
extension (also the default name is just “source”).
This commit adds an optional “extension” parameter. If it is set,
fetchzip renames the downloaded file to “download.${extension}”
effectively solving both problems above without introducing a massive
regression.
This is a no-op for all existing packages.
Tested by updating my NixOS setup + the extra inputs-fonts
configuration mentioned above + tons of unstable emacs packages after
a nix-collect-garbage (3Gb downloaded) with this patch applied.
| Alexey Shmalko | 2021-08-10 | 1 | -3/+10 |
| * | fetchzip: accept urls•••Required after 9bbfb268540e0cc0404a6b9ef33ea3bf160066ed
| Sandro Jäckel | 2021-04-07 | 1 | -4/+7 |
| * | fetchzip: simplify `postFetch` as per suggestions•••of @veprbl, @adisbladis, and @MetaDark
| Jan Malakhovski | 2021-02-05 | 1 | -11/+5 |
| * | fetchzip: fix `extraPostFetch` concatenation•••4a5c49363a58e711c2016b9ebb6f642e3c9c1be5 added some more commands after
`extraPostFetch` but concatenated them without a separating newline.
Which means, that since that commit
fetchzip { ..., extraPostFetch = ''rm -f "$out"/some-file''; }
now actually runs the following shell command
rm -f "$out"/some-file"chmod -R a-w "$out"
thus deleting "$out". Which is very unfortunate.
Especially since this actually happens on master for all `fetchFromBitbucket`
derivations. But since the results are fixed-output users bulding with hydra
cache enabled are not hitting this for not recently updated derivations yet.
| Jan Malakhovski | 2021-02-04 | 1 | -9/+10 |
| * | fetchzip: get write permission on unpacked directory•••This is a workaround for NixOS/nix#4295, which caused single-user Linux
Nix installations using sandboxed builds to start failing to build
fetchzip derivations after 4a5c49363a58e711c2016b9ebb6f642e3c9c1be5.
In short: removing write permissions for the entire directory is great,
except we then can't rename(2) it to the final Nix store path out of the
sandbox, because we don't have write permission on the directory and
thus cannot update the ".." directory entry.
| Luke Granger-Brown | 2020-12-04 | 1 | -0/+7 |
| * | fetchzip: remove write permissions for unpacked files•••Fixes https://github.com/NixOS/nixpkgs/issues/38649
| MetaDark | 2020-11-26 | 1 | -2/+7 |
| * | Revert "fetchzip, fetchgit: cleanup handling of optional features and whitesp... | Benjamin Hipple | 2020-03-26 | 1 | -28/+29 |
| * | fetchzip, fetchgit: cleanup handling of optional features and whitespace•••No intended functional difference, just trying to polish to make this easier to
extend and more aligned with other nix conventions.
| Benjamin Hipple | 2020-02-08 | 1 | -29/+28 |
| * | treewide: remove unused variables (#63177)•••* treewide: remove unused variables
* making ofborg happy
| volth | 2019-06-16 | 1 | -1/+1 |
| * | fetchzip: Use unzip from buildPackages•••Additionally, the manual path manipulation becomes no longer needed.
| John Ericson | 2018-09-21 | 1 | -6/+5 |
| * | fetchzip and friends: Set "name" to "source" by default•••This makes them produce the same store paths as builtins.fetchgit,
builtins.fetchTarball etc. See
https://github.com/NixOS/nix/commit/65b5f177b5fbb1b0778ede047a13a3cee9c59cfe.
| Eelco Dolstra | 2017-10-30 | 1 | -1/+2 |
| * | Fix #27448 argument list too long in fetchzip for darwin.•••Paired with @Ericson2314
| luigy | 2017-07-17 | 1 | -7/+3 |
| * | nix-prefetch-zip: Remove•••This script is not needed anymore since "nix-prefetch-url --unpack
<url>" and "nix-prefetch-url -A foo.src" (where "foo.src" is a
fetchzip / fetchFromGitHub call) work fine.
| Eelco Dolstra | 2017-02-16 | 1 | -171/+0 |
| * | fetchzip: improve error message | Domen Kožar | 2016-05-17 | 1 | -0/+1 |
| * | Merge pull request #8576 from obadz/nix-prefetch-zip•••Add --ext option to nix-prefetch-zip | zimbatm | 2016-02-26 | 1 | -2/+7 |
| |\ |
|
| | * | Add --ext option to nix-prefetch-zip | obadz | 2015-07-15 | 1 | -2/+7 |
| * | | fetchFromBitBucket: auto-remove an impure file•••Also fix the hash in goPackages.inflect, the only user of the fetcher ATM.
Closes #12002 (different `inflect` fix), fixes #12012.
Using fetchzip-derived functions is likely more efficient than fetchhg,
and it's lighter on dependencies (hash is the same as with fetchhg in this case).
| Vladimír Čunát | 2015-12-29 | 1 | -2/+4 |
| * | | nix-prefetch-zip: keep downloaded file extension•••Keep the correct file extension on the downloaded file so that
`unpackFile` will know how to unpack it correctly.
| Thomas Tuegel | 2015-12-19 | 1 | -1/+1 |
| |/ |
|
| * | fetchzip: fix unpacking regression•••This resolves a regression introduced in fc0135370342, where providing a
name without a proper extension breaks existing uses of fetchzip (they
now fail to unpack). Of particular note, that commit broke all uses of
fetchFromGitHub because it uses a name like so: "${repo}-${rev}-src"
Fixes #5954
| Charles Strahan | 2015-01-25 | 1 | -1/+1 |
| * | fetchzip: various fixes•••This fixes:
* Passing stripRoot.
* Archives containing a single file.
* Archives where the root folder has the same name as one of it's children.
Fixes #5851
| Charles Strahan | 2015-01-23 | 1 | -12/+21 |
| * | nix-prefetch-zip: support single files and recuring directories•••See #5851
| Charles Strahan | 2015-01-23 | 1 | -9/+21 |
| * | nix-prefetch-zip: unset $name•••nix-shell leaks $name, breaking nix-prefetch-zip.
| Charles Strahan | 2015-01-22 | 1 | -0/+1 |
| * | Fix fetchzip for actuall zip files | Michael Raskin | 2014-12-12 | 1 | -2/+4 |
| * | unpackFile: Always copy directories•••If $src refers to a directory, then always copy it. Previously, we
checked the extension first, so if the directory had an extension like
.tar, unpackPhase would fail.
| Eelco Dolstra | 2014-08-09 | 1 | -3/+1 |
| * | require gnused for all prefetch scripts | Charles Strahan | 2014-06-23 | 1 | -0/+153 |
| * | fetchFromGitHub: Use .tar.gz instead of .zip•••Also clean up the name attribute of fetchzip derivations a bit.
| Eelco Dolstra | 2014-05-09 | 1 | -11/+13 |
| * | Add a function "fetchzip"•••This function downloads and unpacks a file in one fixed-output
derivation. This is primarily useful for dynamically generated zip
files, such as GitHub's /archive URLs, where the unpacked content of
the zip file doesn't change, but the zip file itself may (e.g. due to
minor changes in the compression algorithm, or changes in timestamps).
Fetchzip is implemented by extending fetchurl with a "postFetch" hook
that is executed after the file has been downloaded. This hook can
thus perform arbitrary checks or transformations on the downloaded
file.
| Eelco Dolstra | 2014-05-08 | 1 | -0/+42 |