[pkg-ggz-maintainers] Bug#473350: Reproducible
Neil Williams
codehelp at debian.org
Thu Aug 28 17:26:50 UTC 2008
(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 ]
neil at holly: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/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part
Url : http://lists.alioth.debian.org/pipermail/pkg-ggz-maintainers/attachments/20080828/8f1cf129/attachment.pgp
More information about the pkg-ggz-maintainers
mailing list