Basic ROS deps.

This commit is contained in:
Ben Wolsieffer 2019-03-11 22:15:02 -04:00
commit 13c58f0706
7 changed files with 216 additions and 0 deletions

107
base.nix Normal file
View file

@ -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

18
catkin-pkg/default.nix Normal file
View file

@ -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;
};
}

16
empy/default.nix Normal file
View file

@ -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/;
};
}

21
rosdep/default.nix Normal file
View file

@ -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;
};
}

18
rosdistro/default.nix Normal file
View file

@ -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;
};
}

View file

@ -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;
};
}

18
rospkg/default.nix Normal file
View file

@ -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;
};
}