Comment 0 for bug 613973

Revision history for this message
not saying (lapasmpama-rhn) wrote :

I'm using Mandriva 2010.0 and Smart 1.2 (the bug was observed on 1.3, too).
I recently re-added my repositories. After that, every attempt to upgrade ended up with "Package list with no CRPMTAG_FILENAME tag" message and my changes forgotten. Smart was unusable because of that.

I made a workaround for this problem, in form of a pseudo-patch, listed below. Smart will fall back to the default method of retrieving the file name if the header lacks [CRPMTAG_FILENAME]. The culprit may be the repository owner, but smart doesn't handle their fault gracefully. Attached my list of channels.

# patch for Smart 1.2 as found in Mandriva 2010.0
# lines 559 to 569
    def getFileName(self, info):
        try:
            h = info._h
            filename = h[CRPMTAG_FILENAME]
            if not filename:
                raise Error, _("Package list with no CRPMTAG_FILENAME tag")
            if filename in self._prefix:
                filename = os.path.join(self._prefix[filename], filename)
            return filename
        except Error:
            return RPMHeaderListLoader.getFileName(self, info)