[Openlp-core] [Bug 1795876] Re: License violations
** Branch linked: lp:~bastian-germann/openlp/setup -- You received this bug notification because you are a member of OpenLP Core, which is subscribed to OpenLP. https://bugs.launchpad.net/bugs/1795876 Title: License violations Status in OpenLP: New Bug description: OpenLP (GPLv2 only) is currently violating at least two licenses: PyQt5's GPLv3 only and request's Apache 2.0. There are two options to heal these violations: relicense OpenLP or replace the dependencies. A third option would be aquiring a commercial PyQt5 license from Riverbank and replacing requests only, but as it is paid per developer this seems to be infeasible for an open source project. REPLACING = Replacing requests would be feasible: urllib is already used throughout the codebase. Just use it for the currently three files which import requests as well. I do not know if it would be feasible to replace PyQt5 with PySide2. RELICENSING === You would have to use the GPLv3 license to heal both of the violations (GPLv3 is compatible with Apache 2.0). You could also use GPLv2 or later, but the logical license combined with PyQt5 is always GPLv3. That leads to another issue: pysword is GPLv2 only and a license move would require you to drop this optional dependency. But I guess this would be a minor issue as it is not released yet (?). I do not know if relicensing is feasible as you would have to ask the majority of copyright holders to agree with the license change. In either case you should inform your users not later than with your next (fixed!) release about the license violation as they could be in trouble using OpenLP. To manage notifications about this bug go to: https://bugs.launchpad.net/openlp/+bug/1795876/+subscriptions ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Bug 1795876] Re: License violations
I replaced pyxdg with appdirs in lp:~bastian-germann/openlp/setup -- You received this bug notification because you are a member of OpenLP Core, which is subscribed to OpenLP. https://bugs.launchpad.net/bugs/1795876 Title: License violations Status in OpenLP: New Bug description: OpenLP (GPLv2 only) is currently violating at least two licenses: PyQt5's GPLv3 only and request's Apache 2.0. There are two options to heal these violations: relicense OpenLP or replace the dependencies. A third option would be aquiring a commercial PyQt5 license from Riverbank and replacing requests only, but as it is paid per developer this seems to be infeasible for an open source project. REPLACING = Replacing requests would be feasible: urllib is already used throughout the codebase. Just use it for the currently three files which import requests as well. I do not know if it would be feasible to replace PyQt5 with PySide2. RELICENSING === You would have to use the GPLv3 license to heal both of the violations (GPLv3 is compatible with Apache 2.0). You could also use GPLv2 or later, but the logical license combined with PyQt5 is always GPLv3. That leads to another issue: pysword is GPLv2 only and a license move would require you to drop this optional dependency. But I guess this would be a minor issue as it is not released yet (?). I do not know if relicensing is feasible as you would have to ask the majority of copyright holders to agree with the license change. In either case you should inform your users not later than with your next (fixed!) release about the license violation as they could be in trouble using OpenLP. To manage notifications about this bug go to: https://bugs.launchpad.net/openlp/+bug/1795876/+subscriptions ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
Re: [Openlp-core] [Merge] lp:~bastian-germann/openlp/setup into lp:openlp
This includes the external dependency pymediainfo now. This is available on all officially supported Linux distributions, so this should be okay. It also fixes a MIT license violation. -- https://code.launchpad.net/~bastian-germann/openlp/setup/+merge/356147 Your team OpenLP Core is subscribed to branch lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
Re: [Openlp-core] [Merge] lp:~bastian-germann/openlp/setup into lp:openlp
Please note that I already removed the vlc changes. -- https://code.launchpad.net/~bastian-germann/openlp/setup/+merge/356147 Your team OpenLP Core is subscribed to branch lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Merge] lp:~bastian-germann/openlp/vlc-update into lp:openlp
The proposal to merge lp:~bastian-germann/openlp/vlc-update into lp:openlp has been updated. Status: Needs review => Superseded For more details, see: https://code.launchpad.net/~bastian-germann/openlp/vlc-update/+merge/356556 -- Your team OpenLP Core is requested to review the proposed merge of lp:~bastian-germann/openlp/vlc-update into lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Merge] lp:~bastian-germann/openlp/setup into lp:openlp
The proposal to merge lp:~bastian-germann/openlp/setup into lp:openlp has been updated. Status: Needs review => Superseded For more details, see: https://code.launchpad.net/~bastian-germann/openlp/setup/+merge/356147 -- Your team OpenLP Core is subscribed to branch lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Merge] lp:~bastian-germann/openlp/setup into lp:openlp
Bastian Germann has proposed merging lp:~bastian-germann/openlp/setup into lp:openlp. Commit message: This fixes setuptools' dependencies according to scripts/check_dependencies.py. The minimum Python version is set to 3.6 because this was agreed to on the mailing list. To overcome the module conflict, openlp.py is replaced with __main__.py which setuptools installs as /usr/bin/openlp (or openlp.exe on Windows). You can call it locally via `python -m openlp`. Some packages which are optional in the source are declared as optional (uno, pyenchant, pyodbc). The vendored (ripped) pymediainfo module is replaced by its upstream version. Additionally, replace pyxdg with appdirs (see License violations issue). Requested reviews: Raoul Snyman (raoul-snyman) Related bugs: Bug #1795876 in OpenLP: "License violations" https://bugs.launchpad.net/openlp/+bug/1795876 For more details, see: https://code.launchpad.net/~bastian-germann/openlp/setup/+merge/356560 -- Your team OpenLP Core is subscribed to branch lp:openlp. === renamed file 'openlp.py' => 'openlp/__main__.py' --- openlp.py 2017-12-29 09:15:48 + +++ openlp/__main__.py 2018-10-11 11:05:44 + @@ -42,7 +42,7 @@ faulthandler.enable((AppLocation.get_directory(AppLocation.CacheDir) / 'error.log').open('wb')) -if __name__ == '__main__': +def start(): """ Instantiate and run the application. """ @@ -58,3 +58,6 @@ if is_macosx(): sys.argv = [x for x in sys.argv if not x.startswith('-psn')] main() + +if __name__ == '__main__': +start() === modified file 'openlp/core/app.py' --- openlp/core/app.py 2018-08-25 14:36:46 + +++ openlp/core/app.py 2018-10-11 11:05:44 + @@ -288,7 +288,7 @@ :return: a tuple of parsed options of type optparse.Value and a list of remaining argsZ """ # Set up command line options. -parser = argparse.ArgumentParser(prog='openlp.py') +parser = argparse.ArgumentParser(prog='openlp') parser.add_argument('-e', '--no-error-form', dest='no_error_form', action='store_true', help='Disable the error notification form.') parser.add_argument('-l', '--log-level', dest='loglevel', default='warning', metavar='LEVEL', === modified file 'openlp/core/common/applocation.py' --- openlp/core/common/applocation.py 2018-01-07 04:45:13 + +++ openlp/core/common/applocation.py 2018-10-11 11:05:44 + @@ -26,18 +26,13 @@ import os import sys +import appdirs + import openlp from openlp.core.common import get_frozen_path, is_win, is_macosx from openlp.core.common.path import Path, create_paths from openlp.core.common.settings import Settings -if not is_win() and not is_macosx(): -try: -from xdg import BaseDirectory -XDG_BASE_AVAILABLE = True -except ImportError: -XDG_BASE_AVAILABLE = False - log = logging.getLogger(__name__) FROZEN_APP_PATH = Path(sys.argv[0]).parent @@ -143,8 +138,10 @@ elif dir_type == AppLocation.LanguageDir: return Path(openlp.__file__).parent return openlp_folder_path -elif is_macosx(): -openlp_folder_path = Path(os.getenv('HOME'), 'Library', 'Application Support', 'openlp') + +dirs = appdirs.AppDirs('openlp', multipath=True) +if is_macosx(): +openlp_folder_path = Path(dirs.user_data_dir) if dir_type == AppLocation.DataDir: return openlp_folder_path / 'Data' elif dir_type == AppLocation.LanguageDir: @@ -152,15 +149,15 @@ return openlp_folder_path else: if dir_type == AppLocation.LanguageDir: -directory = Path('/usr', 'local', 'share', 'openlp') +site_dirs = dirs.site_data_dir.split(os.pathsep) +directory = Path(site_dirs[0]) if directory.exists(): return directory -return Path('/usr', 'share', 'openlp') -if XDG_BASE_AVAILABLE: -if dir_type == AppLocation.DataDir: -return Path(BaseDirectory.xdg_data_home, 'openlp') -elif dir_type == AppLocation.CacheDir: -return Path(BaseDirectory.xdg_cache_home, 'openlp') +return Path(site_dirs[1]) +if dir_type == AppLocation.DataDir: +return Path(dirs.user_data_dir) +elif dir_type == AppLocation.CacheDir: +return Path(dirs.user_cache_dir) if dir_type == AppLocation.DataDir: return Path(os.getenv('HOME'), '.openlp', 'data') return Path(os.getenv('HOME'), '.openlp') === modified file 'openlp/core/common/registry.py' --- openlp/core/common/registry.py 2018-06-24 06:56:50 + +++ openlp/core/common/registry.py 2018-10-11 11:05:44 + @@ -57,8 +57,7 @@ registry.functions_list = {} registry.working_flags = {} # Allow the tests to remove Registry entries but not the live system -registry.running_under_test =
[Openlp-core] [Merge] lp:~bastian-germann/openlp/vlc-update into lp:openlp
The proposal to merge lp:~bastian-germann/openlp/vlc-update into lp:openlp has been updated. Status: Needs review => Superseded For more details, see: https://code.launchpad.net/~bastian-germann/openlp/vlc-update/+merge/356559 -- Your team OpenLP Core is requested to review the proposed merge of lp:~bastian-germann/openlp/vlc-update into lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Bug 1795876] Re: License violations
** Changed in: openlp Status: New => In Progress -- You received this bug notification because you are a member of OpenLP Core, which is subscribed to OpenLP. https://bugs.launchpad.net/bugs/1795876 Title: License violations Status in OpenLP: In Progress Bug description: OpenLP (GPLv2 only) is currently violating at least two licenses: PyQt5's GPLv3 only and request's Apache 2.0. There are two options to heal these violations: relicense OpenLP or replace the dependencies. A third option would be aquiring a commercial PyQt5 license from Riverbank and replacing requests only, but as it is paid per developer this seems to be infeasible for an open source project. REPLACING = Replacing requests would be feasible: urllib is already used throughout the codebase. Just use it for the currently three files which import requests as well. I do not know if it would be feasible to replace PyQt5 with PySide2. RELICENSING === You would have to use the GPLv3 license to heal both of the violations (GPLv3 is compatible with Apache 2.0). You could also use GPLv2 or later, but the logical license combined with PyQt5 is always GPLv3. That leads to another issue: pysword is GPLv2 only and a license move would require you to drop this optional dependency. But I guess this would be a minor issue as it is not released yet (?). I do not know if relicensing is feasible as you would have to ask the majority of copyright holders to agree with the license change. In either case you should inform your users not later than with your next (fixed!) release about the license violation as they could be in trouble using OpenLP. To manage notifications about this bug go to: https://bugs.launchpad.net/openlp/+bug/1795876/+subscriptions ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Bug 1796506] Re: Making listening network connections opt-in
** Changed in: openlp Status: New => Confirmed -- You received this bug notification because you are a member of OpenLP Core, which is subscribed to OpenLP. https://bugs.launchpad.net/bugs/1796506 Title: Making listening network connections opt-in Status in OpenLP: Confirmed Bug description: On trunk OpenLP establishes listening network sockets for the projector component, the web remote control, and the websockets API. I cannot disable any of them. In version 2.4.6 there are no listening connections if you do not explicitly enable the remote control. The user should be able to disable the connections and they should be disabled by default (opt-in). If you do not want to disable by default, the default listening IP should at least not be the world (0.0.0.0) but localhost (127.0.0.1). To manage notifications about this bug go to: https://bugs.launchpad.net/openlp/+bug/1796506/+subscriptions ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Bug 1797121] Re: Android app license violations
** Changed in: openlp Status: New => Confirmed -- You received this bug notification because you are a member of OpenLP Core, which is subscribed to OpenLP. https://bugs.launchpad.net/bugs/1797121 Title: Android app license violations Status in OpenLP: Confirmed Bug description: Similar to bug #1795876, the GPLv2 only Android app has some license violations. Several Apache 2.0 libraries by Google are used. This can be fixed by using almost any software license except GPLv2 only. Just adding the "or later" clause to the license would be enough. To manage notifications about this bug go to: https://bugs.launchpad.net/openlp/+bug/1797121/+subscriptions ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Merge] lp:~bastian-germann/openlp/setup into lp:openlp
Bastian Germann has proposed merging lp:~bastian-germann/openlp/setup into lp:openlp. Commit message: This fixes setuptools' dependencies according to scripts/check_dependencies.py. The minimum Python version is set to 3.6 because this was agreed to on the mailing list. To overcome the module conflict, openlp.py is replaced with __main__.py which setuptools installs as /usr/bin/openlp (or openlp.exe on Windows). You can call it locally via `python -m openlp`. Some packages which are optional in the source are declared as optional (uno, pyenchant, pyodbc). The vendored (ripped) pymediainfo module is replaced by its upstream version. Additionally, replace pyxdg with appdirs (see License violations issue). Requested reviews: Raoul Snyman (raoul-snyman) Related bugs: Bug #1795876 in OpenLP: "License violations" https://bugs.launchpad.net/openlp/+bug/1795876 For more details, see: https://code.launchpad.net/~bastian-germann/openlp/setup/+merge/356602 -- Your team OpenLP Core is subscribed to branch lp:openlp. === renamed file 'openlp.py' => 'openlp/__main__.py' --- openlp.py 2017-12-29 09:15:48 + +++ openlp/__main__.py 2018-10-11 18:29:48 + @@ -42,7 +42,7 @@ faulthandler.enable((AppLocation.get_directory(AppLocation.CacheDir) / 'error.log').open('wb')) -if __name__ == '__main__': +def start(): """ Instantiate and run the application. """ @@ -58,3 +58,6 @@ if is_macosx(): sys.argv = [x for x in sys.argv if not x.startswith('-psn')] main() + +if __name__ == '__main__': +start() === modified file 'openlp/core/app.py' --- openlp/core/app.py 2018-08-25 14:36:46 + +++ openlp/core/app.py 2018-10-11 18:29:48 + @@ -288,7 +288,7 @@ :return: a tuple of parsed options of type optparse.Value and a list of remaining argsZ """ # Set up command line options. -parser = argparse.ArgumentParser(prog='openlp.py') +parser = argparse.ArgumentParser(prog='openlp') parser.add_argument('-e', '--no-error-form', dest='no_error_form', action='store_true', help='Disable the error notification form.') parser.add_argument('-l', '--log-level', dest='loglevel', default='warning', metavar='LEVEL', === modified file 'openlp/core/common/applocation.py' --- openlp/core/common/applocation.py 2018-01-07 04:45:13 + +++ openlp/core/common/applocation.py 2018-10-11 18:29:48 + @@ -26,18 +26,13 @@ import os import sys +import appdirs + import openlp from openlp.core.common import get_frozen_path, is_win, is_macosx from openlp.core.common.path import Path, create_paths from openlp.core.common.settings import Settings -if not is_win() and not is_macosx(): -try: -from xdg import BaseDirectory -XDG_BASE_AVAILABLE = True -except ImportError: -XDG_BASE_AVAILABLE = False - log = logging.getLogger(__name__) FROZEN_APP_PATH = Path(sys.argv[0]).parent @@ -143,8 +138,10 @@ elif dir_type == AppLocation.LanguageDir: return Path(openlp.__file__).parent return openlp_folder_path -elif is_macosx(): -openlp_folder_path = Path(os.getenv('HOME'), 'Library', 'Application Support', 'openlp') + +dirs = appdirs.AppDirs('openlp', multipath=True) +if is_macosx(): +openlp_folder_path = Path(dirs.user_data_dir) if dir_type == AppLocation.DataDir: return openlp_folder_path / 'Data' elif dir_type == AppLocation.LanguageDir: @@ -152,15 +149,15 @@ return openlp_folder_path else: if dir_type == AppLocation.LanguageDir: -directory = Path('/usr', 'local', 'share', 'openlp') +site_dirs = dirs.site_data_dir.split(os.pathsep) +directory = Path(site_dirs[0]) if directory.exists(): return directory -return Path('/usr', 'share', 'openlp') -if XDG_BASE_AVAILABLE: -if dir_type == AppLocation.DataDir: -return Path(BaseDirectory.xdg_data_home, 'openlp') -elif dir_type == AppLocation.CacheDir: -return Path(BaseDirectory.xdg_cache_home, 'openlp') +return Path(site_dirs[1]) +if dir_type == AppLocation.DataDir: +return Path(dirs.user_data_dir) +elif dir_type == AppLocation.CacheDir: +return Path(dirs.user_cache_dir) if dir_type == AppLocation.DataDir: return Path(os.getenv('HOME'), '.openlp', 'data') return Path(os.getenv('HOME'), '.openlp') === modified file 'openlp/core/common/registry.py' --- openlp/core/common/registry.py 2018-06-24 06:56:50 + +++ openlp/core/common/registry.py 2018-10-11 18:29:48 + @@ -57,8 +57,7 @@ registry.functions_list = {} registry.working_flags = {} # Allow the tests to remove Registry entries but not the live system -registry.running_under_test =
[Openlp-core] [Merge] lp:~bastian-germann/openlp/setup into lp:openlp
The proposal to merge lp:~bastian-germann/openlp/setup into lp:openlp has been updated. Status: Needs review => Superseded For more details, see: https://code.launchpad.net/~bastian-germann/openlp/setup/+merge/356560 -- Your team OpenLP Core is subscribed to branch lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
Re: [Openlp-core] [Merge] lp:~bastian-germann/openlp/setup into lp:openlp
@raoul-snyman Can you add python3-appdirs and python3-pymediainfo to the build machine or point me to where I can do it? -- https://code.launchpad.net/~bastian-germann/openlp/setup/+merge/356602 Your team OpenLP Core is subscribed to branch lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Bug 1795876] Re: License violations
The voting thread is found on the mailing list: https://lists.openlp.io/pipermail/openlp-dev/2018-October/000437.html -- You received this bug notification because you are a member of OpenLP Core, which is subscribed to OpenLP. https://bugs.launchpad.net/bugs/1795876 Title: License violations Status in OpenLP: In Progress Bug description: OpenLP (GPLv2 only) is currently violating at least two licenses: PyQt5's GPLv3 only and request's Apache 2.0. There are two options to heal these violations: relicense OpenLP or replace the dependencies. A third option would be aquiring a commercial PyQt5 license from Riverbank and replacing requests only, but as it is paid per developer this seems to be infeasible for an open source project. REPLACING = Replacing requests would be feasible: urllib is already used throughout the codebase. Just use it for the currently three files which import requests as well. I do not know if it would be feasible to replace PyQt5 with PySide2. RELICENSING === You would have to use the GPLv3 license to heal both of the violations (GPLv3 is compatible with Apache 2.0). You could also use GPLv2 or later, but the logical license combined with PyQt5 is always GPLv3. That leads to another issue: pysword is GPLv2 only and a license move would require you to drop this optional dependency. But I guess this would be a minor issue as it is not released yet (?). I do not know if relicensing is feasible as you would have to ask the majority of copyright holders to agree with the license change. In either case you should inform your users not later than with your next (fixed!) release about the license violation as they could be in trouble using OpenLP. To manage notifications about this bug go to: https://bugs.launchpad.net/openlp/+bug/1795876/+subscriptions ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Merge] lp:~bastian-germann/openlp/setup into lp:openlp
Bastian Germann has proposed merging lp:~bastian-germann/openlp/setup into lp:openlp. Commit message: This fixes setuptools' dependencies according to scripts/check_dependencies.py. The minimum Python version is set to 3.6 because this was agreed to on the mailing list. To overcome the module conflict, openlp.py is replaced with __main__.py which setuptools installs as /usr/bin/openlp (or openlp.exe on Windows). You can call it locally via `python -m openlp`. Some packages which are optional in the source are declared as optional (uno, pyenchant, pyodbc). The vendored (ripped) pymediainfo module is replaced by its upstream version. Additionally, replace pyxdg with appdirs (see License violations issue). Requested reviews: Raoul Snyman (raoul-snyman) Related bugs: Bug #1795876 in OpenLP: "License violations" https://bugs.launchpad.net/openlp/+bug/1795876 For more details, see: https://code.launchpad.net/~bastian-germann/openlp/setup/+merge/356675 -- Your team OpenLP Core is subscribed to branch lp:openlp. === renamed file 'openlp.py' => 'openlp/__main__.py' --- openlp.py 2017-12-29 09:15:48 + +++ openlp/__main__.py 2018-10-13 08:06:45 + @@ -42,7 +42,7 @@ faulthandler.enable((AppLocation.get_directory(AppLocation.CacheDir) / 'error.log').open('wb')) -if __name__ == '__main__': +def start(): """ Instantiate and run the application. """ @@ -58,3 +58,6 @@ if is_macosx(): sys.argv = [x for x in sys.argv if not x.startswith('-psn')] main() + +if __name__ == '__main__': +start() === modified file 'openlp/core/app.py' --- openlp/core/app.py 2018-08-25 14:36:46 + +++ openlp/core/app.py 2018-10-13 08:06:45 + @@ -288,7 +288,7 @@ :return: a tuple of parsed options of type optparse.Value and a list of remaining argsZ """ # Set up command line options. -parser = argparse.ArgumentParser(prog='openlp.py') +parser = argparse.ArgumentParser(prog='openlp') parser.add_argument('-e', '--no-error-form', dest='no_error_form', action='store_true', help='Disable the error notification form.') parser.add_argument('-l', '--log-level', dest='loglevel', default='warning', metavar='LEVEL', === modified file 'openlp/core/common/applocation.py' --- openlp/core/common/applocation.py 2018-01-07 04:45:13 + +++ openlp/core/common/applocation.py 2018-10-13 08:06:45 + @@ -26,18 +26,13 @@ import os import sys +import appdirs + import openlp from openlp.core.common import get_frozen_path, is_win, is_macosx from openlp.core.common.path import Path, create_paths from openlp.core.common.settings import Settings -if not is_win() and not is_macosx(): -try: -from xdg import BaseDirectory -XDG_BASE_AVAILABLE = True -except ImportError: -XDG_BASE_AVAILABLE = False - log = logging.getLogger(__name__) FROZEN_APP_PATH = Path(sys.argv[0]).parent @@ -143,8 +138,10 @@ elif dir_type == AppLocation.LanguageDir: return Path(openlp.__file__).parent return openlp_folder_path -elif is_macosx(): -openlp_folder_path = Path(os.getenv('HOME'), 'Library', 'Application Support', 'openlp') + +dirs = appdirs.AppDirs('openlp', multipath=True) +if is_macosx(): +openlp_folder_path = Path(dirs.user_data_dir) if dir_type == AppLocation.DataDir: return openlp_folder_path / 'Data' elif dir_type == AppLocation.LanguageDir: @@ -152,15 +149,15 @@ return openlp_folder_path else: if dir_type == AppLocation.LanguageDir: -directory = Path('/usr', 'local', 'share', 'openlp') +site_dirs = dirs.site_data_dir.split(os.pathsep) +directory = Path(site_dirs[0]) if directory.exists(): return directory -return Path('/usr', 'share', 'openlp') -if XDG_BASE_AVAILABLE: -if dir_type == AppLocation.DataDir: -return Path(BaseDirectory.xdg_data_home, 'openlp') -elif dir_type == AppLocation.CacheDir: -return Path(BaseDirectory.xdg_cache_home, 'openlp') +return Path(site_dirs[1]) +if dir_type == AppLocation.DataDir: +return Path(dirs.user_data_dir) +elif dir_type == AppLocation.CacheDir: +return Path(dirs.user_cache_dir) if dir_type == AppLocation.DataDir: return Path(os.getenv('HOME'), '.openlp', 'data') return Path(os.getenv('HOME'), '.openlp') === modified file 'openlp/core/common/registry.py' --- openlp/core/common/registry.py 2018-06-24 06:56:50 + +++ openlp/core/common/registry.py 2018-10-13 08:06:45 + @@ -57,8 +57,7 @@ registry.functions_list = {} registry.working_flags = {} # Allow the tests to remove Registry entries but not the live system -registry.running_under_test =
[Openlp-core] [Merge] lp:~bastian-germann/openlp/setup into lp:openlp
The proposal to merge lp:~bastian-germann/openlp/setup into lp:openlp has been updated. Status: Needs review => Superseded For more details, see: https://code.launchpad.net/~bastian-germann/openlp/setup/+merge/356602 -- Your team OpenLP Core is subscribed to branch lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Bug 1795876] Re: License violations
One more LGPLv3 violation spotted: launchpadlib in scripts/mp_update.py. -- You received this bug notification because you are a member of OpenLP Core, which is subscribed to OpenLP. https://bugs.launchpad.net/bugs/1795876 Title: License violations Status in OpenLP: In Progress Bug description: OpenLP (GPLv2 only) is currently violating at least two licenses: PyQt5's GPLv3 only and request's Apache 2.0. There are two options to heal these violations: relicense OpenLP or replace the dependencies. A third option would be aquiring a commercial PyQt5 license from Riverbank and replacing requests only, but as it is paid per developer this seems to be infeasible for an open source project. REPLACING = Replacing requests would be feasible: urllib is already used throughout the codebase. Just use it for the currently three files which import requests as well. I do not know if it would be feasible to replace PyQt5 with PySide2. RELICENSING === You would have to use the GPLv3 license to heal both of the violations (GPLv3 is compatible with Apache 2.0). You could also use GPLv2 or later, but the logical license combined with PyQt5 is always GPLv3. That leads to another issue: pysword is GPLv2 only and a license move would require you to drop this optional dependency. But I guess this would be a minor issue as it is not released yet (?). I do not know if relicensing is feasible as you would have to ask the majority of copyright holders to agree with the license change. In either case you should inform your users not later than with your next (fixed!) release about the license violation as they could be in trouble using OpenLP. To manage notifications about this bug go to: https://bugs.launchpad.net/openlp/+bug/1795876/+subscriptions ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
Re: [Openlp-core] [Merge] lp:~bastian-germann/openlp/setup into lp:openlp
That is right. I tested on Linux and Windows. -- https://code.launchpad.net/~bastian-germann/openlp/setup/+merge/356675 Your team OpenLP Core is subscribed to branch lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Merge] lp:~bastian-germann/openlp/setup into lp:openlp
The proposal to merge lp:~bastian-germann/openlp/setup into lp:openlp has been updated. Status: Needs review => Superseded For more details, see: https://code.launchpad.net/~bastian-germann/openlp/setup/+merge/356675 -- Your team OpenLP Core is subscribed to branch lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Merge] lp:~bastian-germann/openlp/setup into lp:openlp
Bastian Germann has proposed merging lp:~bastian-germann/openlp/setup into lp:openlp. Commit message: This fixes setuptools' dependencies according to scripts/check_dependencies.py. The minimum Python version is set to 3.6 because this was agreed to on the mailing list. To overcome the module conflict, openlp.py is replaced with __main__.py which setuptools installs as /usr/bin/openlp (or openlp.exe on Windows). You can call it locally via `python -m openlp`. Some packages which are optional in the source are declared as optional (uno, pyenchant, pyodbc). The vendored (ripped) pymediainfo module is replaced by its upstream version. Additionally, replace pyxdg with appdirs (see License violations issue). Requested reviews: Raoul Snyman (raoul-snyman) Tomas Groth (tomasgroth) Related bugs: Bug #1795876 in OpenLP: "License violations" https://bugs.launchpad.net/openlp/+bug/1795876 For more details, see: https://code.launchpad.net/~bastian-germann/openlp/setup/+merge/356801 -- Your team OpenLP Core is subscribed to branch lp:openlp. === renamed file 'openlp.py' => 'openlp/__main__.py' --- openlp.py 2017-12-29 09:15:48 + +++ openlp/__main__.py 2018-10-16 10:12:25 + @@ -42,7 +42,7 @@ faulthandler.enable((AppLocation.get_directory(AppLocation.CacheDir) / 'error.log').open('wb')) -if __name__ == '__main__': +def start(): """ Instantiate and run the application. """ @@ -58,3 +58,7 @@ if is_macosx(): sys.argv = [x for x in sys.argv if not x.startswith('-psn')] main() + + +if __name__ == '__main__': +start() === modified file 'openlp/core/app.py' --- openlp/core/app.py 2018-08-25 14:36:46 + +++ openlp/core/app.py 2018-10-16 10:12:25 + @@ -288,7 +288,7 @@ :return: a tuple of parsed options of type optparse.Value and a list of remaining argsZ """ # Set up command line options. -parser = argparse.ArgumentParser(prog='openlp.py') +parser = argparse.ArgumentParser(prog='openlp') parser.add_argument('-e', '--no-error-form', dest='no_error_form', action='store_true', help='Disable the error notification form.') parser.add_argument('-l', '--log-level', dest='loglevel', default='warning', metavar='LEVEL', === modified file 'openlp/core/common/applocation.py' --- openlp/core/common/applocation.py 2018-01-07 04:45:13 + +++ openlp/core/common/applocation.py 2018-10-16 10:12:25 + @@ -26,18 +26,13 @@ import os import sys +import appdirs + import openlp from openlp.core.common import get_frozen_path, is_win, is_macosx from openlp.core.common.path import Path, create_paths from openlp.core.common.settings import Settings -if not is_win() and not is_macosx(): -try: -from xdg import BaseDirectory -XDG_BASE_AVAILABLE = True -except ImportError: -XDG_BASE_AVAILABLE = False - log = logging.getLogger(__name__) FROZEN_APP_PATH = Path(sys.argv[0]).parent @@ -143,8 +138,10 @@ elif dir_type == AppLocation.LanguageDir: return Path(openlp.__file__).parent return openlp_folder_path -elif is_macosx(): -openlp_folder_path = Path(os.getenv('HOME'), 'Library', 'Application Support', 'openlp') + +dirs = appdirs.AppDirs('openlp', multipath=True) +if is_macosx(): +openlp_folder_path = Path(dirs.user_data_dir) if dir_type == AppLocation.DataDir: return openlp_folder_path / 'Data' elif dir_type == AppLocation.LanguageDir: @@ -152,15 +149,15 @@ return openlp_folder_path else: if dir_type == AppLocation.LanguageDir: -directory = Path('/usr', 'local', 'share', 'openlp') +site_dirs = dirs.site_data_dir.split(os.pathsep) +directory = Path(site_dirs[0]) if directory.exists(): return directory -return Path('/usr', 'share', 'openlp') -if XDG_BASE_AVAILABLE: -if dir_type == AppLocation.DataDir: -return Path(BaseDirectory.xdg_data_home, 'openlp') -elif dir_type == AppLocation.CacheDir: -return Path(BaseDirectory.xdg_cache_home, 'openlp') +return Path(site_dirs[1]) +if dir_type == AppLocation.DataDir: +return Path(dirs.user_data_dir) +elif dir_type == AppLocation.CacheDir: +return Path(dirs.user_cache_dir) if dir_type == AppLocation.DataDir: return Path(os.getenv('HOME'), '.openlp', 'data') return Path(os.getenv('HOME'), '.openlp') === modified file 'openlp/core/common/registry.py' --- openlp/core/common/registry.py 2018-06-24 06:56:50 + +++ openlp/core/common/registry.py 2018-10-16 10:12:25 + @@ -57,8 +57,7 @@ registry.functions_list = {} registry.working_flags = {} # Allow the tests to remove Registry entries but not the live system -
[Openlp-core] [Merge] lp:~bastian-germann/openlp/setup into lp:openlp
Bastian Germann has proposed merging lp:~bastian-germann/openlp/setup into lp:openlp. Commit message: This fixes setuptools' dependencies according to scripts/check_dependencies.py. The minimum Python version is set to 3.6 because this was agreed to on the mailing list. To overcome the module conflict, openlp.py is replaced with __main__.py which setuptools installs as /usr/bin/openlp (or openlp.exe on Windows). You can call it locally via `python -m openlp`. Some packages which are optional in the source are declared as optional (uno, pyenchant, pyodbc). The vendored (ripped) pymediainfo module is replaced by its upstream version. Additionally, replace pyxdg with appdirs (see License violations issue). Requested reviews: Tomas Groth (tomasgroth) Raoul Snyman (raoul-snyman) Related bugs: Bug #1795876 in OpenLP: "License violations" https://bugs.launchpad.net/openlp/+bug/1795876 For more details, see: https://code.launchpad.net/~bastian-germann/openlp/setup/+merge/356864 -- Your team OpenLP Core is subscribed to branch lp:openlp. === renamed file 'openlp.py' => 'openlp/__main__.py' --- openlp.py 2017-12-29 09:15:48 + +++ openlp/__main__.py 2018-10-16 19:33:23 + @@ -42,7 +42,7 @@ faulthandler.enable((AppLocation.get_directory(AppLocation.CacheDir) / 'error.log').open('wb')) -if __name__ == '__main__': +def start(): """ Instantiate and run the application. """ @@ -58,3 +58,7 @@ if is_macosx(): sys.argv = [x for x in sys.argv if not x.startswith('-psn')] main() + + +if __name__ == '__main__': +start() === modified file 'openlp/core/app.py' --- openlp/core/app.py 2018-08-25 14:36:46 + +++ openlp/core/app.py 2018-10-16 19:33:23 + @@ -288,7 +288,7 @@ :return: a tuple of parsed options of type optparse.Value and a list of remaining argsZ """ # Set up command line options. -parser = argparse.ArgumentParser(prog='openlp.py') +parser = argparse.ArgumentParser(prog='openlp') parser.add_argument('-e', '--no-error-form', dest='no_error_form', action='store_true', help='Disable the error notification form.') parser.add_argument('-l', '--log-level', dest='loglevel', default='warning', metavar='LEVEL', === modified file 'openlp/core/common/applocation.py' --- openlp/core/common/applocation.py 2018-01-07 04:45:13 + +++ openlp/core/common/applocation.py 2018-10-16 19:33:23 + @@ -26,18 +26,13 @@ import os import sys +import appdirs + import openlp from openlp.core.common import get_frozen_path, is_win, is_macosx from openlp.core.common.path import Path, create_paths from openlp.core.common.settings import Settings -if not is_win() and not is_macosx(): -try: -from xdg import BaseDirectory -XDG_BASE_AVAILABLE = True -except ImportError: -XDG_BASE_AVAILABLE = False - log = logging.getLogger(__name__) FROZEN_APP_PATH = Path(sys.argv[0]).parent @@ -143,8 +138,10 @@ elif dir_type == AppLocation.LanguageDir: return Path(openlp.__file__).parent return openlp_folder_path -elif is_macosx(): -openlp_folder_path = Path(os.getenv('HOME'), 'Library', 'Application Support', 'openlp') + +dirs = appdirs.AppDirs('openlp', multipath=True) +if is_macosx(): +openlp_folder_path = Path(dirs.user_data_dir) if dir_type == AppLocation.DataDir: return openlp_folder_path / 'Data' elif dir_type == AppLocation.LanguageDir: @@ -152,15 +149,15 @@ return openlp_folder_path else: if dir_type == AppLocation.LanguageDir: -directory = Path('/usr', 'local', 'share', 'openlp') +site_dirs = dirs.site_data_dir.split(os.pathsep) +directory = Path(site_dirs[0]) if directory.exists(): return directory -return Path('/usr', 'share', 'openlp') -if XDG_BASE_AVAILABLE: -if dir_type == AppLocation.DataDir: -return Path(BaseDirectory.xdg_data_home, 'openlp') -elif dir_type == AppLocation.CacheDir: -return Path(BaseDirectory.xdg_cache_home, 'openlp') +return Path(site_dirs[1]) +if dir_type == AppLocation.DataDir: +return Path(dirs.user_data_dir) +elif dir_type == AppLocation.CacheDir: +return Path(dirs.user_cache_dir) if dir_type == AppLocation.DataDir: return Path(os.getenv('HOME'), '.openlp', 'data') return Path(os.getenv('HOME'), '.openlp') === modified file 'openlp/core/common/registry.py' --- openlp/core/common/registry.py 2018-06-24 06:56:50 + +++ openlp/core/common/registry.py 2018-10-16 19:33:23 + @@ -57,8 +57,7 @@ registry.functions_list = {} registry.working_flags = {} # Allow the tests to remove Registry entries but not the live system -
[Openlp-core] [Merge] lp:~bastian-germann/openlp/setup into lp:openlp
The proposal to merge lp:~bastian-germann/openlp/setup into lp:openlp has been updated. Status: Needs review => Superseded For more details, see: https://code.launchpad.net/~bastian-germann/openlp/setup/+merge/356801 -- Your team OpenLP Core is subscribed to branch lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Merge] lp:~bastian-germann/openlp/documentation into lp:openlp/documentation
Bastian Germann has proposed merging lp:~bastian-germann/openlp/documentation into lp:openlp/documentation. Commit message: Fix a missing import Requested reviews: OpenLP Core (openlp-core) For more details, see: https://code.launchpad.net/~bastian-germann/openlp/documentation/+merge/356852 -- Your team OpenLP Core is requested to review the proposed merge of lp:~bastian-germann/openlp/documentation into lp:openlp/documentation. === modified file 'api/source/scan.py' --- api/source/scan.py 2018-01-29 03:52:43 + +++ api/source/scan.py 2018-10-16 17:01:38 + @@ -8,6 +8,7 @@ import pkgutil import string import multiprocessing +from queue import Empty PACKAGE_RST = string.Template("""$underline $title @@ -73,7 +74,7 @@ while number > progress_percentage: try: module = queue.get(True, 5) -except queue.Empty: +except Empty: break percent = round((progress_percentage/number)*100) sys.stdout.write('{0}% File: {1}{2}\r'.format(percent, module, ' '*25)) ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Merge] lp:~bastian-germann/openlp/setup into lp:openlp
Bastian Germann has proposed merging lp:~bastian-germann/openlp/setup into lp:openlp. Commit message: This fixes setuptools' dependencies according to scripts/check_dependencies.py. The minimum Python version is set to 3.6 because this was agreed to on the mailing list. Some packages which are optional in the source are declared as optional (uno, pyenchant, pyodbc). To overcome a module conflict, openlp.py is replaced with run_openlp.py which setuptools installs as /usr/bin/openlp (or openlp.exe on Windows). The vendored (ripped) pymediainfo module is replaced with its upstream version. As this builds on the shared library in current versions, the wrapper now calls the executable if that cannot be loaded. Additionally, pyxdg is replaced with appdirs (see License violations issue). Requested reviews: OpenLP Core (openlp-core) Related bugs: Bug #1795876 in OpenLP: "License violations" https://bugs.launchpad.net/openlp/+bug/1795876 For more details, see: https://code.launchpad.net/~bastian-germann/openlp/setup/+merge/356868 -- Your team OpenLP Core is requested to review the proposed merge of lp:~bastian-germann/openlp/setup into lp:openlp. === modified file 'openlp/core/app.py' --- openlp/core/app.py 2018-08-25 14:36:46 + +++ openlp/core/app.py 2018-10-16 20:24:43 + @@ -288,7 +288,7 @@ :return: a tuple of parsed options of type optparse.Value and a list of remaining argsZ """ # Set up command line options. -parser = argparse.ArgumentParser(prog='openlp.py') +parser = argparse.ArgumentParser(prog='openlp') parser.add_argument('-e', '--no-error-form', dest='no_error_form', action='store_true', help='Disable the error notification form.') parser.add_argument('-l', '--log-level', dest='loglevel', default='warning', metavar='LEVEL', === modified file 'openlp/core/common/applocation.py' --- openlp/core/common/applocation.py 2018-01-07 04:45:13 + +++ openlp/core/common/applocation.py 2018-10-16 20:24:43 + @@ -26,18 +26,13 @@ import os import sys +import appdirs + import openlp from openlp.core.common import get_frozen_path, is_win, is_macosx from openlp.core.common.path import Path, create_paths from openlp.core.common.settings import Settings -if not is_win() and not is_macosx(): -try: -from xdg import BaseDirectory -XDG_BASE_AVAILABLE = True -except ImportError: -XDG_BASE_AVAILABLE = False - log = logging.getLogger(__name__) FROZEN_APP_PATH = Path(sys.argv[0]).parent @@ -143,8 +138,10 @@ elif dir_type == AppLocation.LanguageDir: return Path(openlp.__file__).parent return openlp_folder_path -elif is_macosx(): -openlp_folder_path = Path(os.getenv('HOME'), 'Library', 'Application Support', 'openlp') + +dirs = appdirs.AppDirs('openlp', multipath=True) +if is_macosx(): +openlp_folder_path = Path(dirs.user_data_dir) if dir_type == AppLocation.DataDir: return openlp_folder_path / 'Data' elif dir_type == AppLocation.LanguageDir: @@ -152,15 +149,15 @@ return openlp_folder_path else: if dir_type == AppLocation.LanguageDir: -directory = Path('/usr', 'local', 'share', 'openlp') +site_dirs = dirs.site_data_dir.split(os.pathsep) +directory = Path(site_dirs[0]) if directory.exists(): return directory -return Path('/usr', 'share', 'openlp') -if XDG_BASE_AVAILABLE: -if dir_type == AppLocation.DataDir: -return Path(BaseDirectory.xdg_data_home, 'openlp') -elif dir_type == AppLocation.CacheDir: -return Path(BaseDirectory.xdg_cache_home, 'openlp') +return Path(site_dirs[1]) +if dir_type == AppLocation.DataDir: +return Path(dirs.user_data_dir) +elif dir_type == AppLocation.CacheDir: +return Path(dirs.user_cache_dir) if dir_type == AppLocation.DataDir: return Path(os.getenv('HOME'), '.openlp', 'data') return Path(os.getenv('HOME'), '.openlp') === modified file 'openlp/core/common/registry.py' --- openlp/core/common/registry.py 2018-06-24 06:56:50 + +++ openlp/core/common/registry.py 2018-10-16 20:24:43 + @@ -57,8 +57,7 @@ registry.functions_list = {} registry.working_flags = {} # Allow the tests to remove Registry entries but not the live system -registry.running_under_test = 'nose' in sys.argv[0] -registry.running_under_test = 'pytest' in sys.argv[0] +registry.running_under_test = 'nose' in sys.argv[0] or 'pytest' in sys.argv[0] registry.initialising = True return registry === modified file 'openlp/core/ui/aboutdialog.py' --- openlp/core/ui/aboutdialog.py 2018-06-24 06:56:50 + +++ openlp/core/ui/aboutdialog.py 2018-10-16 20:24:
Re: [Openlp-core] [Merge] lp:~bastian-germann/openlp/setup into lp:openlp
> Please removed all pymediainfo changes as the media code is been extensively > refactored and this will cause issues when that is merged. Your changes have > been taken on board but implemented differently. Did you get the latest utf8 decoding change in 2860? I will remove the changes in the next merge proposal. > Why has run_openlp been restructured instead of just being renamed? Because setuptools' entry_points needs a function. > The license file for fonts will be removed at some point as that icon file > will need to be cleaned up before the release. We are awaiting a dev to come > and help with the font UX work. The fontawsome icons cannot be packaged by > use. The only icons are the 10 we have created from scratch. That is fine. I just added it because the license says it is void if it the license file is not distributed with the font. -- https://code.launchpad.net/~bastian-germann/openlp/setup/+merge/356868 Your team OpenLP Core is subscribed to branch lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Merge] lp:~bastian-germann/openlp/setup into lp:openlp
The proposal to merge lp:~bastian-germann/openlp/setup into lp:openlp has been updated. Status: Needs review => Superseded For more details, see: https://code.launchpad.net/~bastian-germann/openlp/setup/+merge/356868 -- Your team OpenLP Core is subscribed to branch lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Merge] lp:~bastian-germann/openlp/setup into lp:openlp
Bastian Germann has proposed merging lp:~bastian-germann/openlp/setup into lp:openlp. Commit message: This fixes setuptools' dependencies according to scripts/check_dependencies.py. The minimum Python version is set to 3.6 because this was agreed to on the mailing list. Some packages which are optional in the source are declared as optional (uno, pyenchant, pyodbc). To overcome a module conflict, openlp.py is replaced with run_openlp.py which setuptools installs as /usr/bin/openlp (or openlp.exe on Windows). Additionally, pyxdg is replaced with appdirs (see License violations issue). Requested reviews: Tim Bentley (trb143) Related bugs: Bug #1795876 in OpenLP: "License violations" https://bugs.launchpad.net/openlp/+bug/1795876 For more details, see: https://code.launchpad.net/~bastian-germann/openlp/setup/+merge/356881 -- Your team OpenLP Core is subscribed to branch lp:openlp. === modified file 'openlp/core/app.py' --- openlp/core/app.py 2018-08-25 14:36:46 + +++ openlp/core/app.py 2018-10-16 21:00:41 + @@ -288,7 +288,7 @@ :return: a tuple of parsed options of type optparse.Value and a list of remaining argsZ """ # Set up command line options. -parser = argparse.ArgumentParser(prog='openlp.py') +parser = argparse.ArgumentParser(prog='openlp') parser.add_argument('-e', '--no-error-form', dest='no_error_form', action='store_true', help='Disable the error notification form.') parser.add_argument('-l', '--log-level', dest='loglevel', default='warning', metavar='LEVEL', === modified file 'openlp/core/common/applocation.py' --- openlp/core/common/applocation.py 2018-01-07 04:45:13 + +++ openlp/core/common/applocation.py 2018-10-16 21:00:41 + @@ -26,18 +26,13 @@ import os import sys +import appdirs + import openlp from openlp.core.common import get_frozen_path, is_win, is_macosx from openlp.core.common.path import Path, create_paths from openlp.core.common.settings import Settings -if not is_win() and not is_macosx(): -try: -from xdg import BaseDirectory -XDG_BASE_AVAILABLE = True -except ImportError: -XDG_BASE_AVAILABLE = False - log = logging.getLogger(__name__) FROZEN_APP_PATH = Path(sys.argv[0]).parent @@ -143,8 +138,10 @@ elif dir_type == AppLocation.LanguageDir: return Path(openlp.__file__).parent return openlp_folder_path -elif is_macosx(): -openlp_folder_path = Path(os.getenv('HOME'), 'Library', 'Application Support', 'openlp') + +dirs = appdirs.AppDirs('openlp', multipath=True) +if is_macosx(): +openlp_folder_path = Path(dirs.user_data_dir) if dir_type == AppLocation.DataDir: return openlp_folder_path / 'Data' elif dir_type == AppLocation.LanguageDir: @@ -152,15 +149,15 @@ return openlp_folder_path else: if dir_type == AppLocation.LanguageDir: -directory = Path('/usr', 'local', 'share', 'openlp') +site_dirs = dirs.site_data_dir.split(os.pathsep) +directory = Path(site_dirs[0]) if directory.exists(): return directory -return Path('/usr', 'share', 'openlp') -if XDG_BASE_AVAILABLE: -if dir_type == AppLocation.DataDir: -return Path(BaseDirectory.xdg_data_home, 'openlp') -elif dir_type == AppLocation.CacheDir: -return Path(BaseDirectory.xdg_cache_home, 'openlp') +return Path(site_dirs[1]) +if dir_type == AppLocation.DataDir: +return Path(dirs.user_data_dir) +elif dir_type == AppLocation.CacheDir: +return Path(dirs.user_cache_dir) if dir_type == AppLocation.DataDir: return Path(os.getenv('HOME'), '.openlp', 'data') return Path(os.getenv('HOME'), '.openlp') === modified file 'openlp/core/common/registry.py' --- openlp/core/common/registry.py 2018-06-24 06:56:50 + +++ openlp/core/common/registry.py 2018-10-16 21:00:41 + @@ -57,8 +57,7 @@ registry.functions_list = {} registry.working_flags = {} # Allow the tests to remove Registry entries but not the live system -registry.running_under_test = 'nose' in sys.argv[0] -registry.running_under_test = 'pytest' in sys.argv[0] +registry.running_under_test = 'nose' in sys.argv[0] or 'pytest' in sys.argv[0] registry.initialising = True return registry === modified file 'openlp/core/ui/aboutdialog.py' --- openlp/core/ui/aboutdialog.py 2018-06-24 06:56:50 + +++ openlp/core/ui/aboutdialog.py 2018-10-16 21:00:41 + @@ -112,8 +112,8 @@ 'Andreas "googol" Preikschat', 'Ken "alisonken1" Roberts', 'Raoul "superfly" Snyman', 'Jonathan "springermac" Springer', 'Philip "Phill" Ridout'] contributors
[Openlp-core] [Bug 1797132] Re: Windows and macOS installer license violations
** Changed in: openlp Milestone: None => 3.0 -- You received this bug notification because you are a member of OpenLP Core, which is subscribed to OpenLP. https://bugs.launchpad.net/bugs/1797132 Title: Windows and macOS installer license violations Status in OpenLP: New Bug description: The Windows and macOS installers contain even more license violations than bug #1795876. You redistribute the dependencies with these installers and I cannot see any license being documented other than OpenLP's own GPLv2. In general even "liberal" free software licenses like BSD or MIT require you to include the license statement in ANY redistribution, including binary distribution. To manage notifications about this bug go to: https://bugs.launchpad.net/openlp/+bug/1797132/+subscriptions ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Bug 1797121] Re: Android app license violations
** Also affects: openlp/android2 Importance: Undecided Status: New ** Changed in: openlp/android2 Status: New => Confirmed -- You received this bug notification because you are a member of OpenLP Core, which is subscribed to OpenLP. https://bugs.launchpad.net/bugs/1797121 Title: Android app license violations Status in OpenLP: Confirmed Status in OpenLP android2 series: Confirmed Bug description: Similar to bug #1795876, the GPLv2 only Android app has some license violations. Several Apache 2.0 libraries by Google are used. This can be fixed by using almost any software license except GPLv2 only. Just adding the "or later" clause to the license would be enough. To manage notifications about this bug go to: https://bugs.launchpad.net/openlp/+bug/1797121/+subscriptions ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Bug 1795876] Re: License violations
** Also affects: openlp/2.0 Importance: Undecided Status: New ** Also affects: openlp/trunk Importance: Undecided Status: In Progress ** Also affects: openlp/2.4 Importance: Undecided Status: New ** Also affects: openlp/2.2 Importance: Undecided Status: New -- You received this bug notification because you are a member of OpenLP Core, which is subscribed to OpenLP. https://bugs.launchpad.net/bugs/1795876 Title: License violations Status in OpenLP: In Progress Status in OpenLP 2.0 series: New Status in OpenLP 2.2 series: New Status in OpenLP 2.4 series: New Status in OpenLP trunk series: In Progress Bug description: OpenLP (GPLv2 only) is currently violating at least two licenses: PyQt5's GPLv3 only and request's Apache 2.0. There are two options to heal these violations: relicense OpenLP or replace the dependencies. A third option would be aquiring a commercial PyQt5 license from Riverbank and replacing requests only, but as it is paid per developer this seems to be infeasible for an open source project. REPLACING = Replacing requests would be feasible: urllib is already used throughout the codebase. Just use it for the currently three files which import requests as well. I do not know if it would be feasible to replace PyQt5 with PySide2. RELICENSING === You would have to use the GPLv3 license to heal both of the violations (GPLv3 is compatible with Apache 2.0). You could also use GPLv2 or later, but the logical license combined with PyQt5 is always GPLv3. That leads to another issue: pysword is GPLv2 only and a license move would require you to drop this optional dependency. But I guess this would be a minor issue as it is not released yet (?). I do not know if relicensing is feasible as you would have to ask the majority of copyright holders to agree with the license change. In either case you should inform your users not later than with your next (fixed!) release about the license violation as they could be in trouble using OpenLP. To manage notifications about this bug go to: https://bugs.launchpad.net/openlp/+bug/1795876/+subscriptions ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
Re: [Openlp-core] [Merge] lp:~bastian-germann/openlp/setup into lp:openlp
@trb143 I just checked your media_state branch for the mentioned pymediainfo change. You did not include https://bazaar.launchpad.net/~bastian-germann/openlp/setup/revision/2860. It took me some debugging (no error thrown) to find this. -- https://code.launchpad.net/~bastian-germann/openlp/setup/+merge/356881 Your team OpenLP Core is subscribed to branch lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Merge] lp:~bastian-germann/openlp/fix-circ-dep into lp:openlp
Bastian Germann has proposed merging lp:~bastian-germann/openlp/fix-circ-dep into lp:openlp. Commit message: Fix a circular dependency that is hit when you run tests.interfaces.openlp_plugins.custom.forms.test_customform: ImportError: Failed to import test module: tests.interfaces.openlp_plugins.custom.forms.test_customform Traceback (most recent call last): File "/var/lib/jenkins/virtualenv/lib/python3.6/site-packages/nose2/plugins/loader/discovery.py", line 201, in _find_tests_in_file module = util.module_from_name(module_name) File "/var/lib/jenkins/virtualenv/lib/python3.6/site-packages/nose2/util.py", line 77, in module_from_name __import__(name) File "/var/lib/jenkins/shared-repo/trunk/tests/interfaces/openlp_plugins/custom/forms/test_customform.py", line 31, in from openlp.plugins.custom.forms.editcustomform import EditCustomForm File "/var/lib/jenkins/shared-repo/trunk/openlp/plugins/custom/forms/editcustomform.py", line 30, in from openlp.plugins.custom.lib import CustomXMLBuilder, CustomXMLParser File "/var/lib/jenkins/shared-repo/trunk/openlp/plugins/custom/lib/__init__.py", line 25, in from .mediaitem import CustomMediaItem File "/var/lib/jenkins/shared-repo/trunk/openlp/plugins/custom/lib/mediaitem.py", line 37, in from openlp.plugins.custom.forms.editcustomform import EditCustomForm ImportError: cannot import name 'EditCustomForm' Requested reviews: OpenLP Core (openlp-core) For more details, see: https://code.launchpad.net/~bastian-germann/openlp/fix-circ-dep/+merge/357597 -- Your team OpenLP Core is requested to review the proposed merge of lp:~bastian-germann/openlp/fix-circ-dep into lp:openlp. === modified file 'openlp/plugins/custom/forms/__init__.py' --- openlp/plugins/custom/forms/__init__.py 2017-12-29 09:15:48 + +++ openlp/plugins/custom/forms/__init__.py 2018-10-21 20:55:54 + @@ -19,3 +19,5 @@ # with this program; if not, write to the Free Software Foundation, Inc., 59 # # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ### + +import openlp.plugins.custom.lib ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Bug 1795876] Re: License violations
** Branch linked: lp:~trb143/openlp/media_state -- You received this bug notification because you are a member of OpenLP Core, which is subscribed to OpenLP. https://bugs.launchpad.net/bugs/1795876 Title: License violations Status in OpenLP: In Progress Status in OpenLP 2.0 series: Won't Fix Status in OpenLP 2.2 series: Won't Fix Status in OpenLP 2.4 series: Won't Fix Status in OpenLP trunk series: In Progress Bug description: OpenLP (GPLv2 only) is currently violating at least two licenses: PyQt5's GPLv3 only and request's Apache 2.0. There are two options to heal these violations: relicense OpenLP or replace the dependencies. A third option would be aquiring a commercial PyQt5 license from Riverbank and replacing requests only, but as it is paid per developer this seems to be infeasible for an open source project. REPLACING = Replacing requests would be feasible: urllib is already used throughout the codebase. Just use it for the currently three files which import requests as well. I do not know if it would be feasible to replace PyQt5 with PySide2. RELICENSING === You would have to use the GPLv3 license to heal both of the violations (GPLv3 is compatible with Apache 2.0). You could also use GPLv2 or later, but the logical license combined with PyQt5 is always GPLv3. That leads to another issue: pysword is GPLv2 only and a license move would require you to drop this optional dependency. But I guess this would be a minor issue as it is not released yet (?). I do not know if relicensing is feasible as you would have to ask the majority of copyright holders to agree with the license change. In either case you should inform your users not later than with your next (fixed!) release about the license violation as they could be in trouble using OpenLP. To manage notifications about this bug go to: https://bugs.launchpad.net/openlp/+bug/1795876/+subscriptions ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Merge] lp:~bastian-germann/openlp/packaging into lp:openlp/packaging
Bastian Germann has proposed merging lp:~bastian-germann/openlp/packaging into lp:openlp/packaging. Commit message: The openlp.py starter module was renamed. Use run_openlp over openlp module. Requested reviews: OpenLP Core (openlp-core) For more details, see: https://code.launchpad.net/~bastian-germann/openlp/packaging/+merge/357789 -- Your team OpenLP Core is requested to review the proposed merge of lp:~bastian-germann/openlp/packaging into lp:openlp/packaging. === modified file 'builders/builder.py' --- builders/builder.py 2018-07-12 19:41:00 + +++ builders/builder.py 2018-10-24 22:57:18 + @@ -269,7 +269,7 @@ Run PyInstaller on the branch to build an executable. """ self._print('Running PyInstaller...') -copy(os.path.join(self.work_path, 'openlp.py'), self.openlp_script) +copy(os.path.join(self.work_path, 'run_openlp.py'), self.openlp_script) os.chdir(self.work_path) cmd = [self.python, self.pyinstaller_exe, === modified file 'launchpad-ppa/debian/rules' --- launchpad-ppa/debian/rules 2012-11-21 21:29:26 + +++ launchpad-ppa/debian/rules 2018-10-24 22:57:18 + @@ -18,4 +18,4 @@ mkdir -p debian/openlp/usr/share/icons/hicolor/scalable/apps && \ cp resources/images/openlp-logo.svg debian/openlp/usr/share/icons/hicolor/scalable/apps/openlp.svg - cd debian/openlp/usr/bin/ && mv openlp.pyw openlp + cd debian/openlp/usr/bin/ && mv run_openlp.pyw openlp ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
Re: [Openlp-core] [Merge] lp:~bastian-germann/openlp/fix-circ-dep into lp:openlp
The test imports o.p.c.forms.editcustomform.EditCustomForm which imports something from o.p.c.lib that in turn wants to import EditCustomForm. That is a circular dependency. As the added line (__init__.py) is implicitly executed on all o.p.c.forms* imports, o.p.c.lib is imported before any o.p.c.forms import. -- https://code.launchpad.net/~bastian-germann/openlp/fix-circ-dep/+merge/357849 Your team OpenLP Core is subscribed to branch lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Merge] lp:~bastian-germann/openlp/py37 into lp:openlp
Bastian Germann has proposed merging lp:~bastian-germann/openlp/py37 into lp:openlp. Commit message: A test that depends on re.escape's pre-3.7 behaviour fails on Python 3.7. Make it compatible. Requested reviews: OpenLP Core (openlp-core) For more details, see: https://code.launchpad.net/~bastian-germann/openlp/py37/+merge/357922 -- Your team OpenLP Core is requested to review the proposed merge of lp:~bastian-germann/openlp/py37 into lp:openlp. === modified file 'tests/functional/openlp_core/api/http/test_wsgiapp.py' --- tests/functional/openlp_core/api/http/test_wsgiapp.py 2018-10-27 01:53:43 + +++ tests/functional/openlp_core/api/http/test_wsgiapp.py 2018-10-28 23:34:36 + @@ -69,7 +69,9 @@ rqst.method = 'GET' application.dispatch(rqst) # THEN: the not found id called -assert 1 == application.route_map['^\\/test\\/image$']['GET'].call_count, \ +route_key = next(iter(application.route_map)) +assert '/image' in route_key +assert 1 == application.route_map[route_key]['GET'].call_count, \ 'main_index function should have been called' ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Bug 1795876] Re: License violations
The appdirs replacement is merged and pysword relicensed under MIT now. This enables the relicensing without dropping any features. So technically the only change to relicense is adjusting the license headers and the license file. @springermac is the only main developer that did not agree to a license change yet. The others are @arjans, @crichter, @edwinlunando, @elderp, @m2j, @matthub, @meths, @milleja46, @rafaellerm, @samscudder, @sguerrieri, @thelinuxguy, @whydoubt, Stuart Becker, Gerald Britton, Samuel Findlay, Michael Gorven, Ian Knightly, Gabriel Loo, Dmitriy Marmyshev, Brian Meyer, Suutari Olli, Felipe Polo-Wood, Maikel Stuivenberg, Dave Warnock, Oliver Wieland, Frode Woldsund, and Martin Zibricky. -- You received this bug notification because you are a member of OpenLP Core, which is subscribed to OpenLP. https://bugs.launchpad.net/bugs/1795876 Title: License violations Status in OpenLP: Fix Committed Status in OpenLP 2.0 series: Won't Fix Status in OpenLP 2.2 series: Won't Fix Status in OpenLP 2.4 series: Won't Fix Status in OpenLP trunk series: Fix Committed Bug description: OpenLP (GPLv2 only) is currently violating at least two licenses: PyQt5's GPLv3 only and request's Apache 2.0. There are two options to heal these violations: relicense OpenLP or replace the dependencies. A third option would be aquiring a commercial PyQt5 license from Riverbank and replacing requests only, but as it is paid per developer this seems to be infeasible for an open source project. REPLACING = Replacing requests would be feasible: urllib is already used throughout the codebase. Just use it for the currently three files which import requests as well. I do not know if it would be feasible to replace PyQt5 with PySide2. RELICENSING === You would have to use the GPLv3 license to heal both of the violations (GPLv3 is compatible with Apache 2.0). You could also use GPLv2 or later, but the logical license combined with PyQt5 is always GPLv3. That leads to another issue: pysword is GPLv2 only and a license move would require you to drop this optional dependency. But I guess this would be a minor issue as it is not released yet (?). I do not know if relicensing is feasible as you would have to ask the majority of copyright holders to agree with the license change. In either case you should inform your users not later than with your next (fixed!) release about the license violation as they could be in trouble using OpenLP. To manage notifications about this bug go to: https://bugs.launchpad.net/openlp/+bug/1795876/+subscriptions ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Merge] lp:~bastian-germann/openlp/unexport-tests into lp:openlp
Bastian Germann has proposed merging lp:~bastian-germann/openlp/unexport-tests into lp:openlp. Commit message: Do not export any tests* module, but include them only in sdist Requested reviews: Tomas Groth (tomasgroth) For more details, see: https://code.launchpad.net/~bastian-germann/openlp/unexport-tests/+merge/357914 A change to CI or packaging may be required if something depends on the tests/* modules to be available on an installation. -- Your team OpenLP Core is subscribed to branch lp:openlp. === modified file 'MANIFEST.in' --- MANIFEST.in 2018-08-27 17:48:47 + +++ MANIFEST.in 2018-10-28 11:43:31 + @@ -11,7 +11,7 @@ recursive-include documentation * recursive-include resources * recursive-include scripts * -recursive-include tests/resources * +recursive-include tests * include copyright.txt include LICENSE include README.txt === modified file 'setup.py' --- setup.py 2018-10-16 20:07:00 + +++ setup.py 2018-10-28 11:43:31 + @@ -188,7 +188,7 @@ author_email='raoulsny...@openlp.org', url='https://openlp.org/', license='GNU General Public License', -packages=find_packages(exclude=['ez_setup', 'tests']), +packages=find_packages(exclude=['ez_setup', 'tests*']), py_modules=['run_openlp'], include_package_data=True, zip_safe=False, ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Merge] lp:~bastian-germann/openlp/unexport-tests into lp:openlp
The proposal to merge lp:~bastian-germann/openlp/unexport-tests into lp:openlp has been updated. Status: Needs review => Superseded For more details, see: https://code.launchpad.net/~bastian-germann/openlp/unexport-tests/+merge/357912 -- Your team OpenLP Core is subscribed to branch lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Merge] lp:~bastian-germann/openlp/unexport-tests into lp:openlp
The proposal to merge lp:~bastian-germann/openlp/unexport-tests into lp:openlp has been updated. Description changed to: Do not export any tests* module, but include them only in sdist For more details, see: https://code.launchpad.net/~bastian-germann/openlp/unexport-tests/+merge/357914 -- Your team OpenLP Core is subscribed to branch lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
Re: [Openlp-core] [Merge] lp:~bastian-germann/openlp/fix-circ-dep into lp:openlp
Right, CI runs nose2: https://ci.openlp.io/job/Trunk-04b-Test_Coverage/369/console On my main development machine (Arch Linux) pytest actually segfaults on some test. If you are interested I can post the stacktrace somewhere. -- https://code.launchpad.net/~bastian-germann/openlp/fix-circ-dep/+merge/357849 Your team OpenLP Core is subscribed to branch lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
Re: [Openlp-core] [Merge] lp:~bastian-germann/openlp/fix-circ-dep into lp:openlp
By the way: I never get info mail about Raoul's comments. Do you know what causes launchpad not to send them? -- https://code.launchpad.net/~bastian-germann/openlp/fix-circ-dep/+merge/357849 Your team OpenLP Core is subscribed to branch lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Merge] lp:~bastian-germann/openlp/fix-circ-dep into lp:openlp
Bastian Germann has proposed merging lp:~bastian-germann/openlp/fix-circ-dep into lp:openlp. Commit message: Fix a circular dependency that is hit when you run tests.interfaces.openlp_plugins.custom.forms.test_customform: ImportError: Failed to import test module: tests.interfaces.openlp_plugins.custom.forms.test_customform Traceback (most recent call last): File "/var/lib/jenkins/virtualenv/lib/python3.6/site-packages/nose2/plugins/loader/discovery.py", line 201, in _find_tests_in_file module = util.module_from_name(module_name) File "/var/lib/jenkins/virtualenv/lib/python3.6/site-packages/nose2/util.py", line 77, in module_from_name __import__(name) File "/var/lib/jenkins/shared-repo/trunk/tests/interfaces/openlp_plugins/custom/forms/test_customform.py", line 31, in from openlp.plugins.custom.forms.editcustomform import EditCustomForm File "/var/lib/jenkins/shared-repo/trunk/openlp/plugins/custom/forms/editcustomform.py", line 30, in from openlp.plugins.custom.lib import CustomXMLBuilder, CustomXMLParser File "/var/lib/jenkins/shared-repo/trunk/openlp/plugins/custom/lib/__init__.py", line 25, in from .mediaitem import CustomMediaItem File "/var/lib/jenkins/shared-repo/trunk/openlp/plugins/custom/lib/mediaitem.py", line 37, in from openlp.plugins.custom.forms.editcustomform import EditCustomForm ImportError: cannot import name 'EditCustomForm' Requested reviews: Tim Bentley (trb143) For more details, see: https://code.launchpad.net/~bastian-germann/openlp/fix-circ-dep/+merge/357849 -- Your team OpenLP Core is subscribed to branch lp:openlp. === modified file 'openlp/plugins/custom/forms/__init__.py' --- openlp/plugins/custom/forms/__init__.py 2017-12-29 09:15:48 + +++ openlp/plugins/custom/forms/__init__.py 2018-10-25 20:57:31 + @@ -19,3 +19,5 @@ # with this program; if not, write to the Free Software Foundation, Inc., 59 # # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ### + +from openlp.plugins.custom import lib ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Merge] lp:~bastian-germann/openlp/qcollator into lp:openlp
Bastian Germann has proposed merging lp:~bastian-germann/openlp/qcollator into lp:openlp. Commit message: Replace PyICU with PyQt's QCollator Use QCollator as new collator to get rid of the PyICU dependency. Simplify the natural sorting with its numeric mode. Simplify one test that is heavily dependent on implementation. Run one sorting test on macOS which was disabled. Requested reviews: OpenLP Core (openlp-core) For more details, see: https://code.launchpad.net/~bastian-germann/openlp/qcollator/+merge/357851 -- Your team OpenLP Core is requested to review the proposed merge of lp:~bastian-germann/openlp/qcollator into lp:openlp. === modified file 'openlp/core/common/i18n.py' --- openlp/core/common/i18n.py 2018-08-27 14:16:26 + +++ openlp/core/common/i18n.py 2018-10-25 21:32:23 + @@ -52,8 +52,7 @@ Language = namedtuple('Language', ['id', 'name', 'code']) -ICU_COLLATOR = None -DIGITS_OR_NONDIGITS = re.compile(r'\d+|\D+') +COLLATOR = None LANGUAGES = sorted([ Language(1, translate('common.languages', '(Afan) Oromo', 'Language code: om'), 'om'), Language(2, translate('common.languages', 'Abkhazian', 'Language code: ab'), 'ab'), @@ -506,24 +505,19 @@ return re.sub(r'\%[a-zA-Z]', match_formatting, text) -def get_locale_key(string): +def get_locale_key(string, numeric=False): """ Creates a key for case insensitive, locale aware string sorting. :param string: The corresponding string. """ string = string.lower() -# ICU is the prefered way to handle locale sort key, we fallback to locale.strxfrm which will work in most cases. -global ICU_COLLATOR -try: -if ICU_COLLATOR is None: -import icu -language = LanguageManager.get_language() -icu_locale = icu.Locale(language) -ICU_COLLATOR = icu.Collator.createInstance(icu_locale) -return ICU_COLLATOR.getSortKey(string) -except: -return locale.strxfrm(string).encode() +global COLLATOR +if COLLATOR is None: +language = LanguageManager.get_language() +COLLATOR = QtCore.QCollator(QtCore.QLocale(language)) +COLLATOR.setNumericMode(numeric) +return COLLATOR.sortKey(string) def get_natural_key(string): @@ -533,13 +527,7 @@ :param string: string to be sorted by Returns a list of string compare keys and integers. """ -key = DIGITS_OR_NONDIGITS.findall(string) -key = [int(part) if part.isdigit() else get_locale_key(part) for part in key] -# Python 3 does not support comparison of different types anymore. So make sure, that we do not compare str -# and int. -if string and string[0].isdigit(): -return [b''] + key -return key +return get_locale_key(string, True) def get_language(name): === modified file 'openlp/core/ui/exceptionform.py' --- openlp/core/ui/exceptionform.py 2017-12-29 09:15:48 + +++ openlp/core/ui/exceptionform.py 2018-10-25 21:32:23 + @@ -53,14 +53,6 @@ except ImportError: MAKO_VERSION = '-' try: -import icu -try: -ICU_VERSION = icu.VERSION -except AttributeError: -ICU_VERSION = 'OK' -except ImportError: -ICU_VERSION = '-' -try: WEBKIT_VERSION = QtWebKit.qWebKitVersion() except AttributeError: WEBKIT_VERSION = '-' @@ -119,12 +111,12 @@ system = translate('OpenLP.ExceptionForm', 'Platform: {platform}\n').format(platform=platform.platform()) libraries = ('Python: {python}\nQt5: {qt5}\nPyQt5: {pyqt5}\nQtWebkit: {qtwebkit}\nSQLAlchemy: {sqalchemy}\n' 'SQLAlchemy Migrate: {migrate}\nBeautifulSoup: {soup}\nlxml: {etree}\nChardet: {chardet}\n' - 'PyEnchant: {enchant}\nMako: {mako}\npyICU: {icu}\npyUNO bridge: {uno}\n' + 'PyEnchant: {enchant}\nMako: {mako}\npyUNO bridge: {uno}\n' 'VLC: {vlc}\n').format(python=platform.python_version(), qt5=Qt.qVersion(), pyqt5=Qt.PYQT_VERSION_STR, qtwebkit=WEBKIT_VERSION, sqalchemy=sqlalchemy.__version__, migrate=MIGRATE_VERSION, soup=bs4.__version__, etree=etree.__version__, chardet=CHARDET_VERSION, -enchant=ENCHANT_VERSION, mako=MAKO_VERSION, icu=ICU_VERSION, +enchant=ENCHANT_VERSION, mako=MAKO_VERSION, uno=self._pyuno_import(), vlc=VLC_VERSION) if is_linux(): === modified file 'openlp/plugins/songs/lib/mediaitem.py' --- openlp/plugins/songs/lib/mediaitem.py 2018-08-25 14:08:19 + +++ openlp/plugins/songs/lib/mediaitem.py 2018-10-25 21:32:23 + @@ -324,12 +324,12 @@ :param search_results: A tuple containing (songbook entry, book name, song title, song id) :return: None ""&q
[Openlp-core] [Merge] lp:~bastian-germann/openlp/fix-circ-dep into lp:openlp
The proposal to merge lp:~bastian-germann/openlp/fix-circ-dep into lp:openlp has been updated. Status: Needs review => Superseded For more details, see: https://code.launchpad.net/~bastian-germann/openlp/fix-circ-dep/+merge/357597 -- Your team OpenLP Core is subscribed to branch lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
Re: [Openlp-core] [Merge] lp:~raoul-snyman/openlp/new-run-script into lp:openlp/packaging
Review: Approve Great! I closed my branch in favour of this one. -- https://code.launchpad.net/~raoul-snyman/openlp/new-run-script/+merge/357906 Your team OpenLP Core is requested to review the proposed merge of lp:~raoul-snyman/openlp/new-run-script into lp:openlp/packaging. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Merge] lp:~bastian-germann/openlp/qcollator into lp:openlp
Bastian Germann has proposed merging lp:~bastian-germann/openlp/qcollator into lp:openlp. Commit message: Replace PyICU with PyQt's QCollator Use QCollator as new collator to get rid of the PyICU dependency. Simplify the natural sorting with its numeric mode. Simplify one test that is heavily dependent on implementation. Run one sorting test on macOS which was disabled. Requested reviews: Raoul Snyman (raoul-snyman) Tim Bentley (trb143) For more details, see: https://code.launchpad.net/~bastian-germann/openlp/qcollator/+merge/357907 -- Your team OpenLP Core is subscribed to branch lp:openlp. === modified file 'openlp/core/common/i18n.py' --- openlp/core/common/i18n.py 2018-10-27 01:40:20 + +++ openlp/core/common/i18n.py 2018-10-27 10:53:25 + @@ -52,8 +52,7 @@ Language = namedtuple('Language', ['id', 'name', 'code']) -ICU_COLLATOR = None -DIGITS_OR_NONDIGITS = re.compile(r'\d+|\D+') +COLLATOR = None LANGUAGES = sorted([ Language(1, translate('common.languages', '(Afan) Oromo', 'Language code: om'), 'om'), Language(2, translate('common.languages', 'Abkhazian', 'Language code: ab'), 'ab'), @@ -506,24 +505,19 @@ return re.sub(r'\%[a-zA-Z]', match_formatting, text) -def get_locale_key(string): +def get_locale_key(string, numeric=False): """ Creates a key for case insensitive, locale aware string sorting. :param string: The corresponding string. """ string = string.lower() -# ICU is the prefered way to handle locale sort key, we fallback to locale.strxfrm which will work in most cases. -global ICU_COLLATOR -try: -if ICU_COLLATOR is None: -import icu -language = LanguageManager.get_language() -icu_locale = icu.Locale(language) -ICU_COLLATOR = icu.Collator.createInstance(icu_locale) -return ICU_COLLATOR.getSortKey(string) -except Exception: -return locale.strxfrm(string).encode() +global COLLATOR +if COLLATOR is None: +language = LanguageManager.get_language() +COLLATOR = QtCore.QCollator(QtCore.QLocale(language)) +COLLATOR.setNumericMode(numeric) +return COLLATOR.sortKey(string) def get_natural_key(string): @@ -533,13 +527,7 @@ :param string: string to be sorted by Returns a list of string compare keys and integers. """ -key = DIGITS_OR_NONDIGITS.findall(string) -key = [int(part) if part.isdigit() else get_locale_key(part) for part in key] -# Python 3 does not support comparison of different types anymore. So make sure, that we do not compare str -# and int. -if string and string[0].isdigit(): -return [b''] + key -return key +return get_locale_key(string, True) def get_language(name): === modified file 'openlp/core/ui/exceptionform.py' --- openlp/core/ui/exceptionform.py 2018-10-27 01:40:20 + +++ openlp/core/ui/exceptionform.py 2018-10-27 10:53:25 + @@ -53,14 +53,6 @@ except ImportError: MAKO_VERSION = '-' try: -import icu -try: -ICU_VERSION = icu.VERSION -except AttributeError: -ICU_VERSION = 'OK' -except ImportError: -ICU_VERSION = '-' -try: WEBKIT_VERSION = QtWebKit.qWebKitVersion() except AttributeError: WEBKIT_VERSION = '-' @@ -119,12 +111,12 @@ system = translate('OpenLP.ExceptionForm', 'Platform: {platform}\n').format(platform=platform.platform()) libraries = ('Python: {python}\nQt5: {qt5}\nPyQt5: {pyqt5}\nQtWebkit: {qtwebkit}\nSQLAlchemy: {sqalchemy}\n' 'SQLAlchemy Migrate: {migrate}\nBeautifulSoup: {soup}\nlxml: {etree}\nChardet: {chardet}\n' - 'PyEnchant: {enchant}\nMako: {mako}\npyICU: {icu}\npyUNO bridge: {uno}\n' + 'PyEnchant: {enchant}\nMako: {mako}\npyUNO bridge: {uno}\n' 'VLC: {vlc}\n').format(python=platform.python_version(), qt5=Qt.qVersion(), pyqt5=Qt.PYQT_VERSION_STR, qtwebkit=WEBKIT_VERSION, sqalchemy=sqlalchemy.__version__, migrate=MIGRATE_VERSION, soup=bs4.__version__, etree=etree.__version__, chardet=CHARDET_VERSION, -enchant=ENCHANT_VERSION, mako=MAKO_VERSION, icu=ICU_VERSION, +enchant=ENCHANT_VERSION, mako=MAKO_VERSION, uno=self._pyuno_import(), vlc=VLC_VERSION) if is_linux(): === modified file 'openlp/plugins/songs/lib/mediaitem.py' --- openlp/plugins/songs/lib/mediaitem.py 2018-08-25 14:08:19 + +++ openlp/plugins/songs/lib/mediaitem.py 2018-10-27 10:53:25 + @@ -324,12 +324,12 @@ :param search_results: A tuple containing (songbook entry, book name, song title, song id) :return: None """ -def get_
[Openlp-core] [Merge] lp:~bastian-germann/openlp/qcollator into lp:openlp
The proposal to merge lp:~bastian-germann/openlp/qcollator into lp:openlp has been updated. Status: Needs review => Superseded For more details, see: https://code.launchpad.net/~bastian-germann/openlp/qcollator/+merge/357851 -- Your team OpenLP Core is subscribed to branch lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
Re: [Openlp-core] [Merge] lp:~bastian-germann/openlp/fix-circ-dep into lp:openlp
Your branch is empty. -- https://code.launchpad.net/~bastian-germann/openlp/fix-circ-dep/+merge/357849 Your team OpenLP Core is subscribed to branch lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
Re: [Openlp-core] [Merge] lp:~raoul-snyman/openlp/fix-circ-deps into lp:openlp
Review: Approve Works for me. -- https://code.launchpad.net/~raoul-snyman/openlp/fix-circ-deps/+merge/357901 Your team OpenLP Core is requested to review the proposed merge of lp:~raoul-snyman/openlp/fix-circ-deps into lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
Re: [Openlp-core] [Merge] lp:~bastian-germann/openlp/fix-circ-dep into lp:openlp
Sure. Just a moment... -- https://code.launchpad.net/~bastian-germann/openlp/fix-circ-dep/+merge/357849 Your team OpenLP Core is subscribed to branch lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
Re: [Openlp-core] [Merge] lp:~bastian-germann/openlp/fix-circ-dep into lp:openlp
I confirm it to be working. -- https://code.launchpad.net/~bastian-germann/openlp/fix-circ-dep/+merge/357849 Your team OpenLP Core is subscribed to branch lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Merge] lp:~bastian-germann/openlp/unexport-tests into lp:openlp
Bastian Germann has proposed merging lp:~bastian-germann/openlp/unexport-tests into lp:openlp. Commit message: Do not export any tests* module Requested reviews: OpenLP Core (openlp-core) For more details, see: https://code.launchpad.net/~bastian-germann/openlp/unexport-tests/+merge/357912 A change to CI or packaging may be required if something depends on the tests/* modules to be available on an installation. -- Your team OpenLP Core is requested to review the proposed merge of lp:~bastian-germann/openlp/unexport-tests into lp:openlp. === modified file 'setup.py' --- setup.py 2018-10-16 20:07:00 + +++ setup.py 2018-10-27 21:49:07 + @@ -188,7 +188,7 @@ author_email='raoulsny...@openlp.org', url='https://openlp.org/', license='GNU General Public License', -packages=find_packages(exclude=['ez_setup', 'tests']), +packages=find_packages(exclude=['ez_setup', 'tests*']), py_modules=['run_openlp'], include_package_data=True, zip_safe=False, ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Merge] lp:~bastian-germann/openlp/setup into lp:openlp
The proposal to merge lp:~bastian-germann/openlp/setup into lp:openlp has been updated. Commit message changed to: This fixes setuptools' dependencies according to scripts/check_dependencies.py. The minimum Python version is set to 3.5 because the async/await feature is in use in the code base. Additionally the vendored vlc module is replaced by its version on PyPI. For more details, see: https://code.launchpad.net/~bastian-germann/openlp/setup/+merge/356147 -- Your team OpenLP Core is requested to review the proposed merge of lp:~bastian-germann/openlp/setup into lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Merge] lp:~bastian-germann/openlp/setup into lp:openlp
The proposal to merge lp:~bastian-germann/openlp/setup into lp:openlp has been updated. Description changed to: For more details, see: https://code.launchpad.net/~bastian-germann/openlp/setup/+merge/356147 -- Your team OpenLP Core is requested to review the proposed merge of lp:~bastian-germann/openlp/setup into lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Merge] lp:~bastian-germann/openlp/setup into lp:openlp
The proposal to merge lp:~bastian-germann/openlp/setup into lp:openlp has been updated. Description changed to: This fixes setuptools' dependencies according to scripts/check_dependencies.py. The minimum Python version is set to 3.5 because the async/await feature is in use in the code base. Additionally the vendored vlc module is replaced by its version on PyPI. For more details, see: https://code.launchpad.net/~bastian-germann/openlp/setup/+merge/356147 -- Your team OpenLP Core is requested to review the proposed merge of lp:~bastian-germann/openlp/setup into lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Bug 1795876] Re: License violations
Relicensing would give you the opportunity to use PyMuPDF instead of calling its executable via subprocess. -- You received this bug notification because you are a member of OpenLP Core, which is subscribed to OpenLP. https://bugs.launchpad.net/bugs/1795876 Title: License violations Status in OpenLP: New Bug description: OpenLP (GPLv2 only) is currently violating at least two licenses: PyQt5's GPLv3 only and request's Apache 2.0. There are two options to heal these violations: relicense OpenLP or replace the dependencies. A third option would be aquiring a commercial PyQt5 license from Riverbank and replacing requests only, but as it is paid per developer this seems to be infeasible for an open source project. REPLACING = Replacing requests would be feasible: urllib is already used throughout the codebase. Just use it for the currently three files which import requests as well. I do not know if it would be feasible to replace PyQt5 with PySide2. RELICENSING === You would have to use the GPLv3 license to heal both of the violations (GPLv3 is compatible with Apache 2.0). You could also use GPLv2 or later, but the logical license combined with PyQt5 is always GPLv3. That leads to another issue: pysword is GPLv2 only and a license move would require you to drop this optional dependency. But I guess this would be a minor issue as it is not released yet (?). I do not know if relicensing is feasible as you would have to ask the majority of copyright holders to agree with the license change. In either case you should inform your users not later than with your next (fixed!) release about the license violation as they could be in trouble using OpenLP. To manage notifications about this bug go to: https://bugs.launchpad.net/openlp/+bug/1795876/+subscriptions ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Bug 1795876] Re: License violations
A problematic import is also the uno module. Depending on the OpenOffice/LibreOffice version this is a license violation as well. OpenOffice <= 2 should be okay. But nobody uses these old versions today. OpenOffice 3 is LGPLv3 licensed and Apache OpenOffice is Apache v2 licensed, which are incompatible with GPLv2 only. LibreOffice is MPL2 licensed but in the uno.py license statement it states that this file uses Apache v2 Code. MPL2 itself should be compatible with GPLv2 but Apache v2 is not. I do not know what this means exactly, but my suggestion is that the combination is also an Apache v2 violation. Relicensing to GPLv3 would also heal this situation, so the relicensing seems to be the better option. -- You received this bug notification because you are a member of OpenLP Core, which is subscribed to OpenLP. https://bugs.launchpad.net/bugs/1795876 Title: License violations Status in OpenLP: New Bug description: OpenLP (GPLv2 only) is currently violating at least two licenses: PyQt5's GPLv3 only and request's Apache 2.0. There are two options to heal these violations: relicense OpenLP or replace the dependencies. A third option would be aquiring a commercial PyQt5 license from Riverbank and replacing requests only, but as it is paid per developer this seems to be infeasible for an open source project. REPLACING = Replacing requests would be feasible: urllib is already used throughout the codebase. Just use it for the currently three files which import requests as well. I do not know if it would be feasible to replace PyQt5 with PySide2. RELICENSING === You would have to use the GPLv3 license to heal both of the violations (GPLv3 is compatible with Apache 2.0). You could also use GPLv2 or later, but the logical license combined with PyQt5 is always GPLv3. That leads to another issue: pysword is GPLv2 only and a license move would require you to drop this optional dependency. But I guess this would be a minor issue as it is not released yet (?). I do not know if relicensing is feasible as you would have to ask the majority of copyright holders to agree with the license change. In either case you should inform your users not later than with your next (fixed!) release about the license violation as they could be in trouble using OpenLP. To manage notifications about this bug go to: https://bugs.launchpad.net/openlp/+bug/1795876/+subscriptions ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
Re: [Openlp-core] [Merge] lp:~bastian-germann/openlp/setup into lp:openlp
I see. The only change that would influence distributing via a Linux packaging system is the introduction of the vlc module as a new dependency. The other changes do not interfere if the Linux packages install python packages with their Python dist information which is the case for all the Linux distributions that I use. The vlc module available for Arch in the AUR. For Debian there is a Request For Packaging and on Fedora there is at least an old version for Python 2. I am happy to discuss changes. In my experience it is far better to have something to offer as a base for discussion in free software projects. If you just come with suggestions, the developers usually say: "Good idea! Maybe next year when someone has time..." The point of having a working setup.py is that you can install OpenLP on any platform that supports Python and Qt5. In the current state if you want to install e.g. on OpenBSD and did not know about scripts/check_dependencies.py you would have to go through a lot of files to get an idea of what dependencies are needed. And you could not be sure to be right so even if the program starts there could be a thing that you missed. E.g. I found the pyxdg when I started to scan OpenLP for license violations after I found the first one. It is not noted in check_dependencies at all. The same would be true for a developer with a Windows environment who wants to work on trunk. -- https://code.launchpad.net/~bastian-germann/openlp/setup/+merge/356147 Your team OpenLP Core is subscribed to branch lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Merge] lp:~bastian-germann/openlp/setup into lp:openlp
The proposal to merge lp:~bastian-germann/openlp/setup into lp:openlp has been updated. Commit message changed to: This fixes setuptools' dependencies according to scripts/check_dependencies.py. The minimum Python version is set to 3.6 because this was agreed to on the mailing list. To overcome the module conflict, openlp.py is replaced with __main__.py which setuptools installs as /usr/bin/openlp (or openlp.exe on Windows). You can call it locally via `python -m openlp`. Some packages which are optional in the source are declared as optional (uno, pyenchant, pyodbc). The vendored (ripped) pymediainfo module is replaced by its upstream version. Additionally, replace pyxdg with appdirs (see License violations issue). For more details, see: https://code.launchpad.net/~bastian-germann/openlp/setup/+merge/356147 -- Your team OpenLP Core is subscribed to branch lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Merge] lp:~bastian-germann/openlp/setup into lp:openlp
The proposal to merge lp:~bastian-germann/openlp/setup into lp:openlp has been updated. Commit message changed to: This fixes setuptools' dependencies according to scripts/check_dependencies.py. The minimum Python version is set to 3.6 because this was agreed to on the mailing list. To overcome the double module issue, openlp.py is replaced with __main__.py which setuptools installs as /usr/bin/openlp (or openlp.exe on Windows). You can call it locally via `python -m openlp`. Some packages which are optional in the source are declared as optional (uno, pyenchant, pyodbc. The vendored (ripped) pymediainfo module is replaced by its upstream version. Additionally, replace pyxdg with appdirs (see License violations issue). For more details, see: https://code.launchpad.net/~bastian-germann/openlp/setup/+merge/356147 -- Your team OpenLP Core is subscribed to branch lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Merge] lp:~bastian-germann/openlp/setup into lp:openlp
The proposal to merge lp:~bastian-germann/openlp/setup into lp:openlp has been updated. Commit message changed to: This fixes setuptools' dependencies according to scripts/check_dependencies.py. The minimum Python version is set to 3.6 because this was agreed to on the mailing list. Some packages which are optional in the source are declared as optional (uno, pyenchant, pyodbc. The vendored (ripped) pymediainfo module is replaced by its upstream version. Additionally, replace pyxdg with appdirs (see License violations issue). For more details, see: https://code.launchpad.net/~bastian-germann/openlp/setup/+merge/356147 -- Your team OpenLP Core is subscribed to branch lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Bug 1797121] Re: Android app license violations
** Description changed: - Similar to issue #1795876, the GPLv2 only Android app has some license + Similar to bug #1795876, the GPLv2 only Android app has some license violations. Several Apache 2.0 libraries by Google are used. This can be fixed by using almost any software license except GPLv2 only. Just adding the "or later" clause to the license would be enough. -- You received this bug notification because you are a member of OpenLP Core, which is subscribed to OpenLP. https://bugs.launchpad.net/bugs/1797121 Title: Android app license violations Status in OpenLP: New Bug description: Similar to bug #1795876, the GPLv2 only Android app has some license violations. Several Apache 2.0 libraries by Google are used. This can be fixed by using almost any software license except GPLv2 only. Just adding the "or later" clause to the license would be enough. To manage notifications about this bug go to: https://bugs.launchpad.net/openlp/+bug/1797121/+subscriptions ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Bug 1797132] Re: Windows and macOS installer license violations
** Branch linked: lp:openlp/packaging -- You received this bug notification because you are a member of OpenLP Core, which is subscribed to OpenLP. https://bugs.launchpad.net/bugs/1797132 Title: Windows and macOS installer license violations Status in OpenLP: New Bug description: The Windows and macOS installers contain even more license violations than bug #1795876. You redistribute the dependencies with these installers and I cannot see any license being documented other than OpenLP's own GPLv2. In general even "liberal" free software licenses like BSD or MIT require you to include the license statement in ANY redistribution, including binary distribution. To manage notifications about this bug go to: https://bugs.launchpad.net/openlp/+bug/1797132/+subscriptions ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Bug 1797121] Re: Android app license violations
** Branch linked: lp:openlp/android2 -- You received this bug notification because you are a member of OpenLP Core, which is subscribed to OpenLP. https://bugs.launchpad.net/bugs/1797121 Title: Android app license violations Status in OpenLP: New Bug description: Similar to bug #1795876, the GPLv2 only Android app has some license violations. Several Apache 2.0 libraries by Google are used. This can be fixed by using almost any software license except GPLv2 only. Just adding the "or later" clause to the license would be enough. To manage notifications about this bug go to: https://bugs.launchpad.net/openlp/+bug/1797121/+subscriptions ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Bug 1797121] [NEW] Android app license violations
Public bug reported: Similar to issue #1795876, the GPLv2 only Android app has some license violations. Several Apache 2.0 libraries by Google are used. This can be fixed by using almost any software license except GPLv2 only. Just adding the "or later" clause to the license would be enough. ** Affects: openlp Importance: Undecided Status: New -- You received this bug notification because you are a member of OpenLP Core, which is subscribed to OpenLP. https://bugs.launchpad.net/bugs/1797121 Title: Android app license violations Status in OpenLP: New Bug description: Similar to issue #1795876, the GPLv2 only Android app has some license violations. Several Apache 2.0 libraries by Google are used. This can be fixed by using almost any software license except GPLv2 only. Just adding the "or later" clause to the license would be enough. To manage notifications about this bug go to: https://bugs.launchpad.net/openlp/+bug/1797121/+subscriptions ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Bug 1797132] [NEW] Windows and macOS installer license violations
Public bug reported: The Windows and macOS installers contain even more license violations than bug #1795876. You redistribute the dependencies with these installers and I cannot see any license being documented other than OpenLP's own GPLv2. In general even "liberal" free software licenses like BSD or MIT require you to include the license statement in ANY redistribution, including binary distribution. ** Affects: openlp Importance: Undecided Status: New -- You received this bug notification because you are a member of OpenLP Core, which is subscribed to OpenLP. https://bugs.launchpad.net/bugs/1797132 Title: Windows and macOS installer license violations Status in OpenLP: New Bug description: The Windows and macOS installers contain even more license violations than bug #1795876. You redistribute the dependencies with these installers and I cannot see any license being documented other than OpenLP's own GPLv2. In general even "liberal" free software licenses like BSD or MIT require you to include the license statement in ANY redistribution, including binary distribution. To manage notifications about this bug go to: https://bugs.launchpad.net/openlp/+bug/1797132/+subscriptions ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Bug 1795876] Re: License violations
A note for completeness: There are at least two Apache 2.0 licensed transitive dependencies: python-editor, pbr. I only checked the transitive dependencies that are exposed as install_requires. -- You received this bug notification because you are a member of OpenLP Core, which is subscribed to OpenLP. https://bugs.launchpad.net/bugs/1795876 Title: License violations Status in OpenLP: New Bug description: OpenLP (GPLv2 only) is currently violating at least two licenses: PyQt5's GPLv3 only and request's Apache 2.0. There are two options to heal these violations: relicense OpenLP or replace the dependencies. A third option would be aquiring a commercial PyQt5 license from Riverbank and replacing requests only, but as it is paid per developer this seems to be infeasible for an open source project. REPLACING = Replacing requests would be feasible: urllib is already used throughout the codebase. Just use it for the currently three files which import requests as well. I do not know if it would be feasible to replace PyQt5 with PySide2. RELICENSING === You would have to use the GPLv3 license to heal both of the violations (GPLv3 is compatible with Apache 2.0). You could also use GPLv2 or later, but the logical license combined with PyQt5 is always GPLv3. That leads to another issue: pysword is GPLv2 only and a license move would require you to drop this optional dependency. But I guess this would be a minor issue as it is not released yet (?). I do not know if relicensing is feasible as you would have to ask the majority of copyright holders to agree with the license change. In either case you should inform your users not later than with your next (fixed!) release about the license violation as they could be in trouble using OpenLP. To manage notifications about this bug go to: https://bugs.launchpad.net/openlp/+bug/1795876/+subscriptions ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Bug 1795876] Re: License violations
If the relicensing takes place you would also have to get rid of the LGPLv2 licensed pyxdg module. An alternative is at https://pypi.org/project/xdg -- You received this bug notification because you are a member of OpenLP Core, which is subscribed to OpenLP. https://bugs.launchpad.net/bugs/1795876 Title: License violations Status in OpenLP: New Bug description: OpenLP (GPLv2 only) is currently violating at least two licenses: PyQt5's GPLv3 only and request's Apache 2.0. There are two options to heal these violations: relicense OpenLP or replace the dependencies. A third option would be aquiring a commercial PyQt5 license from Riverbank and replacing requests only, but as it is paid per developer this seems to be infeasible for an open source project. REPLACING = Replacing requests would be feasible: urllib is already used throughout the codebase. Just use it for the currently three files which import requests as well. I do not know if it would be feasible to replace PyQt5 with PySide2. RELICENSING === You would have to use the GPLv3 license to heal both of the violations (GPLv3 is compatible with Apache 2.0). You could also use GPLv2 or later, but the logical license combined with PyQt5 is always GPLv3. That leads to another issue: pysword is GPLv2 only and a license move would require you to drop this optional dependency. But I guess this would be a minor issue as it is not released yet (?). I do not know if relicensing is feasible as you would have to ask the majority of copyright holders to agree with the license change. In either case you should inform your users not later than with your next (fixed!) release about the license violation as they could be in trouble using OpenLP. To manage notifications about this bug go to: https://bugs.launchpad.net/openlp/+bug/1795876/+subscriptions ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Bug 1795876] [NEW] License violations
Public bug reported: OpenLP (GPLv2 only) is currently violating at least two licenses: PyQt5's GPLv3 only and request's Apache 2.0. There are two options to heal these violations: relicense OpenLP or replace the dependencies. A third option would be aquiring a commercial PyQt5 license from Riverbank and replacing requests only, but as it is paid per developer this seems to be infeasible for an open source project. REPLACING = Replacing requests would be feasible: urllib is already used throughout the codebase. Just use it for the currently three files which import requests as well. I do not know if it would be feasible to replace PyQt5 with PySide2. RELICENSING === You would have to use the GPLv3 license to heal both of the violations (GPLv3 is compatible with Apache 2.0). You could also use GPLv2 or later, but the logical license combined with PyQt5 is always GPLv3. That leads to another issue: pysword is GPLv2 only and a license move would require you to drop this optional dependency. But I guess this would be a minor issue as it is not released yet (?). I do not know if relicensing is feasible as you would have to ask the majority of copyright holders to agree with the license change. In either case you should inform your users not later than with your next (fixed!) release about the license violation as they could be in trouble using OpenLP. ** Affects: openlp Importance: Undecided Status: New ** Tags: legal license violation -- You received this bug notification because you are a member of OpenLP Core, which is subscribed to OpenLP. https://bugs.launchpad.net/bugs/1795876 Title: License violations Status in OpenLP: New Bug description: OpenLP (GPLv2 only) is currently violating at least two licenses: PyQt5's GPLv3 only and request's Apache 2.0. There are two options to heal these violations: relicense OpenLP or replace the dependencies. A third option would be aquiring a commercial PyQt5 license from Riverbank and replacing requests only, but as it is paid per developer this seems to be infeasible for an open source project. REPLACING = Replacing requests would be feasible: urllib is already used throughout the codebase. Just use it for the currently three files which import requests as well. I do not know if it would be feasible to replace PyQt5 with PySide2. RELICENSING === You would have to use the GPLv3 license to heal both of the violations (GPLv3 is compatible with Apache 2.0). You could also use GPLv2 or later, but the logical license combined with PyQt5 is always GPLv3. That leads to another issue: pysword is GPLv2 only and a license move would require you to drop this optional dependency. But I guess this would be a minor issue as it is not released yet (?). I do not know if relicensing is feasible as you would have to ask the majority of copyright holders to agree with the license change. In either case you should inform your users not later than with your next (fixed!) release about the license violation as they could be in trouble using OpenLP. To manage notifications about this bug go to: https://bugs.launchpad.net/openlp/+bug/1795876/+subscriptions ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Bug 1796506] [NEW] Making listening network connections opt-in
Public bug reported: On trunk OpenLP establishes listening network sockets for the projector component, the web remote control, and the websockets API. I cannot disable any of them. In version 2.4.6 there are no listening connections if you do not explicitly enable the remote control. The user should be able to disable the connections and they should be disabled by default (opt-in). If you do not want to disable by default, the default listening IP should at least not be the world (0.0.0.0) but localhost (127.0.0.1). ** Affects: openlp Importance: Undecided Status: New -- You received this bug notification because you are a member of OpenLP Core, which is subscribed to OpenLP. https://bugs.launchpad.net/bugs/1796506 Title: Making listening network connections opt-in Status in OpenLP: New Bug description: On trunk OpenLP establishes listening network sockets for the projector component, the web remote control, and the websockets API. I cannot disable any of them. In version 2.4.6 there are no listening connections if you do not explicitly enable the remote control. The user should be able to disable the connections and they should be disabled by default (opt-in). If you do not want to disable by default, the default listening IP should at least not be the world (0.0.0.0) but localhost (127.0.0.1). To manage notifications about this bug go to: https://bugs.launchpad.net/openlp/+bug/1796506/+subscriptions ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Bug 1795876] Re: License violations
I noticed another license violation. openlp/core/ui/media/vendor/mediainfoWrapper.py is actually a modified version of pymediainfo. This file has OpenLP's license header since its introduction. The original is under MIT license. This is not about just not knowing license compatibility details... I corrected the file in lp:~bastian-germann/openlp/setup -- You received this bug notification because you are a member of OpenLP Core, which is subscribed to OpenLP. https://bugs.launchpad.net/bugs/1795876 Title: License violations Status in OpenLP: New Bug description: OpenLP (GPLv2 only) is currently violating at least two licenses: PyQt5's GPLv3 only and request's Apache 2.0. There are two options to heal these violations: relicense OpenLP or replace the dependencies. A third option would be aquiring a commercial PyQt5 license from Riverbank and replacing requests only, but as it is paid per developer this seems to be infeasible for an open source project. REPLACING = Replacing requests would be feasible: urllib is already used throughout the codebase. Just use it for the currently three files which import requests as well. I do not know if it would be feasible to replace PyQt5 with PySide2. RELICENSING === You would have to use the GPLv3 license to heal both of the violations (GPLv3 is compatible with Apache 2.0). You could also use GPLv2 or later, but the logical license combined with PyQt5 is always GPLv3. That leads to another issue: pysword is GPLv2 only and a license move would require you to drop this optional dependency. But I guess this would be a minor issue as it is not released yet (?). I do not know if relicensing is feasible as you would have to ask the majority of copyright holders to agree with the license change. In either case you should inform your users not later than with your next (fixed!) release about the license violation as they could be in trouble using OpenLP. To manage notifications about this bug go to: https://bugs.launchpad.net/openlp/+bug/1795876/+subscriptions ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Bug 1795876] Re: License violations
I asked the maintainer of the pysword module to relicense so that OpenLP could keep the sword feature on relicensing: https://gitlab.com/tgc- dk/pysword/issues/10 -- You received this bug notification because you are a member of OpenLP Core, which is subscribed to OpenLP. https://bugs.launchpad.net/bugs/1795876 Title: License violations Status in OpenLP: New Bug description: OpenLP (GPLv2 only) is currently violating at least two licenses: PyQt5's GPLv3 only and request's Apache 2.0. There are two options to heal these violations: relicense OpenLP or replace the dependencies. A third option would be aquiring a commercial PyQt5 license from Riverbank and replacing requests only, but as it is paid per developer this seems to be infeasible for an open source project. REPLACING = Replacing requests would be feasible: urllib is already used throughout the codebase. Just use it for the currently three files which import requests as well. I do not know if it would be feasible to replace PyQt5 with PySide2. RELICENSING === You would have to use the GPLv3 license to heal both of the violations (GPLv3 is compatible with Apache 2.0). You could also use GPLv2 or later, but the logical license combined with PyQt5 is always GPLv3. That leads to another issue: pysword is GPLv2 only and a license move would require you to drop this optional dependency. But I guess this would be a minor issue as it is not released yet (?). I do not know if relicensing is feasible as you would have to ask the majority of copyright holders to agree with the license change. In either case you should inform your users not later than with your next (fixed!) release about the license violation as they could be in trouble using OpenLP. To manage notifications about this bug go to: https://bugs.launchpad.net/openlp/+bug/1795876/+subscriptions ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
Re: [Openlp-core] [Merge] lp:~bastian-germann/openlp/setup into lp:openlp
All of my contributions can be used under GPLv2 or later. So that relicensing the codebase is not a blocker for this merge proposal to be integrated. -- https://code.launchpad.net/~bastian-germann/openlp/setup/+merge/356147 Your team OpenLP Core is subscribed to branch lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Bug 1795876] Re: License violations
A better replacement for pyxdg is appdirs. It is actively maintained and available as package on all supported Linux distros. -- You received this bug notification because you are a member of OpenLP Core, which is subscribed to OpenLP. https://bugs.launchpad.net/bugs/1795876 Title: License violations Status in OpenLP: New Bug description: OpenLP (GPLv2 only) is currently violating at least two licenses: PyQt5's GPLv3 only and request's Apache 2.0. There are two options to heal these violations: relicense OpenLP or replace the dependencies. A third option would be aquiring a commercial PyQt5 license from Riverbank and replacing requests only, but as it is paid per developer this seems to be infeasible for an open source project. REPLACING = Replacing requests would be feasible: urllib is already used throughout the codebase. Just use it for the currently three files which import requests as well. I do not know if it would be feasible to replace PyQt5 with PySide2. RELICENSING === You would have to use the GPLv3 license to heal both of the violations (GPLv3 is compatible with Apache 2.0). You could also use GPLv2 or later, but the logical license combined with PyQt5 is always GPLv3. That leads to another issue: pysword is GPLv2 only and a license move would require you to drop this optional dependency. But I guess this would be a minor issue as it is not released yet (?). I do not know if relicensing is feasible as you would have to ask the majority of copyright holders to agree with the license change. In either case you should inform your users not later than with your next (fixed!) release about the license violation as they could be in trouble using OpenLP. To manage notifications about this bug go to: https://bugs.launchpad.net/openlp/+bug/1795876/+subscriptions ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Bug 1795876] Re: License violations
The pymediainfo license violation is gone in trunk now. How about changing the license headers now? Is there anyone in the last comment's list who did a lot of things? I guess @springermac. -- You received this bug notification because you are a member of OpenLP Core, which is subscribed to OpenLP. https://bugs.launchpad.net/bugs/1795876 Title: License violations Status in OpenLP: Fix Committed Status in OpenLP 2.0 series: Won't Fix Status in OpenLP 2.2 series: Won't Fix Status in OpenLP 2.4 series: Won't Fix Status in OpenLP trunk series: Fix Committed Bug description: OpenLP (GPLv2 only) is currently violating at least two licenses: PyQt5's GPLv3 only and request's Apache 2.0. There are two options to heal these violations: relicense OpenLP or replace the dependencies. A third option would be aquiring a commercial PyQt5 license from Riverbank and replacing requests only, but as it is paid per developer this seems to be infeasible for an open source project. REPLACING = Replacing requests would be feasible: urllib is already used throughout the codebase. Just use it for the currently three files which import requests as well. I do not know if it would be feasible to replace PyQt5 with PySide2. RELICENSING === You would have to use the GPLv3 license to heal both of the violations (GPLv3 is compatible with Apache 2.0). You could also use GPLv2 or later, but the logical license combined with PyQt5 is always GPLv3. That leads to another issue: pysword is GPLv2 only and a license move would require you to drop this optional dependency. But I guess this would be a minor issue as it is not released yet (?). I do not know if relicensing is feasible as you would have to ask the majority of copyright holders to agree with the license change. In either case you should inform your users not later than with your next (fixed!) release about the license violation as they could be in trouble using OpenLP. To manage notifications about this bug go to: https://bugs.launchpad.net/openlp/+bug/1795876/+subscriptions ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Merge] lp:~bastian-germann/openlp/depends into lp:openlp
Bastian Germann has proposed merging lp:~bastian-germann/openlp/depends into lp:openlp. Commit message: Improve dependency handling including PEP508 Environment Markers and using the library provided by pymediainfo for Windows tests Requested reviews: Phill (phill-ridout) Tomas Groth (tomasgroth) For more details, see: https://code.launchpad.net/~bastian-germann/openlp/depends/+merge/365421 -- Your team OpenLP Core is subscribed to branch lp:openlp. === modified file 'openlp/core/ui/media/mediacontroller.py' --- openlp/core/ui/media/mediacontroller.py 2019-02-14 15:09:09 + +++ openlp/core/ui/media/mediacontroller.py 2019-04-02 17:19:11 + @@ -26,13 +26,8 @@ import datetime import logging -try: -from pymediainfo import MediaInfo -pymediainfo_available = True -except ImportError: -pymediainfo_available = False - from subprocess import check_output +from pymediainfo import MediaInfo from PyQt5 import QtCore, QtWidgets from openlp.core.state import State @@ -168,11 +163,11 @@ self.setup() self.vlc_player = VlcPlayer(self) State().add_service("mediacontroller", 0) -if get_vlc() and pymediainfo_available: +if get_vlc(): State().update_pre_conditions("mediacontroller", True) else: State().missing_text("mediacontroller", translate('OpenLP.SlideController', - "VLC or pymediainfo are missing, so you are unable to play any media")) + "VLC is missing, so you are unable to play any media")) self._generate_extensions_lists() return True === modified file 'scripts/appveyor.yml' --- scripts/appveyor.yml 2019-03-04 20:32:05 + +++ scripts/appveyor.yml 2019-04-02 17:19:11 + @@ -21,11 +21,6 @@ - appveyor DownloadFile https://mupdf.com/downloads/archive/mupdf-1.14.0-windows.zip - 7z x mupdf-1.14.0-windows.zip - cp mupdf-1.14.0-windows/mutool.exe openlp-branch/mutool.exe - # Download and unpack mediainfo - - appveyor DownloadFile https://mediaarea.net/download/binary/mediainfo/18.08.1/MediaInfo_CLI_18.08.1_Windows_i386.zip - - mkdir MediaInfo - - 7z x -oMediaInfo MediaInfo_CLI_18.08.1_Windows_i386.zip - - cp MediaInfo\\MediaInfo.exe openlp-branch\\MediaInfo.exe build: off === modified file 'scripts/check_dependencies.py' --- scripts/check_dependencies.py 2019-02-14 15:09:09 + +++ scripts/check_dependencies.py 2019-04-02 17:19:11 + @@ -40,8 +40,8 @@ VERS = { 'Python': '3.6', -'PyQt5': '5.5', -'Qt5': '5.5', +'PyQt5': '5.12', +'Qt5': '5.9', 'pymediainfo': '2.2', 'sqlalchemy': '0.5', 'enchant': '1.6' @@ -57,6 +57,7 @@ LINUX_MODULES = [ # Optical drive detection. 'dbus', +'Xlib', ] MACOSX_MODULES = [ @@ -93,6 +94,7 @@ OPTIONAL_MODULES = [ +('qdarkstyle', '(dark style support)'), ('mysql.connector', '(MySQL support)'), ('pyodbc', '(ODBC support)'), ('psycopg2', '(PostgreSQL support)'), === modified file 'setup.py' --- setup.py 2019-03-28 21:03:32 + +++ setup.py 2019-04-02 17:19:11 + @@ -22,7 +22,6 @@ ### import re -import sys from subprocess import Popen, PIPE from setuptools import setup, find_packages @@ -112,40 +111,6 @@ finally: ver_file.close() -requires = [ -'alembic', -'appdirs', -'beautifulsoup4', -'chardet', -'lxml', -'Mako', -'pymediainfo >= 2.2', -'PyQt5 >= 5.12', -'PyQtWebEngine', -'QtAwesome', -'requests', -'SQLAlchemy >= 0.5', -'waitress', -'WebOb', -'websockets' -] -test_requires = [ -'nose2', -'pylint', -'pyodbc', -'pysword' -] -if sys.platform.startswith('win'): -requires.append('pywin32') -elif sys.platform.startswith('darwin'): -requires.extend([ -'pyobjc', -'pyobjc-framework-Cocoa' -]) -elif sys.platform.startswith('linux'): -requires.append('dbus-python') -test_requires.append('xlib') - setup( name='OpenLP', @@ -200,8 +165,29 @@ include_package_data=True, zip_safe=False, python_requires='>=3.6', -install_requires=requires, +install_requires=[ +'alembic', +'appdirs', +'beautifulsoup4', +'chardet', +'dbus-python; platform_system=="Linux"', +'lxml', +'Mako', +'pymediainfo >= 2.2', +'pyobjc; platform_system=="Darwin"', +'pyobjc-framework-Cocoa; platform_system=="Darwin"', +'PyQt5 >= 5.12', +'PyQtWebEngine', +'pywin32; platform_system=="Windows"', +'QtAwesome', +'requests', +'SQLAlchemy >= 0.5', +'waitress', +'WebOb', +'websockets' +], extras_require={ +'darkstyle': ['QDarkStyle'
[Openlp-core] [Merge] lp:~bastian-germann/openlp/depends into lp:openlp
The proposal to merge lp:~bastian-germann/openlp/depends into lp:openlp has been updated. Status: Needs review => Superseded For more details, see: https://code.launchpad.net/~bastian-germann/openlp/depends/+merge/365379 -- Your team OpenLP Core is subscribed to branch lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
Re: [Openlp-core] [Merge] lp:~bastian-germann/openlp/depends into lp:openlp
openlp/core/ui/style.py uses qdarkstyle. -- https://code.launchpad.net/~bastian-germann/openlp/depends/+merge/365379 Your team OpenLP Core is subscribed to branch lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
Re: [Openlp-core] [Merge] lp:~bastian-germann/openlp/depends into lp:openlp
Instead of running python3 -m pytest in MP-04-macOS-Tests it could be changed to python3 setup.py test. This would take care of any dependencies and they would not have to be installed manually every time a dependency changes. -- https://code.launchpad.net/~bastian-germann/openlp/depends/+merge/365421 Your team OpenLP Core is subscribed to branch lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
Re: [Openlp-core] [Merge] lp:~bastian-germann/openlp/depends into lp:openlp
Why do they break OpenLP? pymediainfo is marked in setup.py as mandatory dependency. Or do you mean the i18n string? -- https://code.launchpad.net/~bastian-germann/openlp/depends/+merge/365421 Your team OpenLP Core is subscribed to branch lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
Re: [Openlp-core] [Merge] lp:~bastian-germann/openlp/depends into lp:openlp
But if you do not have a defined set of mandatory packages you would have to insert suh a check for every non-core-python package that you import. What an ugly code would that make for! -- https://code.launchpad.net/~bastian-germann/openlp/depends/+merge/365421 Your team OpenLP Core is subscribed to branch lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Merge] lp:~bastian-germann/openlp/depends into lp:openlp
Bastian Germann has proposed merging lp:~bastian-germann/openlp/depends into lp:openlp. Commit message: Improve dependency handling including PEP508 Environment Markers and using the library provided by pymediainfo for Windows tests Requested reviews: OpenLP Core (openlp-core) For more details, see: https://code.launchpad.net/~bastian-germann/openlp/depends/+merge/365379 -- Your team OpenLP Core is requested to review the proposed merge of lp:~bastian-germann/openlp/depends into lp:openlp. === modified file 'openlp/core/ui/media/mediacontroller.py' --- openlp/core/ui/media/mediacontroller.py 2019-02-14 15:09:09 + +++ openlp/core/ui/media/mediacontroller.py 2019-04-02 00:15:48 + @@ -26,12 +26,7 @@ import datetime import logging -try: -from pymediainfo import MediaInfo -pymediainfo_available = True -except ImportError: -pymediainfo_available = False - +from pymediainfo import MediaInfo from subprocess import check_output from PyQt5 import QtCore, QtWidgets @@ -168,11 +163,11 @@ self.setup() self.vlc_player = VlcPlayer(self) State().add_service("mediacontroller", 0) -if get_vlc() and pymediainfo_available: +if get_vlc(): State().update_pre_conditions("mediacontroller", True) else: State().missing_text("mediacontroller", translate('OpenLP.SlideController', - "VLC or pymediainfo are missing, so you are unable to play any media")) + "VLC is missing, so you are unable to play any media")) self._generate_extensions_lists() return True === modified file 'scripts/appveyor.yml' --- scripts/appveyor.yml 2019-03-04 20:32:05 + +++ scripts/appveyor.yml 2019-04-02 00:15:48 + @@ -21,11 +21,6 @@ - appveyor DownloadFile https://mupdf.com/downloads/archive/mupdf-1.14.0-windows.zip - 7z x mupdf-1.14.0-windows.zip - cp mupdf-1.14.0-windows/mutool.exe openlp-branch/mutool.exe - # Download and unpack mediainfo - - appveyor DownloadFile https://mediaarea.net/download/binary/mediainfo/18.08.1/MediaInfo_CLI_18.08.1_Windows_i386.zip - - mkdir MediaInfo - - 7z x -oMediaInfo MediaInfo_CLI_18.08.1_Windows_i386.zip - - cp MediaInfo\\MediaInfo.exe openlp-branch\\MediaInfo.exe build: off === modified file 'scripts/check_dependencies.py' --- scripts/check_dependencies.py 2019-02-14 15:09:09 + +++ scripts/check_dependencies.py 2019-04-02 00:15:48 + @@ -40,8 +40,8 @@ VERS = { 'Python': '3.6', -'PyQt5': '5.5', -'Qt5': '5.5', +'PyQt5': '5.12', +'Qt5': '5.12', 'pymediainfo': '2.2', 'sqlalchemy': '0.5', 'enchant': '1.6' @@ -57,6 +57,7 @@ LINUX_MODULES = [ # Optical drive detection. 'dbus', +'Xlib', ] MACOSX_MODULES = [ @@ -93,6 +94,7 @@ OPTIONAL_MODULES = [ +('qdarkstyle', '(dark style support)'), ('mysql.connector', '(MySQL support)'), ('pyodbc', '(ODBC support)'), ('psycopg2', '(PostgreSQL support)'), === modified file 'setup.py' --- setup.py 2019-03-28 21:03:32 + +++ setup.py 2019-04-02 00:15:48 + @@ -112,39 +112,6 @@ finally: ver_file.close() -requires = [ -'alembic', -'appdirs', -'beautifulsoup4', -'chardet', -'lxml', -'Mako', -'pymediainfo >= 2.2', -'PyQt5 >= 5.12', -'PyQtWebEngine', -'QtAwesome', -'requests', -'SQLAlchemy >= 0.5', -'waitress', -'WebOb', -'websockets' -] -test_requires = [ -'nose2', -'pylint', -'pyodbc', -'pysword' -] -if sys.platform.startswith('win'): -requires.append('pywin32') -elif sys.platform.startswith('darwin'): -requires.extend([ -'pyobjc', -'pyobjc-framework-Cocoa' -]) -elif sys.platform.startswith('linux'): -requires.append('dbus-python') -test_requires.append('xlib') setup( @@ -200,8 +167,29 @@ include_package_data=True, zip_safe=False, python_requires='>=3.6', -install_requires=requires, +install_requires=[ +'alembic', +'appdirs', +'beautifulsoup4', +'chardet', +'dbus-python; platform_system=="Linux"', +'lxml', +'Mako', +'pymediainfo >= 2.2', +'pyobjc; platform_system=="Darwin"', +'pyobjc-framework-Cocoa; platform_system=="Darwin"', +'PyQt5 >= 5.12', +'PyQtWebEngine', +'pywin32; platform_system=="Windows"', +'QtAwesome', +'requests', +'SQLAlchemy >= 0.5', +'waitress', +'WebOb', +'websockets' +], extras_require={ +'darkstyle': ['QDarkStyle'], 'mysql': ['mysql-connector-python'], 'odbc': ['pyodbc'], 'postgresql': ['psycopg2'], @@ -211,7 +199,13 @@ 'jenkins': ['python-jenkins'], 'launchpad': ['launchpadlib']
[Openlp-core] [Bug 1797132] Re: Windows and macOS installer license violations
** Changed in: openlp Status: New => Confirmed -- You received this bug notification because you are a member of OpenLP Core, which is subscribed to OpenLP. https://bugs.launchpad.net/bugs/1797132 Title: Windows and macOS installer license violations Status in OpenLP: Confirmed Bug description: The Windows and macOS installers contain even more license violations than bug #1795876. You redistribute the dependencies with these installers and I cannot see any license being documented other than OpenLP's own GPLv2. In general even "liberal" free software licenses like BSD or MIT require you to include the license statement in ANY redistribution, including binary distribution. To manage notifications about this bug go to: https://bugs.launchpad.net/openlp/+bug/1797132/+subscriptions ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Bug 1797132] Re: Windows and macOS installer license violations
** Changed in: openlp Importance: Undecided => High -- You received this bug notification because you are a member of OpenLP Core, which is subscribed to OpenLP. https://bugs.launchpad.net/bugs/1797132 Title: Windows and macOS installer license violations Status in OpenLP: New Bug description: The Windows and macOS installers contain even more license violations than bug #1795876. You redistribute the dependencies with these installers and I cannot see any license being documented other than OpenLP's own GPLv2. In general even "liberal" free software licenses like BSD or MIT require you to include the license statement in ANY redistribution, including binary distribution. To manage notifications about this bug go to: https://bugs.launchpad.net/openlp/+bug/1797132/+subscriptions ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Bug 1795876] Re: License violations
** Changed in: openlp/trunk Status: Fix Committed => In Progress -- You received this bug notification because you are a member of OpenLP Core, which is subscribed to OpenLP. https://bugs.launchpad.net/bugs/1795876 Title: License violations Status in OpenLP: In Progress Status in OpenLP 2.0 series: Won't Fix Status in OpenLP 2.2 series: Won't Fix Status in OpenLP 2.4 series: Won't Fix Status in OpenLP trunk series: In Progress Bug description: OpenLP (GPLv2 only) is currently violating at least two licenses: PyQt5's GPLv3 only and request's Apache 2.0. There are two options to heal these violations: relicense OpenLP or replace the dependencies. A third option would be aquiring a commercial PyQt5 license from Riverbank and replacing requests only, but as it is paid per developer this seems to be infeasible for an open source project. REPLACING = Replacing requests would be feasible: urllib is already used throughout the codebase. Just use it for the currently three files which import requests as well. I do not know if it would be feasible to replace PyQt5 with PySide2. RELICENSING === You would have to use the GPLv3 license to heal both of the violations (GPLv3 is compatible with Apache 2.0). You could also use GPLv2 or later, but the logical license combined with PyQt5 is always GPLv3. That leads to another issue: pysword is GPLv2 only and a license move would require you to drop this optional dependency. But I guess this would be a minor issue as it is not released yet (?). I do not know if relicensing is feasible as you would have to ask the majority of copyright holders to agree with the license change. In either case you should inform your users not later than with your next (fixed!) release about the license violation as they could be in trouble using OpenLP. To manage notifications about this bug go to: https://bugs.launchpad.net/openlp/+bug/1795876/+subscriptions ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Bug 1795876] Re: License violations
** Branch unlinked: lp:~trb143/openlp/media_state -- You received this bug notification because you are a member of OpenLP Core, which is subscribed to OpenLP. https://bugs.launchpad.net/bugs/1795876 Title: License violations Status in OpenLP: In Progress Status in OpenLP 2.0 series: Won't Fix Status in OpenLP 2.2 series: Won't Fix Status in OpenLP 2.4 series: Won't Fix Status in OpenLP trunk series: In Progress Bug description: OpenLP (GPLv2 only) is currently violating at least two licenses: PyQt5's GPLv3 only and request's Apache 2.0. There are two options to heal these violations: relicense OpenLP or replace the dependencies. A third option would be aquiring a commercial PyQt5 license from Riverbank and replacing requests only, but as it is paid per developer this seems to be infeasible for an open source project. REPLACING = Replacing requests would be feasible: urllib is already used throughout the codebase. Just use it for the currently three files which import requests as well. I do not know if it would be feasible to replace PyQt5 with PySide2. RELICENSING === You would have to use the GPLv3 license to heal both of the violations (GPLv3 is compatible with Apache 2.0). You could also use GPLv2 or later, but the logical license combined with PyQt5 is always GPLv3. That leads to another issue: pysword is GPLv2 only and a license move would require you to drop this optional dependency. But I guess this would be a minor issue as it is not released yet (?). I do not know if relicensing is feasible as you would have to ask the majority of copyright holders to agree with the license change. In either case you should inform your users not later than with your next (fixed!) release about the license violation as they could be in trouble using OpenLP. To manage notifications about this bug go to: https://bugs.launchpad.net/openlp/+bug/1795876/+subscriptions ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Bug 1795876] Re: License violations
One suggestion for the license header change: OpenLP should switch to using SPDX license headers. This means having one line like # GPL-3.0-or-later at the top of every file instead of the full-blown GPL statement. Big software projects such as Linux have switched to SPDX. -- You received this bug notification because you are a member of OpenLP Core, which is subscribed to OpenLP. https://bugs.launchpad.net/bugs/1795876 Title: License violations Status in OpenLP: In Progress Status in OpenLP 2.0 series: Won't Fix Status in OpenLP 2.2 series: Won't Fix Status in OpenLP 2.4 series: Won't Fix Status in OpenLP trunk series: In Progress Bug description: OpenLP (GPLv2 only) is currently violating at least two licenses: PyQt5's GPLv3 only and request's Apache 2.0. There are two options to heal these violations: relicense OpenLP or replace the dependencies. A third option would be aquiring a commercial PyQt5 license from Riverbank and replacing requests only, but as it is paid per developer this seems to be infeasible for an open source project. REPLACING = Replacing requests would be feasible: urllib is already used throughout the codebase. Just use it for the currently three files which import requests as well. I do not know if it would be feasible to replace PyQt5 with PySide2. RELICENSING === You would have to use the GPLv3 license to heal both of the violations (GPLv3 is compatible with Apache 2.0). You could also use GPLv2 or later, but the logical license combined with PyQt5 is always GPLv3. That leads to another issue: pysword is GPLv2 only and a license move would require you to drop this optional dependency. But I guess this would be a minor issue as it is not released yet (?). I do not know if relicensing is feasible as you would have to ask the majority of copyright holders to agree with the license change. In either case you should inform your users not later than with your next (fixed!) release about the license violation as they could be in trouble using OpenLP. To manage notifications about this bug go to: https://bugs.launchpad.net/openlp/+bug/1795876/+subscriptions ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Bug 1797132] Re: Windows and macOS installer license violations
** Changed in: openlp Milestone: 3.0 => 2.9.1 -- You received this bug notification because you are a member of OpenLP Core, which is subscribed to OpenLP. https://bugs.launchpad.net/bugs/1797132 Title: Windows and macOS installer license violations Status in OpenLP: New Bug description: The Windows and macOS installers contain even more license violations than bug #1795876. You redistribute the dependencies with these installers and I cannot see any license being documented other than OpenLP's own GPLv2. In general even "liberal" free software licenses like BSD or MIT require you to include the license statement in ANY redistribution, including binary distribution. To manage notifications about this bug go to: https://bugs.launchpad.net/openlp/+bug/1797132/+subscriptions ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Merge] lp:~bastian-germann/openlp/depends into lp:openlp
Bastian Germann has proposed merging lp:~bastian-germann/openlp/depends into lp:openlp. Commit message: Improve dependency handling including PEP508 Environment Markers and using the library provided by pymediainfo for Windows tests Requested reviews: Tim Bentley (trb143) Tomas Groth (tomasgroth) Phill (phill-ridout) For more details, see: https://code.launchpad.net/~bastian-germann/openlp/depends/+merge/365765 -- Your team OpenLP Core is subscribed to branch lp:openlp. === modified file 'openlp/core/ui/media/mediacontroller.py' --- openlp/core/ui/media/mediacontroller.py 2019-02-14 15:09:09 + +++ openlp/core/ui/media/mediacontroller.py 2019-04-09 19:12:20 + @@ -26,13 +26,8 @@ import datetime import logging -try: -from pymediainfo import MediaInfo -pymediainfo_available = True -except ImportError: -pymediainfo_available = False - from subprocess import check_output +from pymediainfo import MediaInfo from PyQt5 import QtCore, QtWidgets from openlp.core.state import State @@ -168,11 +163,11 @@ self.setup() self.vlc_player = VlcPlayer(self) State().add_service("mediacontroller", 0) -if get_vlc() and pymediainfo_available: +if get_vlc(): State().update_pre_conditions("mediacontroller", True) else: State().missing_text("mediacontroller", translate('OpenLP.SlideController', - "VLC or pymediainfo are missing, so you are unable to play any media")) + "VLC is missing, so you are unable to play any media")) self._generate_extensions_lists() return True === modified file 'scripts/appveyor.yml' --- scripts/appveyor.yml 2019-03-04 20:32:05 + +++ scripts/appveyor.yml 2019-04-09 19:12:20 + @@ -21,11 +21,6 @@ - appveyor DownloadFile https://mupdf.com/downloads/archive/mupdf-1.14.0-windows.zip - 7z x mupdf-1.14.0-windows.zip - cp mupdf-1.14.0-windows/mutool.exe openlp-branch/mutool.exe - # Download and unpack mediainfo - - appveyor DownloadFile https://mediaarea.net/download/binary/mediainfo/18.08.1/MediaInfo_CLI_18.08.1_Windows_i386.zip - - mkdir MediaInfo - - 7z x -oMediaInfo MediaInfo_CLI_18.08.1_Windows_i386.zip - - cp MediaInfo\\MediaInfo.exe openlp-branch\\MediaInfo.exe build: off === modified file 'scripts/check_dependencies.py' --- scripts/check_dependencies.py 2019-02-21 21:26:36 + +++ scripts/check_dependencies.py 2019-04-09 19:12:20 + @@ -40,8 +40,8 @@ VERS = { 'Python': '3.6', -'PyQt5': '5.5', -'Qt5': '5.5', +'PyQt5': '5.12', +'Qt5': '5.9', 'pymediainfo': '2.2', 'sqlalchemy': '0.5', 'enchant': '1.6' @@ -57,6 +57,7 @@ LINUX_MODULES = [ # Optical drive detection. 'dbus', +'Xlib', ] MACOSX_MODULES = [ @@ -93,6 +94,7 @@ OPTIONAL_MODULES = [ +('qdarkstyle', '(dark style support)'), ('mysql.connector', '(MySQL support)'), ('pyodbc', '(ODBC support)'), ('psycopg2', '(PostgreSQL support)'), === modified file 'setup.py' --- setup.py 2019-03-28 21:03:32 + +++ setup.py 2019-04-09 19:12:20 + @@ -22,7 +22,6 @@ ### import re -import sys from subprocess import Popen, PIPE from setuptools import setup, find_packages @@ -112,40 +111,6 @@ finally: ver_file.close() -requires = [ -'alembic', -'appdirs', -'beautifulsoup4', -'chardet', -'lxml', -'Mako', -'pymediainfo >= 2.2', -'PyQt5 >= 5.12', -'PyQtWebEngine', -'QtAwesome', -'requests', -'SQLAlchemy >= 0.5', -'waitress', -'WebOb', -'websockets' -] -test_requires = [ -'nose2', -'pylint', -'pyodbc', -'pysword' -] -if sys.platform.startswith('win'): -requires.append('pywin32') -elif sys.platform.startswith('darwin'): -requires.extend([ -'pyobjc', -'pyobjc-framework-Cocoa' -]) -elif sys.platform.startswith('linux'): -requires.append('dbus-python') -test_requires.append('xlib') - setup( name='OpenLP', @@ -200,8 +165,29 @@ include_package_data=True, zip_safe=False, python_requires='>=3.6', -install_requires=requires, +install_requires=[ +'alembic', +'appdirs', +'beautifulsoup4', +'chardet', +'dbus-python; platform_system=="Linux"', +'lxml', +'Mako', +'pymediainfo >= 2.2', +'pyobjc; platform_system=="Darwin"', +'pyobjc-framework-Cocoa; platform_system=="Darwin"', +'PyQt5 >= 5.12', +'PyQtWebEngine', +'pywin32; platform_system=="Windows"', +'QtAwesome', +'requests', +'SQLAlchemy >= 0.5', +'waitress', +'WebOb', +'websockets' +], extras_require={ +'darkstyle':
[Openlp-core] [Merge] lp:~bastian-germann/openlp/depends into lp:openlp
The proposal to merge lp:~bastian-germann/openlp/depends into lp:openlp has been updated. Status: Needs review => Superseded For more details, see: https://code.launchpad.net/~bastian-germann/openlp/depends/+merge/365421 -- Your team OpenLP Core is subscribed to branch lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Bug 1795876] Re: License violations
** Changed in: openlp/trunk Status: In Progress => Fix Committed -- You received this bug notification because you are a member of OpenLP Core, which is subscribed to OpenLP. https://bugs.launchpad.net/bugs/1795876 Title: License violations Status in OpenLP: Fix Committed Status in OpenLP 2.0 series: Won't Fix Status in OpenLP 2.2 series: Won't Fix Status in OpenLP 2.4 series: Won't Fix Status in OpenLP trunk series: Fix Committed Bug description: OpenLP (GPLv2 only) is currently violating at least two licenses: PyQt5's GPLv3 only and request's Apache 2.0. There are two options to heal these violations: relicense OpenLP or replace the dependencies. A third option would be aquiring a commercial PyQt5 license from Riverbank and replacing requests only, but as it is paid per developer this seems to be infeasible for an open source project. REPLACING = Replacing requests would be feasible: urllib is already used throughout the codebase. Just use it for the currently three files which import requests as well. I do not know if it would be feasible to replace PyQt5 with PySide2. RELICENSING === You would have to use the GPLv3 license to heal both of the violations (GPLv3 is compatible with Apache 2.0). You could also use GPLv2 or later, but the logical license combined with PyQt5 is always GPLv3. That leads to another issue: pysword is GPLv2 only and a license move would require you to drop this optional dependency. But I guess this would be a minor issue as it is not released yet (?). I do not know if relicensing is feasible as you would have to ask the majority of copyright holders to agree with the license change. In either case you should inform your users not later than with your next (fixed!) release about the license violation as they could be in trouble using OpenLP. To manage notifications about this bug go to: https://bugs.launchpad.net/openlp/+bug/1795876/+subscriptions ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Bug 1795876] Re: License violations
** Branch linked: lp:~bastian-germann/openlp/gpl3 -- You received this bug notification because you are a member of OpenLP Core, which is subscribed to OpenLP. https://bugs.launchpad.net/bugs/1795876 Title: License violations Status in OpenLP: In Progress Status in OpenLP 2.0 series: Won't Fix Status in OpenLP 2.2 series: Won't Fix Status in OpenLP 2.4 series: Won't Fix Status in OpenLP trunk series: In Progress Bug description: OpenLP (GPLv2 only) is currently violating at least two licenses: PyQt5's GPLv3 only and request's Apache 2.0. There are two options to heal these violations: relicense OpenLP or replace the dependencies. A third option would be aquiring a commercial PyQt5 license from Riverbank and replacing requests only, but as it is paid per developer this seems to be infeasible for an open source project. REPLACING = Replacing requests would be feasible: urllib is already used throughout the codebase. Just use it for the currently three files which import requests as well. I do not know if it would be feasible to replace PyQt5 with PySide2. RELICENSING === You would have to use the GPLv3 license to heal both of the violations (GPLv3 is compatible with Apache 2.0). You could also use GPLv2 or later, but the logical license combined with PyQt5 is always GPLv3. That leads to another issue: pysword is GPLv2 only and a license move would require you to drop this optional dependency. But I guess this would be a minor issue as it is not released yet (?). I do not know if relicensing is feasible as you would have to ask the majority of copyright holders to agree with the license change. In either case you should inform your users not later than with your next (fixed!) release about the license violation as they could be in trouble using OpenLP. To manage notifications about this bug go to: https://bugs.launchpad.net/openlp/+bug/1795876/+subscriptions ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Merge] lp:~bastian-germann/openlp/dependencies into lp:openlp
Bastian Germann has proposed merging lp:~bastian-germann/openlp/dependencies into lp:openlp. Commit message: Sync dependencies in setup.py and check_dependencies; eliminating nose2 Requested reviews: OpenLP Core (openlp-core) For more details, see: https://code.launchpad.net/~bastian-germann/openlp/dependencies/+merge/367492 -- Your team OpenLP Core is requested to review the proposed merge of lp:~bastian-germann/openlp/dependencies into lp:openlp. === removed file 'nose2.cfg' --- nose2.cfg 2017-12-02 05:31:23 + +++ nose2.cfg 1970-01-01 00:00:00 + @@ -1,27 +0,0 @@ -[unittest] -verbose = true -plugins = nose2.plugins.mp - -[log-capture] -always-on = true -clear-handlers = true -filter = -nose -log-level = ERROR - -[test-result] -always-on = true -descriptions = true - -[coverage] -always-on = true -coverage = openlp -coverage-report = html - -[multiprocess] -always-on = false -processes = 4 - -[output-buffer] -always-on = true -stderr = true -stdout = true === modified file 'scripts/check_dependencies.py' --- scripts/check_dependencies.py 2019-05-05 08:13:10 + +++ scripts/check_dependencies.py 2019-05-15 22:38:49 + @@ -100,12 +100,12 @@ ('pyodbc', '(ODBC support)'), ('psycopg2', '(PostgreSQL support)'), ('enchant', '(spell checker)'), +('fitz', '(executable-independent PDF support)'), ('pysword', '(import SWORD bibles)'), ('uno', '(LibreOffice/OpenOffice support)'), # development/testing modules ('jenkins', '(access jenkins api)'), ('launchpadlib', '(launchpad script support)'), -('nose2', '(testing framework)'), ('pylint', '(linter)') ] === modified file 'setup.py' --- setup.py 2019-05-02 10:35:29 + +++ setup.py 2019-05-15 22:38:49 + @@ -178,6 +178,7 @@ 'pyobjc-framework-Cocoa; platform_system=="Darwin"', 'PyQt5 >= 5.12', 'PyQtWebEngine', +'python-vlc', 'pywin32; platform_system=="Windows"', 'QtAwesome', 'requests', @@ -199,13 +200,12 @@ 'launchpad': ['launchpadlib'] }, tests_require=[ -'nose2', 'pylint', 'PyMuPDF', 'pyodbc', 'pysword', 'python-xlib; platform_system=="Linux"' ], -test_suite='nose2.collector.collector', +test_suite='tests', entry_points={'gui_scripts': ['openlp = run_openlp:start']} ) ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Merge] lp:~bastian-germann/openlp/dependencies into lp:openlp
Bastian Germann has proposed merging lp:~bastian-germann/openlp/dependencies into lp:openlp. Commit message: Sync dependencies in setup.py and check_dependencies; replacing nose2 with pytest Requested reviews: Raoul Snyman (raoul-snyman) For more details, see: https://code.launchpad.net/~bastian-germann/openlp/dependencies/+merge/367931 -- Your team OpenLP Core is subscribed to branch lp:openlp. === removed file 'nose2.cfg' --- nose2.cfg 2017-12-02 05:31:23 + +++ nose2.cfg 1970-01-01 00:00:00 + @@ -1,27 +0,0 @@ -[unittest] -verbose = true -plugins = nose2.plugins.mp - -[log-capture] -always-on = true -clear-handlers = true -filter = -nose -log-level = ERROR - -[test-result] -always-on = true -descriptions = true - -[coverage] -always-on = true -coverage = openlp -coverage-report = html - -[multiprocess] -always-on = false -processes = 4 - -[output-buffer] -always-on = true -stderr = true -stdout = true === modified file 'scripts/check_dependencies.py' --- scripts/check_dependencies.py 2019-05-05 08:13:10 + +++ scripts/check_dependencies.py 2019-05-25 14:48:48 + @@ -100,12 +100,13 @@ ('pyodbc', '(ODBC support)'), ('psycopg2', '(PostgreSQL support)'), ('enchant', '(spell checker)'), +('fitz', '(executable-independent PDF support)'), ('pysword', '(import SWORD bibles)'), ('uno', '(LibreOffice/OpenOffice support)'), # development/testing modules ('jenkins', '(access jenkins api)'), ('launchpadlib', '(launchpad script support)'), -('nose2', '(testing framework)'), +('pytest', '(testing framework)'), ('pylint', '(linter)') ] === modified file 'setup.cfg' --- setup.cfg 2019-04-08 21:03:57 + +++ setup.cfg 2019-05-25 14:48:48 + @@ -2,6 +2,9 @@ # E722 do not use bare except, specify exception instead # F841 local variable '' is assigned to but never used +[aliases] +test=pytest + [pep8] exclude=resources.py,vlc.py max-line-length = 120 === modified file 'setup.py' --- setup.py 2019-05-02 10:35:29 + +++ setup.py 2019-05-25 14:48:48 + @@ -178,6 +178,7 @@ 'pyobjc-framework-Cocoa; platform_system=="Darwin"', 'PyQt5 >= 5.12', 'PyQtWebEngine', +'python-vlc', 'pywin32; platform_system=="Windows"', 'QtAwesome', 'requests', @@ -199,13 +200,13 @@ 'launchpad': ['launchpadlib'] }, tests_require=[ -'nose2', 'pylint', 'PyMuPDF', 'pyodbc', 'pysword', +'pytest', 'python-xlib; platform_system=="Linux"' ], -test_suite='nose2.collector.collector', +setup_requires=['pytest-runner'], entry_points={'gui_scripts': ['openlp = run_openlp:start']} ) ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Merge] lp:~bastian-germann/openlp/dependencies into lp:openlp
The proposal to merge lp:~bastian-germann/openlp/dependencies into lp:openlp has been updated. Status: Needs review => Superseded For more details, see: https://code.launchpad.net/~bastian-germann/openlp/dependencies/+merge/367492 -- Your team OpenLP Core is subscribed to branch lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Merge] lp:~bastian-germann/openlp/main into lp:openlp
The proposal to merge lp:~bastian-germann/openlp/main into lp:openlp has been updated. Status: Needs review => Superseded For more details, see: https://code.launchpad.net/~bastian-germann/openlp/main/+merge/367156 -- Your team OpenLP Core is subscribed to branch lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
Re: [Openlp-core] [Merge] lp:~bastian-germann/openlp/main into lp:openlp
I do not have time right now to install a PyInstaller and reproduce OpenLP setup files. So I readded the run_openlp.py which just calls the __main__.start() function. This gives us backwards compatibility and has the advantage that the run_openlp module is not exported anymore. -- https://code.launchpad.net/~bastian-germann/openlp/main/+merge/367156 Your team OpenLP Core is subscribed to branch lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Merge] lp:~bastian-germann/openlp/main into lp:openlp
Bastian Germann has proposed merging lp:~bastian-germann/openlp/main into lp:openlp. Commit message: Use start script __main__.py which enables 'python -m openlp' Requested reviews: Raoul Snyman (raoul-snyman) For more details, see: https://code.launchpad.net/~bastian-germann/openlp/main/+merge/368590 The situation with OpenLP exporting two packages (openlp and run_openlp) is unpythonic. There is an obvious fix for that: using __main__.py. A neat side effect: It enables starting OpenLP via 'python -m openlp'. As packages will have to be touched anyway because the start script was renamed to run_openlp.py during the current development cycle we should take the chance and do it the right way. -- Your team OpenLP Core is subscribed to branch lp:openlp. === renamed file 'run_openlp.py' => 'openlp/__main__.py' === added file 'run_openlp.py' --- run_openlp.py 1970-01-01 00:00:00 + +++ run_openlp.py 2019-06-09 16:23:31 + @@ -0,0 +1,29 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4 + +## +# OpenLP - Open Source Lyrics Projection # +# -- # +# Copyright (c) 2008-2019 OpenLP Developers # +# -- # +# 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 <https://www.gnu.org/licenses/>. # +## +""" +A compatibility entrypoint for OpenLP +""" +from openlp import __main__ + +if __name__ == '__main__': +__main__.start() === modified file 'setup.py' --- setup.py 2019-05-25 14:43:43 + +++ setup.py 2019-06-09 16:23:31 + @@ -161,7 +161,6 @@ url='https://openlp.org/', license='GPL-3.0-or-later', packages=find_packages(exclude=['ez_setup', 'tests*']), -py_modules=['run_openlp'], include_package_data=True, zip_safe=False, python_requires='>=3.6', @@ -208,5 +207,5 @@ 'python-xlib; platform_system=="Linux"' ], setup_requires=['pytest-runner'], -entry_points={'gui_scripts': ['openlp = run_openlp:start']} +entry_points={'gui_scripts': ['openlp = openlp.__main__:start']} ) === modified file 'tests/functional/openlp_core/ui/test_mainwindow.py' --- tests/functional/openlp_core/ui/test_mainwindow.py 2019-05-22 16:47:20 + +++ tests/functional/openlp_core/ui/test_mainwindow.py 2019-06-09 16:23:31 + @@ -107,7 +107,7 @@ Test that passing a non service file does nothing. """ # GIVEN a non service file as an argument to openlp -service = 'run_openlp.py' +service = 'setup.py' # WHEN the argument is processed self.main_window.open_cmd_line_files(service) ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp