On Thu, 15 Mar 2012 00:15:09 +0100 Vincent Fourmond wrote: > Hello, Hi! Thanks for your kind reply! > > On Wed, Mar 14, 2012 at 11:21 PM, Francesco Poli > <invernomuto@paranoici.org> wrote: [...] > > Currently, apt-listbugs does all this by opening "/dev/tty", after the > > input ends. > > Does it do that as root ? It (typically) does the described steps as root, yes. > Why do you need su ? It's *not* apt-listbugs that invokes su -c "command" (except for one case, see the first of the two bugs I am struggling with: #662865), it's apt-listbugs that *may* be invoked inside an su -c "command" , either explicitly by the user, or by aptitude ncurses interface (if run as a regular user, aptitude ncurses interface asks the user for the root password, whenever it needs root privileges to perform an operation and invokes su -c "command" to perform it; see the second of the two bugs I am struggling with: #662983). > > Could you try posting the output of > > p Dir["/proc/self/fd/*"].map {|x| begin File::readlink(x); rescue; end } > > just before opening /dev/tty ? If 2 or 1 is a /dev/pts, not all hope is lost. I will try to get this output, but will it apply to all Debian systems? I am trying to solve the issue for all apt-listbugs users in the most portable way, not for me... > > I know this is probably a lot of work, but wouldn't it be just saner > to use debconf rather than the terminal ? That would be more portable. This is interesting, I have been asked in the past to implement a debconf frontend (see msg #25 of bug #628996), but I don't know how I could ask questions and output data through debconf from within a program written in Ruby... I had searched for something (a library?) to use debconf from Ruby, but had found nothing. Please tell me more: how can this be done from a Ruby program? > > You could also try prompting using readline, which may (? haven't > checked) be able to find a tty even if /dev/tty isn't available. Interesting: I see that libruby provides the virtual package libreadline-ruby. I assume that this means that the readline → ruby binding is included in the Ruby standard library. Could you please suggest some documentation on how to use readline from Ruby programs? > > Hope that helps, It may definitely help, let's see how it develops... Thanks! -- http://www.inventati.org/frx/frx-gpg-key-transition-2010.txt New GnuPG key, see the transition document! ..................................................... Francesco Poli . GnuPG key fpr == CA01 1147 9CD2 EFDF FB82 3925 3E1C 27E1 1F69 BFFE
Attachment:
pgpK22gcOvkpk.pgp
Description: PGP signature