[Openlp-core] [Bug 1795876] Re: License violations

2018-10-08 Thread Bastian Germann
** 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

2018-10-07 Thread Bastian Germann
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

2018-10-07 Thread Bastian Germann
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

2018-10-05 Thread Bastian Germann
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

2018-10-11 Thread Bastian Germann
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

2018-10-11 Thread Bastian Germann
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

2018-10-11 Thread Bastian Germann
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

2018-10-11 Thread Bastian Germann
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

2018-10-11 Thread Bastian Germann
** 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

2018-10-11 Thread Bastian Germann
** 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

2018-10-11 Thread Bastian Germann
** 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

2018-10-11 Thread Bastian Germann
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

2018-10-11 Thread Bastian Germann
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

2018-10-11 Thread Bastian Germann
@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

2018-10-12 Thread Bastian Germann
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

2018-10-13 Thread Bastian Germann
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

2018-10-13 Thread Bastian Germann
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

2018-10-12 Thread Bastian Germann
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

2018-10-14 Thread Bastian Germann
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

2018-10-16 Thread Bastian Germann
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

2018-10-16 Thread Bastian Germann
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

2018-10-16 Thread Bastian Germann
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

2018-10-16 Thread Bastian Germann
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

2018-10-16 Thread Bastian Germann
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

2018-10-16 Thread Bastian Germann
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

2018-10-16 Thread Bastian Germann
> 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

2018-10-16 Thread Bastian Germann
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

2018-10-16 Thread Bastian Germann
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

2018-10-19 Thread Bastian Germann
** 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

2018-10-19 Thread Bastian Germann
** 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

2018-10-19 Thread Bastian Germann
** 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

2018-10-21 Thread Bastian Germann
@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

2018-10-21 Thread Bastian Germann
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

2018-10-24 Thread Bastian Germann
** 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

2018-10-24 Thread Bastian Germann
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

2018-10-26 Thread Bastian Germann
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

2018-10-28 Thread Bastian Germann
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

2018-10-28 Thread Bastian Germann
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

2018-10-28 Thread Bastian Germann
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

2018-10-28 Thread Bastian Germann
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

2018-10-28 Thread Bastian Germann
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

2018-10-26 Thread Bastian Germann
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

2018-10-26 Thread Bastian Germann
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

2018-10-25 Thread Bastian Germann
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

2018-10-25 Thread Bastian Germann
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

2018-10-25 Thread Bastian Germann
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

2018-10-27 Thread Bastian Germann
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

2018-10-27 Thread Bastian Germann
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

2018-10-27 Thread Bastian Germann
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

2018-10-26 Thread Bastian Germann
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

2018-10-26 Thread Bastian Germann
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

2018-10-26 Thread Bastian Germann
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

2018-10-26 Thread Bastian Germann
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

2018-10-27 Thread Bastian Germann
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

2018-10-04 Thread Bastian Germann
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

2018-10-04 Thread Bastian Germann
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

2018-10-04 Thread Bastian Germann
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

2018-10-03 Thread Bastian Germann
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

2018-10-03 Thread Bastian Germann
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

2018-10-04 Thread Bastian Germann
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

2018-10-09 Thread Bastian Germann
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

2018-10-09 Thread Bastian Germann
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

2018-10-09 Thread Bastian Germann
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

2018-10-10 Thread Bastian Germann
** 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

2018-10-10 Thread Bastian Germann
** 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

2018-10-10 Thread Bastian Germann
** 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

2018-10-10 Thread Bastian Germann
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

2018-10-10 Thread Bastian Germann
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

2018-10-10 Thread Bastian Germann
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

2018-10-03 Thread Bastian Germann
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

2018-10-03 Thread Bastian Germann
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

2018-10-06 Thread Bastian Germann
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

2018-10-06 Thread Bastian Germann
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

2018-10-07 Thread Bastian Germann
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

2018-10-07 Thread Bastian Germann
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

2018-10-07 Thread Bastian Germann
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

2019-01-22 Thread Bastian Germann
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

2019-04-02 Thread Bastian Germann
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

2019-04-02 Thread Bastian Germann
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

2019-04-02 Thread Bastian Germann
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

2019-04-02 Thread Bastian Germann
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

2019-04-02 Thread Bastian Germann
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

2019-04-02 Thread Bastian Germann
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

2019-04-01 Thread Bastian Germann
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

2019-04-04 Thread Bastian Germann
** 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

2019-03-01 Thread Bastian Germann
** 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

2019-03-04 Thread Bastian Germann
** 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

2019-03-12 Thread Bastian Germann
** 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

2019-03-12 Thread Bastian Germann
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

2019-03-21 Thread Bastian Germann
** 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

2019-04-09 Thread Bastian Germann
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

2019-04-09 Thread Bastian Germann
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

2019-04-18 Thread Bastian Germann
** 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

2019-04-13 Thread Bastian Germann
** 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

2019-05-15 Thread Bastian Germann
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

2019-05-25 Thread Bastian Germann
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

2019-05-25 Thread Bastian Germann
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

2019-06-09 Thread Bastian Germann
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

2019-06-09 Thread Bastian Germann
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

2019-06-09 Thread Bastian Germann
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


  1   2   >