[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: