Procházet zdrojové kódy

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é před 2 roky
rodič
revize
829841e

+ 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
 }
-