forked from mirrors/nixpkgs
3ca9b9a8ad
There are the following issues with the current implementation: * `fetchurl` with a tarball from GitHub appears to break occasionally because the tarballs are not necessarily reproducible. Because of that, `fetchFromGitHub` unpacks the tarball already because the contents are actually reproducible in contrast to the tarball. To have the same behavior here, we use `fetchzip` now (and `applyPatches` on top to apply additional patches if needed). * Fixes the way how patches are applied. Previously, when having patches for a git checkout of the app, these wouldn't apply because the `appname-version` prefix is missing. * Because all old hashes are broken with this, I added an evaluation check that breaks evaluation when using the old API (i.e. with `name`/`version` which are not needed anymore).
28 lines
589 B
Nix
28 lines
589 B
Nix
{ stdenv, fetchzip, applyPatches, ... }:
|
|
{ url
|
|
, sha256
|
|
, patches ? [ ]
|
|
, name ? null
|
|
, version ? null
|
|
}:
|
|
if name != null || version != null then throw ''
|
|
`pkgs.fetchNextcloudApp` has been changed to use `fetchzip`.
|
|
To update, please
|
|
* remove `name`/`version`
|
|
* update the hash
|
|
''
|
|
else applyPatches {
|
|
inherit patches;
|
|
src = fetchzip {
|
|
inherit url sha256;
|
|
postFetch = ''
|
|
pushd $out &>/dev/null
|
|
if [ ! -f ./appinfo/info.xml ]; then
|
|
echo "appinfo/info.xml doesn't exist in $out, aborting!"
|
|
exit 1
|
|
fi
|
|
popd &>/dev/null
|
|
'';
|
|
};
|
|
}
|