diff -Nru sabnzbdplus-3.0.1~rc1/debian/changelog sabnzbdplus-3.0.1/debian/changelog --- sabnzbdplus-3.0.1~rc1/debian/changelog 2020-08-15 12:25:59.000000000 +0000 +++ sabnzbdplus-3.0.1/debian/changelog 2020-08-18 10:14:18.000000000 +0000 @@ -1,3 +1,9 @@ +sabnzbdplus (3.0.1-0ubuntu1~jcfp1~19.10) eoan; urgency=medium + + * New upstream release. + + -- JCF Ploemen (jcfp) Tue, 18 Aug 2020 10:14:18 +0000 + sabnzbdplus (3.0.1~rc1-0ubuntu1~jcfp1~19.10) eoan; urgency=medium * New upstream release. diff -Nru sabnzbdplus-3.0.1~rc1/PKG-INFO sabnzbdplus-3.0.1/PKG-INFO --- sabnzbdplus-3.0.1~rc1/PKG-INFO 2020-08-07 13:34:48.879055000 +0000 +++ sabnzbdplus-3.0.1/PKG-INFO 2020-08-18 06:27:20.945377000 +0000 @@ -1,7 +1,7 @@ Metadata-Version: 1.0 Name: SABnzbd -Version: 3.0.1RC1 -Summary: SABnzbd-3.0.1RC1 +Version: 3.0.1 +Summary: SABnzbd-3.0.1 Home-page: https://sabnzbd.org Author: The SABnzbd Team Author-email: team@sabnzbd.org diff -Nru sabnzbdplus-3.0.1~rc1/README.mkd sabnzbdplus-3.0.1/README.mkd --- sabnzbdplus-3.0.1~rc1/README.mkd 2020-08-07 13:34:48.879055000 +0000 +++ sabnzbdplus-3.0.1/README.mkd 2020-08-18 06:27:20.945377000 +0000 @@ -1,7 +1,8 @@ -Release Notes - SABnzbd 3.0.1 RC 1 +Release Notes - SABnzbd 3.0.1 ========================================================= ## Bugfixes since 3.0.0 +- Basic Authentication resulted in crash. - Permissions were not set correctly when creating directories. - Windows: base SSL certificate bundle was not included. diff -Nru sabnzbdplus-3.0.1~rc1/requirements.txt sabnzbdplus-3.0.1/requirements.txt --- sabnzbdplus-3.0.1~rc1/requirements.txt 2020-08-07 13:34:48.910324000 +0000 +++ sabnzbdplus-3.0.1/requirements.txt 2020-08-18 06:27:20.976603700 +0000 @@ -1,8 +1,9 @@ -sabyenc3 -cheetah3 +sabyenc3>=4.0.0 +cheetah3>=3.0.0 cryptography feedparser configobj +cheroot<8.4.3 cherrypy portend chardet diff -Nru sabnzbdplus-3.0.1~rc1/sabnzbd/filesystem.py sabnzbdplus-3.0.1/sabnzbd/filesystem.py --- sabnzbdplus-3.0.1~rc1/sabnzbd/filesystem.py 2020-08-07 13:34:48.972840000 +0000 +++ sabnzbdplus-3.0.1/sabnzbd/filesystem.py 2020-08-18 06:27:21.023504000 +0000 @@ -577,8 +577,9 @@ # Only create if it doesn't exist if not os.path.exists(path_part_combined): os.mkdir(path_part_combined) - # Try to set permissions, ignore failures - set_chmod(path_part_combined, umask, report=False) + # Try to set permissions if desired, ignore failures + if apply_umask: + set_chmod(path_part_combined, umask, report=False) return path except OSError: logging.error(T("Failed making (%s)"), clip_path(path), exc_info=True) diff -Nru sabnzbdplus-3.0.1~rc1/sabnzbd/interface.py sabnzbdplus-3.0.1/sabnzbd/interface.py --- sabnzbdplus-3.0.1~rc1/sabnzbd/interface.py 2020-08-07 13:34:48.972840000 +0000 +++ sabnzbdplus-3.0.1/sabnzbd/interface.py 2020-08-18 06:27:21.023504000 +0000 @@ -252,13 +252,9 @@ return check_login_cookie() -def get_users(): - users = {cfg.username(): cfg.password()} - return users - - -def encrypt_pwd(pwd): - return pwd +def check_basic_auth(_, username, password): + """ CherryPy basic authentication validation """ + return username == cfg.username() and password == cfg.password() def set_auth(conf): @@ -268,8 +264,7 @@ { "tools.auth_basic.on": True, "tools.auth_basic.realm": "SABnzbd", - "tools.auth_basic.users": get_users, - "tools.auth_basic.encrypt": encrypt_pwd, + "tools.auth_basic.checkpassword": check_basic_auth, } ) conf.update( diff -Nru sabnzbdplus-3.0.1~rc1/sabnzbd/version.py sabnzbdplus-3.0.1/sabnzbd/version.py --- sabnzbdplus-3.0.1~rc1/sabnzbd/version.py 2020-08-07 13:34:48.972840000 +0000 +++ sabnzbdplus-3.0.1/sabnzbd/version.py 2020-08-18 06:27:21.039130200 +0000 @@ -4,5 +4,5 @@ # You MUST use double quotes (so " and not ') -__version__ = "3.0.1RC1" -__baseline__ = "272ce773cb973ab2683f4a47077c7b54b26a2100" +__version__ = "3.0.1" +__baseline__ = "9a4be70734dbf7ac60f5d4d308a8ff1223206503" diff -Nru sabnzbdplus-3.0.1~rc1/SABnzbd.py sabnzbdplus-3.0.1/SABnzbd.py --- sabnzbdplus-3.0.1~rc1/SABnzbd.py 2020-08-07 13:34:48.910324000 +0000 +++ sabnzbdplus-3.0.1/SABnzbd.py 2020-08-18 06:27:20.976603700 +0000 @@ -24,6 +24,7 @@ import logging import logging.handlers +import importlib.util import traceback import getopt import signal @@ -36,18 +37,12 @@ try: import Cheetah - - if Cheetah.Version[0] != "3": - raise ValueError import feedparser import configobj import cherrypy import portend import cryptography import chardet -except ValueError: - print("Sorry, requires Python module Cheetah 3 or higher.") - sys.exit(1) except ImportError as e: print("Not all required Python modules are available, please check requirements.txt") print("Missing module:", e.name) @@ -1168,12 +1163,14 @@ # SSL Information logging.info("SSL version = %s", ssl.OPENSSL_VERSION) - # Load (extra) certificates in the binary distributions - if hasattr(sys, "frozen") and (sabnzbd.WIN32 or sabnzbd.DARWIN): - # The certifi package brings the latest certificates on build - # This will cause the create_default_context to load it automatically - os.environ["SSL_CERT_FILE"] = os.path.join(sabnzbd.DIR_PROG, "cacert.pem") - logging.info("Loaded additional certificates from %s", os.environ["SSL_CERT_FILE"]) + # Load (extra) certificates if supplied by certifi + # This is optional and provided in the binaries + if importlib.util.find_spec("certifi") is not None: + import certifi + + os.environ["SSL_CERT_FILE"] = certifi.where() + logging.info("Certifi version: %s", certifi.__version__) + logging.info("Loaded additional certificates from: %s", os.environ["SSL_CERT_FILE"]) # Extra startup info if sabnzbd.cfg.log_level() > 1: