Package: groonga-server-common
Version: 11.0.0-1
Severity: serious
User: debian...@lists.debian.org
Usertags: piuparts
Control: affects -1 + groonga-httpd groonga-server-gqtp

Hi,

during a test with piuparts I noticed your package causes failures while
upgrading from 'buster'.
It installed fine in 'buster', then the upgrade to 'bullseye' fails.

>From the attached log (scroll to the bottom...):

  dpkg: unrecoverable fatal error, aborting:
   unknown system user 'groonga' in statoverride file; the system user got 
removed
  before the override, which is most probably a packaging bug, to recover you
  can remove the override manually with dpkg-statoverride

The error does not happen immediately while upgrading your package,
but when doing some certain dpkg actions later on that choke on the
unknown user.

I'd suggest something like this in postinst configure,
between the calls to create_database and fixperms:

...
create_database
if dpkg --compare-versions "$2" lt-nl "11.0.0-2~" ; then
        dpkg-statoverride --list | \
        while read u g m p
        do
                if [ "$u" = "groonga" ]; then
                        dpkg-statoverride --remove $p
                        dpkg-statoverride --update --add _groonga $g $m $p
                fi
        done
fi
fixperms
...

Do not add it to add_system_user, it needs to be run once 
even if the renaming of groonga  to _gronga has already happened.

There are also a few more issues during the upgrade:

  Setting up groonga-server-common (9.0.0-1+deb10u1) ...
  Adding system user `groonga' (UID 150) ...
  Adding new group `groonga' (GID 150) ...
  Adding new user `groonga' (UID 150) with group `groonga' ...
  Creating home directory `/var/lib/groonga' ...
  dpkg-statoverride: warning: --update given but /var/run/groonga does not exist

* the statoverride on /var/run/groonga is useless since the directory
  is not (and cannot be) shipped by any package, therefore dpkg does not
  create the directory (and fix its ownership/permissions)

  Setting up groonga-server-common (11.0.0-1) ...
  /var/lib/dpkg/info/groonga-server-common.postinst: 9: pgrep: not found
  /var/lib/dpkg/info/groonga-server-common.postinst: 12: pgrep: not found
  Removing user `groonga' ...
  Warning: group `nogroup' has no more members.
  userdel: group groonga not removed because it is not the primary group of 
user groonga.
  Done.
  Allowing use of questionable username.
  Adding system user `_groonga' (UID 150) ...
  Adding new user `_groonga' (UID 150) with group `groonga' ...
  Not creating home directory `/var/lib/groonga'.

* there is missing a Depends: procps for using pgrep


cheers,

Andreas

Attachment: groonga-httpd_11.0.0-1.log.gz
Description: application/gzip

Reply via email to