Projects
Kolab:16
pykolab
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 36
View file
pykolab.spec
Changed
@@ -33,7 +33,7 @@ Summary: Kolab Groupware Solution Name: pykolab -Version: 0.8.11 +Version: 0.8.12 Release: 1%{?dist} License: GPLv3+ Group: Applications/System @@ -42,10 +42,6 @@ Source0: pykolab-%{version}.tar.gz Source1: pykolab.logrotate -Patch0001: 0001-No-more-manticore.patch -Patch0002: 0002-Fix-syntax-error.patch -Patch0003: 0003-Fix-unicode-in-roundcube-config-templates.patch - BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root BuildArch: noarch @@ -230,10 +226,6 @@ %prep %setup -q -%patch0001 -p1 -%patch0002 -p1 -%patch0003 -p1 - %build autoreconf -v || automake --add-missing && autoreconf -v %configure @@ -569,6 +561,9 @@ %attr(0700,%{kolab_user},%{kolab_group}) %dir %{_var}/spool/pykolab/wallace %changelog +* Tue Jun 4 2019 Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com> - 0.8.12-1 +- Release of version 0.8.12 + * Tue May 21 2019 Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com> - 0.8.11-1 - Release of version 0.8.11
View file
0001-No-more-manticore.patch
Deleted
@@ -1,25 +0,0 @@ -From cd170966b9098e34ddcb1e0b3e12ecb3350b5ff9 Mon Sep 17 00:00:00 2001 -From: "Jeroen van Meeuwen (Kolab Systems)" <vanmeeuwen@kolabsys.com> -Date: Fri, 17 May 2019 10:46:11 +0200 -Subject: [PATCH 1/3] No more manticore - ---- - share/templates/roundcubemail/config.inc.php.tpl | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/share/templates/roundcubemail/config.inc.php.tpl b/share/templates/roundcubemail/config.inc.php.tpl -index 5e80898..888478e 100644 ---- a/share/templates/roundcubemail/config.inc.php.tpl -+++ b/share/templates/roundcubemail/config.inc.php.tpl -@@ -244,8 +244,6 @@ - 'ssl_verify_peer' => false, - ); - -- \$config['fileapi_manticore'] = 'http://' . \$_SERVER['HTTP_HOST'] . ':8080'; -- - @include('/etc/roundcubemail/kolab_syncroton.inc.php'); - - ?> --- -2.21.0 -
View file
0002-Fix-syntax-error.patch
Deleted
@@ -1,25 +0,0 @@ -From 92abbdb81676e7dde541bbaa915c5d752765a3c1 Mon Sep 17 00:00:00 2001 -From: "Jeroen van Meeuwen (Kolab Systems)" <vanmeeuwen@kolabsys.com> -Date: Mon, 20 May 2019 11:23:21 +0200 -Subject: [PATCH 2/3] Fix syntax error - ---- - bin/kolab_smtp_access_policy.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/bin/kolab_smtp_access_policy.py b/bin/kolab_smtp_access_policy.py -index 21169f8..d2766de 100755 ---- a/bin/kolab_smtp_access_policy.py -+++ b/bin/kolab_smtp_access_policy.py -@@ -1284,7 +1284,7 @@ def cache_insert( - sasl_sender='', - data=None): - -- if cache is notTrue: -+ if cache is not True: - return [] - - log.debug( --- -2.21.0 -
View file
0003-Fix-unicode-in-roundcube-config-templates.patch
Deleted
@@ -1,496 +0,0 @@ -From 4db1d5e189b8b07f06092acbef623a3a0c2968ee Mon Sep 17 00:00:00 2001 -From: "Jeroen van Meeuwen (Kolab Systems)" <vanmeeuwen@kolabsys.com> -Date: Tue, 21 May 2019 17:36:34 +0200 -Subject: [PATCH 3/3] Fix unicode in roundcube config templates - ---- - pykolab/setup/setup_roundcube.py | 256 +++++++++++++++++-------------- - pykolab/translate.py | 21 ++- - 2 files changed, 159 insertions(+), 118 deletions(-) - -diff --git a/pykolab/setup/setup_roundcube.py b/pykolab/setup/setup_roundcube.py -index 9b6d664..b03a90f 100644 ---- a/pykolab/setup/setup_roundcube.py -+++ b/pykolab/setup/setup_roundcube.py -@@ -17,7 +17,7 @@ - # along with this program. If not, see <http://www.gnu.org/licenses/>. - # - --from Cheetah.Template import Template -+import codecs - import grp - import hashlib - import os -@@ -27,6 +27,8 @@ import subprocess - import sys - import time - -+from Cheetah.Template import Template -+ - import components - - import pykolab -@@ -35,66 +37,70 @@ from pykolab import utils - from pykolab.constants import * - from pykolab.translate import _ - -+# pylint: disable=invalid-name - log = pykolab.getLogger('pykolab.setup') - conf = pykolab.getConf() - -+ - def __init__(): -- components.register('roundcube', execute, description=description(), after=['mysql','ldap']) -+ components.register('roundcube', execute, description=description(), after=['mysql', 'ldap']) -+ - - def description(): - return _("Setup Roundcube.") - -+ - def execute(*args, **kw): - print >> sys.stderr, utils.multiline_message( -- _(""" -- Please supply a password for the MySQL user 'roundcube'. -- This password will be used by the Roundcube webmail -- interface. -- """) -- ) -+ """ -+ Please supply a password for the MySQL user 'roundcube'. -+ This password will be used by the Roundcube webmail -+ interface. -+ """ -+ ) - - mysql_roundcube_password = utils.ask_question( -- _("MySQL roundcube password"), -- default=utils.generate_password(), -- password=True, -- confirm=True -- ) -+ "MySQL roundcube password", -+ default=utils.generate_password(), -+ password=True, -+ confirm=True -+ ) - - conf.mysql_roundcube_password = mysql_roundcube_password - - rc_settings = { -- 'des_key': re.sub( -- r'[^a-zA-Z0-9]', -- "", -- "%s%s" % ( -- hashlib.md5("%s" % random.random()).digest().encode("base64"), -- hashlib.md5("%s" % random.random()).digest().encode("base64") -- ) -- )[:24], -- -- 'imap_admin_login': conf.get('cyrus-imap', 'admin_login'), -- 'imap_admin_password': conf.get('cyrus-imap', 'admin_password'), -- 'ldap_base_dn': conf.get('ldap', 'base_dn'), -- 'ldap_group_base_dn': conf.get('ldap', 'group_base_dn'), -- 'ldap_group_filter': conf.get('ldap', 'group_filter'), -- 'ldap_ldap_uri': conf.get('ldap', 'ldap_uri'), -- 'ldap_resource_base_dn': conf.get('ldap', 'resource_base_dn'), -- 'ldap_resource_filter': conf.get('ldap', 'resource_filter'), -- 'ldap_service_bind_dn': conf.get('ldap', 'service_bind_dn'), -- 'ldap_service_bind_pw': conf.get('ldap', 'service_bind_pw'), -- 'ldap_user_base_dn': conf.get('ldap', 'user_base_dn'), -- 'ldap_user_filter': conf.get('ldap', 'user_filter'), -- 'primary_domain': conf.get('kolab','primary_domain'), -- 'mysql_uri': 'mysqli://roundcube:%s@localhost/roundcube' % (mysql_roundcube_password), -- 'conf': conf -- } -+ 'des_key': re.sub( -+ r'[^a-zA-Z0-9]', -+ "", -+ "%s%s" % ( -+ hashlib.md5("%s" % random.random()).digest().encode("base64"), -+ hashlib.md5("%s" % random.random()).digest().encode("base64") -+ ) -+ )[:24], -+ -+ 'imap_admin_login': conf.get('cyrus-imap', 'admin_login'), -+ 'imap_admin_password': conf.get('cyrus-imap', 'admin_password'), -+ 'ldap_base_dn': conf.get('ldap', 'base_dn'), -+ 'ldap_group_base_dn': conf.get('ldap', 'group_base_dn'), -+ 'ldap_group_filter': conf.get('ldap', 'group_filter'), -+ 'ldap_ldap_uri': conf.get('ldap', 'ldap_uri'), -+ 'ldap_resource_base_dn': conf.get('ldap', 'resource_base_dn'), -+ 'ldap_resource_filter': conf.get('ldap', 'resource_filter'), -+ 'ldap_service_bind_dn': conf.get('ldap', 'service_bind_dn'), -+ 'ldap_service_bind_pw': conf.get('ldap', 'service_bind_pw'), -+ 'ldap_user_base_dn': conf.get('ldap', 'user_base_dn'), -+ 'ldap_user_filter': conf.get('ldap', 'user_filter'), -+ 'primary_domain': conf.get('kolab', 'primary_domain'), -+ 'mysql_uri': 'mysqli://roundcube:%s@localhost/roundcube' % (mysql_roundcube_password), -+ 'conf': conf -+ } - - rc_paths = [ -- "/usr/share/roundcubemail/", -- "/usr/share/roundcube/", -- "/srv/www/roundcubemail/", -- "/var/www/roundcubemail/" -- ] -+ "/usr/share/roundcubemail/", -+ "/usr/share/roundcube/", -+ "/srv/www/roundcubemail/", -+ "/var/www/roundcubemail/" -+ ] - - rcpath = '' - for rc_path in rc_paths: -@@ -103,7 +109,7 @@ def execute(*args, **kw): - break - - if not os.path.isdir(rcpath): -- log.error(_("Roundcube installation path not found.")) -+ log.error("Roundcube installation path not found.") - return - - if os.access(rcpath + 'skins/enterprise/', os.R_OK): -@@ -114,22 +120,22 @@ def execute(*args, **kw): - rc_settings['skin'] = 'larry' - - want_files = [ -- 'acl.inc.php', -- 'calendar.inc.php', -- 'config.inc.php', -- 'kolab_addressbook.inc.php', -- 'kolab_auth.inc.php', -- 'kolab_delegation.inc.php', -- 'kolab_files.inc.php', -- 'kolab_folders.inc.php', -- 'libkolab.inc.php', -- 'managesieve.inc.php', -- 'owncloud.inc.php', -- 'password.inc.php', -- 'recipient_to_contact.inc.php', -- 'terms.html', -- 'terms.inc.php' -- ] -+ 'acl.inc.php', -+ 'calendar.inc.php', -+ 'config.inc.php', -+ 'kolab_addressbook.inc.php', -+ 'kolab_auth.inc.php', -+ 'kolab_delegation.inc.php', -+ 'kolab_files.inc.php', -+ 'kolab_folders.inc.php', -+ 'libkolab.inc.php', -+ 'managesieve.inc.php', -+ 'owncloud.inc.php', -+ 'password.inc.php', -+ 'recipient_to_contact.inc.php', -+ 'terms.html', -+ 'terms.inc.php' -+ ] - - for want_file in want_files: - template_file = None -@@ -137,71 +143,77 @@ def execute(*args, **kw): - template_file = '/etc/kolab/templates/roundcubemail/%s.tpl' % (want_file) - elif os.path.isfile('/usr/share/kolab/templates/roundcubemail/%s.tpl' % (want_file)): - template_file = '/usr/share/kolab/templates/roundcubemail/%s.tpl' % (want_file) -- elif os.path.isfile(os.path.abspath(os.path.join(__file__, '..', '..', '..', 'share', 'templates', 'roundcubemail', '%s.tpl' % (want_file)))): -- template_file = os.path.abspath(os.path.join(__file__, '..', '..', '..', 'share', 'templates', 'roundcubemail', '%s.tpl' % (want_file))) - -- if not template_file == None: -- log.debug(_("Using template file %r") % (template_file), level=8) -- fp = open(template_file, 'r') -- template_definition = fp.read() -- fp.close() -+ if template_file is not None: -+ # pylint: disable=logging-not-lazy -+ log.debug("Using template file %r" % (template_file), level=8) -+ filep = codecs.open(template_file, 'r', encoding='utf-8') -+ template_definition = filep.read() -+ filep.close() - - t = Template(template_definition, searchList=[rc_settings]) -+ # pylint: disable=logging-not-lazy - log.debug( -- _("Successfully compiled template %r, writing out to %r") % (template_file, want_file), -- level=8 -- ) -+ "Successfully compiled template %r, writing out to %r" % ( -+ template_file, -+ want_file -+ ), -+ level=8 -+ ) - -- fp = None -+ filep = None - if os.path.isdir('/etc/roundcubemail'): -- fp = open('/etc/roundcubemail/%s' % (want_file), 'w') -+ filep = codecs.open('/etc/roundcubemail/%s' % (want_file), 'w', encoding='utf-8') - elif os.path.isdir('/etc/roundcube'): -- fp = open('/etc/roundcube/%s' % (want_file), 'w') -+ filep = codecs.open('/etc/roundcube/%s' % (want_file), 'w', encoding='utf-8') - -- if not fp == None: -- fp.write(t.__str__()) -- fp.close() -+ if filep is not None: -+ filep.write(t.respond()) -+ filep.close() - - schema_files = [] -+ -+ # pylint: disable=too-many-nested-blocks - for root, directories, filenames in os.walk('/usr/share/doc/'): - directories.sort() - for directory in directories: - if directory.startswith("roundcubemail"): -- for nested_root, nested_directories, nested_filenames in os.walk(os.path.join(root, directory)): -- for filename in nested_filenames: -+ for _root, _directories, _filenames in os.walk(os.path.join(root, directory)): -+ for filename in _filenames: - if filename.startswith('mysql.initial') and filename.endswith('.sql'): -- schema_filepath = os.path.join(nested_root,filename) -- if not schema_filepath in schema_files: -+ schema_filepath = os.path.join(_root, filename) -+ if schema_filepath not in schema_files: - schema_files.append(schema_filepath) - -- if len(schema_files) > 0: -+ if schema_files: - break -- if len(schema_files) > 0: -+ -+ if schema_files: - break - - for root, directories, filenames in os.walk(rcpath + 'plugins/calendar/drivers/kolab/'): - for filename in filenames: - if filename.startswith('mysql') and filename.endswith('.sql'): -- schema_filepath = os.path.join(root,filename) -- if not schema_filepath in schema_files: -+ schema_filepath = os.path.join(root, filename) -+ if schema_filepath not in schema_files: - schema_files.append(schema_filepath) - - for root, directories, filenames in os.walk(rcpath + 'plugins/libkolab/'): - for filename in filenames: - if filename.startswith('mysql') and filename.endswith('.sql'): -- schema_filepath = os.path.join(root,filename) -- if not schema_filepath in schema_files: -+ schema_filepath = os.path.join(root, filename) -+ if schema_filepath not in schema_files: - schema_files.append(schema_filepath) - - for root, directories, filenames in os.walk('/usr/share/doc/'): - directories.sort() - for directory in directories: - if directory.startswith("chwala"): -- for nested_root, nested_directories, nested_filenames in os.walk(os.path.join(root, directory)): -- for filename in nested_filenames: -+ for _root, _directories, _filenames in os.walk(os.path.join(root, directory)): -+ for filename in _filenames: - if filename.startswith('mysql.initial') and filename.endswith('.sql'): -- schema_filepath = os.path.join(nested_root,filename) -- if not schema_filepath in schema_files: -+ schema_filepath = os.path.join(_root, filename) -+ if schema_filepath not in schema_files: - schema_files.append(schema_filepath) - - if len(schema_files) > 0: -@@ -210,14 +222,9 @@ def execute(*args, **kw): - break - - if not os.path.isfile('/tmp/kolab-setup-my.cnf'): -- utils.multiline_message( -- """Please supply the MySQL root password""" -- ) -+ utils.multiline_message("""Please supply the MySQL root password""") - -- mysql_root_password = utils.ask_question( -- _("MySQL root password"), -- password=True -- ) -+ mysql_root_password = utils.ask_question("MySQL root password", password=True) - - data = """ - [mysql] -@@ -226,7 +233,7 @@ password='%s' - """ % (mysql_root_password) - - fp = open('/tmp/kolab-setup-my.cnf', 'w') -- os.chmod('/tmp/kolab-setup-my.cnf', 0600) -+ os.chmod('/tmp/kolab-setup-my.cnf', 600) - fp.write(data) - fp.close() - -@@ -235,14 +242,30 @@ password='%s' - p1.stdout.close() - p2.communicate() - -- p1 = subprocess.Popen(['echo', 'GRANT ALL PRIVILEGES ON roundcube.* TO \'roundcube\'@\'localhost\' IDENTIFIED BY \'%s\';' % (mysql_roundcube_password)], stdout=subprocess.PIPE) -+ p1 = subprocess.Popen( -+ [ -+ 'echo', -+ 'GRANT ALL PRIVILEGES ON roundcube.* TO \'roundcube\'@\'localhost\' IDENTIFIED BY \'%s\';' % ( -+ mysql_roundcube_password -+ ) -+ ], -+ stdout=subprocess.PIPE -+ ) - p2 = subprocess.Popen(['mysql', '--defaults-file=/tmp/kolab-setup-my.cnf'], stdin=p1.stdout) - p1.stdout.close() - p2.communicate() - - for schema_file in schema_files: - p1 = subprocess.Popen(['cat', schema_file], stdout=subprocess.PIPE) -- p2 = subprocess.Popen(['mysql', '--defaults-file=/tmp/kolab-setup-my.cnf', 'roundcube'], stdin=p1.stdout) -+ p2 = subprocess.Popen( -+ [ -+ 'mysql', -+ '--defaults-file=/tmp/kolab-setup-my.cnf', -+ 'roundcube' -+ ], -+ stdin=p1.stdout -+ ) -+ - p1.stdout.close() - p2.communicate() - -@@ -260,18 +283,21 @@ password='%s' - elif os.path.isdir('/etc/roundcube/'): - rccpath = "/etc/roundcube" - else: -- log.warning(_("Cannot find the configuration directory for roundcube.")) -+ log.warning("Cannot find the configuration directory for roundcube.") - rccpath = None - - root_uid = 0 - - webserver_gid = None - -- for webserver_group in [ 'apache', 'www-data', 'www' ]: -+ for webserver_group in ['apache', 'www-data', 'www']: - try: -- (a,b,webserver_gid,c) = grp.getgrnam(webserver_group) -+ # pylint: disable=unused-variable -+ (a, b, webserver_gid, d) = grp.getgrnam(webserver_group) - break -- except Exception, errmsg: -+ -+ # pylint: disable=broad-except -+ except Exception: - pass - - if webserver_gid is not None: -@@ -280,11 +306,13 @@ password='%s' - for filename in filenames: - try: - os.chown( -- os.path.join(root, filename), -- root_uid, -- webserver_gid -- ) -- except Exception, errmsg: -+ os.path.join(root, filename), -+ root_uid, -+ webserver_gid -+ ) -+ -+ # pylint: disable=broad-except -+ except Exception: - pass - - httpservice = 'httpd.service' -@@ -300,9 +328,9 @@ password='%s' - elif os.path.isfile('/sbin/service'): - subprocess.call(['/sbin/service', 'httpd', 'restart']) - elif os.path.isfile('/usr/sbin/service'): -- subprocess.call(['/usr/sbin/service','apache2','restart']) -+ subprocess.call(['/usr/sbin/service', 'apache2', 'restart']) - else: -- log.error(_("Could not start the webserver server service.")) -+ log.error("Could not start the webserver server service.") - - if os.path.isfile('/bin/systemctl'): - subprocess.call(['/bin/systemctl', 'enable', httpservice]) -@@ -311,6 +339,6 @@ password='%s' - elif os.path.isfile('/usr/sbin/update-rc.d'): - subprocess.call(['/usr/sbin/update-rc.d', 'apache2', 'defaults']) - else: -- log.error(_("Could not configure to start on boot, the " + \ -- "webserver server service.")) -- -+ log.error( -+ "Could not configure to start on boot, the webserver server service." -+ ) -diff --git a/pykolab/translate.py b/pykolab/translate.py -index 7bac219..d2eb0ca 100644 ---- a/pykolab/translate.py -+++ b/pykolab/translate.py -@@ -25,19 +25,24 @@ except ImportError: - import gettext - import os - --N_ = lambda x: x -+N_ = lambda x: x # noqa: E731 - - # This function as such may, at times, cause tracebacks. --#_ = lambda x: current.lgettext(x) -+# _ = lambda x: current.lgettext(x) - -+# pylint: disable=invalid-name - current = gettext.translation(domain, fallback=True) - -+ - def _(x): - try: - return current.lgettext(x) -- except Exception, errmsg: -+ -+ # pylint: disable=broad-except -+ except Exception: - return x - -+ - def getDefaultLangs(): - languages = [] - for envar in ('LANGUAGE', 'LC_ALL', 'LC_MESSAGES', 'LANG'): -@@ -51,24 +56,32 @@ def getDefaultLangs(): - # now normalize and expand the languages - nelangs = [] - for lang in languages: -+ -+ # pylint: disable=protected-access - for nelang in gettext._expand_lang(lang): - if nelang not in nelangs: - nelangs.append(nelang) - - return nelangs - -+ - def setUserLanguage(lang): -+ # pylint: disable=global-statement - global current - - if not len(lang.split('.')) > 1 and not lang.endswith('.UTF-8'): - lang = "%s.UTF-8" % (lang) - - langs = [] -+ -+ # pylint: disable=protected-access - for l in gettext._expand_lang(lang): - if l not in langs: - langs.append(l) - - try: - current = gettext.translation(domain, languages=langs, fallback=True) -- except: -+ -+ # pylint: disable=broad-except -+ except Exception: - pass --- -2.21.0 -
View file
debian.changelog
Changed
@@ -1,3 +1,9 @@ +pykolab (0.8.12-0~kolab1) unstable; urgency=low + + * Release of version 0.8.12 + + -- Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com> Tue, 4 Jun 2019 01:49:00 +0100 + pykolab (0.8.11-0~kolab5) unstable; urgency=low * Fix unicode templates for roundcube
View file
debian.control
Changed
@@ -36,7 +36,7 @@ libpython2.7 | libpython2.6, python, python-icalendar, - python-pymysql | python-mysqldb, + python-mysqldb, python-kolab, python-ldap, python-pyasn1,
View file
debian.series
Changed
@@ -1,4 +1,1 @@ cyrus-imapd.conf-cert-paths.patch -p1 -0001-No-more-manticore.patch -p1 -0002-Fix-syntax-error.patch -p1 -0003-Fix-unicode-in-roundcube-config-templates.patch -p1
View file
pykolab-0.8.11.tar.gz/bin/kolab_smtp_access_policy.py -> pykolab-0.8.12.tar.gz/bin/kolab_smtp_access_policy.py
Changed
@@ -95,6 +95,7 @@ Column('sasl_sender', String(64)), Column('created', Integer, nullable=False), Column('data', PickleType, nullable=True), + mysql_charset='utf8', ) Index( @@ -139,6 +140,7 @@ Column('recipient', String(254), nullable=False), Column('date', Date, nullable=False), Column('count', Integer, nullable=False), + mysql_charset='utf8', ) Index( @@ -1284,7 +1286,7 @@ sasl_sender='', data=None): - if cache is notTrue: + if cache is not True: return [] log.debug(
View file
pykolab-0.8.11.tar.gz/configure.ac -> pykolab-0.8.12.tar.gz/configure.ac
Changed
@@ -1,4 +1,4 @@ -AC_INIT([pykolab], 0.8.11) +AC_INIT([pykolab], 0.8.12) AC_SUBST([RELEASE], 1) AC_CONFIG_SRCDIR(pykolab/constants.py.in)
View file
pykolab-0.8.11.tar.gz/pykolab/auth/ldap/__init__.py -> pykolab-0.8.12.tar.gz/pykolab/auth/ldap/__init__.py
Changed
@@ -383,8 +383,6 @@ self._disconnect() return False - auth_cache.set_entry(_filter, entry_dn) - except ldap.NO_SUCH_OBJECT, errmsg: log.debug( _("Error occured, there is no such object: %r") % (
View file
pykolab-0.8.11.tar.gz/pykolab/cli/cmd_sync.py -> pykolab-0.8.12.tar.gz/pykolab/cli/cmd_sync.py
Changed
@@ -124,7 +124,12 @@ entry = utils.normalize(kw) - if not entry.has_key('mail'): + mailbox_attribute = conf.get('cyrus-sasl', 'result_attribute') + if mailbox_attribute == None: + mailbox_attribute = 'mail' + + + if mailbox_attribute not in entry: return if not 'kolabinetorgperson' in entry['objectclass']: @@ -133,13 +138,13 @@ imap = IMAP() imap.connect() - if not imap.user_mailbox_exists(entry['mail']): + if not imap.user_mailbox_exists(entry[mailbox_attribute]): if entry.has_key('mailhost'): server = entry['mailhost'] else: server = None - imap.user_mailbox_create(entry['mail'], server=server) + imap.user_mailbox_create(entry[mailbox_attribute], server=server) imap.disconnect()
View file
pykolab-0.8.11.tar.gz/pykolab/setup/setup_mta.py -> pykolab-0.8.12.tar.gz/pykolab/setup/setup_mta.py
Changed
@@ -235,6 +235,13 @@ }, } + if not os.path.isfile('/etc/postfix/main.cf'): + if os.path.isfile('/usr/share/postfix/main.cf.debian'): + shutil.copy( + '/usr/share/postfix/main.cf.debian', + '/etc/postfix/main.cf' + ) + if not os.path.isdir('/etc/postfix/ldap'): os.mkdir('/etc/postfix/ldap/', 0770) @@ -277,13 +284,9 @@ if os.path.isfile('/etc/pki/tls/private/localhost.pem'): postfix_main_settings['smtpd_tls_cert_file'] = "/etc/pki/tls/private/localhost.pem" postfix_main_settings['smtpd_tls_key_file'] = "/etc/pki/tls/private/localhost.pem" - - if not os.path.isfile('/etc/postfix/main.cf'): - if os.path.isfile('/usr/share/postfix/main.cf.debian'): - shutil.copy( - '/usr/share/postfix/main.cf.debian', - '/etc/postfix/main.cf' - ) + elif os.path.isfile('/etc/ssl/private/cyrus-imapd.pem'): # Debian 9 + postfix_main_settings['smtpd_tls_cert_file'] = "/etc/ssl/private/cyrus-imapd.pem" + postfix_main_settings['smtpd_tls_key_file'] = "/etc/ssl/private/cyrus-imapd.pem" # Copy header checks files for hc_file in [ 'inbound', 'internal', 'submission' ]:
View file
pykolab-0.8.11.tar.gz/pykolab/setup/setup_roundcube.py -> pykolab-0.8.12.tar.gz/pykolab/setup/setup_roundcube.py
Changed
@@ -17,7 +17,7 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. # -from Cheetah.Template import Template +import codecs import grp import hashlib import os @@ -27,6 +27,8 @@ import sys import time +from Cheetah.Template import Template + import components import pykolab @@ -35,66 +37,70 @@ from pykolab.constants import * from pykolab.translate import _ +# pylint: disable=invalid-name log = pykolab.getLogger('pykolab.setup') conf = pykolab.getConf() + def __init__(): - components.register('roundcube', execute, description=description(), after=['mysql','ldap']) + components.register('roundcube', execute, description=description(), after=['mysql', 'ldap']) + def description(): return _("Setup Roundcube.") + def execute(*args, **kw): print >> sys.stderr, utils.multiline_message( - _(""" - Please supply a password for the MySQL user 'roundcube'. - This password will be used by the Roundcube webmail - interface. - """) - ) + """ + Please supply a password for the MySQL user 'roundcube'. + This password will be used by the Roundcube webmail + interface. + """ + ) mysql_roundcube_password = utils.ask_question( - _("MySQL roundcube password"), - default=utils.generate_password(), - password=True, - confirm=True - ) + "MySQL roundcube password", + default=utils.generate_password(), + password=True, + confirm=True + ) conf.mysql_roundcube_password = mysql_roundcube_password rc_settings = { - 'des_key': re.sub( - r'[^a-zA-Z0-9]', - "", - "%s%s" % ( - hashlib.md5("%s" % random.random()).digest().encode("base64"), - hashlib.md5("%s" % random.random()).digest().encode("base64") - ) - )[:24], - - 'imap_admin_login': conf.get('cyrus-imap', 'admin_login'), - 'imap_admin_password': conf.get('cyrus-imap', 'admin_password'), - 'ldap_base_dn': conf.get('ldap', 'base_dn'), - 'ldap_group_base_dn': conf.get('ldap', 'group_base_dn'), - 'ldap_group_filter': conf.get('ldap', 'group_filter'), - 'ldap_ldap_uri': conf.get('ldap', 'ldap_uri'), - 'ldap_resource_base_dn': conf.get('ldap', 'resource_base_dn'), - 'ldap_resource_filter': conf.get('ldap', 'resource_filter'), - 'ldap_service_bind_dn': conf.get('ldap', 'service_bind_dn'), - 'ldap_service_bind_pw': conf.get('ldap', 'service_bind_pw'), - 'ldap_user_base_dn': conf.get('ldap', 'user_base_dn'), - 'ldap_user_filter': conf.get('ldap', 'user_filter'), - 'primary_domain': conf.get('kolab','primary_domain'), - 'mysql_uri': 'mysqli://roundcube:%s@localhost/roundcube' % (mysql_roundcube_password), - 'conf': conf - } + 'des_key': re.sub( + r'[^a-zA-Z0-9]', + "", + "%s%s" % ( + hashlib.md5("%s" % random.random()).digest().encode("base64"), + hashlib.md5("%s" % random.random()).digest().encode("base64") + ) + )[:24], + + 'imap_admin_login': conf.get('cyrus-imap', 'admin_login'), + 'imap_admin_password': conf.get('cyrus-imap', 'admin_password'), + 'ldap_base_dn': conf.get('ldap', 'base_dn'), + 'ldap_group_base_dn': conf.get('ldap', 'group_base_dn'), + 'ldap_group_filter': conf.get('ldap', 'group_filter'), + 'ldap_ldap_uri': conf.get('ldap', 'ldap_uri'), + 'ldap_resource_base_dn': conf.get('ldap', 'resource_base_dn'), + 'ldap_resource_filter': conf.get('ldap', 'resource_filter'), + 'ldap_service_bind_dn': conf.get('ldap', 'service_bind_dn'), + 'ldap_service_bind_pw': conf.get('ldap', 'service_bind_pw'), + 'ldap_user_base_dn': conf.get('ldap', 'user_base_dn'), + 'ldap_user_filter': conf.get('ldap', 'user_filter'), + 'primary_domain': conf.get('kolab', 'primary_domain'), + 'mysql_uri': 'mysqli://roundcube:%s@localhost/roundcube' % (mysql_roundcube_password), + 'conf': conf + } rc_paths = [ - "/usr/share/roundcubemail/", - "/usr/share/roundcube/", - "/srv/www/roundcubemail/", - "/var/www/roundcubemail/" - ] + "/usr/share/roundcubemail/", + "/usr/share/roundcube/", + "/srv/www/roundcubemail/", + "/var/www/roundcubemail/" + ] rcpath = '' for rc_path in rc_paths: @@ -103,7 +109,7 @@ break if not os.path.isdir(rcpath): - log.error(_("Roundcube installation path not found.")) + log.error("Roundcube installation path not found.") return if os.access(rcpath + 'skins/enterprise/', os.R_OK): @@ -114,22 +120,22 @@ rc_settings['skin'] = 'larry' want_files = [ - 'acl.inc.php', - 'calendar.inc.php', - 'config.inc.php', - 'kolab_addressbook.inc.php', - 'kolab_auth.inc.php', - 'kolab_delegation.inc.php', - 'kolab_files.inc.php', - 'kolab_folders.inc.php', - 'libkolab.inc.php', - 'managesieve.inc.php', - 'owncloud.inc.php', - 'password.inc.php', - 'recipient_to_contact.inc.php', - 'terms.html', - 'terms.inc.php' - ] + 'acl.inc.php', + 'calendar.inc.php', + 'config.inc.php', + 'kolab_addressbook.inc.php', + 'kolab_auth.inc.php', + 'kolab_delegation.inc.php', + 'kolab_files.inc.php', + 'kolab_folders.inc.php', + 'libkolab.inc.php', + 'managesieve.inc.php', + 'owncloud.inc.php', + 'password.inc.php', + 'recipient_to_contact.inc.php', + 'terms.html', + 'terms.inc.php' + ] for want_file in want_files: template_file = None @@ -137,71 +143,77 @@ template_file = '/etc/kolab/templates/roundcubemail/%s.tpl' % (want_file) elif os.path.isfile('/usr/share/kolab/templates/roundcubemail/%s.tpl' % (want_file)): template_file = '/usr/share/kolab/templates/roundcubemail/%s.tpl' % (want_file) - elif os.path.isfile(os.path.abspath(os.path.join(__file__, '..', '..', '..', 'share', 'templates', 'roundcubemail', '%s.tpl' % (want_file)))): - template_file = os.path.abspath(os.path.join(__file__, '..', '..', '..', 'share', 'templates', 'roundcubemail', '%s.tpl' % (want_file))) - if not template_file == None: - log.debug(_("Using template file %r") % (template_file), level=8) - fp = open(template_file, 'r') - template_definition = fp.read() - fp.close() + if template_file is not None: + # pylint: disable=logging-not-lazy + log.debug("Using template file %r" % (template_file), level=8) + filep = codecs.open(template_file, 'r', encoding='utf-8') + template_definition = filep.read() + filep.close() t = Template(template_definition, searchList=[rc_settings]) + # pylint: disable=logging-not-lazy log.debug( - _("Successfully compiled template %r, writing out to %r") % (template_file, want_file), - level=8 - ) + "Successfully compiled template %r, writing out to %r" % ( + template_file, + want_file + ), + level=8 + ) - fp = None + filep = None if os.path.isdir('/etc/roundcubemail'): - fp = open('/etc/roundcubemail/%s' % (want_file), 'w') + filep = codecs.open('/etc/roundcubemail/%s' % (want_file), 'w', encoding='utf-8') elif os.path.isdir('/etc/roundcube'): - fp = open('/etc/roundcube/%s' % (want_file), 'w') + filep = codecs.open('/etc/roundcube/%s' % (want_file), 'w', encoding='utf-8') - if not fp == None: - fp.write(t.__str__()) - fp.close() + if filep is not None: + filep.write(t.respond()) + filep.close() schema_files = [] + + # pylint: disable=too-many-nested-blocks for root, directories, filenames in os.walk('/usr/share/doc/'): directories.sort() for directory in directories: if directory.startswith("roundcubemail"): - for nested_root, nested_directories, nested_filenames in os.walk(os.path.join(root, directory)): - for filename in nested_filenames: + for _root, _directories, _filenames in os.walk(os.path.join(root, directory)): + for filename in _filenames: if filename.startswith('mysql.initial') and filename.endswith('.sql'): - schema_filepath = os.path.join(nested_root,filename) - if not schema_filepath in schema_files: + schema_filepath = os.path.join(_root, filename) + if schema_filepath not in schema_files: schema_files.append(schema_filepath) - if len(schema_files) > 0: + if schema_files: break - if len(schema_files) > 0: + + if schema_files: break for root, directories, filenames in os.walk(rcpath + 'plugins/calendar/drivers/kolab/'): for filename in filenames: if filename.startswith('mysql') and filename.endswith('.sql'): - schema_filepath = os.path.join(root,filename) - if not schema_filepath in schema_files: + schema_filepath = os.path.join(root, filename) + if schema_filepath not in schema_files: schema_files.append(schema_filepath) for root, directories, filenames in os.walk(rcpath + 'plugins/libkolab/'): for filename in filenames: if filename.startswith('mysql') and filename.endswith('.sql'): - schema_filepath = os.path.join(root,filename) - if not schema_filepath in schema_files: + schema_filepath = os.path.join(root, filename) + if schema_filepath not in schema_files: schema_files.append(schema_filepath) for root, directories, filenames in os.walk('/usr/share/doc/'): directories.sort() for directory in directories: if directory.startswith("chwala"): - for nested_root, nested_directories, nested_filenames in os.walk(os.path.join(root, directory)): - for filename in nested_filenames: + for _root, _directories, _filenames in os.walk(os.path.join(root, directory)): + for filename in _filenames: if filename.startswith('mysql.initial') and filename.endswith('.sql'): - schema_filepath = os.path.join(nested_root,filename) - if not schema_filepath in schema_files: + schema_filepath = os.path.join(_root, filename) + if schema_filepath not in schema_files: schema_files.append(schema_filepath) if len(schema_files) > 0: @@ -210,14 +222,9 @@ break if not os.path.isfile('/tmp/kolab-setup-my.cnf'): - utils.multiline_message( - """Please supply the MySQL root password""" - ) + utils.multiline_message("""Please supply the MySQL root password""") - mysql_root_password = utils.ask_question( - _("MySQL root password"), - password=True - ) + mysql_root_password = utils.ask_question("MySQL root password", password=True) data = """ [mysql] @@ -226,7 +233,7 @@ """ % (mysql_root_password) fp = open('/tmp/kolab-setup-my.cnf', 'w') - os.chmod('/tmp/kolab-setup-my.cnf', 0600) + os.chmod('/tmp/kolab-setup-my.cnf', 600) fp.write(data) fp.close() @@ -235,14 +242,30 @@ p1.stdout.close() p2.communicate() - p1 = subprocess.Popen(['echo', 'GRANT ALL PRIVILEGES ON roundcube.* TO \'roundcube\'@\'localhost\' IDENTIFIED BY \'%s\';' % (mysql_roundcube_password)], stdout=subprocess.PIPE) + p1 = subprocess.Popen( + [ + 'echo', + 'GRANT ALL PRIVILEGES ON roundcube.* TO \'roundcube\'@\'localhost\' IDENTIFIED BY \'%s\';' % ( + mysql_roundcube_password + ) + ], + stdout=subprocess.PIPE + ) p2 = subprocess.Popen(['mysql', '--defaults-file=/tmp/kolab-setup-my.cnf'], stdin=p1.stdout) p1.stdout.close() p2.communicate() for schema_file in schema_files: p1 = subprocess.Popen(['cat', schema_file], stdout=subprocess.PIPE) - p2 = subprocess.Popen(['mysql', '--defaults-file=/tmp/kolab-setup-my.cnf', 'roundcube'], stdin=p1.stdout) + p2 = subprocess.Popen( + [ + 'mysql', + '--defaults-file=/tmp/kolab-setup-my.cnf', + 'roundcube' + ], + stdin=p1.stdout + ) + p1.stdout.close() p2.communicate() @@ -260,18 +283,21 @@ elif os.path.isdir('/etc/roundcube/'): rccpath = "/etc/roundcube" else: - log.warning(_("Cannot find the configuration directory for roundcube.")) + log.warning("Cannot find the configuration directory for roundcube.") rccpath = None root_uid = 0 webserver_gid = None - for webserver_group in [ 'apache', 'www-data', 'www' ]: + for webserver_group in ['apache', 'www-data', 'www']: try: - (a,b,webserver_gid,c) = grp.getgrnam(webserver_group) + # pylint: disable=unused-variable + (a, b, webserver_gid, d) = grp.getgrnam(webserver_group) break - except Exception, errmsg: + + # pylint: disable=broad-except + except Exception: pass if webserver_gid is not None: @@ -280,11 +306,13 @@ for filename in filenames: try: os.chown( - os.path.join(root, filename), - root_uid, - webserver_gid - ) - except Exception, errmsg: + os.path.join(root, filename), + root_uid, + webserver_gid + ) + + # pylint: disable=broad-except + except Exception: pass httpservice = 'httpd.service' @@ -292,6 +320,9 @@ if os.path.isfile('/usr/lib/systemd/system/apache2.service'): httpservice = 'apache2.service' + if os.path.isfile('/lib/systemd/system/apache2.service'): # Debian 9 + httpservice = 'apache2.service' + if os.path.isdir('/lib/systemd/system/apache2.service.d'): httpservice = 'apache2.service' @@ -300,9 +331,9 @@ elif os.path.isfile('/sbin/service'): subprocess.call(['/sbin/service', 'httpd', 'restart']) elif os.path.isfile('/usr/sbin/service'): - subprocess.call(['/usr/sbin/service','apache2','restart']) + subprocess.call(['/usr/sbin/service', 'apache2', 'restart']) else: - log.error(_("Could not start the webserver server service.")) + log.error("Could not start the webserver server service.") if os.path.isfile('/bin/systemctl'): subprocess.call(['/bin/systemctl', 'enable', httpservice]) @@ -311,6 +342,6 @@ elif os.path.isfile('/usr/sbin/update-rc.d'): subprocess.call(['/usr/sbin/update-rc.d', 'apache2', 'defaults']) else: - log.error(_("Could not configure to start on boot, the " + \ - "webserver server service.")) - + log.error( + "Could not configure to start on boot, the webserver server service." + )
View file
pykolab-0.8.11.tar.gz/pykolab/setup/setup_syncroton.py -> pykolab-0.8.12.tar.gz/pykolab/setup/setup_syncroton.py
Changed
@@ -91,6 +91,9 @@ if os.path.isfile('/usr/lib/systemd/system/apache2.service'): httpservice = 'apache2.service' + if os.path.isfile('/lib/systemd/system/apache2.service'): # Debian 9 + httpservice = 'apache2.service' + if os.path.isdir('/lib/systemd/system/apache2.service.d'): httpservice = 'apache2.service'
View file
pykolab-0.8.11.tar.gz/pykolab/translate.py -> pykolab-0.8.12.tar.gz/pykolab/translate.py
Changed
@@ -25,19 +25,24 @@ import gettext import os -N_ = lambda x: x +N_ = lambda x: x # noqa: E731 # This function as such may, at times, cause tracebacks. -#_ = lambda x: current.lgettext(x) +# _ = lambda x: current.lgettext(x) +# pylint: disable=invalid-name current = gettext.translation(domain, fallback=True) + def _(x): try: return current.lgettext(x) - except Exception, errmsg: + + # pylint: disable=broad-except + except Exception: return x + def getDefaultLangs(): languages = [] for envar in ('LANGUAGE', 'LC_ALL', 'LC_MESSAGES', 'LANG'): @@ -51,24 +56,32 @@ # now normalize and expand the languages nelangs = [] for lang in languages: + + # pylint: disable=protected-access for nelang in gettext._expand_lang(lang): if nelang not in nelangs: nelangs.append(nelang) return nelangs + def setUserLanguage(lang): + # pylint: disable=global-statement global current if not len(lang.split('.')) > 1 and not lang.endswith('.UTF-8'): lang = "%s.UTF-8" % (lang) langs = [] + + # pylint: disable=protected-access for l in gettext._expand_lang(lang): if l not in langs: langs.append(l) try: current = gettext.translation(domain, languages=langs, fallback=True) - except: + + # pylint: disable=broad-except + except Exception: pass
View file
pykolab-0.8.11.tar.gz/share/templates/roundcubemail/config.inc.php.tpl -> pykolab-0.8.12.tar.gz/share/templates/roundcubemail/config.inc.php.tpl
Changed
@@ -244,8 +244,6 @@ 'ssl_verify_peer' => false, ); - \$config['fileapi_manticore'] = 'http://' . \$_SERVER['HTTP_HOST'] . ':8080'; - @include('/etc/roundcubemail/kolab_syncroton.inc.php'); ?>
View file
pykolab.dsc
Changed
@@ -2,7 +2,7 @@ Source: pykolab Binary: pykolab, kolab-cli, kolab-conf, kolab-saslauthd, kolab-server, kolab-telemetry, kolab-xml, wallace Architecture: all -Version: 0.8.11-0~kolab5 +Version: 0.8.12-0~kolab1 Maintainer: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com> Uploaders: Paul Klos <kolab@klos2day.nl> Homepage: http://www.kolab.org @@ -40,5 +40,5 @@ pykolab deb python optional wallace deb python optional Files: - 00000000000000000000000000000000 0 pykolab-0.8.11.tar.gz + 00000000000000000000000000000000 0 pykolab-0.8.12.tar.gz 00000000000000000000000000000000 0 debian.tar.gz
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.