summaryrefslogtreecommitdiffstats
path: root/meta-xilinx-demos/dynamic-layers
diff options
context:
space:
mode:
Diffstat (limited to 'meta-xilinx-demos/dynamic-layers')
-rw-r--r--meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-core/packagegroups/packagegroup-xilinx-jupyter.bb15
-rw-r--r--meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-example/pm-notebooks/files/LICENSE27
-rw-r--r--meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-example/pm-notebooks/pm-notebooks_1.0.bb36
-rw-r--r--meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyterlab/start-jupyterlab/jupyter-setup.service10
-rwxr-xr-xmeta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyterlab/start-jupyterlab/jupyter-setup.sh119
-rw-r--r--meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyterlab/start-jupyterlab/jupyter_server_config.py5
-rw-r--r--meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyterlab/start-jupyterlab/overrides.json5
-rwxr-xr-xmeta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyterlab/start-jupyterlab/start-jupyter.sh37
-rw-r--r--meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyterlab/start-jupyterlab_1.0.bb66
-rw-r--r--meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyternb/start-jupyternb/jupyter-setup.service10
-rwxr-xr-xmeta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyternb/start-jupyternb/jupyter-setup.sh119
-rw-r--r--meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyternb/start-jupyternb/jupyter-variables.sh2
-rw-r--r--meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyternb/start-jupyternb/jupyter_notebook_config.py5
-rwxr-xr-xmeta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyternb/start-jupyternb/start-jupyter.sh40
-rw-r--r--meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyternb/start-jupyternb_1.0.bb54
-rw-r--r--meta-xilinx-demos/dynamic-layers/meta-openamp/recipes-example/openamp/openamp-demo-notebooks_0.1.bb32
-rw-r--r--meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros-common/recipes-core/packagegroups/packagegroup-xilinx-ros.bb167
-rw-r--r--meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros2-jazzy/recipes-bbappends/ament-lint/ament-flake8_0.17.0-2.bbappend9
-rw-r--r--meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros2-jazzy/recipes-bbappends/common-interfaces/sensor-msgs-py_%.bbappend1
-rw-r--r--meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros2-jazzy/recipes-bbappends/orocos-kdl-vendor/orocos-kdl-vendor_%.bbappend2
-rw-r--r--meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros2-jazzy/recipes-bbappends/rosbag2/liblz4-vendor_%.bbappend4
-rw-r--r--meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros2-jazzy/recipes-bbappends/rosbag2/mcap-vendor/0001-fix-include-dir.patch27
-rw-r--r--meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros2-jazzy/recipes-bbappends/rosbag2/mcap-vendor_%.bbappend6
-rw-r--r--meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros2-jazzy/recipes-bbappends/rosbag2/rosbag2-compression-zstd_%.bbappend2
-rw-r--r--meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros2-jazzy/recipes-bbappends/rosbag2/shared-queues-vendor_%.bbappend2
-rw-r--r--meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros2-jazzy/recipes-bbappends/yaml-cpp-vendor/yaml-cpp-vendor_%.bbappend1
26 files changed, 803 insertions, 0 deletions
diff --git a/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-core/packagegroups/packagegroup-xilinx-jupyter.bb b/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-core/packagegroups/packagegroup-xilinx-jupyter.bb
new file mode 100644
index 00000000..efc1b543
--- /dev/null
+++ b/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-core/packagegroups/packagegroup-xilinx-jupyter.bb
@@ -0,0 +1,15 @@
1DESCRIPTION = "Required packges for running jupyter notebook with python3 "
2
3inherit packagegroup
4
5JUPYTER_NOTEBOOK_PACKAGES = " \
6 packagegroup-python3-jupyter \
7 python3-core \
8 python3-ipywidgets \
9 python3-pydot \
10 liberation-fonts \
11 ttf-bitstream-vera \
12 start-jupyter \
13 "
14
15RDEPENDS:${PN} = "${JUPYTER_NOTEBOOK_PACKAGES}"
diff --git a/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-example/pm-notebooks/files/LICENSE b/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-example/pm-notebooks/files/LICENSE
new file mode 100644
index 00000000..e09f3af7
--- /dev/null
+++ b/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-example/pm-notebooks/files/LICENSE
@@ -0,0 +1,27 @@
1Copyright (c) 2019, Xilinx
2All rights reserved.
3
4Redistribution and use in source and binary forms, with or without
5modification, are permitted provided that the following conditions are met:
6
7* Redistributions of source code must retain the above copyright notice, this
8 list of conditions and the following disclaimer.
9
10* Redistributions in binary form must reproduce the above copyright notice,
11 this list of conditions and the following disclaimer in the documentation
12 and/or other materials provided with the distribution.
13
14* Neither the name of the copyright holder nor the names of its
15 contributors may be used to endorse or promote products derived from
16 this software without specific prior written permission.
17
18THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
22FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
25CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
26OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-example/pm-notebooks/pm-notebooks_1.0.bb b/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-example/pm-notebooks/pm-notebooks_1.0.bb
new file mode 100644
index 00000000..2c00c316
--- /dev/null
+++ b/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-example/pm-notebooks/pm-notebooks_1.0.bb
@@ -0,0 +1,36 @@
1DESCRIPTION = "Jupyter notebook examples for Platform Management (PM) in Versal devices"
2LICENSE = "BSD-3-Clause"
3LIC_FILES_CHKSUM = "file://../../LICENSE;md5=268f2517fdae6d70f4ea4c55c4090aa8"
4
5inherit jupyter-examples
6
7SRC_URI = "git://github.com/Xilinx/platform-management-notebooks.git;branch=xlnx_rel_v2023.2;protocol=https \
8 file://LICENSE \
9 "
10
11SRCREV = "c502be361b6857e21ab903f31c9ead69e3a0d9ba"
12
13S = "${WORKDIR}/git/pm-notebooks"
14
15COMPATIBLE_MACHINE = "^$"
16COMPATIBLE_MACHINE:versal = "versal"
17COMPATIBLE_MACHINE:versal-net = "versal-net"
18
19RDEPENDS:${PN} = " \
20 packagegroup-xilinx-jupyter \
21 python3-ipywidgets \
22 python3-pydot \
23 graphviz \
24 "
25
26do_install() {
27 install -d ${D}/${JUPYTER_DIR}/pm-notebooks
28 install -d ${D}/${JUPYTER_DIR}/pm-notebooks/pmutil
29 install -d ${D}/${JUPYTER_DIR}/pm-notebooks/pmutil/data
30
31 install -m 0644 ${S}/README ${D}/${JUPYTER_DIR}/pm-notebooks
32 install -m 0755 ${S}/*.ipynb ${D}/${JUPYTER_DIR}/pm-notebooks
33 install -m 0755 ${S}/pmutil/*.py ${D}/${JUPYTER_DIR}/pm-notebooks/pmutil
34 install -m 0755 ${S}/pmutil/data/*.png ${D}/${JUPYTER_DIR}/pm-notebooks/pmutil/data
35}
36
diff --git a/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyterlab/start-jupyterlab/jupyter-setup.service b/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyterlab/start-jupyterlab/jupyter-setup.service
new file mode 100644
index 00000000..8f5c25e6
--- /dev/null
+++ b/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyterlab/start-jupyterlab/jupyter-setup.service
@@ -0,0 +1,10 @@
1[Unit]
2Description=jupyter setup scripts
3Requires=network-online.target
4After=network-online.target
5
6[Service]
7ExecStart=/sbin/start-jupyter.sh
8
9[Install]
10WantedBy=default.target
diff --git a/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyterlab/start-jupyterlab/jupyter-setup.sh b/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyterlab/start-jupyterlab/jupyter-setup.sh
new file mode 100755
index 00000000..f712c8ed
--- /dev/null
+++ b/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyterlab/start-jupyterlab/jupyter-setup.sh
@@ -0,0 +1,119 @@
1#!/bin/sh
2#/etc/init.d/jupyterlab-start: start jupyterlab daemon
3
4### BEGIN INIT INFO
5# Provides: jupyter-lab
6# Default-Start: 3 5
7# Default-Stop: 0 1 2 6
8# Short-Description: Start Jupyter Lab server as petalinux user
9### END INIT INFO
10
11OWNER="petalinux"
12GROUP="petalinux"
13HOME=`(cd ~petalinux && pwd) || echo 'none'`
14NBDIR="${HOME}/notebooks"
15
16DAEMON_PATH="/sbin/start-jupyter.sh"
17DAEMON_NAME=`basename $DAEMON_PATH`
18PIDFILE="/var/run/${DAEMON_NAME}.pid"
19
20PATH=/bin:/usr/bin:/sbin:/usr/sbin
21
22. /etc/init.d/functions
23
24wait_for_ip() {
25 echo -n "Waiting for IP address..."
26
27 for i in {1..20}
28 do
29 echo -n "."
30 ip=$(ip -4 addr show eth0 | grep -oE "inet ([0-9]{1,3}[\.]){3}[0-9]{1,3}" | cut -d ' ' -f2)
31 [ -n "$ip" ] && break
32 if [ -d /sys/class/net/eth1 ]; then
33 ip=$(ip -4 addr show eth1 | grep -oE "inet ([0-9]{1,3}[\.]){3}[0-9]{1,3}" | cut -d ' ' -f2)
34 [ -n "$ip" ] && break
35 fi
36 sleep 2
37 done
38
39 if [ -z $ip ]; then
40 echo " TIMEOUT"
41 else
42 echo " SUCCESS"
43 fi
44}
45
46log_begin_msg() {
47 echo -n $*
48}
49
50log_end_msg() {
51 if [ "$1" = "0" ]; then
52 echo ' OK'
53 else
54 echo ' ERROR'
55 fi
56}
57
58log_daemon_msg() {
59 echo $*
60}
61
62log_progress_msg() {
63 echo $*
64}
65
66test -x $DAEMON_PATH || exit 0
67
68case "$1" in
69 start)
70 log_begin_msg "Starting jupyter-lab server daemon... "
71
72 # Various jupter paths are incorrect if this daemon is run as part of the
73 # init process. Override the directories with these environment variables.
74 export JUPYTER_CONFIG_DIR="${HOME}/.jupyter"
75 export JUPYTER_DATA_DIR="${HOME}/.local/share/jupyter"
76 export JUPYTER_RUNTIME_DIR="${HOME}/.local/share/jupyter/runtime"
77 export HOME="${HOME}"
78
79 # check owner and group are valid
80 id $OWNER > /dev/null 2>&1
81 if [ "$?" = "1" ]; then echo "'$OWNER': no such owner... ERROR" ; exit 1 ; fi
82 grep $GROUP /etc/group > /dev/null
83 if [ "$?" = "1" ]; then echo "'$GROUP': no such group... ERROR" ; exit 1 ; fi
84
85 # create nb dir if it doesn't exist
86 if [ ! -d "$NBDIR" ] ; then install -o $OWNER -g $GROUP -d $NBDIR ; fi
87
88 # start the daemon
89 wait_for_ip
90 start-stop-daemon -S -c $OWNER:$GROUP -m -p $PIDFILE -x $DAEMON_NAME &
91 log_end_msg $?
92 ;;
93
94 stop)
95 log_begin_msg "Stopping jupyter-lab server daemon..."
96 start-stop-daemon -K -q -p $PIDFILE
97 log_end_msg $?
98 ;;
99
100 restart)
101 $0 force-reload
102 ;;
103
104 force-reload)
105 log_daemon_msg "Restarting jupyter-lab server daemon"
106 $0 stop
107 $0 start
108 ;;
109
110 status)
111 status $DAEMON_PATH
112 ;;
113
114 *)
115 echo "usage: $0 {start|stop|restart|force-reload|status}"
116 exit 1
117esac
118
119exit 0
diff --git a/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyterlab/start-jupyterlab/jupyter_server_config.py b/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyterlab/start-jupyterlab/jupyter_server_config.py
new file mode 100644
index 00000000..7cca31e7
--- /dev/null
+++ b/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyterlab/start-jupyterlab/jupyter_server_config.py
@@ -0,0 +1,5 @@
1c.ServerApp.port = 8888
2c.ServerApp.iopub_data_rate_limit = 100000000
3c.ServerApp.allow_root=True
4c.ServerApp.open_browser=False
5
diff --git a/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyterlab/start-jupyterlab/overrides.json b/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyterlab/start-jupyterlab/overrides.json
new file mode 100644
index 00000000..3d39e80e
--- /dev/null
+++ b/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyterlab/start-jupyterlab/overrides.json
@@ -0,0 +1,5 @@
1{
2 "@jupyterlab/apputils-extension:themes": {
3 "theme": "JupyterLab Dark"
4 }
5}
diff --git a/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyterlab/start-jupyterlab/start-jupyter.sh b/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyterlab/start-jupyterlab/start-jupyter.sh
new file mode 100755
index 00000000..0a8d737a
--- /dev/null
+++ b/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyterlab/start-jupyterlab/start-jupyter.sh
@@ -0,0 +1,37 @@
1#!/bin/bash
2#*******************************************************************************
3#
4# Copyright (C) 2019 Xilinx, Inc. All rights reserved.
5#
6# Permission is hereby granted, free of charge, to any person obtaining
7# a copy of this software and associated documentation files (the
8# "Software"), to deal in the Software without restriction, including
9# without limitation the rights to use, copy, modify, merge, publish,
10# distribute, sublicense, and/or sell copies of the Software, and to
11# permit persons to whom the Software is furnished to do so, subject to the following conditions:
12#
13# The above copyright notice and this permission notice shall be
14# included in all copies or substantial portions of the Software.
15#
16# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
20# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
21# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
22# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23#
24#**********************************************************************
25
26ip=$(ip -4 addr show eth0 | grep -oE "inet ([0-9]{1,3}[\.]){3}[0-9]{1,3}" | cut -d ' ' -f2)
27
28if [ -z "$ip" ] && [ -d /sys/class/net/eth1 ] ; then
29 ip=$(ip -4 addr show eth1 | grep -oE "inet ([0-9]{1,3}[\.]){3}[0-9]{1,3}" | cut -d ' ' -f2)
30fi
31
32if [ -z $ip ]; then
33 echo "ERROR: Invalid IP address"
34 exit 1
35fi
36
37jupyter-lab --no-browser --allow-root --ip=$ip
diff --git a/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyterlab/start-jupyterlab_1.0.bb b/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyterlab/start-jupyterlab_1.0.bb
new file mode 100644
index 00000000..240e8267
--- /dev/null
+++ b/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyterlab/start-jupyterlab_1.0.bb
@@ -0,0 +1,66 @@
1#
2# This is the jupyter-lab startup daemon
3#
4
5SUMMARY = "Start Jupyter-lab server at system boot"
6
7SRC_URI = " \
8 file://jupyter_server_config.py \
9 file://jupyter-setup.sh \
10 file://jupyter-setup.service \
11 file://overrides.json \
12 file://start-jupyter.sh \
13 "
14
15LICENSE = "MIT"
16LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
17
18JUPYTER_STARTUP_PACKAGES += " \
19 python3-jupyterlab \
20 bash \
21 procps \
22 "
23
24RDEPENDS:${PN} = " ${JUPYTER_STARTUP_PACKAGES}"
25
26PROVIDES = "start-jupyter"
27RPROVIDES:${PN} = "start-jupyter"
28
29inherit update-rc.d systemd
30
31INITSCRIPT_NAME = "jupyter-setup.sh"
32INITSCRIPT_PARAMS = "start 99 3 5 . stop 20 0 1 2 6 ."
33
34SYSTEMD_PACKAGES="${PN}"
35SYSTEMD_SERVICE:${PN}="jupyter-setup.service"
36SYSTEMD_AUTO_ENABLE:${PN}="disable"
37
38S = "${WORKDIR}"
39
40do_install() {
41 install -d ${D}${datadir}/jupyter/lab/settings
42 install -m 0644 ${WORKDIR}/overrides.json ${D}${datadir}/jupyter/lab/settings/
43
44 if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
45 install -d ${D}${sysconfdir}/init.d/
46 install -m 0755 ${WORKDIR}/jupyter-setup.sh ${D}${sysconfdir}/init.d/jupyter-setup.sh
47 fi
48
49 install -d ${D}${systemd_system_unitdir}
50 install -m 0644 ${WORKDIR}/jupyter-setup.service ${D}${systemd_system_unitdir}
51
52 install -d ${D}${systemd_user_unitdir}
53 install -m 0644 ${WORKDIR}/jupyter-setup.service ${D}${systemd_user_unitdir}
54
55 install -d ${D}${base_sbindir}
56 install -m 0755 ${WORKDIR}/start-jupyter.sh ${D}${base_sbindir}/start-jupyter.sh
57
58 install -d ${D}${sysconfdir}/jupyter/
59 install -m 0644 ${WORKDIR}/jupyter_server_config.py ${D}${sysconfdir}/jupyter
60}
61
62FILES:${PN} += " \
63 ${base_sbindir} \
64 ${datadir}/jupyter/lab/settings \
65 ${systemd_user_unitdir} \
66 "
diff --git a/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyternb/start-jupyternb/jupyter-setup.service b/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyternb/start-jupyternb/jupyter-setup.service
new file mode 100644
index 00000000..8f5c25e6
--- /dev/null
+++ b/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyternb/start-jupyternb/jupyter-setup.service
@@ -0,0 +1,10 @@
1[Unit]
2Description=jupyter setup scripts
3Requires=network-online.target
4After=network-online.target
5
6[Service]
7ExecStart=/sbin/start-jupyter.sh
8
9[Install]
10WantedBy=default.target
diff --git a/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyternb/start-jupyternb/jupyter-setup.sh b/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyternb/start-jupyternb/jupyter-setup.sh
new file mode 100755
index 00000000..7084f8a2
--- /dev/null
+++ b/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyternb/start-jupyternb/jupyter-setup.sh
@@ -0,0 +1,119 @@
1#!/bin/sh
2### BEGIN INIT INFO
3# Provides:
4# Required-Start: $remote_fs $syslog
5# Required-Stop: $remote_fs $syslog
6# Default-Start: 2 3 4 5
7# Default-Stop: 0 1 6
8# Short-Description: Start daemon at boot time
9# Description: Enable service provided by daemon.
10### END INIT INFO
11
12dir=""
13cmd="start-jupyter.sh"
14user=""
15
16name="jupyter-setup"
17pid_file="/var/run/$name.pid"
18stdout_log="/var/log/$name.log"
19stderr_log="/var/log/$name.err"
20
21wait_for_ip() {
22 echo -n "Waiting for IP address..."
23
24 for i in {1..20}
25 do
26 echo -n "."
27 ip=$(ip -4 addr show eth0 | grep -oE "inet ([0-9]{1,3}[\.]){3}[0-9]{1,3}" | cut -d ' ' -f2)
28 [ -n "$ip" ] && break
29 if [ -d /sys/class/net/eth1 ]; then
30 ip=$(ip -4 addr show eth1 | grep -oE "inet ([0-9]{1,3}[\.]){3}[0-9]{1,3}" | cut -d ' ' -f2)
31 [ -n "$ip" ] && break
32 fi
33 sleep 2
34 done
35
36 if [ -z $ip ]; then
37 echo " TIMEOUT"
38 else
39 echo " SUCCESS"
40 fi
41}
42
43get_pid() {
44 cat "$pid_file"
45}
46
47is_running() {
48 [ -f "$pid_file" ] && (ps -o"pid" | grep '^ '`get_pid`'$') > /dev/null 2>&1
49}
50
51case "$1" in
52 start)
53 if is_running; then
54 echo "Already started"
55 else
56 echo "Starting $name"
57 cd "$dir"
58 wait_for_ip
59 $cmd &
60 echo $! > "$pid_file"
61 if ! is_running; then
62 echo "Unable to start, see $stdout_log and $stderr_log"
63 exit 1
64 fi
65 fi
66 ;;
67 stop)
68 if is_running; then
69 echo -n "Stopping $name.."
70 kill `get_pid`
71 for i in 1 2 3 4 5 6 7 8 9 10
72 # for i in `seq 10`
73 do
74 if ! is_running; then
75 break
76 fi
77
78 echo -n "."
79 sleep 1
80 done
81 echo
82
83 if is_running; then
84 echo "Not stopped; may still be shutting down or shutdown may have failed"
85 exit 1
86 else
87 echo "Stopped"
88 if [ -f "$pid_file" ]; then
89 rm "$pid_file"
90 fi
91 fi
92 else
93 echo "Not running"
94 fi
95 ;;
96 restart)
97 $0 stop
98 if is_running; then
99 echo "Unable to stop, will not attempt to start"
100 exit 1
101 fi
102 $0 start
103 ;;
104 status)
105 if is_running; then
106 echo "Running"
107 else
108 echo "Stopped"
109 exit 1
110 fi
111 ;;
112 *)
113 echo "Usage: $0 {start|stop|restart|status}"
114 exit 1
115 ;;
116esac
117
118exit 0
119
diff --git a/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyternb/start-jupyternb/jupyter-variables.sh b/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyternb/start-jupyternb/jupyter-variables.sh
new file mode 100644
index 00000000..0ab9dc6b
--- /dev/null
+++ b/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyternb/start-jupyternb/jupyter-variables.sh
@@ -0,0 +1,2 @@
1#!/bin/bash
2export BOARD="PLACEHOLDER"
diff --git a/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyternb/start-jupyternb/jupyter_notebook_config.py b/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyternb/start-jupyternb/jupyter_notebook_config.py
new file mode 100644
index 00000000..1a7a6961
--- /dev/null
+++ b/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyternb/start-jupyternb/jupyter_notebook_config.py
@@ -0,0 +1,5 @@
1c.NotebookApp.notebook_dir = '/usr/share/example-notebooks'
2c.NotebookApp.allow_root=True
3c.NotebookApp.open_browser=False
4
5
diff --git a/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyternb/start-jupyternb/start-jupyter.sh b/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyternb/start-jupyternb/start-jupyter.sh
new file mode 100755
index 00000000..3db0ca13
--- /dev/null
+++ b/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyternb/start-jupyternb/start-jupyter.sh
@@ -0,0 +1,40 @@
1#!/bin/bash
2#*******************************************************************************
3#
4# Copyright (C) 2019 Xilinx, Inc. All rights reserved.
5#
6# Permission is hereby granted, free of charge, to any person obtaining
7# a copy of this software and associated documentation files (the
8# "Software"), to deal in the Software without restriction, including
9# without limitation the rights to use, copy, modify, merge, publish,
10# distribute, sublicense, and/or sell copies of the Software, and to
11# permit persons to whom the Software is furnished to do so, subject to the following conditions:
12#
13# The above copyright notice and this permission notice shall be
14# included in all copies or substantial portions of the Software.
15#
16# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
20# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
21# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
22# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23#
24#**********************************************************************
25
26
27ip=$(ip -4 addr show eth0 | grep -oE "inet ([0-9]{1,3}[\.]){3}[0-9]{1,3}" | cut -d ' ' -f2)
28
29if [ -z "$ip" ] && [ -d /sys/class/net/eth1 ] ; then
30 ip=$(ip -4 addr show eth1 | grep -oE "inet ([0-9]{1,3}[\.]){3}[0-9]{1,3}" | cut -d ' ' -f2)
31fi
32
33if [ -z $ip ]; then
34 echo "ERROR: Invalid IP address"
35 exit 1
36fi
37
38jupyter nbextension enable --py widgetsnbextension
39jupyter notebook --no-browser --allow-root --ip=$ip
40
diff --git a/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyternb/start-jupyternb_1.0.bb b/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyternb/start-jupyternb_1.0.bb
new file mode 100644
index 00000000..42cae9c5
--- /dev/null
+++ b/meta-xilinx-demos/dynamic-layers/meta-jupyter/recipes-utils/start-jupyternb/start-jupyternb_1.0.bb
@@ -0,0 +1,54 @@
1SUMMARY = "Start Jupyter at system boot"
2
3SRC_URI = " file://start-jupyter.sh \
4 file://jupyter-setup.sh \
5 file://jupyter_notebook_config.py \
6 file://jupyter-setup.service \
7 "
8
9LICENSE = "Proprietary"
10LIC_FILES_CHKSUM = "file://start-jupyter.sh;beginline=2;endline=24;md5=f29b6e59838b939312f578e77087ada3"
11
12JUPYTER_STARTUP_PACKAGES += " \
13 python3-jupyter-core \
14 bash \
15 "
16
17inherit update-rc.d systemd
18PROVIDES = "start-jupyter"
19RPROVIDES:${PN} = "start-jupyter"
20
21RDEPENDS:${PN} = " ${JUPYTER_STARTUP_PACKAGES}"
22
23INITSCRIPT_NAME = "jupyter-setup.sh"
24INITSCRIPT_PARAMS = "start 99 S ."
25
26SYSTEMD_PACKAGES="${PN}"
27SYSTEMD_SERVICE:${PN}="jupyter-setup.service"
28SYSTEMD_AUTO_ENABLE:${PN}="disable"
29
30S = "${WORKDIR}"
31
32FILES:${PN} += "${base_sbindir} ${systemd_user_unitdir} ${datadir}"
33
34do_install() {
35
36 if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
37 install -d ${D}${sysconfdir}/init.d/
38 install -m 0755 ${WORKDIR}/jupyter-setup.sh ${D}${sysconfdir}/init.d/jupyter-setup.sh
39 fi
40
41 install -d ${D}${systemd_system_unitdir}
42 install -m 0644 ${WORKDIR}/jupyter-setup.service ${D}${systemd_system_unitdir}
43
44 install -d ${D}${systemd_user_unitdir}
45 install -m 0644 ${WORKDIR}/jupyter-setup.service ${D}${systemd_user_unitdir}
46
47 install -d ${D}${base_sbindir}
48 install -m 0755 ${WORKDIR}/start-jupyter.sh ${D}${base_sbindir}/start-jupyter.sh
49
50 install -d ${D}${sysconfdir}/jupyter/
51 install -m 0644 ${WORKDIR}/jupyter_notebook_config.py ${D}${sysconfdir}/jupyter
52
53 install -d ${D}${datadir}/example-notebooks
54}
diff --git a/meta-xilinx-demos/dynamic-layers/meta-openamp/recipes-example/openamp/openamp-demo-notebooks_0.1.bb b/meta-xilinx-demos/dynamic-layers/meta-openamp/recipes-example/openamp/openamp-demo-notebooks_0.1.bb
new file mode 100644
index 00000000..4c4ff2d8
--- /dev/null
+++ b/meta-xilinx-demos/dynamic-layers/meta-openamp/recipes-example/openamp/openamp-demo-notebooks_0.1.bb
@@ -0,0 +1,32 @@
1DESCRIPTION = "Jupyter notebooks for openAMP"
2LICENSE = "BSD-3-Clause"
3LIC_FILES_CHKSUM = "file://LICENSE;md5=268f2517fdae6d70f4ea4c55c4090aa8"
4
5inherit jupyter-examples
6
7REPO ?= "git://github.com/Xilinx/OpenAMP-notebooks.git;protocol=https"
8SRCREV ?= "30b76d864261e5dd321fadfaf74b933b7cd88892"
9BRANCH ?= "main"
10BRANCHARG = "${@['nobranch=1', 'branch=${BRANCH}'][d.getVar('BRANCH') != '']}"
11SRC_URI = "${REPO};${BRANCHARG}"
12PV .= "+git"
13S = "${WORKDIR}/git/openamp"
14
15COMPATIBLE_MACHINE = "^$"
16COMPATIBLE_MACHINE:zynqmp = "zynqmp"
17COMPATIBLE_MACHINE:versal = "versal"
18COMPATIBLE_MACHINE:versal-net = "versal-net"
19
20DEPENDS += " packagegroup-xilinx-jupyter \
21 packagegroup-openamp"
22
23RDEPENDS:${PN} = " packagegroup-xilinx-jupyter \
24 packagegroup-openamp"
25
26do_install() {
27 install -d ${D}/${JUPYTER_DIR}/openamp-notebooks
28 install -d ${D}/${JUPYTER_DIR}/openamp-notebooks/pics
29
30 install -m 0755 ${S}/*.ipynb ${D}/${JUPYTER_DIR}/openamp-notebooks
31 install -m 0755 ${S}/pics/*.png ${D}/${JUPYTER_DIR}/openamp-notebooks/pics
32}
diff --git a/meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros-common/recipes-core/packagegroups/packagegroup-xilinx-ros.bb b/meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros-common/recipes-core/packagegroups/packagegroup-xilinx-ros.bb
new file mode 100644
index 00000000..30237599
--- /dev/null
+++ b/meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros-common/recipes-core/packagegroups/packagegroup-xilinx-ros.bb
@@ -0,0 +1,167 @@
1DESCRIPTION = "Packages for ROS2 Base and Demos including some basic pub/sub examples"
2
3PACKAGE_ARCH = "${TUNE_PKGARCH}"
4
5inherit packagegroup
6inherit ros_distro_${ROS_DISTRO}
7
8PROVIDES = "${PACKAGES}"
9
10PACKAGES += "${PN}-base ${PN}-demo ${PN}-control"
11
12SUMMARY:${PN}-dev = "ROS packages required for on target development"
13ROS_BUILDESSENTIAL_PACKAGES = "\
14 ament-lint-auto \
15 ament-cmake-auto \
16 ament-cmake-core \
17 ament-cmake-cppcheck \
18 ament-cmake-cpplint \
19 ament-cmake-export-definitions \
20 ament-cmake-export-dependencies \
21 ament-cmake-export-include-directories \
22 ament-cmake-export-interfaces \
23 ament-cmake-export-libraries \
24 ament-cmake-export-link-flags \
25 ament-cmake-export-targets \
26 ament-cmake-gmock \
27 ament-cmake-gtest \
28 ament-cmake-include-directories \
29 ament-cmake-libraries \
30 ament-cmake \
31 ament-cmake-pytest \
32 ament-cmake-python \
33 ament-cmake-ros \
34 ament-cmake-target-dependencies \
35 ament-cmake-test \
36 ament-cmake-version \
37 ament-cmake-uncrustify \
38 ament-cmake-flake8 \
39 ament-cmake-pep257 \
40 ament-copyright \
41 ament-cpplint \
42 ament-flake8 \
43 ament-index-python \
44 ament-lint-cmake \
45 ament-mypy \
46 ament-package \
47 ament-pclint \
48 ament-pep257 \
49 ament-pycodestyle \
50 ament-pyflakes \
51 ament-uncrustify \
52 ament-xmllint \
53 cmake \
54 eigen3-cmake-module \
55 fastcdr \
56 fastrtps-cmake-module \
57 fastrtps \
58 foonathan-memory-vendor \
59 gmock-vendor \
60 gtest-vendor \
61 libyaml \
62 libyaml-vendor \
63 packagegroup-core-buildessential \
64 python-cmake-module \
65 python3-catkin-pkg \
66 python3-colcon-common-extensions \
67 python3-empy \
68 python3 \
69 python3-pytest \
70 rcutils \
71 rmw-implementation-cmake \
72 rosidl-cmake \
73 rosidl-default-generators \
74 rosidl-generator-c \
75 rosidl-generator-cpp \
76 rosidl-generator-dds-idl \
77 rosidl-generator-py \
78 rosidl-parser \
79 rosidl-runtime-c \
80 rosidl-runtime-cpp \
81 rosidl-typesupport-c \
82 rosidl-typesupport-cpp \
83 rosidl-typesupport-fastrtps-cpp \
84 rosidl-typesupport-interface \
85 rosidl-typesupport-introspection-c \
86 rosidl-typesupport-introspection-cpp \
87"
88
89SUMMARY:${PN}-base = "ROS_BASE_PACKAGES includes ROS base packages"
90ROS_BASE_PACKAGES = "\
91 ros-base \
92 cyclonedds \
93 rmw-cyclonedds-cpp \
94 tmux \
95 python3-argcomplete \
96 glibc-utils \
97 localedef \
98 rt-tests \
99 stress \
100 xrt-dev \
101 xrt \
102 kernel-module-zocl \
103 opencl-headers-dev \
104 opencl-clhpp-dev \
105"
106
107SUMMARY:${PN}-demo = "ROS_DEMO_PACKAGES includes ROS examples demos packages"
108ROS_DEMO_PACKAGES = "\
109 examples-rclcpp-minimal-action-client \
110 examples-rclcpp-minimal-action-server \
111 examples-rclcpp-minimal-client \
112 examples-rclcpp-minimal-composition \
113 examples-rclcpp-minimal-publisher \
114 examples-rclcpp-minimal-service \
115 examples-rclcpp-minimal-subscriber \
116 examples-rclcpp-minimal-timer \
117 examples-rclcpp-multithreaded-executor \
118 examples-rclpy-executors \
119 examples-rclpy-minimal-action-server \
120 examples-rclpy-minimal-client \
121 examples-rclpy-minimal-publisher \
122 examples-rclpy-minimal-service \
123 examples-rclpy-minimal-subscriber \
124 demo-nodes-cpp \
125 demo-nodes-cpp-rosnative \
126"
127
128SUMMARY:${PN}-control = "ROS_CONTROL_PACKAGES includes ROS control packages"
129ROS_CONTROL_PACKAGES = "\
130 controller-interface \
131 controller-manager \
132 controller-manager-msgs \
133 hardware-interface \
134 ros2-control \
135 ros2controlcli \
136 ros2-control-test-assets \
137 transmission-interface \
138"
139
140RDEPENDS:${PN}-base:aarch64 = "\
141 ${ROS_BASE_PACKAGES} \
142"
143
144RDEPENDS:${PN}-demo:aarch64 = "\
145 ${ROS_BASE_PACKAGES} \
146 ${ROS_DEMO_PACKAGES} \
147"
148
149#RDEPENDS:${PN}-control:aarch64 = "\
150# ${ROS_BASE_PACKAGES} \
151# ${ROS_CONTROL_PACKAGES} \
152#"
153
154RDEPENDS:${PN}-dev:aarch64 = "\
155 ${ROS_BUILDESSENTIAL_PACKAGES} \
156"
157
158# TODO
159# 1. Due to failing hardware-interfaces disable ${PN}-control
160
161RDEPENDS:${PN}:aarch64 = "\
162 ${PN}-demo \
163 rqt-runtime-monitor \
164"
165
166IMAGE_LINGUAS = "en-us"
167GLIBC_GENERATE_LOCALES = "en_US.UTF-8"
diff --git a/meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros2-jazzy/recipes-bbappends/ament-lint/ament-flake8_0.17.0-2.bbappend b/meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros2-jazzy/recipes-bbappends/ament-lint/ament-flake8_0.17.0-2.bbappend
new file mode 100644
index 00000000..c22346fa
--- /dev/null
+++ b/meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros2-jazzy/recipes-bbappends/ament-lint/ament-flake8_0.17.0-2.bbappend
@@ -0,0 +1,9 @@
1# Copyright (C) 2024 Advanced Micro Devices, Inc. All rights reserved.
2
3ROS_EXEC_DEPENDS:remove = " \
4 python3-flake8-builtins \
5 python3-flake8-comprehensions \
6 python3-flake8-docstrings \
7 python3-flake8-import-order \
8 python3-flake8-quotes \
9" \ No newline at end of file
diff --git a/meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros2-jazzy/recipes-bbappends/common-interfaces/sensor-msgs-py_%.bbappend b/meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros2-jazzy/recipes-bbappends/common-interfaces/sensor-msgs-py_%.bbappend
new file mode 100644
index 00000000..5c360dbe
--- /dev/null
+++ b/meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros2-jazzy/recipes-bbappends/common-interfaces/sensor-msgs-py_%.bbappend
@@ -0,0 +1 @@
LICENSE = "BSD-3-Clause"
diff --git a/meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros2-jazzy/recipes-bbappends/orocos-kdl-vendor/orocos-kdl-vendor_%.bbappend b/meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros2-jazzy/recipes-bbappends/orocos-kdl-vendor/orocos-kdl-vendor_%.bbappend
new file mode 100644
index 00000000..35f4207f
--- /dev/null
+++ b/meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros2-jazzy/recipes-bbappends/orocos-kdl-vendor/orocos-kdl-vendor_%.bbappend
@@ -0,0 +1,2 @@
1SRC_URI:remove = "file://0001-CMakeLists.txt-fetch-orocos-kdl-with-bitbake-fetcher.patch"
2SRCREV_release:forcevariable = "adca6201616af928533d70faea6042fe0239e898"
diff --git a/meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros2-jazzy/recipes-bbappends/rosbag2/liblz4-vendor_%.bbappend b/meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros2-jazzy/recipes-bbappends/rosbag2/liblz4-vendor_%.bbappend
new file mode 100644
index 00000000..f5378ca6
--- /dev/null
+++ b/meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros2-jazzy/recipes-bbappends/rosbag2/liblz4-vendor_%.bbappend
@@ -0,0 +1,4 @@
1LICENSE = "Apache-2.0 & BSD-3-Clause & GPL-2.0-only"
2ROS_EXEC_DEPENDS:remove = "${ROS_UNRESOLVED_DEP-liblz4}"
3DEPENDS:remove = "${ROS_UNRESOLVED_DEP-liblz4-dev}"
4INSANE_SKIP:${PN} += "dev-so"
diff --git a/meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros2-jazzy/recipes-bbappends/rosbag2/mcap-vendor/0001-fix-include-dir.patch b/meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros2-jazzy/recipes-bbappends/rosbag2/mcap-vendor/0001-fix-include-dir.patch
new file mode 100644
index 00000000..35650c23
--- /dev/null
+++ b/meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros2-jazzy/recipes-bbappends/rosbag2/mcap-vendor/0001-fix-include-dir.patch
@@ -0,0 +1,27 @@
1From f15236807f0b5ac96979840a12cd0be0c115f055 Mon Sep 17 00:00:00 2001
2From: Trevor Woerner <trevor.woerner@amd.com>
3Date: Thu, 12 Sep 2024 15:21:33 -0400
4Subject: [PATCH] fix include dir
5
6Upstream-Status: inappropriate
7Signed-off-by: Trevor Woerner <trevor.woerner@amd.com>
8---
9 CMakeLists.txt | 2 +-
10 1 file changed, 1 insertion(+), 1 deletion(-)
11
12diff --git a/CMakeLists.txt b/CMakeLists.txt
13index d5789b292025..e5e97fa9fa0f 100644
14--- a/CMakeLists.txt
15+++ b/CMakeLists.txt
16@@ -43,7 +43,7 @@ macro(build_mcap_vendor)
17 src/main.cpp
18 )
19
20- set(_mcap_include_dir ${mcap_SOURCE_DIR}/cpp/mcap/include)
21+ set(_mcap_include_dir ${mcap_vendor_SOURCE_DIR}/mcap/cpp/mcap/include)
22 file(GLOB _mcap_installed_headers ${_mcap_include_dir}/mcap/*.hpp)
23
24 target_include_directories(mcap PUBLIC
25--
262.44.0.478.g7774cfed6261
27
diff --git a/meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros2-jazzy/recipes-bbappends/rosbag2/mcap-vendor_%.bbappend b/meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros2-jazzy/recipes-bbappends/rosbag2/mcap-vendor_%.bbappend
new file mode 100644
index 00000000..dc63cf76
--- /dev/null
+++ b/meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros2-jazzy/recipes-bbappends/rosbag2/mcap-vendor_%.bbappend
@@ -0,0 +1,6 @@
1FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
2
3B = "${S}"
4SRC_URI:remove = "file://0001-CMakeLists.txt-fetch-dependencies-with-bitbake-fetch.patch"
5SRC_URI:append = " file://0001-fix-include-dir.patch"
6SRCREV_release:forcevariable = "6884e7ba7d29d8db98ad2bbf09a6875bf5141e19"
diff --git a/meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros2-jazzy/recipes-bbappends/rosbag2/rosbag2-compression-zstd_%.bbappend b/meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros2-jazzy/recipes-bbappends/rosbag2/rosbag2-compression-zstd_%.bbappend
new file mode 100644
index 00000000..b99de447
--- /dev/null
+++ b/meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros2-jazzy/recipes-bbappends/rosbag2/rosbag2-compression-zstd_%.bbappend
@@ -0,0 +1,2 @@
1SRC_URI:remove = "file://0001-CMakeLists.txt-drop-dependency-on-zstd_vendor.patch"
2SRCREV = "3f3c01609c3bef74cfc3f3229b0d57964c6bd465"
diff --git a/meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros2-jazzy/recipes-bbappends/rosbag2/shared-queues-vendor_%.bbappend b/meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros2-jazzy/recipes-bbappends/rosbag2/shared-queues-vendor_%.bbappend
new file mode 100644
index 00000000..69b50386
--- /dev/null
+++ b/meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros2-jazzy/recipes-bbappends/rosbag2/shared-queues-vendor_%.bbappend
@@ -0,0 +1,2 @@
1SRC_URI:remove = "file://0001-CMakeLists.txt-fetch-readerwriterqueue-and-concurren.patch"
2SRCREV_release:forcevariable = "fea3a738733673c927d77631a735157993ff6395"
diff --git a/meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros2-jazzy/recipes-bbappends/yaml-cpp-vendor/yaml-cpp-vendor_%.bbappend b/meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros2-jazzy/recipes-bbappends/yaml-cpp-vendor/yaml-cpp-vendor_%.bbappend
new file mode 100644
index 00000000..33e2a0c7
--- /dev/null
+++ b/meta-xilinx-demos/dynamic-layers/meta-ros/meta-ros2-jazzy/recipes-bbappends/yaml-cpp-vendor/yaml-cpp-vendor_%.bbappend
@@ -0,0 +1 @@
INSANE_SKIP:${PN} += "dev-so"