nixpkgs/pkgs/development/tools/misc/pkgconf/default.nix
Anderson Torres be755b5c62 libpkgconf: refactor
- Use rec-less, overlay-style overridable recursive attributes (in effect since
  https://github.com/NixOS/nixpkgs/pull/119942)
- Include meta.changelog and meta.mainProgram
2023-08-26 16:23:41 +00:00

62 lines
2.0 KiB
Nix

{ lib
, stdenv
, fetchurl
, removeReferencesTo
}:
stdenv.mkDerivation (finalAttrs: {
pname = "pkgconf";
version = "2.0.2";
src = fetchurl {
url = "https://distfiles.dereferenced.org/pkgconf/pkgconf-${finalAttrs.version}.tar.xz";
hash = "sha256-6lol748lHrU3fsDiHHX7YYlEM8+9vwslWboz5MJmRAE=";
};
outputs = [ "out" "lib" "dev" "man" "doc" ];
nativeBuildInputs = [ removeReferencesTo ];
enableParallelBuilding = true;
# Debian has outputs like these too
# (https://packages.debian.org/source/bullseye/pkgconf), so it is safe to
# remove those references
postFixup = ''
remove-references-to \
-t "${placeholder "out"}" \
"${placeholder "lib"}"/lib/*
remove-references-to \
-t "${placeholder "dev"}" \
"${placeholder "lib"}"/lib/* \
"${placeholder "out"}"/bin/*
''
# Move back share/aclocal. Yes, this normally goes in the dev output for good
# reason, but in this case the dev output is for the `libpkgconf` library,
# while the aclocal stuff is for the tool. The tool is already for use during
# development, so there is no reason to have separate "dev-bin" and "dev-lib"
# outputs or something.
+ ''
mv ${placeholder "dev"}/share ${placeholder "out"}
'';
meta = {
homepage = "https://github.com/pkgconf/pkgconf";
description = "Package compiler and linker metadata toolkit";
longDescription = ''
pkgconf is a program which helps to configure compiler and linker flags
for development libraries. It is similar to pkg-config from
freedesktop.org.
libpkgconf is a library which provides access to most of pkgconf's
functionality, to allow other tooling such as compilers and IDEs to
discover and use libraries configured by pkgconf.
'';
changelog = "https://github.com/pkgconf/pkgconf/blob/pkgconf-${finalAttrs.version}/NEWS";
license = lib.licenses.isc;
mainProgram = "pkgconf";
maintainers = with lib.maintainers; [ zaninime AndersonTorres ];
platforms = lib.platforms.all;
};
})