summaryrefslogtreecommitdiff
path: root/pkgs/build-support/fetchzip (follow)
Commit message (Expand)AuthorAgeFilesLines
* fetchzip: allow dropping unzipWeijia Wang2024-01-121-2/+2
* fetchgitlab: make args more similar to fetchgithubNicolas Benes2023-11-181-1/+1
* fetchzip: cleanup and improve metrics a bitJan Malakhovski2023-08-081-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 Hensing2022-12-162-4/+12
|\
| * fetchzip: don't error out if the directory inside the archive starts with a "."GenericNerdyUsername2022-12-162-4/+12
* | fetchzip: auto generate name from pname-versionHraban Luyat2022-11-071-1/+1
* | fetchzip: add pname+version supportSandro Jäckel2022-10-041-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 Trofimovich2022-06-111-2/+5
* treewide: extraPostFetch -> postFetchArtturin2022-05-231-11/+3
* fetchzip: extraPostFetch -> postFetch && testsArtturin2022-05-222-1/+32
* fetchzip: remove need for overrideAttrsJonathan Ringer2022-02-261-4/+4
* fetchzip: recursively run chmod +w on the unpackDir•••Fixes https://github.com/NixOS/nixpkgs/issues/136030 Artturin2021-09-081-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&regular=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&regular=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 Shmalko2021-08-101-3/+10
* fetchzip: accept urls•••Required after 9bbfb268540e0cc0404a6b9ef33ea3bf160066ed Sandro Jäckel2021-04-071-4/+7
* fetchzip: simplify `postFetch` as per suggestions•••of @veprbl, @adisbladis, and @MetaDark Jan Malakhovski2021-02-051-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 Malakhovski2021-02-041-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-Brown2020-12-041-0/+7
* fetchzip: remove write permissions for unpacked files•••Fixes https://github.com/NixOS/nixpkgs/issues/38649 MetaDark2020-11-261-2/+7
* Revert "fetchzip, fetchgit: cleanup handling of optional features and whitesp...Benjamin Hipple2020-03-261-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 Hipple2020-02-081-29/+28
* treewide: remove unused variables (#63177)•••* treewide: remove unused variables * making ofborg happy volth2019-06-161-1/+1
* fetchzip: Use unzip from buildPackages•••Additionally, the manual path manipulation becomes no longer needed. John Ericson2018-09-211-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 Dolstra2017-10-301-1/+2
* Fix #27448 argument list too long in fetchzip for darwin.•••Paired with @Ericson2314 luigy2017-07-171-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 Dolstra2017-02-161-171/+0
* fetchzip: improve error messageDomen Kožar2016-05-171-0/+1
* Merge pull request #8576 from obadz/nix-prefetch-zip•••Add --ext option to nix-prefetch-zipzimbatm2016-02-261-2/+7
|\
| * Add --ext option to nix-prefetch-zipobadz2015-07-151-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át2015-12-291-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 Tuegel2015-12-191-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 Strahan2015-01-251-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 Strahan2015-01-231-12/+21
* nix-prefetch-zip: support single files and recuring directories•••See #5851 Charles Strahan2015-01-231-9/+21
* nix-prefetch-zip: unset $name•••nix-shell leaks $name, breaking nix-prefetch-zip. Charles Strahan2015-01-221-0/+1
* Fix fetchzip for actuall zip filesMichael Raskin2014-12-121-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 Dolstra2014-08-091-3/+1
* require gnused for all prefetch scriptsCharles Strahan2014-06-231-0/+153
* fetchFromGitHub: Use .tar.gz instead of .zip•••Also clean up the name attribute of fetchzip derivations a bit. Eelco Dolstra2014-05-091-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 Dolstra2014-05-081-0/+42