nixpkgs/pkgs/by-name/tc/tcb/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

55 lines
1.8 KiB
Nix

{ lib, stdenv, fetchFromGitHub, pkg-config
, linux-pam, libxcrypt
}:
stdenv.mkDerivation rec {
pname = "tcb";
version = "1.2";
src = fetchFromGitHub {
owner = "openwall";
repo = pname;
rev = "070cf4aa784de13c52788ac22ff611d7cbca0854";
sha256 = "sha256-Sp5u7iTEZZnAqKQXoPO8eWpSkZeBzQqZI82wRQmgU9A=";
};
outputs = [ "out" "bin" "dev" "man" ];
nativeBuildInputs = [ pkg-config ];
buildInputs = [ linux-pam libxcrypt ];
patches = [ ./fix-makefiles.patch ];
postPatch = ''
substituteInPlace Make.defs \
--replace "PREFIX = /usr" "PREFIX = $out" \
--replace "SBINDIR = /sbin" "SBINDIR = $bin/bin" \
--replace "INCLUDEDIR = \$(PREFIX)/include" "INCLUDEDIR = $dev/include"
# Override default 'CC=gcc'
makeFlagsArray+=("CC=$CC")
'';
meta = with lib; {
description = "Alternative password shadowing scheme";
longDescription = ''
The tcb package contains core components of our tcb suite implementing the alternative
password shadowing scheme on Openwall GNU Linux (Owl). It is being made available
separately from Owl primarily for use by other distributions.
The package consists of three components: pam_tcb, libnss_tcb, and libtcb.
pam_tcb is a PAM module which supersedes pam_unix. It also implements the tcb password
shadowing scheme. The tcb scheme allows many core system utilities (passwd(1) being
the primary example) to operate with little privilege. libnss_tcb is the accompanying
NSS module. libtcb contains code shared by the PAM and NSS modules and is also used
by user management tools on Owl due to our shadow suite patches.
'';
homepage = "https://www.openwall.com/tcb/";
license = licenses.bsd3;
platforms = systems.inspect.patterns.isGnu;
maintainers = with maintainers; [ izorkin ];
};
}