Bug#687614: unblock: gdebi/0.8.6 (pre-approval)
Control: tags -1 moreinfo
On 2012-09-14 11:31, Luca Falavigna wrote:
> Package: release.debian.org
> Severity: normal
> User: release.debian.org@packages.debian.org
> Usertags: unblock
>
>
> Dear Release Team,
> I'd like to upload a new gdebi version in unstable fixing some bugs I
> recently triaged. They were reported on Launchpad, but most of them
> affect Debian too. Here's a description of the changes introduced
> since 0.8.5:
>
> [...]
>
> Other than those, I plan to include new translations in the package,
> I'm currently waiting for Launchpad to finalize them.
> I'm attaching a full debdiff (not including translations, at the
> moment) of the changes I'd like to introduce.
>
> Cheers,
> Luca
The changes are mostly reasonable and I would be okay with them except
the part where GDebiCli.py calls sys.exit(app.install())[0]. I had a
brief look at the code and app.install() (being GDebiCli.install())
appears to return a mix of int and boolean. Like
@@ -141,9 +141,7 @@
# os.system("gdebi %s_%s_*.deb" % (...))
pass
else:
- ret = call(["dpkg",...])
- if (ret != 0):
- return False
+ return call(["dpkg",...])
^^^^^^^^^^^ (ret != 0 suggests int)
vvvvvvvvvvv (clearly boolean)
return True
In the 0.8.5 code, there are a couple of places where GDebiCli.install
returns "False" on error[1], which I believe python translates to 0
leading to "exit 0 with errors" (and I suspect that is not what you wanted).
~Niels
[0] Actually, this also appears in gdebi AFAICT (w. s/app/debi/).
[1] I have marked the first two "return False on error" I noticed.
def install(self):
# install the dependecnies
(install,remove,unauthenticated) = self._deb.required_changes
if len(install) > 0 or len(remove) > 0:
fprogress = apt.progress.text.AcquireProgress()
iprogress = apt.progress.base.InstallProgress()
try:
res = self._cache.commit(fprogress,iprogress)
except apt.cache.FetchFailedException, e:
sys.stderr.write(_("Error during install: '%s'") % e)
return False
^^^^^^^^^^^^
except SystemError, e:
sys.stderr.write(_("Error during install: '%s'") % e)
return False
^^^^^^^^^^^^
[...]
Reply to: