commit 2809ff79ea051ee508574c3067e0fbb4497f32bb1a0894e7bcc41aca683126eb Author: Axel Braun Date: Fri Aug 2 12:08:14 2024 +0000 - version 4.4.1 * Issue #15: readfp on setup.py no longer supported since python 3.12 * Issue #33: health orthanc: Errors on imaging request when worklist template set on imaging test type OBS-URL: https://build.opensuse.org/package/show/Application:ERP:GNUHealth:Factory/gnuhealth?expand=0&rev=123 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/GNUHealth.README.openSUSE b/GNUHealth.README.openSUSE new file mode 100644 index 0000000..5b21282 --- /dev/null +++ b/GNUHealth.README.openSUSE @@ -0,0 +1,216 @@ +GNUHealth for openSUSE +====================== + +Note for GNU Health 4.0 and above: +When installing GNU Health 4.0 or higher, note that dependency on postgresql-server is now 'Recommends'. +This helps keeping the installation lean when running Postgresql on a separate server. +If you are using --no-recommends for installation, you need to install postgresql-server additionally. +If you install with recommendations, postgresql-server is installed automatically. + +How to get it running (Without reading the instructions) +======================================================== + +You have already installed the package gnuhealth and found this documentation. Good. + +As very easy and convenient way to do all required settings, log in as user root and run openSUSE-gnuhealth-setup: + +> su +> openSUSE-gnuhealth-setup setup + +You can follow the proposals given, anyway, **it is not recommended to use default settings for a production environment** + + +The above setup-program automates the steps below, which you could do as well manually, if desired. +(If you have run openSUSE-gnuhealth-setup, the below steps are not needed additionally!) + +1) Log in as root and start the database +> su +> systemctl start postgresql + +2) Change postgres parameters. You need to log in as user postgres, in order to avoid authorisation issues. Assuming we have nano as editor: + + +> su postgres +> nano /var/lib/pgsql/data/pg_hba.conf + +FOR LOCAL CONNECTIONS (Database on the same machine) change the line + local all all md5 +to + local all all trust + +(you can put an even higher security level by setting + local $DATABASE tryton trust +as explicit access rule for the database $DATABASE - note that only user tryton can access this!) + +Save your input. This will make sure that Tryton/GNUHealth server can connect to the database + +3) Create a role for 'tryton' in the database (still as user postgres) +> psql -c "CREATE USER tryton WITH CREATEDB;" + +4) Creating the database: +> createdb mydb --encoding='UTF-8' --owner=tryton + +5) exit as user postgres and restart postgres +> exit +> systemctl restart postgresql + +Note: The owner of the database should be the same user, as under which the +tryton server runs (default:tryton) + +6) Initializing the database: +Log in as user tryton: + +> sudo su tryton -s /bin/bash +> /usr/bin/trytond-admin -c /etc/tryton/trytond.conf --all -d mydb + +Note: Use the database name you chose in the previous step (here as default: mydb). +You will be asked for the admin password for this database. +For the first login, log in to the newly initialized database with user 'admin' and password as set during initialization. + +As result you will have a bare GNU Health database with the base modules installed. + +7) Start the Gnuhealth-Server: +> systemctl start gnuhealth + +DONE. + +You may want to install a Client locally: + +8) Install the GNU Health client: +> zypper in gnuhealth-client + +9) Open the GNU Health client: +> gnuhealth-client +go to 'manage profiles' -> add -> name it 'localhost' -> Host: localhost +-> you should now see a selection of available databases + +DONE. (now really) + +Upgrade +======= + + * openSUSE supports online upgrade (zypper dup) between releases. + + * In case you upgrade from a previous GNU Health make sure you apply the + upgrade procedures described in /usr/share/doc/packages/gnuhealth/upgrade. + + Afterwards, as user tryton, run tryton-admin to update your installation: + + > /usr/bin/trytond-admin -c /etc/tryton/trytond.conf --all -d mydb + + * In case you are updating your installation from openSUSE Leap 42.2 to 42.3, the following message will appear: + + Problem: gnuhealth-3.2.0-12.1.noarch requires python3-PyWebDAV3-GNUHealth, but this requirement cannot be provided + uninstallable providers: python3-PyWebDAV3-GNUHealth-0.10.1-1.1.noarch[repo-oss] + Solution 1: keep obsolete gnuhealth-3.0.8-11.6.1.noarch + Solution 2: deinstallation of python-PyWebDAV-0.9.8-1.1.noarch + Solution 3: break gnuhealth-3.2.0-12.1.noarch by ignoring some of its dependencies + + This message is somewhat misleading, as the new python3-PyWebDAV3-GNUHealth conflicts with python-PyWebDAV. + Go for Solution 2 + + * GNU_Health 3.0 on openSUSE delivered 2 modules, which are not (yet) in 3.2 + anymore: pdq and hl7. You need to delete them first + + Log in as database owner (usually tryton): + + > sudo su tryton -s /bin/bash + + Delete the 2 modules: + > psql mydb + delete from ir_module where name='pdq'; + delete from ir_module where name='hl7'; + + Quit with CRTL-D + Apply the database patch: + + > psql mydb < /usr/share/doc/packages/gnuhealth/upgrade/3.2/upgrade_32.sql + + Remember to replace mydb with the name of your database. + + +GNUHealth for openSUSE (a bit more in detail) +============================================= + +GNUHealth is a free Health and Hospital Information system build on top of Tryton, an OpenSource ERP framework. + +This is the openSUSE package for GNUHealth. Starting with openSUSE Leap 42.2, it is shipped with the standard distribution. It was build to simplify the installation and maintenance of a system, to make it useable for 'end-users' as well. + +To achieve this goal, the openSUSE package handles some things different than the GNUHealth standard: + +1) No installation from source code +GNUHealth has an installation script (gnuhealth_install.sh) that installs the Software from the source code. +It has shown that this can cause a lot of trouble with dependencies (other software packages that are required to run GNUHealth and the Tryton Server), as they may be named slightly different in your Linux-distribution, or are just not listed. + +To avoid hassle for each and every end user, openSUSE uses the Open Build Service [1] to create a package where all dependencies are resolved for you. + +As a consequence, you install the package 'gnuhealth' with the openSUSE package manager, and the system does the rest for you. See [2] for installation advise. + +In GNU Health installation from source, the program gnuhealth_control is used to perform updates, maintenance etc. The openSUSE packages come with a modified gnuhealth_control to distinguish between activities performed by system tools (zypper) and those that safely can be handled by gnuhealth_control. Try it, its save! + +2) GNUHealth depends on Tryton +Tryton [3] is the technical backend for GNUHealth. Tryton can run as ERP-System on its own. For the reasons explained under 1) , Tryton is build as well as package for openSUSE, following the same philosophy. See [4]for details. + +See as well: /usr/share/doc/packages/trytond/tryton-server.README.SUSE to set up your local installation. + +3) GNUHealth is build on top of Tryton +Unlike the standard GNUHealth setup, openSUSE treats GNUHealth as add-on (additional modules) to a Tryton standard installation. The implications are: + +- The Tryton Server (basis for GNUHealth) runs under the user 'tryton', not under the user 'gnuhealth' +- you can use the openSUSE standard tools to start and stop the server [4] +- you can use the openSUSE package manager (zypper or YaST) to install upgrades. +- all Tryton and GNUHealth modules are installed in the python directory /usr/lib/python/site-packages/trytond + +Nevertheless, you can use gnuhealth-control to create database backups, install languages and updates. Make sure the version of gnuhealth-control ends on -openSUSE. gnuhealth-control should run as root, if in doubt. + +In case you want to install additional Tryton modules, you need to include the Tryton repository: +zypper ar -f http://download.opensuse.org/repositories/Application:/ERP:/Tryton:/4.2/openSUSE_Leap_42.3 tryton + +You may use the GNUHealth mailing list (health@gnu.org) for remarks or questions. + +gnuhealth-webdav@.service +========================= + +Starting with GNU Health 3.2, GNU Health comes with its own WebDAV-Server that can be used for shared calendars. In order to enable the WebDAV server, it comes with a systemd-service. As input parameter for the service the database-name on which to operate must be passed. Say your database is called mydb, invoke the service with + +> systemctl enable gnuhealth-webdav@mydb.service + +You can start multiple webdav services for different databases in parallel. + +Installation of the Demo-DB +=========================== + +GNU Health provides a demo database (same as on the demo server). To install the DB +proceed as follows: + +log in as user postgres and change directory to /tmp +> su +> su postgres +> cd /tmp + +run the installation script: + +> install_demo_database.sh 36 + +The script expects the major release of GNU Health (3.6 in this case) + +Digital Signatures +================== + +In order to make use of GNUHealth's capabilities to digitally sign documents, you need to create a PGP-key for the user logged in to the operating system. + +From the start menu, start the program Kgpg and follow the instructions, it will guide you through the process of key generation. Choose the maximal key length (4096). +Use a passphrase with Capital letters, small letters, numbers and special characters (like %$ยง etc) and have at least 12 digits for the passphrase - the more, the better. +Keep the passphrase in a secure location, and take a backup of the PGP keys (located in ~/gnupg - in the live CD this is /home/gnuhealth/.gnupg ). + + +Have fun and keep the neighborhood well and fit! + + +[1] https://build.opensuse.org +[2] http://en.wikibooks.org/wiki/GNU_Health/Operating_System-Specific_Notes#OpenSUSE +[3] http://www.tryton.org +[4] https://github.com/mbehrle/tryton/blob/wiki/InstallationonopenSUSE.md + + + -- Axel Braun Sun Mar 06 10:12:31 UTC 2022 diff --git a/_service b/_service new file mode 100644 index 0000000..aa59ca1 --- /dev/null +++ b/_service @@ -0,0 +1,4 @@ + + + + diff --git a/gnuhealth b/gnuhealth new file mode 100644 index 0000000..04851e3 --- /dev/null +++ b/gnuhealth @@ -0,0 +1,46 @@ +#!/bin/bash + +# GNU Health dummy program - for thos who dont read manuals + +############################################################################## +# +# GNU Health dummy +# +# Copyright (C) 2018 Axel Braun +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +############################################################################## + +cat << EOF + +You have installed GNU Health and no idea how it should work. +(Otherwise you would not see this message) + +How about reading a fine manual? You find it at +/usr/share/doc/packages/gnuhealth/GNUHealth.README.SUSE + +Or the openSUSE wiki at +https://en.opensuse.org/GNUHealth_on_openSUSE + +Or see the full documentation at +https://en.wikibooks.org/wiki/GNU_Health + +Want to start immediately with some configuration? +Run openSUSE-gnuhealth-setup + +Whatever you do...have fun! + +EOF + exit 0 diff --git a/gnuhealth-4.4.0.tar.gz b/gnuhealth-4.4.0.tar.gz new file mode 100644 index 0000000..4477751 --- /dev/null +++ b/gnuhealth-4.4.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b49f43c73720e43b53a6e02cdec3315652ae50578523f9198943e074c387f7c3 +size 18646203 diff --git a/gnuhealth-4.4.0.tar.gz.sig b/gnuhealth-4.4.0.tar.gz.sig new file mode 100644 index 0000000..5b6e480 Binary files /dev/null and b/gnuhealth-4.4.0.tar.gz.sig differ diff --git a/gnuhealth-4.4.1.tar.gz b/gnuhealth-4.4.1.tar.gz new file mode 100644 index 0000000..8af0ce6 --- /dev/null +++ b/gnuhealth-4.4.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a46ce0461bb451a79f4d40a570a700d5dd28361d3e012d410198a4e159c69481 +size 18685767 diff --git a/gnuhealth-4.4.1.tar.gz.sig b/gnuhealth-4.4.1.tar.gz.sig new file mode 100644 index 0000000..bf56444 Binary files /dev/null and b/gnuhealth-4.4.1.tar.gz.sig differ diff --git a/gnuhealth-control b/gnuhealth-control new file mode 100644 index 0000000..83dd122 --- /dev/null +++ b/gnuhealth-control @@ -0,0 +1,284 @@ +#!/bin/bash + +# gnuhealth-control +# The GNU Health control center for openSUSE Installations + +############################################################################## +# +# GNU Health: The Free Health and Hospital Information System +# Copyright (C) 2008-2015 Luis Falcon +# Adaption to openSUSE Axel Braun +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +############################################################################## + +VERSION="3.8.0-openSUSE" + +TRANSLATE_URL="https://hosted.weblate.org" +GNUHEALTH_DIR=$(rpm --eval '%python3_sitelib')/trytond/modules +UPDATE_DOWNLOAD_DIR=$(mktemp -d) + +usage() +{ + cat << EOF + +This is GNU Health control center ${VERSION} + +usage: `basename $0` command [options] + +Command: + + version : Show version + backup : Backup the gnuhealth kernel, attach dir and database + update : Download and install the patches + getlang : Get and install / update the language pack code + status : Show environment and GNU Health Tryton server status + +Options: + + --backdir : destination directory for the backup file + --dry-run : Check, download and preview, but don't actually update process + --database : database name to use with the backup command + +EOF + exit 0 +} + +help() +{ + cat << EOF + The GNU Health Control Center (gnuhealth-control) is the main tool for + administrative tasks of the GNU Health environment. + + It can perform backups and updates of the instance + + Updates + ------- + + Use the system tools to update GNU Health: + zypper up + will update all packages to the latest version. This includes Tryton Server + as well as GNU Health. + +EOF + usage + exit 0 +} + +cli_msg() +{ + local UTC="$(date -u +'%Y-%m-%d %H:%M:%S')" + + case $1 in + ERROR ) echo -e "\e[00;31m${UTC} [ERROR] $2\e[00m";; + WARNING ) echo -e "\e[0;33m${UTC} [WARNING] $2\e[m" ;; + INFO ) echo -e "\e[0;36m${UTC} [INFO] $2\e[m" ;; + esac +} + +get_current_values() +{ + + cli_msg "INFO" "Environment variables" + cli_msg "INFO" "PYTHONPATH = $PYTHONPATH" + +} + +do_backup() +{ + + get_current_values + + local COMMAND=$1 + local BACKDATE=`date -u +%Y-%m-%d_%H%M%S` +# lockfile is moved to a location not writeable/predictable by user + local LOCKFILE="/var/run/gnuhealth_backup.lock" +# Infofile is moved to a location not writeable by user + local INFOFILE="/var/log/gnuhealth_backup.log" + local BACKDIR="" + local DB="" + + + shift # Remove the command and deal only with the options + + if [ $# -ne 4 ]; then + echo -e "Usage : gnuhealth-control backup --backdir --database " + exit + fi + + for option in "$@" + do + case $option in + --backdir ) BACKDIR=$2;; + --database ) DB=$2 ;; + esac + shift + done + + if [ -f $LOCKFILE ] + then + cli_msg "ERROR" "Backup in progress or stale lock file found ..." | tee -a $INFOFILE + exit 1 + fi + + + if [ ! -e ${BACKDIR} ] + then + cli_msg "ERROR" "Backup directory ${BACKDIR} not found !" + exit 1 + fi + + echo $$ > $LOCKFILE + + # Backup start + + cli_msg "INFO" "START Database Backup" | tee -a $INFOFILE + + pg_dump --username=tryton -w --role=tryton $DB > $BACKDIR/backup\_$DB\_$BACKDATE || bailout + + cli_msg "INFO" "Compressing Database Backup" | tee -a $INFOFILE + + gzip "${BACKDIR}/backup_${DB}_${BACKDATE}" || bailout + + cli_msg "INFO" "Compressing GNU Health Attachment directory" | tee -a $INFOFILE +#AB - start + BACKUP_NAME=gnuhealth_${DB}_fs_backup_${BACKDATE}.tar.gz +# tar -cvzf "${BACKDIR}/gnuhealth_${DB}_fs_backup_${BACKDATE}.tar.gz" /var/lib/tryton || bailout + tar -cvzf "${BACKDIR}/${BACKUP_NAME}" /var/lib/tryton || bailout + + cli_msg "INFO" "Creating tarball with compressed DB and GNU Health Attachment directory" | tee -a $INFOFILE + + tar -cvf "${BACKDIR}/gnuhealth_${DB}_with_fs_backup_${BACKDATE}.tar" \ + ${BACKDIR}/backup_${DB}_${BACKDATE}.gz ${BACKDIR}/${BACKUP_NAME} \ + || bailout + + cli_msg "INFO" "Backup successfully written to ${BACKDIR}/gnuhealth_${DB}_with_fs_backup_${BACKDATE}.tar" | tee -a $INFOFILE +#AB - END +#Remove lock file + rm $LOCKFILE + +} + +check_status() +{ + + systemctl status gnuhealth + +} + +check_download_dir() +{ + if [ -d $UPDATE_DOWNLOAD_DIR ]; then + echo "Update download directory exists. Bailing out" + exit 1 + fi +} + +check_updates() +{ + + cli_msg "INFO" "Running zypper to check for updates" + zypper lu | grep "trytond , gnuhealth" + +} + +install_updates() +{ + + if [ $2 == "--dry-run" ];then + zypper up -D -- "trytond*" "gnuhealth*" + exit 0 + fi + + sudo zypper up -- "trytond*" "gnuhealth*" + +} + +relink_mods() +{ + + sudo systemctl restart gnuhealth + +} + +do_update() +{ + if [ $# -gt 1 ];then + if [ $2 != "--dry-run" ];then + cli_msg "ERROR" "Unrecognized update option" + exit 1 + fi + fi + + check_download_dir + get_current_values + check_updates + if [ $# -gt 1 ];then + if [ $2 == "--dry-run" ];then + exit 0 + fi + fi + install_updates +# remove_old + relink_mods +} + +getlang() { + if [ $# -eq 1 ]; then + usage + fi + + local lang_to_install=$2 + local lang_file=${lang_to_install}.zip + cli_msg "INFO" "Going to modules directory ${GNUHEALTH_DIR} " + + cd ${GNUHEALTH_DIR} || exit 1 + cli_msg "INFO" "Retrieving language pack file for ${lang_to_install}" + wget ${TRANSLATE_URL}/download-language/${lang_to_install}/gnu-health/?format=zip -O $UPDATE_DOWNLOAD_DIR/${lang_file} || exit 1 + cli_msg "INFO" "Installing / Updating language files for ${lang_to_install} ..." + bsdtar --strip-components 3 -xzf $UPDATE_DOWNLOAD_DIR/${lang_file} || exit 1 + cli_msg "INFO" "Language pack ${lang_to_install} sucessfully installed / updated" + chmod -R a+r ${GNUHEALTH_DIR} + cli_msg "INFO" "Read permissions set" + cli_msg "INFO" "You now need to update the database modules" + +} + +bailout() { + cli_msg "ERROR" "Bailing out !" + cli_msg "ERROR" "Removing backup lock file" + rm -f $LOCKFILE + rm -rf $UPDATE_DOWNLOAD_DIR + exit 1 +} + +parse_command_line() +{ + if [ $# -eq 0 ]; then + usage + fi + + case $1 in + version) echo $VERSION;; + backup) do_backup $@;; + update) do_update $@;; + status) check_status;; + getlang) getlang $@;; + help) help;; + *) echo $1: Unrecognized command; exit 1;; + esac +} + +parse_command_line $@ diff --git a/gnuhealth-rpmlintrc b/gnuhealth-rpmlintrc new file mode 100644 index 0000000..f77bda0 --- /dev/null +++ b/gnuhealth-rpmlintrc @@ -0,0 +1,5 @@ +# false positive: the lib dependency check is wrong here +# ignore the warning for now +addFilter("explicit-lib-dependency python3-passlib"); +# ignore suse-missing-rclink +addFilter("suse-missing-rclink gnuhealth"); diff --git a/gnuhealth-webdav@.service b/gnuhealth-webdav@.service new file mode 100644 index 0000000..29ddf3c --- /dev/null +++ b/gnuhealth-webdav@.service @@ -0,0 +1,34 @@ +[Unit] +Description=WebDAV Server for GNU Health on Database %I +After=syslog.target +Requires=gnuhealth.service + +[Service] +# added automatically, for details please see +# https://en.opensuse.org/openSUSE:Security_Features#Systemd_hardening_effort +ProtectSystem=full +ProtectHome=true +PrivateDevices=true +ProtectHostname=true +ProtectClock=true +ProtectKernelTunables=true +ProtectKernelModules=true +ProtectKernelLogs=true +ProtectControlGroups=true +RestrictRealtime=true +# end of automatic additions +Type=simple +User=tryton +Group=tryton +PIDFile=/var/lib/trytond/gnuhealth-webdav.pid + +ExecStart=/usr/bin/gnuhealth-webdav-server -c /etc/tryton/trytond.conf -d %I -v + +# Give a reasonable amount of time for the server to start up/shut down +TimeoutSec=300 + +# We rely on systemd to restart WebDAV Server if it dies +Restart=always + +[Install] +WantedBy=multi-user.target diff --git a/gnuhealth.changes b/gnuhealth.changes new file mode 100644 index 0000000..f0ee768 --- /dev/null +++ b/gnuhealth.changes @@ -0,0 +1,528 @@ +------------------------------------------------------------------- +Fri Aug 2 11:47:44 UTC 2024 - Axel Braun + +- version 4.4.1 + * Issue #15: readfp on setup.py no longer supported since python 3.12 + * Issue #33: health orthanc: Errors on imaging request when worklist + template set on imaging test type + +------------------------------------------------------------------- +Tue Feb 27 11:01:43 UTC 2024 - Dominique Leuenberger + +- Use %patch -P N instead of deprecated %patchN. + +------------------------------------------------------------------- +Sat Jan 6 09:09:19 UTC 2024 - Axel Braun + +- Switch Leap packages to Python 3.11 + shebang.diff removed (call in spec file) + +------------------------------------------------------------------- +Sat Dec 23 17:04:58 UTC 2023 - Axel Braun + +- version 4.4.0 + See Changelog for details + +------------------------------------------------------------------- +Tue Oct 17 11:47:48 UTC 2023 - Daniel Garcia Moreno + +- Remove %python3_install prefix and root options, that's included in + the macro by default. + +------------------------------------------------------------------- +Sun Sep 24 19:20:07 UTC 2023 - Axel Braun + +- version 4.2.3 + * Fix bug #64706: Error saving party with photo due to PIL deprecation of ANTIALIAS + +------------------------------------------------------------------- +Sun Sep 17 20:16:03 UTC 2023 - Axel Braun + +- version 4.2.2 + * Fix [bug #64665] Product cost_price needs to be passed as an argument in stock moves + * Fix bug #64530: traceback on evaluation page of life if no institution is given + * Fix bug #64457: Patient automatic critical information entries should be unique + * Fix bug #64432: Gestational weeks show floating point instead of weeks + +------------------------------------------------------------------- +Fri Apr 7 20:06:56 UTC 2023 - Axel Braun + +- version 4.2.1 + * Fix bug TypeError: unsupported operand type(s) for &=: 'bool' and 'GreaterEqual' + * Fix bug #63871: Imaging Result Report: genshitemplateevalUndefinedError: None has no member named 'rec_name' + * Fix bug #64009: Include signing health professional and avoid scrolling in patient evaluation + * Fix bug #64014: Update gender identity in patient evaluations and reports + +------------------------------------------------------------------- +Sun Feb 12 13:38:44 UTC 2023 - Axel Braun + +- version 4.2.0 + * Enhanced Medical Imaging functionality and ergonomics. + * Introduced GNU Health "Focus on" section on patient main form. + * Surgery package has been vastly revised and enhanced in collaboration + with our colleagues from Cirugia Solidaria + * Enhanced Insurance and billing functionality. + * The Vital Record System (VRS) can now issue reports on birth and + death certificates. + * Demographics can now accept entering estimate age / DoB. + * Health services has now the functionality of "grouping" all the tests + from a single order - lab and medical imaging. + * Improved Patient encounter / evaluation. + * Weblate translations holds 35 languages + * On the technical side, we have improved unit testing on each package, + speedup load times on large datafiles and using python-sql for most + queries. + * GNU Health is now REUSE (Free Software Foundation Europe) compliant. + +------------------------------------------------------------------- +Thu Jun 16 15:37:00 UTC 2022 - Axel Braun + +- version 4.0.4 + * various bugfixes - see changelog for details + +------------------------------------------------------------------- +Sat Apr 2 16:42:22 UTC 2022 - Axel Braun + +- version 4.0.3 + * Remove pinning from vobject library version (Vanilla installation) + * fix bug #62235: Traceback on default health professional + +------------------------------------------------------------------- +Wed Mar 23 07:34:28 UTC 2022 - Axel Braun + +- version 4.0.2 + * Use ODT binary format for pediatric growth charts reports + * Force Beren library to 0.7.0 to make it compatible with Python 3.6 + * Allow Python minor versions > 10 (ej Python 3.10.2) + * fix webdav import error, bug #62165 + +------------------------------------------------------------------- +Sun Mar 6 10:01:47 UTC 2022 - Axel Braun + +- version 4.0.0 + * based on Tryton 6.0 + * Improved ergonomics on the GTK client + * New HELP command that allows offline and contextualized documentation + * WebDAV and CalDAV packages are fully integrated in GH (no links) + * Weblate now holds 34 language teams! + * Removed obsoleted binary ODT (except for some charts) + * Improved integration with OpenStreetMap (OSM) + * Improved surgery and patient evaluation flows + * New health service Dx imaging package + * Update person gender list + * Add medical evaluations to health services + * Include (optional) expiration date on the person ID + * Add context field for Dx Imaging and Lab tests + +------------------------------------------------------------------- +Fri Apr 16 17:16:20 UTC 2021 - Axel Braun + +- update to gnuhealth-control + +------------------------------------------------------------------- +Wed Mar 24 17:21:38 UTC 2021 - Axel Braun + +- Variable for EDITOR set + +------------------------------------------------------------------- +Sat Feb 27 08:14:29 UTC 2021 - Andreas Stieger + +- add upstream signing key and verify source signature + +------------------------------------------------------------------- +Tue Feb 16 09:08:02 UTC 2021 - Axel Braun + +- python_dependency_generator removed + +------------------------------------------------------------------- +Mon Feb 15 10:43:42 UTC 2021 - Axel Braun + +- version 3.8.0 + dentistry package added + +------------------------------------------------------------------- +Tue Dec 22 14:35:56 UTC 2020 - Axel Braun + +- Documentation added to package description + +------------------------------------------------------------------- +Fri Aug 21 13:01:13 UTC 2020 - Axel Braun + +- version 3.6.5 + HMIS: Update to 3.6.5 including ICD10 codes 2020 + +------------------------------------------------------------------- +Tue Jul 21 12:19:29 UTC 2020 - Axel Braun + +- Readme renamed (SUSE -> openSUSE) + gnuhealth: Link to oS wiki added + +------------------------------------------------------------------- +Thu Jun 25 08:23:34 UTC 2020 - Axel Braun + +- gnuhealth-control updated to 3.6.5-openSUSE + * change of translation server for language packs + +------------------------------------------------------------------- +Thu May 21 09:06:00 UTC 2020 - Axel Braun + +- fixed different behviour of bsdtar in script and shell (gnuhealth-control) + +------------------------------------------------------------------- +Tue May 19 09:25:34 UTC 2020 - Axel Braun + +- version 3.6.4 of gnuhealth-control + +------------------------------------------------------------------- +Mon May 18 08:58:26 UTC 2020 - Axel Braun + +- python3-matplotlib got lost.....added + +------------------------------------------------------------------- +Sat May 16 16:16:58 UTC 2020 - Axel Braun + +- Version 3.6.4 + additional functionality for COVID-19 and epidemiology tracing + new epidemiology evaluations + lab1.diff and lab2.diff removed, included in new version + +------------------------------------------------------------------- +Wed Apr 22 09:42:49 UTC 2020 - Axel Braun + +- pre-release of 3.6.4 covering improved diagnostics on COVID-19 + lab1.diff and lab2.diff added + +------------------------------------------------------------------- +Sun Apr 5 08:10:02 UTC 2020 - Axel Braun + +- correction for service file + +------------------------------------------------------------------- +Tue Mar 31 16:09:25 UTC 2020 - Axel Braun + +- update for boo#1167126, 1167128 + +------------------------------------------------------------------- +Tue Mar 17 13:32:03 UTC 2020 - Axel Braun + +- clean up of spec file to get rid of warnings + added gnuhealth-rpmlintrc + +------------------------------------------------------------------- +Sat Mar 14 15:24:49 UTC 2020 - Axel Braun + +- gnuhealth-control 3.6.3 - added chmod after getlang command + +------------------------------------------------------------------- +Mon Mar 2 19:25:36 UTC 2020 - Axel Braun + +- modified getlang to exclude 2 directories (otherwise initialization fails after language installation) + +------------------------------------------------------------------- +Fri Feb 28 11:24:46 UTC 2020 - Axel Braun + +- version 3.6.3 +* GH HMIS server. task #15562: Include coronavirus COVID-19 in ICD10 codes +* GH HMIS server. bug #57695: Traceback when creating a page of life associated to an empty evaluation +* GH HMIS server. task #15561: Werkzeug 1.0 is not compatible with Trytond 5.0 +* shebang.diff to fix /usr/bin/env + +------------------------------------------------------------------- +Thu Nov 21 14:40:47 UTC 2019 - Axel Braun + +- version 3.6.1 + demo.diff removed (included in 3.6.1) + +------------------------------------------------------------------- +Mon Nov 11 18:22:37 UTC 2019 - Axel Braun + +- demo.diff to update installation script for demo-db added + +------------------------------------------------------------------- +Tue Jun 11 16:10:20 UTC 2019 - Axel Braun + +- gnuhealth-control changed to version 3.4.1 + * use bsdtar (can handle zip files, tar can't) + +------------------------------------------------------------------- +Sun Mar 10 11:15:13 UTC 2019 - Axel Braun + +- version 3.4.1 various bugfixes, e.g. + bug #55594: Traceback when creating a person without a system institution + bug #55595: Remove unimplemented functionality fields from Federation Country + +------------------------------------------------------------------- +Thu Feb 28 20:15:19 UTC 2019 - Axel Braun + +- add dependency for bsdtar (gnuhealth-control changed) + +------------------------------------------------------------------- +Sat Dec 29 16:40:16 UTC 2018 - Axel Braun + +- gnuhealth-webdav service adapted to new GH webdav server + +------------------------------------------------------------------- +Fri Dec 7 18:21:20 UTC 2018 - Axel Braun + +- New version 3.4.0 + * The GNU Health Federation model + * Thalamus message server + * New Health Information System (on MongoDB) + * Person Master Index + * MongoDB support (on the HIS) + * Updated UniprotKB database with over 30K protein natural variants + * Contextualized information on genetics and social determinants + * Genetic and family history and environmental factors integrated to + the Page of Life and Federation The GNU Health Book of Life + * Tryton 4.6 integration on the HMIS node + +------------------------------------------------------------------- +Thu Nov 15 09:28:38 UTC 2018 - Axel Braun + +- correction for gnuhealth-control (v 3.2.4) + +------------------------------------------------------------------- +Mon Aug 27 14:07:12 UTC 2018 - axel.braun@gmx.de + +- Adding a dummy executable called 'gnuhealth' with some help text + (boo#1107771) + +------------------------------------------------------------------- +Tue Jul 17 07:19:15 UTC 2018 - axel.braun@gmx.de + +- openSUSE-gnuhealth-setup: User tryton set to SUPERUSER + Documentation updated + +------------------------------------------------------------------- +Wed Jun 20 09:17:23 UTC 2018 - axel.braun@gmx.de + +- gnuhealth-control: added info about backup file + openSUSE-gnuhealth-setup added + +------------------------------------------------------------------- +Tue Jun 5 12:13:54 UTC 2018 - axel.braun@gmx.de + +- Version 3.2.10 + bug #54055: Caldav event does not update after changing the appointment + +------------------------------------------------------------------- +Fri Jan 19 15:36:11 UTC 2018 - axel.braun@gmx.de + +- added gnuhealth-client to documentation + +------------------------------------------------------------------- +Fri Dec 29 14:12:10 UTC 2017 - axel.braun@gmx.de + +- typo in documentation corrected + +------------------------------------------------------------------- +Sat Dec 9 18:17:59 UTC 2017 - axel.braun@gmx.de + +- documentation updated + +------------------------------------------------------------------- +Wed Dec 6 16:30:12 UTC 2017 - axel.braun@gmx.de + +- Version 3.2.9 + Fix bug #52580: Removing the patient field before saving the record generates an error + Fix bug #52579: some on_change numeric method operations generate traceback + Fix bug #52578: WHR should be on the same line as hip and waist fields + +------------------------------------------------------------------- +Wed Nov 15 22:01:40 UTC 2017 - axel.braun@gmx.de + +- removed pypi dependencies + +------------------------------------------------------------------- +Wed Nov 15 10:59:28 UTC 2017 - axel.braun@gmx.de + +- health_crypto. Fix bug #52366: Error when signing the death certificate + task #14626: Renaming Package names prefix trytond_ from Pypi. Update descriptions + task #14626: Renaming Package names prefix trytond_ from Pypi. Remove tryton from keywords + remove lingering egg-info dirs from webdav3 + +------------------------------------------------------------------- +Sun Oct 29 07:26:16 UTC 2017 - axel.braun@gmx.de + +- Version 3.2.6 + dependency on python3-pymongo removed + fix bug #52298: Traceback generating an invoice from service with an insurance policy plan + Fix bug #52275: Traceback when creating a free slot in appointments or work schedule + +------------------------------------------------------------------- +Wed Oct 18 19:14:54 UTC 2017 - axel.braun@gmx.de + +- Correction for gnuhealth-control (file not found in backup) + +------------------------------------------------------------------- +Sun Oct 8 19:47:40 UTC 2017 - axel.braun@gmx.de + +- version 3.2.5 + health, health_qrcodes : Fix bug #52179: Traceback due to obsolete unicode method in reports + +------------------------------------------------------------------- +Wed Oct 4 20:21:32 UTC 2017 - axel.braun@gmx.de + +- Version 3.2.4 + health_services: Fix bug #52160: Issues related to invoice type and domain when creating the service invoice + health_disability : Rename anf fix Amputation model description from Amputation to Prothesis + health : Prescription report . Include duration frequency selections strings for translation. Update conditional op. to Python3 (!=) + +------------------------------------------------------------------- +Wed Sep 27 14:59:40 UTC 2017 - axel.braun@gmx.de + +- gnuhealth-control corrected (message command) + +------------------------------------------------------------------- +Sat Sep 16 16:18:04 UTC 2017 - axel.braun@gmx.de + +- version 3.2.3 Fix bug #52038: Field history is repeated in the tree + view of the prescription line + +------------------------------------------------------------------- +Thu Sep 14 19:14:55 UTC 2017 - axel.braun@gmx.de + +- Documentation adapted + +------------------------------------------------------------------- +Mon Aug 28 19:29:06 UTC 2017 - axel.braun@gmx.de + +- version 3.2.2 + health_imaging : Update health professional retrieval to the current standard method + +------------------------------------------------------------------- +Tue Aug 8 18:51:23 UTC 2017 - axel.braun@gmx.de + +- added gnuhealth-webdav@.service +- updated documentation on gnuhealth-webdav@.service +- added alias cdutil for compatibility reasons (not really needed, + as binaries are in /usr/bin anyway) +- fixed path for cdexe + +------------------------------------------------------------------- +Sat Jul 22 16:13:36 UTC 2017 - axel.braun@gmx.de + +- version 3.2.1 + Fix view error on lab order + +------------------------------------------------------------------- +Tue Jul 11 15:25:45 UTC 2017 - axel.braun@gmx.de + +- update of documentation for upgrade from Leap 42.2 + +------------------------------------------------------------------- +Sun Jul 2 16:19:59 UTC 2017 - axel.braun@gmx.de + +- Version 3.2.0 + +------------------------------------------------------------------- +Sat Jun 24 10:56:45 UTC 2017 - axel.braun@gmx.de + +- Requirement on python3-PyWebDAV3-GNUHealth added + +------------------------------------------------------------------- +Tue Jun 20 15:26:18 UTC 2017 - axel.braun@gmx.de + +- GNU Health version 3.1.0b3 + +------------------------------------------------------------------- +Sun Mar 26 16:29:15 UTC 2017 - axel.braun@gmx.de + +- release 3.0.8 + [bug #50635] Missing declaration of view directory on setup.py on health_disability module + +------------------------------------------------------------------- +Tue Mar 14 21:10:27 UTC 2017 - axel.braun@gmx.de + +- Release 3.0.7 (bnc1026365) + +------------------------------------------------------------------- +Sat Feb 25 17:51:41 UTC 2017 - axel.braun@gmx.de + +- added DB-role to gnuhealh-control + updated documentation + +------------------------------------------------------------------- +Mon Feb 20 10:28:42 UTC 2017 - axel.braun@gmx.de + +- renamed gnuhealth_control to gnuhealth-control + fixed documentation + +------------------------------------------------------------------- +Tue Feb 14 06:09:10 UTC 2017 - axel.braun@gmx.de + +- version 3.06 + * Fix bug #50269: Traceback when assigning a new meal order + * Fix bug #50281: Traceback when displaying patient critical info + in non-english languages + * fix bug #50288: Wrong widget for mealtime field. // Fix + validation for meal order warning + * Remove readonly from patient meal order warning, to correctly + save state of the field +------------------------------------------------------------------- +Mon Dec 12 15:59:19 UTC 2016 - axel.braun@gmx.de + +- Release 3.0.5 + * Update to ICD10 version 2016 + * fix bug #49414: Error when printing prescription using review dates + * bug #49405: Error on summary report when no date of birh is assigned to the person + +------------------------------------------------------------------- +Sat Oct 22 18:00:22 UTC 2016 - axel.braun@gmx.de + +- temporary fix for prescription_orders report until 3.0.5 is released + +------------------------------------------------------------------- +Sat Oct 22 09:34:44 UTC 2016 - axel.braun@gmx.de + +- Release 3.0.4 + +------------------------------------------------------------------- +Tue Oct 18 18:59:15 UTC 2016 - axel.braun@gmx.de + +- README updated + +------------------------------------------------------------------- +Wed Sep 28 18:35:02 UTC 2016 - axel.braun@gmx.de + +- update of README.SUSE + +------------------------------------------------------------------- +Wed Aug 31 06:26:10 UTC 2016 - axel.braun@gmx.de + +- file permissions corrected + +------------------------------------------------------------------- +Sun Aug 21 12:19:30 UTC 2016 - jengelh@inai.de + +- Trim summary/description from redundant words + +------------------------------------------------------------------- +Mon Jan 11 12:07:51 UTC 2016 - axel.braun@gmx.de + +- version 3.0.0 + +------------------------------------------------------------------- +Mon Jan 4 07:27:41 UTC 2016 - axel.braun@gmx.de + +- Version 3.0RC2 + +------------------------------------------------------------------- +Thu Jan 22 06:41:46 UTC 2015 - axel.braun@gmx.de + +- version 2.8 + +------------------------------------------------------------------- +Thu Jul 10 14:55:14 UTC 2014 - axel.braun@gmx.de + +- Release 2.6.0 + +------------------------------------------------------------------- +Wed Jan 22 07:44:06 UTC 2014 - axel.braun@gmx.de + +- GnuHealth 2.4RC1 on Tryton 3.0 + +------------------------------------------------------------------- +Fri Oct 18 12:10:27 UTC 2013 - axel.braun@gmx.de + +- Initial package build on OBS ( version 2.2.1 ) diff --git a/gnuhealth.keyring b/gnuhealth.keyring new file mode 100644 index 0000000..d45de21 --- /dev/null +++ b/gnuhealth.keyring @@ -0,0 +1,192 @@ +Member GPG keyring of health group. + +Note that this keyring is not intended for checking releases of that group. +Use Group Release Keyring instead. + +GPG keys of Luis Falcon +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +wgeqPuoNWoFYKK0/GlVa +=doah +-----END PGP PUBLIC KEY BLOCK----- + +GPG keys of Gerald Wiese +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +wgeqPuoNWoFYKK0/GlVa +=doah +-----END PGP PUBLIC KEY BLOCK----- diff --git a/gnuhealth.service b/gnuhealth.service new file mode 100644 index 0000000..c35ad46 --- /dev/null +++ b/gnuhealth.service @@ -0,0 +1,44 @@ +[Unit] +Description=GNU Health server +After=syslog.target +Requires=postgresql.service +Conflicts=trytond.service + +[Service] +# some security settings +PrivateTmp=true +ProtectSystem=true +ProtectHome=true +ProtectKernelModules=true +ProtectKernelTunables=true +ProtectControlGroups=true +MountFlags=private +NoNewPrivileges=true +PrivateDevices=true +# added automatically, for details please see +# https://en.opensuse.org/openSUSE:Security_Features#Systemd_hardening_effort +ProtectHostname=true +ProtectClock=true +ProtectKernelLogs=true +RestrictRealtime=true +# end of automatic additions +MemoryDenyWriteExecute=true + +Type=simple +User=tryton +Group=tryton +PIDFile=/var/lib/trytond/trytond.pid + +ExecStart=/usr/bin/trytond --config /etc/tryton/trytond.conf --pidfile=/var/lib/tryton/trytond.pid --logconf=/etc/tryton/trytond_log.conf + +# Give a reasonable amount of time for the server to start up/shut down +TimeoutSec=300 + +# We rely on systemd to restart trytond if it dies +Restart=always + +#Set the environment variables that GNU Health needs +EnvironmentFile=/etc/tryton/gnuhealthrc + +[Install] +WantedBy=multi-user.target diff --git a/gnuhealth.spec b/gnuhealth.spec new file mode 100644 index 0000000..4fc5efa --- /dev/null +++ b/gnuhealth.spec @@ -0,0 +1,249 @@ +# +# spec file for package gnuhealth +# +# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2014-2024 Dr. Axel Braun +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%bcond_with tests 1 +%define skip_python2 1 + +%if 0%{?suse_version} >= 1550 +%define pythons python3 +%define mypython python3 +%define mysitelib %python3_sitelib +%else +%{?sle15_python_module_pythons} +%define mypython %pythons +%define mysitelib %{expand:%%%{mypython}_sitelib} +%endif + +%define t_version %(rpm -q --qf '%%{VERSION}' trytond) +%define majorver 4.4 + +Name: gnuhealth + +Version: %{majorver}.1 +Release: 0 +URL: https://health.gnu.org +Summary: A Health and Hospital Information System +License: GPL-3.0-or-later +Group: Productivity/Office/Management + +Source0: https://ftp.gnu.org/gnu/health/%{name}-%{version}.tar.gz +## Source0: %{name}-%{version}.tar.gz +Source1: GNUHealth.README.openSUSE +Source2: gnuhealth-control +Source3: gnuhealth.service +Source4: gnuhealth-webdav@.service +Source5: openSUSE-gnuhealth-setup +Source6: gnuhealth +Source7: gnuhealth-rpmlintrc +Source8: https://ftp.gnu.org/gnu/health/%{name}-%{version}.tar.gz.sig +Source9: https://savannah.gnu.org/project/memberlist-gpgkeys.php?group=health&download=1#/%{name}.keyring + +## BuildRequires: %{python_module pytest} +BuildRequires: %{mypython}-pip +BuildRequires: %{mypython}-devel +BuildRequires: %{mypython}-setuptools +BuildRequires: %{mypython}-wheel +BuildRequires: fdupes +BuildRequires: python-rpm-generators +BuildRequires: python-rpm-macros + +# For the tests: +BuildRequires: trytond +BuildRequires: trytond_company +BuildRequires: trytond_currency +BuildRequires: trytond_party +BuildRequires: trytond_product + +# new fonts for the forms: +Requires: gnu-free-fonts +Requires: %{mypython}-Pillow +Requires: %{mypython}-PyWebDAV3-GNUHealth +Requires: %{mypython}-caldav +Requires: %{mypython}-hl7apy +Requires: %{mypython}-ldap3 +Requires: %{mypython}-matplotlib +Requires: %{mypython}-passlib +Requires: %{mypython}-python-barcode +Requires: %{mypython}-qrcode +Requires: %{mypython}-simpleeval +Requires: %{mypython}-six +Requires: %{mypython}-vobject +Requires: bsdtar +Requires: proteus +Requires: trytond +Requires: trytond_account +Requires: trytond_account_invoice +Requires: trytond_account_invoice_stock +Requires: trytond_account_product +Requires: trytond_company +Requires: trytond_country +Requires: trytond_currency +Requires: trytond_party +Requires: trytond_product +Requires: trytond_purchase +Requires: trytond_purchase_request +Requires: trytond_stock +Requires: trytond_stock_lot +Requires: trytond_stock_supply +BuildArch: noarch + +# additional suggestion for a useable editor +Suggests: nano +# you may need a frontend to work with +Suggests: gnuhealth-client + +BuildRoot: %{_tmppath}/%{name}-%{version}-build + +%{?systemd_ordering} + +%description +GNU Health is the Hospital Information System adopted by the United +Nations University, International Institute for Global Health, for +the implementations and trainings. + +This is the server component of GNU Health. +You would need the GNU Health Client as well, on the same or a different machine. +You may use the Tryton Client either +See https://en.opensuse.org/GNUHealth_on_openSUSE for instructions + +%package -n %{name}-orthanc +Summary: Integration module for Orthanc +Group: Productivity/Office/Management +Requires: %{mypython}-beren +Requires: %{mypython}-pendulum +Requires: %{mypython}-pydicom +Requires: gnuhealth + +%description -n %{name}-orthanc +This package provides the interface to Orthanc + +%prep +%setup -q -n %{name}-%{version} +## %patch -P 0 -p1 +cp %{S:1} . +cp %{S:2} . + +#shebag ersetzen +find . -iname "*.py" -exec sed -i "s/env python/%{mypython}/" '{}' \; + +%build +for i in h*; do + pushd $i + %pyproject_wheel + popd +done + +%install +for i in h*; do + pushd $i + %pyproject_install + popd +done + +mkdir -p -m 755 %{buildroot}%{_bindir} +install -p -m 755 gnuhealth-control %{buildroot}%{_bindir}/gnuhealth-control +install -p -m 755 %{S:5} %{buildroot}%{_bindir}/openSUSE-gnuhealth-setup +install -p -m 755 %{S:6} %{buildroot}%{_bindir}/gnuhealth +install -p -m 755 scripts/demodb/install_demo_database.sh %{buildroot}%{_bindir}/install_demo_database.sh + +#delete empty demo directory +rm -rf scripts/demodb + +mkdir -p %{buildroot}%{_unitdir} +install -p -m 644 %{SOURCE3} %{buildroot}%{_unitdir}/%{name}.service +install -p -m 644 %{SOURCE4} %{buildroot}%{_unitdir}/%{name}-webdav@.service + +mkdir -p %{buildroot}%{_sysconfdir}/tryton + +#remove double license file: +## rm backend/fhir/client/COPYING + +#Move FHIR server to examples directory +mkdir -p -m 755 %{buildroot}%{_docdir}/%{name}/examples/ +mv doc/* %{buildroot}%{_docdir}/%{name}/examples/. +rmdir doc + +%python_expand %fdupes %{buildroot}%{mysitelib} + +%if %{with tests} +%check +cd %{buildroot}%{mysitelib}/trytond/modules +for i in h*; do + pushd $i + %pytest -rs tests + popd +done +%endif + +%pre +#Write environment changes to /etc/bash.bashrc.local +cat > /etc/bash.bashrc.local << "EOF" +alias cdlogs='cd /var/log/tryton' +alias cdexe='cd %python3_sitelib/trytond' +alias cdconf='cd /etc/tryton' +alias cdmods='cd %python3_sitelib/trytond/modules' +alias editconf='${EDITOR} /etc/tryton/trytond.conf' +alias cdutil='cd /usr/bin' +export EDITOR=nano +EOF + +#Write GH Variable /etc/tryton/gnuhealthrc +cat > /etc/tryton/gnuhealthrc << "EOF" +GNUHEALTH_VERSION=%{version} +TRYTON_VERSION=%{t_version} +EOF + +%service_add_pre gnuhealth.service +%service_add_pre gnuhealth-webdav@.service + +%post +%service_add_post gnuhealth.service +%service_add_post gnuhealth-webdav@.service + +%preun +%service_del_preun gnuhealth.service +%service_del_preun gnuhealth-webdav@.service + +%postun +%service_del_postun gnuhealth.service +%service_del_postun gnuhealth-webdav@.service + +%files -n %{name}-orthanc +%{mysitelib}/%{name}_orthanc* +%{mysitelib}/trytond/modules/health_orthanc* + +%files +%defattr(-,root,root) +%{_bindir}/gnuhealth +%{_bindir}/gnuhealth-control +%{_bindir}/gnuhealth-webdav-server +%{_bindir}/openSUSE-gnuhealth-setup +%{_bindir}/install_demo_database.sh +%{_unitdir}/%{name}.service +%{_unitdir}/%{name}-webdav@.service +%doc README.rst Changelog gnuhealth-setup version gnuhealthrc GNUHealth.README.openSUSE scripts/* config/* +%{_docdir}/%{name}/examples* +%dir %{_sysconfdir}/tryton +%license COPYING LICENSES/* +%exclude %{mysitelib}/%{name}_orthanc* +%exclude %{mysitelib}/trytond/modules/health_orthanc* +%{mysitelib}/trytond* +%{mysitelib}/gnuhealth* + +%changelog diff --git a/openSUSE-gnuhealth-setup b/openSUSE-gnuhealth-setup new file mode 100644 index 0000000..e26942f --- /dev/null +++ b/openSUSE-gnuhealth-setup @@ -0,0 +1,335 @@ +#!/bin/bash + +# GNU Health installation script for openSUSE +# Version agnostic to GNU Health + +############################################################################## +# +# GNU Health Installer for openSUSE +# +# Copyright (C) 2018 Axel Braun + +# inspired by gnuhealth-control (C) 2018 Luis Falcon +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +############################################################################## + +#----------------------------------------------------------------------------- +# Change log +#----------------------------------------------------------------------------- +# V 0.2 20180617 Axel Replace tryton with ${DB_USER} +# V 0.3 20180712 Axel Set user 'tryton' to superuser (otherwise installation of DEMO-DB fails) +# V 0.32 20180720 Axel Warning for production use added +# V 0.33 20181123 Axel Start gnuhealth server at the end of procedure +#----------------------------------------------------------------------------- +# Variables declaration +#----------------------------------------------------------------------------- + +#GNU Health installer for openSUSE version +VERSION="0.33" + +# Colors constants +NONE="$(tput sgr0)" +RED="$(tput setaf 1)" +GREEN="$(tput setaf 2)" +YELLOW="\n$(tput setaf 3)" +WHITE="\n$(tput setaf 7)" + +# Params +#ROOT_PW="root" +DB_NAME="GNUHEALTH" +DB_ADMIN_PWD="admin" +DB_USER="tryton" +DB_CONFIG="/var/lib/pgsql/data/pg_hba.conf" +GH_START="y" + +#----------------------------------------------------------------------------- +# Functions +#----------------------------------------------------------------------------- + +message() +{ + local UTC="$(date -u +'%Y-%m-%d %H:%M:%S')" + + case $1 in + ERROR ) echo -e "\e[00;31m${UTC} [ERROR] $2\e[00m";; + WARNING ) echo -e "\e[0;33m${UTC} [WARNING] $2\e[m" ;; + INFO ) echo -e "\e[0;36m${UTC} [INFO] $2\e[m" ;; + esac +} + +help() +{ + cat << EOF + +This is GNU Health Setup for openSUSE ${VERSION} + +usage: `basename $0` command + +Command: + + version : Show version + setup : Setup a GNU Health server + help : shows this message + +EOF + exit 0 +} + +show_version () { + case $1 in + version) message "INFO" "This is is GNU Health setup for openSUSE V ${VERSION}"; exit 0;; + esac + +} + +bailout() { + message "INFO" "Bailing out !" + message "INFO" "Cleaning up temporary file" + rm -rf /tmp/pw +# if [ -e ${BASEDIR}/.installation_ok ];then +# message "WARNING" "Previous successful installation found. NOT removing base dir at ${BASEDIR}" +# else +# message "INFO" "removing base dir at ${BASEDIR}" +# rm -rf ${BASEDIR} +# fi + exit 1 +} + +#----------------------------------------------------------------------------- +# go-ahead: perform update +#----------------------------------------------------------------------------- + +go_ahead() { + +# login as root, start postgres + +echo "Starting database...." + +systemctl start postgresql || bailout + +echo "Database started" + +# su -postgres || bailout +#then as postgres, and change parameter + +echo "Changing postgres trust method" + +sudo -u postgres sed -i -e 's/\(\(local\|host\).*all.*all.*\)\(peer\|ident\)/\1trust/g' ${DB_CONFIG} || bailout + +echo "Postgres trust method changed" + +echo "Create database user" +#create user +sudo -u postgres psql -c "CREATE USER ${DB_USER} WITH SUPERUSER;" + +echo "Database user created" + +echo "Creating database ${DB_NAME}" +# create database +sudo -u postgres createdb ${DB_NAME} --encoding='UTF8' --owner=${DB_USER} || bailout + +echo "Database created" +#exit as postgres +#exit + +echo "Restarting database" + +systemctl restart postgresql || bailout + +# login as user tryton +#su tryton -s /bin/bash + +echo "Initializing database - this may take a while" + +echo ${DB_ADMIN_PWD} > /tmp/pw || bailout + +sudo -u tryton env TRYTONPASSFILE=/tmp/pw trytond-admin -c /etc/tryton/trytond.conf --all -d ${DB_NAME} --password || bailout + +rm /tmp/pw || bailout + + +if [ $GH_START = "y" ]; then +echo "Enabling GNU Health at boot time" + +systemctl enable postgresql +systemctl enable gnuhealth + +# ...and start gnuhealth in that case +systemctl start gnuhealth + +fi + +echo "All done" +message "WARNING" "Please review your setup before using the system in production!" + +} + +#----------------------------------------------------------------------------- +# Call user parameter +#----------------------------------------------------------------------------- + +get_root_pw() { + Y='' + read -p "Please enter root-password [$ROOT_PW] " Y + + if [ ! -e $Y ]; then + ROOT_PW=$Y + fi + message "INFO" "root-password is $ROOT_PW" +} + +get_db_name() { + Y='' + read -p "Please enter name for new database [$DB_NAME] " Y + if [ ! -e $Y ]; then + DB_NAME=$Y + fi + message "INFO" "DB-Name is $DB_NAME" +} + +get_db_admin() { + Y='' + read -p "Please enter admin-password for new database [$DB_ADMIN_PWD] " Y + if [ ! -e $Y ]; then + DB_ADMIN_PWD=$Y + fi + message "INFO" "DB Admin password is $DB_ADMIN_PWD" +} + +get_db_user() { + Y='' + read -p "Please enter database user [$DB_USER] " Y + if [ ! -e $Y ]; then + DB_USER=$Y + fi + message "INFO" "DB User is $DB_USER" +} + +get_db_file() { + Y='' + read -p "Please enter database config file [$DB_CONFIG] " Y + if [ ! -e $Y ]; then + DB_CONFIG=$Y + fi + message "INFO" "DB config path & file $DB_CONFIG" +} + +get_GH_start() { + Y='' + read -p "Shall GNU Health start automatically? [$GH_START] " Y + if [ ! -e $Y ]; then + GH_START=$Y + fi + message "INFO" "GNU Health start at boot $GH_START" +} + + +#----------------------------------------------------------------------------- +# verify input +#----------------------------------------------------------------------------- + +verify_input() { + echo ; + message "INFO" "DB Name is ..............$DB_NAME" + message "INFO" "DB Admin password is ....$DB_ADMIN_PWD" + message "INFO" "DB User is ..............$DB_USER" + message "INFO" "DB config path & file is $DB_CONFIG" + message "INFO" "GNU Health start at boot $GH_START" + read -p "Are these values correct? [y]es/[n]o/[a]bort " VAL + +} + +#----------------------------------------------------------------------------- +# Install +#----------------------------------------------------------------------------- + +setup() { + +# check is it runs as root + wai=`whoami` + + if [ $wai != "root" ]; then + message "ERROR" " This script must run as user 'root'" + bailout + fi + + VAL="n" + message "INFO" "Starting GNU Health setup for openSUSE V ${VERSION} ..." + message "INFO" "If the value displayed is OK, just hit to confirm" + + while [ ${VAL} != "y" ]; do + # (1) Get root password +# get_root_pw + + # (2) get Database name + get_db_name + + # (3) change login + get_db_admin + + message "WARNING" "Change the following parameter only if you know what you are doing..." + + # (4) DB user + get_db_user + + # (5) DB config file and path + get_db_file + + # (6) enable GNUHealth at start? + get_GH_start + + # (7) check if all are valid + verify_input + + # request input until all is OK: + if [ -e ${VAL} ]; then + message "ERROR" "Please enter y, n or a" + verify_input + else + + if [ ${VAL} = "y" ]; then + go_ahead + exit 0 + fi + if [ ${VAL} = "a" ]; then + exit 1 + fi + fi + done + +} + +#----------------------------------------------------------------------------- +# Parse command line +#----------------------------------------------------------------------------- + + +parse_command_line() +{ + if [ $# -eq 0 ]; then + help + fi + + case $1 in + version) show_version $@;; + update-deps) install_python_dependencies $@;; + setup) setup $@;; + help) help;; + *) echo $1: Unrecognized command; exit 1;; + esac +} + +parse_command_line "$@"