Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 113109 - distccd emerge does not set up /var/tmp/.distcc
Summary: distccd emerge does not set up /var/tmp/.distcc
Status: VERIFIED NEEDINFO
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-11-20 12:50 UTC by Charles C. Van Tilburg
Modified: 2007-01-11 11:06 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Charles C. Van Tilburg 2005-11-20 12:50:55 UTC
simple; see above.

Reproducible: Always
Steps to Reproduce:
1.emerge distcc
2.
3.

Actual Results:  
emerge went ok, but upon attempt to use, /var/tmp/.distcc had to be 
created manually...

Expected Results:  
as part of the install, I think this directory should be created auto
and perms/owner set appropriately.
Comment 1 Lisa Seelye (RETIRED) gentoo-dev 2005-11-20 14:06:22 UTC
When distcc is used with portage it should be using /var/tmp/portage/.distcc.  
This, of course, can be set in /etc/make.conf by setting the DISTCC_DIR 
variable. Per user setting is ~/.distcc and can be changed with the DISTCC_DIR 
envvar.

There's no need to set up /var/tmp/portage/.distcc either since Portage does 
that on its own.
Comment 2 Charles C. Van Tilburg 2005-11-20 14:54:29 UTC
(In reply to comment #1)

I beg to differ.  I am reporting exactly what happened with a 2005.1 
install...  It did *NOT* behave as you describe.  

I have (and had) no DISTCC_DIR variable set in /etc/make.conf.  I 
just emerged the package and tried to use it.
Comment 3 Charles C. Van Tilburg 2005-11-20 15:04:44 UTC
In case it makes any difference, I took the minimal path to use it 
with portage.  This means that I added:

CCACHE_PREFIX="distcc"

and changed my MAKEOPTS from -j2 to -j6
Comment 4 Lisa Seelye (RETIRED) gentoo-dev 2005-11-20 15:13:07 UTC
All you need to do to use Distcc with Portage is to put 'distcc' in your 
FEATURES line and adjust your MAKEOPTS. Don't mess with CC or CXX envvars or 
anything else as it is not needed.

If there is a problem allocating the distcc temporary directories it's a portage 
problem since portage is responsible for creating and setting the permissions.
Comment 5 Charles C. Van Tilburg 2005-11-20 15:17:03 UTC
(In reply to comment #4)

I don't follow how this applies to the distccd on the other system(s), which 
is the problem I am reporting with distccd and emerge...

It wants to use /var/tmp/.distcc which should be owned by distcc:daemon, and
is NOT created during the emerge...
Comment 6 Brian Harring (RETIRED) gentoo-dev 2005-11-20 22:26:20 UTC
Rather then the heated back and forth, systems involved I'd like to see emerge
--info output from.
Comment 7 Lisa Seelye (RETIRED) gentoo-dev 2005-11-21 08:39:08 UTC
On volunteer hosts /var/tmp/ is not used by the distcc daemon. If TMPDIR is 
unspecified (and it usually is by default) the daemon will default to /tmp/ to 
store temporary data. If you're changing this to /var/tmp/.distcc you're 
responsible for setting permissions.

On the client, `emerge distcc` will not set up the directory used for state and 
lock files (known as DISTCC_DIR) or for preprocessed files (TMPDIR).  If 
DISTCC_DIR is set in /etc/make.conf (the default is ${PORTAGE_TMPDIR}/.distcc, 
or /var/tmp/portage/.distcc) Portage should be creating ${DISTCC_DIR}/{state,
lock} and setting the permissions so that the portage user can read and write to 
them.

If TMPDIR is specified on the client the distcc client will use that directory 
to store its preprocessed files. If that envvar is blank then the client will 
default to /tmp.

Again, if you're changing either of these envvars you should be setting the 
permissions accordingly (so that the portage user can read and write to them).

There is nothing that I am aware of (under proper conditions) that should be 
touching /var/tmp/.distcc.

To use ccache and distcc with Portage all you really need to do is:
  Set a -j value in MAKEOPTS in /etc/make.conf
  Add distcc and ccache to FEATURES in /etc/make.conf
  Modify /etc/distcc/hosts to include a list of hosts that are running distccd

Changing CCACHE_PREFIX, for use with Portage, is not necessary.

--
For diagnosing the problem at hand we'll need emerge info output from each 
machine that's in your distcc cluster.
Comment 8 Jakub Moc (RETIRED) gentoo-dev 2006-02-05 05:48:37 UTC
No response from user...
Comment 9 Marius Mauch (RETIRED) gentoo-dev 2007-01-11 11:06:42 UTC
Closing due to old age