Merge pull request #261323 from nowittynamesleft/more-pkg-config-modules

More pkg config modules
This commit is contained in:
John Ericson 2023-10-16 14:51:50 -04:00 committed by GitHub
commit c00c5163d2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 86 additions and 41 deletions

View File

@ -58,6 +58,7 @@
, reproducibleBuild ? false , reproducibleBuild ? false
, pythonAttr ? "python${sourceVersion.major}${sourceVersion.minor}" , pythonAttr ? "python${sourceVersion.major}${sourceVersion.minor}"
, noldconfigPatch ? ./. + "/${sourceVersion.major}.${sourceVersion.minor}/no-ldconfig.patch" , noldconfigPatch ? ./. + "/${sourceVersion.major}.${sourceVersion.minor}/no-ldconfig.patch"
, testers
} @ inputs: } @ inputs:
# Note: this package is used for bootstrapping fetchurl, and thus # Note: this package is used for bootstrapping fetchurl, and thus
@ -232,7 +233,7 @@ let
''; '';
execSuffix = stdenv.hostPlatform.extensions.executable; execSuffix = stdenv.hostPlatform.extensions.executable;
in with passthru; stdenv.mkDerivation { in with passthru; stdenv.mkDerivation (finalAttrs: {
pname = "python3"; pname = "python3";
inherit src version; inherit src version;
@ -579,6 +580,8 @@ in with passthru; stdenv.mkDerivation {
nativeBuildInputs = with pkgsBuildBuild.python3.pkgs; [ sphinxHook python_docs_theme ]; nativeBuildInputs = with pkgsBuildBuild.python3.pkgs; [ sphinxHook python_docs_theme ];
}; };
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
}; };
enableParallelBuilding = true; enableParallelBuilding = true;
@ -604,8 +607,9 @@ in with passthru; stdenv.mkDerivation {
high level dynamic data types. high level dynamic data types.
''; '';
license = licenses.psfl; license = licenses.psfl;
pkgConfigModules = [ "python3" ];
platforms = platforms.linux ++ platforms.darwin ++ platforms.windows; platforms = platforms.linux ++ platforms.darwin ++ platforms.windows;
maintainers = with maintainers; [ fridh ]; maintainers = with maintainers; [ fridh ];
mainProgram = executable; mainProgram = executable;
}; };
} })

View File

