Please do not reply directly to this email. All additional comments should be made in the comments box of this bug.
Summary: Langpacks goes on crack, for "removals" _and_ "updated"
https://bugzilla.redhat.com/show_bug.cgi?id=585424
Summary: Langpacks goes on crack, for "removals" _and_ "updated" Product: Fedora Version: 13 Platform: All OS/Version: Linux Status: NEW Severity: medium Priority: urgent Component: yum-langpacks AssignedTo: petersen@redhat.com ReportedBy: james.antill@redhat.com QAContact: extras-qa@fedoraproject.org CC: petersen@redhat.com, i18n-bugs@lists.fedoraproject.org Classification: Fedora Target Release: ---
Description of problem:
There are two bugs, which can combine to make yum-langpacks rm most of the system (and, yes, I introduced both of them).
1. We catch obsoletes as well as removals with:
elif member.ts_state in ('e', None): remove_deps_from_ts(conduit, po)
...but "None" is that state for "obsoleted" _and_ "updated". So any updated package can try and remove all it's languages.
2. remove_deps_from_ts() is done via:
for pkg in yb.rpmdb.returnPackages(patterns=pkgmatches): yb.remove(pattern=pkg.name)
...except pkgmatches will == [] _if_ LANG=C, and due to weird back compat. behaviour rpmdb.returnPackages(patterns=[]) returns all the packages on the system.
For F-13 just fix #1 by just checking for == 'e' again, and ignore obsoleted for now. Again, for F-13 #2 needs an:
if not pkgmatches: return