diff --git a/pkgs/development/python-modules/py3exiv2/default.nix b/pkgs/development/python-modules/py3exiv2/default.nix new file mode 100644 index 00000000000..4656b99df0a --- /dev/null +++ b/pkgs/development/python-modules/py3exiv2/default.nix @@ -0,0 +1,29 @@ +{ buildPythonPackage, isPy3k, fetchPypi, stdenv, exiv2, boost, libcxx }: + +buildPythonPackage rec { + pname = "py3exiv2"; + version = "0.2.1"; + name = "${pname}-${version}"; + disabled = !(isPy3k); + + src = fetchPypi { + inherit pname version; + sha256 = "06q7mlqy05c3jr61nmz93fxb6ilizfyggbh5sg0krwjap2sw1fr8"; + }; + + buildInputs = [ exiv2 boost ]; + + # work around python distutils compiling C++ with $CC (see issue #26709) + NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-I${libcxx}/include/c++/v1"; + + # fix broken libboost_python3 detection + patches = [ ./setup.patch ]; + + meta = { + homepage = "https://launchpad.net/py3exiv2"; + description = "A Python3 binding to the library exiv2"; + license = with stdenv.lib.licenses; [ gpl3 ]; + maintainers = with stdenv.lib.maintainers; [ vinymeuh ]; + platforms = with stdenv.lib.platforms; linux ++ darwin; + }; +} diff --git a/pkgs/development/python-modules/py3exiv2/setup.patch b/pkgs/development/python-modules/py3exiv2/setup.patch new file mode 100644 index 00000000000..bb4b1152347 --- /dev/null +++ b/pkgs/development/python-modules/py3exiv2/setup.patch @@ -0,0 +1,11 @@ +--- a/setup.py 2017-10-16 22:03:02.000000000 +0200 ++++ b/setup.py 2017-10-16 22:03:34.000000000 +0200 +@@ -39,7 +39,7 @@ + if '3' in l[2:]: + return l.replace('libboost', 'boost') + +-libboost = get_libboost_name() ++libboost = 'boost_python3' + + setup( + name='py3exiv2', diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index d33b7fd6dd5..890aae47124 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -234,6 +234,8 @@ in { pyexiv2 = if (!isPy3k) then callPackage ../development/python-modules/pyexiv2 {} else throw "pyexiv2 not supported for interpreter ${python.executable}"; + py3exiv2 = callPackage ../development/python-modules/py3exiv2 { }; + pygame = callPackage ../development/python-modules/pygame { }; pygame-git = callPackage ../development/python-modules/pygame/git.nix { };