Bug 23560 - Übernahme von univention-mail-kolab2-cyrus nach univention-mail-cyrus
Übernahme von univention-mail-kolab2-cyrus nach univention-mail-cyrus
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: Mail
UCS 3.0
Other Linux
: P5 normal (vote)
: UCS 3.0 - RC
Assigned To: Felix Botner
Sönke Schwardt-Krummrich
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2011-09-08 16:32 CEST by Felix Botner
Modified: 2011-12-13 15:50 CET (History)
2 users (show)

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Felix Botner univentionstaff 2011-09-08 16:32:40 CEST
Auf Basis von univention-mail-kolab2-cyrus soll es für 3.0 ein Paket univention-mail-cyrus für die Integration des cyrus imap Server geben. Dabei sollen aus univention-mail-kolab2-cyrus alle Kolab spezifischen Dinge entfernt werden. Außerdem müssen die LDAP Attribute und Objektklassen entsprechend angepasst werden.
Comment 1 Felix Botner univentionstaff 2011-09-09 14:11:16 CEST
Folgende Templates entfallen:

etc/default/cyrus2.2  - Anpassungen werden über Patch an cyrus-imapd-2.2 (2.4) 
                        gemacht
etc/init.d/cyrus2.2   - Anpassungen werden über Patch an cyrus-imapd-2.2 (2.4) 
                        gemacht
etc/default/saslauthd - ist in univention-sasl

etc/imapd/pam_ldap_imap.conf - "/etc/pam.d/imap" hat früher pam_ldap.so mit     
                               config=/etc/imapd/pam_ldap_imap.conf verwendet, 
                               hier konnte man aber nichts konfigurieren und es 
                               war identisch mit /etc/pam_ldap.conf. Daher
                               wird nun auch hier der Standard verwendet.

Änderungen an Templates:

etc/pam.d/imap(pop,sieve) - pam_univentionmailcyrus.so verwendet nun "binddn=@%@ldap/hostdn@%@ pwfile=/etc/machine.secret" für die Authen. am LDAP, "config=/etc/imapd/pam_ldap_imap.conf" am pam_ldap.so Modul ist entfallen.

etc/imapd/imapd.conf - die beiden Variablen "ldap_bindpwfile: @%@mail/cyrus/ldap/pwfile@%@" und "ldap_binddn: @%@ldap/hostdn@%@" für die Authen. am LDAP wurden aufgenommen.

Änderungen an Skripten:

univention-cyrus-mkdir - Es wird nun beim Anlegen der Mailbox ein Standard Sieve Script erzeugt um Spam-Mails nach Spam zu verschieben.

Folgende Listener Module entfallen:

cyrus-sieve.py -  keine sieve Sachen in 3.0 (Außer Standard Spam Regel, die
                  aber über univention-cyrus-mkdir einmalig beim Angelegen
                   der Mailbox erzeugt wird)

Änderungen an Listener Modulen:

alle - LDAP Attribute angepasst (kolabHomeServer -> univentionMailHomeServer) und Test auf "is_groupware_user" entfernt. Alle Benutzer mit objectClass=univentionMail werden verarbeitet.

cyrus-shared-folder.py - univentionKolabSharedFolderType bzw. setfoldertype entfallen (keine verschiedenen IMAP Folder in UCS 3.0).

Änderungen am Join Skript:

Es wird nun der Servive "IMAP Server" am Rechnerobjekt gesetzt.
Comment 2 Felix Botner univentionstaff 2011-09-09 14:13:51 CEST
Folgende Dinge sind noch zu tun:

1) Das Maschinen Passwort muss für den imap Server noch nach /etc/cyrus-ldap.secret kopiert werden (auch wenn es sich ändert) und für den Benutzer cyrus lesbar gemacht werden.

2) Update Dinge. Einige Templates sind entfernt wurden. Hier muss nochmal genau geschaut werden, wie es sich beim Update entfällt.
Comment 3 Felix Botner univentionstaff 2011-09-09 15:03:59 CEST
(In reply to comment #2)
> Folgende Dinge sind noch zu tun:
> 
> 1) Das Maschinen Passwort muss für den imap Server noch nach
> /etc/cyrus-ldap.secret kopiert werden (auch wenn es sich ändert) und für den
> Benutzer cyrus lesbar gemacht werden.

