Version 3.3.6
Released: December 19, 2019
Changes
Compressed files
Zip files only support UTF-8 and CP437 encoding for filenames. This is not strongly enforced and some software products create Zip files with other text encodings. The ZipArchive class was updated to work with badly encoded filenames instead of raising an error.
Converter
The page count code was updated to work with more versions of PDF files. A Python 3 incompatibility was also fixed.
Documents
The PDF orientation detection was fixed and updated to work with the new converter layer system.
Redis
The Redis lock backend initialization was updated to allow it to also work with Redis versions older than 5.0.
Security
A fix for a cross site scripting issues was removed by accident during a version merge at some unknown time. The fix was reapplied and more robust tests using Selenium added to avoid further regressions.
Settings
FreeBSD is now also detected and the paths of binaries adjusted for easier installation.
Sources
A issue that left behind periodic task entries for watch folders after deleting a document type associated with them was fixed.
Transaction handling was added to the interval sources base class delete and save methods. This increases protection against data loss on database failure.
User interface
The last update for the user interface planned for series 3.3 is included. This update makes the list toolbar “stick” to the top of the view when scrolling. This is the new toolbar that encloses the multi-item action menu and the pagination controls.
The usage of the incorrect word “overrided” was updated to “overridden”.
The address used to check for new versions was updated to the new Python Package Index address. This avoids SSL certificate errors when the old certificate is reused.
Removals
None
Upgrading process
Stop supervisord:
sudo systemctl stop supervisor
Upgrading from Mayan EDMS 3.2.x
Update the Redis configuration:
Configure Redis to discard data when it runs out of memory, not save its database, and only keep 2 database:
echo "maxmemory-policy allkeys-lru" | sudo tee -a /etc/redis/redis.conf echo "save \"\"" | sudo tee -a /etc/redis/redis.conf echo "databases 2" | sudo tee -a /etc/redis/redis.conf sudo systemctl restart redis
Install the Python 3 development OS package:
sudo apt-get install python3-dev
Update the virtualenv to use Python 3:
sudo -u mayan virtualenv --clear /opt/mayan-edms -p /usr/bin/python3
Create a home directory for the Mayan EDMS system user:
mkdir /home/mayan
Grant ownership to the Mayan EDMS system user:
chown mayan:mayan /home/mayan
Reinstall the Python client for PostgreSQL and Redis:
sudo -u mayan /opt/mayan-edms/bin/pip install --no-use-pep517 psycopg2==3.2.3 redis==5.0.7
Note
Platforms with the ARM CPU might also need additional requirements:
sudo -u mayan /opt/mayan-edms/bin/pip install --no-use-pep517 psutil==5.8.0
Reinstall the Python client for RabbitMQ if you are using RabbitMQ as a broker:
sudo -u mayan /opt/mayan-edms/bin/pip install --no-use-pep517 amqp==5.2.0
Upgrade steps from any previous version of Mayan EDMS
Remove deprecated requirements:
sudo -u mayan curl https://gitlab.com/mayan-edms/mayan-edms/raw/master/removals.txt -o /tmp/removals.txt \ && sudo -u mayan /opt/mayan-edms/bin/pip uninstall -y -r /tmp/removals.txt
Update the Mayan EDMS Python package:
sudo -u mayan /opt/mayan-edms/bin/pip install mayan-edms==3.3.6
the requirements will also be updated automatically.
Make a backup of your supervisord file:
sudo cp /etc/supervisor/conf.d/mayan-edms.conf /etc/supervisor/conf.d/mayan-edms.conf.bck
Update the supervisord configuration file. Replace the environment variables values show here with your respective settings. This step will refresh the supervisord configuration file with the new queues and the latest recommended layout:
sudo -u mayan MAYAN_DATABASE_ENGINE=django.db.backends.postgresql MAYAN_DATABASE_NAME=mayan \ MAYAN_DATABASE_PASSWORD=mayanuserpass MAYAN_DATABASE_USER=mayan \ MAYAN_DATABASE_HOST=127.0.0.1 MAYAN_MEDIA_ROOT=/opt/mayan-edms/media/ \ /opt/mayan-edms/bin/mayan-edms.py platformtemplate supervisord | sudo sh -c "cat > /etc/supervisor/conf.d/mayan-edms.conf"
or:
sudo -u mayan MAYAN_DATABASES=\"{'default':{'ENGINE':'django.db.backends.postgresql','NAME':'mayan','PASSWORD':'mayanuserpass','USER':'mayan','HOST':'127.0.0.1'}}\" \ MAYAN_MEDIA_ROOT=/opt/mayan-edms/media/ \ /opt/mayan-edms/bin/mayan-edms.py platformtemplate supervisord | sudo sh -c "cat > /etc/supervisor/conf.d/mayan-edms.conf"
Edit the supervisord configuration file and update any setting specific to your installation:
sudo vi /etc/supervisor/conf.d/mayan-edms.conf
Migrate existing database schema with:
sudo -u mayan MAYAN_DATABASE_ENGINE=django.db.backends.postgresql MAYAN_DATABASE_NAME=mayan \ MAYAN_DATABASE_PASSWORD=mayanuserpass MAYAN_DATABASE_USER=mayan \ MAYAN_DATABASE_HOST=127.0.0.1 MAYAN_MEDIA_ROOT=/opt/mayan-edms/media/ \ /opt/mayan-edms/bin/mayan-edms.py performupgrade
or:
sudo -u mayan MAYAN_DATABASES="{'default':{'ENGINE':'django.db.backends.postgresql','NAME':'mayan','PASSWORD':'mayanuserpass','USER':'mayan','HOST':'127.0.0.1'}}" \ MAYAN_MEDIA_ROOT=/opt/mayan-edms/media/ \ /opt/mayan-edms/bin/mayan-edms.py performupgrade
Add new static media:
sudo -u mayan MAYAN_MEDIA_ROOT=/opt/mayan-edms/media/ \ /opt/mayan-edms/bin/mayan-edms.py preparestatic --noinput
Start supervisord:
sudo systemctl start supervisor
The upgrade procedure is now complete.
Backward incompatible changes
None
Bugs fixed or issues closed
GitLab issue #494 DOM based Cross Site Scripting
GitLab issue #651 Uploading compressed documents fail when compressed file contains special character
GitLab issue #709 Redis lock manager backend - exception on connect
GitLab issue #713 Unexpected exception while trying to create version for new document - ‘Layer’ object has no attribute ‘add_to_object’
GitLab issue #715 Deleting a document type removes a watch folder associated with it without removing the check interval
GitLab issue #717 Check For Updates Failure
GitLab merge request #63 Improve the executable paths on FreeBSD/OpenBSD.
GitLab merge request #64 Fix page count on some PDF files, and fix a Python 3 incompatibility.
GitLab merge request #65 Settings: Display overridden instead of overrided