From f396f0937e69f843187e5c899e8e6a21123ec2ec Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Mon, 25 Dec 2017 15:20:42 +0100 Subject: [PATCH 1/2] pythonPackages.milksnake: init at 0.1.5 --- .../python-modules/milksnake/default.nix | 26 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 ++ 2 files changed, 28 insertions(+) create mode 100644 pkgs/development/python-modules/milksnake/default.nix diff --git a/pkgs/development/python-modules/milksnake/default.nix b/pkgs/development/python-modules/milksnake/default.nix new file mode 100644 index 00000000000..014bb223225 --- /dev/null +++ b/pkgs/development/python-modules/milksnake/default.nix @@ -0,0 +1,26 @@ +{ lib, buildPythonPackage, fetchPypi, cffi }: + +buildPythonPackage rec { + pname = "milksnake"; + version = "0.1.5"; + + src = fetchPypi { + inherit pname version; + extension = "zip"; + sha256 = "120nprd8lqis7x7zy72536gk2j68f7gxm8gffmx8k4ygifvl7kfz"; + }; + + propagatedBuildInputs = [ + cffi + ]; + + # tests rely on pip/venv + doCheck = false; + + meta = with lib; { + description = "A python library that extends setuptools for binary extensions"; + homepage = https://github.com/getsentry/milksnake; + license = licenses.asl20; + maintainers = with maintainers; [ matthiasbeyer ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 2ca134a413f..5e35996a0a0 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -9452,6 +9452,8 @@ in { micawber = callPackage ../development/python-modules/micawber { }; + milksnake = callPackage ../development/python-modules/milksnake { }; + minimock = buildPythonPackage rec { version = "1.2.8"; name = "minimock-${version}"; From 49f55fa3375910259a7d9ba813121c3ca4096506 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Mon, 25 Dec 2017 15:20:57 +0100 Subject: [PATCH 2/2] vdirsyncer: 0.16.4 -> 0.17.0a2 --- pkgs/tools/misc/vdirsyncer/default.nix | 51 +++++++++++++++++++++----- 1 file changed, 41 insertions(+), 10 deletions(-) diff --git a/pkgs/tools/misc/vdirsyncer/default.nix b/pkgs/tools/misc/vdirsyncer/default.nix index 9d1e4096776..9e9ded5c3a7 100644 --- a/pkgs/tools/misc/vdirsyncer/default.nix +++ b/pkgs/tools/misc/vdirsyncer/default.nix @@ -1,18 +1,30 @@ -{ stdenv, fetchurl, python3Packages, glibcLocales }: +{ stdenv, python3Packages, glibcLocales, rustPlatform }: # Packaging documentation at: # https://github.com/untitaker/vdirsyncer/blob/master/docs/packaging.rst let pythonPackages = python3Packages; -in -pythonPackages.buildPythonApplication rec { - version = "0.16.4"; - name = "vdirsyncer-${version}"; - - src = fetchurl { - url = "mirror://pypi/v/vdirsyncer/${name}.tar.gz"; - sha256 = "03wva48bgv1ad3df6plc9b8xxh6k8bcaxrhlzwh81c9mzn5bspzv"; + version = "0.17.0a2"; + pname = "vdirsyncer"; + name = pname + "-" + version; + src = pythonPackages.fetchPypi { + inherit pname version; + sha256 = "0y464rsx5la6bp94z2g0nnkbl4nwfya08abynvifw4c84vs1gr4q"; }; + native = rustPlatform.buildRustPackage { + name = name + "-native"; + inherit src; + sourceRoot = name + "/rust"; + cargoSha256 = "1cr7xs11gbsc3x5slga9qahchwc22qq49amf28g4jgs9lzf57qis"; + postInstall = '' + mkdir $out/include $out/lib + cp $out/bin/libvdirsyncer_rustext* $out/lib + rm -r $out/bin + cp target/vdirsyncer_rustext.h $out/include + ''; + }; +in pythonPackages.buildPythonApplication rec { + inherit version pname src; propagatedBuildInputs = with pythonPackages; [ click click-log click-threading @@ -20,14 +32,33 @@ pythonPackages.buildPythonApplication rec { requests requests_oauthlib # required for google oauth sync atomicwrites + milksnake ]; - buildInputs = with pythonPackages; [hypothesis pytest pytest-localserver pytest-subtesthack setuptools_scm ] ++ [ glibcLocales ]; + buildInputs = with pythonPackages; [ setuptools_scm ]; + + checkInputs = with pythonPackages; [ hypothesis pytest pytest-localserver pytest-subtesthack ] ++ [ glibcLocales ]; + + postPatch = '' + sed -i "/cargo build/d" Makefile + ''; + + preBuild = '' + mkdir -p rust/target/release + ln -s ${native}/lib/libvdirsyncer_rustext* rust/target/release/ + ln -s ${native}/include/vdirsyncer_rustext.h rust/target/ + ''; LC_ALL = "en_US.utf8"; + preCheck = '' + ln -sf ../dist/tmpbuild/vdirsyncer/vdirsyncer/_native__lib.so vdirsyncer + ''; + checkPhase = '' + runHook preCheck make DETERMINISTIC_TESTS=true test + runHook postCheck ''; meta = with stdenv.lib; {