nixpkgs/pkgs/by-name/td/tdb/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

77 lines
1.9 KiB
Nix

{ lib, stdenv
, fetchurl
, pkg-config
, wafHook
, buildPackages
, python3
, readline
, libxslt
, libxcrypt
, docbook-xsl-nons
, docbook_xml_dtd_45
}:
stdenv.mkDerivation rec {
pname = "tdb";
version = "1.4.10";
src = fetchurl {
url = "mirror://samba/tdb/${pname}-${version}.tar.gz";
hash = "sha256-AjOOM8FsIcnilXHO9SPnaytwhjYlT28wxs8ZXUjGLa8=";
};
nativeBuildInputs = [
python3
pkg-config
wafHook
libxslt
docbook-xsl-nons
docbook_xml_dtd_45
];
buildInputs = [
python3
readline # required to build python
libxcrypt
];
# otherwise the configure script fails with
# PYTHONHASHSEED=1 missing! Don't use waf directly, use ./configure and make!
preConfigure = ''
export PKGCONFIG="$PKG_CONFIG"
export PYTHONHASHSEED=1
'';
wafPath = "buildtools/bin/waf";
wafConfigureFlags = [
"--bundled-libraries=NONE"
"--builtin-libraries=replace"
] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
"--cross-compile"
"--cross-execute=${stdenv.hostPlatform.emulator buildPackages}"
];
postFixup = if stdenv.hostPlatform.isDarwin
then ''install_name_tool -id $out/lib/libtdb.dylib $out/lib/libtdb.dylib''
else null;
# python-config from build Python gives incorrect values when cross-compiling.
# If python-config is not found, the build falls back to using the sysconfig
# module, which works correctly in all cases.
PYTHON_CONFIG = "/invalid";
meta = with lib; {
description = "Trivial database";
longDescription = ''
TDB is a Trivial Database. In concept, it is very much like GDBM,
and BSD's DB except that it allows multiple simultaneous writers
and uses locking internally to keep writers from trampling on each
other. TDB is also extremely small.
'';
homepage = "https://tdb.samba.org/";
license = licenses.lgpl3Plus;
platforms = platforms.all;
};
}