pump(1)
π pump(1) β the distcc-pump glow-up π
okay bestie so this is a General Commands Manual page for pump, and it's literally the cheat code for making your builds go zoom. let's get into it π«Ά
β¨ NAME β¨
distcc-pump β accelerate remote compilation with distcc π
πΈ SYNOPSIS πΈ
distcc-pump BUILD-COMMAND [ARGS] ...
eval ` distcc-pump --startup `; BUILD-COMMAND [ARGS] ... ; distcc-pump --shutdown
π¦ DESCRIPTION π¦
distcc-pump is part of distcc, no cap. it's the whole reason distcc's pump mode exists. and pump mode? pump mode accelerates remote compilation with distcc by also distributing preprocessing to the servers. like, preprocessing. to the servers. she's doing the most and we love her for it π
if you want the full tea on pump mode β and bestie, most notably some important restrictions β go read the distcc(1) man page, specifically the HOW PUMP-MODE WORKS section and the RESTRICTIONS ON PUMP MODE section. do not skip those, fr fr π
the simplest usage is this form:
distcc-pump COMMAND [ARG] ...
here's what she does when you run it like that, in order:
- starts an include server for distcc's "pump" mode
- optionally runs
lsdistccto compute the distcc host list - sets some auxiliary environment variables
- changes
PATHto use the distcc client in the same directory as thedistcc-pumpscript - executes
COMMANDwith the specifiedARG(s) - then shuts down the include server
and COMMAND is typically a parallel build command β think make -j80 β something that's gonna do many concurrent invocations of distcc. iconic behaviour only β¨
an alternative way of invoking distcc-pump is to explicitly invoke distcc-pump --startup to start the include server and distcc-pump --shutdown to stop it. the distcc-pump --startup command will start up the include server, and will print out some environment variable settings. those environment variables are used to communicate between the pump-mode distcc client and the include server, and also to communicate between distcc-pump --startup and distcc-pump --shutdown. and listen: the caller of distcc-pump --startup is responsible for setting those environment variables before invoking distcc or distcc-pump --shutdown. that's on you, bestie π«΅
for example:
eval `distcc-pump --startup`
make -j80
distcc-pump --shutdown
β οΈ not me warning you about this one: distcc's pump-mode assumes that sources files will not be modified during the lifetime of the include server, so modifying source files during a build may cause inconsistent results. so like... don't do that. π
π INVOKING LSDISTCC π
when invoked in either the simple distcc-pump COMMAND [ARG] ... form, or as distcc-pump --startup, the distcc-pump script will invoke lsdistcc whenever DISTCC_POTENTIAL_HOSTS is set and DISTCC_HOSTS isn't. she'll pass the value of DISTCC_POTENTIAL_HOSTS to lsdistcc and use the output of lsdistcc to set DISTCC_HOSTS. automatic. effortless. slay π
π OPTIONS π
--helpβ displays summary instructions. the little "hey here's what I do" moment π₯°--startupβ starts an include server, and outputs the environment variable settings needed fordistcc(1)ordistcc-pump --shutdownto access it.--shutdownβ shuts down an include server started up bydistcc-pump --startup. bye bestie π
π ENVIRONMENT VARIABLES π
all of the following environment variables are optional, so no pressure, she's chill:
DISTCC_LOCATIONβ the location of the distcc bin directory, which is normally inferred from the link-resolved dirname ofargv[0]. if this location is in fact the bin directory inside an installation (as will be the case when the pump script in the installation executes), then Python executables and distcc itself will be retrieved from the parent directory of the location.DISTCC_MAX_DISCREPANCYβ see thedistcc(1)man page. (iykyk πΈ)DISTCC_POTENTIAL_HOSTSβ the distcc servers that will be queried bylsdistccin order to produce a value forDISTCC_HOSTS. this value may be unset or null. in such cases,lsdistccwill not be invoked, and distcc will useDISTCC_HOSTSor the distcc hosts configuration file, as described in the "Host Specifications" section ofdistcc(1).DISTCC_HOSTSβ this variable is passed through to distcc but only ifDISTCC_POTENTIAL_HOSTSis not set.LSDISTCC_ARGSβ extra arguments to pass tolsdistcc. seelsdistcc --helpfor more details.INCLUDE_SERVER_ARGSβ extra arguments to pass to the include server.PYTHONOPTIMIZEβ if set to"", then Python optimization is disabled.
π EXAMPLE π
distcc-pump make -j20
look at her go. main character energy fr β¨
π BUGS π
if you think you have found a distcc bug, please see the file reporting-bugs.txt in the documentation directory for information on how to report it. we wanna hear it, bestie π«Ά
π AUTHORS π
the distcc-pump script and distcc's pump mode were written by Nils Klarlund, Manos Renieris, Fergus Henderson, and Craig Silverstein. legends, honestly. π
please report bugs to <distcc@lists.samba.org>.
β LICENCE β
distcc-pump is part of distcc. you are free to use distcc. distcc (including this manual) may be copied, modified or distributed only under the terms of the GNU General Public Licence version 2 or later. distcc comes with absolutely no warranty. a copy of the GPL is included in the file COPYING.
π¨ "only under the terms of" is doing a LOT of heavy lifting there. read your licence, bestie, it's giving legally binding π
πΈ SEE ALSO πΈ
distcc(1), distccd(1), include_server(1), gcc(1), and make(1)
and that's the whole page!! this one's from the General Commands Manual, version vibes of 9 June 2008 β yeah she's been iconic since 2008 and she's still serving π bye bestie, go build something π¦
π¦ where this page comes from
- debian bookworm: distcc-pump 3.4+really3.4-3
- debian trixie: distcc-pump 3.4+really3.4-12
- ubuntu jammy: distcc-pump 3.4+really3.3.5-3build1
- ubuntu noble: distcc-pump 3.4+really3.4-4build3
- ubuntu questing: distcc-pump 3.4+really3.4-12
- ubuntu resolute: distcc-pump 3.4+really3.4-12build1
- ubuntu stonking: distcc-pump 3.4+really3.4-13 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms