[Bug 852003] Re: USC fails to launch in non-admin user account if there's a private PPA

David Ayers ayers at fsfe.org
Tue Jul 10 18:48:05 UTC 2012


I believe the error still exists.  I know next to nothing about C++ but
I believe this is a symptom of a programming error in apt:

The code in
apt-pkg/sourcelist.cc

says:
   ifstream F(File.c_str(),ios::in /*| ios::nocreate*/);
   if (!F != 0)
      return _error->Errno("ifstream::ifstream",_("Opening %s"),File.c_str());

but the C++ documentation I found says:
If the constructor is not successful in opening the file, the object is still created although no file is associated to the stream buffer and the stream's failbit is set (which can be checked with inherited member fail).
http://www.cplusplus.com/reference/iostream/ifstream/ifstream/

So I believe that the the if case is arbitrarily failing due to type
promotion rules dependent on the address that is stored in F.

That would make this a bug in the apt package which is repeated a few
times in other places. (i.e. other places is apt where the result of the
constructor is tested via if (!F != 0) rather than fail.

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to python-apt in Ubuntu.
https://bugs.launchpad.net/bugs/852003

Title:
  USC fails to launch in non-admin user account if there's a private PPA

Status in “apt” package in Ubuntu:
  Confirmed
Status in “python-apt” package in Ubuntu:
  Confirmed
Status in “software-center” package in Ubuntu:
  Triaged

Bug description:
  Ubuntu Software Center 4.1.23.2, Ubuntu 11.10 beta 1
  Ubuntu Software Center 5.0.1.4, Ubuntu 11.10

  1. Subscribe to a private PPA. (For example, purchase some software.)
  2. Close USC and relaunch it.
  3. Switch to a guest account (or any non-admin account), and launch USC.

  What happens:
  2. USC opens.
  3. USC fails to open, with this traceback:
  ------------
  Traceback (most recent call last):
    File "/usr/bin/software-center", line 151, in <module>
      app = SoftwareCenterAppGtk3(datadir, xapian_base_path, options, args)
    File "/usr/share/software-center/softwarecenter/ui/gtk3/app.py", line 206, in __init__
      self.cache.open()
    File "/usr/share/software-center/softwarecenter/db/pkginfo_impl/aptcache.py", line 209, in open
      self._cache = apt.Cache(GtkMainIterationProgress())
    File "/usr/lib/python2.7/dist-packages/apt/cache.py", line 93, in __init__
      self.open(progress)
    File "/usr/lib/python2.7/dist-packages/apt/cache.py", line 140, in open
      self._list.read_main_list()
  SystemError: E:Opening /etc/apt/sources.list.d/private-ppa.launchpad.net_whatever_ubuntu.list - ifstream::ifstream (13: Permission denied)
  ------------

  What should happen:
  3. USC should launch.

  Bug 746625 (currently marked Invalid) is the equivalent bug in apt.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/apt/+bug/852003/+subscriptions




More information about the foundations-bugs mailing list