From c3bce99da9458d2663c421e88d6f508b7848d89a Mon Sep 17 00:00:00 2001 From: Doro Wu Date: Mon, 11 May 2020 23:14:58 +0800 Subject: [PATCH] feat: Ubuntu focal 20.04 --- Dockerfile.amd64 | 27 ++- Makefile | 4 +- .../usr/local/bin/chromium-browser-sound.sh | 2 +- rootfs/usr/local/lib/web/backend/run.py | 2 +- rootfs/usr/local/lib/web/backend/vnc/app.py | 2 +- rootfs/usr/local/lib/web/backend/vnc/state.py | 2 +- .../chromium-browser-sound.desktop | 196 +++++++++++++----- 7 files changed, 162 insertions(+), 73 deletions(-) diff --git a/Dockerfile.amd64 b/Dockerfile.amd64 index 8f250cf..f36e07d 100644 --- a/Dockerfile.amd64 +++ b/Dockerfile.amd64 @@ -1,10 +1,10 @@ -# Built with arch: amd64 flavor: lxde image: ubuntu:18.04 +# Built with arch: amd64 flavor: lxde image: ubuntu:20.04 # ################################################################################ # base system ################################################################################ -FROM ubuntu:18.04 as system +FROM ubuntu:20.04 as system @@ -24,16 +24,22 @@ RUN apt update \ && apt autoremove -y \ && rm -rf /var/lib/apt/lists/* # install debs error if combine together -RUN add-apt-repository -y ppa:fcwu-tw/apps \ - && apt update \ +RUN apt update \ && apt install -y --no-install-recommends --allow-unauthenticated \ - xvfb x11vnc=0.9.16-1 \ - vim-tiny firefox chromium-browser ttf-ubuntu-font-family ttf-wqy-zenhei \ - && add-apt-repository -r ppa:fcwu-tw/apps \ + xvfb x11vnc \ + vim-tiny firefox ttf-ubuntu-font-family ttf-wqy-zenhei \ && apt autoclean -y \ && apt autoremove -y \ && rm -rf /var/lib/apt/lists/* +RUN apt update \ + && apt install -y gpg-agent \ + && curl -LO https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (dpkg -i ./google-chrome-stable_current_amd64.deb || apt-get install -fy) \ + && curl -sSL https://dl.google.com/linux/linux_signing_key.pub | apt-key add \ + && rm google-chrome-stable_current_amd64.deb \ + && rm -rf /var/lib/apt/lists/* + RUN apt update \ && apt install -y --no-install-recommends --allow-unauthenticated \ lxde gtk2-engines-murrine gnome-themes-standard gtk2-engines-pixbuf gtk2-engines-murrine arc-theme \ @@ -62,8 +68,9 @@ RUN apt update \ COPY rootfs/usr/local/lib/web/backend/requirements.txt /tmp/ RUN apt-get update \ && dpkg-query -W -f='${Package}\n' > /tmp/a.txt \ - && apt-get install -y python-pip python-dev build-essential \ - && pip install setuptools wheel && pip install -r /tmp/requirements.txt \ + && apt-get install -y python3-pip python3-dev build-essential \ + && pip3 install setuptools wheel && pip3 install -r /tmp/requirements.txt \ + && ln -s /usr/bin/python3 /usr/local/bin/python \ && dpkg-query -W -f='${Package}\n' > /tmp/b.txt \ && apt-get remove -y `diff --changed-group-format='%>' --unchanged-group-format='' /tmp/a.txt /tmp/b.txt | xargs` \ && apt-get autoclean -y \ @@ -75,7 +82,7 @@ RUN apt-get update \ ################################################################################ # builder ################################################################################ -FROM ubuntu:18.04 as builder +FROM ubuntu:20.04 as builder RUN sed -i 's#http://archive.ubuntu.com/ubuntu/#mirror://mirrors.ubuntu.com/mirrors.txt#' /etc/apt/sources.list; diff --git a/Makefile b/Makefile index 8c24ec4..ec0e2ac 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ REPO ?= dorowu/ubuntu-desktop-lxde-vnc TAG ?= latest # you can choose other base image versions -IMAGE ?= ubuntu:18.04 +IMAGE ?= ubuntu:20.04 # choose from supported flavors (see available ones in ./flavors/*.yml) FLAVOR ?= lxde # armhf or amd64 @@ -20,7 +20,7 @@ build: $(templates) # Test run the container # the local dir will be mounted under /src read-only run: - docker run --rm \ + docker run --privileged --rm \ -p 6080:80 -p 6081:443 \ -v ${PWD}:/src:ro \ -e USER=doro -e PASSWORD=mypassword \ diff --git a/rootfs/usr/local/bin/chromium-browser-sound.sh b/rootfs/usr/local/bin/chromium-browser-sound.sh index dd942dd..935fbf2 100755 --- a/rootfs/usr/local/bin/chromium-browser-sound.sh +++ b/rootfs/usr/local/bin/chromium-browser-sound.sh @@ -5,4 +5,4 @@ if [ -z "$ALSADEV" ]; then exit 1 fi -exec /usr/bin/chromium-browser --no-sandbox --alsa-output-device="$ALSADEV" "$@" +exec /usr/bin/google-chrome --no-sandbox --alsa-output-device="$ALSADEV" "$@" diff --git a/rootfs/usr/local/lib/web/backend/run.py b/rootfs/usr/local/lib/web/backend/run.py index f6ba5cc..ece1b6e 100755 --- a/rootfs/usr/local/lib/web/backend/run.py +++ b/rootfs/usr/local/lib/web/backend/run.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 from __future__ import ( absolute_import, division, print_function, with_statement ) diff --git a/rootfs/usr/local/lib/web/backend/vnc/app.py b/rootfs/usr/local/lib/web/backend/vnc/app.py index 753e4e4..33043f3 100644 --- a/rootfs/usr/local/lib/web/backend/vnc/app.py +++ b/rootfs/usr/local/lib/web/backend/vnc/app.py @@ -151,7 +151,7 @@ def liveflv(): cmd, stdout=gsp.PIPE, stderr=gsp.PIPE, - env={k: str(v) for k, v in xenvs.iteritems()}, + env={k: str(v) for k, v in xenvs.items()}, ) def readerr(f): diff --git a/rootfs/usr/local/lib/web/backend/vnc/state.py b/rootfs/usr/local/lib/web/backend/vnc/state.py index 8f08a3b..b6fc9ac 100644 --- a/rootfs/usr/local/lib/web/backend/vnc/state.py +++ b/rootfs/usr/local/lib/web/backend/vnc/state.py @@ -31,7 +31,7 @@ class State(object): output = gsp.check_output([ 'supervisorctl', '-c', '/etc/supervisor/supervisord.conf', 'status' - ]) + ], encoding='UTF-8') for line in output.strip().split('\n'): if not line.startswith('web') and line.find('RUNNING') < 0: health = False diff --git a/rootfs/usr/share/applications/chromium-browser-sound.desktop b/rootfs/usr/share/applications/chromium-browser-sound.desktop index 80b4db9..4f5c873 100644 --- a/rootfs/usr/share/applications/chromium-browser-sound.desktop +++ b/rootfs/usr/share/applications/chromium-browser-sound.desktop @@ -1,139 +1,221 @@ [Desktop Entry] Version=1.0 -Name=Chromium Web Browser Sound +Name=Google Chrome Sound +# Only KDE 4 seems to use GenericName, so we reuse the KDE strings. +# From Ubuntu's language-pack-kde-XX-base packages, version 9.04-20090413. GenericName=Web Browser GenericName[ar]=متصفح الشبكة -GenericName[ast]=Restolador web GenericName[bg]=Уеб браузър -GenericName[bn]=ওয়েব ব্রাউজার -GenericName[bs]=Web preglednik GenericName[ca]=Navegador web -GenericName[ca@valencia]=Navegador web GenericName[cs]=WWW prohlížeč GenericName[da]=Browser GenericName[de]=Web-Browser GenericName[el]=Περιηγητής ιστού -GenericName[en_AU]=Web Browser GenericName[en_GB]=Web Browser -GenericName[eo]=Retfoliumilo GenericName[es]=Navegador web GenericName[et]=Veebibrauser -GenericName[eu]=Web-nabigatzailea GenericName[fi]=WWW-selain -GenericName[fil]=Web Browser GenericName[fr]=Navigateur Web -GenericName[gl]=Navegador web GenericName[gu]=વેબ બ્રાઉઝર GenericName[he]=דפדפן אינטרנט GenericName[hi]=वेब ब्राउज़र -GenericName[hr]=Web preglednik GenericName[hu]=Webböngésző -GenericName[hy]=Ոստայն զննարկիչ -GenericName[ia]=Navigator del Web -GenericName[id]=Peramban Web -GenericName[it]=Browser web -GenericName[ja]=ウェブ・ブラウザ -GenericName[ka]=ვებ ბრაუზერი +GenericName[it]=Browser Web +GenericName[ja]=ウェブブラウザ GenericName[kn]=ಜಾಲ ವೀಕ್ಷಕ GenericName[ko]=웹 브라우저 -GenericName[kw]=Peurel wias GenericName[lt]=Žiniatinklio naršyklė GenericName[lv]=Tīmekļa pārlūks GenericName[ml]=വെബ് ബ്രൌസര്‍ GenericName[mr]=वेब ब्राऊजर -GenericName[ms]=Pelayar Web GenericName[nb]=Nettleser GenericName[nl]=Webbrowser -GenericName[or]=ଓ୍ବେବ ବ୍ରାଉଜର GenericName[pl]=Przeglądarka WWW GenericName[pt]=Navegador Web -GenericName[pt_BR]=Navegador web +GenericName[pt_BR]=Navegador da Internet GenericName[ro]=Navigator de Internet GenericName[ru]=Веб-браузер -GenericName[sk]=WWW prehliadač GenericName[sl]=Spletni brskalnik -GenericName[sr]=Интернет прегледник GenericName[sv]=Webbläsare GenericName[ta]=இணைய உலாவி -GenericName[te]=మహాతల అన్వేషి GenericName[th]=เว็บเบราว์เซอร์ GenericName[tr]=Web Tarayıcı -GenericName[ug]=توركۆرگۈ GenericName[uk]=Навігатор Тенет -GenericName[vi]=Bộ duyệt Web GenericName[zh_CN]=网页浏览器 GenericName[zh_HK]=網頁瀏覽器 GenericName[zh_TW]=網頁瀏覽器 +# Not translated in KDE, from Epiphany 2.26.1-0ubuntu1. +GenericName[bn]=ওয়েব ব্রাউজার +GenericName[fil]=Web Browser +GenericName[hr]=Web preglednik +GenericName[id]=Browser Web +GenericName[or]=ଓ୍ବେବ ବ୍ରାଉଜର +GenericName[sk]=WWW prehliadač +GenericName[sr]=Интернет прегледник +GenericName[te]=మహాతల అన్వేషి +GenericName[vi]=Bộ duyệt Web +# Gnome and KDE 3 uses Comment. Comment=Access the Internet Comment[ar]=الدخول إلى الإنترنت -Comment[ast]=Accesu a Internet Comment[bg]=Достъп до интернет -Comment[bn]=ইন্টারনেটে প্রবেশ করুন -Comment[bs]=Pristup internetu -Comment[ca]=Accediu a Internet -Comment[ca@valencia]=Accediu a Internet +Comment[bn]=ইন্টারনেটটি অ্যাক্সেস করুন +Comment[ca]=Accedeix a Internet Comment[cs]=Přístup k internetu Comment[da]=Få adgang til internettet Comment[de]=Internetzugriff Comment[el]=Πρόσβαση στο Διαδίκτυο -Comment[en_AU]=Access the Internet Comment[en_GB]=Access the Internet -Comment[eo]=Akiri interreton -Comment[es]=Acceda a Internet +Comment[es]=Accede a Internet. Comment[et]=Pääs Internetti -Comment[eu]=Sartu Internetera Comment[fi]=Käytä internetiä Comment[fil]=I-access ang Internet Comment[fr]=Accéder à Internet -Comment[gl]=Acceda a Internet Comment[gu]=ઇંટરનેટ ઍક્સેસ કરો -Comment[he]=גישה לאינטרנט +Comment[he]=גישה אל האינטרנט Comment[hi]=इंटरनेट तक पहुंच स्थापित करें -Comment[hr]=Pristupite Internetu -Comment[hu]=Az internet elérése -Comment[hy]=Մուտք համացանց -Comment[ia]=Accede a le Interrete +Comment[hr]=Pristup Internetu +Comment[hu]=Internetelérés Comment[id]=Akses Internet Comment[it]=Accesso a Internet Comment[ja]=インターネットにアクセス -Comment[ka]=ინტერნეტში შესვლა Comment[kn]=ಇಂಟರ್ನೆಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ -Comment[ko]=인터넷에 연결합니다 -Comment[kw]=Hedhes an Kesrosweyth +Comment[ko]=인터넷 연결 Comment[lt]=Interneto prieiga Comment[lv]=Piekļūt internetam Comment[ml]=ഇന്റര്‍‌നെറ്റ് ആക്‌സസ് ചെയ്യുക Comment[mr]=इंटरनेटमध्ये प्रवेश करा -Comment[ms]=Mengakses Internet -Comment[nb]=Bruk internett +Comment[nb]=Gå til Internett Comment[nl]=Verbinding maken met internet Comment[or]=ଇଣ୍ଟର୍ନେଟ୍ ପ୍ରବେଶ କରନ୍ତୁ Comment[pl]=Skorzystaj z internetu Comment[pt]=Aceder à Internet Comment[pt_BR]=Acessar a internet -Comment[ro]=Accesați Internetul +Comment[ro]=Accesaţi Internetul Comment[ru]=Доступ в Интернет Comment[sk]=Prístup do siete Internet Comment[sl]=Dostop do interneta Comment[sr]=Приступите Интернету -Comment[sv]=Surfa på Internet +Comment[sv]=Gå ut på Internet Comment[ta]=இணையத்தை அணுகுதல் Comment[te]=ఇంటర్నెట్‌ను ఆక్సెస్ చెయ్యండి Comment[th]=เข้าถึงอินเทอร์เน็ต Comment[tr]=İnternet'e erişin -Comment[ug]=ئىنتېرنېت زىيارىتى Comment[uk]=Доступ до Інтернету Comment[vi]=Truy cập Internet Comment[zh_CN]=访问互联网 Comment[zh_HK]=連線到網際網路 Comment[zh_TW]=連線到網際網路 Exec=/usr/local/bin/chromium-browser-sound.sh %U -Terminal=false -X-MultipleArgs=false -Type=Application -Icon=chromium-browser -Categories=Network;WebBrowser; -MimeType=text/html;text/xml;application/xhtml_xml;x-scheme-handler/http;x-scheme-handler/https; StartupNotify=true -Actions=NewWindow;Incognito;TempProfile; -X-AppInstall-Package=chromium-browser +Terminal=false +Icon=google-chrome +Type=Application +Categories=Network;WebBrowser; +MimeType=application/pdf;application/rdf+xml;application/rss+xml;application/xhtml+xml;application/xhtml_xml;application/xml;image/gif;image/jpeg;image/png;image/webp;text/html;text/xml;x-scheme-handler/ftp;x-scheme-handler/http;x-scheme-handler/https; +Actions=new-window;new-private-window; + +[Desktop Action new-window] +Name=New Window +Name[am]=አዲስ መስኮት +Name[ar]=نافذة جديدة +Name[bg]=Нов прозорец +Name[bn]=নতুন উইন্ডো +Name[ca]=Finestra nova +Name[cs]=Nové okno +Name[da]=Nyt vindue +Name[de]=Neues Fenster +Name[el]=Νέο Παράθυρο +Name[en_GB]=New Window +Name[es]=Nueva ventana +Name[et]=Uus aken +Name[fa]=پنجره جدید +Name[fi]=Uusi ikkuna +Name[fil]=New Window +Name[fr]=Nouvelle fenêtre +Name[gu]=નવી વિંડો +Name[hi]=नई विंडो +Name[hr]=Novi prozor +Name[hu]=Új ablak +Name[id]=Jendela Baru +Name[it]=Nuova finestra +Name[iw]=חלון חדש +Name[ja]=新規ウインドウ +Name[kn]=ಹೊಸ ವಿಂಡೊ +Name[ko]=새 창 +Name[lt]=Naujas langas +Name[lv]=Jauns logs +Name[ml]=പുതിയ വിന്‍ഡോ +Name[mr]=नवीन विंडो +Name[nl]=Nieuw venster +Name[no]=Nytt vindu +Name[pl]=Nowe okno +Name[pt]=Nova janela +Name[pt_BR]=Nova janela +Name[ro]=Fereastră nouă +Name[ru]=Новое окно +Name[sk]=Nové okno +Name[sl]=Novo okno +Name[sr]=Нови прозор +Name[sv]=Nytt fönster +Name[sw]=Dirisha Jipya +Name[ta]=புதிய சாளரம் +Name[te]=క్రొత్త విండో +Name[th]=หน้าต่างใหม่ +Name[tr]=Yeni Pencere +Name[uk]=Нове вікно +Name[vi]=Cửa sổ Mới +Name[zh_CN]=新建窗口 +Name[zh_TW]=開新視窗 +Exec=/usr/bin/google-chrome-stable + +[Desktop Action new-private-window] +Name=New Incognito Window +Name[ar]=نافذة جديدة للتصفح المتخفي +Name[bg]=Нов прозорец „инкогнито“ +Name[bn]=নতুন ছদ্মবেশী উইন্ডো +Name[ca]=Finestra d'incògnit nova +Name[cs]=Nové anonymní okno +Name[da]=Nyt inkognitovindue +Name[de]=Neues Inkognito-Fenster +Name[el]=Νέο παράθυρο για ανώνυμη περιήγηση +Name[en_GB]=New Incognito window +Name[es]=Nueva ventana de incógnito +Name[et]=Uus inkognito aken +Name[fa]=پنجره جدید حالت ناشناس +Name[fi]=Uusi incognito-ikkuna +Name[fil]=Bagong Incognito window +Name[fr]=Nouvelle fenêtre de navigation privée +Name[gu]=નવી છુપી વિંડો +Name[hi]=नई गुप्त विंडो +Name[hr]=Novi anoniman prozor +Name[hu]=Új Inkognitóablak +Name[id]=Jendela Penyamaran baru +Name[it]=Nuova finestra di navigazione in incognito +Name[iw]=חלון חדש לגלישה בסתר +Name[ja]=新しいシークレット ウィンドウ +Name[kn]=ಹೊಸ ಅಜ್ಞಾತ ವಿಂಡೋ +Name[ko]=새 시크릿 창 +Name[lt]=Naujas inkognito langas +Name[lv]=Jauns inkognito režīma logs +Name[ml]=പുതിയ വേഷ പ്രച്ഛന്ന വിന്‍ഡോ +Name[mr]=नवीन गुप्त विंडो +Name[nl]=Nieuw incognitovenster +Name[no]=Nytt inkognitovindu +Name[pl]=Nowe okno incognito +Name[pt]=Nova janela de navegação anónima +Name[pt_BR]=Nova janela anônima +Name[ro]=Fereastră nouă incognito +Name[ru]=Новое окно в режиме инкогнито +Name[sk]=Nové okno inkognito +Name[sl]=Novo okno brez beleženja zgodovine +Name[sr]=Нови прозор за прегледање без архивирања +Name[sv]=Nytt inkognitofönster +Name[ta]=புதிய மறைநிலைச் சாளரம் +Name[te]=క్రొత్త అజ్ఞాత విండో +Name[th]=หน้าต่างใหม่ที่ไม่ระบุตัวตน +Name[tr]=Yeni Gizli pencere +Name[uk]=Нове вікно в режимі анонімного перегляду +Name[vi]=Cửa sổ ẩn danh mới +Name[zh_CN]=新建隐身窗口 +Name[zh_TW]=新增無痕式視窗 +Exec=/usr/bin/google-chrome-stable --incognito