@ -32,7 +32,7 @@ stdenv.mkDerivation (finalAttrs: {
doCheck = true; doCheck = true;
passthru.tests = { passthru.tests = {
pkg-config = testers.hasPkgConfigModules { package = finalAttrs.finalPackage; }; pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
geos = callPackage ./tests.nix { geos = finalAttrs.finalPackage; }; geos = callPackage ./tests.nix { geos = finalAttrs.finalPackage; };
}; };

View File

@ -1,11 +1,13 @@
{ fetchurl, lib, stdenv, libidn, libkrb5 }: { fetchurl, lib, stdenv, libidn, libkrb5
, testers
}:
stdenv.mkDerivation rec { stdenv.mkDerivation (finalAttrs: {
pname = "gsasl"; pname = "gsasl";
version = "2.2.0"; version = "2.2.0";
src = fetchurl { src = fetchurl {
url = "mirror://gnu/gsasl/${pname}-${version}.tar.gz"; url = "mirror://gnu/gsasl/${finalAttrs.pname}-${finalAttrs.version}.tar.gz";
sha256 = "sha256-ebho47mXbcSE1ZspygroiXvpbOTTbTKu1dk1p6Mwd1k="; sha256 = "sha256-ebho47mXbcSE1ZspygroiXvpbOTTbTKu1dk1p6Mwd1k=";
}; };
@ -24,6 +26,8 @@ stdenv.mkDerivation rec {
''; '';
doCheck = !stdenv.hostPlatform.isDarwin; doCheck = !stdenv.hostPlatform.isDarwin;
passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
meta = { meta = {
description = "GNU SASL, Simple Authentication and Security Layer library"; description = "GNU SASL, Simple Authentication and Security Layer library";
@ -38,6 +42,7 @@ stdenv.mkDerivation rec {
license = lib.licenses.gpl3Plus; license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ shlevy ]; maintainers = with lib.maintainers; [ shlevy ];
pkgConfigModules = [ "libgsasl" ];
platforms = lib.platforms.all; platforms = lib.platforms.all;
}; };
} })

View File

@ -1,11 +1,13 @@
{ fetchurl, lib, stdenv, libiconv }: { fetchurl, lib, stdenv, libiconv
, testers
}:
stdenv.mkDerivation rec { stdenv.mkDerivation (finalAttrs: {
pname = "libidn"; pname = "libidn";
version = "1.41"; version = "1.41";
src = fetchurl { src = fetchurl {
url = "mirror://gnu/libidn/${pname}-${version}.tar.gz"; url = "mirror://gnu/libidn/${finalAttrs.pname}-${finalAttrs.version}.tar.gz";
sha256 = "sha256-iE1wY2S4Gr3Re+6Whtj/KudDHFoUZRBHxorfizH9iUU="; sha256 = "sha256-iE1wY2S4Gr3Re+6Whtj/KudDHFoUZRBHxorfizH9iUU=";
}; };
@ -15,6 +17,8 @@ stdenv.mkDerivation rec {
buildInputs = lib.optional stdenv.isDarwin libiconv; buildInputs = lib.optional stdenv.isDarwin libiconv;
passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
meta = { meta = {
homepage = "https://www.gnu.org/software/libidn/"; homepage = "https://www.gnu.org/software/libidn/";
description = "Library for internationalized domain names"; description = "Library for internationalized domain names";
@ -36,7 +40,8 @@ stdenv.mkDerivation rec {
''; '';
license = lib.licenses.lgpl2Plus; license = lib.licenses.lgpl2Plus;
pkgConfigModules = [ "libidn" ];
platforms = lib.platforms.all; platforms = lib.platforms.all;
maintainers = with lib.maintainers; [ lsix ]; maintainers = with lib.maintainers; [ lsix ];
}; };
} })

View File

@ -1,13 +1,15 @@
{ lib, stdenv, fetchurl, zlib }: { lib, stdenv, fetchurl, zlib
, testers
}:
assert stdenv.hostPlatform == stdenv.buildPlatform -> zlib != null; assert stdenv.hostPlatform == stdenv.buildPlatform -> zlib != null;
stdenv.mkDerivation rec { stdenv.mkDerivation (finalAttrs: {
pname = "libpng"; pname = "libpng";
version = "1.2.59"; version = "1.2.59";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/libpng/libpng-${version}.tar.xz"; url = "mirror://sourceforge/libpng/libpng-${finalAttrs.version}.tar.xz";
sha256 = "1izw9ybm27llk8531w6h4jp4rk2rxy2s9vil16nwik5dp0amyqxl"; sha256 = "1izw9ybm27llk8531w6h4jp4rk2rxy2s9vil16nwik5dp0amyqxl";
}; };
@ -15,18 +17,23 @@ stdenv.mkDerivation rec {
propagatedBuildInputs = [ zlib ]; propagatedBuildInputs = [ zlib ];
passthru = { inherit zlib; };
configureFlags = [ "--enable-static" ]; configureFlags = [ "--enable-static" ];
postInstall = ''mv "$out/bin" "$dev/bin"''; postInstall = ''mv "$out/bin" "$dev/bin"'';
passthru = {
inherit zlib;
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
};
meta = with lib; { meta = with lib; {
description = "The official reference implementation for the PNG file format"; description = "The official reference implementation for the PNG file format";
homepage = "http://www.libpng.org/pub/png/libpng.html"; homepage = "http://www.libpng.org/pub/png/libpng.html";
license = licenses.libpng; license = licenses.libpng;
maintainers = [ ]; maintainers = [ ];
branch = "1.2"; branch = "1.2";
pkgConfigModules = [ "libpng" "libpng12" ];
platforms = platforms.unix; platforms = platforms.unix;
}; };
} })

View File

@ -1,4 +1,6 @@
{ lib, stdenv, fetchurl, zlib, apngSupport ? true }: { lib, stdenv, fetchurl, zlib, apngSupport ? true
, testers
}:
assert zlib != null; assert zlib != null;
@ -10,12 +12,12 @@ let
}; };
whenPatched = lib.optionalString apngSupport; whenPatched = lib.optionalString apngSupport;
in stdenv.mkDerivation rec { in stdenv.mkDerivation (finalAttrs: {
pname = "libpng" + whenPatched "-apng"; pname = "libpng" + whenPatched "-apng";
version = "1.6.40"; version = "1.6.40";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/libpng/libpng-${version}.tar.xz"; url = "mirror://sourceforge/libpng/libpng-${finalAttrs.version}.tar.xz";
hash = "sha256-U1tHmyRn/yMaPsbZKlJZBvuO8nl4vk9m2+BdPzoBs6E="; hash = "sha256-U1tHmyRn/yMaPsbZKlJZBvuO8nl4vk9m2+BdPzoBs6E=";
}; };
postPatch = whenPatched "gunzip < ${patch_src} | patch -Np1"; postPatch = whenPatched "gunzip < ${patch_src} | patch -Np1";
@ -27,14 +29,19 @@ in stdenv.mkDerivation rec {
doCheck = true; doCheck = true;
passthru = { inherit zlib; }; passthru = {
inherit zlib;
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
};
meta = with lib; { meta = with lib; {
description = "The official reference implementation for the PNG file format" + whenPatched " with animation patch"; description = "The official reference implementation for the PNG file format" + whenPatched " with animation patch";
homepage = "http://www.libpng.org/pub/png/libpng.html"; homepage = "http://www.libpng.org/pub/png/libpng.html";
changelog = "https://github.com/glennrp/libpng/blob/v1.6.40/CHANGES"; changelog = "https://github.com/glennrp/libpng/blob/v1.6.40/CHANGES";
license = licenses.libpng2; license = licenses.libpng2;
pkgConfigModules = [ "libpng" "libpng16" ];
platforms = platforms.all; platforms = platforms.all;
maintainers = with maintainers; [ vcunat ]; maintainers = with maintainers; [ vcunat ];
}; };
} })

View File

@ -1,13 +1,15 @@
{ lib, stdenv, fetchFromGitHub, autoreconfHook }: { lib, stdenv, fetchFromGitHub, autoreconfHook
, testers
}:
stdenv.mkDerivation rec { stdenv.mkDerivation (finalAttrs: {
pname = "libsass"; pname = "libsass";
version = "3.6.5"; # also check sassc for updates version = "3.6.5"; # also check sassc for updates
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "sass"; owner = "sass";
repo = pname; repo = finalAttrs.pname;
rev = version; rev = finalAttrs.version;
sha256 = "1cxj6r85d5f3qxdwzxrmkx8z875hig4cr8zsi30w6vj23cyds3l2"; sha256 = "1cxj6r85d5f3qxdwzxrmkx8z875hig4cr8zsi30w6vj23cyds3l2";
# Remove unicode file names which leads to different checksums on HFS+ # Remove unicode file names which leads to different checksums on HFS+
# vs. other filesystems because of unicode normalisation. # vs. other filesystems because of unicode normalisation.
@ -17,16 +19,19 @@ stdenv.mkDerivation rec {
}; };
preConfigure = '' preConfigure = ''
export LIBSASS_VERSION=${version} export LIBSASS_VERSION=${finalAttrs.version}
''; '';
nativeBuildInputs = [ autoreconfHook ]; nativeBuildInputs = [ autoreconfHook ];
passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
meta = with lib; { meta = with lib; {
description = "A C/C++ implementation of a Sass compiler"; description = "A C/C++ implementation of a Sass compiler";
homepage = "https://github.com/sass/libsass"; homepage = "https://github.com/sass/libsass";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ codyopel offline ]; maintainers = with maintainers; [ codyopel offline ];
pkgConfigModules = [ "libsass" ];
platforms = platforms.unix; platforms = platforms.unix;
}; };
} })

