1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 cmake,
6 pkg-config,
7 boost,
8 gfal2,
9 glib,
10 pythonAtLeast,
11 # For tests
12 gfal2-util ? null,
13}:
14buildPythonPackage rec {
15 pname = "gfal2-python";
16 version = "1.12.2";
17 src = fetchFromGitHub {
18 owner = "cern-fts";
19 repo = "gfal2-python";
20 rev = "v${version}";
21 hash = "sha256-Xk+gLTrqfWb0kGB6QhnM62zAHVFb8rRAqCIBxn0V824=";
22 };
23 nativeBuildInputs = [
24 cmake
25 pkg-config
26 ];
27 buildInputs = [
28 boost
29 gfal2
30 glib
31 ];
32 # We don't want setup.py to (re-)execute cmake in buildPhase
33 # Besides, this package is totally handled by CMake, which means no additional configuration is needed.
34 dontConfigure = true;
35 pythonImportsCheck = [ "gfal2" ];
36 passthru = {
37 inherit gfal2;
38 tests = {
39 inherit gfal2-util;
40 } // lib.optionalAttrs (gfal2-util != null) gfal2-util.tests or { };
41 };
42 meta = with lib; {
43 description = "Python binding for gfal2";
44 homepage = "https://github.com/cern-fts/gfal2-python";
45 license = licenses.asl20;
46 maintainers = with maintainers; [ ShamrockLee ];
47 # It currently fails to build against Python 3.12 or later,
48 # complaining CMake faililng to find Python include path, library path and site package path.
49 broken = pythonAtLeast "3.12";
50 };
51}