Suppress 'invalid .la file' message if necessary.
authorZac Medico <zmedico@gentoo.org>
Thu, 21 Oct 2010 11:28:21 +0000 (04:28 -0700)
committerZac Medico <zmedico@gentoo.org>
Thu, 21 Oct 2010 11:28:21 +0000 (04:28 -0700)
This will fix bug #340725.

pym/portage/package/ebuild/doebuild.py

index eea337eb5190da7978eaf90f858b785e95639bd2..3c8489844c2903857fdfbca1c57df304edcd1793 100644 (file)
@@ -1420,6 +1420,9 @@ def _post_src_install_uid_fix(mysettings, out):
                                        f = open(_unicode_encode(fpath,
                                                encoding=_encodings['merge'], errors='strict'),
                                                mode='rb')
+                                       has_lafile_header = b'.la - a libtool library file' \
+                                               in f.readline()
+                                       f.seek(0)
                                        contents = f.read()
                                        f.close()
                                        try:
@@ -1429,10 +1432,17 @@ def _post_src_install_uid_fix(mysettings, out):
                                                if not fixlafiles_announced:
                                                        fixlafiles_announced = True
                                                        writemsg("Fixing .la files\n", fd=out)
+
+                                               # Suppress warnings if the file does not have the
+                                               # expected header (bug #340725). Even if the header is
+                                               # missing, we still call rewrite_lafile() since some
+                                               # valid libtool archives may not have the header.
                                                msg = "   %s is not a valid libtool archive, skipping\n" % fpath[len(destdir):]
                                                qa_msg = "QA Notice: invalid .la file found: %s, %s" % (fpath[len(destdir):], e)
-                                               writemsg(msg, fd=out)
-                                               eqawarn(qa_msg, key=mysettings.mycpv, out=out)
+                                               if has_lafile_header:
+                                                       writemsg(msg, fd=out)
+                                                       eqawarn(qa_msg, key=mysettings.mycpv, out=out)
+
                                        if needs_update:
                                                if not fixlafiles_announced:
                                                        fixlafiles_announced = True