View File

@ -3,16 +3,17 @@
, fetchFromGitHub , fetchFromGitHub
, cmake , cmake
, zlib , zlib
, testers
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation (finalAttrs: {
pname = "taglib"; pname = "taglib";
version = "1.13.1"; version = "1.13.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "taglib"; owner = "taglib";
repo = "taglib"; repo = "taglib";
rev = "v${version}"; rev = "v${finalAttrs.version}";
hash = "sha256-QX0EpHGT36UsgIfRf5iALnwxe0jjLpZvCTbk8vSMFF4="; hash = "sha256-QX0EpHGT36UsgIfRf5iALnwxe0jjLpZvCTbk8vSMFF4=";
}; };
@ -28,6 +29,8 @@ stdenv.mkDerivation rec {
"-DCMAKE_INSTALL_INCLUDEDIR=include" "-DCMAKE_INSTALL_INCLUDEDIR=include"
]; ];
passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
meta = with lib; { meta = with lib; {
homepage = "https://taglib.org/"; homepage = "https://taglib.org/";
description = "A library for reading and editing audio file metadata"; description = "A library for reading and editing audio file metadata";
@ -39,5 +42,6 @@ stdenv.mkDerivation rec {
''; '';
license = with licenses; [ lgpl3 mpl11 ]; license = with licenses; [ lgpl3 mpl11 ];
maintainers = with maintainers; [ ttuegel ]; maintainers = with maintainers; [ ttuegel ];
pkgConfigModules = [ "taglib" "taglib_c" ];
}; };
} })

View File

