diff options
Diffstat (limited to 'meta-xilinx-demos/dynamic-layers')
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 @@ | |||
1 | DESCRIPTION = "Required packges for running jupyter notebook with python3 " | ||
2 | |||
3 | inherit packagegroup | ||
4 | |||
5 | JUPYTER_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 | |||
15 | RDEPENDS:${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 @@ | |||
1 | Copyright (c) 2019, Xilinx | ||
2 | All rights reserved. | ||
3 | |||
4 | Redistribution and use in source and binary forms, with or without | ||
5 | modification, 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 | |||
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | ||
19 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
20 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||
21 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE | ||
22 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
23 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | ||
24 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | ||
25 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | ||
26 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||
27 | OF 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 @@ | |||
1 | DESCRIPTION = "Jupyter notebook examples for Platform Management (PM) in Versal devices" | ||
2 | LICENSE = "BSD-3-Clause" | ||
3 | LIC_FILES_CHKSUM = "file://../../LICENSE;md5=268f2517fdae6d70f4ea4c55c4090aa8" | ||
4 | |||
5 | inherit jupyter-examples | ||
6 | |||
7 | SRC_URI = "git://github.com/Xilinx/platform-management-notebooks.git;branch=xlnx_rel_v2023.2;protocol=https \ | ||
8 | file://LICENSE \ | ||
9 | " | ||
10 | |||
11 | SRCREV = "c502be361b6857e21ab903f31c9ead69e3a0d9ba" | ||
12 | |||
13 | S = "${WORKDIR}/git/pm-notebooks" | ||
14 | |||
15 | COMPATIBLE_MACHINE = "^$" | ||
16 | COMPATIBLE_MACHINE:versal = "versal" | ||
17 | COMPATIBLE_MACHINE:versal-net = "versal-net" | ||
18 | |||
19 | RDEPENDS:${PN} = " \ | ||
20 | packagegroup-xilinx-jupyter \ | ||
21 | python3-ipywidgets \ | ||
22 | python3-pydot \ | ||
23 | graphviz \ | ||
24 | " | ||
25 | |||
26 | do_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] | ||
2 | Description=jupyter setup scripts | ||
3 | Requires=network-online.target | ||
4 | After=network-online.target | ||
5 | |||
6 | [Service] | ||
7 | ExecStart=/sbin/start-jupyter.sh | ||
8 | |||
9 | [Install] | ||
10 | WantedBy=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 | |||
11 | OWNER="petalinux" | ||
12 | GROUP="petalinux" | ||
13 | HOME=`(cd ~petalinux && pwd) || echo 'none'` | ||
14 | NBDIR="${HOME}/notebooks" | ||
15 | |||
16 | DAEMON_PATH="/sbin/start-jupyter.sh" | ||
17 | DAEMON_NAME=`basename $DAEMON_PATH` | ||
18 | PIDFILE="/var/run/${DAEMON_NAME}.pid" | ||
19 | |||
20 | PATH=/bin:/usr/bin:/sbin:/usr/sbin | ||
21 | |||
22 | . /etc/init.d/functions | ||
23 | |||
24 | wait_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 | |||
46 | log_begin_msg() { | ||
47 | echo -n $* | ||
48 | } | ||
49 | |||
50 | log_end_msg() { | ||
51 | if [ "$1" = "0" ]; then | ||
52 | echo ' OK' | ||
53 | else | ||
54 | echo ' ERROR' | ||
55 | fi | ||
56 | } | ||
57 | |||
58 | log_daemon_msg() { | ||
59 | echo $* | ||
60 | } | ||
61 | |||
62 | log_progress_msg() { | ||
63 | echo $* | ||
64 | } | ||
65 | |||
66 | test -x $DAEMON_PATH || exit 0 | ||
67 | |||
68 | case "$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 | ||
117 | esac | ||
118 | |||
119 | exit 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 @@ | |||
1 | c.ServerApp.port = 8888 | ||
2 | c.ServerApp.iopub_data_rate_limit = 100000000 | ||
3 | c.ServerApp.allow_root=True | ||
4 | c.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 | |||
26 | ip=$(ip -4 addr show eth0 | grep -oE "inet ([0-9]{1,3}[\.]){3}[0-9]{1,3}" | cut -d ' ' -f2) | ||
27 | |||
28 | if [ -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) | ||
30 | fi | ||
31 | |||
32 | if [ -z $ip ]; then | ||
33 | echo "ERROR: Invalid IP address" | ||
34 | exit 1 | ||
35 | fi | ||
36 | |||
37 | jupyter-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 | |||
5 | SUMMARY = "Start Jupyter-lab server at system boot" | ||
6 | |||
7 | SRC_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 | |||
15 | LICENSE = "MIT" | ||
16 | LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" | ||
17 | |||
18 | JUPYTER_STARTUP_PACKAGES += " \ | ||
19 | python3-jupyterlab \ | ||
20 | bash \ | ||
21 | procps \ | ||
22 | " | ||
23 | |||
24 | RDEPENDS:${PN} = " ${JUPYTER_STARTUP_PACKAGES}" | ||
25 | |||
26 | PROVIDES = "start-jupyter" | ||
27 | RPROVIDES:${PN} = "start-jupyter" | ||
28 | |||
29 | inherit update-rc.d systemd | ||
30 | |||
31 | INITSCRIPT_NAME = "jupyter-setup.sh" | ||
32 | INITSCRIPT_PARAMS = "start 99 3 5 . stop 20 0 1 2 6 ." | ||
33 | |||
34 | SYSTEMD_PACKAGES="${PN}" | ||
35 | SYSTEMD_SERVICE:${PN}="jupyter-setup.service" | ||
36 | SYSTEMD_AUTO_ENABLE:${PN}="disable" | ||
37 | |||
38 | S = "${WORKDIR}" | ||
39 | |||
40 | do_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 | |||
62 | FILES:${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] | ||
2 | Description=jupyter setup scripts | ||
3 | Requires=network-online.target | ||
4 | After=network-online.target | ||
5 | |||
6 | [Service] | ||
7 | ExecStart=/sbin/start-jupyter.sh | ||
8 | |||
9 | [Install] | ||
10 | WantedBy=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 | |||
12 | dir="" | ||
13 | cmd="start-jupyter.sh" | ||
14 | user="" | ||
15 | |||
16 | name="jupyter-setup" | ||
17 | pid_file="/var/run/$name.pid" | ||
18 | stdout_log="/var/log/$name.log" | ||
19 | stderr_log="/var/log/$name.err" | ||
20 | |||
21 | wait_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 | |||
43 | get_pid() { | ||
44 | cat "$pid_file" | ||
45 | } | ||
46 | |||
47 | is_running() { | ||
48 | [ -f "$pid_file" ] && (ps -o"pid" | grep '^ '`get_pid`'$') > /dev/null 2>&1 | ||
49 | } | ||
50 | |||
51 | case "$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 | ;; | ||
116 | esac | ||
117 | |||
118 | exit 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 | ||
2 | export 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 @@ | |||
1 | c.NotebookApp.notebook_dir = '/usr/share/example-notebooks' | ||
2 | c.NotebookApp.allow_root=True | ||
3 | c.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 | |||
27 | ip=$(ip -4 addr show eth0 | grep -oE "inet ([0-9]{1,3}[\.]){3}[0-9]{1,3}" | cut -d ' ' -f2) | ||
28 | |||
29 | if [ -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) | ||
31 | fi | ||
32 | |||
33 | if [ -z $ip ]; then | ||
34 | echo "ERROR: Invalid IP address" | ||
35 | exit 1 | ||
36 | fi | ||
37 | |||
38 | jupyter nbextension enable --py widgetsnbextension | ||
39 | jupyter 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 @@ | |||
1 | SUMMARY = "Start Jupyter at system boot" | ||
2 | |||
3 | SRC_URI = " file://start-jupyter.sh \ | ||
4 | file://jupyter-setup.sh \ | ||
5 | file://jupyter_notebook_config.py \ | ||
6 | file://jupyter-setup.service \ | ||
7 | " | ||
8 | |||
9 | LICENSE = "Proprietary" | ||
10 | LIC_FILES_CHKSUM = "file://start-jupyter.sh;beginline=2;endline=24;md5=f29b6e59838b939312f578e77087ada3" | ||
11 | |||
12 | JUPYTER_STARTUP_PACKAGES += " \ | ||
13 | python3-jupyter-core \ | ||
14 | bash \ | ||
15 | " | ||
16 | |||
17 | inherit update-rc.d systemd | ||
18 | PROVIDES = "start-jupyter" | ||
19 | RPROVIDES:${PN} = "start-jupyter" | ||
20 | |||
21 | RDEPENDS:${PN} = " ${JUPYTER_STARTUP_PACKAGES}" | ||
22 | |||
23 | INITSCRIPT_NAME = "jupyter-setup.sh" | ||
24 | INITSCRIPT_PARAMS = "start 99 S ." | ||
25 | |||
26 | SYSTEMD_PACKAGES="${PN}" | ||
27 | SYSTEMD_SERVICE:${PN}="jupyter-setup.service" | ||
28 | SYSTEMD_AUTO_ENABLE:${PN}="disable" | ||
29 | |||
30 | S = "${WORKDIR}" | ||
31 | |||
32 | FILES:${PN} += "${base_sbindir} ${systemd_user_unitdir} ${datadir}" | ||
33 | |||
34 | do_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 @@ | |||
1 | DESCRIPTION = "Jupyter notebooks for openAMP" | ||
2 | LICENSE = "BSD-3-Clause" | ||
3 | LIC_FILES_CHKSUM = "file://LICENSE;md5=268f2517fdae6d70f4ea4c55c4090aa8" | ||
4 | |||
5 | inherit jupyter-examples | ||
6 | |||
7 | REPO ?= "git://github.com/Xilinx/OpenAMP-notebooks.git;protocol=https" | ||
8 | SRCREV ?= "30b76d864261e5dd321fadfaf74b933b7cd88892" | ||
9 | BRANCH ?= "main" | ||
10 | BRANCHARG = "${@['nobranch=1', 'branch=${BRANCH}'][d.getVar('BRANCH') != '']}" | ||
11 | SRC_URI = "${REPO};${BRANCHARG}" | ||
12 | PV .= "+git" | ||
13 | S = "${WORKDIR}/git/openamp" | ||
14 | |||
15 | COMPATIBLE_MACHINE = "^$" | ||
16 | COMPATIBLE_MACHINE:zynqmp = "zynqmp" | ||
17 | COMPATIBLE_MACHINE:versal = "versal" | ||
18 | COMPATIBLE_MACHINE:versal-net = "versal-net" | ||
19 | |||
20 | DEPENDS += " packagegroup-xilinx-jupyter \ | ||
21 | packagegroup-openamp" | ||
22 | |||
23 | RDEPENDS:${PN} = " packagegroup-xilinx-jupyter \ | ||
24 | packagegroup-openamp" | ||
25 | |||
26 | do_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 @@ | |||
1 | DESCRIPTION = "Packages for ROS2 Base and Demos including some basic pub/sub examples" | ||
2 | |||
3 | PACKAGE_ARCH = "${TUNE_PKGARCH}" | ||
4 | |||
5 | inherit packagegroup | ||
6 | inherit ros_distro_${ROS_DISTRO} | ||
7 | |||
8 | PROVIDES = "${PACKAGES}" | ||
9 | |||
10 | PACKAGES += "${PN}-base ${PN}-demo ${PN}-control" | ||
11 | |||
12 | SUMMARY:${PN}-dev = "ROS packages required for on target development" | ||
13 | ROS_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 | |||
89 | SUMMARY:${PN}-base = "ROS_BASE_PACKAGES includes ROS base packages" | ||
90 | ROS_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 | |||
107 | SUMMARY:${PN}-demo = "ROS_DEMO_PACKAGES includes ROS examples demos packages" | ||
108 | ROS_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 | |||
128 | SUMMARY:${PN}-control = "ROS_CONTROL_PACKAGES includes ROS control packages" | ||
129 | ROS_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 | |||
140 | RDEPENDS:${PN}-base:aarch64 = "\ | ||
141 | ${ROS_BASE_PACKAGES} \ | ||
142 | " | ||
143 | |||
144 | RDEPENDS:${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 | |||
154 | RDEPENDS:${PN}-dev:aarch64 = "\ | ||
155 | ${ROS_BUILDESSENTIAL_PACKAGES} \ | ||
156 | " | ||
157 | |||
158 | # TODO | ||
159 | # 1. Due to failing hardware-interfaces disable ${PN}-control | ||
160 | |||
161 | RDEPENDS:${PN}:aarch64 = "\ | ||
162 | ${PN}-demo \ | ||
163 | rqt-runtime-monitor \ | ||
164 | " | ||
165 | |||
166 | IMAGE_LINGUAS = "en-us" | ||
167 | GLIBC_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 | |||
3 | ROS_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 @@ | |||
1 | SRC_URI:remove = "file://0001-CMakeLists.txt-fetch-orocos-kdl-with-bitbake-fetcher.patch" | ||
2 | SRCREV_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 @@ | |||
1 | LICENSE = "Apache-2.0 & BSD-3-Clause & GPL-2.0-only" | ||
2 | ROS_EXEC_DEPENDS:remove = "${ROS_UNRESOLVED_DEP-liblz4}" | ||
3 | DEPENDS:remove = "${ROS_UNRESOLVED_DEP-liblz4-dev}" | ||
4 | INSANE_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 @@ | |||
1 | From f15236807f0b5ac96979840a12cd0be0c115f055 Mon Sep 17 00:00:00 2001 | ||
2 | From: Trevor Woerner <trevor.woerner@amd.com> | ||
3 | Date: Thu, 12 Sep 2024 15:21:33 -0400 | ||
4 | Subject: [PATCH] fix include dir | ||
5 | |||
6 | Upstream-Status: inappropriate | ||
7 | Signed-off-by: Trevor Woerner <trevor.woerner@amd.com> | ||
8 | --- | ||
9 | CMakeLists.txt | 2 +- | ||
10 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
11 | |||
12 | diff --git a/CMakeLists.txt b/CMakeLists.txt | ||
13 | index 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 | -- | ||
26 | 2.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 @@ | |||
1 | FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" | ||
2 | |||
3 | B = "${S}" | ||
4 | SRC_URI:remove = "file://0001-CMakeLists.txt-fetch-dependencies-with-bitbake-fetch.patch" | ||
5 | SRC_URI:append = " file://0001-fix-include-dir.patch" | ||
6 | SRCREV_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 @@ | |||
1 | SRC_URI:remove = "file://0001-CMakeLists.txt-drop-dependency-on-zstd_vendor.patch" | ||
2 | SRCREV = "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 @@ | |||
1 | SRC_URI:remove = "file://0001-CMakeLists.txt-fetch-readerwriterqueue-and-concurren.patch" | ||
2 | SRCREV_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" | |||