Bug#988236: roundcube-core: Install breaks lighttpd if fastcgi-php-fpm module is active

2021-05-14 Thread Guilhem Moulin
On Mon, 10 May 2021 at 20:30:42 +0200, Guilhem Moulin wrote:
> On Sun, 09 May 2021 at 17:48:28 +0200, Guilhem Moulin wrote:
>> That said I'm not sure to how to fix this.  I'm not really familiar with
>> lighttpd but I don't see a way to list enabled modules other than
>> looking in /etc/lighttpd/conf-enabled which I'm not really keen to do.
>> […]
>> lighttpd maintainers (CC'ed): What's the best way to express “enable
>> fastcgi-php (or fastcgi-php-fpm) unless fastcgi.server already has a
>> handler for .php”?  Or if that's not possible “enable fastcgi-php unless
>> fastcgi-php-fpm is already enabled”?  Simply expand
>> /etc/lighttpd/conf-enabled/*-fastcgi-php-fpm.conf and check for a match,
>> or is there a more robust way?
> 
> Here is a workaround that seems to work:
> 
> https://salsa.debian.org/roundcube-team/roundcube/-/commit/4638e975366c980280bd3b63020eaee45df88f52
> 
> lighttpd maintainers: is it acceptable to look for matches in
> /etc/lighttpd/conf-enabled/*-fastcgi-php.conf and …/*-fastcgi-php-*.conf?
> The aim would be to ship a fix in Bullseye; we can always refine the
> logic during the Bookworm release cycle.

FWIW I plan to upload this some time next week and ask the Release Team
for an unblock request.

Given #898040, #988236 and #988282 I believe the vast majority of
roundcube-core users don't use our lighttpd integration.  Nonetheless I
added an autopkgtest (in experimental) to help detect such regressions
further down the road. :-)

Cheers
-- 
Guilhem.


signature.asc
Description: PGP signature


Bug#988236: roundcube-core: Install breaks lighttpd if fastcgi-php-fpm module is active

2021-05-10 Thread Guilhem Moulin
On Sun, 09 May 2021 at 17:48:28 +0200, Guilhem Moulin wrote:
> That said I'm not sure to how to fix this.  I'm not really familiar with
> lighttpd but I don't see a way to list enabled modules other than
> looking in /etc/lighttpd/conf-enabled which I'm not really keen to do.
> […]
> lighttpd maintainers (CC'ed): What's the best way to express “enable
> fastcgi-php (or fastcgi-php-fpm) unless fastcgi.server already has a
> handler for .php”?  Or if that's not possible “enable fastcgi-php unless
> fastcgi-php-fpm is already enabled”?  Simply expand
> /etc/lighttpd/conf-enabled/*-fastcgi-php-fpm.conf and check for a match,
> or is there a more robust way?

Here is a workaround that seems to work:


https://salsa.debian.org/roundcube-team/roundcube/-/commit/4638e975366c980280bd3b63020eaee45df88f52

lighttpd maintainers: is it acceptable to look for matches in
/etc/lighttpd/conf-enabled/*-fastcgi-php.conf and …/*-fastcgi-php-*.conf?
The aim would be to ship a fix in Bullseye; we can always refine the
logic during the Bookworm release cycle.

Cheers,
-- 
Guilhem.


signature.asc
Description: PGP signature


Bug#988236: roundcube-core: Install breaks lighttpd if fastcgi-php-fpm module is active

2021-05-09 Thread Guilhem Moulin
Control: reassign -1 roundcube-core 1.4.11+dfsg.1-3

On Sat, 08 May 2021 at 09:07:26 -0300, Kurt Fitzner via 
Pkg-roundcube-maintainers wrote:
> On systems with lighttpd, the installer should detect if fastcgi-php-fpm is
> already active and if so, should not subsequently activate fastcgi-php.

Thanks, this is related to #898040.

> I'm not sure this shouldn't have a higher severity, but I'll let you judge.

Like #898040 I don't think this warrants RC severity.  But should a fix
make it in time it's definitely suitable to request an unblock request.

That said I'm not sure to how to fix this.  I'm not really familiar with
lighttpd but I don't see a way to list enabled modules other than
looking in /etc/lighttpd/conf-enabled which I'm not really keen to do.

In fact I'm not sure it's a roundcube-core issue in the first place:
`lighty-enable-mod fastcgi-php` arguably should do some sanity check,
otherwise what's the advantage compared to manually creating symlinks?
In a minimal sid chroot:

$ apt install -y lighttpd php-fpm
[…]
$ service lighttpd start
Starting web server: lighttpd.
$ lighty-enable-mod fastcgi-php-fpm
Met dependency: fastcgi
Enabling fastcgi-php-fpm: ok
Enabling fastcgi: ok
Run "service lighttpd force-reload" to enable changes
$ service lighttpd force-reload
Reloading web server configuration: lighttpd.
$ lighty-enable-mod fastcgi-php
Enabling fastcgi-php: ok
Run "service lighttpd force-reload" to enable changes
$ echo $?
0
$ service lighttpd force-reload
Duplicate array-key '.php'
2021-05-09 12:52:17: configfile.c.1970) source: 
/etc/lighttpd/conf-enabled/15-fastcgi-php.conf line: 21 pos: 1 parser failed 
somehow near here: (EOL)
2021-05-09 12:52:17: configfile.c.1970) source: /etc/lighttpd/lighttpd.conf 
line: 51 pos: 15 parser failed somehow near here: (EOL)

If these modules are incompatible lighty-enable-mod(1) should ideally
give a hint.  I see module snippets have a way to express dependencies,
but unfortunately not conflicts.

lighttpd maintainers (CC'ed): What's the best way to express “enable
fastcgi-php (or fastcgi-php-fpm) unless fastcgi.server already has a
handler for .php”?  Or if that's not possible “enable fastcgi-php unless
fastcgi-php-fpm is already enabled”?  Simply expand
/etc/lighttpd/conf-enabled/*-fastcgi-php-fpm.conf and check for a match,
or is there a more robust way?

Thanks!
-- 
Guilhem.


signature.asc
Description: PGP signature


Bug#988236: roundcube-core: Install breaks lighttpd if fastcgi-php-fpm module is active

2021-05-08 Thread Kurt Fitzner
Package: roundcube
Version: 1.4.11+dfsg.1-3
Severity: important

Dear Maintainer,

If roundcube is installed on a system with lighttpd, then the installer
attempts to activate lighttpd's php module fastcgi-php.  However, If the
module fastcgi-php-fpm is already active, then having them both active breaks
lighttpd and the subsequent force-reload that the installer attemmpts on
lighttpd causes it to fail.

On systems with lighttpd, the installer should detect if fastcgi-php-fpm is
already active and if so, should not subsequently activate fastcgi-php.

I'm not sure this shouldn't have a higher severity, but I'll let you judge.

Thanks,

 Kurt Fitzner



-- System Information:
Debian Release: bullseye/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 5.10.0-6-amd64 (SMP w/2 CPU threads)
Locale: LANG=en_CA.UTF-8, LC_CTYPE=en_CA.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages roundcube-core depends on:
ii  dbconfig-common 2.0.19
ii  debconf [debconf-2.0]   1.5.75
ii  dpkg1.20.9
ii  libjs-bootstrap44.5.2+dfsg1-6
ii  libjs-codemirror5.59.2+~cs0.23.109-1
ii  libjs-jquery3.5.1+dfsg+~3.5.5-7
ii  libjs-jquery-minicolors 2.2.6+dfsg-4
ii  libjs-jquery-ui 1.12.1+dfsg-8
ii  libjs-jstimezonedetect  1.0.6-5
ii  libmagic1   1:5.39-3
ii  php 2:7.4+76
ii  php-auth-sasl   1.1.0-1
ii  php-cli 2:7.4+76
ii  php-common  2:76
ii  php-intl2:7.4+76
ii  php-mail-mime   1.10.10-1
ii  php-masterminds-html5   2.7.4+dfsg-2
ii  php-mbstring2:7.4+76
ii  php-net-sieve   1.4.4-2
ii  php-net-smtp1.9.0-1
ii  php-net-socket  1.2.2-2
ii  php-pear1:1.10.12+submodules+notgz+20210212-1
ii  php7.4 [php]7.4.15-5+deb11u1
ii  php7.4-cli [php-cli]7.4.15-5+deb11u1
ii  php7.4-intl [php-intl]  7.4.15-5+deb11u1
ii  php7.4-json [php-json]  7.4.15-5+deb11u1
ii  php7.4-mbstring [php-mbstring]  7.4.15-5+deb11u1
ii  roundcube-mysql 1.4.11+dfsg.1-3
ii  ucf 3.0043

Versions of packages roundcube-core recommends:
ii  lighttpd [httpd-cgi]1.4.59-1
ii  php-fpm 2:7.4+76
ii  php-gd  2:7.4+76
ii  php-pspell  2:7.4+76
ii  php7.4-fpm [php-fpm]7.4.15-5+deb11u1
ii  php7.4-gd [php-gd]  7.4.15-5+deb11u1
ii  php7.4-pspell [php-pspell]  7.4.15-5+deb11u1
ii  spawn-fcgi  1.6.4-2

Versions of packages roundcube-core suggests:
pn  php-crypt-gpg 
pn  php-mkopinsky-zxcvbn-php  
pn  php-net-ldap3 
ii  roundcube-plugins 1.4.11+dfsg.1-3

Versions of packages roundcube depends on:
ii  dpkg  1.20.9

-- debconf information:
  roundcube/upgrade-error: abort
  roundcube/install-error: abort
  roundcube/dbconfig-remove: true
  roundcube/remote/newhost:
  roundcube/remove-error: abort
  roundcube/mysql/method: Unix socket
  roundcube/purge: false
  roundcube/remote/host: localhost
  roundcube/passwords-do-not-match:
  roundcube/language: en_CA
  roundcube/internal/skip-preseed: false
* roundcube/database-type: mysql
  roundcube/dbconfig-reinstall: false
  roundcube/restart-webserver: true
  roundcube/remote/port:
  roundcube/hosts:
* roundcube/mysql/admin-user: root
  roundcube/reconfigure-webserver: apache2, lighttpd
  roundcube/db/app-user: roundcube@localhost
  roundcube/upgrade-backup: true
  roundcube/internal/reconfiguring: false
  roundcube/mysql/authplugin: default
  roundcube/db/dbname: roundcube
  roundcube/missing-db-package-error: abort
* roundcube/dbconfig-install: true
  roundcube/dbconfig-upgrade: true