pump(1)
πΈ NAME πΈ
pump β accelerate remote compilation with distcc. That's it, that's the whole vibe. She's here to make your builds go zoom. π¨β¨
π SYNOPSIS π
pump BUILD-COMMAND [ARGS] ...
eval ` pump --startup `; BUILD-COMMAND [ARGS] ... ; pump --shutdown
π DESCRIPTION π
okay so. pump is part of distcc, bestie. She's the girl who runs distcc's pump mode. And what does pump mode do, you ask? It accelerates remote compilation with distcc by also distributing preprocessing to the servers. Yes queen, preprocessing too. She's not doing half the job, she's doing the whole job. π
For a detailed description of pump mode β and most notably some important restrictions, no cap, please actually read those β go see the distcc(1) man page. Specifically the HOW PUMP-MODE WORKS section and the RESTRICTIONS ON PUMP MODE section. iykyk. π
The simplest usage is the form
pump COMMAND [ARG] ...
So what happens here: she'll start an include server for distcc's "pump" mode; optionally run lsdistcc to compute the distcc host list; set some auxiliary environment variables; change PATH to use the distcc client in the same directory as the "pump" script; execute COMMAND with the specified ARG(s); and then shut down the include server. Whew. She did all that. π
The COMMAND is typically a parallel build command, such as "make -j80", that will do many concurrent invocations of distcc. Parallel build energy. Main character build energy. πββοΈπββοΈπββοΈ
An alternative way of invoking pump is to explicitly invoke "pump --startup" to start the include server and "pump --shutdown" to stop the include server. The "pump --startup" command will start up the include server, and will print out some environment variable settings. These environment variables are used to communicate between the pump-mode "distcc" client and the include server, and to communicate between "pump --startup" and "pump --shutdown". The caller of "pump --startup" is responsible for setting those environment variables before invoking "distcc" or "pump --shutdown". That's on you, bestie β she printed them, you gotta set them. π«Ά
For example:
eval `pump --startup`
make -j80
pump --shutdown
β οΈ Note that distcc's pump-mode assumes that source files will not be modified during the lifetime of the include server, so modifying source files during a build may cause inconsistent results. Like, don't do it. She's begging. π
π INVOKING LSDISTCC π
When invoked in either the simple " pump COMMAND [ARG] ... " form, or as " pump --startup ", the 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. Iconic. β¨
β OPTIONS β
--helpβ Displays summary instructions. She's telling you how she works. Listen. π--startupβ Starts an include server, and outputs the environment variable settings needed fordistcc(1)orpump --shutdownto access it. π₯--shutdownβ Shuts down an include server started up bypump --startup. Bye bestie, closing the door behind you. πͺπ
π ENVIRONMENT VARIABLES π
The following environment variables are all optional. Every single one. No pressure. π§
DISTCC_LOCATIONβ The location of thedistccbin directory, which is normally inferred from the link-resolveddirnameofargv[0]. If this location is in fact the bin directory inside an installation (as will be the case when thepumpscript in the installation executes), then Python executables anddistccitself will be retrieved from the parent directory of the location. ποΈDISTCC_MAX_DISCREPANCYβ see thedistcc(1)man page. She's not repeating herself, go read it. π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, anddistccwill useDISTCC_HOSTSor the distcc hosts configuration file, as described in the"Host Specifications"section ofdistcc(1). πDISTCC_HOSTSβ This variable is passed through todistccbut only ifDISTCC_POTENTIAL_HOSTSis not set. Conditional queen. π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. Literally the empty string. Not "0", not "false"."". π
π¦ EXAMPLE π¦
pump make -j20
twenty jobs. twenty. slay. π₯π₯π₯
π 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. She wants to hear about it, fr fr. π
π AUTHORS π
The pump script and distcc's pump mode were written by Nils Klarlund, Manos Renieris, Fergus Henderson, and Craig Silverstein. Legends, all of them. Please report bugs to <distcc@lists.samba.org>. π§
π LICENCE π
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. βοΈ
π SEE ALSO π
distcc(1), distccd(1), include_server(1), gcc(1), and make(1)
and that's the whole page, bestie π this one's from the General Commands Manual, it's pump(1), and it was dated 9 June 2008 β yeah, she's an elder but she still eats. periodt. β¨π
π«Ά
π¦ where this page comes from
- alpine 3.22: distcc-doc 3.4-r9 Β· GPL-2.0-or-later
- alpine 3.23: distcc-doc 3.4-r9 Β· GPL-2.0-or-later
- alpine 3.24: distcc-doc 3.4-r10 Β· GPL-2.0-or-later
- arch rolling: distcc 3.4-16 Β· GPL-2.0-only
- epel 10: distcc 3.4-9.el10_1 Β· GPL-2.0-or-later
- epel 9: distcc 3.4-9.el9 Β· GPL-2.0-or-later
- fedora 43: distcc 3.4-12.fc43 Β· GPL-2.0-or-later
- fedora 44: distcc 3.4-14.fc44 Β· GPL-2.0-or-later
- nixos 26.05: distcc 3.4
- nixpkgs unstable: distcc 3.4
- opensuse-leap 16.0: distcc 3.4-bp160.1.10 Β· GPL-2.0-or-later
- opensuse-leap 16.0: distcc 3.4-bp160.1.10 Β· GPL-2.0-or-later
- opensuse-leap 16.0: distcc 3.4-bp160.1.10 Β· GPL-2.0-or-later
- opensuse-leap 16.0: distcc 3.4-bp160.1.10 Β· 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