From 52d4ada23028630ddcfcca986a654fbd732f0f1c Mon Sep 17 00:00:00 2001 From: lejeune quentin Date: Thu, 17 Oct 2019 12:10:50 +0000 Subject: [PATCH] [IMP] point_of_sale: Add support of RPI 4 With this PR we can use the IoT Box with the new Raspberry Pi 4 B using raspbian 'Buster' With buster we remove the kiosk mode of firefox and replace this mode with a fullscreen view of firefox. To do that we adapt DisplayDriver to expend window with a 'call_xdotool(F11)' We remove postgresql and patch 'odoo/odoo/http.py' for he does not return a DB. Task id: 2089286 closes odoo/odoo#40292 X-original-commit: d20676b69f37905c7994b3c55cb1bb6dfda3460e Signed-off-by: pimodoo --- addons/hw_drivers/drivers/DisplayDriver.py | 3 +- .../overwrite_after_init/etc/ld.so.preload | 2 +- .../overwrite_after_init/etc/resolv.conf | 5 + .../home/pi/odoo/odoo/http.py.iotpatch | 11 ++ .../META-INF/manifest.mf | 32 ---- .../META-INF/mozilla.rsa | Bin 4197 -> 0 bytes .../META-INF/mozilla.sf | 4 - .../README | 3 - .../chrome.manifest | 4 - .../content/rkioskbrowser.js | 34 ---- .../content/rkioskbrowser.xul | 175 ------------------ .../content/rkioskunknownContentType.xul | 9 - .../content/rkioskxpinstallConfirm.xul | 9 - .../install.rdf | 19 -- .../dist-packages/v4l2.py.iotpatch | 0 .../defaults/preferences/all-posbox.js | 1 + .../overwrite_before_init/etc/init.d/odoo | 2 +- .../etc/init_posbox_image.sh | 18 +- .../overwrite_before_init/etc/ld.so.preload | 2 +- .../tools/posbox/posbox_create_image.sh | 2 +- .../tools/posbox/posbox_download_images.sh | 2 +- 21 files changed, 31 insertions(+), 306 deletions(-) create mode 100644 addons/point_of_sale/tools/posbox/overwrite_after_init/etc/resolv.conf create mode 100644 addons/point_of_sale/tools/posbox/overwrite_after_init/home/pi/odoo/odoo/http.py.iotpatch delete mode 100644 addons/point_of_sale/tools/posbox/overwrite_after_init/usr/lib/firefox-esr/browser/extensions/{4D498D0A-05AD-4fdb-97B5-8A0AABC1FC5B}/META-INF/manifest.mf delete mode 100644 addons/point_of_sale/tools/posbox/overwrite_after_init/usr/lib/firefox-esr/browser/extensions/{4D498D0A-05AD-4fdb-97B5-8A0AABC1FC5B}/META-INF/mozilla.rsa delete mode 100644 addons/point_of_sale/tools/posbox/overwrite_after_init/usr/lib/firefox-esr/browser/extensions/{4D498D0A-05AD-4fdb-97B5-8A0AABC1FC5B}/META-INF/mozilla.sf delete mode 100644 addons/point_of_sale/tools/posbox/overwrite_after_init/usr/lib/firefox-esr/browser/extensions/{4D498D0A-05AD-4fdb-97B5-8A0AABC1FC5B}/README delete mode 100644 addons/point_of_sale/tools/posbox/overwrite_after_init/usr/lib/firefox-esr/browser/extensions/{4D498D0A-05AD-4fdb-97B5-8A0AABC1FC5B}/chrome.manifest delete mode 100644 addons/point_of_sale/tools/posbox/overwrite_after_init/usr/lib/firefox-esr/browser/extensions/{4D498D0A-05AD-4fdb-97B5-8A0AABC1FC5B}/content/rkioskbrowser.js delete mode 100644 addons/point_of_sale/tools/posbox/overwrite_after_init/usr/lib/firefox-esr/browser/extensions/{4D498D0A-05AD-4fdb-97B5-8A0AABC1FC5B}/content/rkioskbrowser.xul delete mode 100644 addons/point_of_sale/tools/posbox/overwrite_after_init/usr/lib/firefox-esr/browser/extensions/{4D498D0A-05AD-4fdb-97B5-8A0AABC1FC5B}/content/rkioskunknownContentType.xul delete mode 100644 addons/point_of_sale/tools/posbox/overwrite_after_init/usr/lib/firefox-esr/browser/extensions/{4D498D0A-05AD-4fdb-97B5-8A0AABC1FC5B}/content/rkioskxpinstallConfirm.xul delete mode 100644 addons/point_of_sale/tools/posbox/overwrite_after_init/usr/lib/firefox-esr/browser/extensions/{4D498D0A-05AD-4fdb-97B5-8A0AABC1FC5B}/install.rdf rename addons/point_of_sale/tools/posbox/overwrite_after_init/usr/local/lib/{python3.5 => python3.7}/dist-packages/v4l2.py.iotpatch (100%) diff --git a/addons/hw_drivers/drivers/DisplayDriver.py b/addons/hw_drivers/drivers/DisplayDriver.py index 1b24c457f20..67d9f861708 100644 --- a/addons/hw_drivers/drivers/DisplayDriver.py +++ b/addons/hw_drivers/drivers/DisplayDriver.py @@ -36,6 +36,7 @@ class DisplayDriver(Driver): self.owner = False self.rendered_html = '' self.load_url() + self.call_xdotools('F11') @property def device_identifier(self): @@ -103,7 +104,7 @@ class DisplayDriver(Driver): os.environ['DISPLAY'] = ":0.0" os.environ['XAUTHORITY'] = "/run/lightdm/pi/xauthority" try: - subprocess.call(['xdotool', 'key', keystroke]) + subprocess.call(['xdotool', 'search', '--sync', '--onlyvisible', '--class', 'Firefox', 'windowactivate', 'key', keystroke]) return "xdotool succeeded in stroking " + keystroke except: return "xdotool threw an error, maybe it is not installed on the IoTBox" diff --git a/addons/point_of_sale/tools/posbox/overwrite_after_init/etc/ld.so.preload b/addons/point_of_sale/tools/posbox/overwrite_after_init/etc/ld.so.preload index 37a96726c29..457060eadac 100644 --- a/addons/point_of_sale/tools/posbox/overwrite_after_init/etc/ld.so.preload +++ b/addons/point_of_sale/tools/posbox/overwrite_after_init/etc/ld.so.preload @@ -1 +1 @@ -/usr/lib/arm-linux-gnueabihf/libarmmem.so +/usr/lib/arm-linux-gnueabihf/libarmmem-v8l.so diff --git a/addons/point_of_sale/tools/posbox/overwrite_after_init/etc/resolv.conf b/addons/point_of_sale/tools/posbox/overwrite_after_init/etc/resolv.conf new file mode 100644 index 00000000000..eb9349163a8 --- /dev/null +++ b/addons/point_of_sale/tools/posbox/overwrite_after_init/etc/resolv.conf @@ -0,0 +1,5 @@ +# Edited by Odoo +domain localdomain +nameserver 8.8.8.8 +nameserver 8.8.4.4 +nameserver 1.1.1.1 diff --git a/addons/point_of_sale/tools/posbox/overwrite_after_init/home/pi/odoo/odoo/http.py.iotpatch b/addons/point_of_sale/tools/posbox/overwrite_after_init/home/pi/odoo/odoo/http.py.iotpatch new file mode 100644 index 00000000000..7f9cad6b1a8 --- /dev/null +++ b/addons/point_of_sale/tools/posbox/overwrite_after_init/home/pi/odoo/odoo/http.py.iotpatch @@ -0,0 +1,11 @@ +--- http_old.py 2019-11-07 15:01:37.190918774 +0100 ++++ http_new.py 2019-11-07 15:02:16.406711394 +0100 +@@ -1496,7 +1496,7 @@ + """ + httprequest = httprequest or request.httprequest + +- dbs = db_list(True, httprequest) ++ dbs = [] + + # try the db already in the session + db_session = httprequest.session.db diff --git a/addons/point_of_sale/tools/posbox/overwrite_after_init/usr/lib/firefox-esr/browser/extensions/{4D498D0A-05AD-4fdb-97B5-8A0AABC1FC5B}/META-INF/manifest.mf b/addons/point_of_sale/tools/posbox/overwrite_after_init/usr/lib/firefox-esr/browser/extensions/{4D498D0A-05AD-4fdb-97B5-8A0AABC1FC5B}/META-INF/manifest.mf deleted file mode 100644 index 63a9098e00d..00000000000 --- a/addons/point_of_sale/tools/posbox/overwrite_after_init/usr/lib/firefox-esr/browser/extensions/{4D498D0A-05AD-4fdb-97B5-8A0AABC1FC5B}/META-INF/manifest.mf +++ /dev/null @@ -1,32 +0,0 @@ -Manifest-Version: 1.0 - -Name: install.rdf -Digest-Algorithms: MD5 SHA1 -MD5-Digest: xnFKNbJgc33dy/FJ+4cmHA== -SHA1-Digest: 4YLgHgdgCw4lGCfsX7+r4zVmKJ4= - -Name: chrome.manifest -Digest-Algorithms: MD5 SHA1 -MD5-Digest: O5ce4bajAqUxG6iVul0K2w== -SHA1-Digest: wb6VleWnV5GgLypmg1ij9TfmPLE= - -Name: content/rkioskbrowser.js -Digest-Algorithms: MD5 SHA1 -MD5-Digest: /cF15tfVnbkfbxRVTL5N+g== -SHA1-Digest: lvbY92PbsjwY+0TguEYoXWw0lxQ= - -Name: content/rkioskbrowser.xul -Digest-Algorithms: MD5 SHA1 -MD5-Digest: NFOIpAmZtn20Y+XfTo4cpw== -SHA1-Digest: VVIo7GdG+4mvAOtgR0DJUsSc/yg= - -Name: content/rkioskunknownContentType.xul -Digest-Algorithms: MD5 SHA1 -MD5-Digest: 6cNGoHJS9Xvm+wmvo4IesQ== -SHA1-Digest: T8i1MkMKjmn5HICqWv+iXSPRKIU= - -Name: content/rkioskxpinstallConfirm.xul -Digest-Algorithms: MD5 SHA1 -MD5-Digest: SxN1YnRJiuood2WhU85v9g== -SHA1-Digest: Msj21u4bTAKUi496xld5YCGdjiA= - diff --git a/addons/point_of_sale/tools/posbox/overwrite_after_init/usr/lib/firefox-esr/browser/extensions/{4D498D0A-05AD-4fdb-97B5-8A0AABC1FC5B}/META-INF/mozilla.rsa b/addons/point_of_sale/tools/posbox/overwrite_after_init/usr/lib/firefox-esr/browser/extensions/{4D498D0A-05AD-4fdb-97B5-8A0AABC1FC5B}/META-INF/mozilla.rsa deleted file mode 100644 index 521b08d182a938ae7a831df4a347f00b9f42e54d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4197 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 diff --git a/addons/point_of_sale/tools/posbox/overwrite_after_init/usr/lib/firefox-esr/browser/extensions/{4D498D0A-05AD-4fdb-97B5-8A0AABC1FC5B}/META-INF/mozilla.sf b/addons/point_of_sale/tools/posbox/overwrite_after_init/usr/lib/firefox-esr/browser/extensions/{4D498D0A-05AD-4fdb-97B5-8A0AABC1FC5B}/META-INF/mozilla.sf deleted file mode 100644 index 37eae3e21fb..00000000000 --- a/addons/point_of_sale/tools/posbox/overwrite_after_init/usr/lib/firefox-esr/browser/extensions/{4D498D0A-05AD-4fdb-97B5-8A0AABC1FC5B}/META-INF/mozilla.sf +++ /dev/null @@ -1,4 +0,0 @@ -Signature-Version: 1.0 -MD5-Digest-Manifest: 7hFyhNW67+H+rf9OhWGDkA== -SHA1-Digest-Manifest: HvfAQQLXphSZ9m8KBorJMX8MUnE= - diff --git a/addons/point_of_sale/tools/posbox/overwrite_after_init/usr/lib/firefox-esr/browser/extensions/{4D498D0A-05AD-4fdb-97B5-8A0AABC1FC5B}/README b/addons/point_of_sale/tools/posbox/overwrite_after_init/usr/lib/firefox-esr/browser/extensions/{4D498D0A-05AD-4fdb-97B5-8A0AABC1FC5B}/README deleted file mode 100644 index c8c1ce58823..00000000000 --- a/addons/point_of_sale/tools/posbox/overwrite_after_init/usr/lib/firefox-esr/browser/extensions/{4D498D0A-05AD-4fdb-97B5-8A0AABC1FC5B}/README +++ /dev/null @@ -1,3 +0,0 @@ -The R-kiosk module has been downloaded from https://addons.mozilla.org/en-US/firefox/addon/r-kiosk/ -It is in the public domain as stated on https://addons.mozilla.org/en-US/firefox/addon/r-kiosk/eula/ -This mozilla module is shipped by Odoo to provide out of the box Client facing display to Odoo's Posbox \ No newline at end of file diff --git a/addons/point_of_sale/tools/posbox/overwrite_after_init/usr/lib/firefox-esr/browser/extensions/{4D498D0A-05AD-4fdb-97B5-8A0AABC1FC5B}/chrome.manifest b/addons/point_of_sale/tools/posbox/overwrite_after_init/usr/lib/firefox-esr/browser/extensions/{4D498D0A-05AD-4fdb-97B5-8A0AABC1FC5B}/chrome.manifest deleted file mode 100644 index e4957b8d5e8..00000000000 --- a/addons/point_of_sale/tools/posbox/overwrite_after_init/usr/lib/firefox-esr/browser/extensions/{4D498D0A-05AD-4fdb-97B5-8A0AABC1FC5B}/chrome.manifest +++ /dev/null @@ -1,4 +0,0 @@ -content RKiosk content/ -overlay chrome://browser/content/browser.xul chrome://rkiosk/content/rkioskbrowser.xul -overlay chrome://mozapps/content/xpinstall/xpinstallConfirm.xul chrome://rkiosk/content/rkioskxpinstallConfirm.xul -overlay chrome://mozapps/content/downloads/unknownContentType.xul chrome://rkiosk/content/rkioskunknownContentType.xul diff --git a/addons/point_of_sale/tools/posbox/overwrite_after_init/usr/lib/firefox-esr/browser/extensions/{4D498D0A-05AD-4fdb-97B5-8A0AABC1FC5B}/content/rkioskbrowser.js b/addons/point_of_sale/tools/posbox/overwrite_after_init/usr/lib/firefox-esr/browser/extensions/{4D498D0A-05AD-4fdb-97B5-8A0AABC1FC5B}/content/rkioskbrowser.js deleted file mode 100644 index 5ece9a9e06b..00000000000 --- a/addons/point_of_sale/tools/posbox/overwrite_after_init/usr/lib/firefox-esr/browser/extensions/{4D498D0A-05AD-4fdb-97B5-8A0AABC1FC5B}/content/rkioskbrowser.js +++ /dev/null @@ -1,34 +0,0 @@ -function Rkiosk_donothing() -{ - - -} - -function rkioskclose() -{ - close(); -} - -function Rkiosk_navbar_setting() -{ - var rkiosk_navbar_enable="true"; - var prefs = Components.classes["@mozilla.org/preferences-service;1"]. - getService(Components.interfaces.nsIPrefBranch); - if (prefs.getPrefType("rkiosk.navbar") == prefs.PREF_BOOL){ - if (prefs.getBoolPref("rkiosk.navbar")) rkiosk_navbar_enable = "false"; - } - var rkiosk_element = document.getElementById("navigator-toolbox"); - rkiosk_element.setAttribute("hidden", rkiosk_navbar_enable); -} - -function RkioskBrowserStartup() -{ - Rkiosk_navbar_setting(); - BrowserStartup(); - setTimeout(RkioskdelayedStartup, 1000); -} - -function RkioskdelayedStartup() -{ - window.fullScreen = true; -} diff --git a/addons/point_of_sale/tools/posbox/overwrite_after_init/usr/lib/firefox-esr/browser/extensions/{4D498D0A-05AD-4fdb-97B5-8A0AABC1FC5B}/content/rkioskbrowser.xul b/addons/point_of_sale/tools/posbox/overwrite_after_init/usr/lib/firefox-esr/browser/extensions/{4D498D0A-05AD-4fdb-97B5-8A0AABC1FC5B}/content/rkioskbrowser.xul deleted file mode 100644 index d5fb0c140d1..00000000000 --- a/addons/point_of_sale/tools/posbox/overwrite_after_init/usr/lib/firefox-esr/browser/extensions/{4D498D0A-05AD-4fdb-97B5-8A0AABC1FC5B}/content/rkioskbrowser.xul +++ /dev/null @@ -1,175 +0,0 @@ - - - - - - - -