9bb3fccb5b
continuation of #109595 pkgconfig was aliased in 2018, however, it remained in all-packages.nix due to its wide usage. This cleans up the remaining references to pkgs.pkgsconfig and moves the entry to aliases.nix. python3Packages.pkgconfig remained unchanged because it's the canonical name of the upstream package on pypi.
106 lines
2.6 KiB
Nix
106 lines
2.6 KiB
Nix
{ lib
|
|
, stdenv
|
|
, fetchFromGitHub
|
|
, fetchpatch
|
|
, buildPackages
|
|
, cmake
|
|
, glib
|
|
, icu
|
|
, libxml2
|
|
, ninja
|
|
, perl
|
|
, pkg-config
|
|
, libical
|
|
, python3
|
|
, tzdata
|
|
, introspectionSupport ? stdenv.buildPlatform == stdenv.hostPlatform
|
|
, gobject-introspection ? null
|
|
, vala ? null
|
|
}:
|
|
|
|
assert introspectionSupport -> gobject-introspection != null && vala != null;
|
|
|
|
stdenv.mkDerivation rec {
|
|
pname = "libical";
|
|
version = "3.0.8";
|
|
|
|
outputs = [ "out" "dev" ]; # "devdoc" ];
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "libical";
|
|
repo = "libical";
|
|
rev = "v${version}";
|
|
sha256 = "0pkh74bfrgp1slv8wsv7lbmal2m7qkixwm5llpmfwaiv14njlp68";
|
|
};
|
|
|
|
nativeBuildInputs = [
|
|
cmake
|
|
ninja
|
|
perl
|
|
pkg-config
|
|
# Docs building fails:
|
|
# https://github.com/NixOS/nixpkgs/pull/67204
|
|
# previously with https://github.com/NixOS/nixpkgs/pull/61657#issuecomment-495579489
|
|
# gtk-doc docbook_xsl docbook_xml_dtd_43 # for docs
|
|
] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
|
|
# provides ical-glib-src-generator that runs during build
|
|
libical
|
|
] ++ lib.optionals introspectionSupport [
|
|
gobject-introspection
|
|
vala
|
|
];
|
|
installCheckInputs = [
|
|
# running libical-glib tests
|
|
(python3.withPackages (pkgs: with pkgs; [
|
|
pygobject3
|
|
]))
|
|
];
|
|
|
|
buildInputs = [
|
|
glib
|
|
libxml2
|
|
icu
|
|
];
|
|
|
|
cmakeFlags = [
|
|
"-DENABLE_GTK_DOC=False"
|
|
] ++ lib.optionals introspectionSupport [
|
|
"-DGOBJECT_INTROSPECTION=True"
|
|
"-DICAL_GLIB_VAPI=True"
|
|
] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
|
|
"-DIMPORT_GLIB_SRC_GENERATOR=${lib.getDev buildPackages.libical}/lib/cmake/LibIcal/GlibSrcGenerator.cmake"
|
|
];
|
|
|
|
patches = [
|
|
# Will appear in 3.1.0
|
|
# https://github.com/libical/libical/issues/350
|
|
./respect-env-tzdir.patch
|
|
# Export src-generator binary for use while cross-compiling
|
|
# https://github.com/libical/libical/pull/439
|
|
(fetchpatch {
|
|
url = "https://github.com/libical/libical/commit/1197d84b63dce179b55a6293cfd6d0523607baf1.patch";
|
|
sha256 = "18i1khnwmw488s7g5a1kf05sladf8dbyhfc69mbcf6dkc4nnc3dg";
|
|
})
|
|
];
|
|
|
|
# Using install check so we do not have to manually set
|
|
# LD_LIBRARY_PATH and GI_TYPELIB_PATH variables
|
|
doInstallCheck = true;
|
|
enableParallelChecking = false;
|
|
installCheckPhase = ''
|
|
runHook preInstallCheck
|
|
|
|
export TZDIR=${tzdata}/share/zoneinfo
|
|
ctest --output-on-failure
|
|
|
|
runHook postInstallCheck
|
|
'';
|
|
|
|
meta = with stdenv.lib; {
|
|
homepage = "https://github.com/libical/libical";
|
|
description = "An Open Source implementation of the iCalendar protocols";
|
|
license = licenses.mpl20;
|
|
platforms = platforms.unix;
|
|
};
|
|
}
|