[Openlp-core] [Merge] lp:~bastian-germann/openlp/setup into lp:openlp
The proposal to merge lp:~bastian-germann/openlp/setup into lp:openlp has been updated. Status: Needs review => Superseded For more details, see: https://code.launchpad.net/~bastian-germann/openlp/setup/+merge/356602 -- Your team OpenLP Core is subscribed to branch lp:openlp. ___ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp
[Openlp-core] [Merge] lp:~bastian-germann/openlp/setup into lp:openlp
Bastian Germann has proposed merging lp:~bastian-germann/openlp/setup into lp:openlp. Commit message: This fixes setuptools' dependencies according to scripts/check_dependencies.py. The minimum Python version is set to 3.6 because this was agreed to on the mailing list. To overcome the module conflict, openlp.py is replaced with __main__.py which setuptools installs as /usr/bin/openlp (or openlp.exe on Windows). You can call it locally via `python -m openlp`. Some packages which are optional in the source are declared as optional (uno, pyenchant, pyodbc). The vendored (ripped) pymediainfo module is replaced by its upstream version. Additionally, replace pyxdg with appdirs (see License violations issue). Requested reviews: Raoul Snyman (raoul-snyman) Related bugs: Bug #1795876 in OpenLP: "License violations" https://bugs.launchpad.net/openlp/+bug/1795876 For more details, see: https://code.launchpad.net/~bastian-germann/openlp/setup/+merge/356675 -- Your team OpenLP Core is subscribed to branch lp:openlp. === renamed file 'openlp.py' => 'openlp/__main__.py' --- openlp.py 2017-12-29 09:15:48 + +++ openlp/__main__.py 2018-10-13 08:06:45 + @@ -42,7 +42,7 @@ faulthandler.enable((AppLocation.get_directory(AppLocation.CacheDir) / 'error.log').open('wb')) -if __name__ == '__main__': +def start(): """ Instantiate and run the application. """ @@ -58,3 +58,6 @@ if is_macosx(): sys.argv = [x for x in sys.argv if not x.startswith('-psn')] main() + +if __name__ == '__main__': +start() === modified file 'openlp/core/app.py' --- openlp/core/app.py 2018-08-25 14:36:46 + +++ openlp/core/app.py 2018-10-13 08:06:45 + @@ -288,7 +288,7 @@ :return: a tuple of parsed options of type optparse.Value and a list of remaining argsZ """ # Set up command line options. -parser = argparse.ArgumentParser(prog='openlp.py') +parser = argparse.ArgumentParser(prog='openlp') parser.add_argument('-e', '--no-error-form', dest='no_error_form', action='store_true', help='Disable the error notification form.') parser.add_argument('-l', '--log-level', dest='loglevel', default='warning', metavar='LEVEL', === modified file 'openlp/core/common/applocation.py' --- openlp/core/common/applocation.py 2018-01-07 04:45:13 + +++ openlp/core/common/applocation.py 2018-10-13 08:06:45 + @@ -26,18 +26,13 @@ import os import sys +import appdirs + import openlp from openlp.core.common import get_frozen_path, is_win, is_macosx from openlp.core.common.path import Path, create_paths from openlp.core.common.settings import Settings -if not is_win() and not is_macosx(): -try: -from xdg import BaseDirectory -XDG_BASE_AVAILABLE = True -except ImportError: -XDG_BASE_AVAILABLE = False - log = logging.getLogger(__name__) FROZEN_APP_PATH = Path(sys.argv[0]).parent @@ -143,8 +138,10 @@ elif dir_type == AppLocation.LanguageDir: return Path(openlp.__file__).parent return openlp_folder_path -elif is_macosx(): -openlp_folder_path = Path(os.getenv('HOME'), 'Library', 'Application Support', 'openlp') + +dirs = appdirs.AppDirs('openlp', multipath=True) +if is_macosx(): +openlp_folder_path = Path(dirs.user_data_dir) if dir_type == AppLocation.DataDir: return openlp_folder_path / 'Data' elif dir_type == AppLocation.LanguageDir: @@ -152,15 +149,15 @@ return openlp_folder_path else: if dir_type == AppLocation.LanguageDir: -directory = Path('/usr', 'local', 'share', 'openlp') +site_dirs = dirs.site_data_dir.split(os.pathsep) +directory = Path(site_dirs[0]) if directory.exists(): return directory -return Path('/usr', 'share', 'openlp') -if XDG_BASE_AVAILABLE: -if dir_type == AppLocation.DataDir: -return Path(BaseDirectory.xdg_data_home, 'openlp') -elif dir_type == AppLocation.CacheDir: -return Path(BaseDirectory.xdg_cache_home, 'openlp') +return Path(site_dirs[1]) +if dir_type == AppLocation.DataDir: +return Path(dirs.user_data_dir) +elif dir_type == AppLocation.CacheDir: +return Path(dirs.user_cache_dir) if dir_type == AppLocation.DataDir: return Path(os.getenv('HOME'), '.openlp', 'data') return Path(os.getenv('HOME'), '.openlp') === modified file 'openlp/core/common/registry.py' --- openlp/core/common/registry.py 2018-06-24 06:56:50 + +++ openlp/core/common/registry.py 2018-10-13 08:06:45 + @@ -57,8 +57,7 @@ registry.functions_list = {} registry.working_flags = {} # Allow the tests to remove Registry entries but not the live system -registry.running_under_test = 'nose' in sys.argv[0] -registry.running_under_test
[Openlp-core] [Merge] lp:~alisonken1/openlp/pjlink2-t into lp:openlp
Ken Roberts has proposed merging lp:~alisonken1/openlp/pjlink2-t into lp:openlp. Commit message: PJLink2-T Update (UDP updates and some cleanups) Having network issues - ci failed when running ci but passed when looked at branch webpage: lp:~alisonken1/openlp/pjlink2-t (revision 2834) https://ci.openlp.io/job/Branch-01-Pull/2578/ [SUCCESS] https://ci.openlp.io/job/Branch-02a-Linux-Tests/2475/ [WAITING]Traceback (most recent call last): ... Exception: Build has not started yet, it may be stuck in the queue === Jenkins branch webpage: --- Success Branch-01-Pull (#2578) Success Branch-02a-Linux-Tests (#2475) Failed Branch-02b-macOS-Tests (#249) Success Branch-03a-Build-Source (#162) Success Branch-03b-Build-macOS (#141) Success Branch-04a-Code-Analysis (#1624) Success Branch-04b-Test-Coverage (#1437) Success Branch-04c-Lint-Check (#567) Failed Branch-05-AppVeyor-Tests (#336) Failed Branch-06-Build_API_Docs (#486) Requested reviews: OpenLP Core (openlp-core) For more details, see: https://code.launchpad.net/~alisonken1/openlp/pjlink2-t/+merge/356677 - Move tests/functional/openlp_core/common/test_networkinterfaces.py to tests/openlp_core/common - Minor cleanups in openlp.core.common.__init__.get_local_ip4() - Add more get_local_ip4 tests - Fix some oops in ProjectorManager when add/edit projector entry - Update tests/openlp_core/projectors/test_projector_pjlink_udp.py with correct log entries - Add UDP 'projector/udp broadcast listen' status in Settings() (default=False) - Add UDP broadcast listen option in projector settings tab - Add check_settings(), udp_start(), and udp_stop(), udp_add(), udp_delete() methods in PJLinkUDP - Add Registry().register_function('udp_broadcast_listen') call for UDP settings update - Add udp_listen_add(), udp_listen_delete() methods to ProjectorManager - pep8 cleanup in tests/functional/openlp_core/common/test_i18n.py - pep8 cleanup in openlp/core/lib/__init__.py -- Your team OpenLP Core is requested to review the proposed merge of lp:~alisonken1/openlp/pjlink2-t into lp:openlp. === modified file 'openlp/core/common/__init__.py' --- openlp/core/common/__init__.py 2018-08-03 22:32:32 + +++ openlp/core/common/__init__.py 2018-10-13 12:21:32 + @@ -60,7 +60,6 @@ :returns: Dict of interfaces """ -# Get the local IPv4 active address(es) that are NOT localhost (lo or '127.0.0.1') log.debug('Getting local IPv4 interface(es) information') my_ip4 = {} for iface in QNetworkInterface.allInterfaces(): @@ -70,8 +69,6 @@ log.debug('Checking address(es) protocol') for address in iface.addressEntries(): ip = address.ip() -# NOTE: Next line will skip if interface is localhost - keep for now until we decide about it later -# if (ip.protocol() == QAbstractSocket.IPv4Protocol) and (ip != QHostAddress.LocalHost): log.debug('Checking for protocol == IPv4Protocol') if ip.protocol() == QAbstractSocket.IPv4Protocol: log.debug('Getting interface information') @@ -83,12 +80,13 @@ ip.toIPv4Address()).toString() } log.debug('Adding {iface} to active list'.format(iface=iface.name())) +if len(my_ip4) == 0: +log.warning('No active IPv4 network interfaces detected') +return my_ip4 if 'localhost' in my_ip4: log.debug('Renaming windows localhost to lo') my_ip4['lo'] = my_ip4['localhost'] my_ip4.pop('localhost') -if len(my_ip4) == 0: -log.warning('No active IPv4 network interfaces detected') if len(my_ip4) == 1: if 'lo' in my_ip4: # No active interfaces - so leave localhost in there === modified file 'openlp/core/common/settings.py' --- openlp/core/common/settings.py 2018-06-07 17:44:35 + +++ openlp/core/common/settings.py 2018-10-13 12:21:32 + @@ -217,7 +217,8 @@ 'projector/last directory export': None, 'projector/poll time': 20, # PJLink timeout is 30 seconds 'projector/socket timeout': 5, # 5 second socket timeout -'projector/source dialog type': 0 # Source select dialog box type +'projector/source dialog type': 0, # Source select dialog box type +'projector/udp broadcast listen': False # Enable/disable listening for PJLink 2 UDP broadcast packets } __file_path__ = '' # Settings upgrades prior to 3.0 === modified file 'openlp/core/lib/__init__.py' --- openlp/core/lib/__init__.py 2018-08-25 14:08:19 + +++ openlp/core/lib/__init__.py 2018-10-13 12:21:32 + @@ -609,4 +609,4 @@
[Openlp-core] Linux Test Results: Passed
Linux tests passed! -- https://code.launchpad.net/~alisonken1/openlp/pjlink2-t/+merge/356677 Your team OpenLP Core is requested to review the proposed merge of lp:~alisonken1/openlp/pjlink2-t 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] Linting: Passed
Linting passed! -- https://code.launchpad.net/~alisonken1/openlp/pjlink2-t/+merge/356677 Your team OpenLP Core is requested to review the proposed merge of lp:~alisonken1/openlp/pjlink2-t 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:~alisonken1/openlp/pjlink2-t into lp:openlp
Review: Needs Fixing There should be a better way than adding and removing functions from the registry. -- https://code.launchpad.net/~alisonken1/openlp/pjlink2-t/+merge/356677 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:~alisonken1/openlp/pjlink2-t into lp:openlp
I spent some time trying to work with signals, but since signals have to be bound to be used, trying to get a signal connected from the projector code to the settings tab instance was convoluted and not as clean as the registry. The other consideration is how often will projector instances be added/deleted once the system is set up and running. The only case where I could think of might be a portable setting but once set up should not be changing during service. For normal use at a church, I haven't made any changes to projector manager since hardware typically does not change unless building gets a hardware makeover. Any suggestions would be appreciated. -- https://code.launchpad.net/~alisonken1/openlp/pjlink2-t/+merge/356677 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
Review: Needs Information Which platforms have you tested this on? If I understand correctly the changes would effect both Linux, Windows and Mac OS. -- 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