(I'm also looking at #490420 for a single upload to close all RC bugs for this source package.)
Steps to reproduce (and tentative fix) $ sudo rm -rf /var/lib/ggzd/ggzdb.ver $ sudo apt-get install ggzd Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: libggzdmod6 Suggested packages: ggz-game-servers The following NEW packages will be installed ggzd libggzdmod6 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. Need to get 0B/575kB of archives. After this operation, 897kB of additional disk space will be used. Do you want to continue [Y/n]? Selecting previously deselected package libggzdmod6. (Reading database ... 219007 files and directories currently installed.) Unpacking libggzdmod6 (from .../libggzdmod6_0.0.14.1-1_amd64.deb) ... Selecting previously deselected package ggzd. Unpacking ggzd (from .../ggzd_0.0.14.1-1_amd64.deb) ... Processing triggers for man-db ... Setting up libggzdmod6 (0.0.14.1-1) ... Setting up ggzd (0.0.14.1-1) ... * Starting GGZ server ggzd (<errorsys>) Unable to read file /etc/ggzd/ggzd.conf: No such file or directory (<errormsg>) WARNING: No configuration file loaded! [ ok ] [EMAIL PROTECTED]:ggz-server-0.0.14.1$ So without /var/lib/ggzd/ggzdb.ver, the install succeeds and the server starts, albeit with a warning about a missing configuration file that was removed to fix a different bug (according to the changelog). See #454683. Restart test: $ sudo apt-get --purge remove ggzd libggzdmod6 Create a copy of the file that existed according to the bug reports: $ sudo mkdir -p /var/lib/ggzd $ sudo su -c "echo 0.7 > /var/lib/ggzd/ggzdb.ver" $ $ sudo apt-get install ggzd Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: libggzdmod6 Suggested packages: ggz-game-servers The following NEW packages will be installed ggzd libggzdmod6 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. Need to get 0B/575kB of archives. After this operation, 897kB of additional disk space will be used. Do you want to continue [Y/n]? Selecting previously deselected package libggzdmod6. (Reading database ... 219007 files and directories currently installed.) Unpacking libggzdmod6 (from .../libggzdmod6_0.0.14.1-1_amd64.deb) ... Selecting previously deselected package ggzd. Unpacking ggzd (from .../ggzd_0.0.14.1-1_amd64.deb) ... Processing triggers for man-db ... Setting up libggzdmod6 (0.0.14.1-1) ... Setting up ggzd (0.0.14.1-1) ... * Starting GGZ server ggzd <errorsys>) Unable to read file /etc/ggzd/ggzd.conf: No such file or directory (<errormsg>) WARNING: No configuration file loaded! /var/lib/ggzd/__db.001: Permission denied (<errorsys>) db_e->open() failed in _ggzdb_init(/var/lib/ggzd): Permission denied (<errormsgexit>) *** Database initialization failed /etc/init.d/ggzd: line 21: 20038 Aborted start-stop-daemon --start --quiet --oknodo --pidfile $PIDFILE --chuid games --startas $DAEMON [fail] invoke-rc.d: initscript ggzd, action "start" failed. dpkg: error processing ggzd (--configure): subprocess post-installation script returned error exit status 134 Errors were encountered while processing: ggzd E: Sub-process /usr/bin/dpkg returned an error code (1) Try just an empty file (which is what is installed after ggzd installs successfully): $ sudo su -c "echo > /var/lib/ggzd/ggzdb.ver" $ sudo dpkg --configure -a Setting up ggzd (0.0.14.1-1) ... * Starting GGZ server ggzd (<errorsys>) Unable to read file /etc/ggzd/ggzd.conf: No such file or directory (<errormsg>) WARNING: No configuration file loaded! Bad db version id, remove or convert db files. Most likely this means you must upgrade your database. It may be possible to automate this; see http://ggzgamingzone.org. [fail] invoke-rc.d: initscript ggzd, action "start" failed. dpkg: error processing ggzd (--configure): subprocess post-installation script returned error exit status 255 Errors were encountered while processing: ggzd So you only get the warning IF the file is empty but you get a fail if the file exists at all. Removing the file or the directory *after* the failure doesn't fix the install - the package needs to be removed, the file removed and then the package reinstalled. $ sudo apt-get --purge remove ggzd libggzdmod6 Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be REMOVED ggzd* libggzdmod6* 0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded. 1 not fully installed or removed. After this operation, 897kB disk space will be freed. Do you want to continue [Y/n]? (Reading database ... 219037 files and directories currently installed.) Removing ggzd ... * Stopping GGZ server ggzd [ ok ] Purging configuration files for ggzd ... Removing libggzdmod6 ... Purging configuration files for libggzdmod6 ... Processing triggers for man-db ... $ ls /var/lib/gg* ls: cannot access /var/lib/gg*: No such file or directory $ sudo apt-get install ggzd Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: libggzdmod6 Suggested packages: ggz-game-servers The following NEW packages will be installed ggzd libggzdmod6 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. Need to get 0B/575kB of archives. After this operation, 897kB of additional disk space will be used. Do you want to continue [Y/n]? Selecting previously deselected package libggzdmod6. (Reading database ... 219007 files and directories currently installed.) Unpacking libggzdmod6 (from .../libggzdmod6_0.0.14.1-1_amd64.deb) ... Selecting previously deselected package ggzd. Unpacking ggzd (from .../ggzd_0.0.14.1-1_amd64.deb) ... Processing triggers for man-db ... Setting up libggzdmod6 (0.0.14.1-1) ... Setting up ggzd (0.0.14.1-1) ... * Starting GGZ server ggzd (<errorsys>) Unable to read file /etc/ggzd/ggzd.conf: No such file or directory (<errormsg>) WARNING: No configuration file loaded! [ ok ] It would seem appropriate to 'rm -rf /var/lib/ggzd/ggzdb.ver' in a preinst script but that doesn't fix the install either. However, now I have a different problem. I can install the packages from /var/cache/apt/archives but I cannot install the packages that I have just built - either before or after the preinst was added. $ sudo dpkg -i ../libggzdmod6_0.0.14.1-1_amd64.deb ../ggzd_0.0.14.1-1_amd64.deb .... Setting up ggzd (0.0.14.1-1) ... * Starting GGZ server ggzd (<errorsys>) Unable to read file /etc/ggzd/ggzd.conf: No such file or directory (<errormsg>) WARNING: No configuration file loaded! /etc/init.d/ggzd: line 21: 22386 Segmentation fault start-stop-daemon --start --quiet --oknodo --pidfile $PIDFILE --chuid games --startas $DAEMON [fail] invoke-rc.d: initscript ggzd, action "start" failed. dpkg: error processing ggzd (--install): subprocess post-installation script returned error exit status 139 Processing triggers for man-db ... Errors were encountered while processing: ggzd $ sudo apt-get -y --purge remove ggzd libggzdmod6 $ sudo dpkg -i /var/cache/apt/archives/ggzd_0.0.14.1-1_amd64.deb /var/cache/apt/archives/libggzdmod6_0.0.14.1-1_amd64.deb Selecting previously deselected package ggzd. (Reading database ... 219007 files and directories currently installed.) Unpacking ggzd (from .../ggzd_0.0.14.1-1_amd64.deb) ... Selecting previously deselected package libggzdmod6. Unpacking libggzdmod6 (from .../libggzdmod6_0.0.14.1-1_amd64.deb) ... Setting up libggzdmod6 (0.0.14.1-1) ... Setting up ggzd (0.0.14.1-1) ... * Starting GGZ server ggzd (<errorsys>) Unable to read file /etc/ggzd/ggzd.conf: No such file or directory (<errormsg>) WARNING: No configuration file loaded! [ ok ] Processing triggers for man-db ... Hmmmm. $ sudo apt-get -y --purge remove ggzd libggzdmod6 $ ls /var/lib/gg* ls: cannot access /var/lib/gg*: No such file or directory There appears to be more going on here than just /var/lib/ggzd/ggzdb.ver $ debdiff /var/cache/apt/archives/ggzd_0.0.14.1-1_amd64.deb ../ggzd_0.0.14.1-1_amd64.deb File lists identical (after any substitutions) Control files: lines which differ (wdiff format) ------------------------------------------------ Depends: libavahi-client3 (>= [-0.6.13),-] {+0.6.16),+} libavahi-common3 (>= [-0.6.10),-] {+0.6.16),+} libc6 (>= 2.7-1), [-libdb4.6,-] {+libdb4.3 (>= 4.3.28-1),+} libexpat1 (>= 1.95.8), libggz2 (>= 0.0.14.1), libggzdmod6 (>= 0.0.14.1) libdb4.6 vs libdb4.3 - Hmmm. $ debdiff /var/cache/apt/archives/ggzd_0.0.14.1-1_amd64.deb /opt/debian/pbuilder/result/ggzd_0.0.14.1-1.1_amd64.deb [The following lists of changes regard files as different if they have different names, permissions or owners.] Files in second .deb but not in first ------------------------------------- -rwxr-xr-x root/root DEBIAN/preinst Control files: lines which differ (wdiff format) ------------------------------------------------ Depends: libavahi-client3 (>= [-0.6.13),-] {+0.6.16),+} libavahi-common3 (>= [-0.6.10),-] {+0.6.16),+} libc6 (>= 2.7-1), [-libdb4.6,-] {+libdb4.4,+} libexpat1 (>= 1.95.8), libggz2 (>= 0.0.14.1), libggzdmod6 (>= 0.0.14.1) Installed-Size: [-552-] {+556+} Version: [-0.0.14.1-1-] {+0.0.14.1-1.1+} Rebuilding with pbuilder *without* the preinst script does not change anything. This is looking like a problem in libdb-dev or how ggzd tries to use it. (It also makes it look like either ggzd or libdb-dev are not bin-NMU safe.) -- Neil Williams ============= http://www.data-freedom.org/ http://www.nosoftwarepatents.com/ http://www.linux.codehelp.co.uk/
signature.asc
Description: This is a digitally signed message part