diff options
Diffstat (limited to 'nixpkgs/pkgs/by-name/sy/syncstorage-rs/package.nix')
-rw-r--r-- | nixpkgs/pkgs/by-name/sy/syncstorage-rs/package.nix | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/by-name/sy/syncstorage-rs/package.nix b/nixpkgs/pkgs/by-name/sy/syncstorage-rs/package.nix new file mode 100644 index 000000000000..097ada49f33c --- /dev/null +++ b/nixpkgs/pkgs/by-name/sy/syncstorage-rs/package.nix @@ -0,0 +1,67 @@ +{ fetchFromGitHub +, rustPlatform +, pkg-config +, python3 +, cmake +, libmysqlclient +, makeBinaryWrapper +, lib +}: + +let + pyFxADeps = python3.withPackages (p: [ + p.setuptools # imports pkg_resources + # remainder taken from requirements.txt + p.pyfxa + p.tokenlib + p.cryptography + ]); +in + +rustPlatform.buildRustPackage rec { + pname = "syncstorage-rs"; + version = "0.15.1"; + + src = fetchFromGitHub { + owner = "mozilla-services"; + repo = pname; + rev = "refs/tags/${version}"; + hash = "sha256-uQaiBxK+dV/AgMlKbFUvHV7bUUGX6gpypImCat7H4S8="; + }; + + nativeBuildInputs = [ + cmake + makeBinaryWrapper + pkg-config + python3 + ]; + + buildInputs = [ + libmysqlclient + ]; + + preFixup = '' + wrapProgram $out/bin/syncserver \ + --prefix PATH : ${lib.makeBinPath [ pyFxADeps ]} + ''; + + cargoLock = { + lockFile = ./Cargo.lock; + outputHashes = { + "deadpool-0.7.0" = "sha256-yQwn45EuzmPBwuT+iLJ/LLWAkBkW2vF+GLswdbpFVAY="; + }; + }; + + # almost all tests need a DB to test against + doCheck = false; + + meta = { + description = "Mozilla Sync Storage built with Rust"; + homepage = "https://github.com/mozilla-services/syncstorage-rs"; + changelog = "https://github.com/mozilla-services/syncstorage-rs/releases/tag/${version}"; + license = lib.licenses.mpl20; + maintainers = with lib.maintainers; [ pennae ]; + platforms = lib.platforms.linux; + mainProgram = "syncserver"; + }; +} |