Skip to content

Releases: whisperity/distcc-driver

v2.0.1

17 Jun 11:47
fb429b7
Compare
Choose a tag to compare

Bugfix release to prevent Shells always exiting when calling distcc_build.

What's Changed

  • fix: Do not exec the main script, it kills the shell by @whisperity in #3

v2.0

11 Jun 16:11
e321fd7
Compare
Choose a tag to compare

This patch is a complete reimplementation of the distcc-driver tool from the ground up.

Major improvements vs. v1

  • Support raw TCP mode for job distribution
  • Manage SSH tunnels in the background automatically instead of requiring the user to establish them preemptively
  • Support for DistCC v3 servers, query the number of jobs dispatchable to a remote, instead of having the user manage the values manually on the clients
  • Scaling of jobs distributed to remote workers based on available memory (if reported, see distcc/distcc#521 and whisperity/distcc-docker#1)

Migration guide from v1 script usage to v2

Suppose you have the following SSH config (~/.ssh/config) with your previously established tunnels:

Host machine-1
  HostName machine-1.company.org
  LocalForward 36320 localhost:3632

Host machine-2
  HostName machine-2.company.org
  LocalForward 36321 localhost:3632

And the following v1 environment variables:

export DISTCC_PORTS="36320/16 36321/24"
export DISTCC_NUM_ONLY_LOCAL=16
export DISTCC_NUM_FIRST_LOCAL=4
export DISTCC_NUM_LOCAL_SCALING="yes"
export DISTCC_LOCAL_MEM=2048

DISTCC_PORTS + ~/.ssh/configDISTCC_AUTO_HOSTS

If machine-1 and machine-2 are directly available over your network, you can drop the SSH use completely:

export DISTCC_AUTO_HOSTS="machine-1.company.org machine-2.company.org"

Otherwise, if you still have to use SSH tunnels, you can drop the LocalForward directives, and set DISTCC_AUTO_HOSTS to use SSH:

Host machine-1
  HostName machine-1.company.org

Host machine-2
  HostName machine-2.company.org
export DISTCC_AUTO_HOSTS="ssh://machine-1 ssh://machine-2"

Other configuration variables

# export DISTCC_PORTS="36320/16 36321/24"
# ⚠️🚧 'DISTCC_PORTS' is no longer used!
# 'DISTCC_AUTO_HOSTS' is to be used instead, but it has a different format
# and an extended meaning, see above!

# export DISTCC_NUM_ONLY_LOCAL=16
export DISTCC_AUTO_FALLBACK_LOCAL_JOBS=16

# export DISTCC_NUM_FIRST_LOCAL=4
export DISTCC_AUTO_EARLY_LOCAL_JOBS=4

# export DISTCC_NUM_LOCAL_SCALING="yes"
# ⚠️🚧 'DISTCC_NUM_LOCAL_SCALING' is no longer used!
# Scaling is automatically executed, the configuration variable lost its purpose.

# export DISTCC_LOCAL_MEM=2048
export DISTCC_AUTO_COMPILER_MEMORY=2048

v1.0

23 May 11:42
Compare
Choose a tag to compare

The original distribution script for DistCC version 2.y