SHA256
1
0
forked from pool/gnuhealth

- 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
This commit is contained in:
Axel Braun 2024-08-02 12:08:14 +00:00 committed by Git OBS Bridge
commit 2809ff79ea
17 changed files with 1967 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -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

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

216
GNUHealth.README.openSUSE Normal file
View File

@ -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:
<you are logged in as user 'root'>
> 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 <DocB@openSUSE.org> Sun Mar 06 10:12:31 UTC 2022

4
_service Normal file
View File

@ -0,0 +1,4 @@
<services>
<service name="download_files" mode="localonly" />
</services>

46
gnuhealth Normal file
View File

@ -0,0 +1,46 @@
#!/bin/bash
# GNU Health dummy program - for thos who dont read manuals
##############################################################################
#
# GNU Health dummy
#
# Copyright (C) 2018 Axel Braun <abraun@gnusolidario.org>
#
# 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 <http://www.gnu.org/licenses/>.
#
##############################################################################
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

3
gnuhealth-4.4.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b49f43c73720e43b53a6e02cdec3315652ae50578523f9198943e074c387f7c3
size 18646203

BIN
gnuhealth-4.4.0.tar.gz.sig Normal file

Binary file not shown.

3
gnuhealth-4.4.1.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a46ce0461bb451a79f4d40a570a700d5dd28361d3e012d410198a4e159c69481
size 18685767

BIN
gnuhealth-4.4.1.tar.gz.sig Normal file

Binary file not shown.

284
gnuhealth-control Normal file
View File

@ -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 <falcon@gnu.org>
# Adaption to openSUSE Axel Braun <axel.braun@gnuhealth.org>
#
# 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 <http://www.gnu.org/licenses/>.
#
##############################################################################
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 <directory> --database <dbname>"
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 $@

5
gnuhealth-rpmlintrc Normal file
View File

@ -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");

34
gnuhealth-webdav@.service Normal file
View File

@ -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

528
gnuhealth.changes Normal file
View File

