From 5e2bafca563ffbe582096e90bdef242bffb5626c Mon Sep 17 00:00:00 2001
From: Stefan Agner <stefan@agner.ch>
Date: Fri, 26 Feb 2021 15:49:33 +0100
Subject: [PATCH] Add new machine generic-x86-64 to build matrix (#47095)

The Intel NUC machine runs on most UEFI capable x86-64 machines today.
Lets start a new machine generic-x86-64 which will replace intel-nuc
over time.
---
 azure-pipelines-release.yml |  4 +++-
 machine/generic-x86-64      | 34 ++++++++++++++++++++++++++++++++++
 machine/intel-nuc           |  3 +++
 3 files changed, 40 insertions(+), 1 deletion(-)
 create mode 100644 machine/generic-x86-64

diff --git a/azure-pipelines-release.yml b/azure-pipelines-release.yml
index 418fdf5b26c..5fe91325582 100644
--- a/azure-pipelines-release.yml
+++ b/azure-pipelines-release.yml
@@ -114,10 +114,12 @@ stages:
     pool:
       vmImage: 'ubuntu-latest'
     strategy:
-      maxParallel: 15
+      maxParallel: 17
       matrix:
         qemux86-64:
           buildMachine: 'qemux86-64'
+        generic-x86-64:
+          buildMachine: 'generic-x86-64'
         intel-nuc:
           buildMachine: 'intel-nuc'
         qemux86:
diff --git a/machine/generic-x86-64 b/machine/generic-x86-64
new file mode 100644
index 00000000000..e858c382221
--- /dev/null
+++ b/machine/generic-x86-64
@@ -0,0 +1,34 @@
+ARG BUILD_VERSION
+FROM agners/amd64-homeassistant:$BUILD_VERSION
+
+RUN apk --no-cache add \
+    libva-intel-driver \
+    usbutils
+
+##
+# Build libcec for HDMI-CEC
+ARG LIBCEC_VERSION=6.0.2
+RUN apk add --no-cache \
+        eudev-libs \
+        p8-platform \
+    && apk add --no-cache --virtual .build-dependencies \
+        build-base \
+        cmake \
+        eudev-dev \
+        swig \
+        p8-platform-dev \
+        linux-headers \
+    && git clone --depth 1 -b libcec-${LIBCEC_VERSION} https://github.com/Pulse-Eight/libcec /usr/src/libcec \
+    && cd /usr/src/libcec \
+    && mkdir -p /usr/src/libcec/build \
+    && cd /usr/src/libcec/build \
+    && cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr/local \
+        -DPYTHON_LIBRARY="/usr/local/lib/libpython3.8.so" \
+        -DPYTHON_INCLUDE_DIR="/usr/local/include/python3.8" \
+        -DHAVE_LINUX_API=1 \
+        .. \
+    && make -j$(nproc) \
+    && make install \
+    && echo "cec" > "/usr/local/lib/python3.8/site-packages/cec.pth" \
+    && apk del .build-dependencies \
+    && rm -rf /usr/src/libcec*
diff --git a/machine/intel-nuc b/machine/intel-nuc
index 4c83228387d..b5538b8ccad 100644
--- a/machine/intel-nuc
+++ b/machine/intel-nuc
@@ -1,6 +1,9 @@
 ARG BUILD_VERSION
 FROM homeassistant/amd64-homeassistant:$BUILD_VERSION
 
+# NOTE: intel-nuc will be replaced by generic-x86-64. Make sure to apply
+# changes in generic-x86-64 as well.
+
 RUN apk --no-cache add \
     libva-intel-driver \
     usbutils
-- 
GitLab