@@ -1,6 +1,6 @@
# ** Superflore** OE Recipe Generation Scheme
Revision: 44 Published: 2019-12-10
Revision: 45 Published: 2019-12-19
## General
Expand Down
Expand Up
@@ -620,7 +620,8 @@ ROS_SUPERFLORE_GENERATION_COMMIT = "<ROS-ROSDISTRO-COMMIT>"
| `files/<ROS_DISTRO>/` | `meta-ros[12]-<ROS_DISTRO>/files/<ROS_DISTRO>/generated/` |
| `generated-recipes-<ROS_DISTRO>/` | `meta-ros[12]-<ROS_DISTRO>/generated-recipes/` |
| `includes-ros[12]/*/*.inc` | `meta-ros[12]-<ROS_DISTRO>/recipes-bbappends/*/*.bbappend` |
| `recipes-*/` | `{meta-ros-common,meta-ros[12],meta-ros-backports-warrior,meta-ros-webos}/recipes-*/`
| `recipes-*/` | `{meta-ros-common,meta-ros[12],meta-ros-backports-warrior,meta-ros-webos}/recipes-*/` |
| `recipes-core/packagegroups/packagegroup-ros-world-<ROS_DISTRO>.inc` | `meta-ros[12]-<ROS_DISTRO>/recipes-core/packagegroups//packagegroup-ros-world-<ROS_DISTRO>.bb` |
| `scripts/mcf` | separate `[build-draft]` branch in `meta-ros` |
Expand Down
Expand Up
@@ -668,7 +669,7 @@ ROS_SUPERFLORE_GENERATION_COMMIT = "<ROS-ROSDISTRO-COMMIT>"
# # Milestones
# ## Milestone 1: ROS 2 with webOS OSE on Beanbird Bot (ROS 2 **bouncy** and OE-Core **morty**) [COMPLETED]
# ## Milestone 1: ROS 2 with webOS OSE on Beanbird Bot (ROS 2 **bouncy** and OE-Core **morty**)
- Use the latest ` [devel]` branch of ` build-ros2-lgsvl.git` to select the commits to build from for the layers other than
` meta-ros2` .
- Use ` bitbake-layers show-overlayed` to find bbclass-s and recipes for platform packages in ` meta-ros2` that are no longer needed
Expand Down
Expand Up
@@ -702,8 +703,9 @@ ROS_SUPERFLORE_GENERATION_COMMIT = "<ROS-ROSDISTRO-COMMIT>"
- Enhance ` mcf` to recognize an optional ` BblayersConfExtraLines` variable in ` weboslayers.py` that will contain a tuple of
strings to be appended to the ` conf/bblayers.conf` that it generates.
- Done when the image for Beanbird Bot works.
- ** COMPLETED**
# ## Milestone 2: ROS Core on `qemux86` and `raspberrypi3` (ROS 2 **crystal** and OE-Core **morty**) [COMPLETED]
# ## Milestone 2: ROS Core on `qemux86` and `raspberrypi3` (ROS 2 **crystal** and OE-Core **morty**)
- Use ` bitbake-layers show-overlayed` to find bbclass-s and recipes for platform packages in ` meta-ros` that are no longer needed
because they are now provided by OE-Core ** morty** .
- Upgrade the recipes included in ` meta-ros` for the platform packages needed for **crystal** to the versions found in Ubuntu
Expand Down
Expand Up
@@ -775,8 +777,9 @@ ROS_SUPERFLORE_GENERATION_COMMIT = "<ROS-ROSDISTRO-COMMIT>"
data: Hello world
` ` `
- ** COMPLETED**
# ## Milestone 3: ROS World with webOS OSE on `qemux86` and `raspberrypi3` (ROS 2 **crystal** and OE-Core **morty**) [COMPLETED]
# ## Milestone 3: ROS World with webOS OSE on `qemux86` and `raspberrypi3` (ROS 2 **crystal** and OE-Core **morty**)
- Use the absence of ` DISTRO_FEATURES` values to conditionally remove the " optional" packages associated with Gazebo, Navigation2,
Mobile Robot Programming Toolkit 2, RealSense, Qt, rqt, and RViz from ` packagegroup-ros-world` . Adding the value for
BehaviorTree.CPP v3 to ` DISTRO_FEATURES` removes the Navigation2 packages because they require v2 of BehaviorTree.CPP . Do this
Expand All
@@ -792,8 +795,9 @@ ROS_SUPERFLORE_GENERATION_COMMIT = "<ROS-ROSDISTRO-COMMIT>"
running ` webos-image-ros-world` , the webOS OSE menu must appear after pressing the ** Windows** key and allow the settings for
** Network** to be launched. Note that webOS OSE automatically starts networking; issuing ` /etc/init.d/networking start` is
unnecessary.
- ** COMPLETED**
# ## Milestone 4: ROS World with webOS OSE on `qemux86` and `raspberrypi3` (ROS 2 **crystal** and OE-Core **thud**) [COMPLETED]
# ## Milestone 4: ROS World with webOS OSE on `qemux86` and `raspberrypi3` (ROS 2 **crystal** and OE-Core **thud**)
- Set ` LAYERSERIES_COMPAT_ros-layer` to ` thud` as it will be the only OE-Core release series with which the ** crystal** ` meta-ros`
will continue to be tested.
- Add ` dashing` to ` ROS_DISTRO_COMPAT` .
Expand All
@@ -805,8 +809,9 @@ ROS_SUPERFLORE_GENERATION_COMMIT = "<ROS-ROSDISTRO-COMMIT>"
running ` webos-image-ros-world` , the webOS OSE menu must appear after pressing the ** Windows** key and allow the settings for
** Network** to be launched. Note that webOS OSE automatically starts networking; issuing ` /etc/init.d/networking start` is
unnecessary.
- ** COMPLETED**
# ## Milestone 5: ROS World with webOS OSE on `qemux86` and `raspberrypi3` (ROS 2 **dashing** and OE-Core **thud**) [COMPLETED]
# ## Milestone 5: ROS World with webOS OSE on `qemux86` and `raspberrypi3` (ROS 2 **dashing** and OE-Core **thud**)
- Add entries to ` base.yaml` or ` python.yaml` for platform packages whose mappings in ` files/dashing/rosdep-resolve.yaml` have
names that do not contain ` @< OE-LAYER> ` .
- Update any ` < PV> ` -specific files for the new version of ROS packages in ** dashing** .
Expand All
@@ -825,8 +830,9 @@ ROS_SUPERFLORE_GENERATION_COMMIT = "<ROS-ROSDISTRO-COMMIT>"
running ` webos-image-ros-world` , the webOS OSE menu must appear after pressing the ** Windows** key and allow the settings for
** Network** to be launched. Note that webOS OSE automatically starts networking; issuing ` /etc/init.d/networking start` is
unnecessary.
- ** COMPLETED**
# ## Milestone 6: ROS Core with webOS OSE on `qemux86` and `raspberrypi3` (ROS 1 **melodic** and OE-Core **thud**) [COMPLETED]
# ## Milestone 6: ROS Core with webOS OSE on `qemux86` and `raspberrypi3` (ROS 1 **melodic** and OE-Core **thud**)
- Decide whether the ROS packages should installed under ` /opt/ros/< ROS_DISTRO> ` or folded into the rest of the OS under ` /usr`
-- see [Issue # 3](#Issues). Until this is decided. ROS 1 distros will install them under `/opt/ros/<ROS_DISTRO>` and ROS 2
distros will continue to install them under ` /usr` .
Expand Down
Expand Up
@@ -894,8 +900,9 @@ ROS_SUPERFLORE_GENERATION_COMMIT = "<ROS-ROSDISTRO-COMMIT>"
(from http://wiki.ros.org/ROS/Tutorials/UnderstandingNodes). Additionally, when running `webos-image-ros-roscore`, the webOS OSE
menu must appear after pressing the **Windows** key and allow the settings for **Network** to be launched.
- **COMPLETED**
### Milestone 7: TurtleBot 3 Waffle Pi (using model B not B+) with webOS OSE (ROS 1 **melodic** and OE-Core **thud**) [COMPLETED]
### Milestone 7: TurtleBot 3 Waffle Pi (using model B not B+) with webOS OSE (ROS 1 **melodic** and OE-Core **thud**)
- Split off the generation of `files/<ROS_DISTRO>/cache.yaml` into own script **ros-generate-cache**.
- Change the name of the branch created during recipe generation from `superflore/<DATETIME> ` to
`superflore/<ROS_DISTRO>/<RELEASE-YYYYMMDD>`.
Expand Down
Expand Up
@@ -928,14 +935,15 @@ ROS_SUPERFLORE_GENERATION_COMMIT = "<ROS-ROSDISTRO-COMMIT>"
on them. (If `[WARN] [<timestamp>]: Failed to get param: timeout expired` is output, restart and try again.) Additionally,
when running `webos-image-ros-turtlebot3-all`, the webOS OSE menu must appear after pressing the **Windows** key and allow the
settings for **Network** to be launched.
- **COMPLETED**
### Milestone 8: Implement layer version 3
- Implement the items under **Phase 1** in the **Layer Version 3** section.
- Update this document with the file layout and content changes for layer version 3.
- Update <https://github.com/ros/meta-ros/wiki/OpenEmbedded-Build-Instructions> with the new image names.
- Update **superflore** to implement ROS_SUPERFLORE_GENERATION_SCHEME 2 and submit PR-s for the changes.
- Create a new branch `[legacy-v2]`, whose `files/*.mcf` fetch from `[legacy-v2]`, from the existing `[thud-draft]` branch. Its
files will not be changed nor rebased.
files will not be changed nor its commits rebased.
- Move `scripts/mcf` and `files/*.mcf` into a new independently-rooted branch `[build-draft]`. Give the `.mcf` file basenames a
`-thud` suffix.
- Add a rebaseable `[master-draft]` that is coincident with `[thud-draft]`.
Expand All
@@ -945,9 +953,10 @@ ROS_SUPERFLORE_GENERATION_COMMIT = "<ROS-ROSDISTRO-COMMIT>"
- `ros-image-turtlebot3-all` (`DISTRO = "ros1"`) and `webos-image-ros-turtlebot3-all` (`DISTRO = "webos"`) build successfully
for `raspberrypi3` for **melodic**;
- The images pass the sanity tests.
- **COMPLETED**
### Milestone 9: Support ROS 2 **eloquent**
- Start with initial release from 2019-11-22 (see
- Use initial release from 2019-11-22 (see
[ROS 2 Eloquent Elusor](https://discourse.ros.org/t/ros-2-eloquent-elusor-released/11624)
- Upgrade webOS OSE a bit from build 84 to 91 so that it doesn' t use the old ** libmpc** from ` meta-gplv2` . This allows many
components to be unblacklisted which weren' t available because of that (most importantly, `python3-cryptography`, used by
Expand All
@@ -960,17 +969,21 @@ ROS_SUPERFLORE_GENERATION_COMMIT = "<ROS-ROSDISTRO-COMMIT>"
**dashing**, and **eloquent**;
- `webos-image-ros-turtlebot3-all` (`DISTRO = "webos"`) builds successfully for `raspberrypi3` for **melodic**;
- The images pass the sanity tests.
- **COMPLETED**
### Milestone 10: Support latest releases of **melodic**, **crystal**, and **dashing**
- Incremental generation of recipes for latest Melodic (2019-12-10) and get to build.
- Incremental generation of recipes for latest Dashing (2019-12-12) and get to build.
- Incremental generation of recipes for latest Crystal (2019-12-12) and get to build.
### Milestone 10: Support latest releases of **melodic**, **crystal**, **dashing**, and **eloquent**
- Generate recipes for the latest **melodic** release (2019-12-10) and update its `.bbappend`-s so that it builds.
- Generate recipes for the latest **crystal** release (2019-12-12) and update its `.bbappend`-s so that it builds.
- Generate recipes for the latest **dashing** release (2019-12-12) and update its `.bbappend`-s so that it builds.
- Generate recipes for the latest **eloquent** release (2019-12-14) and update its `.bbappend`-s so that it builds.
- Move the recipes for components found in `files/<ROS_DISTRO>/newer-platform-components.list` to
`meta-ros-common/recipes-infrastructure`.
- Update the recipes for new versions of the infrastructure packages found in `newer-platform-components.list`.
- Have `ros-generate-cache.sh` write its version to the line 1 comments of `cache.* `and have `ros-generate-recipes` write its
- Have `ros-generate-cache.sh` write its version to the line 1 comments of `cache.* `and have `ros-generate-recipes.sh ` write its
version to a variable `ROS_GENERATE_RECIPES_PROGRAM_VERSION` appended to `superflore-ros-distro.inc`.
- Done when:
- `ros-image-world` (`DISTRO = "ros2"`) and `webos-image-ros-world` (`DISTRO = "webos"`) build successfully for `qemux86` and
`raspberrypi3` for **crystal**, and **dashing **;
`raspberrypi3` for **crystal**, **dashing**, and **eloquent **;
- `ros-image-turtlebot3-all` (`DISTRO = "ros1"`) and `webos-image-ros-turtlebot3-all` (`DISTRO = "webos"`) build
successfully for `raspberrypi3` for **melodic**;
- The images pass the sanity tests.
Expand All
@@ -988,6 +1001,9 @@ ROS_SUPERFLORE_GENERATION_COMMIT = "<ROS-ROSDISTRO-COMMIT>"
- Update the version differences tables for the platform packages provided by **warrior**.
- Update the tables in [REP-2000](https://www.ros.org/reps/rep-2000.html) for **warrior**.
- Add **swupdate** items to `meta-ros-webos/files/examples/webos-device-config/v1/rc.local`.
- Change the repo used to determine the OE version portion of `DISTRO_VERSION` for `DISTRO = "ros1"` and `DISTRO = "ros2"` from
`git.yoctoproject.org/poky.git` to `github.com/openembedded/openembedded-core.git` for OE-Core release series **warrior** and
later.
- Done when:
- `ros-image-world` (`DISTRO = "ros2"`) and `webos-image-ros-world` (`DISTRO = "webos"`) build successfully for `qemux86` and
`raspberrypi3` for **crystal**, and **dashing**, and **eloquent**;
Expand All
@@ -998,8 +1014,8 @@ ROS_SUPERFLORE_GENERATION_COMMIT = "<ROS-ROSDISTRO-COMMIT>"
- Document what was done on a **How to Support a New OpenEmbedded Release** wiki page.
### Milestone 12: Implement layer version 3 (phase 2)
- Implement the items under **Phase 2** in the **Layer Version 3** section. If it turns out that **superflore** changes are
required, consider them to be ROS_SUPERFLORE_GENERATION_SCHEME 3.
- Implement the remainder items under **Phase 2** in the **Layer Version 3** section. If it turns out that **superflore** changes
are required, consider them to be ROS_SUPERFLORE_GENERATION_SCHEME 3.
- Support building from a locally modified source tree: add `inherit ${@ ' externalsrc' if d.getVar(' EXTERNALSRC' ) else ' ' }` to
`ros_componment.bbclass`. Support regenerating recipes when `package.xml` is modified: implement
`ros-generate-recipes --from-local-source /path/to/package.xml`.
Expand All
@@ -1020,7 +1036,7 @@ ROS_SUPERFLORE_GENERATION_COMMIT = "<ROS-ROSDISTRO-COMMIT>"
- The images pass the sanity tests.
### Milestone 13: Cleanup
- Finalize the commits (remove `DRAFT`, etc).
- Finalize the commits (remove `DRAFT`, fix up messages with `XXX`, etc).
- Finalize the `DISTRO_FEATURES` and `IMAGE_FEATURES` values; drop the `-trial` from them.
- Rename the branches to not be suffixed with `-draft`.
- Determine the root cause as to why the dependencies from `package.xml` are not always correct.
Expand Down
Expand Up
@@ -1182,6 +1198,15 @@ ROS_SUPERFLORE_GENERATION_COMMIT = "<ROS-ROSDISTRO-COMMIT>"
# # Change Log
# ## Revision 45
- Add supporting the latest ** eloquent** release to Milestone 10.
- Add moving the recipes for the components found in ` files/< ROS_DISTRO> /newer-platform-components.list` to Milestone 10.
- Change how the OE version portion of ` DISTRO_VERSION` for ` DISTRO = " ros1" ` and ` DISTRO = " ros2" ` is determined for OE-Core
release series ** warrior** and later.
- Add the missing layer version 3 mapping for ` recipes-core/packagegroups/packagegroup-ros-world-< ROS_DISTRO> .inc` .
- Indicate that Milestones 8 and 9 have been completed.
- Change how completed milestones are indicated so that their links aren' t changed.
### Revision 44
- Update this document for the many changes introduced by layer version 3.
- Drop the **New Files and Changes to Existing Files** section because it describes the changes from version 1 to version 2.
Expand Down