From c816c3d83739afb76b42748438b601dea8ec8162 Mon Sep 17 00:00:00 2001 From: Pierre Kancir Date: Tue, 13 Aug 2024 00:23:35 +0200 Subject: [PATCH 1/5] Tools: add alpine initial prereqs script --- .../install-prereqs-alpine.sh | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 Tools/environment_install/install-prereqs-alpine.sh diff --git a/Tools/environment_install/install-prereqs-alpine.sh b/Tools/environment_install/install-prereqs-alpine.sh new file mode 100644 index 0000000000000..c01da408db3ef --- /dev/null +++ b/Tools/environment_install/install-prereqs-alpine.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env sh +echo "---------- $0 start ----------" +set -e +set -x + +echo "===================================================================" +echo "Warning: This script is not fully tested. Please report any issues." +echo "===================================================================" + + +apk update && apk add --no-cache \ + linux-headers \ + g++ \ + python3 \ + py-future \ + py-pip \ + libxml2-dev \ + libxslt-dev \ + git \ + && ln -sf python3 /usr/bin/python \ + && rm -rf /var/cache/apk/* + +python3 -m pip install --user --no-deps --no-cache-dir empy==3.3.4 pexpect ptyprocess --break-system-packages From 69c75e71104b81cc49765780db550230f1d4d502 Mon Sep 17 00:00:00 2001 From: Pierre Kancir Date: Tue, 13 Aug 2024 00:25:51 +0200 Subject: [PATCH 2/5] SITL: add missing header for timeval struct on alpine linux --- libraries/SITL/SIM_GPS.cpp | 1 + libraries/SITL/SIM_GPS.h | 1 + libraries/SITL/SIM_GPS_MSP.cpp | 1 + libraries/SITL/SIM_GPS_NMEA.cpp | 1 + libraries/SITL/SIM_MicroStrain.cpp | 1 + libraries/SITL/SIM_MicroStrain.h | 1 + libraries/SITL/SIM_VectorNav.cpp | 1 + 7 files changed, 7 insertions(+) diff --git a/libraries/SITL/SIM_GPS.cpp b/libraries/SITL/SIM_GPS.cpp index f95d5922c31df..290b432c233d3 100644 --- a/libraries/SITL/SIM_GPS.cpp +++ b/libraries/SITL/SIM_GPS.cpp @@ -11,6 +11,7 @@ #if HAL_SIM_GPS_ENABLED #include +#include #include #include diff --git a/libraries/SITL/SIM_GPS.h b/libraries/SITL/SIM_GPS.h index 954bbd45acef3..9f5e226b397c2 100644 --- a/libraries/SITL/SIM_GPS.h +++ b/libraries/SITL/SIM_GPS.h @@ -27,6 +27,7 @@ param set SERIAL5_PROTOCOL 5 #if HAL_SIM_GPS_ENABLED +#include #include "SIM_SerialDevice.h" namespace SITL { diff --git a/libraries/SITL/SIM_GPS_MSP.cpp b/libraries/SITL/SIM_GPS_MSP.cpp index 2bf9db476f0bc..65d8838b7d6d9 100644 --- a/libraries/SITL/SIM_GPS_MSP.cpp +++ b/libraries/SITL/SIM_GPS_MSP.cpp @@ -7,6 +7,7 @@ #include #include +#include using namespace SITL; diff --git a/libraries/SITL/SIM_GPS_NMEA.cpp b/libraries/SITL/SIM_GPS_NMEA.cpp index bda820cabfbdd..30c705382e152 100644 --- a/libraries/SITL/SIM_GPS_NMEA.cpp +++ b/libraries/SITL/SIM_GPS_NMEA.cpp @@ -9,6 +9,7 @@ #include #include +#include extern const AP_HAL::HAL& hal; diff --git a/libraries/SITL/SIM_MicroStrain.cpp b/libraries/SITL/SIM_MicroStrain.cpp index d56cc87fce4c1..7cbff8263cb48 100644 --- a/libraries/SITL/SIM_MicroStrain.cpp +++ b/libraries/SITL/SIM_MicroStrain.cpp @@ -25,6 +25,7 @@ */ #include "SIM_MicroStrain.h" #include +#include #include #include #include diff --git a/libraries/SITL/SIM_MicroStrain.h b/libraries/SITL/SIM_MicroStrain.h index 80684f1ef4892..84e3b261bc1bc 100644 --- a/libraries/SITL/SIM_MicroStrain.h +++ b/libraries/SITL/SIM_MicroStrain.h @@ -6,6 +6,7 @@ #include #include "SIM_SerialDevice.h" +#include namespace SITL { diff --git a/libraries/SITL/SIM_VectorNav.cpp b/libraries/SITL/SIM_VectorNav.cpp index ad61f0101077e..545445da46d40 100644 --- a/libraries/SITL/SIM_VectorNav.cpp +++ b/libraries/SITL/SIM_VectorNav.cpp @@ -18,6 +18,7 @@ #include "SIM_VectorNav.h" #include +#include #include #include #include From f7ab5bf86a5fbaa8a712fdad3e6c41cc3a51e889 Mon Sep 17 00:00:00 2001 From: Pierre Kancir Date: Tue, 13 Aug 2024 00:26:00 +0200 Subject: [PATCH 3/5] AP_HAL: add missing header for timeval struct on alpine linux --- libraries/AP_HAL/utility/Socket.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/libraries/AP_HAL/utility/Socket.cpp b/libraries/AP_HAL/utility/Socket.cpp index 35d368a853dd6..21835199effe0 100644 --- a/libraries/AP_HAL/utility/Socket.cpp +++ b/libraries/AP_HAL/utility/Socket.cpp @@ -40,6 +40,7 @@ #include #include #include +#include #endif #include From f7c7c62833911654a1f5ed9aba2ef27c5d395ce9 Mon Sep 17 00:00:00 2001 From: Pierre Kancir Date: Tue, 13 Aug 2024 00:26:10 +0200 Subject: [PATCH 4/5] AP_HAL_Linux: SITL: add missing header for timeval struct on alpine linux --- libraries/AP_HAL_Linux/CANSocketIface.cpp | 1 + libraries/AP_HAL_Linux/VideoIn.h | 1 + 2 files changed, 2 insertions(+) diff --git a/libraries/AP_HAL_Linux/CANSocketIface.cpp b/libraries/AP_HAL_Linux/CANSocketIface.cpp index 05a02280ce9ce..b295c69077a91 100644 --- a/libraries/AP_HAL_Linux/CANSocketIface.cpp +++ b/libraries/AP_HAL_Linux/CANSocketIface.cpp @@ -34,6 +34,7 @@ #include #include +#include #include #include #include diff --git a/libraries/AP_HAL_Linux/VideoIn.h b/libraries/AP_HAL_Linux/VideoIn.h index ed4fd90180ac7..2f2652f3f1daa 100644 --- a/libraries/AP_HAL_Linux/VideoIn.h +++ b/libraries/AP_HAL_Linux/VideoIn.h @@ -15,6 +15,7 @@ #pragma once #include "AP_HAL_Linux.h" +#include #include #include From f79f7b2a838be07ad3efcbda88d44cb8f46d3779 Mon Sep 17 00:00:00 2001 From: Pierre Kancir Date: Tue, 13 Aug 2024 00:23:53 +0200 Subject: [PATCH 5/5] .github: add alpine to environement setup test --- .github/workflows/test_environment.yml | 36 +++++++++++++++++++ .../install-prereqs-alpine.sh | 0 2 files changed, 36 insertions(+) mode change 100644 => 100755 Tools/environment_install/install-prereqs-alpine.sh diff --git a/.github/workflows/test_environment.yml b/.github/workflows/test_environment.yml index 411fbbd2638a8..1442f2baa8097 100644 --- a/.github/workflows/test_environment.yml +++ b/.github/workflows/test_environment.yml @@ -123,6 +123,7 @@ jobs: ./waf rover - name: test build Chibios ${{matrix.os}}.${{matrix.name}} + if: matrix.os != 'alpine' env: DISABLE_MAVNATIVE: True DEBIAN_FRONTEND: noninteractive @@ -141,3 +142,38 @@ jobs: git config --global --add safe.directory /__w/ardupilot/ardupilot ./waf configure --board CubeOrange ./waf plane + + build-alpine: # special case for alpine as it doesn't have bash by default + runs-on: ubuntu-22.04 + container: + image: alpine:latest + options: --privileged + steps: + - name: Install Git + timeout-minutes: 30 + env: + DEBIAN_FRONTEND: noninteractive + TZ: Europe/Paris + run: | + apk update && apk add --no-cache git + - uses: actions/checkout@v4 + with: + submodules: 'recursive' + - name: test install environment alpine + timeout-minutes: 60 + env: + DISABLE_MAVNATIVE: True + TZ: Europe/Paris + SKIP_AP_GIT_CHECK: 1 + run: | + PATH="/github/home/.local/bin:$PATH" + Tools/environment_install/install-prereqs-alpine.sh + - name: test build STIL alpine + env: + DISABLE_MAVNATIVE: True + TZ: Europe/Paris + run: | + git config --global --add safe.directory ${GITHUB_WORKSPACE} + git config --global --add safe.directory /__w/ardupilot/ardupilot + ./waf configure + ./waf rover \ No newline at end of file diff --git a/Tools/environment_install/install-prereqs-alpine.sh b/Tools/environment_install/install-prereqs-alpine.sh old mode 100644 new mode 100755