[Top][All Lists]

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

Re: fakeroot status

From: Roland McGrath
Subject: Re: fakeroot status
Date: Sun, 12 May 2002 15:51:09 -0400 (EDT)

> fakeauth works with spawni.c from the glibc 2.3 (HEAD) branch.  Roland, any
> plans to put this into the 2.2 branch?

Definitely not.  I don't think you should use it for the debian version
either.  That code is too young.  What we can do is make fakeauth use the
underlying hurdish stuff directly instead of either fork or spawn.

> Then there is a problem in that many RPCs are not passed through.  So
> pipes to the fakeroot world don't work, for example, and bash complains
> about that.  So we need a message deflector for all unrecognised RPCs in
> the demuxer.  Can we also deflect all RPCs that currently return
> EOPNOTSUPP?  Or do we need to provide individual pass through functions
> for all functions in a subsystem we can not deflect entirely?

The way mig demuxing works, you have to choose at the subsystem granularity
(unless you want to do ugly kludges).  So we need individual pass-through
server functions for all the stubs in netfs.

I added a netfs_demuxer function in fakeroot.c that does the basic
forwarding of unrecognized messages.  Modulo simple bugs, I think that will
work for the socket servers.  It's questionable for the general case,
because it always uses just the one port on the underlying node and sends
messages from all peropens there.  If there are other-protocol messages
that diddle peropen state, then the behavior from this will be pretty
bizarre in the face of multiple fakeroot peropens with different users.  An
approach that would make more sense for that would be to have a different
underlying node port for each peropen.  e.g., new_node could do a NORDWR
lookup and then each new peropen could do a dir_lookup ("",...) with its
appropriate openmodes to get a new corresponding peropen.  But that would
require adding some space to netfs's struct peropen, and it just generally
doesn't fit the existing netfs model so well.  We can probably punt that
issue if we are only thinking about the socket servers and the /dev devices.

> settrans --chroot works fine.

Glad to hear it.

> The difference is that with fakeroot, you end up in the directory /,
> whereas the fakeroot utility in GNU/Linux does not change your current
> directory.

I made the --chroot option work like the chroot command does, which is to
say chdir ("/") after the chroot.  I think the thing to do is just handle
it in the subprocess.  i.e., run sh -c "cd `pwd`; ...".

reply via email to

[Prev in Thread] Current Thread [Next in Thread]