
Cargo 1.84.0 seems to have changed the output format of cargo vendor again, once again invalidating fetchCargoTarball FOD hashes. It's time to fix this once and for all, switching across the board to fetchCargoVendor, which is not dependent on cargo vendor's output format. It should be possible to reproduce this diff. To do so, get the list of files changed by this commit, e.g. with git diff --name-only, then run the following two commands, each with that list of files as their standard input: xargs sed -i 's/^\(. *\)\(cargoHash\)\b/\1useFetchCargoVendor = true;\n\1cargoHash/' cut -d / -f 4 | xargs -n 1 nix-update --version=skip This will take a long time. It might be possible to parallelize it using xargs' -P option. I haven't tested it.
81 lines
2.1 KiB
Nix
81 lines
2.1 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
fetchFromGitHub,
|
|
rustPlatform,
|
|
darwin,
|
|
libiconv,
|
|
makeBinaryWrapper,
|
|
installShellFiles,
|
|
fortuneAlias ? true,
|
|
}:
|
|
|
|
rustPlatform.buildRustPackage rec {
|
|
pname = "fortune-kind";
|
|
version = "0.1.13";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "cafkafk";
|
|
repo = "fortune-kind";
|
|
rev = "v${version}";
|
|
hash = "sha256-Tpg0Jq2EhkwQuz5ZOtv6Rb5YESSlmzLoJPTxYJNNgac=";
|
|
};
|
|
|
|
useFetchCargoVendor = true;
|
|
cargoHash = "sha256-Kp3pv9amEz9oFMDhz0IZDmhpsok5VgrvJZfwSPyz2X0=";
|
|
|
|
nativeBuildInputs = [
|
|
makeBinaryWrapper
|
|
installShellFiles
|
|
];
|
|
buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
|
|
libiconv
|
|
darwin.apple_sdk.frameworks.Security
|
|
];
|
|
|
|
buildNoDefaultFeatures = true;
|
|
|
|
MAN_OUT = "./man";
|
|
|
|
preBuild = ''
|
|
mkdir -p "./$MAN_OUT";
|
|
'';
|
|
|
|
preInstall = ''
|
|
installManPage man/fortune-kind.1
|
|
installShellCompletion \
|
|
--fish man/fortune-kind.fish \
|
|
--bash man/fortune-kind.bash \
|
|
--zsh man/_fortune-kind
|
|
mkdir -p $out
|
|
cp -r $src/fortunes $out/fortunes;
|
|
'';
|
|
|
|
postInstall =
|
|
''
|
|
wrapProgram $out/bin/fortune-kind \
|
|
--prefix FORTUNE_DIR : "$out/fortunes"
|
|
''
|
|
+ lib.optionalString fortuneAlias ''
|
|
ln -s fortune-kind $out/bin/fortune
|
|
'';
|
|
|
|
meta = with lib; {
|
|
description = "Kinder, curated fortune, written in rust";
|
|
longDescription = ''
|
|
Historically, contributions to fortune-mod have had a less-than ideal
|
|
quality control process, and as such, many of the fortunes that a user may
|
|
receive from the program read more like cryptic inside jokes, or at the
|
|
very worst, locker-room banter. One of the major goals of fortune-kind is
|
|
defining and applying a somewhat more rigorous moderation and editing
|
|
process to the fortune adoption workflow.
|
|
'';
|
|
homepage = "https://github.com/cafkafk/fortune-kind";
|
|
changelog = "https://github.com/cafkafk/fortune-kind/releases/tag/v${version}";
|
|
license = licenses.gpl3Only;
|
|
mainProgram = "fortune-kind";
|
|
maintainers = with maintainers; [ cafkafk ];
|
|
platforms = platforms.unix ++ platforms.windows;
|
|
};
|
|
}
|