Es wurde ein Hook usr/lib/univention-server/server_password_change.d hinterlegt, der nach der Passwort Änderung das machine.secret nach /etc/cyrus-ldap.secret kopiert und die Berechtigungen für cyrus setzt.
Comment 4 Felix Botner univentionstaff 2011-09-29 13:29:58 CEST
(In reply to comment #2)
> Folgende Dinge sind noch zu tun:
> 
> 2) Update Dinge. Einige Templates sind entfernt wurden. Hier muss nochmal genau
> geschaut werden, wie es sich beim Update entfällt.

univention-mail-cyrus bringt zwei transitinal Pakete mit u-m-c-imap/pop. Darüber sollte das Update von u-m-c (2.4 mit dem pop und imap Pakete) auf 3.0 funktionieren. In postinst werden zusätzlich noch alte Templates und Info Datei gelöscht (remove_ucr_template, remove_ucr_info_file).
Comment 5 Felix Botner univentionstaff 2011-09-30 10:26:06 CEST
Es gibt noch ein Problem beim Update, die berkeley DB Version von cyrus2.2 aus UCS 2.4 ist 4.2 in UCS 3.0 4.7
Comment 6 Felix Botner univentionstaff 2011-10-04 10:35:50 CEST
univention-cyrus-mkdir-shared, acl, ... funktionieren nicht mehr, wahrscheinlich gibt es da Probleme mit dem cyradm und dem expect :

Traceback (most recent call last):
  File "/usr/sbin/univention-cyrus-mkdir-shared", line 79, in <module>
    i = child.expect(['IMAP Password:', '>', 'cyradm: cannot connect to server', EOF], timeout=60)
  File "/usr/lib/python2.6/dist-packages/pexpect.py", line 1311, in expect
    return self.expect_list(compiled_pattern_list, timeout, searchwindowsize)
  File "/usr/lib/python2.6/dist-packages/pexpect.py", line 1325, in expect_list
    return self.expect_loop(searcher_re(pattern_list), timeout, searchwindowsize)
  File "/usr/lib/python2.6/dist-packages/pexpect.py", line 1409, in expect_loop
    raise TIMEOUT (str(e) + '\n' + str(self))
pexpect.TIMEOUT: Timeout exceeded in read_nonblocking().
<pexpect.spawn object at 0x9fee0ec>
version: 2.3 ($Revision: 399 $)
command: /usr/bin/cyradm
args: ['/usr/bin/cyradm', '-u', 'cyrus', 'localhost']
searcher: searcher_re:
    0: re.compile("IMAP Password:")
    1: re.compile(">")
    2: re.compile("cyradm: cannot connect to server")
    3: EOF
