Opened 10 years ago

Last modified 9 years ago

#43071 new update

distcc updates — at Version 2

Reported by: RJVB (René Bertin) Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 2.2.1
Keywords: Cc:
Port: distcc

Description (last modified by pixilla (Bradley Giesbrecht))

I did some work to improve the distcc port, following a question I posted on the mailing list. MacPorts already had the latest distcc variant, but it failed to support "pumped" mode for me, and didn't support zeroconf to advertise itself.

I'm uploading an updated Portfile as well as 2 supporting files.

  1. The portfile now has variants for building the graphical monitor, distccmon-gnome
  2. I tried to build with zeroconf support, but got stuck on a "daemon not running error". It may be possible to implement a standalone server, like in avahi-discover-standalone ?
  3. Patched an error in zeroconf-reg.c
  4. rename the pump script to the more specific distcc-pump, in line with Debian
  5. added a wrapper to start a shell running a pump server (distcc-pumpedshell)
  6. added a LaunchDaemon definition, to enable a server on localhost only and currently without zeroconf. This file should be installed in /opt/local/Library/LaunchDaemons only when it doesn't exist already.

Does someone know how to address the avahi server issue, for instance how to launch one through a nested LaunchDaemon definition? For now I didn't even manage to launch one by hand (user nor root).

Relevant snippet from macports-user: On Mar 25, 2014, at 10:03, Ryan Schmidt wrote:

On Mar 25, 2014, at 03:16, René J.V. Bertin <rjvbertin@…> wrote:

Since I discovered that clang can act as a cross-compiler (generating "foreign" object, .o , files), I have a renewed interest in distcc. I'm doing rather large builds on a Linux box, and the distcc I have on there is capable of a so-called pump mode in which the precompile step is also delegated to the slaves, via a header file server. It also has lzo compression.

From what I've seen, distcc in MacPorts doesn't support neither pump mode nor suppression, and it also doesn't support the --zeroconf option (present on Apple's distcc) which advertises the services via ZeroConf.

Is there a reason for this?

The distcc port has no maintainer; nobody is looking after its interests. If we need to make a change to the port, please file a ticket to let us know, ideally supplying a unified diff of the needed changes. The port currently doesn’t seem to be doing anything too unusual with the build, so if these features you’re mentioning are unusual features that need to be explicitly enabled, then you should show us how to do that.

Change History (6)

Changed 10 years ago by RJVB (René Bertin)

Attachment: Portfile added

updated Portfile

Changed 10 years ago by RJVB (René Bertin)

Attachment: patch-zeroconf-reg.c added

prevent a NULL pointer dereference in zeroconf-reg.c

Changed 10 years ago by RJVB (René Bertin)

Attachment: distcc-pumpedshell added

goes in files

Changed 10 years ago by RJVB (René Bertin)

Attachment: org.macports.distccd.plist added

goes in files

comment:1 Changed 10 years ago by pixilla (Bradley Giesbrecht)

Consider using Portfiles startupitem to replace org.macports.distccd.plist. https://guide.macports.org/#reference.startupitems

If Portfiles startupitem is not convenient then replace "/opt/local" with something like "@PREFIX@" in org.macports.distccd.plist, copy the file to ${worksrcpath} in "post_extract" and use reinplace in "post_patch" to replace "@PREFIX@" with ${prefix}.

comment:2 Changed 10 years ago by pixilla (Bradley Giesbrecht)

Description: modified (diff)
Note: See TracTickets for help on using tickets.