https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948 this can do it nicely. Signed-off-by: Anton Arapov <anton@deadbeef.mx>
21 lines
665 B
Nix
21 lines
665 B
Nix
# Elpa only serves the latest version of a given package uncompressed.
|
|
# Once that release is no longer the latest & greatest it gets archived and compressed
|
|
# meaning that both the URL and the hash changes.
|
|
#
|
|
# To work around this issue we fall back to the URL with the .lz suffix and if that's the
|
|
# one we downloaded we uncompress the file to ensure the hash matches regardless of compression.
|
|
|
|
{ fetchurl, lzip }:
|
|
|
|
{ url, ... }@args: fetchurl ((removeAttrs args [ "url" ]) // {
|
|
urls = [
|
|
url
|
|
(url + ".lz")
|
|
];
|
|
postFetch = ''
|
|
if [[ $url == *.lz ]]; then
|
|
${lzip}/bin/lzip -c -d $out > uncompressed
|
|
mv uncompressed $out
|
|
fi
|
|
'';
|
|
})
|