From 13c58f0706ea3a7ed684b7a507c8a9e1a40a3cf4 Mon Sep 17 00:00:00 2001 From: Ben Wolsieffer Date: Mon, 11 Mar 2019 22:15:02 -0400 Subject: [PATCH] Basic ROS deps. --- base.nix | 107 +++++++++++++++++++++++++++++++ catkin-pkg/default.nix | 18 ++++++ empy/default.nix | 16 +++++ rosdep/default.nix | 21 ++++++ rosdistro/default.nix | 18 ++++++ rosinstall-generator/default.nix | 18 ++++++ rospkg/default.nix | 18 ++++++ 7 files changed, 216 insertions(+) create mode 100644 base.nix create mode 100644 catkin-pkg/default.nix create mode 100644 empy/default.nix create mode 100644 rosdep/default.nix create mode 100644 rosdistro/default.nix create mode 100644 rosinstall-generator/default.nix create mode 100644 rospkg/default.nix diff --git a/base.nix b/base.nix new file mode 100644 index 0000000000..baacd7dcb8 --- /dev/null +++ b/base.nix @@ -0,0 +1,107 @@ +{ lib, stdenv, pkgs, pythonPackages }: + with lib; + with pkgs; + with pythonPackages; +let + callPackage = newScope self; + callPythonPackage = newScope (pythonPackages // self); + + self = rec { + buildRosPackage = { postFixup ? "", ... }@args: stdenv.mkDerivation args // { + + postFixup = '' + wrapPythonPrograms + '' + postFixup; + }; + + catkin-pkg = pythonPackages.callPackage ./catkin-pkg { }; + + empy = pythonPackages.callPackage ./empy {}; + + rospkg = callPythonPackage ./rospkg {}; + + rosdistro = callPythonPackage ./rosdistro {}; + + rosdep = callPythonPackage ./rosdep {}; + + rosinstall-generator = callPythonPackage ./rosinstall-generator {}; + + vcstools = buildPythonPackage rec { + pname = "vcstools"; + version = "0.1.40"; + name = "${pname}-${version}"; + + src = fetchPypi { + inherit pname version; + sha256 = "1mfasip71ky1g968n1zlramgn3fjxk4c922d0x9cs0nwm2snln4m"; + }; + + propagatedBuildInputs = [ pyyaml python-dateutil ]; + + # Tries to download files and lots of other issues + doCheck = false; + + meta = { + description = "Python library for interacting with various VCS systems"; + homepage = http://wiki.ros.org/vcstools; + }; + }; + + wstool = buildPythonPackage rec { + pname = "wstool"; + version = "0.1.17"; + name = "${pname}-${version}"; + + src = fetchPypi { + inherit pname version; + sha256 = "0dz2gn2qx919s1z5wa94nkvb01pnqp945mvj97108w7i1q8lz6y7"; + }; + + propagatedBuildInputs = [ vcstools pyyaml ]; + + meta = { + description = "A tool for managing a workspace of multiple heterogenous SCM repositories"; + homepage = http://wiki.ros.org/wstool; + }; + }; + + rosinstall = buildPythonPackage rec { + pname = "rosinstall"; + version = "0.7.8"; + name = "${pname}-${version}"; + + src = fetchPypi { + inherit pname version; + sha256 = "0h7d8ynv44c68sbfn28xw4k18k3ip6252x7r7bqw6b5cifzhia1b"; + }; + + nativeBuildInputs = [ makeWrapper ]; + propagatedBuildInputs = [ vcstools pyyaml rosdistro catkinPkg wstool rospkg ]; + + meta = { + description = "The installer for ROS"; + homepage = http://wiki.ros.org/rosinstall; + }; + }; + + consoleBridge = stdenv.mkDerivation rec { + name = "console_bridge-0.3.2"; + + src = fetchFromGitHub { + owner = "ros"; + repo = "console_bridge"; + rev = "0.4.0"; + sha256 = "1sxwabx59znmx99mfskz4wh1fhkwjanqjj6dy33zim55c6x8qnxr"; + }; + + nativeBuildInputs = [ cmake ]; + + meta = with lib; { + description = "A ROS-independent package for logging that seamlessly pipes into rosconsole/rosout for ROS-dependent packages"; + homepage = https://github.com/ros/console_bridge; + license = licenses.bsd3; + }; + }; + }; + +in self diff --git a/catkin-pkg/default.nix b/catkin-pkg/default.nix new file mode 100644 index 0000000000..bfe85e23c0 --- /dev/null +++ b/catkin-pkg/default.nix @@ -0,0 +1,18 @@ +{ buildPythonPackage, fetchPypi, python-dateutil, docutils, pyparsing }: + +buildPythonPackage rec { + pname = "catkin_pkg"; + version = "0.4.10"; + + src = fetchPypi { + inherit pname version; + sha256 = "1nv4kgapn6rbdvfgz96z5h5jdga6zca3gg1a5r3n8giykzkmy992"; + }; + + propagatedBuildInputs = [ python-dateutil docutils pyparsing ]; + + meta = { + description = "Library for retrieving information about catkin packages"; + homepage = http://wiki.ros.org/catkin_pkg; + }; +} diff --git a/empy/default.nix b/empy/default.nix new file mode 100644 index 0000000000..5ebdfb3f0e --- /dev/null +++ b/empy/default.nix @@ -0,0 +1,16 @@ +{ lib, fetchurl, buildPythonPackage }: + +buildPythonPackage rec { + pname = "empy"; + version = "3.3.4"; + + src = fetchurl { + url = "http://www.alcyone.com/software/empy/empy-${version}.tar.gz"; + sha256 = "1cgikljjcqxgz168prpvb0bnirbdxf9wmgj0vlzzhzzwf4a229li"; + }; + + meta = { + description = "A powerful and robust templating system for Python"; + homepage = http://www.alcyone.com/software/empy/; + }; +} diff --git a/rosdep/default.nix b/rosdep/default.nix new file mode 100644 index 0000000000..df6d571a81 --- /dev/null +++ b/rosdep/default.nix @@ -0,0 +1,21 @@ +{ buildPythonPackage, fetchPypi, catkin-pkg, rospkg, pyyaml, rosdistro }: + +buildPythonPackage rec { + pname = "rosdep"; + version = "0.15.1"; + + src = fetchPypi { + inherit pname version; + sha256 = "0y3hxyd84q7c0091cci3dnsg8pm9yw9i4fxgc09wzzgaiq8y3k40"; + }; + + # Tries to download files + doCheck = false; + + propagatedBuildInputs = [ catkin-pkg rospkg pyyaml rosdistro ]; + + meta = { + description = "Package manager abstraction tool for ROS"; + homepage = http://wiki.ros.org/rosdep; + }; +} diff --git a/rosdistro/default.nix b/rosdistro/default.nix new file mode 100644 index 0000000000..7829e9f838 --- /dev/null +++ b/rosdistro/default.nix @@ -0,0 +1,18 @@ +{ buildPythonPackage, fetchPypi, rospkg, catkin-pkg, pyyaml }: + +buildPythonPackage rec { + pname = "rosdistro"; + version = "0.7.2"; + + src = fetchPypi { + inherit pname version; + sha256 = "15b1ylfzrjniki3kpbabs0cb86ij2dv0qikgiy7hkw6mcx8588v6"; + }; + + propagatedBuildInputs = [ rospkg catkin-pkg pyyaml ]; + + meta = { + description = "A tool to work with rosdistro files"; + homepage = http://wiki.ros.org/rosdistro; + }; +} diff --git a/rosinstall-generator/default.nix b/rosinstall-generator/default.nix new file mode 100644 index 0000000000..cf5fc95772 --- /dev/null +++ b/rosinstall-generator/default.nix @@ -0,0 +1,18 @@ +{ buildPythonPackage, fetchPypi, catkin-pkg, rosdistro, rospkg, pyyaml }: + +buildPythonPackage rec { + pname = "rosinstall_generator"; + version = "0.1.14"; + + src = fetchPypi { + inherit pname version; + sha256 = "058wld3gcnziprsgm7c5pvdscm181nywshsfpxddyhcqr12dswjk"; + }; + + propagatedBuildInputs = [ catkin-pkg rosdistro rospkg pyyaml ]; + + meta = { + description = "A tool to generator rosinstall files"; + homepage = http://wiki.ros.org/rosinstall_generator; + }; +} diff --git a/rospkg/default.nix b/rospkg/default.nix new file mode 100644 index 0000000000..80b517aa59 --- /dev/null +++ b/rospkg/default.nix @@ -0,0 +1,18 @@ +{ buildPythonPackage, fetchPypi, catkin-pkg, pyyaml }: + +buildPythonPackage rec { + pname = "rospkg"; + version = "1.1.7"; + + src = fetchPypi { + inherit pname version; + sha256 = "1axj16vc145njnn6hq8yxrkb0k2fysca5f87zmib6lba7bhiisf6"; + }; + + propagatedBuildInputs = [ catkin-pkg pyyaml ]; + + meta = { + description = "Library for retrieving information about ROS packages and stacks"; + homepage = http://wiki.ros.org/rospkg; + }; +}