Search the OSCAR Documentation
< All Topics
Print

Software Version Notes

Document Version History

  • v1.0 – initial OSCAR 19 version published to worldoscar.org – Nov 1, 2021
  • v1.0 – MariaDB password authentication notes – Jan 18, 2022

Copyright © 2021-2022 by Peter Hutten-Czapski MD under the Creative Commons Attribution-Share Alike 3.0 Unported License

Life Cycles and End of Life

Each bit of software in OSCAR has a lifecycle

OSCAR 15 and prior versions are End of Life and no longer supported. The current version at the time of this writing is OSCAR 19. OSCAR depends on a software stack that has various end of life dates. The following are reference installation environments tested and recommended for installing OSCAR debs. They are not dependencies per se but rather supported combinations that worked at the time. Thus earlier and later software combinations may and do work but are not the default installation. Expiry dates are for the combination of software that form the stack although some component may still be maintained past that date. Note that future expiry dates are provisional.

OSCARJavaTomcatDatabaseUbuntuEOL
10.12Sun Java 66MySQL 5.110.042012
12Sun Java 66MySQL 5.112.042013
12_1Sun Java 66MySQL 5.514.042016
14Oracle Java 76 MySQL 5.5 14.042015
15Oracle Java 77 MySQL 5.5 14.042017
15Oracle Java 87MariaDB 10.016.042018
15Open JDK 87 MariaDB 10.0 18.042021
19Open JDK 88.5 MariaDB 10.1 18.042023
19Open JDK 119 MariaDB 10.3 20.042025
19Open JDK 179MariaDB 10.622.042026

Notes on Java

Note that Oracle Java requires a commercial license to run OSCAR in production as of Jan 2019

Lifespans of various Java (Non paid security support end dates)

  • Java 6 2006-Dec 2013
  • Java 7 2011-April 2015
  • Java 8 LTS 2014-Mar 2025
  • Java 9 2017-March 2018
  • Java 10 2018-Sept 2018
  • Java 11 LTS 2018-Mar 2026
  • Java 17 LTS 2021-Sept 2027+
  • *Java 21 LTS 2023-Sept 2028

OSCAR 19 code technically remains Java 6 compliant, however on Dec 13 2021 builds of oscar_emr19-47~1479.deb and newer are now exclusively compiled against Open JDK 8.

Open JDK is a project controlled by Oracle who currently only supports a version for 6 months or so.  After that the community takes over support.  AdoptOpenJDK provides extended security support and binaries for anyone’s use including Linux distributions.

Open JDK is provided by many binaries (look for ones that are Java SE compatible) including those provided by AdoptOpenJDK, Zulu, J9, Corretto, etc and those packaged by many Linux distros including Ubuntu. 

The OSCAR 19 war package has been tested in production environments with Ubuntu JDK 8, Eclipse J9 JDK8 and Zulu JDK 8. Java 11 and Java 17 support was introduced in the oscar_emr19-46~1364.deb of Nov 1, 2021.

The Eclipse J9 is suggested if you are having Java errors with the Ubuntu package. Its JVM is completely different than hotspot which may be a performance advantage.  If you add the repository as below it will also get automated updates.

$ wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | sudo apt-key add -
$ sudo add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ 
$ apt-get update 
$ apt-get install adoptopenjdk-8-openj9

Test if desired (your output will be slightly different):

$ java -version
openjdk version "1.8.0_292"
OpenJDK Runtime Environment (build 1.8.0_292-b10)
Eclipse OpenJ9 VM (build openj9-0.17.0, JRE 1.8.0 Linux amd64-64-Bit Compressed References 20191017_442 (JIT enabled, AOT enabled)
OpenJ9 - 77c1cf708
OMR - 20db4fbc
JCL - 97b5ec8f383 based on jdk8u232-b09)

For a new install the DEB will pick the update-alternatives configured at time of installation regardless of brand.  If you change the configured Java after initial installation Tomcat 9 will follow you to the new version. However it is still suggested that you manually change to the correct JDK with the $JAVA_HOME setting with the following

