Comment 19 for bug 108189

Revision history for this message
Len Tyree (len-tyree) wrote : Re: [Bug 108189] Re: files list file for package `*' is missing final newline

Hi, just received an update from Linux/Ubuntu to the libc-bin.
Let it update, nut there was no change in my system, still unable to read/see anything on my usbdrive? The update was for Ubuntu 7, but I thought it might work for the later versions of Ubuntu, silly me.

So I am still stuck. Thanks, Len.

Maybe they will update the one in Ubuntu 10.04? I can't be the only person having this problem. (At least I hope not.)

________________________________
From: Sergey Mindar <email address hidden>
To: <email address hidden>
Sent: Tue, May 25, 2010 3:16:26 AM
Subject: [Bug 108189] Re: files list file for package `*' is missing final newline

Workaround worked perfectly on 10.04 Lucid netbook remix, Acer Aspire One /1gb RAM/ 32GB supertalent SSD.
Corrupted package was "libc-bin"

Only one thing in workaround been amended:
use:
> /var/lib/dpkg/info/packagename.list
instead of:
> /sw/var/lib/dpkg/info/packagename.list

--
files list file for package `*' is missing final newline
https://bugs.launchpad.net/bugs/108189
You received this bug notification because you are a direct subscriber
of a duplicate bug.

Status in “dpkg” package in Ubuntu: Triaged

Bug description:
APt-get, adept, and the restricted drivers manager might halt installing packages when one or more of the files in:

/var/lib/dpkg/info/

is corrupt.

The error shown will be either:
files list file for package `*' is missing final newline
Or:
files list file for package `*' contains an empty filename

Where * start is a random but steady "per install" package name.

Adding a newline char to the file changes the message form the first to the seccond error noting about the empty filename.

Since all these files seem to contain only a string of @^@^@^@^@^@^@^@^@^@^@^@^
it seems they are redundant, and i ventured on moving them from the folder, this solved the problem.

Two things need to be resolved here i guess,
1: dpkg should handle these files more gracefully, there's an abundance of forum posts and related bugs available from people who have no clue where to search, deleting them seems to work, so why not delete them when dpkg encounters this error.
2: Since all these files essentially contain the same data, why are they even here, there's 4200 of them in a default feisty install, the installer works fine without, so why are they here?

.:: WORKAROUND ::.
The reference is http://ubuntuforums.org/showpost.php?p=2635193&postcount=12 . I've rewritten some part of the post to adapt it to Ubuntu.

There is an easy way to fix this problem without having those serious warnings. I did it and it worked out fine. I found the solution in the following web site: http://finkproject.org/faq/usage-fink.php

I'll just copy it here:

Quote:
I can't install or remove anything, because of a problem with a "files list file".

A: Typically these errors take the form:

Quote:
files list file for package packagename contains empty filename
or

Quote:
files list file for package packagename is missing final newline
This can be fixed, with a little work. If you have the .deb file for the offending package currently available on your system, then check its integrity by running

Quote:
dpkg --contents full-path-to-debfile

e.g.

Quote:
dpkg --contents /var/cache/apt/archive/libgnome2-0_2.24.1-0ubuntu3_i386.deb
If you get back a listing of directories and files, then your .deb is OK. If the output is something other than directories and files, or if you don't have the .deb file, you can still proceed because the error doesn't interfere with builds.

If you have been installing from the binary distribution or you know for sure that the version in the binary distribution is the same as what you have installed (e.g. by checking the package database), then you can get a .deb file by running sudo apt-get install --reinstall --download-only packagename .

Once you have a valid .deb file, then you can reconstitute the file. First become root by using sudo -s (enter your administrative user password if necessary), and then use the following command:

Quote:
dpkg -c full-path-to-debfile | awk '{if ($6 == "./"){ print "/."; } \
else if (substr($6, length($6), 1) == "/")\
{print substr($6, 2, length($6) - 2); } \
else { print substr($6, 2, length($6) - 1);}}'\
> /sw/var/lib/dpkg/info/packagename.list
e.g.

Quote:
dpkg -c /var/cache/apt/archive/libgnome2-0_2.24.1-0ubuntu3_i386.deb | awk \
'{if ($6 == "./") { print "/."; } \
else if (substr($6, length($6), 1) == "/") \
{print substr($6, 2, length($6) - 2); } \
else { print substr($6, 2, length($6) - 1);}}' \
> /var/lib/dpkg/info/libgnome2-0.list
What this does is to extract the contents of the .deb file, remove everything but the filenames, and write these to the .list file.

I hope that helps.

To unsubscribe from this bug, go to:
https://bugs.launchpad.net/ubuntu/+source/dpkg/+bug/108189/+subscribe