@ -17,7 +17,7 @@ let
, version, hash, psqlSchema , version, hash, psqlSchema
# for tests # for tests
, nixosTests, thisAttr , testers, nixosTests, thisAttr
# JIT # JIT
, jitSupport ? false , jitSupport ? false
@ -34,10 +34,11 @@ let
lz4Enabled = atLeast "14"; lz4Enabled = atLeast "14";
zstdEnabled = atLeast "15"; zstdEnabled = atLeast "15";
stdenv' = if jitSupport then llvmPackages.stdenv else stdenv;
in stdenv'.mkDerivation rec {
pname = "postgresql"; pname = "postgresql";
inherit version;
stdenv' = if jitSupport then llvmPackages.stdenv else stdenv;
in stdenv'.mkDerivation (finalAttrs: {
inherit pname version;
src = fetchurl { src = fetchurl {
url = "mirror://postgresql/source/v${version}/${pname}-${version}.tar.bz2"; url = "mirror://postgresql/source/v${version}/${pname}-${version}.tar.bz2";
@ -283,6 +284,7 @@ let
tests = { tests = {
postgresql = nixosTests.postgresql-wal-receiver.${thisAttr}; postgresql = nixosTests.postgresql-wal-receiver.${thisAttr};
pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
} // lib.optionalAttrs jitSupport { } // lib.optionalAttrs jitSupport {
postgresql-jit = nixosTests.postgresql-jit.${thisAttr}; postgresql-jit = nixosTests.postgresql-jit.${thisAttr};
}; };
@ -295,6 +297,7 @@ let
description = "A powerful, open source object-relational database system"; description = "A powerful, open source object-relational database system";
license = licenses.postgresql; license = licenses.postgresql;
maintainers = with maintainers; [ thoughtpolice danbst globin marsam ivan ma27 ]; maintainers = with maintainers; [ thoughtpolice danbst globin marsam ivan ma27 ];
pkgConfigModules = [ "libecpg" "libecpg_compat" "libpgtypes" "libpq" ];
platforms = platforms.unix; platforms = platforms.unix;
# JIT support doesn't work with cross-compilation. It is attempted to build LLVM-bytecode # JIT support doesn't work with cross-compilation. It is attempted to build LLVM-bytecode
@ -309,7 +312,7 @@ let
# a query, postgres would coredump with `Illegal instruction`. # a query, postgres would coredump with `Illegal instruction`.
broken = jitSupport && (stdenv.hostPlatform != stdenv.buildPlatform); broken = jitSupport && (stdenv.hostPlatform != stdenv.buildPlatform);
}; };
}; });
postgresqlWithPackages = { postgresql, makeWrapper, buildEnv }: pkgs: f: buildEnv { postgresqlWithPackages = { postgresql, makeWrapper, buildEnv }: pkgs: f: buildEnv {
name = "postgresql-and-plugins-${postgresql.version}"; name = "postgresql-and-plugins-${postgresql.version}";

View File

@ -1,18 +1,20 @@
{ lib, stdenv, fetchurl, file, zlib, libgnurx }: { lib, stdenv, fetchurl, file, zlib, libgnurx
, testers
}:
# Note: this package is used for bootstrapping fetchurl, and thus # Note: this package is used for bootstrapping fetchurl, and thus
# cannot use fetchpatch! All mutable patches (generated by GitHub or # cannot use fetchpatch! All mutable patches (generated by GitHub or
# cgit) that are needed here should be included directly in Nixpkgs as # cgit) that are needed here should be included directly in Nixpkgs as
# files. # files.
stdenv.mkDerivation rec { stdenv.mkDerivation (finalAttrs: {
pname = "file"; pname = "file";
version = "5.45"; version = "5.45";
src = fetchurl { src = fetchurl {
urls = [ urls = [
"https://astron.com/pub/file/${pname}-${version}.tar.gz" "https://astron.com/pub/file/${finalAttrs.pname}-${finalAttrs.version}.tar.gz"
"https://distfiles.macports.org/file/${pname}-${version}.tar.gz" "https://distfiles.macports.org/file/${finalAttrs.pname}-${finalAttrs.version}.tar.gz"
]; ];
hash = "sha256-/Jf1ECm7DiyfTjv/79r2ePDgOe6HK53lwAKm0Jx4TYI="; hash = "sha256-/Jf1ECm7DiyfTjv/79r2ePDgOe6HK53lwAKm0Jx4TYI=";
}; };
@ -37,12 +39,15 @@ stdenv.mkDerivation rec {
makeFlags = lib.optional stdenv.hostPlatform.isWindows "FILE_COMPILE=file"; makeFlags = lib.optional stdenv.hostPlatform.isWindows "FILE_COMPILE=file";
passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
meta = with lib; { meta = with lib; {
homepage = "https://darwinsys.com/file"; homepage = "https://darwinsys.com/file";
description = "A program that shows the type of files"; description = "A program that shows the type of files";
maintainers = with maintainers; [ doronbehar ]; maintainers = with maintainers; [ doronbehar ];
license = licenses.bsd2; license = licenses.bsd2;
pkgConfigModules = [ "libmagic" ];
platforms = platforms.all; platforms = platforms.all;
mainProgram = "file"; mainProgram = "file";
}; };
} })