[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 <pimodoo@users.noreply.github.com>
This commit is contained in:
lejeune quentin
2019-11-14 15:59:36 +00:00
committed by fw-bot
parent de652abc5f
commit 52d4ada230
21 changed files with 31 additions and 306 deletions
+2 -1
View File
@@ -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"
@@ -1 +1 @@
/usr/lib/arm-linux-gnueabihf/libarmmem.so
/usr/lib/arm-linux-gnueabihf/libarmmem-v8l.so
@@ -0,0 +1,5 @@
# Edited by Odoo
domain localdomain
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 1.1.1.1
@@ -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
@@ -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=
@@ -1,4 +0,0 @@
Signature-Version: 1.0
MD5-Digest-Manifest: 7hFyhNW67+H+rf9OhWGDkA==
SHA1-Digest-Manifest: HvfAQQLXphSZ9m8KBorJMX8MUnE=
@@ -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
@@ -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
@@ -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;
}
@@ -1,175 +0,0 @@
<?xml version="1.0"?>
<overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<window id="main-window"
onload="RkioskBrowserStartup()">
</window>
<script type="application/x-javascript" src="rkioskbrowser.js"/>
<menubar id="main-menubar" hidden="true" fullscreentoolbar="false" disabled="true">
<menuitem id="menu_preferences" disabled="true"/>
</menubar>
<popup id="contentAreaContextMenu"
onpopupshowing="if (event.target != this) return true; return false;"
onpopuphiding="if (event.target == this) gContextMenu = null;">
</popup>
<commandset id="mainCommandSet">
<command id="cmd_newNavigator" disabled="true"/>
<command id="cmd_handleBackspace" disabled="true"/>
<command id="cmd_handleShiftBackspace" disabled="true"/>
<command id="cmd_newNavigatorTab" disabled="true"/>
<command id="Browser:OpenFile" disabled="true"/>
<command id="Browser:SavePage" disabled="true"/>
<command id="Browser:SaveFrame" disabled="true"/>
<command id="Browser:SendLink" disabled="true"/>
<command id="cmd_pageSetup" disabled="true"/>
<command id="cmd_print" oncommand="PrintUtils.print();"/>
<command id="cmd_printPreview" disabled="true"/>
<command id="cmd_close" disabled="true"/>
<command id="cmd_closeWindow" disabled="true"/>
<command id="cmd_ToggleTabsOnTop" disabled="true"/>
<command id="cmd_quitApplication" disabled="true"/>
<command id="cmd_toggleTaskbar" disabled="true"/>
<command id="cmd_CustomizeToolbars" disabled="true"/>
<commandset id="editMenuCommands"/>
<command id="View:PageSource" disabled="true"/>
<command id="View:PageInfo" disabled="true"/>
<command id="View:FullScreen" disabled="true"/>
<command id="cmd_find" disabled="true"/>
<command id="cmd_findAgain" disabled="true"/>
<command id="cmd_findPrevious" disabled="true"/>
<command id="Browser:AddBookmarkAs" disabled="true"/>
<command id="Browser:BookmarkAllTabs" disabled="true"/>
<command id="Browser:Home" oncommand="BrowserHome();"/>
<command id="Browser:Back" disabled="true"/>
<command id="Browser:Forward" disabled="true"/>
<command id="Browser:Stop" disabled="true"/>
<command id="Browser:Reload" disabled="true"/>
<command id="Browser:ReloadSkipCache" disabled="true"/>
<command id="Browser:BackOrBackDuplicate" disabled="true"/>
<command id="Browser:Forward" disabled="true"/>
<command id="Browser:ForwardOrForwardDuplicate" disabled="true"/>
<command id="Browser:ReloadOrDuplicate" disabled="true"/>
<command id="Browser:NextTab" disabled="true"/>
<command id="Browser:PrevTab" disabled="true"/>
<command id="Browser:ShowAllTabs" disabled="true"/>
<command id="Browser:ToggleTabView" disabled="true"/>
<command id="Browser:ToggleAddonBar" disabled="true"/>
<command id="cmd_fullZoomReduce" disabled="true"/>
<command id="cmd_fullZoomEnlarge" disabled="true"/>
<command id="cmd_fullZoomReset" disabled="true"/>
<command id="cmd_fullZoomToggle" disabled="true"/>
<command id="Browser:OpenLocation" disabled="true"/>
<command id="Tools:Search" disabled="true"/>
<command id="Tools:Downloads" disabled="true"/>
<command id="Tools:Addons" disabled="true"/>
<command id="Tools:Sanitize" disabled="true"/>
<command id="Tools:Inspect" disabled="true"/>
<command id="Tools:PrivateBrowsing" disabled="true"/>
<command id="History:UndoCloseTab" disabled="true"/>
<command id="History:UndoCloseWindow" disabled="true"/>
<command id="cmd_bm_open" disabled="true"/>
<command id="cmd_bm_openinnewwindow" disabled="true"/>
<command id="cmd_bm_openinnewtab" disabled="true"/>
<command id="cmd_bm_openfolder" disabled="true"/>
<command id="cmd_bm_managefolder" disabled="true"/>
<command id="cmd_bm_newfolder" disabled="true"/>
<command id="cmd_bm_newbookmark" disabled="true"/>
<command id="cmd_bm_newseparator" disabled="true"/>
<command id="cmd_bm_properties" disabled="true"/>
<command id="cmd_bm_refreshlivemark" disabled="true"/>
<command id="cmd_bm_refreshmicrosummary" disabled="true"/>
<command id="cmd_bm_rename" disabled="true"/>
<command id="cmd_bm_moveBookmark" disabled="true"/>
<command id="cmd_bm_sortbyname" disabled="true"/>
<command id="cmd_copyLink" disabled="true"/>
<command id="cmd_copyImageLocation" disabled="true"/>
<command id="cmd_copyImageContents" disabled="true"/>
<command id="cmd_undo" disabled="true"/>
<command id="cmd_redo" disabled="true"/>
<command id="cmd_cut" disabled="true"/>
<command id="cmd_copy" disabled="true"/>
<command id="cmd_paste" disabled="true"/>
<command id="cmd_delete" disabled="true"/>
<command id="cmd_selectAll" disabled="true"/>
<command id="cmd_switchTextDirection" disabled="true"/>
<command id="cmd_textZoomReduce" disabled="true"/>
<command id="cmd_textZoomEnlarge" disabled="true"/>
<command id="cmd_textZoomReset" disabled="true"/>
</commandset>
<commandset id="placesCommands">
<command id="Browser:ShowAllBookmarks" disabled="true"/>
<command id="Browser:ShowAllHistory" disabled="true"/>
</commandset>
<keyset id="mainKeyset">
<key id="rkiosk_f1" keycode="VK_F1" oncommand="Rkiosk_donothing();"/>
<key id="key_newNavigator" disabled="true"/>
<key id="key_newNavigatorTab" disabled="true"/>
<key id="focusURLBar" disabled="true"/>
<key id="focusURLBar2" disabled="true"/>
<key id="key_search" disabled="true"/>
<key id="key_search2" disabled="true"/>
<key id="key_openDownloads" disabled="true"/>
<key id="openFileKb" disabled="true"/>
<key id="key_savePage" disabled="true"/>
<key id="printKb" disabled="true"/>
<key id="key_close" disabled="true"/>
<key id="key_closeWindow" disabled="true"/>
<key id="key_undo" disabled="true"/>
<key id="key_redo" disabled="true"/>
<key id="key_cut" disabled="true"/>
<key id="key_copy" disabled="true"/>
<key id="key_paste" disabled="true"/>
<key id="key_delete" disabled="true"/>
<key id="key_selectAll" disabled="true"/>
<key id="goBackKb" disabled="true"/>
<key id="goForwardKb" disabled="true"/>
<key id="goHome" keycode="VK_HOME" command="Browser:Home" modifiers="alt"/>
<key id="key_viewSource" disabled="true"/>
<key id="key_find" disabled="true"/>
<key id="key_findAgain" disabled="true"/>
<key id="key_findPrevious" disabled="true"/>
<key id="addBookmarkAsKb" disabled="true"/>
<key id="bookmarkAllTabsKb" disabled="true"/>
<key id="key_stop" disabled="true"/>
<key id="key_gotoHistory" command="Rkiosk_donothing();"/>
<key id="key_switchTextDirection" disabled="true"/>
<key id="key_sanitize" disabled="true"/>
<key id="key_undoCloseTab" disabled="true"/>
<key id="viewBookmarksSidebarKb" command="Rkiosk_donothing();"/>
<key id="viewBookmarksSidebarWinKb" command="Rkiosk_donothing();"/>
<key id="key_fullScreen" disabled="true"/>
<key id="key_textZoomReduce" disabled="true"/>
<key id="key_textZoomEnlarge" disabled="true"/>
<key id="key_textZoomReset" disabled="true"/>
<key id="showAllHistoryKb" disabled="true"/>
<key id="key_errorConsole" disabled="true"/>
<key id="manBookmarkKb" disabled="true"/>
<key id="key_fullZoomReduce" disabled="true"/>
<key id="key_fullZoomEnlarge" disabled="true"/>
<key id="key_fullZoomReset" disabled="true"/>
<key id="key_openAddons" disabled="true"/>
<key id="key_webConsole" disabled="true"/>
<key id="key_inspect" disabled="true"/>
<key id="key_scratchpad" disabled="true"/>
<key id="key_showAllTabs" disabled="true"/>
<key id="key_tabview" disabled="true"/>
<key id="key_privatebrowsing" disabled="true"/>
<key id="key_undoCloseWindow" disabled="true"/>
<key id="key_selectTab1" disabled="true"/>
<key id="key_selectTab2" disabled="true"/>
<key id="key_selectTab3" disabled="true"/>
<key id="key_selectTab4" disabled="true"/>
<key id="key_selectTab5" disabled="true"/>
<key id="key_selectTab6" disabled="true"/>
<key id="key_selectTab7" disabled="true"/>
<key id="key_selectTab8" disabled="true"/>
<key id="key_selectLastTab" disabled="true"/>
<key id="key_toggleAddonBar" disabled="true"/>
</keyset>
</overlay>
@@ -1,9 +0,0 @@
<?xml version="1.0"?>
<overlay>
<dialog id="unknownContentType"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
onload="rkioskclose();">
<script src="rkioskbrowser.js"/>
</dialog>
</overlay>
@@ -1,9 +0,0 @@
<?xml version="1.0"?>
<overlay>
<dialog id="xpinstallConfirm"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
onload="rkioskclose();">
<script src="rkioskbrowser.js"/>
</dialog>
</overlay>
@@ -1,19 +0,0 @@
<?xml version='1.0' encoding='utf-8'?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
<Description about="urn:mozilla:install-manifest">
<em:id>{4D498D0A-05AD-4fdb-97B5-8A0AABC1FC5B}</em:id>
<em:name>R-kiosk</em:name>
<em:version>0.9.0.1-signed.1-signed</em:version>
<em:description>RKiosk (Real Kiosk), fullscreen kiosk mode: all menus, keys etc. disabled</em:description>
<em:creator>Kimmo Heinaaro</em:creator>
<em:targetApplication>
<Description>
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
<em:minVersion>2.0</em:minVersion>
<em:maxVersion>6.*</em:maxVersion>
</Description>
</em:targetApplication>
</Description>
</RDF>
@@ -8,3 +8,4 @@ pref("browser.shell.checkDefaultBrowser", false);
// Open all links in the same tab
// Needed to change URL without having multiple tabs running
pref("browser.link.open_newwindow", 1);
pref("browser.shell.checkDefaultBrowser",false);
@@ -1,7 +1,7 @@
#!/bin/bash
### BEGIN INIT INFO
# Provides: odoo.py
# Required-Start: $remote_fs $syslog postgresql
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
@@ -12,7 +12,7 @@ __base="$(basename ${__file} .sh)"
# leading to mismatch between kernel image and modules.
mount /dev/sda1 /boot
# Recommends: antiword, graphviz, ghostscript, postgresql, python-gevent, poppler-utils
# Recommends: antiword, graphviz, ghostscript, python-gevent, poppler-utils
export DEBIAN_FRONTEND=noninteractive
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
@@ -46,14 +46,14 @@ PKGS_TO_INSTALL="
lightdm \
xserver-xorg-video-fbdev \
xserver-xorg-input-evdev \
iceweasel \
firefox-esr \
xdotool \
unclutter \
x11-utils \
openbox \
rpi-update \
adduser \
postgresql \
libpq-dev \
python-cups \
python3 \
python3-pyscard \
@@ -96,11 +96,6 @@ echo "Acquire::Retries "16";" > /etc/apt/apt.conf.d/99acquire-retries
# KEEP OWN CONFIG FILES DURING PACKAGE CONFIGURATION
# http://serverfault.com/questions/259226/automatically-keep-current-version-of-config-files-when-apt-get-install
apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install ${PKGS_TO_INSTALL}
pg_lsclusters
systemctl start postgresql@9.6-main
systemctl status postgresql@9.6-main
sudo -u postgres createuser -s pi
apt-get clean
localepurge
@@ -164,9 +159,10 @@ else
fi
if [ $SYSTEMD -eq 1 ]; then
systemctl set-default graphical.target
ln -fs /etc/systemd/system/autologin@.service /etc/systemd/system/getty.target.wants/getty@tty1.service
rm /etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service
rm /etc/systemd/system/hostapd.service
systemctl disable getty@tty1.service
systemctl enable autologin@.service
systemctl disable systemd-timesyncd.service
systemctl disable hostapd.service
else
update-rc.d lightdm enable 2
fi
@@ -1 +1 @@
#/usr/lib/arm-linux-gnueabihf/libarmmem.so
#/usr/lib/arm-linux-gnueabihf/libarmmem-v8l.so
@@ -120,7 +120,7 @@ qemu-system-arm "${QEMU_OPTS[@]}"
mount "${LOOP_MAPPER_PATH}" "${MOUNT_POINT}"
cp -av "${OVERWRITE_FILES_AFTER_INIT_DIR}"/* "${MOUNT_POINT}"
find "${MOUNT_POINT}"/usr -type f -name "*.iotpatch"|while read iotpatch; do
find "${MOUNT_POINT}"/ -type f -name "*.iotpatch"|while read iotpatch; do
DIR=$(dirname "${iotpatch}")
BASE=$(basename "${iotpatch%.iotpatch}")
find "${DIR}" -type f -name "${BASE}" ! -name "*.iotpatch"|while read file; do
@@ -1,6 +1,6 @@
#!/bin/sh
wget 'http://downloads.raspberrypi.org/raspbian_lite/images/raspbian_lite-2019-04-09/2019-04-08-raspbian-stretch-lite.zip' -O raspbian.img.zip
wget 'http://downloads.raspberrypi.org/raspbian_lite/images/raspbian_lite-2019-09-30/2019-09-26-raspbian-buster-lite.zip' -O raspbian.img.zip
unzip raspbian.img.zip
wget 'https://github.com/dhruvvyas90/qemu-rpi-kernel/raw/master/kernel-qemu-4.14.79-stretch' -O kernel-qemu
wget 'https://github.com/dhruvvyas90/qemu-rpi-kernel/raw/master/versatile-pb.dtb'