Created attachment 189396 [details] sharfile for devel/ros-rosdep This is one of the tools that is required for the Robot Operating System (ROS) to work on FreeBSD. There are many other parts that are required, but I thought I would add the first steps.
Created attachment 189943 [details] Updated shar Updated shar file, the previous version didn't stage correctly.
*Sigh* Sorry I didn't obsolete the earlier file. I clicked too fast. The new file should have everything.
Comment on attachment 189943 [details] Updated shar Hi, it has been a year since anybody has said anything here. I don't know if this is still relevant, but I'm doing a quick review as there seem to be a couple of issues here. XWWW= http://docs.ros.org/independent/api/rosdep/html/ WWW goes into pkg-descr on FreeBSD. XUSES= python XUSE_PYHTON= distutils autoplist Typo. USE_PYTHON. With this fixed pkg-plist could probably be dropped thanks to autoplist here. XGH_TAGNAME= 0.11.8 Should be removed as GH_TAGNAME defaults to ${DISTVERSION}. Xdo-install: X (cd ${WRKSRC} && python setup.py install --root ${STAGEDIR}) X After fixing the USE_PYTHON typo this can probably be removed too. XTaken from the rosdep documentation. X I would not start pkg-descr with that. Usually you have a WWW line at the bottom of pkg-descr which also doubles as a source for the description.
Thanks for the comments. This can still be relevant. Plus, it would be nice to get this into the ports tree as I actually was able to push fixes upstream for FreeBSD in rosdep, but I may need to do an update as there's a new version of ROS out. Unfortunately, I don't have access to my FreeBSD machine until the beginning of February, but I'll send an updated patch when I have access to it.
Created attachment 201897 [details] Updated shar to address issues from comment 3. Thank you for the comments. I updated the shar file. While, there are newer versions of rosdep, I would rather submit a new bug report for them and get this in first.
Looks better but there are still some issues. I consider the dependencies problem a blocking issue. XPKGNAMEPREFIX= ${PY_FLAVOR}- Use PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} here. XLICENSE= BSD3CLAUSE Consider adding LICENSE_FILE here too. When I run it this happens Traceback (most recent call last): File "/usr/local/bin/rosdep", line 3, in <module> from rosdep2.main import rosdep_main File "/usr/local/lib/python2.7/site-packages/rosdep2/__init__.py", line 40, in <module> from .installers import InstallerContext, Installer, \ File "/usr/local/lib/python2.7/site-packages/rosdep2/installers.py", line 36, in <module> from rospkg.os_detect import OsDetect ImportError: No module named rospkg.os_detect Looks like there are some dependencies missing. setup.py has this install_requires=['catkin_pkg', 'rospkg >= 1.0.37', 'rosdistro >= 0.4.0', 'PyYAML >= 3.1'],
Ah, thanks for the catch! It reminds me I need to test building these ports as a "blank" user. I have ports for these dependencies too, but they are all python and I suspect they need the same flavor fixing as this one. I'll try to get to those and submit an updated patch for everything later this week.
Created attachment 202139 [details] Updated shar to address issues from comment #6. Updated shar to address issues from comment #6. It should work better now. I had to make bug reports for the dependencies. They bug reports are: bug #235843 bug #235844 bug #235845
Thanks for looking at this, I had actually considered adding some ROS things to ports myself. That said, given what I understand of rosdep, i'm not sure i understand the use case of adding it to ports. Reading this page: https://answers.ros.org/question/287544/when-should-i-use-rosdep-and-when-should-i-use-apt-or-pip/ it sounds like it does the same thing ports/pkgs do. Am I misunderstanding? What's the use case?
(In reply to Steve Wills from comment #9) Thank you for adding the dependencies in the correct field. I'm still new to these things. rosdep is a cross platform tool for handling packages and I've updated it to use pkg on FreeBSD[1]. So, no, you don't *need* rosdep per se assuming you know how to navigate dependencies or build things yourself. But, say, you are someone who only knows ROS and not necessarily the operating system below. Then you can use rosdep to ensure that a package is installed. And having rosdep in the ports tree at least would make the "how do I install rosdep on FreeBSD?" part easy. Also, if you want to build ROS from source (e.g., http://wiki.ros.org/kinetic/Installation/Source), then you need a working rosdep because several scripts depend on rosdep to see if you have all the dependencies met. You can hack around the scripts, but if you are building from source, you have other issues to work with. At the beginning of 2018 (i.e., when I submitted these ports initially). I had managed to build the minimal part of ROS Kinetic Kame. So, at least getting the basic node up is possible. But spending a day on rosdep was part of it, and I would be glad if others could at least skip that part, which is the reason of ports. I'm glad there are others interested in ROS on FreeBSD. It makes it worthwhile to get this and other ports finished even if I can't make direct use of them at this exact moment.
(In reply to Trenton Schulz from comment #10) … and I hit submit before finishing the footnote for commend #10. [1] There was an older version of ROS for FreeBSD and rosdep worked with that too, but it was before modern pkg and it just used the pkg_* tools. However, back then, I think ROS only came as a giant package.
Created attachment 207565 [details] Updated sharfile Updated sharfile for newer version of software.
Committed, thanks!
A commit references this bug: Author: pi Date: Sun Sep 22 10:48:03 UTC 2019 New revision: 512577 URL: https://svnweb.freebsd.org/changeset/ports/512577 Log: New port: devel/ros-rosdep rosdep is a command-line tool for installing system dependencies rosdep uses the backend of operating system for installing packages. For end-users, rosdep helps you install system dependencies for software that you are building from source. For developers, rosdep simplifies the problem of installing system dependencies on different platforms. On FreeBSD, the pkg system is used. WWW: http://docs.ros.org/independent/api/rosdep/html/ PR: 224895 Submitted by: Trenton Schulz <trueos@norwegianrockcat.com> Changes: head/devel/Makefile head/devel/ros-rosdep/ head/devel/ros-rosdep/Makefile head/devel/ros-rosdep/distinfo head/devel/ros-rosdep/files/ head/devel/ros-rosdep/files/patch-src_rosdep2_sources__list.py head/devel/ros-rosdep/pkg-descr