buffer (last 100 chars): Password: 
before (last 100 chars): Password: 
after: <class 'pexpect.TIMEOUT'>
match: None
match_index: None
exitstatus: None
flag_eof: False
pid: 5650
child_fd: 3
closed: False
timeout: 30
delimiter: <class 'pexpect.EOF'>
logfile: None
logfile_read: None
logfile_send: None
maxread: 2000
ignorecase: False
searchwindowsize: None
delaybeforesend: 0.05
delayafterclose: 0.1
delayafterterminate: 0.1
Comment 7 Felix Botner univentionstaff 2011-10-04 12:37:59 CEST
(In reply to comment #6)
> univention-cyrus-mkdir-shared, acl, ... funktionieren nicht mehr,
> wahrscheinlich gibt es da Probleme mit dem cyradm und dem expect :
> 
> Traceback (most recent call last):
>   File "/usr/sbin/univention-cyrus-mkdir-shared", line 79, in <module>
>     i = child.expect(['IMAP Password:', '>', 'cyradm: cannot connect to
> server', EOF], timeout=60)
>   File "/usr/lib/python2.6/dist-packages/pexpect.py", line 1311, in expect
>     return self.expect_list(compiled_pattern_list, timeout, searchwindowsize)
>   File "/usr/lib/python2.6/dist-packages/pexpect.py", line 1325, in expect_list
>     return self.expect_loop(searcher_re(pattern_list), timeout,
> searchwindowsize)
>   File "/usr/lib/python2.6/dist-packages/pexpect.py", line 1409, in expect_loop
>     raise TIMEOUT (str(e) + '\n' + str(self))
> pexpect.TIMEOUT: Timeout exceeded in read_nonblocking().
> <pexpect.spawn object at 0x9fee0ec>
> version: 2.3 ($Revision: 399 $)
> command: /usr/bin/cyradm
> args: ['/usr/bin/cyradm', '-u', 'cyrus', 'localhost']
> searcher: searcher_re:
>     0: re.compile("IMAP Password:")
>     1: re.compile(">")
>     2: re.compile("cyradm: cannot connect to server")
>     3: EOF
> buffer (last 100 chars): Password: 
> before (last 100 chars): Password: 
> after: <class 'pexpect.TIMEOUT'>
> match: None
> match_index: None
> exitstatus: None
> flag_eof: False
> pid: 5650
> child_fd: 3
> closed: False
> timeout: 30
> delimiter: <class 'pexpect.EOF'>
> logfile: None
> logfile_read: None
> logfile_send: None
> maxread: 2000
> ignorecase: False
> searchwindowsize: None
> delaybeforesend: 0.05
> delayafterclose: 0.1
> delayafterterminate: 0.1

Die Script /usr/sbin/univention-cyrus-* wurden so umgebaut, dass sie mit cyrus 2.2 und 2.4 zurecht kommen.
Comment 8 Andreas Büsching univentionstaff 2011-10-10 13:15:38 CEST
Mindestens im Listener-Modul cyrus-shared-folder.py wird ein Attribute acl ausgelesen das jetzt aber scheinbar univentionMailACL heisst.
Comment 9 Felix Botner univentionstaff 2011-10-11 09:30:12 CEST
(In reply to comment #8)
> Mindestens im Listener-Modul cyrus-shared-folder.py wird ein Attribute acl
> ausgelesen das jetzt aber scheinbar univentionMailACL heisst.

Das wurde in cyrus-shared-folder.py entsprechend geändert.
Comment 10 Sönke Schwardt-Krummrich univentionstaff 2011-11-21 18:56:23 CET
(In reply to comment #4)
> univention-mail-cyrus bringt zwei transitinal Pakete mit u-m-c-imap/pop.

univention-mail-cyrus-pop ist in UCS 3.0 derzeit in unmaintained.
Comment 11 Sönke Schwardt-Krummrich univentionstaff 2011-11-21 19:04:02 CET
(In reply to comment #10)
> (In reply to comment #4)
> > univention-mail-cyrus bringt zwei transitinal Pakete mit u-m-c-imap/pop.
 
univention-mail-cyrus-{pop,imap} ist in UCS 3.0 derzeit in unmaintained.
Comment 12 Felix Botner univentionstaff 2011-11-22 09:00:44 CET
(In reply to comment #11)
> (In reply to comment #10)
> > (In reply to comment #4)
> > > univention-mail-cyrus bringt zwei transitinal Pakete mit u-m-c-imap/pop.
> 
> univention-mail-cyrus-{pop,imap} ist in UCS 3.0 derzeit in unmaintained.

Die beiden Pakete

+univention-mail-cyrus-pop
+univention-mail-cyrus-imap

wurden in die trigger Liste für 3.0 aufgenommen. Auf der nächsten DVD sollten die Pakete vorhanden und damit maintained sein.
Comment 13 Sönke Schwardt-Krummrich univentionstaff 2011-11-23 12:20:27 CET
(In reply to comment #1)
> Folgende Templates entfallen:
> 
> etc/default/cyrus2.2  - Anpassungen werden über Patch an cyrus-imapd-2.2
→ OK

> etc/init.d/cyrus2.2   - Anpassungen werden über Patch an cyrus-imapd-2.2 (2.4) 
→ OK

> etc/default/saslauthd - ist in univention-sasl
→ OK
 
> etc/imapd/pam_ldap_imap.conf - "/etc/pam.d/imap" hat früher pam_ldap.so mit     
>                                config=/etc/imapd/pam_ldap_imap.conf verwendet, 
>                                hier konnte man aber nichts konfigurieren und es 
>                                war identisch mit /etc/pam_ldap.conf. Daher
>                                wird nun auch hier der Standard verwendet.
→ OK

 
> Änderungen an Templates:
> 
> etc/pam.d/imap(pop,sieve) - pam_univentionmailcyrus.so verwendet nun
> "binddn=@%@ldap/hostdn@%@ pwfile=/etc/machine.secret" für die Authen. am LDAP,
> "config=/etc/imapd/pam_ldap_imap.conf" am pam_ldap.so Modul ist entfallen.
→ OK

> etc/imapd/imapd.conf - die beiden Variablen "ldap_bindpwfile:
> @%@mail/cyrus/ldap/pwfile@%@" und "ldap_binddn: @%@ldap/hostdn@%@" für die
> Authen. am LDAP wurden aufgenommen.
→ OK

> Änderungen an Skripten:
> 
> univention-cyrus-mkdir - Es wird nun beim Anlegen der Mailbox ein Standard
> Sieve Script erzeugt um Spam-Mails nach Spam zu verschieben.
→ OK
 
> Folgende Listener Module entfallen:
> 
> cyrus-sieve.py -  keine sieve Sachen in 3.0 (Außer Standard Spam Regel, die
>                   aber über univention-cyrus-mkdir einmalig beim Angelegen
>                    der Mailbox erzeugt wird)
→ OK

> Änderungen an Listener Modulen:
> 
> alle - LDAP Attribute angepasst (kolabHomeServer -> univentionMailHomeServer)
> und Test auf "is_groupware_user" entfernt. Alle Benutzer mit
> objectClass=univentionMail werden verarbeitet.
→ OK
 
> cyrus-shared-folder.py - univentionKolabSharedFolderType bzw. setfoldertype
> entfallen (keine verschiedenen IMAP Folder in UCS 3.0).
→ OK
 
> Änderungen am Join Skript:
> 
> Es wird nun der Servive "IMAP Server" am Rechnerobjekt gesetzt.
→ OK


(In reply to comment #3)
> (In reply to comment #2)
> > Folgende Dinge sind noch zu tun:
> > 
> > 1) Das Maschinen Passwort muss für den imap Server noch nach
> > /etc/cyrus-ldap.secret kopiert werden (auch wenn es sich ändert) und für den
> > Benutzer cyrus lesbar gemacht werden.
> 
> Es wurde ein Hook usr/lib/univention-server/server_password_change.d
> hinterlegt, der nach der Passwort Änderung das machine.secret nach
> /etc/cyrus-ldap.secret kopiert und die Berechtigungen für cyrus setzt.

→ OK

(In reply to comment #4)
> > 2) Update Dinge. Einige Templates sind entfernt wurden. Hier muss nochmal 
> > genau geschaut werden, wie es sich beim Update entfällt.
> 
> univention-mail-cyrus bringt zwei transitinal Pakete mit u-m-c-imap/pop.
> Darüber sollte das Update von u-m-c (2.4 mit dem pop und imap Pakete) auf 3.0
> funktionieren. In postinst werden zusätzlich noch alte Templates und Info 
> Datei gelöscht (remove_ucr_template, remove_ucr_info_file).

→ Transition funktioniert, Templates werden entfernt → OK

(In reply to comment #8)
> Mindestens im Listener-Modul cyrus-shared-folder.py wird ein Attribute acl
> ausgelesen das jetzt aber scheinbar univentionMailACL heisst.

→ OK

(In reply to comment #12)
> Die beiden Pakete
> 
> +univention-mail-cyrus-pop
> +univention-mail-cyrus-imap
> 
> wurden in die trigger Liste für 3.0 aufgenommen. Auf der nächsten DVD sollten
> die Pakete vorhanden und damit maintained sein.

→ OK
Comment 14 Sönke Schwardt-Krummrich univentionstaff 2011-11-23 12:22:33 CET
Changelogeintrag fehlt
Comment 15 Felix Botner univentionstaff 2011-11-23 13:01:01 CET
(In reply to comment #14)
> Changelogeintrag fehlt

Ich habe jetzt nur einen kurzen Einzeiler in das Changelog aufgenommen. Alles weitere Sollte dann über die Mail-Doku erfolgen.
Comment 16 Sönke Schwardt-Krummrich univentionstaff 2011-11-23 15:22:54 CET
(In reply to comment #15)
> Ich habe jetzt nur einen kurzen Einzeiler in das Changelog aufgenommen. Alles
> weitere Sollte dann über die Mail-Doku erfolgen.

Ok.
Comment 17 Sönke Schwardt-Krummrich univentionstaff 2011-12-13 15:50:10 CET
UCS 3.0-0 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer
neueren Version von UCS erneut auftreten, so sollte dieser Bug dupliziert
werden: "Clone This Bug"