$ sudo nano /etc/default/tomcat9

For example below we have commented out the Ubuntu open JDK and configured J9

#JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
JAVA_HOME=/usr/lib/jvm/adoptopenjdk-8-openj9-amd64

Notes on wkhtmltopdf

The Ubuntu installed version of wkhtmltopdf is probably fine. If it isn’t (it may not if you have a headless server), the wkhtmltopdf maintained by the developers has a patched QT and more features.  Currently the list of additional features include:

  • Running without an X11 server.
  • Printing more than one HTML document into a PDF file.
  • Adding a document outline to the PDF file.
  • Adding headers and footers to the PDF file.
  • Generating a table of contents.
  • Adding links in the generated PDF file.
  • Printing using the screen media-type.
  • Disabling the smart shrink feature of webkit.

The only feature that OSCAR has to have in a headless server is the ability to run without  X11.  The ability to disable the smart shrink can solve some output issues. You can get this version from the developer, and then install it and its dependencies with apt. You are on your own to notice download and install newer versions.  Note that versions 12.6 and above disable local file access by default and may need additional work to run with OSCAR.

For OSCAR to pick up this binary either change the OSCAR property file or make a link

sudo ln -s /usr/local/bin/wkhtmltopdf /usr/bin/wkhtmltopdf

Test it to check the resultant pdf to see that it has the following output and displays correctly.

$ wkhtmltopdf -s Letter -T 10mm -L 8mm -R 8mm --print-media-type --disable-smart-shrinking --enable-local-file-access http://worldoscar.org test.pdf
Loading pages (1/6)
Counting pages (2/6)                                               
Resolving links (4/6)                                                       
Loading headers and footers (5/6)                                           
Printing pages (6/6)
Done

Notes on MySQL and MariaDB

  • MariaDB 5.3 2012-Mar 2017
  • MariaDB 5.5 2012-Apr 2020
  • MariaDB 10.0 2014-Mar 2019
  • MariaDB 10.1 2015-Oct 2020
  • MariaDB 10.3 2018- May 2023
  • MariaDB 10.4 2019 – June 2024
  • MariaDB 10.5 2020 – June 2025
  • MariaDB 10.6 2021 – July 2026
  • MariaDB 10.8 2022 – July 2027

While OSCAR previously used MySQL, MySQL 5.7 and newer do not natively support OSCAR 15 although this is technically possible with modification. The MariaDB database is a binary compatible fork of MySQL. Its developers (who founded MySQL) claim that it is faster than MySQL and better optimized. Advanced cluster replication is available but varies from MySQL.

The unix plugin prevents non system root users from logging in to MariaDB, but allows for root users to log in to MariaDB directly without a password. By removing the plugin everyone (including the non privileged tomcat user who has to access it without root access) can, and has to, sign into MariaDB by providing the MariaDB password.

Earlier MariaDB used the mysql method to disable the unix plugin to allow for password based access

MariaDB [none]> use mysql;
MariaDB [mysql]> update user set plugin='' where User='root';
MariaDB [mysql]> flush privileges;
MariaDB [mysql]> quit

Current MariaDB allow the unix plugin to be disabled in the following

ariaDB password to replace ****** below

MariaDB [(none)]> ALTER USER [email protected] IDENTIFIED VIA mysql_native_password; 
MariaDB [(none)]> SET PASSWORD = PASSWORD('*******');

MariaDB 10.2.4 and newer add in additional complications from strict mode enforcement of certain limits in its default configuration for Ubuntu. To meet them various OSCAR 19 tables have been altered from varchar to TEXT and several legacy forms have been removed. Strict mode and other default restrictions adds certain safeties. ONLY If you need those forms you should edit my.cnf [mysqld] section to override the default sql_mode. sql_mode= can be set blank or to any of the options supported, just avoid the ones that sound strict.

These newer MariaDB require another approach to setup password based access as detailed in the instructions for Ubuntu 20.04 and newer and referenced https://mariadb.com/kb/en/authentication-plugin-unix-socket/

Previous Online Booking
Next SRFax Gateway
Table of Contents