2
0
Эх сурвалжийг харах

jibri: add support for arm64

Use Debian's Chromium and ChromeDriver instead of Google's.

This has the limitation of not being able to control the version we
ship, however.
Saúl Ibarra Corretgé 2 жил өмнө
parent
commit
829841e1a4

+ 2 - 4
.github/workflows/unstable.yml

@@ -141,8 +141,7 @@ jobs:
           build-args: |
             JITSI_REPO=${{ secrets.JITSI_REPO }}
             BASE_TAG=${{ needs.version.outputs.base }}
-          # FIXME jibri does not support linux/arm64
-          platforms: linux/amd64
+          platforms: linux/amd64,linux/arm64
           cache-from: type=gha
           cache-to: type=gha,mode=max
       - name: Dryrun
@@ -156,8 +155,7 @@ jobs:
           build-args: |
             JITSI_REPO=jitsi
             BASE_TAG=${{ needs.version.outputs.base }}
-          # FIXME jibri does not support linux/arm64
-          platforms: linux/amd64
+          platforms: linux/amd64,linux/arm64
           cache-from: type=gha
           cache-to: type=gha,mode=max
 

+ 3 - 3
Makefile

@@ -4,15 +4,15 @@ JITSI_BUILD ?= unstable
 JITSI_REPO ?= jitsi
 NATIVE_ARCH ?= $(shell uname -m)
 
-JITSI_MULTIARCH_SERVICES := base base-java web prosody jicofo jvb
-JITSI_AMD64ONLY_SERVICES := jigasi jibri
+JITSI_MULTIARCH_SERVICES := base base-java web prosody jicofo jvb jibri
+JITSI_AMD64ONLY_SERVICES := jigasi
 
 ifeq ($(NATIVE_ARCH),x86_64)
 	TARGETPLATFORM := linux/amd64
 	JITSI_SERVICES := base base-java web prosody jicofo jvb jigasi jibri
 else ifeq ($(NATIVE_ARCH),aarch64)
 	TARGETPLATFORM := linux/arm64
-	JITSI_SERVICES := base base-java web prosody jicofo jvb
+	JITSI_SERVICES := base base-java web prosody jicofo jvb jibri
 else
 	TARGETPLATFORM := unsupported
 	JITSI_SERVICES := dummy

+ 2 - 0
jibri/Dockerfile

@@ -12,6 +12,8 @@ RUN apt-dpkg-wrap apt-get update && \
     apt-dpkg-wrap apt-get install -y jibri libgl1-mesa-dri procps jitsi-upload-integrations jq && \
     apt-cleanup
 
+ARG TARGETPLATFORM=unset
+ARG USE_CHROMIUM=0
 #ARG CHROME_RELEASE=latest
 #ARG CHROMEDRIVER_MAJOR_RELEASE=latest
 ARG CHROME_RELEASE=102.0.5005.61

+ 26 - 15
jibri/build/install-chrome.sh

@@ -2,25 +2,36 @@
 
 set -o pipefail -xeu
 
-if  [ "${CHROME_RELEASE}" = "latest" ]; then
-    wget -qO - https://dl-ssl.google.com/linux/linux_signing_key.pub | gpg --dearmour > /etc/apt/trusted.gpg.d/google.gpg
-    echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google-chrome.list
+if [ "${USE_CHROMIUM}" = 1 -o "${TARGETPLATFORM}" = "linux/arm64" ]; then
+    echo "Using Debian's Chromium"
     apt-dpkg-wrap apt-get update
-    apt-dpkg-wrap apt-get install -y google-chrome-stable
+    apt-dpkg-wrap apt-get install -y chromium chromium-driver chromium-sandbox
     apt-cleanup
+    chromium --version
 else
-    curl -4so "/tmp/google-chrome-stable_${CHROME_RELEASE}-1_amd64.deb" "http://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_${CHROME_RELEASE}-1_amd64.deb"
-    apt-dpkg-wrap apt-get update
-    apt-dpkg-wrap apt-get install -y "/tmp/google-chrome-stable_${CHROME_RELEASE}-1_amd64.deb"
-    apt-cleanup
-fi
+    if  [ "${CHROME_RELEASE}" = "latest" ]; then
+        wget -qO - https://dl-ssl.google.com/linux/linux_signing_key.pub | gpg --dearmour > /etc/apt/trusted.gpg.d/google.gpg
+        echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google-chrome.list
+        apt-dpkg-wrap apt-get update
+        apt-dpkg-wrap apt-get install -y google-chrome-stable
+        apt-cleanup
+    else
+        curl -4so "/tmp/google-chrome-stable_${CHROME_RELEASE}-1_amd64.deb" "http://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_${CHROME_RELEASE}-1_amd64.deb"
+        apt-dpkg-wrap apt-get update
+        apt-dpkg-wrap apt-get install -y "/tmp/google-chrome-stable_${CHROME_RELEASE}-1_amd64.deb"
+        apt-cleanup
+    fi
 
-if [ "${CHROMEDRIVER_MAJOR_RELEASE}" = "latest" ]; then
-    CHROMEDRIVER_RELEASE="$(curl -4Ls https://chromedriver.storage.googleapis.com/LATEST_RELEASE)"
-else
-    CHROMEDRIVER_RELEASE="$(curl -4Ls https://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_MAJOR_RELEASE})"
+    google-chrome --version
+
+    if [ "${CHROMEDRIVER_MAJOR_RELEASE}" = "latest" ]; then
+        CHROMEDRIVER_RELEASE="$(curl -4Ls https://chromedriver.storage.googleapis.com/LATEST_RELEASE)"
+    else
+        CHROMEDRIVER_RELEASE="$(curl -4Ls https://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_MAJOR_RELEASE})"
+    fi
+
+    curl -4Ls "https://chromedriver.storage.googleapis.com/${CHROMEDRIVER_RELEASE}/chromedriver_linux64.zip"  | zcat >> /usr/bin/chromedriver
+    chmod +x /usr/bin/chromedriver
 fi
 
-curl -4Ls "https://chromedriver.storage.googleapis.com/${CHROMEDRIVER_RELEASE}/chromedriver_linux64.zip"  | zcat >> /usr/bin/chromedriver
-chmod +x /usr/bin/chromedriver
 chromedriver --version

+ 3 - 0
jibri/rootfs/etc/chromium/policies/managed/managed_policies.json

@@ -0,0 +1,3 @@
+{
+  "CommandLineFlagSecurityWarningsEnabled": false
+}

+ 0 - 1
jibri/rootfs/etc/opt/chrome/policies/managed/managed_policies.json

@@ -1,4 +1,3 @@
 {
   "CommandLineFlagSecurityWarningsEnabled": false
 }
-