nixpkgs/pkgs/by-name/fo/foremost/package.nix
aleksana 571c71e6f7 treewide: migrate packages to pkgs/by-name, take 1
We are migrating packages that meet below requirements:

1. using `callPackage`
2. called path is a directory
3. overriding set is empty (`{ }`)
4. not containing path expressions other than relative path (to
makenixpkgs-vet happy)
5. not referenced by nix files outside of the directory, other
than`pkgs/top-level/all-packages.nix`
6. not referencing nix files outside of the directory
7. not referencing `default.nix` (since it's changed to `package.nix`)
8. `outPath` doesn't change after migration

The tool is here: https://github.com/Aleksanaa/by-name-migrate.
2024-11-09 20:04:51 +08:00

47 lines
1.6 KiB
Nix

{ lib, stdenv, fetchurl }:
stdenv.mkDerivation rec {
pname = "foremost";
version = "1.5.7";
src = fetchurl {
sha256 = "0d2zxw0ijg8cd3ksgm8cf8jg128zr5x7z779jar90g9f47pm882h";
url = "https://foremost.sourceforge.net/pkg/${pname}-${version}.tar.gz";
};
patches = [ ./makefile.patch ];
# -fcommon: Workaround build failure on -fno-common toolchains like upstream
# gcc-10. Otherwise build fails as:
# ld: api.o:(.bss+0xbdba0): multiple definition of `wildcard'; main.o:(.bss+0xbd760): first defined here
env.NIX_CFLAGS_COMPILE = "-fcommon";
makeFlags = [ "PREFIX=$(out)" ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ "mac" ];
enableParallelBuilding = true;
hardeningDisable = [ "format" ];
preInstall = ''
mkdir -p $out/{bin,share/man/man8}
'';
meta = with lib; {
description = "Recover files based on their contents";
longDescription = ''
Foremost is a console program to recover files based on their headers,
footers, and internal data structures. Foremost can work on image files, such
as those generated by dd, Safeback, Encase, etc, or directly on a drive.
The headers and footers can be specified by a configuration file or you can
use command line switches to specify built-in file types. These built-in types
look at the data structures of a given file format allowing for a more
reliable and faster recovery.
'';
homepage = "https://foremost.sourceforge.net/";
license = licenses.publicDomain;
maintainers = [ maintainers.jiegec ];
platforms = platforms.linux ++ platforms.darwin;
mainProgram = "foremost";
};
}