[Bug 108189] Re: files list file for package `*' is missing final newline

Klonos 108189 at bugs.launchpad.net
Fri Aug 24 12:19:16 UTC 2012


Years later I still got tormented by this issue. Just by landing in this
page I was amazed by the amount of duplicate bug reports filed for this
very same issue!! ...well? Has there been any follow-ups on this one?
Any feature requests for "dpkg --verify-database" and "dpkg --repair-
database" as Raphaël suggests in the previous message?

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to dpkg in Ubuntu.
https://bugs.launchpad.net/bugs/108189

Title:
  files list file for package `*' is missing final newline

Status in “dpkg” package in Ubuntu:
  Invalid

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 manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/dpkg/+bug/108189/+subscriptions




More information about the foundations-bugs mailing list