@ -0,0 +1,528 @@
-------------------------------------------------------------------
Fri Aug 2 11:47:44 UTC 2024 - Axel Braun <axel.braun@gmx.de>
- 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 <dimstar@opensuse.org>
- Use %patch -P N instead of deprecated %patchN.
-------------------------------------------------------------------
Sat Jan 6 09:09:19 UTC 2024 - Axel Braun <axel.braun@gmx.de>
- Switch Leap packages to Python 3.11
shebang.diff removed (call in spec file)
-------------------------------------------------------------------
Sat Dec 23 17:04:58 UTC 2023 - Axel Braun <axel.braun@gmx.de>
- version 4.4.0
See Changelog for details
-------------------------------------------------------------------
Tue Oct 17 11:47:48 UTC 2023 - Daniel Garcia Moreno <daniel.garcia@suse.com>
- 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 <axel.braun@gmx.de>
- 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 <axel.braun@gmx.de>
- 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 <axel.braun@gmx.de>
- 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 <axel.braun@gmx.de>
- 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 <axel.braun@gmx.de>
- version 4.0.4
* various bugfixes - see changelog for details
-------------------------------------------------------------------
Sat Apr 2 16:42:22 UTC 2022 - Axel Braun <axel.braun@gmx.de>
- 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 <axel.braun@gmx.de>
- 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 <axel.braun@gmx.de>
- 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 <axel.braun@gmx.de>
- update to gnuhealth-control
-------------------------------------------------------------------
Wed Mar 24 17:21:38 UTC 2021 - Axel Braun <axel.braun@gmx.de>
- Variable for EDITOR set
-------------------------------------------------------------------
Sat Feb 27 08:14:29 UTC 2021 - Andreas Stieger <andreas.stieger@gmx.de>
- add upstream signing key and verify source signature
-------------------------------------------------------------------
Tue Feb 16 09:08:02 UTC 2021 - Axel Braun <axel.braun@gmx.de>
- python_dependency_generator removed
-------------------------------------------------------------------
Mon Feb 15 10:43:42 UTC 2021 - Axel Braun <axel.braun@gmx.de>
- version 3.8.0
dentistry package added
-------------------------------------------------------------------
Tue Dec 22 14:35:56 UTC 2020 - Axel Braun <axel.braun@gmx.de>
- Documentation added to package description
-------------------------------------------------------------------
Fri Aug 21 13:01:13 UTC 2020 - Axel Braun <axel.braun@gmx.de>
- version 3.6.5
HMIS: Update to 3.6.5 including ICD10 codes 2020
-------------------------------------------------------------------
Tue Jul 21 12:19:29 UTC 2020 - Axel Braun <axel.braun@gmx.de>
- Readme renamed (SUSE -> openSUSE)
gnuhealth: Link to oS wiki added
-------------------------------------------------------------------
Thu Jun 25 08:23:34 UTC 2020 - Axel Braun <axel.braun@gmx.de>
- 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 <axel.braun@gmx.de>
- fixed different behviour of bsdtar in script and shell (gnuhealth-control)
-------------------------------------------------------------------
Tue May 19 09:25:34 UTC 2020 - Axel Braun <axel.braun@gmx.de>
- version 3.6.4 of gnuhealth-control
-------------------------------------------------------------------
Mon May 18 08:58:26 UTC 2020 - Axel Braun <axel.braun@gmx.de>
- python3-matplotlib got lost.....added
-------------------------------------------------------------------
Sat May 16 16:16:58 UTC 2020 - Axel Braun <axel.braun@gmx.de>
- 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 <axel.braun@gmx.de>
- 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 <axel.braun@gmx.de>
- correction for service file
-------------------------------------------------------------------
Tue Mar 31 16:09:25 UTC 2020 - Axel Braun <axel.braun@gmx.de>
- update for boo#1167126, 1167128
-------------------------------------------------------------------
Tue Mar 17 13:32:03 UTC 2020 - Axel Braun <axel.braun@gmx.de>
- clean up of spec file to get rid of warnings
added gnuhealth-rpmlintrc
-------------------------------------------------------------------
Sat Mar 14 15:24:49 UTC 2020 - Axel Braun <axel.braun@gmx.de>
- gnuhealth-control 3.6.3 - added chmod after getlang command
-------------------------------------------------------------------
Mon Mar 2 19:25:36 UTC 2020 - Axel Braun <axel.braun@gmx.de>
- modified getlang to exclude 2 directories (otherwise initialization fails after language installation)
-------------------------------------------------------------------
Fri Feb 28 11:24:46 UTC 2020 - Axel Braun <axel.braun@gmx.de>
- 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 <axel.braun@gmx.de>
- version 3.6.1
demo.diff removed (included in 3.6.1)
-------------------------------------------------------------------
Mon Nov 11 18:22:37 UTC 2019 - Axel Braun <axel.braun@gmx.de>
- demo.diff to update installation script for demo-db added
-------------------------------------------------------------------
Tue Jun 11 16:10:20 UTC 2019 - Axel Braun <axel.braun@gmx.de>
- 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 <axel.braun@gmx.de>
- 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 <axel.braun@gmx.de>
- add dependency for bsdtar (gnuhealth-control changed)
-------------------------------------------------------------------
Sat Dec 29 16:40:16 UTC 2018 - Axel Braun <axel.braun@gmx.de>
- gnuhealth-webdav service adapted to new GH webdav server
-------------------------------------------------------------------
Fri Dec 7 18:21:20 UTC 2018 - Axel Braun <axel.braun@gmx.de>
- 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 <axel.braun@gmx.de>
- 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 )

192
gnuhealth.keyring Normal file
View File

@ -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 <meanmicio>
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
wgeqPuoNWoFYKK0/GlVa
=doah
-----END PGP PUBLIC KEY BLOCK-----
GPG keys of Gerald Wiese <gerald_wiese>
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
wgeqPuoNWoFYKK0/GlVa
=doah
-----END PGP PUBLIC KEY BLOCK-----

44
gnuhealth.service Normal file
View File

@ -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

249
gnuhealth.spec Normal file
View File

@ -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

335
openSUSE-gnuhealth-setup Normal file
View File

@ -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 <abraun@gnusolidario.org>
# inspired by gnuhealth-control (C) 2018 Luis Falcon <falcon@gnu.org>
#
# 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 <http://www.gnu.org/licenses/>.
#
##############################################################################
#-----------------------------------------------------------------------------
# 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 <ENTER> 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 "$@"