├── AppDNA.sh ├── DistCode.xcodeproj └── project.pbxproj ├── DistCode ├── AppDelegate.h ├── AppDelegate.m ├── AppIcon.icns ├── Base.lproj │ └── MainMenu.xib ├── DOTabbar.h ├── DOTabbar.m ├── DOTabbarItemCell.h ├── DOTabbarItemCell.m ├── Defaults.plist ├── DistCode-Bridging-Header.h ├── DistCode-Info.plist ├── DistCode-Prefix.pch ├── DistCode.h ├── DistCode.mm ├── DistCode.swift ├── IceCode.h ├── IceCode.mm ├── Images.xcassets │ ├── AppIcon.appiconset │ │ ├── Contents.json │ │ ├── preferences-system-network-1.png │ │ ├── preferences-system-network-2.png │ │ ├── preferences-system-network-3.png │ │ ├── preferences-system-network-4.png │ │ ├── preferences-system-network-5.png │ │ ├── preferences-system-network-6.png │ │ └── preferences-system-network.png │ ├── applications-system.iconset │ │ ├── icon_128x128.png │ │ ├── icon_128x128@2x.png │ │ ├── icon_16x16.png │ │ ├── icon_16x16@2x.png │ │ ├── icon_256x256.png │ │ ├── icon_32x32.png │ │ └── icon_32x32@2x.png │ ├── computer.iconset │ │ ├── icon_128x128.png │ │ ├── icon_128x128@2x.png │ │ ├── icon_16x16.png │ │ ├── icon_16x16@2x.png │ │ ├── icon_256x256.png │ │ ├── icon_32x32.png │ │ └── icon_32x32@2x.png │ ├── distccmon-gnome-icon.imageset │ │ ├── Contents.json │ │ └── distccmon-gnome-icon.png │ └── utilities-system-monitor.iconset │ │ ├── icon_128x128.png │ │ ├── icon_16x16.png │ │ ├── icon_16x16@2x.png │ │ ├── icon_32x32.png │ │ └── icon_32x32@2x.png ├── OBMenuBarWindow.h ├── OBMenuBarWindow.m ├── applications-system.icns ├── applications-system.svg ├── computer.icns ├── computer.svg ├── dsa_pub.pem ├── en.lproj │ ├── Credits.rtf │ └── InfoPlist.strings ├── mac_client-512.png ├── main.m ├── preferences-system-network.svg ├── user-busy.png ├── user-busy.svg ├── user-online.png ├── user-online.svg ├── utilities-system-monitor.icns ├── utilities-system-monitor.svg └── vpn-512.png ├── Distcc 3.2 ├── Distcc 3.2-Info.plist ├── Distcc 3.2.xcspec ├── English.lproj │ └── Distcc 3.2.strings ├── usr │ └── bin │ │ ├── clang │ │ └── clang++ └── version.plist ├── License.txt ├── README.md ├── Sparkle ├── .gitignore ├── CHANGELOG ├── Configurations │ ├── ConfigBinaryDelta.xcconfig │ ├── ConfigBinaryDeltaDebug.xcconfig │ ├── ConfigBinaryDeltaRelease.xcconfig │ ├── ConfigCommon.xcconfig │ ├── ConfigCommonDebug.xcconfig │ ├── ConfigCommonRelease.xcconfig │ ├── ConfigFramework.xcconfig │ ├── ConfigFrameworkDebug.xcconfig │ ├── ConfigFrameworkRelease.xcconfig │ ├── ConfigRelaunch.xcconfig │ ├── ConfigRelaunchDebug.xcconfig │ ├── ConfigRelaunchRelease.xcconfig │ ├── ConfigTestApp.xcconfig │ ├── ConfigTestAppDebug.xcconfig │ ├── ConfigTestAppRelease.xcconfig │ ├── ConfigUnitTest.xcconfig │ ├── ConfigUnitTestDebug.xcconfig │ └── ConfigUnitTestRelease.xcconfig ├── Info.plist ├── License.txt ├── Makefile ├── NTSynchronousTask.h ├── NTSynchronousTask.m ├── README.markdown ├── Relaunch Tool-Info.plist ├── SUAppcast.h ├── SUAppcast.m ├── SUAppcastItem.h ├── SUAppcastItem.m ├── SUAutomaticUpdateAlert.h ├── SUAutomaticUpdateAlert.m ├── SUAutomaticUpdateDriver.h ├── SUAutomaticUpdateDriver.m ├── SUBasicUpdateDriver.h ├── SUBasicUpdateDriver.m ├── SUBinaryDeltaApply.h ├── SUBinaryDeltaApply.m ├── SUBinaryDeltaCommon.h ├── SUBinaryDeltaCommon.m ├── SUBinaryDeltaTool.m ├── SUBinaryDeltaUnarchiver.h ├── SUBinaryDeltaUnarchiver.m ├── SUCodeSigningVerifier.h ├── SUCodeSigningVerifier.m ├── SUConstants.h ├── SUConstants.m ├── SUDSAVerifier.h ├── SUDSAVerifier.m ├── SUDiskImageUnarchiver.h ├── SUDiskImageUnarchiver.m ├── SUHost.h ├── SUHost.m ├── SUInstaller.h ├── SUInstaller.m ├── SULog.h ├── SULog.m ├── SUModelTranslation.plist ├── SUPackageInstaller.h ├── SUPackageInstaller.m ├── SUPipedUnarchiver.h ├── SUPipedUnarchiver.m ├── SUPlainInstaller.h ├── SUPlainInstaller.m ├── SUPlainInstallerInternals.h ├── SUPlainInstallerInternals.m ├── SUProbingUpdateDriver.h ├── SUProbingUpdateDriver.m ├── SUScheduledUpdateDriver.h ├── SUScheduledUpdateDriver.m ├── SUStandardVersionComparator.h ├── SUStandardVersionComparator.m ├── SUStatus.xib ├── SUStatusController.h ├── SUStatusController.m ├── SUSystemProfiler.h ├── SUSystemProfiler.m ├── SUUIBasedUpdateDriver.h ├── SUUIBasedUpdateDriver.m ├── SUUnarchiver.h ├── SUUnarchiver.m ├── SUUnarchiver_Private.h ├── SUUnarchiver_Private.m ├── SUUpdateAlert.h ├── SUUpdateAlert.m ├── SUUpdateDriver.h ├── SUUpdateDriver.m ├── SUUpdatePermissionPrompt.h ├── SUUpdatePermissionPrompt.m ├── SUUpdater.h ├── SUUpdater.m ├── SUUpdater_Private.h ├── SUUserInitiatedUpdateDriver.h ├── SUUserInitiatedUpdateDriver.m ├── SUVersionComparisonProtocol.h ├── SUVersionDisplayProtocol.h ├── SUWindowController.h ├── SUWindowController.m ├── Sample Appcast.xml ├── Sparkle.h ├── Sparkle.icns ├── Sparkle.pch ├── Sparkle.png ├── Sparkle.xcodeproj │ ├── .gitignore │ └── project.pbxproj ├── Test Application │ ├── English.lproj │ │ ├── InfoPlist.strings │ │ └── MainMenu.xib │ ├── Test Application-Info.plist │ ├── dsa_priv.pem │ ├── dsa_pub.pem │ └── main.m ├── Tests │ ├── SUVersionComparisonTest.h │ ├── SUVersionComparisonTest.m │ └── Sparkle Unit Tests-Info.plist ├── ar.lproj │ ├── SUAutomaticUpdateAlert.xib │ ├── SUUpdateAlert.xib │ ├── SUUpdatePermissionPrompt.xib │ └── Sparkle.strings ├── bsdiff.c ├── bspatch.c ├── bspatch.h ├── ca.lproj │ ├── SUAutomaticUpdateAlert.strings │ ├── SUUpdateAlert.strings │ └── Sparkle.strings ├── cs.lproj │ ├── SUAutomaticUpdateAlert.xib │ ├── SUUpdateAlert.xib │ ├── SUUpdatePermissionPrompt.xib │ └── Sparkle.strings ├── cy.lproj │ └── Sparkle.strings ├── da.lproj │ ├── SUAutomaticUpdateAlert.xib │ ├── SUUpdateAlert.xib │ ├── SUUpdatePermissionPrompt.xib │ └── Sparkle.strings ├── de.lproj │ ├── SUAutomaticUpdateAlert.xib │ ├── SUUpdateAlert.xib │ ├── SUUpdatePermissionPrompt.xib │ └── Sparkle.strings ├── el.lproj │ ├── SUAutomaticUpdateAlert.xib │ ├── SUUpdateAlert.xib │ ├── SUUpdatePermissionPrompt.xib │ └── Sparkle.strings ├── en.lproj │ ├── SUAutomaticUpdateAlert.xib │ ├── SUUpdateAlert.xib │ ├── SUUpdatePermissionPrompt.xib │ └── Sparkle.strings ├── es.lproj │ ├── SUAutomaticUpdateAlert.xib │ ├── SUUpdateAlert.xib │ ├── SUUpdatePermissionPrompt.xib │ └── Sparkle.strings ├── fi.lproj │ ├── SUAutomaticUpdateAlert.strings │ ├── SUUpdateAlert.strings │ └── Sparkle.strings ├── finish_installation-Info.plist ├── finish_installation.m ├── finish_installation.pch ├── fr.lproj │ ├── SUAutomaticUpdateAlert.xib │ ├── SUUpdateAlert.xib │ ├── SUUpdatePermissionPrompt.xib │ └── Sparkle.strings ├── generate_keys.rb ├── he.lproj │ ├── SUAutomaticUpdateAlert.strings │ ├── SUUpdateAlert.strings │ └── Sparkle.strings ├── hu.lproj │ └── Sparkle.strings ├── id.lproj │ └── Sparkle.strings ├── is.lproj │ ├── SUAutomaticUpdateAlert.xib │ ├── SUUpdateAlert.xib │ ├── SUUpdatePermissionPrompt.xib │ └── Sparkle.strings ├── it.lproj │ ├── SUAutomaticUpdateAlert.xib │ ├── SUUpdateAlert.xib │ ├── SUUpdatePermissionPrompt.xib │ └── Sparkle.strings ├── ja.lproj │ ├── SUAutomaticUpdateAlert.xib │ ├── SUUpdateAlert.xib │ ├── SUUpdatePermissionPrompt.xib │ └── Sparkle.strings ├── ko.lproj │ ├── SUAutomaticUpdateAlert.xib │ ├── SUUpdateAlert.xib │ ├── SUUpdatePermissionPrompt.xib │ └── Sparkle.strings ├── nl.lproj │ ├── SUAutomaticUpdateAlert.xib │ ├── SUUpdateAlert.xib │ ├── SUUpdatePermissionPrompt.xib │ └── Sparkle.strings ├── no.lproj │ ├── SUAutomaticUpdateAlert.strings │ ├── SUUpdateAlert.strings │ └── Sparkle.strings ├── pl.lproj │ ├── SUAutomaticUpdateAlert.xib │ ├── SUUpdateAlert.xib │ ├── SUUpdatePermissionPrompt.xib │ └── Sparkle.strings ├── pt_BR.lproj │ ├── SUAutomaticUpdateAlert.xib │ ├── SUUpdateAlert.xib │ ├── SUUpdatePermissionPrompt.xib │ └── Sparkle.strings ├── pt_PT.lproj │ ├── SUAutomaticUpdateAlert.xib │ ├── SUUpdateAlert.xib │ ├── SUUpdatePermissionPrompt.xib │ └── Sparkle.strings ├── ro.lproj │ ├── InfoPlist.strings │ ├── MainMenu.xib │ ├── SUAutomaticUpdateAlert.xib │ ├── SUUpdateAlert.xib │ ├── SUUpdatePermissionPrompt.xib │ └── Sparkle.strings ├── ru.lproj │ ├── SUAutomaticUpdateAlert.xib │ ├── SUUpdateAlert.xib │ ├── SUUpdatePermissionPrompt.xib │ └── Sparkle.strings ├── sign_update.rb ├── sk.lproj │ ├── SUAutomaticUpdateAlert.xib │ ├── SUUpdateAlert.xib │ ├── SUUpdatePermissionPrompt.xib │ └── Sparkle.strings ├── sl.lproj │ ├── SUAutomaticUpdateAlert.xib │ ├── SUUpdateAlert.xib │ ├── SUUpdatePermissionPrompt.xib │ └── Sparkle.strings ├── sv.lproj │ ├── SUAutomaticUpdateAlert.xib │ ├── SUUpdateAlert.xib │ ├── SUUpdatePermissionPrompt.xib │ └── Sparkle.strings ├── th.lproj │ ├── SUAutomaticUpdateAlert.xib │ ├── SUUpdateAlert.xib │ ├── SUUpdatePermissionPrompt.xib │ └── Sparkle.strings ├── tr.lproj │ ├── SUAutomaticUpdateAlert.xib │ ├── SUUpdateAlert.xib │ ├── SUUpdatePermissionPrompt.xib │ └── Sparkle.strings ├── uk.lproj │ ├── SUAutomaticUpdateAlert.xib │ ├── SUUpdateAlert.xib │ ├── SUUpdatePermissionPrompt.xib │ └── Sparkle.strings ├── zh_CN.lproj │ ├── SUAutomaticUpdateAlert.xib │ ├── SUUpdateAlert.xib │ ├── SUUpdatePermissionPrompt.xib │ └── Sparkle.strings └── zh_TW.lproj │ ├── SUAutomaticUpdateAlert.xib │ ├── SUUpdateAlert.xib │ ├── SUUpdatePermissionPrompt.xib │ └── Sparkle.strings ├── Updates └── Appcast.xml ├── distcc ├── AUTHORS ├── COPYING ├── ChangeLog ├── INSTALL ├── Makefile ├── Makefile.in ├── NEWS ├── README ├── README.md ├── README.packaging ├── README.pump ├── TODO ├── autogen.sh ├── bench │ ├── Build.py │ ├── Project.py │ ├── ProjectDefs.py │ ├── Summary.py │ ├── actions.py │ ├── benchmark.py │ ├── buildutil.py │ ├── compiler.py │ └── statistics.py ├── config.guess ├── config.sub ├── configure ├── configure.ac ├── contrib │ ├── distcc-absolutify │ ├── distcc.sh │ ├── distccd-init │ ├── distccd-on-servers │ ├── dmake │ ├── make-j │ ├── netpwd │ ├── redhat │ │ ├── init │ │ ├── logrotate │ │ ├── sysconfig │ │ └── xinetd │ └── stage-cc-wrapper.patch ├── distcc-read-only.xcodeproj │ └── project.pbxproj ├── distcc_compilers ├── doc │ ├── example │ │ ├── README │ │ ├── default │ │ ├── hosts.allow │ │ ├── init │ │ ├── init-suse │ │ ├── logrotate │ │ ├── services │ │ └── xinetd │ ├── protocol-1.txt │ ├── protocol-2.txt │ ├── protocol-3-impl.txt │ ├── protocol-3.txt │ ├── protocol-gssapi.txt │ ├── reporting-bugs.txt │ ├── status-1.txt │ └── web │ │ ├── benchmark.html │ │ ├── compared.html │ │ ├── compilers.html │ │ ├── distcc-green.css │ │ ├── distcc-lca-2004.html │ │ ├── distcc-lca-2004.pdf │ │ ├── distcc-lca2003.ps.gz │ │ ├── distccmon-gnome-2003-09-23-01.png │ │ ├── faq.html │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── man │ │ ├── distcc_1.html │ │ ├── distccd_1.html │ │ ├── distccmon_text_1.html │ │ ├── include_server_1.html │ │ ├── index.html │ │ ├── lsdistcc_1.html │ │ └── pump_1.html │ │ ├── results.html │ │ ├── scenarios.html │ │ └── security.html ├── find_c_extension.sh ├── gnome │ ├── distccmon-gnome-icon.png │ └── distccmon-gnome.desktop ├── include_server │ ├── __init__.py │ ├── basics.py │ ├── basics_test.py │ ├── c_extensions │ │ └── distcc_pump_c_extensions_module.c │ ├── c_extensions_test.py │ ├── cache_basics.py │ ├── compiler_defaults.py │ ├── compress_files.py │ ├── headermap.py │ ├── include_analyzer.py │ ├── include_analyzer_memoizing_node.py │ ├── include_analyzer_memoizing_node_test.py │ ├── include_analyzer_test.py │ ├── include_server.py │ ├── include_server_test.py │ ├── macro_eval.py │ ├── macro_eval_test.py │ ├── mirror_path.py │ ├── mirror_path_test.py │ ├── parse_command.py │ ├── parse_command_test.py │ ├── parse_file.py │ ├── parse_file_test.py │ ├── run.py │ ├── setup.py │ ├── statistics.py │ └── test_data │ │ ├── abc_post.c │ │ ├── abc_pre.c │ │ ├── computed_includes.c │ │ ├── contains_abs_include.c │ │ ├── dbar │ │ ├── dbar1 │ │ │ └── bar.h │ │ └── foo.h │ │ ├── dfoo │ │ ├── foo.h │ │ ├── foo2.h │ │ ├── i_am_perhaps_a_directory.h │ │ ├── include_dotdot_foo │ │ ├── include_next_foo.h │ │ └── stat_triggers.h │ │ ├── distcc │ │ ├── README │ │ └── src │ │ │ ├── bulk.h │ │ │ ├── compile.h │ │ │ ├── config.h │ │ │ ├── distcc.c │ │ │ ├── distcc.h │ │ │ ├── emaillog.h │ │ │ ├── exitcode.h │ │ │ ├── hosts.h │ │ │ ├── implicit.h │ │ │ ├── include_me.h │ │ │ ├── state.h │ │ │ ├── trace.h │ │ │ └── util.h │ │ ├── func_macro.c │ │ ├── i_am_perhaps_a_directory.h │ │ └── empty_file │ │ ├── include_include_next_foo.h │ │ ├── maps │ │ └── foo.tpl.varnames.h │ │ ├── more_macros.c │ │ ├── p1.h │ │ ├── parse.c │ │ ├── stat_triggers.c │ │ ├── stat_triggers.h │ │ ├── symlink_farm │ │ ├── abc_post.c │ │ ├── abc_pre.c │ │ ├── computed_includes.c │ │ ├── dbar │ │ ├── dfoo │ │ ├── foo │ │ ├── p1.h │ │ ├── parse.c │ │ ├── sub_farm │ │ │ └── link_to_dd_dd_dfoo_include_dotdot_foo │ │ ├── test_directory_probing.c │ │ └── test_include_next │ │ ├── test_computed_includes │ │ ├── helper.c │ │ ├── incl.h │ │ ├── inclA.h │ │ ├── src.c │ │ └── srcA.c │ │ ├── test_directory_probing.c │ │ └── test_include_next │ │ ├── bar │ │ ├── x.h │ │ └── y.h │ │ ├── baz │ │ ├── start_x.c │ │ ├── start_y.c │ │ ├── x.h │ │ └── y.h │ │ ├── biz │ │ └── x.h │ │ └── foo │ │ ├── x.h │ │ └── y.h ├── install-sh ├── lzo │ ├── .stamp-conf.in │ ├── lzoconf.h │ ├── minilzo.c │ └── minilzo.h ├── m4 │ ├── acx_pthread.m4 │ └── pkg.m4 ├── man │ ├── distcc.1 │ ├── distccd.1 │ ├── distccmon-text.1 │ ├── include_server.1 │ ├── lsdistcc.1 │ └── pump.1 ├── mkinstalldirs ├── packaging │ ├── RedHat │ │ ├── conf │ │ │ ├── clients.allow │ │ │ ├── commands.allow.sh │ │ │ └── hosts │ │ ├── default │ │ │ └── distcc │ │ ├── init.d │ │ │ └── distcc │ │ ├── logrotate.d │ │ │ └── distcc │ │ ├── rpm.spec │ │ └── xinetd.d │ │ │ └── distcc │ ├── deb.sh │ ├── googlecode_upload.py │ └── rpm.sh ├── popt │ ├── .stamp-conf.in │ ├── README.popt │ ├── findme.c │ ├── findme.h │ ├── popt.c │ ├── popt.h │ ├── poptconfig.c │ ├── popthelp.c │ ├── poptint.h │ ├── poptparse.c │ └── system.h ├── pump.in ├── src │ ├── access.c │ ├── access.h │ ├── arg.c │ ├── argutil.c │ ├── auth.h │ ├── auth_common.c │ ├── auth_distcc.c │ ├── auth_distccd.c │ ├── backoff.c │ ├── bulk.c │ ├── bulk.h │ ├── byte_swapping.h │ ├── cleanup.c │ ├── climasq.c │ ├── clinet.c │ ├── clinet.h │ ├── clirpc.c │ ├── compile.c │ ├── compile.h │ ├── compress.c │ ├── config.h.in │ ├── cpp.c │ ├── cpp_dialect.c │ ├── cpp_dialect.h │ ├── daemon.c │ ├── daemon.h │ ├── distcc.c │ ├── distcc.h │ ├── dopt.c │ ├── dopt.h │ ├── dotd.c │ ├── dotd.h │ ├── dparent.c │ ├── dsignal.c │ ├── emaillog.c │ ├── emaillog.h │ ├── exec.c │ ├── exec.h │ ├── exitcode.h │ ├── filename.c │ ├── fix_debug_info.c │ ├── fix_debug_info.h │ ├── gcc-id.c │ ├── h_argvtostr.c │ ├── h_compile.c │ ├── h_dotd.c │ ├── h_exten.c │ ├── h_getline.c │ ├── h_hosts.c │ ├── h_issource.c │ ├── h_parsemask.c │ ├── h_repsubstr.c │ ├── h_sa2str.c │ ├── h_scanargs.c │ ├── h_strip.c │ ├── help.c │ ├── history.c │ ├── hostfile.c │ ├── hosts.c │ ├── hosts.h │ ├── implicit.c │ ├── implicit.h │ ├── include_server_if.c │ ├── include_server_if.h │ ├── io.c │ ├── loadfile.c │ ├── lock.c │ ├── lock.h │ ├── lsdistcc.c │ ├── mach_o_stub.h │ ├── mon-gnome.c │ ├── mon-notify.c │ ├── mon-text.c │ ├── mon.c │ ├── mon.h │ ├── ncpus.c │ ├── netutil.c │ ├── netutil.h │ ├── prefork.c │ ├── pump.c │ ├── remote.c │ ├── renderer.c │ ├── renderer.h │ ├── rpc.c │ ├── rpc.h │ ├── rslave.c │ ├── rslave.h │ ├── safeguard.c │ ├── sendfile.c │ ├── serve.c │ ├── setuid.c │ ├── snprintf.c │ ├── snprintf.h │ ├── srvnet.c │ ├── srvnet.h │ ├── srvrpc.c │ ├── ssh.c │ ├── state.c │ ├── state.h │ ├── stats.c │ ├── stats.h │ ├── stringmap.c │ ├── stringmap.h │ ├── strip.c │ ├── tempfile.c │ ├── timefile.c │ ├── timefile.h │ ├── timeval.c │ ├── timeval.h │ ├── trace.c │ ├── trace.h │ ├── traceenv.c │ ├── types.h │ ├── util.c │ ├── util.h │ ├── va_copy.h │ ├── where.c │ ├── where.h │ ├── xci.h │ ├── xci_headermap.c │ ├── xci_utils.c │ ├── xci_versinfo.c │ ├── xci_zeroconf.c │ ├── zeroconf-reg.c │ ├── zeroconf.c │ └── zeroconf.h ├── survey.txt └── test │ ├── comfychair.py │ ├── onetest.py │ └── testdistcc.py ├── distclang ├── distclang.1 └── main.cpp └── dmucs ├── CVSROOT ├── checkoutlist ├── commitinfo ├── config ├── cvswrappers ├── editinfo ├── loginfo ├── modules ├── notify ├── rcsinfo ├── taginfo └── verifymsg ├── README.md ├── dmucs.xcodeproj └── project.pbxproj └── dmucs ├── AUTHORS ├── COPYING ├── COSMIC ├── AS400 │ ├── ADUCBAT │ ├── ADUCBATB │ ├── AS400.NOTES │ ├── READ.ME │ ├── RUNAU17 │ ├── adusslbnd │ ├── crtsslsrv │ └── startau17w ├── DOC │ ├── History │ ├── README │ ├── porting.doc │ ├── sockets.ps │ ├── sockets.tex │ └── sockets.txt ├── EXAMPLES │ ├── Makefile │ ├── multiskt.c │ ├── oobrecv.c │ ├── oobsend.c │ ├── sktfork.c │ ├── sktpoll.c │ ├── sktsig.c │ ├── smclient.c │ ├── smsrvr.c │ ├── talkclient.c │ └── talksrvr.c ├── EXE │ ├── MAKEFILE.os2 │ ├── Makefile │ ├── Spm.c │ ├── sktdbg.c │ ├── spmchk.c │ ├── spmtable.c │ └── srmsrvr.c ├── HDR │ ├── rdcolor.h │ ├── setproto.h │ ├── sockets.h │ ├── xstdlib.h │ └── xtdio.h ├── MAKE.CMD ├── MAKEFILE.os2 ├── Makefile ├── Makefile.am ├── Makefile.in ├── Makelib. ├── Makeskt.bat ├── Makeskt.com ├── Mkwin95.bat ├── Saccept.c ├── Sclose.c ├── Sgets.c ├── Sinit.c ├── Smaskwait.c ├── Smkskt.c ├── Sopen.c ├── Sopenv.c ├── Speek.c ├── Speeraddr.c ├── Speername.c ├── Sprintf.c ├── Sprtskt.c ├── Sputs.c ├── Sread.c ├── Sreadbytes.c ├── Srmsrvr.c ├── Sscanf.c ├── Stest.c ├── Stimeoutwait.c ├── Svprintf.c ├── Swait.c ├── Swrite.c ├── cprt.c ├── error.c ├── fopenv.c ├── outofmem.c ├── rdcolor.c ├── rdcolor.dat ├── sprt.c ├── srmtrblk.c ├── stpblk.c ├── stpnxt.c └── strnxtfmt.c ├── ChangeLog ├── INSTALL ├── Makefile.am ├── Makefile.in ├── NEWS ├── README ├── aclocal.m4 ├── autogen.sh ├── autom4te.cache ├── output.0 ├── output.1 ├── requests ├── traces.0 └── traces.1 ├── autoscan.log ├── config.guess ├── config.h ├── config.h.in ├── config.sub ├── configure ├── configure.ac ├── configure.scan ├── depcomp ├── dmucs.h ├── dmucs_db.cc ├── dmucs_db.h ├── dmucs_dprop.h ├── dmucs_host.cc ├── dmucs_host.h ├── dmucs_host_state.cc ├── dmucs_host_state.h ├── dmucs_hosts_file.cc ├── dmucs_hosts_file.h ├── dmucs_msg.cc ├── dmucs_msg.h ├── dmucs_pkt.cc ├── dmucs_pkt.h ├── dmucs_resolve.cc ├── dmucs_resolve.h ├── gethost.cc ├── install-sh ├── libtool ├── loadavg.cc ├── main.cc ├── missing ├── mkinstalldirs ├── monitor.cc ├── remhost.cc ├── scripts ├── disable-host ├── enable-host └── watch-ssaver └── test.cc /DistCode/AppIcon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/DistCode/AppIcon.icns -------------------------------------------------------------------------------- /DistCode/DOTabbarItemCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // DOTabbarItemCell.h 3 | // DOTabbar 4 | // 5 | // Created by Dmitry Obukhov on 30.03.13. 6 | // Copyright (c) 2013 Dmitry Obukhov. All rights reserved. 7 | // 8 | 9 | /* 10 | Copyright (c) 2013 Dmitry Obukhov 11 | 12 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 17 | */ 18 | 19 | #import 20 | 21 | @interface DOTabbarItemCell : NSButtonCell 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /DistCode/Defaults.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | VerboseOutput 6 | 7 | MaxJobs 8 | -1 9 | CoordinatorMode 10 | 0 11 | HostTimeout 12 | 10 13 | RunCompilationHost 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /DistCode/DistCode-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | // 2 | // Use this file to import your target's public headers that you would like to expose to Swift. 3 | // 4 | 5 | #include "IceCode.h" 6 | #include "DOTabbar.h" 7 | #include "DOTabbarItemCell.h" 8 | #include "OBMenuBarWindow.h" 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /DistCode/DistCode-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.marksatt.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 3.0.3 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 3.0.3 23 | LSMinimumSystemVersion 24 | ${MACOSX_DEPLOYMENT_TARGET} 25 | LSUIElement 26 | 27 | NSHumanReadableCopyright 28 | Copyright © 2013-2016 marksatt. All rights reserved. 29 | NSMainNibFile 30 | MainMenu 31 | NSPrincipalClass 32 | NSApplication 33 | SUFeedURL 34 | https://raw.githubusercontent.com/marksatt/DistCode/master/Updates/Appcast.xml 35 | SUPublicDSAKeyFile 36 | dsa_pub.pem 37 | 38 | 39 | -------------------------------------------------------------------------------- /DistCode/DistCode-Prefix.pch: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * DistCode -- An OS X GUI & Xcode plugin for the distcc distributed C compiler. 4 | * 5 | * Copyright (C) 2013-16 by Mark Satterthwaite 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | // 22 | // Prefix header 23 | // 24 | // The contents of this file are implicitly included at the beginning of every source file. 25 | // 26 | 27 | #ifdef __OBJC__ 28 | #import 29 | #endif 30 | -------------------------------------------------------------------------------- /DistCode/DistCode.h: -------------------------------------------------------------------------------- 1 | // 2 | // DistCode.h 3 | // DistCode 4 | // 5 | // Created by Mark Satterthwaite on 31/07/2015. 6 | // Copyright (c) 2015 marksatt. All rights reserved. 7 | // 8 | 9 | #ifndef DistCode_DistCode_h 10 | #define DistCode_DistCode_h 11 | 12 | #import 13 | 14 | @interface DistCode : NSObject 15 | { 16 | @private 17 | NSTask* DistCCDaemon; 18 | NSPipe* DistCCPipe; 19 | 20 | NSTask* DmucsDaemon; 21 | NSPipe* DmucsPipe; 22 | 23 | NSPipe* LoadAvgPipe; 24 | NSTask* LoadAvgDaemon; 25 | } 26 | - (BOOL)startup; 27 | - (void)shutdown; 28 | - (BOOL)restart; 29 | - (NSTask*)beginDaemonTask:(NSString*)Path withArguments:(NSArray*)Arguments andPipe:(NSPipe*)Pipe; 30 | - (NSString*)executeTask:(NSString*)Path withArguments:(NSArray*)Arguments; 31 | - (void)startDistccDaemonAsCoordinator:(BOOL)AsCoordinator; 32 | - (void)stopDistccDaemon; 33 | - (void)startDmucsDaemon; 34 | - (void)stopDmucsDaemon; 35 | - (NSDictionary*)updateDmucs; 36 | - (BOOL)startLoadAvg: (NSString*)Server; 37 | - (void)stopLoadAvg; 38 | - (BOOL)startCompileHost; 39 | - (void)stopCompileHost; 40 | - (NSMutableArray*)pumpDistccMon; 41 | - (NSString*)hostName; 42 | - (NSString*)hostProperty; 43 | - (NSMutableDictionary*)hostInfo; 44 | - (void)addHost:(NSString*)Host ToServer:(NSString*)Server withNumCPUS:(unsigned)NumCPUs andPowerIndex:(unsigned)Index; 45 | - (void)removeHost:(NSString*)Host fromServer:(NSString*)Server; 46 | - (BOOL)runCoordinator; 47 | - (BOOL)runCompileHost; 48 | - (BOOL)verboseOutput; 49 | - (NSString*)coordinatorIPAddress; 50 | - (NSNumber*)hostTimeout; 51 | - (void)toggleCompileHost:(BOOL)State; 52 | - (void)install; 53 | @end 54 | 55 | #endif 56 | -------------------------------------------------------------------------------- /DistCode/IceCode.h: -------------------------------------------------------------------------------- 1 | // 2 | // IceCode.h 3 | // DistCode 4 | // 5 | // Created by Mark Satterthwaite on 23/02/2015. 6 | // Copyright (c) 2015 marksatt. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface IceCode : NSObject 12 | { 13 | @private 14 | NSInteger Timeout; 15 | NSUInteger Port; 16 | void* Discover; 17 | void* Scheduler; 18 | dispatch_source_t Connect; 19 | dispatch_source_t Source; 20 | NSString* NetName; 21 | NSString* SchedulerName; 22 | NSMutableDictionary* Hosts; 23 | NSMutableDictionary* Jobs; 24 | NSMutableDictionary* CompleteJobs; 25 | NSMutableArray* HostsArray; 26 | NSMutableArray* JobsArray; 27 | NSTimer* Timer; 28 | } 29 | + (IceCode*) iceCodeForNetName:(NSString*)NetName withTimeout:(NSInteger)Timeout andSchedulerName:(NSString*)Scheduler andPort:(NSUInteger)Port; 30 | - (NSString*)hostName; 31 | - (NSString*)schedulerName; 32 | - (NSDictionary*)hosts; 33 | - (NSDictionary*)jobs; 34 | - (NSDictionary*)completeJobs; 35 | - (NSArray*)hostsArray; 36 | - (NSArray*)jobsArray; 37 | @end 38 | -------------------------------------------------------------------------------- /DistCode/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "size" : "16x16", 5 | "idiom" : "mac", 6 | "filename" : "preferences-system-network-6.png", 7 | "scale" : "1x" 8 | }, 9 | { 10 | "size" : "16x16", 11 | "idiom" : "mac", 12 | "filename" : "preferences-system-network-5.png", 13 | "scale" : "2x" 14 | }, 15 | { 16 | "size" : "32x32", 17 | "idiom" : "mac", 18 | "filename" : "preferences-system-network-3.png", 19 | "scale" : "1x" 20 | }, 21 | { 22 | "size" : "32x32", 23 | "idiom" : "mac", 24 | "filename" : "preferences-system-network-4.png", 25 | "scale" : "2x" 26 | }, 27 | { 28 | "size" : "128x128", 29 | "idiom" : "mac", 30 | "filename" : "preferences-system-network-1.png", 31 | "scale" : "1x" 32 | }, 33 | { 34 | "size" : "128x128", 35 | "idiom" : "mac", 36 | "filename" : "preferences-system-network-2.png", 37 | "scale" : "2x" 38 | }, 39 | { 40 | "size" : "256x256", 41 | "idiom" : "mac", 42 | "filename" : "preferences-system-network.png", 43 | "scale" : "1x" 44 | }, 45 | { 46 | "idiom" : "mac", 47 | "size" : "256x256", 48 | "scale" : "2x" 49 | }, 50 | { 51 | "idiom" : "mac", 52 | "size" : "512x512", 53 | "scale" : "1x" 54 | }, 55 | { 56 | "idiom" : "mac", 57 | "size" : "512x512", 58 | "scale" : "2x" 59 | } 60 | ], 61 | "info" : { 62 | "version" : 1, 63 | "author" : "xcode" 64 | } 65 | } -------------------------------------------------------------------------------- /DistCode/Images.xcassets/AppIcon.appiconset/preferences-system-network-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/DistCode/Images.xcassets/AppIcon.appiconset/preferences-system-network-1.png -------------------------------------------------------------------------------- /DistCode/Images.xcassets/AppIcon.appiconset/preferences-system-network-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/DistCode/Images.xcassets/AppIcon.appiconset/preferences-system-network-2.png -------------------------------------------------------------------------------- /DistCode/Images.xcassets/AppIcon.appiconset/preferences-system-network-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/DistCode/Images.xcassets/AppIcon.appiconset/preferences-system-network-3.png -------------------------------------------------------------------------------- /DistCode/Images.xcassets/AppIcon.appiconset/preferences-system-network-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/DistCode/Images.xcassets/AppIcon.appiconset/preferences-system-network-4.png -------------------------------------------------------------------------------- /DistCode/Images.xcassets/AppIcon.appiconset/preferences-system-network-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/DistCode/Images.xcassets/AppIcon.appiconset/preferences-system-network-5.png -------------------------------------------------------------------------------- /DistCode/Images.xcassets/AppIcon.appiconset/preferences-system-network-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/DistCode/Images.xcassets/AppIcon.appiconset/preferences-system-network-6.png -------------------------------------------------------------------------------- /DistCode/Images.xcassets/AppIcon.appiconset/preferences-system-network.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/DistCode/Images.xcassets/AppIcon.appiconset/preferences-system-network.png -------------------------------------------------------------------------------- /DistCode/Images.xcassets/applications-system.iconset/icon_128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/DistCode/Images.xcassets/applications-system.iconset/icon_128x128.png -------------------------------------------------------------------------------- /DistCode/Images.xcassets/applications-system.iconset/icon_128x128@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/DistCode/Images.xcassets/applications-system.iconset/icon_128x128@2x.png -------------------------------------------------------------------------------- /DistCode/Images.xcassets/applications-system.iconset/icon_16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/DistCode/Images.xcassets/applications-system.iconset/icon_16x16.png -------------------------------------------------------------------------------- /DistCode/Images.xcassets/applications-system.iconset/icon_16x16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/DistCode/Images.xcassets/applications-system.iconset/icon_16x16@2x.png -------------------------------------------------------------------------------- /DistCode/Images.xcassets/applications-system.iconset/icon_256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/DistCode/Images.xcassets/applications-system.iconset/icon_256x256.png -------------------------------------------------------------------------------- /DistCode/Images.xcassets/applications-system.iconset/icon_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/DistCode/Images.xcassets/applications-system.iconset/icon_32x32.png -------------------------------------------------------------------------------- /DistCode/Images.xcassets/applications-system.iconset/icon_32x32@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/DistCode/Images.xcassets/applications-system.iconset/icon_32x32@2x.png -------------------------------------------------------------------------------- /DistCode/Images.xcassets/computer.iconset/icon_128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/DistCode/Images.xcassets/computer.iconset/icon_128x128.png -------------------------------------------------------------------------------- /DistCode/Images.xcassets/computer.iconset/icon_128x128@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/DistCode/Images.xcassets/computer.iconset/icon_128x128@2x.png -------------------------------------------------------------------------------- /DistCode/Images.xcassets/computer.iconset/icon_16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/DistCode/Images.xcassets/computer.iconset/icon_16x16.png -------------------------------------------------------------------------------- /DistCode/Images.xcassets/computer.iconset/icon_16x16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/DistCode/Images.xcassets/computer.iconset/icon_16x16@2x.png -------------------------------------------------------------------------------- /DistCode/Images.xcassets/computer.iconset/icon_256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/DistCode/Images.xcassets/computer.iconset/icon_256x256.png -------------------------------------------------------------------------------- /DistCode/Images.xcassets/computer.iconset/icon_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/DistCode/Images.xcassets/computer.iconset/icon_32x32.png -------------------------------------------------------------------------------- /DistCode/Images.xcassets/computer.iconset/icon_32x32@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/DistCode/Images.xcassets/computer.iconset/icon_32x32@2x.png -------------------------------------------------------------------------------- /DistCode/Images.xcassets/distccmon-gnome-icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "distccmon-gnome-icon.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | } 12 | ], 13 | "info" : { 14 | "version" : 1, 15 | "author" : "xcode" 16 | } 17 | } -------------------------------------------------------------------------------- /DistCode/Images.xcassets/distccmon-gnome-icon.imageset/distccmon-gnome-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/DistCode/Images.xcassets/distccmon-gnome-icon.imageset/distccmon-gnome-icon.png -------------------------------------------------------------------------------- /DistCode/Images.xcassets/utilities-system-monitor.iconset/icon_128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/DistCode/Images.xcassets/utilities-system-monitor.iconset/icon_128x128.png -------------------------------------------------------------------------------- /DistCode/Images.xcassets/utilities-system-monitor.iconset/icon_16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/DistCode/Images.xcassets/utilities-system-monitor.iconset/icon_16x16.png -------------------------------------------------------------------------------- /DistCode/Images.xcassets/utilities-system-monitor.iconset/icon_16x16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/DistCode/Images.xcassets/utilities-system-monitor.iconset/icon_16x16@2x.png -------------------------------------------------------------------------------- /DistCode/Images.xcassets/utilities-system-monitor.iconset/icon_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/DistCode/Images.xcassets/utilities-system-monitor.iconset/icon_32x32.png -------------------------------------------------------------------------------- /DistCode/Images.xcassets/utilities-system-monitor.iconset/icon_32x32@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/DistCode/Images.xcassets/utilities-system-monitor.iconset/icon_32x32@2x.png -------------------------------------------------------------------------------- /DistCode/applications-system.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/DistCode/applications-system.icns -------------------------------------------------------------------------------- /DistCode/computer.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/DistCode/computer.icns -------------------------------------------------------------------------------- /DistCode/dsa_pub.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MIIBtzCCASsGByqGSM44BAEwggEeAoGBANHerqqBMD36SqTLjoD7S/YTzaibxHdm 3 | xgh7orFY51OkHICCOJHysM6vTuGyjehq4XCEekz5JUpX6sPisviKpPFyh9RWXxUj 4 | dHd6QUCo5mpwja0x0f98l8B8E6ZZvyioIObB5V2dmFDUef2AFoca1oRPUFMqmKK2 5 | bG8d6sBVl8RXAhUAv6XR4HxMZ/DU5nw099MmjP9kr0sCgYAWL0BfXBqnv3jxrolP 6 | Zl+O/MNdlymjtT/JOyX4/2u1cxk6iDacA/oKc5ZlCHKN9ceNAf/aO6nzIz4Ygswe 7 | VjnmCrVEywZ4RxLLgqVZg//WRQQ4C/CuQEWzr3dfdiVc9l1qTPyov/9LMEQLeDQB 8 | C9nY5E9qCgZg8eiH9I3YEPFa+wOBhQACgYEAq7+1eZGU7KvoEojXbKshFPbrWaA5 9 | yyzh+tH2CTaph9W0gQFzWZuH7PctAmzDbtoSQOqVWBBSAWYBZLPdfFhYUZgjD0NV 10 | x4aoc40Yp4bEi2J67cVUI76AK0XBERqy+0cJMCJJuqxFW7aP4lhs2ZY50KQ8oZ0S 11 | hDyMhJL2FgC7d/Y= 12 | -----END PUBLIC KEY----- 13 | -------------------------------------------------------------------------------- /DistCode/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * DistCode -- An OS X GUI & Xcode plugin for the distcc distributed C compiler. 4 | * 5 | * Copyright (C) 2013-16 by Mark Satterthwaite 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | /* Localized versions of Info.plist keys */ 22 | 23 | -------------------------------------------------------------------------------- /DistCode/mac_client-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/DistCode/mac_client-512.png -------------------------------------------------------------------------------- /DistCode/main.m: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * DistCode -- An OS X GUI & Xcode plugin for the distcc distributed C compiler. 4 | * 5 | * Copyright (C) 2013-16 by Mark Satterthwaite 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | // 22 | // main.m 23 | // DistCode 24 | // 25 | // Created by Mark Satterthwaite on 30/09/2013. 26 | // Copyright (c) 2013-16 marksatt. All rights reserved. 27 | // 28 | 29 | #import 30 | 31 | int main(int argc, const char * argv[]) 32 | { 33 | return NSApplicationMain(argc, argv); 34 | } 35 | -------------------------------------------------------------------------------- /DistCode/user-busy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/DistCode/user-busy.png -------------------------------------------------------------------------------- /DistCode/user-online.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/DistCode/user-online.png -------------------------------------------------------------------------------- /DistCode/utilities-system-monitor.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/DistCode/utilities-system-monitor.icns -------------------------------------------------------------------------------- /DistCode/vpn-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/DistCode/vpn-512.png -------------------------------------------------------------------------------- /Distcc 3.2/Distcc 3.2-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | DVTPlugInCompatibilityUUIDs 6 | 7 | C4A681B0-4A26-480E-93EC-1218098B9AA0 8 | A2E4D43F-41F4-4FB9-BB94-7177011C9AED 9 | 10 | BuildMachineOSBuild 11 | 13A596 12 | CFBundleDevelopmentRegion 13 | English 14 | CFBundleIdentifier 15 | com.distcc.compilers.distcc 16 | CFBundleInfoDictionaryVersion 17 | 6.0 18 | CFBundleName 19 | Distcc 3.2 Compiler Xcode Plug-in 20 | CFBundlePackageType 21 | BNDL 22 | CFBundleShortVersionString 23 | 1.0 24 | CFBundleSignature 25 | dcln 26 | CFBundleVersion 27 | 1.0.1 28 | DTCompiler 29 | com.distcc.compilers.distcc.3_2 30 | DTPlatformBuild 31 | 32 | DTSDKBuild 33 | 13A596 34 | DTSDKName 35 | 36 | DTXcode 37 | 0510 38 | DTXcodeBuild 39 | 40 | XC4Compatible 41 | 42 | XCGCReady 43 | YES 44 | XCPluginHasUI 45 | NO 46 | 47 | 48 | -------------------------------------------------------------------------------- /Distcc 3.2/English.lproj/Distcc 3.2.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/Distcc 3.2/English.lproj/Distcc 3.2.strings -------------------------------------------------------------------------------- /Distcc 3.2/usr/bin/clang: -------------------------------------------------------------------------------- 1 | distclang -------------------------------------------------------------------------------- /Distcc 3.2/usr/bin/clang++: -------------------------------------------------------------------------------- 1 | distclang -------------------------------------------------------------------------------- /Distcc 3.2/version.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BuildVersion 6 | 1 7 | CFBundleShortVersionString 8 | 1.0 9 | CFBundleVersion 10 | 1.0 11 | ProjectName 12 | IDEXcode3ProjectSupport 13 | SourceVersion 14 | 1 15 | 16 | 17 | -------------------------------------------------------------------------------- /Sparkle/.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | build/* 3 | *.pbxuser 4 | !default.pbxuser 5 | *.mode1v3 6 | !default.mode1v3 7 | *.mode2v3 8 | !default.mode2v3 9 | *.perspectivev3 10 | !default.perspectivev3 11 | *.xcworkspace 12 | !default.xcworkspace 13 | xcuserdata/ 14 | profile 15 | *.moved-aside 16 | 17 | ## Ignore incredibly annoying .DS_Store files 18 | .DS_Store 19 | DerivedData/ 20 | -------------------------------------------------------------------------------- /Sparkle/Configurations/ConfigBinaryDelta.xcconfig: -------------------------------------------------------------------------------- 1 | // BinaryDelta tool only 2 | 3 | PRODUCT_NAME = BinaryDelta 4 | GCC_PREFIX_HEADER = 5 | -------------------------------------------------------------------------------- /Sparkle/Configurations/ConfigBinaryDeltaDebug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "ConfigCommon.xcconfig" 2 | #include "ConfigCommonDebug.xcconfig" 3 | #include "ConfigBinaryDelta.xcconfig" 4 | 5 | -------------------------------------------------------------------------------- /Sparkle/Configurations/ConfigBinaryDeltaRelease.xcconfig: -------------------------------------------------------------------------------- 1 | #include "ConfigCommon.xcconfig" 2 | #include "ConfigCommonRelease.xcconfig" 3 | #include "ConfigBinaryDelta.xcconfig" 4 | -------------------------------------------------------------------------------- /Sparkle/Configurations/ConfigCommon.xcconfig: -------------------------------------------------------------------------------- 1 | // Common 2 | 3 | FINISH_INSTALL_TOOL_NAME = Autoupdate 4 | 5 | CURRENT_PROJECT_VERSION = 1.6 6 | GCC_PRECOMPILE_PREFIX_HEADER = YES 7 | GCC_PREFIX_HEADER = $(SDKROOT)/System/Library/Frameworks/Cocoa.framework/Headers/Cocoa.h 8 | ARCHS = i386 x86_64 9 | 10 | GCC_PREPROCESSOR_DEFINITIONS = FINISH_INSTALL_TOOL_NAME=$(FINISH_INSTALL_TOOL_NAME) 11 | 12 | // Enable warnings 13 | GCC_WARN_FOUR_CHARACTER_CONSTANTS = YES 14 | GCC_WARN_SHADOW = YES 15 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES 16 | GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES 17 | GCC_WARN_ABOUT_RETURN_TYPE = YES 18 | GCC_WARN_ABOUT_MISSING_NEWLINE = YES 19 | GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES 20 | GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = YES 21 | GCC_WARN_SIGN_COMPARE = YES 22 | GCC_WARN_UNKNOWN_PRAGMAS = YES 23 | GCC_WARN_UNUSED_VARIABLE = YES 24 | GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES 25 | GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = YES 26 | GCC_WARN_UNUSED_FUNCTION = YES 27 | GCC_WARN_UNUSED_LABEL = YES 28 | GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES 29 | GCC_WARN_UNDECLARED_SELECTOR = YES 30 | -------------------------------------------------------------------------------- /Sparkle/Configurations/ConfigCommonDebug.xcconfig: -------------------------------------------------------------------------------- 1 | // Debug only 2 | 3 | GCC_OPTIMIZATION_LEVEL = 0 4 | DEBUG_INFORMATION_FORMAT = dwarf 5 | GCC_GENERATE_DEBUGGING_SYMBOLS = YES 6 | SPARKLE_EXTRA_DEBUG = -DDEBUG 7 | OTHER_CFLAGS = $(SPARKLE_EXTRA_DEBUG) 8 | 9 | -------------------------------------------------------------------------------- /Sparkle/Configurations/ConfigCommonRelease.xcconfig: -------------------------------------------------------------------------------- 1 | // Release only 2 | 3 | GCC_OPTIMIZATION_LEVEL = s 4 | DEBUG_INFORMATION_FORMAT = dwarf-with-dsym 5 | GCC_GENERATE_DEBUGGING_SYMBOLS = YES 6 | DEAD_CODE_STRIPPING = YES 7 | GCC_TREAT_WARNINGS_AS_ERRORS = NO 8 | GCC_WARN_UNINITIALIZED_AUTOS = YES 9 | -------------------------------------------------------------------------------- /Sparkle/Configurations/ConfigFramework.xcconfig: -------------------------------------------------------------------------------- 1 | // Framework only 2 | 3 | INSTALL_PATH = @loader_path/../Frameworks 4 | DYLIB_COMPATIBILITY_VERSION = 1.5 5 | DYLIB_CURRENT_VERSION = 1.5 6 | PRODUCT_NAME = Sparkle 7 | WRAPPER_EXTENSION = framework 8 | FRAMEWORK_VERSION = A 9 | INFOPLIST_FILE = Info.plist 10 | GCC_PREFIX_HEADER = Sparkle.pch 11 | -------------------------------------------------------------------------------- /Sparkle/Configurations/ConfigFrameworkDebug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "ConfigCommon.xcconfig" 2 | #include "ConfigCommonDebug.xcconfig" 3 | #include "ConfigFramework.xcconfig" 4 | 5 | -------------------------------------------------------------------------------- /Sparkle/Configurations/ConfigFrameworkRelease.xcconfig: -------------------------------------------------------------------------------- 1 | #include "ConfigCommon.xcconfig" 2 | #include "ConfigCommonRelease.xcconfig" 3 | #include "ConfigFramework.xcconfig" 4 | 5 | STRIP_INSTALLED_PRODUCT = YES 6 | DEPLOYMENT_POSTPROCESSING = YES 7 | -------------------------------------------------------------------------------- /Sparkle/Configurations/ConfigRelaunch.xcconfig: -------------------------------------------------------------------------------- 1 | // Relaunch Tool only 2 | 3 | PRODUCT_NAME = $(FINISH_INSTALL_TOOL_NAME) 4 | SKIP_INSTALL = YES 5 | -------------------------------------------------------------------------------- /Sparkle/Configurations/ConfigRelaunchDebug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "ConfigCommon.xcconfig" 2 | #include "ConfigCommonDebug.xcconfig" 3 | #include "ConfigRelaunch.xcconfig" 4 | -------------------------------------------------------------------------------- /Sparkle/Configurations/ConfigRelaunchRelease.xcconfig: -------------------------------------------------------------------------------- 1 | #include "ConfigCommon.xcconfig" 2 | #include "ConfigCommonRelease.xcconfig" 3 | #include "ConfigRelaunch.xcconfig" 4 | -------------------------------------------------------------------------------- /Sparkle/Configurations/ConfigTestApp.xcconfig: -------------------------------------------------------------------------------- 1 | // Test Application only 2 | 3 | INFOPLIST_FILE = Test Application/Test Application-Info.plist 4 | PRODUCT_NAME = Sparkle Test App 5 | WRAPPER_EXTENSION = app 6 | -------------------------------------------------------------------------------- /Sparkle/Configurations/ConfigTestAppDebug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "ConfigCommon.xcconfig" 2 | #include "ConfigCommonDebug.xcconfig" 3 | #include "ConfigTestApp.xcconfig" 4 | 5 | -------------------------------------------------------------------------------- /Sparkle/Configurations/ConfigTestAppRelease.xcconfig: -------------------------------------------------------------------------------- 1 | #include "ConfigCommon.xcconfig" 2 | #include "ConfigCommonRelease.xcconfig" 3 | #include "ConfigTestApp.xcconfig" 4 | -------------------------------------------------------------------------------- /Sparkle/Configurations/ConfigUnitTest.xcconfig: -------------------------------------------------------------------------------- 1 | // Unit Test only 2 | 3 | INFOPLIST_FILE = Tests/Sparkle Unit Tests-Info.plist 4 | OTHER_LDFLAGS = -framework Cocoa -framework SenTestingKit 5 | PRODUCT_NAME = Sparkle Unit Tests 6 | WRAPPER_EXTENSION = octest 7 | FRAMEWORK_SEARCH_PATHS = $(DEVELOPER_LIBRARY_DIR)/Frameworks 8 | GCC_PREFIX_HEADER = $(SYSTEM_LIBRARY_DIR)/Frameworks/Cocoa.framework/Headers/Cocoa.h 9 | GCC_PRECOMPILE_PREFIX_HEADER = YES 10 | -------------------------------------------------------------------------------- /Sparkle/Configurations/ConfigUnitTestDebug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "ConfigCommon.xcconfig" 2 | #include "ConfigCommonDebug.xcconfig" 3 | #include "ConfigUnitTest.xcconfig" 4 | -------------------------------------------------------------------------------- /Sparkle/Configurations/ConfigUnitTestRelease.xcconfig: -------------------------------------------------------------------------------- 1 | #include "ConfigCommon.xcconfig" 2 | #include "ConfigCommonRelease.xcconfig" 3 | #include "ConfigUnitTest.xcconfig" 4 | -------------------------------------------------------------------------------- /Sparkle/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIconFile 10 | 11 | CFBundleIdentifier 12 | org.andymatuschak.Sparkle 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | ${PRODUCT_NAME} 17 | CFBundlePackageType 18 | FMWK 19 | CFBundleShortVersionString 20 | ${CURRENT_PROJECT_VERSION} git 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | ${CURRENT_PROJECT_VERSION} 25 | NSPrincipalClass 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /Sparkle/Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: all localizable-strings 2 | 3 | localizable-strings: 4 | rm en.lproj/Sparkle.strings || TRUE 5 | genstrings -o en.lproj -s SULocalizedString *.m *.h 6 | mv en.lproj/Localizable.strings en.lproj/Sparkle.strings 7 | 8 | -------------------------------------------------------------------------------- /Sparkle/NTSynchronousTask.h: -------------------------------------------------------------------------------- 1 | // 2 | // NTSynchronousTask.h 3 | // CocoatechCore 4 | // 5 | // Created by Steve Gehrman on 9/29/05. 6 | // Copyright 2005 Steve Gehrman. All rights reserved. 7 | // 8 | 9 | #ifndef NTSYNCHRONOUSTASK_H 10 | #define NTSYNCHRONOUSTASK_H 11 | 12 | @interface NTSynchronousTask : NSObject 13 | { 14 | @private 15 | NSTask *mv_task; 16 | NSPipe *mv_outputPipe; 17 | NSPipe *mv_inputPipe; 18 | 19 | NSData* mv_output; 20 | BOOL mv_done; 21 | int mv_result; 22 | } 23 | @property (readonly, retain) NSData *output; 24 | @property (readonly) int result; 25 | 26 | // pass nil for directory if not needed 27 | // returns the result 28 | +(int) task:(NSString*)toolPath directory:(NSString*)currentDirectory withArgs:(NSArray*)args input:(NSData*)input output: (NSData**)outData; 29 | 30 | +(NSData*)task:(NSString*)toolPath directory:(NSString*)currentDirectory withArgs:(NSArray*)args input:(NSData*)input; 31 | 32 | - (void)run:(NSString*)toolPath directory:(NSString*)currentDirectory withArgs:(NSArray*)args input:(NSData*)input; 33 | 34 | @end 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /Sparkle/Relaunch Tool-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | org.andymatuschak.Sparkle.relaunch 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | APPL 15 | CFBundleSignature 16 | ???? 17 | CFBundleVersion 18 | 1.5 19 | NSPrincipalClass 20 | NSApplication 21 | NSUIElement 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Sparkle/SUAppcast.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUAppcast.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 3/12/06. 6 | // Copyright 2006 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SUAPPCAST_H 10 | #define SUAPPCAST_H 11 | 12 | @protocol SUAppcastDelegate; 13 | 14 | @class SUAppcastItem; 15 | @interface SUAppcast : NSObject 16 | { 17 | @private 18 | NSArray *items; 19 | NSString *userAgentString; 20 | id delegate; 21 | NSString *downloadFilename; 22 | NSURLDownload *download; 23 | } 24 | @property (assign) id delegate; 25 | @property (copy) NSString *userAgentString; 26 | 27 | - (void)fetchAppcastFromURL:(NSURL *)url; 28 | 29 | - (NSArray *)items; 30 | @end 31 | 32 | @protocol SUAppcastDelegate 33 | - (void)appcastDidFinishLoading:(SUAppcast *)appcast; 34 | - (void)appcast:(SUAppcast *)appcast failedToLoadWithError:(NSError *)error; 35 | @end 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /Sparkle/SUAutomaticUpdateAlert.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUAutomaticUpdateAlert.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 3/18/06. 6 | // Copyright 2006 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SUAUTOMATICUPDATEALERT_H 10 | #define SUAUTOMATICUPDATEALERT_H 11 | 12 | #import "SUWindowController.h" 13 | 14 | @protocol SUAutomaticUpdateAlertDelegateProtocol; 15 | 16 | typedef enum 17 | { 18 | SUInstallNowChoice, 19 | SUInstallLaterChoice, 20 | SUDoNotInstallChoice 21 | } SUAutomaticInstallationChoice; 22 | 23 | @class SUAppcastItem, SUHost; 24 | @interface SUAutomaticUpdateAlert : SUWindowController { 25 | SUAppcastItem *updateItem; 26 | id delegate; 27 | SUHost *host; 28 | } 29 | 30 | - (id)initWithAppcastItem:(SUAppcastItem *)item host:(SUHost *)hostBundle delegate:(id)delegate; 31 | - (IBAction)installNow:sender; 32 | - (IBAction)installLater:sender; 33 | - (IBAction)doNotInstall:sender; 34 | 35 | @end 36 | 37 | @protocol SUAutomaticUpdateAlertDelegateProtocol 38 | - (void)automaticUpdateAlert:(SUAutomaticUpdateAlert *)aua finishedWithChoice:(SUAutomaticInstallationChoice)choice; 39 | @end 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /Sparkle/SUAutomaticUpdateDriver.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUAutomaticUpdateDriver.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 5/6/08. 6 | // Copyright 2008 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SUAUTOMATICUPDATEDRIVER_H 10 | #define SUAUTOMATICUPDATEDRIVER_H 11 | 12 | #import 13 | #import "SUBasicUpdateDriver.h" 14 | #import "SUAutomaticUpdateAlert.h" 15 | 16 | @interface SUAutomaticUpdateDriver : SUBasicUpdateDriver 17 | { 18 | @private 19 | BOOL postponingInstallation, showErrors; 20 | BOOL willUpdateOnTermination; 21 | SUAutomaticUpdateAlert *alert; 22 | NSTimer *showUpdateAlertTimer; 23 | } 24 | 25 | @end 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /Sparkle/SUBinaryDeltaApply.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUBinaryDeltaApply.h 3 | // Sparkle 4 | // 5 | // Created by Mark Rowe on 2009-06-01. 6 | // Copyright 2009 Mark Rowe. All rights reserved. 7 | // 8 | 9 | #ifndef SUBINARYDELTAAPPLY_H 10 | #define SUBINARYDELTAAPPLY_H 11 | 12 | @class NSString; 13 | int applyBinaryDelta(NSString *source, NSString *destination, NSString *patchFile); 14 | 15 | #endif 16 | -------------------------------------------------------------------------------- /Sparkle/SUBinaryDeltaCommon.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUBinaryDeltaCommon.h 3 | // Sparkle 4 | // 5 | // Created by Mark Rowe on 2009-06-01. 6 | // Copyright 2009 Mark Rowe. All rights reserved. 7 | // 8 | 9 | #ifndef SUBINARYDELTACOMMON_H 10 | #define SUBINARYDELTACOMMON_H 11 | 12 | #include 13 | 14 | @class NSString; 15 | @class NSData; 16 | 17 | extern int binaryDeltaSupported(void); 18 | extern int compareFiles(const FTSENT **a, const FTSENT **b); 19 | extern NSData *hashOfFile(FTSENT *ent); 20 | extern NSString *hashOfTree(NSString *path); 21 | extern void removeTree(NSString *path); 22 | extern void copyTree(NSString *source, NSString *dest); 23 | extern NSString *pathRelativeToDirectory(NSString *directory, NSString *path); 24 | NSString *temporaryFilename(NSString *base); 25 | NSString *stringWithFileSystemRepresentation(const char*); 26 | #endif 27 | -------------------------------------------------------------------------------- /Sparkle/SUBinaryDeltaUnarchiver.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUBinaryDeltaUnarchiver.h 3 | // Sparkle 4 | // 5 | // Created by Mark Rowe on 2009-06-03. 6 | // Copyright 2009 Mark Rowe. All rights reserved. 7 | // 8 | 9 | #ifndef SUBINARYDELTAUNARCHIVER_H 10 | #define SUBINARYDELTAUNARCHIVER_H 11 | 12 | #import 13 | #import "SUUnarchiver.h" 14 | 15 | @interface SUBinaryDeltaUnarchiver : SUUnarchiver 16 | 17 | @end 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /Sparkle/SUBinaryDeltaUnarchiver.m: -------------------------------------------------------------------------------- 1 | // 2 | // SUBinaryDeltaUnarchiver.m 3 | // Sparkle 4 | // 5 | // Created by Mark Rowe on 2009-06-03. 6 | // Copyright 2009 Mark Rowe. All rights reserved. 7 | // 8 | 9 | #import "SUBinaryDeltaCommon.h" 10 | #import "SUBinaryDeltaUnarchiver.h" 11 | #import "SUBinaryDeltaApply.h" 12 | #import "SUUnarchiver_Private.h" 13 | #import "SUHost.h" 14 | #import "NTSynchronousTask.h" 15 | 16 | @implementation SUBinaryDeltaUnarchiver 17 | 18 | + (BOOL)canUnarchivePath:(NSString *)path 19 | { 20 | return binaryDeltaSupported() && [[path pathExtension] isEqualToString:@"delta"]; 21 | } 22 | 23 | - (void)applyBinaryDelta 24 | { 25 | NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 26 | NSString *sourcePath = [[updateHost bundle] bundlePath]; 27 | NSString *targetPath = [[archivePath stringByDeletingLastPathComponent] stringByAppendingPathComponent:[sourcePath lastPathComponent]]; 28 | 29 | int result = applyBinaryDelta(sourcePath, targetPath, archivePath); 30 | if (!result) 31 | [self performSelectorOnMainThread:@selector(notifyDelegateOfSuccess) withObject:nil waitUntilDone:NO]; 32 | else 33 | [self performSelectorOnMainThread:@selector(notifyDelegateOfFailure) withObject:nil waitUntilDone:NO]; 34 | 35 | [pool drain]; 36 | } 37 | 38 | - (void)start 39 | { 40 | [NSThread detachNewThreadSelector:@selector(applyBinaryDelta) toTarget:self withObject:nil]; 41 | } 42 | 43 | + (void)load 44 | { 45 | [self registerImplementation:self]; 46 | } 47 | 48 | @end 49 | -------------------------------------------------------------------------------- /Sparkle/SUCodeSigningVerifier.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUCodeSigningVerifier.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 7/5/12. 6 | // 7 | // 8 | 9 | #ifndef SUCODESIGNINGVERIFIER_H 10 | #define SUCODESIGNINGVERIFIER_H 11 | 12 | #import 13 | 14 | @interface SUCodeSigningVerifier : NSObject 15 | + (BOOL)codeSignatureIsValidAtPath:(NSString *)destinationPath error:(NSError **)error; 16 | + (BOOL)hostApplicationIsCodeSigned; 17 | @end 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /Sparkle/SUDSAVerifier.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUDSAVerifier.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 3/16/06. 6 | // Copyright 2006 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SUDSAVERIFIER_H 10 | #define SUDSAVERIFIER_H 11 | 12 | #import 13 | 14 | @interface SUDSAVerifier : NSObject 15 | + (BOOL)validatePath:(NSString *)path withEncodedDSASignature:(NSString *)encodedSignature withPublicDSAKey:(NSString *)pkeyString; 16 | @end 17 | 18 | #endif 19 | -------------------------------------------------------------------------------- /Sparkle/SUDiskImageUnarchiver.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUDiskImageUnarchiver.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 6/16/08. 6 | // Copyright 2008 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SUDISKIMAGEUNARCHIVER_H 10 | #define SUDISKIMAGEUNARCHIVER_H 11 | 12 | #import 13 | #import "SUUnarchiver.h" 14 | 15 | @interface SUDiskImageUnarchiver : SUUnarchiver 16 | 17 | @end 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /Sparkle/SUHost.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUHost.h 3 | // Sparkle 4 | // 5 | // Copyright 2008 Andy Matuschak. All rights reserved. 6 | // 7 | 8 | #import "SUUpdater.h" 9 | #import "SUAppcast.h" 10 | #import "SUAppcastItem.h" 11 | #import "SUVersionComparisonProtocol.h" 12 | 13 | @interface SUHost : NSObject 14 | { 15 | @private 16 | NSBundle *bundle; 17 | NSString *defaultsDomain; 18 | BOOL usesStandardUserDefaults; 19 | } 20 | @property (retain, readonly) NSBundle *bundle; 21 | 22 | + (NSString *)systemVersionString; 23 | 24 | - (id)initWithBundle:(NSBundle *)aBundle; 25 | - (NSString *)bundlePath; 26 | - (NSString *)appSupportPath; 27 | - (NSString *)installationPath; 28 | - (NSString *)name; 29 | - (NSString *)version; 30 | - (NSString *)displayVersion; 31 | - (NSImage *)icon; 32 | - (BOOL)isRunningOnReadOnlyVolume; 33 | - (BOOL)isBackgroundApplication; 34 | - (NSString *)publicDSAKey; 35 | - (NSArray *)systemProfile; 36 | 37 | - (id)objectForInfoDictionaryKey:(NSString *)key; 38 | - (BOOL)boolForInfoDictionaryKey:(NSString *)key; 39 | - (id)objectForUserDefaultsKey:(NSString *)defaultName; 40 | - (void)setObject:(id)value forUserDefaultsKey:(NSString *)defaultName; 41 | - (BOOL)boolForUserDefaultsKey:(NSString *)defaultName; 42 | - (void)setBool:(BOOL)value forUserDefaultsKey:(NSString *)defaultName; 43 | - (id)objectForKey:(NSString *)key; 44 | - (BOOL)boolForKey:(NSString *)key; 45 | @end 46 | -------------------------------------------------------------------------------- /Sparkle/SUInstaller.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUInstaller.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 4/10/08. 6 | // Copyright 2008 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SUINSTALLER_H 10 | #define SUINSTALLER_H 11 | 12 | #import 13 | #import "SUVersionComparisonProtocol.h" 14 | 15 | @class SUHost; 16 | @interface SUInstaller : NSObject 17 | + (NSString *) appPathInUpdateFolder:(NSString *)updateFolder forHost:(SUHost *)host; 18 | + (void) installFromUpdateFolder:(NSString *)updateFolder overHost:(SUHost *)host installationPath:(NSString *)installationPath delegate:delegate synchronously:(BOOL)synchronously versionComparator:(id )comparator; 19 | + (void) finishInstallationToPath:(NSString *)installationPath withResult:(BOOL)result host:(SUHost *)host error:(NSError *)error delegate:delegate; 20 | + (NSString*) updateFolder; 21 | + (void) notifyDelegateOfFailure: (NSDictionary*)dict; 22 | @end 23 | 24 | @interface NSObject (SUInstallerDelegateInformalProtocol) 25 | - (void)installerFinishedForHost:(SUHost *)host; 26 | - (void)installerForHost:(SUHost *)host failedWithError:(NSError *)error; 27 | @end 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /Sparkle/SULog.h: -------------------------------------------------------------------------------- 1 | /* 2 | * SULog.h 3 | * EyeTV 4 | * 5 | * Created by Uli Kusterer on 12/03/2009. 6 | * Copyright 2008 Elgato Systems GmbH. All rights reserved. 7 | * 8 | */ 9 | 10 | /* 11 | Log output for troubleshooting Sparkle failures on end-user machines. 12 | Your tech support will hug you if you tell them about this. 13 | */ 14 | 15 | #pragma once 16 | 17 | // ----------------------------------------------------------------------------- 18 | // Headers: 19 | // ----------------------------------------------------------------------------- 20 | 21 | #include 22 | 23 | 24 | // ----------------------------------------------------------------------------- 25 | // Prototypes: 26 | // ----------------------------------------------------------------------------- 27 | 28 | void SUClearLog( void ); 29 | void SULog( NSString* format, ... ); 30 | 31 | 32 | -------------------------------------------------------------------------------- /Sparkle/SUPackageInstaller.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUPackageInstaller.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 4/10/08. 6 | // Copyright 2008 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SUPACKAGEINSTALLER_H 10 | #define SUPACKAGEINSTALLER_H 11 | 12 | #import "SUUpdater.h" 13 | 14 | #import "SUAppcast.h" 15 | #import "SUAppcastItem.h" 16 | #import "SUVersionComparisonProtocol.h" 17 | #import "SUPlainInstaller.h" 18 | 19 | @interface SUPackageInstaller : SUPlainInstaller 20 | @end 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /Sparkle/SUPipedUnarchiver.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUPipedUnarchiver.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 6/16/08. 6 | // Copyright 2008 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SUPIPEDUNARCHIVER_H 10 | #define SUPIPEDUNARCHIVER_H 11 | 12 | #import 13 | #import "SUUnarchiver.h" 14 | 15 | @interface SUPipedUnarchiver : SUUnarchiver 16 | 17 | @end 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /Sparkle/SUPlainInstaller.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUPlainInstaller.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 4/10/08. 6 | // Copyright 2008 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SUPLAININSTALLER_H 10 | #define SUPLAININSTALLER_H 11 | 12 | #import "SUUpdater.h" 13 | 14 | #import "SUAppcast.h" 15 | #import "SUAppcastItem.h" 16 | #import "SUVersionComparisonProtocol.h" 17 | #import "SUInstaller.h" 18 | #import "SUVersionComparisonProtocol.h" 19 | 20 | @class SUHost; 21 | 22 | @interface SUPlainInstaller : SUInstaller 23 | + (void)performInstallationToPath:(NSString *)installationPath fromPath:(NSString *)path host:(SUHost *)host delegate:delegate synchronously:(BOOL)synchronously versionComparator:(id )comparator; 24 | @end 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /Sparkle/SUPlainInstallerInternals.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUPlainInstallerInternals.m 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 3/9/06. 6 | // Copyright 2006 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SUPLAININSTALLERINTERNALS_H 10 | #define SUPLAININSTALLERINTERNALS_H 11 | 12 | #import "SUPlainInstaller.h" 13 | 14 | @interface SUPlainInstaller (Internals) 15 | + (NSString *)temporaryNameForPath:(NSString *)path; 16 | + (BOOL)copyPathWithAuthentication:(NSString *)src overPath:(NSString *)dst temporaryName:(NSString *)tmp error:(NSError **)error; 17 | + (void)_movePathToTrash:(NSString *)path; 18 | + (BOOL)_removeFileAtPath:(NSString *)path error: (NSError**)error; 19 | + (BOOL)_removeFileAtPathWithForcedAuthentication:(NSString *)src error:(NSError **)error; 20 | @end 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /Sparkle/SUProbingUpdateDriver.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUProbingUpdateDriver.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 5/7/08. 6 | // Copyright 2008 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SUPROBINGUPDATEDRIVER_H 10 | #define SUPROBINGUPDATEDRIVER_H 11 | 12 | #import 13 | #import "SUBasicUpdateDriver.h" 14 | 15 | // This replaces the old SUStatusChecker. 16 | @interface SUProbingUpdateDriver : SUBasicUpdateDriver { } 17 | @end 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /Sparkle/SUProbingUpdateDriver.m: -------------------------------------------------------------------------------- 1 | // 2 | // SUProbingUpdateDriver.m 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 5/7/08. 6 | // Copyright 2008 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #import "SUProbingUpdateDriver.h" 10 | #import "SUUpdater.h" 11 | 12 | @implementation SUProbingUpdateDriver 13 | 14 | // Stop as soon as we have an answer! Since the superclass implementations are not called, we are responsible for notifying the delegate. 15 | 16 | - (void)didFindValidUpdate 17 | { 18 | if ([[updater delegate] respondsToSelector:@selector(updater:didFindValidUpdate:)]) 19 | [[updater delegate] updater:updater didFindValidUpdate:updateItem]; 20 | NSDictionary *userInfo = (updateItem != nil) ? @{SUUpdaterAppcastItemNotificationKey : updateItem} : nil; 21 | [[NSNotificationCenter defaultCenter] postNotificationName:SUUpdaterDidFindValidUpdateNotification object:updater userInfo:userInfo]; 22 | [self abortUpdate]; 23 | } 24 | 25 | - (void)didNotFindUpdate 26 | { 27 | if ([[updater delegate] respondsToSelector:@selector(updaterDidNotFindUpdate:)]) 28 | [[updater delegate] updaterDidNotFindUpdate:updater]; 29 | [[NSNotificationCenter defaultCenter] postNotificationName:SUUpdaterDidNotFindUpdateNotification object:updater]; 30 | 31 | [self abortUpdate]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /Sparkle/SUScheduledUpdateDriver.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUScheduledUpdateDriver.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 5/6/08. 6 | // Copyright 2008 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SUSCHEDULEDUPDATEDRIVER_H 10 | #define SUSCHEDULEDUPDATEDRIVER_H 11 | 12 | #import 13 | #import "SUUIBasedUpdateDriver.h" 14 | 15 | @interface SUScheduledUpdateDriver : SUUIBasedUpdateDriver 16 | { 17 | @private 18 | BOOL showErrors; 19 | } 20 | 21 | @end 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /Sparkle/SUScheduledUpdateDriver.m: -------------------------------------------------------------------------------- 1 | // 2 | // SUScheduledUpdateDriver.m 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 5/6/08. 6 | // Copyright 2008 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #import "SUScheduledUpdateDriver.h" 10 | #import "SUUpdater.h" 11 | 12 | #import "SUAppcast.h" 13 | #import "SUAppcastItem.h" 14 | #import "SUVersionComparisonProtocol.h" 15 | 16 | @implementation SUScheduledUpdateDriver 17 | 18 | - (void)didFindValidUpdate 19 | { 20 | showErrors = YES; // We only start showing errors after we present the UI for the first time. 21 | [super didFindValidUpdate]; 22 | } 23 | 24 | - (void)didNotFindUpdate 25 | { 26 | if ([[updater delegate] respondsToSelector:@selector(updaterDidNotFindUpdate:)]) 27 | [[updater delegate] updaterDidNotFindUpdate:updater]; 28 | [[NSNotificationCenter defaultCenter] postNotificationName:SUUpdaterDidNotFindUpdateNotification object:updater]; 29 | 30 | [self abortUpdate]; // Don't tell the user that no update was found; this was a scheduled update. 31 | } 32 | 33 | - (void)abortUpdateWithError:(NSError *)error 34 | { 35 | if (showErrors) 36 | [super abortUpdateWithError:error]; 37 | else 38 | [self abortUpdate]; 39 | } 40 | 41 | @end 42 | -------------------------------------------------------------------------------- /Sparkle/SUStandardVersionComparator.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUStandardVersionComparator.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 12/21/07. 6 | // Copyright 2007 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SUSTANDARDVERSIONCOMPARATOR_H 10 | #define SUSTANDARDVERSIONCOMPARATOR_H 11 | 12 | 13 | #import "SUVersionComparisonProtocol.h" 14 | 15 | /*! 16 | @class 17 | @abstract Sparkle's default version comparator. 18 | @discussion This comparator is adapted from MacPAD, by Kevin Ballard. It's "dumb" in that it does essentially string comparison, in components split by character type. 19 | */ 20 | @interface SUStandardVersionComparator : NSObject { } 21 | 22 | /*! 23 | @method 24 | @abstract Returns a singleton instance of the comparator. 25 | */ 26 | + (SUStandardVersionComparator *)defaultComparator; 27 | 28 | /*! 29 | @method 30 | @abstract Compares version strings through textual analysis. 31 | @discussion See the implementation for more details. 32 | */ 33 | - (NSComparisonResult)compareVersion:(NSString *)versionA toVersion:(NSString *)versionB; 34 | @end 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /Sparkle/SUStatusController.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUStatusController.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 3/14/06. 6 | // Copyright 2006 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SUSTATUSCONTROLLER_H 10 | #define SUSTATUSCONTROLLER_H 11 | 12 | #import "SUWindowController.h" 13 | 14 | @class SUHost; 15 | @interface SUStatusController : SUWindowController 16 | { 17 | @private 18 | double progressValue, maxProgressValue; 19 | NSString *title, *statusText, *buttonTitle; 20 | IBOutlet NSButton *actionButton; 21 | IBOutlet NSProgressIndicator* progressBar; 22 | SUHost *host; 23 | } 24 | 25 | @property (copy) NSString *statusText; 26 | @property double progressValue; 27 | @property (nonatomic) double maxProgressValue; 28 | @property (getter = isButtonEnabled) BOOL buttonEnabled; 29 | 30 | - (id)initWithHost:(SUHost *)host; 31 | 32 | // Pass 0 for the max progress value to get an indeterminate progress bar. 33 | // Pass nil for the status text to not show it. 34 | - (void)beginActionWithTitle:(NSString *)title maxProgressValue:(double)maxProgressValue statusText:(NSString *)statusText; 35 | 36 | // If isDefault is YES, the button's key equivalent will be \r. 37 | - (void)setButtonTitle:(NSString *)buttonTitle target:(id)target action:(SEL)action isDefault:(BOOL)isDefault; 38 | 39 | @end 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /Sparkle/SUSystemProfiler.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUSystemProfiler.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 12/22/07. 6 | // Copyright 2007 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SUSYSTEMPROFILER_H 10 | #define SUSYSTEMPROFILER_H 11 | 12 | #import 13 | 14 | @class SUHost; 15 | @interface SUSystemProfiler : NSObject 16 | + (SUSystemProfiler *)sharedSystemProfiler; 17 | - (NSMutableArray *)systemProfileArrayForHost:(SUHost *)host; 18 | @end 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /Sparkle/SUUIBasedUpdateDriver.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUUIBasedUpdateDriver.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 5/5/08. 6 | // Copyright 2008 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SUUIBASEDUPDATEDRIVER_H 10 | #define SUUIBASEDUPDATEDRIVER_H 11 | 12 | #import 13 | #import "SUBasicUpdateDriver.h" 14 | #import "SUUpdateAlert.h" 15 | 16 | @class SUStatusController; 17 | 18 | @interface SUUIBasedUpdateDriver : SUBasicUpdateDriver 19 | { 20 | SUStatusController *statusController; 21 | SUUpdateAlert *updateAlert; 22 | } 23 | 24 | - (void)showModalAlert:(NSAlert *)alert; 25 | - (IBAction)cancelDownload: (id)sender; 26 | - (void)installAndRestart: (id)sender; 27 | 28 | @end 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /Sparkle/SUUnarchiver.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUUnarchiver.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 3/16/06. 6 | // Copyright 2006 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SUUNARCHIVER_H 10 | #define SUUNARCHIVER_H 11 | 12 | @class SUHost; 13 | @protocol SUUnarchiverDelegate; 14 | 15 | @interface SUUnarchiver : NSObject { 16 | id delegate; 17 | NSString *archivePath; 18 | SUHost *updateHost; 19 | } 20 | @property (assign) id delegate; 21 | 22 | + (SUUnarchiver *)unarchiverForPath:(NSString *)path updatingHost:(SUHost *)host; 23 | 24 | - (void)start; 25 | @end 26 | 27 | @protocol SUUnarchiverDelegate 28 | - (void)unarchiverDidFinish:(SUUnarchiver *)unarchiver; 29 | - (void)unarchiverDidFail:(SUUnarchiver *)unarchiver; 30 | @optional 31 | - (void)unarchiver:(SUUnarchiver *)unarchiver extractedLength:(unsigned long)length; 32 | @end 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /Sparkle/SUUnarchiver.m: -------------------------------------------------------------------------------- 1 | // 2 | // SUUnarchiver.m 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 3/16/06. 6 | // Copyright 2006 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | 10 | #import "SUUpdater.h" 11 | 12 | #import "SUAppcast.h" 13 | #import "SUAppcastItem.h" 14 | #import "SUVersionComparisonProtocol.h" 15 | #import "SUUnarchiver.h" 16 | #import "SUUnarchiver_Private.h" 17 | 18 | @implementation SUUnarchiver 19 | @synthesize delegate; 20 | 21 | + (SUUnarchiver *)unarchiverForPath:(NSString *)path updatingHost:(SUHost *)host 22 | { 23 | for (id current in [self unarchiverImplementations]) 24 | { 25 | if ([current canUnarchivePath:path]) 26 | return [[[current alloc] initWithPath:path host:host] autorelease]; 27 | } 28 | return nil; 29 | } 30 | 31 | - (NSString *)description { return [NSString stringWithFormat:@"%@ <%@>", [self class], archivePath]; } 32 | 33 | - (void)start 34 | { 35 | // No-op 36 | } 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /Sparkle/SUUnarchiver_Private.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUUnarchiver_Private.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 6/17/08. 6 | // Copyright 2008 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SUUNARCHIVER_PRIVATE_H 10 | #define SUUNARCHIVER_PRIVATE_H 11 | 12 | #import 13 | #import "SUUnarchiver.h" 14 | 15 | @interface SUUnarchiver (Private) 16 | + (void)registerImplementation:(Class)implementation; 17 | + (NSArray *)unarchiverImplementations; 18 | + (BOOL)canUnarchivePath:(NSString *)path; 19 | - (id)initWithPath:(NSString *)path host:(SUHost *)host; 20 | 21 | - (void)notifyDelegateOfExtractedLength:(NSNumber *)length; 22 | - (void)notifyDelegateOfSuccess; 23 | - (void)notifyDelegateOfFailure; 24 | @end 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /Sparkle/SUUpdateAlert.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUUpdateAlert.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 3/12/06. 6 | // Copyright 2006 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SUUPDATEALERT_H 10 | #define SUUPDATEALERT_H 11 | 12 | #import "SUWindowController.h" 13 | #import "SUVersionDisplayProtocol.h" 14 | 15 | @protocol SUUpdateAlertDelegate; 16 | 17 | typedef enum 18 | { 19 | SUInstallUpdateChoice, 20 | SURemindMeLaterChoice, 21 | SUSkipThisVersionChoice, 22 | SUOpenInfoURLChoice 23 | } SUUpdateAlertChoice; 24 | 25 | @class WebView, SUAppcastItem, SUHost; 26 | @interface SUUpdateAlert : SUWindowController { 27 | SUAppcastItem *updateItem; 28 | SUHost *host; 29 | id delegate; 30 | id versionDisplayer; 31 | 32 | IBOutlet WebView *releaseNotesView; 33 | IBOutlet NSTextField *description; 34 | IBOutlet NSButton *installButton; // UK 2007-08-31. 35 | IBOutlet NSButton *skipButton; 36 | IBOutlet NSButton *laterButton; 37 | NSProgressIndicator *releaseNotesSpinner; 38 | BOOL webViewFinishedLoading; 39 | } 40 | @property (assign) id delegate; 41 | 42 | - (id)initWithAppcastItem:(SUAppcastItem *)item host:(SUHost *)host; 43 | 44 | - (IBAction)installUpdate:sender; 45 | - (IBAction)skipThisVersion:sender; 46 | - (IBAction)remindMeLater:sender; 47 | 48 | - (void)setVersionDisplayer: (id)disp; 49 | 50 | @end 51 | 52 | @protocol SUUpdateAlertDelegate 53 | - (void)updateAlert:(SUUpdateAlert *)updateAlert finishedWithChoice:(SUUpdateAlertChoice)updateChoice; 54 | @optional 55 | - (void)updateAlert:(SUUpdateAlert *)updateAlert shouldAllowAutoUpdate: (BOOL*)shouldAllowAutoUpdate; 56 | @end 57 | 58 | #endif 59 | -------------------------------------------------------------------------------- /Sparkle/SUUpdateDriver.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUUpdateDriver.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 5/7/08. 6 | // Copyright 2008 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SUUPDATEDRIVER_H 10 | #define SUUPDATEDRIVER_H 11 | 12 | #import 13 | 14 | extern NSString * const SUUpdateDriverFinishedNotification; 15 | 16 | @class SUHost, SUUpdater; 17 | @interface SUUpdateDriver : NSObject 18 | { 19 | SUHost *host; 20 | SUUpdater *updater; 21 | NSURL *appcastURL; 22 | 23 | BOOL finished; 24 | BOOL isInterruptible; 25 | } 26 | @property (retain) SUHost *host; 27 | 28 | - initWithUpdater:(SUUpdater *)updater; 29 | - (void)checkForUpdatesAtURL:(NSURL *)URL host:(SUHost *)host; 30 | - (void)abortUpdate; 31 | - (BOOL)isInterruptible; 32 | - (BOOL)finished; 33 | 34 | @end 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /Sparkle/SUUpdateDriver.m: -------------------------------------------------------------------------------- 1 | // 2 | // SUUpdateDriver.m 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 5/7/08. 6 | // Copyright 2008 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #import "SUUpdateDriver.h" 10 | #import "SUHost.h" 11 | 12 | NSString * const SUUpdateDriverFinishedNotification = @"SUUpdateDriverFinished"; 13 | 14 | @implementation SUUpdateDriver 15 | 16 | @synthesize host; 17 | 18 | - initWithUpdater:(SUUpdater *)anUpdater 19 | { 20 | if ((self = [super init])) 21 | updater = anUpdater; 22 | return self; 23 | } 24 | 25 | - (NSString *)description { return [NSString stringWithFormat:@"%@ <%@, %@>", [self class], [host bundlePath], [host installationPath]]; } 26 | 27 | - (void)checkForUpdatesAtURL:(NSURL *)URL host:(SUHost *)h 28 | { 29 | appcastURL = [URL copy]; 30 | host = [h retain]; 31 | } 32 | 33 | - (void)abortUpdate 34 | { 35 | [self setValue:[NSNumber numberWithBool:YES] forKey:@"finished"]; 36 | [[NSNotificationCenter defaultCenter] postNotificationName:SUUpdateDriverFinishedNotification object:self]; 37 | } 38 | 39 | - (BOOL)isInterruptible { return isInterruptible; } 40 | 41 | - (BOOL)finished { return finished; } 42 | 43 | - (void)dealloc 44 | { 45 | self.host = nil; 46 | [appcastURL release]; 47 | [super dealloc]; 48 | } 49 | 50 | @end 51 | -------------------------------------------------------------------------------- /Sparkle/SUUpdatePermissionPrompt.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUUpdatePermissionPrompt.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 1/24/08. 6 | // Copyright 2008 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SUUPDATEPERMISSIONPROMPT_H 10 | #define SUUPDATEPERMISSIONPROMPT_H 11 | 12 | #import "SUWindowController.h" 13 | 14 | typedef enum { 15 | SUAutomaticallyCheck, 16 | SUDoNotAutomaticallyCheck 17 | } SUPermissionPromptResult; 18 | 19 | @class SUHost; 20 | @interface SUUpdatePermissionPrompt : SUWindowController { 21 | SUHost *host; 22 | NSArray *systemProfileInformationArray; 23 | id delegate; 24 | IBOutlet NSTextField *descriptionTextField; 25 | IBOutlet NSView *moreInfoView; 26 | IBOutlet NSButton *moreInfoButton; 27 | IBOutlet NSTableView *profileTableView; 28 | BOOL isShowingMoreInfo, shouldSendProfile; 29 | } 30 | + (void)promptWithHost:(SUHost *)aHost systemProfile:(NSArray *)profile delegate:(id)d; 31 | - (IBAction)toggleMoreInfo:(id)sender; 32 | - (IBAction)finishPrompt:(id)sender; 33 | @end 34 | 35 | @interface NSObject (SUUpdatePermissionPromptDelegateInformalProtocol) 36 | - (void)updatePermissionPromptFinishedWithResult:(SUPermissionPromptResult)result; 37 | @end 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /Sparkle/SUUpdater_Private.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUUpdater_Private.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 5/9/11. 6 | // Copyright 2011 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #import "SUUpdater.h" 10 | 11 | @interface SUUpdater (Private) 12 | 13 | - (BOOL)mayUpdateAndRestart; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Sparkle/SUUserInitiatedUpdateDriver.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUUserInitiatedUpdateDriver.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 5/30/08. 6 | // Copyright 2008 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SUUSERINITIATEDUPDATEDRIVER_H 10 | #define SUUSERINITIATEDUPDATEDRIVER_H 11 | 12 | #import 13 | #import "SUUIBasedUpdateDriver.h" 14 | 15 | @interface SUUserInitiatedUpdateDriver : SUUIBasedUpdateDriver 16 | { 17 | @private 18 | SUStatusController *checkingController; 19 | BOOL isCanceled; 20 | } 21 | 22 | @end 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /Sparkle/SUVersionComparisonProtocol.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUVersionComparisonProtocol.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 12/21/07. 6 | // Copyright 2007 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SUVERSIONCOMPARISONPROTOCOL_H 10 | #define SUVERSIONCOMPARISONPROTOCOL_H 11 | 12 | #import 13 | 14 | /*! 15 | @protocol 16 | @abstract Implement this protocol to provide version comparison facilities for Sparkle. 17 | */ 18 | @protocol SUVersionComparison 19 | 20 | /*! 21 | @method 22 | @abstract An abstract method to compare two version strings. 23 | @discussion Should return NSOrderedAscending if b > a, NSOrderedDescending if b < a, and NSOrderedSame if they are equivalent. 24 | */ 25 | - (NSComparisonResult)compareVersion:(NSString *)versionA toVersion:(NSString *)versionB; // *** MAY BE CALLED ON NON-MAIN THREAD! 26 | 27 | @end 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /Sparkle/SUVersionDisplayProtocol.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUVersionDisplayProtocol.h 3 | // EyeTV 4 | // 5 | // Created by Uli Kusterer on 08.12.09. 6 | // Copyright 2009 Elgato Systems GmbH. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | 12 | /*! 13 | @protocol 14 | @abstract Implement this protocol to apply special formatting to the two 15 | version numbers. 16 | */ 17 | @protocol SUVersionDisplay 18 | 19 | /*! 20 | @method 21 | @abstract An abstract method to format two version strings. 22 | @discussion You get both so you can display important distinguishing 23 | information, but leave out unnecessary/confusing parts. 24 | */ 25 | -(void) formatVersion: (NSString**)inOutVersionA andVersion: (NSString**)inOutVersionB; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Sparkle/SUWindowController.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUWindowController.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 2/13/08. 6 | // Copyright 2008 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SUWINDOWCONTROLLER_H 10 | #define SUWINDOWCONTROLLER_H 11 | 12 | #import 13 | 14 | @class SUHost; 15 | @interface SUWindowController : NSWindowController { } 16 | // We use this instead of plain old NSWindowController initWithWindowNibName so that we'll be able to find the right path when running in a bundle loaded from another app. 17 | - (id)initWithHost:(SUHost *)host windowNibName:(NSString *)nibName; 18 | @end 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /Sparkle/SUWindowController.m: -------------------------------------------------------------------------------- 1 | // 2 | // SUWindowController.m 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 2/13/08. 6 | // Copyright 2008 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #import "SUWindowController.h" 10 | #import "SUHost.h" 11 | 12 | @implementation SUWindowController 13 | 14 | - (id)initWithHost:(SUHost *)host windowNibName:(NSString *)nibName 15 | { 16 | NSString *path = [[NSBundle bundleForClass:[self class]] pathForResource:nibName ofType:@"nib"]; 17 | if (path == nil) // Slight hack to resolve issues with running Sparkle in debug configurations. 18 | { 19 | NSString *frameworkPath = [[[host bundle] sharedFrameworksPath] stringByAppendingPathComponent:@"Sparkle.framework"]; 20 | NSBundle *framework = [NSBundle bundleWithPath:frameworkPath]; 21 | path = [framework pathForResource:nibName ofType:@"nib"]; 22 | } 23 | self = [super initWithWindowNibPath:path owner:self]; 24 | return self; 25 | } 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Sparkle/Sparkle.h: -------------------------------------------------------------------------------- 1 | // 2 | // Sparkle.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 3/16/06. (Modified by CDHW on 23/12/07) 6 | // Copyright 2006 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SPARKLE_H 10 | #define SPARKLE_H 11 | 12 | // This list should include the shared headers. It doesn't matter if some of them aren't shared (unless 13 | // there are name-space collisions) so we can list all of them to start with: 14 | 15 | #import 16 | 17 | #import 18 | #import 19 | #import 20 | #import 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /Sparkle/Sparkle.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/Sparkle/Sparkle.icns -------------------------------------------------------------------------------- /Sparkle/Sparkle.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Sparkle.pch 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 7/23/08. 6 | // Copyright 2008 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef NSAppKitVersionNumber10_4 10 | #define NSAppKitVersionNumber10_4 824 11 | #endif 12 | 13 | #ifndef NSAppKitVersionNumber10_5 14 | #define NSAppKitVersionNumber10_5 949 15 | #endif 16 | 17 | #ifndef NSAppKitVersionNumber10_6 18 | #define NSAppKitVersionNumber10_6 1038 19 | #endif 20 | 21 | #ifdef __OBJC__ 22 | 23 | #define SPARKLE_BUNDLE [NSBundle bundleWithIdentifier:@"org.andymatuschak.Sparkle"] 24 | #define SULocalizedString(key,comment) NSLocalizedStringFromTableInBundle(key, @"Sparkle", SPARKLE_BUNDLE, comment) 25 | #define SUAbstractFail() NSAssert2(nil, @"Can't call %@ on an instance of %@; this is an abstract method!", __PRETTY_FUNCTION__, [self class]); 26 | 27 | #import 28 | #import "SUConstants.h" 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /Sparkle/Sparkle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/Sparkle/Sparkle.png -------------------------------------------------------------------------------- /Sparkle/Sparkle.xcodeproj/.gitignore: -------------------------------------------------------------------------------- 1 | *.pbxuser 2 | *.perspectivev3 3 | *.mode1v3 4 | project.xcworkspace/ 5 | xcuserdata/ 6 | -------------------------------------------------------------------------------- /Sparkle/Test Application/English.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | NSHumanReadableCopyright = "© Andy Matuschak, 2006"; 4 | CFBundleShortVersionString = "1.5"; -------------------------------------------------------------------------------- /Sparkle/Test Application/Test Application-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIconFile 10 | Sparkle 11 | CFBundleName 12 | Sparkle Test App 13 | CFBundleIdentifier 14 | org.andymatuschak.SparkleTestApp 15 | CFBundleInfoDictionaryVersion 16 | 6.0 17 | CFBundlePackageType 18 | APPL 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1.5 23 | NSMainNibFile 24 | MainMenu 25 | NSPrincipalClass 26 | NSApplication 27 | SUFeedURL 28 | http://www.andymatuschak.org/files/sparkletestcast.xml 29 | SUEnableSystemProfiling 30 | 31 | SUPublicDSAKeyFile 32 | dsa_pub.pem 33 | 34 | 35 | -------------------------------------------------------------------------------- /Sparkle/Test Application/dsa_priv.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN DSA PRIVATE KEY----- 2 | MIIDPgIBAAKCAQEA9lmy8fAXdW9b6fBXQ6Us5B2dLZV+cR685tFlhPSKJDpicP1F 3 | pNRkGESZwPFJbnxUyVeHWVS9yLeMcKqllhcjd+i1oEFKX7LPXk5+zO745OwVWHIe 4 | 0DLOIxhJ0mJHm7mH1YVGZYOVVYkPt+0Y/hDbQVK5DycSGAhgDiCZ+Obl+aDSD2xJ 5 | RZGnVOpu83dYJ/CoUYCHqWtpN4gW5Bbgm8Uz0/2qiyPjFvJEeI1yE04AZA3sOg1y 6 | 1S/UrCbqeC3gBIs0xsskwWOW3zCWjvDWgfPrj65At0mVfq/yyGgXJlN71X5sONxR 7 | swZSbRn5T2i/BJPZUStWks5Nxq+7T3WmnaPbTwIVAJp+BByoy95V3x8wZg0q66eR 8 | ufiJAoIBABbxkX6C9Lt8zeDvvIpk8X4kmHBVIwVJcuICJTVzOAIBZsvFhPnYmUYe 9 | v93oPgjtAdYqPrYZlNrExQG1e7B1bhmgaT8hbXL6whxhqRHKlsJsboVHNQs3qAbx 10 | sOLvJnwgb3FD4xX4ZZSSRXSIGk62FxcaoLG+mSlirGM/SY4yZDpURSJUX6MHdUZa 11 | qHWWGL3b31pz3d9h6SPYv6H4T3ZReVtn+dXYh/41SWkQqEyhAsHGBvqpDwuYJCCI 12 | Mwuvwz0U/KcwiydDaFo900MC9S33zEpk/YUxgA9YsiY5+UvWSy5M/yvkKBkvkb+I 13 | G6DAMWtApWu0fDcLV6jA9JKXmcAwAIECggEBAPC0OJEnLkOwU1Ehop7o2XJbWDKN 14 | giFt44IO3l9gx1fu05HrieDbwAJTkRK7qNEA0yk1iMT2hMHHbwLRNddEsOJuUd7o 15 | iyKwqwkmCQ2Q1zYPBR09wag9NEr8xLSTQJCw9CpxTRSH+9hc1DeuwkwAnTEn7JiW 16 | WbcxVCRtmtaUlN7+dTozxqGJHpYF6WsqHMeuG7Ixnyf6he8Fz8mjxnrc7/l73gFL 17 | Q+IZvUSjzh2zqtqaejtcmlNcT+fGmEFKxpcLB3JP3uu8PN8MbS/R6j191f1ovuM9 18 | U4MO3RuT4xJF0OlwyWAnOEik1S1p+tNQciQ/Ipv8Ff3DDBct9YZPPlNGi+ICFHHD 19 | tP5yX7hMTJIykGaMuM44KJMM 20 | -----END DSA PRIVATE KEY----- 21 | -------------------------------------------------------------------------------- /Sparkle/Test Application/dsa_pub.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MIIDOzCCAi0GByqGSM44BAEwggIgAoIBAQD2WbLx8Bd1b1vp8FdDpSzkHZ0tlX5x 3 | Hrzm0WWE9IokOmJw/UWk1GQYRJnA8UlufFTJV4dZVL3It4xwqqWWFyN36LWgQUpf 4 | ss9eTn7M7vjk7BVYch7QMs4jGEnSYkebuYfVhUZlg5VViQ+37Rj+ENtBUrkPJxIY 5 | CGAOIJn45uX5oNIPbElFkadU6m7zd1gn8KhRgIepa2k3iBbkFuCbxTPT/aqLI+MW 6 | 8kR4jXITTgBkDew6DXLVL9SsJup4LeAEizTGyyTBY5bfMJaO8NaB8+uPrkC3SZV+ 7 | r/LIaBcmU3vVfmw43FGzBlJtGflPaL8Ek9lRK1aSzk3Gr7tPdaado9tPAhUAmn4E 8 | HKjL3lXfHzBmDSrrp5G5+IkCggEAFvGRfoL0u3zN4O+8imTxfiSYcFUjBUly4gIl 9 | NXM4AgFmy8WE+diZRh6/3eg+CO0B1io+thmU2sTFAbV7sHVuGaBpPyFtcvrCHGGp 10 | EcqWwmxuhUc1CzeoBvGw4u8mfCBvcUPjFfhllJJFdIgaTrYXFxqgsb6ZKWKsYz9J 11 | jjJkOlRFIlRfowd1RlqodZYYvdvfWnPd32HpI9i/ofhPdlF5W2f51diH/jVJaRCo 12 | TKECwcYG+qkPC5gkIIgzC6/DPRT8pzCLJ0NoWj3TQwL1LffMSmT9hTGAD1iyJjn5 13 | S9ZLLkz/K+QoGS+Rv4gboMAxa0Cla7R8NwtXqMD0kpeZwDAAgQOCAQYAAoIBAQDw 14 | tDiRJy5DsFNRIaKe6NlyW1gyjYIhbeOCDt5fYMdX7tOR64ng28ACU5ESu6jRANMp 15 | NYjE9oTBx28C0TXXRLDiblHe6IsisKsJJgkNkNc2DwUdPcGoPTRK/MS0k0CQsPQq 16 | cU0Uh/vYXNQ3rsJMAJ0xJ+yYllm3MVQkbZrWlJTe/nU6M8ahiR6WBelrKhzHrhuy 17 | MZ8n+oXvBc/Jo8Z63O/5e94BS0PiGb1Eo84ds6ramno7XJpTXE/nxphBSsaXCwdy 18 | T97rvDzfDG0v0eo9fdX9aL7jPVODDt0bk+MSRdDpcMlgJzhIpNUtafrTUHIkPyKb 19 | /BX9wwwXLfWGTz5TRovi 20 | -----END PUBLIC KEY----- 21 | -------------------------------------------------------------------------------- /Sparkle/Test Application/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 3/12/06. 6 | // Copyright Andy Matuschak 2006. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | int main(int argc, char *argv[]) 12 | { 13 | return NSApplicationMain(argc, (const char **) argv); 14 | } 15 | -------------------------------------------------------------------------------- /Sparkle/Tests/SUVersionComparisonTest.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUVersionComparisonTest.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 4/15/08. 6 | // Copyright 2008 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | 12 | @interface SUVersionComparisonTest : SenTestCase { 13 | 14 | } 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Sparkle/Tests/Sparkle Unit Tests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | org.andymatuschak.sparkle.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleSignature 16 | ???? 17 | CFBundleVersion 18 | 1.0 19 | 20 | 21 | -------------------------------------------------------------------------------- /Sparkle/bspatch.h: -------------------------------------------------------------------------------- 1 | /* 2 | * bspatch.h 3 | * Sparkle 4 | * 5 | * Created by Andy Matuschak on 1/11/10. 6 | * Copyright 2010 Andy Matuschak. All rights reserved. 7 | * 8 | */ 9 | 10 | // So that we can use this method in SUBinaryDeltaApply.m. 11 | // Silences the GCC warning that the prototype doesn't exist. 12 | int bspatch(int argc, char * argv[]); 13 | -------------------------------------------------------------------------------- /Sparkle/ca.lproj/SUAutomaticUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* NSWindow () : (oid:5) */ 2 | "" = ""; 3 | 4 | /* NSButton (Automatically download and install updates in the future) : (oid:17) */ 5 | "Automatically download and install updates in the future" = "Baixa i instal·la les actualitzacions automàticament en el futur"; 6 | 7 | /* NSButton (Relaunch Later) : (oid:16) */ 8 | "Relaunch Later" = "Reinicia el programa més tard"; 9 | 10 | /* NSButton (Relaunch Now) : (oid:15) */ 11 | "Relaunch Now" = "Reinicia el programa ara"; 12 | 13 | -------------------------------------------------------------------------------- /Sparkle/ca.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* NSButton (Automatically download and install updates in the future) : (oid:92) */ 2 | "Automatically download and install updates in the future" = "Descarrega i instal·la les actualitzacions automàticament en el futur"; 3 | 4 | /* NSButton (Install Update) : (oid:76) */ 5 | "Install Update" = "Instal·la l'actualització"; 6 | 7 | /* NSTextField (Release Notes:) : (oid:17) */ 8 | "Release Notes:" = "Notes d'aquesta versió:"; 9 | 10 | /* NSButton (Remind Me Later) : (oid:22) */ 11 | "Remind Me Later" = "Recorda-m'ho més tard"; 12 | 13 | /* NSButton (Skip This Version) : (oid:23) */ 14 | "Skip This Version" = "Omet aquesta versió"; 15 | 16 | /* NSWindow (Software Update) : (oid:5) */ 17 | "Software Update" = "Actualització del programari"; 18 | 19 | -------------------------------------------------------------------------------- /Sparkle/fi.lproj/SUAutomaticUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* NSWindow () : (oid:5) */ 2 | "" = ""; 3 | 4 | /* NSButton (Automatically download and install updates in the future) : (oid:17) */ 5 | "Automatically download and install updates in the future" = "Hae ja asenna päivitykset jatkossa automaattisesti"; 6 | 7 | /* NSButton (Relaunch Later) : (oid:16) */ 8 | "Relaunch Later" = "Käynnistä uudelleen myöhemmin"; 9 | 10 | /* NSButton (Relaunch Now) : (oid:15) */ 11 | "Relaunch Now" = "Käynnistä uudelleen nyt"; 12 | 13 | -------------------------------------------------------------------------------- /Sparkle/fi.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* NSButton (Automatically download and install updates in the future) : (oid:92) */ 2 | "Automatically download and install updates in the future" = "Hae ja asenna päivitykset jatkossa automaattisesti"; 3 | 4 | /* NSButton (Install Update) : (oid:76) */ 5 | "Install Update" = "Asenna päivitys"; 6 | 7 | /* NSTextField (Release Notes:) : (oid:17) */ 8 | "Release Notes:" = "Tietoa päivityksestä:"; 9 | 10 | /* NSButton (Remind Me Later) : (oid:22) */ 11 | "Remind Me Later" = "Muistuta myöhemmin"; 12 | 13 | /* NSButton (Skip This Version) : (oid:23) */ 14 | "Skip This Version" = "Ohita tämä versio"; 15 | 16 | /* NSWindow (Software Update) : (oid:5) */ 17 | "Software Update" = "Ohjelmiston pävitys"; 18 | 19 | -------------------------------------------------------------------------------- /Sparkle/finish_installation-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIconFile 10 | Sparkle 11 | CFBundleIdentifier 12 | org.andymatuschak.sparkle.${PRODUCT_NAME:rfc1034identifier} 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | ${CURRENT_PROJECT_VERSION} 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | LSBackgroundOnly 24 | 1 25 | LSMinimumSystemVersion 26 | 10.6 27 | LSUIElement 28 | 1 29 | NSMainNibFile 30 | MainMenu 31 | NSPrincipalClass 32 | NSApplication 33 | 34 | 35 | -------------------------------------------------------------------------------- /Sparkle/finish_installation.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Sparkle.pch 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 7/23/08. 6 | // Copyright 2008 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #define SPARKLE_BUNDLE [NSBundle mainBundle] 10 | #define SULocalizedString(key,comment) NSLocalizedStringFromTableInBundle(key, @"Sparkle", SPARKLE_BUNDLE, comment) 11 | #define SUAbstractFail() NSAssert2(nil, @"Can't call %@ on an instance of %@; this is an abstract method!", __PRETTY_FUNCTION__, [self class]); 12 | 13 | #ifdef __OBJC__ 14 | #import 15 | #import "SUConstants.h" 16 | #endif 17 | -------------------------------------------------------------------------------- /Sparkle/generate_keys.rb: -------------------------------------------------------------------------------- 1 | #!/usr/bin/ruby 2 | ["dsaparam.pem", "dsa_priv.pem", "dsa_pub.pem"].each do |file| 3 | if File.exist? file 4 | puts "There's already a #{file} here! Move it aside or be more careful!" 5 | exit 6 | end 7 | end 8 | openssl = "/usr/bin/openssl" 9 | `#{openssl} dsaparam 1024 < /dev/urandom > dsaparam.pem` 10 | `#{openssl} gendsa dsaparam.pem -out dsa_priv.pem` 11 | `#{openssl} dsa -in dsa_priv.pem -pubout -out dsa_pub.pem` 12 | `rm dsaparam.pem` 13 | puts "\nGenerated private and public keys: dsa_priv.pem and dsa_pub.pem.\n 14 | BACK UP YOUR PRIVATE KEY AND KEEP IT SAFE!\n 15 | If you lose it, your users will be unable to upgrade!\n" 16 | -------------------------------------------------------------------------------- /Sparkle/he.lproj/SUAutomaticUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* NSWindow () : (oid:5) */ 2 | "" = ""; 3 | 4 | /* NSButton (Automatically download and install updates in the future) : (oid:17) */ 5 | "Automatically download and install updates in the future" = "הורד והתקן עדכונים אוטומטית גם בעתיד"; 6 | 7 | /* NSButton (Relaunch Later) : (oid:16) */ 8 | "Relaunch Later" = "אתחל מאוחר יותר"; 9 | 10 | /* NSButton (Relaunch Now) : (oid:15) */ 11 | "Relaunch Now" = "אתחל עכשיו"; 12 | 13 | -------------------------------------------------------------------------------- /Sparkle/he.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* NSButton (Automatically download and install updates in the future) : (oid:92) */ 2 | "Automatically download and install updates in the future" = "הורד והתקן עדכונים אוטומטית גם בעתיד"; 3 | 4 | /* NSButton (Install Update) : (oid:76) */ 5 | "Install Update" = "התקן עדכון"; 6 | 7 | /* NSTextField (Release Notes:) : (oid:17) */ 8 | "Release Notes:" = "פרטי גרסה:"; 9 | 10 | /* NSButton (Remind Me Later) : (oid:22) */ 11 | "Remind Me Later" = "הזכר לי מאוחר יותר"; 12 | 13 | /* NSButton (Skip This Version) : (oid:23) */ 14 | "Skip This Version" = "דלג על גרסה זו"; 15 | 16 | /* NSWindow (Software Update) : (oid:5) */ 17 | "Software Update" = "עדכון תכנה"; 18 | 19 | -------------------------------------------------------------------------------- /Sparkle/no.lproj/SUAutomaticUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* NSWindow () : (oid:5) */ 2 | "" = ""; 3 | 4 | /* NSButton (Automatically download and install updates in the future) : (oid:17) */ 5 | "Automatically download and install updates in the future" = "Last ned og installer oppdateringer automatisk i fremtiden"; 6 | 7 | /* NSButton (Relaunch Later) : (oid:16) */ 8 | "Relaunch Later" = "Omstart senere"; 9 | 10 | /* NSButton (Relaunch Now) : (oid:15) */ 11 | "Relaunch Now" = "Omstart nå"; 12 | 13 | -------------------------------------------------------------------------------- /Sparkle/no.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* NSButton (Automatically download and install updates in the future) : (oid:92) */ 2 | "Automatically download and install updates in the future" = "Automatisk nedlastning og installering i fremtiden"; 3 | 4 | /* NSButton (Install Update) : (oid:76) */ 5 | "Install Update" = "Installer oppdatering"; 6 | 7 | /* NSTextField (Release Notes:) : (oid:17) */ 8 | "Release Notes:" = "Vedrørende utgivelsen:"; 9 | 10 | /* NSButton (Remind Me Later) : (oid:22) */ 11 | "Remind Me Later" = "Påminn meg senere"; 12 | 13 | /* NSButton (Skip This Version) : (oid:23) */ 14 | "Skip This Version" = "Hopp over denne versjonen"; 15 | 16 | /* NSWindow (Software Update) : (oid:5) */ 17 | "Software Update" = "Programvareoppdatering"; 18 | 19 | -------------------------------------------------------------------------------- /Sparkle/ro.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | NSHumanReadableCopyright = "© Andy Matuschak, 2006"; 4 | CFBundleShortVersionString = "1.5"; -------------------------------------------------------------------------------- /Sparkle/sign_update.rb: -------------------------------------------------------------------------------- 1 | #!/usr/bin/ruby 2 | if ARGV.length < 2 3 | puts "Usage: ruby sign_update.rb update_archive private_key" 4 | exit 5 | end 6 | openssl = "/usr/bin/openssl" 7 | puts `#{openssl} dgst -sha1 -binary < "#{ARGV[0]}" | #{openssl} dgst -dss1 -sign "#{ARGV[1]}" | #{openssl} enc -base64` -------------------------------------------------------------------------------- /distcc/AUTHORS: -------------------------------------------------------------------------------- 1 | Author and maintainer emeritus of distcc: 2 | 3 | Martin Pool 4 | 5 | Authors of "pump" functionality, and maintainers of distcc: 6 | 7 | Nils Klarlund 8 | Fergus Henderson 9 | Craig Silverstein 10 | Manos Renieris 11 | 12 | See NEWS for credits of other contributors. 13 | -------------------------------------------------------------------------------- /distcc/NEWS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/distcc/NEWS -------------------------------------------------------------------------------- /distcc/autogen.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh -e 2 | 3 | # Usage: autogen.sh [srcdir] 4 | # Run this script to build distcc from CVS. 5 | 6 | ## first try the default names 7 | ACLOCAL="aclocal" 8 | AUTOHEADER="autoheader" 9 | AUTOCONF="autoconf" 10 | 11 | if which $AUTOCONF > /dev/null 12 | then 13 | : 14 | else 15 | echo "$0: need autoconf 2.53 or later to regenerate configure scripts" >&2 16 | exit 1 17 | fi 18 | 19 | srcdir=`dirname "$0"` 20 | builddir=`pwd` 21 | 22 | echo "$0: running $ACLOCAL" 23 | (cd $srcdir && $ACLOCAL -I m4 --output="$builddir"/aclocal.m4) 24 | 25 | echo "$0: running $AUTOHEADER" 26 | [ -d src ] || mkdir src # Needed for autoheader to generate src/config.h.in. 27 | $AUTOHEADER $srcdir/configure.ac 28 | 29 | echo "$0: running $AUTOCONF" 30 | $AUTOCONF $srcdir/configure.ac > configure 31 | chmod +x configure 32 | 33 | if [ "$srcdir" = "." ]; then 34 | echo "Now run './configure' and then 'make'." 35 | else 36 | echo "Now run './configure --srcdir=$srcdir' and then 'make'." 37 | fi 38 | exit 0 39 | -------------------------------------------------------------------------------- /distcc/bench/statistics.py: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env python2.2 2 | 3 | # benchmark -- automated system for testing distcc correctness 4 | # and performance on various source trees. 5 | 6 | # Copyright (C) 2003 by Martin Pool 7 | # Copyright 2008 Google Inc. 8 | # 9 | # This program is free software; you can redistribute it and/or 10 | # modify it under the terms of the GNU General Public License 11 | # as published by the Free Software Foundation; either version 2 12 | # of the License, or (at your option) any later version. 13 | # 14 | # This program is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | # GNU General Public License for more details. 18 | # 19 | # You should have received a copy of the GNU General Public License 20 | # along with this program; if not, write to the Free Software 21 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 22 | # USA. 23 | 24 | import math 25 | 26 | def var(m): 27 | """ 28 | Variance of m. 29 | """ 30 | if len(m) < 2: 31 | return None 32 | mu = mean(m) 33 | return sum((x - mu) * (x - mu) for x in m) / (len(m) - 1.0) 34 | 35 | def std(m): 36 | """ 37 | Standard deviation of m. 38 | """ 39 | v = var(m) 40 | return v and math.sqrt(v) 41 | 42 | def mean(m): 43 | if len(m) < 1: 44 | return None 45 | return sum(m)/len(m) 46 | -------------------------------------------------------------------------------- /distcc/contrib/distcc-absolutify: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | # Copyright 2002 Free Software Foundation 3 | # by Alexandre Oliva 4 | 5 | # This script is Free Software, and it can be copied, distributed and 6 | # modified as defined in the GNU General Public License. A copy of 7 | # its license can be downloaded from http://www.gnu.org/copyleft/gpl.html 8 | 9 | # This is a wrapper for distcc that turns relative pathnames into 10 | # network-neutral ones. It modifies anything containing a slash and 11 | # not starting with dash or slash, as well as -B flags. We need not 12 | # be concerned about -I and -L, since distcc always does preprocessing 13 | # and linking locally. 14 | 15 | 16 | # If the first pathname is relative (.../xgcc, ./libtool, etc), 17 | case "$1" in 18 | [^/]*/*) 19 | nargs=$# 20 | basedir=`${NETPWD-netpwd}` 21 | # then process arguments 22 | for arg 23 | do 24 | case $arg in 25 | -B[^/]*) 26 | arg=-B$basedir/`echo "X$arg" | sed -e '1s/^X-B//'` 27 | ;; 28 | [^-/]*/*) 29 | arg=$basedir/$arg 30 | ;; 31 | esac 32 | set fnord ${1+"$@"} "$arg" 33 | done 34 | shift $nargs # take list of fnords out 35 | shift $nargs # take original args out 36 | ;; 37 | esac 38 | 39 | # Now run the real distcc thingie, or just run the program directly if 40 | # distcc is found to be missing. 41 | if test -x ${REAL_DISTCC-/usr/bin/distcc}; then 42 | x=${REAL_DISTCC-/usr/bin/distcc} 43 | else 44 | x=$1 45 | shift 46 | fi 47 | exec $x ${1+"$@"} 48 | -------------------------------------------------------------------------------- /distcc/contrib/distcc.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | # This file, contributed by Dimitri PAPADOPOULOS-ORFANOS 4 | # may be installed as "cc" somewhere on your $PATH ahead of the real gcc. That 5 | # allows you to just use regular Makefiles without modifying them to change 6 | # hardcoded calls to cc. 7 | 8 | # This script will be a bit slow because of the overhead of running 9 | # things through a shell. In a future release, this function should 10 | # be supported directly by distcc, which should be a bit faster. 11 | 12 | DISTCC_HOME=/usr/local/distcc 13 | 14 | name=`basename $0` 15 | 16 | if [ "$name" = distcc ]; then 17 | echo "In normal use distcc is not called by its real name." 1>&2 18 | echo "Instead create links to the actual compiler you wish to run, e.g." 1>&2 19 | echo " ln -s distcc gcc" 1>&2 20 | echo "and make sure the link is before the real compiler in your path." 1>&2 21 | exit 1 22 | fi 23 | 24 | unset found 25 | IFS=: 26 | for item in $PATH; do 27 | if [ -x "$item/$name" -a ! -d "$item/$name" ]; then 28 | if [ `cd $item; /bin/pwd` != `/bin/pwd` ]; then 29 | found=true 30 | break 31 | fi 32 | fi 33 | done 34 | 35 | if [ -n "$found" ]; then 36 | exec "distcc $item/$name $@" 37 | else 38 | echo "$name: not found" 1>&2 39 | fi 40 | exit 1 41 | -------------------------------------------------------------------------------- /distcc/contrib/dmake: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | # Example script contributed by Luke Gorrie 4 | 5 | # "Drop-in" front end to 'make' that uses the distributed compile farm 6 | # via `distcc' 7 | 8 | # Compile farm hosts are stored in ~bluetail/distcc-hosts. We exclude 9 | # the local machine to free up resources for preprocessing and 10 | # linking, since it seems to be the bottleneck (at least on 11 | # kookaburra). 12 | 13 | DISTCC_HOSTS=$(sed s/$(hostname -s)// < /home/share/bluetail/distcc-hosts) 14 | 15 | make CC='/home/share/luke/bin/distcc gcc' -j 7 "$@" 16 | 17 | -------------------------------------------------------------------------------- /distcc/contrib/make-j: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | # make-j script from Alexandre Oliva for use with distcc 4 | 5 | # Tests which machines are up, and runs Make with concurrency set 6 | # appropriately. 7 | 8 | hostlist=$DISTCC_HOSTS 9 | distcc_port=4200 10 | DISTCC_HOSTS= 11 | count=0 12 | for h in $hostlist; do 13 | echo trying $h... >&2 14 | if test "x$h" = xlocalhost || nc -z $h $distcc_port; then 15 | echo added $h... >&2 16 | DISTCC_HOSTS=`echo $DISTCC_HOSTS $h` # remove leading blank 17 | count=`expr $count + 1` 18 | fi 19 | done 20 | export DISTCC_HOSTS 21 | exec make -j $count ${1+"$@"} 22 | -------------------------------------------------------------------------------- /distcc/contrib/netpwd: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | # Copyright 2002 Free Software Foundation 3 | # by Alexandre Oliva 4 | 5 | # This script is Free Software, and it can be copied, distributed and 6 | # modified as defined in the GNU General Public License. A copy of 7 | # its license can be downloaded from http://www.gnu.org/copyleft/gpl.html 8 | 9 | # Turn a local pathname into a network-neutral one. It assumes 10 | # /net/$HOSTNAME/pathname can access $HOSTNAME's /pathname from other 11 | # machines, and that /net/$HOSTNAME is actually mounted (by amd) 12 | # inside /.automount/$HOSTNAME/root, so it compensates for that. 13 | 14 | dir=`${REAL_PWD-pwd}` 15 | case $dir in 16 | /net/*) 17 | ;; 18 | /.automount/*/root/*) 19 | dir=/net/`echo "$dir" | sed -e '1s,^/\.automount/,,' -e 's,/root/,/,'` 20 | ;; 21 | *) 22 | dir=/net/${HOSTNAME-`uname -n`}$dir 23 | ;; 24 | esac 25 | echo $dir 26 | exit 0 27 | -------------------------------------------------------------------------------- /distcc/contrib/redhat/logrotate: -------------------------------------------------------------------------------- 1 | /var/log/distccd.log { 2 | missingok 3 | copytruncate 4 | notifempty 5 | } 6 | -------------------------------------------------------------------------------- /distcc/contrib/redhat/sysconfig: -------------------------------------------------------------------------------- 1 | ### See distcc(1) manual page for more information on these options. 2 | ### 3 | 4 | #OPTIONS="--nice 5 --jobs 5 --allow 10.0.0.0/24 --port 1234" 5 | #USER="distcc" 6 | 7 | ### Set this if don't want distccd to use gcc or g++ by accident. 8 | #DISTCCPATH="/usr/lib/distcc/bin" 9 | -------------------------------------------------------------------------------- /distcc/contrib/redhat/xinetd: -------------------------------------------------------------------------------- 1 | # default: off 2 | # description: Distccd - distributed compilation front-end (xinetd) \ 3 | # Please disable the daemon if you enable this. \ 4 | # WARNING: Don't enable on untrusted networks 5 | service distccd 6 | { 7 | disable = yes 8 | socket_type = stream 9 | protocol = tcp 10 | port = 3632 11 | type = UNLISTED 12 | wait = no 13 | user = distcc 14 | server = /usr/bin/distccd 15 | server_args = --inetd --log-file="/var/log/distccd.log" 16 | only_from = 127.0.0.1 17 | } 18 | -------------------------------------------------------------------------------- /distcc/distcc_compilers: -------------------------------------------------------------------------------- 1 | # This file contains a list of the compilers that distcc will allow to be remotely invoked. 2 | # One compiler per line, newline separated, no whitespace allowed. 3 | 4 | # Entries beginning with '/' are treated as the absolute path to a compiler. 5 | # Other entires are relative. Normally, they will be relative to the parent directory of the tool (e.g. /usr/bin/distcc will map 'bin/cc' to /usr/bin/cc), unless the tool environment has USE_XCODE_SELECT_PATH=1, in which case they will be relative to the xcode-select(1) usr dir (e.g. 'bin/cc' becomes `xcode-select --print-path`/usr/bin/cc). USE_XCODE_SELECT_PATH is intended to allow distccd to use the developer toolchain out of the current developer directory. 6 | 7 | bin/cc 8 | bin/gcc 9 | bin/g++ 10 | bin/gcc-3.3 11 | bin/g++-3.3 12 | bin/gcc-4.0 13 | bin/g++-4.0 14 | bin/gcc-4.2 15 | bin/g++-4.2 16 | bin/llvm-gcc-4.2 17 | bin/llvm-g++-4.2 18 | bin/clang 19 | bin/clang++ 20 | /usr/bin/g++-3.3 21 | /usr/bin/gcc-3.3 22 | -------------------------------------------------------------------------------- /distcc/doc/example/README: -------------------------------------------------------------------------------- 1 | This directory (distcc/doc/example) contains example configuration 2 | files for the distccd service that need to be installed manually when 3 | distccd is installed via "make install". For a typical Linux system, 4 | these files would need to be installed in the following locations: 5 | 6 | /etc/init.d/distcc 7 | /etc/logrotate.d/distcc 8 | /etc/inetd.d/distcc 9 | /etc/defaults/distcc 10 | /etc/services # Just append one line to this file. 11 | /etc/hosts.allow # Just append one line to this file. 12 | 13 | The details of how to set up services are quite system-specific, so 14 | depending on your system you may need to do things differently. 15 | 16 | If you install distccd using the RPM or Debian package, appropriate 17 | versions of those files will be installed automatically, so you don't 18 | need to install them manually, and you don't need to bother looking at 19 | the files in this directory (distcc/doc/example). However, you may need 20 | to edit the /etc/hosts.allow file. 21 | 22 | In addition to the above-mentioned configuration files, you may also 23 | need to edit the following three files in distcc's sysconf directory 24 | (/etc/distcc, or /usr/local/etc/distcc, or some other location, depending 25 | on how your configured distcc). Example versions of these configuration 26 | files get installed automatically by "make install" and by the RPM and 27 | Debian packages. Two configuration files on the server machines are 28 | used by the init script for starting distccd: 29 | 30 | /etc/distcc/commands.allow.sh 31 | /etc/distcc/clients.allow 32 | 33 | One configuration file on the client machine is used by distcc: 34 | 35 | /etc/distcc/hosts 36 | 37 | -------------------------------------------------------------------------------- /distcc/doc/example/default: -------------------------------------------------------------------------------- 1 | # This should go in the file /etc/default/distcc. 2 | STARTDISTCC=true 3 | -------------------------------------------------------------------------------- /distcc/doc/example/hosts.allow: -------------------------------------------------------------------------------- 1 | # A line like this should be appended to /etc/hosts.allow. 2 | # You'll need to edit this to allow access from other hosts. 3 | distcc: 127.0.0.1 4 | -------------------------------------------------------------------------------- /distcc/doc/example/init: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | # 3 | # chkconfig: - 60 20 4 | # description: The distcc deamon 5 | # http://code.google.com/p/distcc/ 6 | # 7 | # processname: distccd 8 | 9 | # This is a Red Hat init.d file to start distccd. To install it, copy 10 | # it into /etc/init.d/distccd, and add appropriate links into the 11 | # rc?.d directories. 12 | 13 | # It may need to be tweaked for other distributions or versions. 14 | 15 | # You may wish to accept parameters from the user to set access 16 | # control options. 17 | 18 | 19 | 20 | # Get config. 21 | . /etc/sysconfig/network 22 | 23 | # Get functions 24 | . /etc/init.d/functions 25 | 26 | # Check that networking is up. 27 | if [ ${NETWORKING} = "no" ] ; then 28 | exit 0 29 | fi 30 | 31 | RETVAL=0 32 | SERVICE=distccd 33 | 34 | start() { 35 | echo -n $"Starting $SERVICE: " 36 | daemon /usr/local/bin/$SERVICE --daemon 37 | RETVAL=$? 38 | echo 39 | [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$SERVICE 40 | return $RETVAL 41 | } 42 | 43 | stop() { 44 | echo -n $"Stopping $SERVICE: " 45 | killproc $SERVICE 46 | RETVAL=$? 47 | echo 48 | [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$SERVICE 49 | return $RETVAL 50 | } 51 | 52 | restart() { 53 | stop 54 | start 55 | } 56 | 57 | # See how we were called. 58 | case "$1" in 59 | start) 60 | start 61 | ;; 62 | stop) 63 | stop 64 | ;; 65 | status) 66 | status $SERVICE 67 | ;; 68 | restart) 69 | restart 70 | ;; 71 | condrestart) 72 | [ -f /var/lock/subsys/$SERVICE ] && restart || : 73 | ;; 74 | *) 75 | echo $"Usage: $0 {start|stop|status|restart}" 76 | exit 1 77 | ;; 78 | esac 79 | 80 | exit $? 81 | -------------------------------------------------------------------------------- /distcc/doc/example/logrotate: -------------------------------------------------------------------------------- 1 | # logrotate.d example configuration for distcc, contributed by Dag 2 | # Wieers. 3 | 4 | # The "copytruncate" option means distcc can keep appending to the 5 | # same filehandle. You would otherwise need to shut down and restart 6 | # distccd. 7 | 8 | /var/log/distccd.log { 9 | missingok 10 | copytruncate 11 | notifempty 12 | } 13 | -------------------------------------------------------------------------------- /distcc/doc/example/services: -------------------------------------------------------------------------------- 1 | # Append the following line to /etc/services 2 | distcc 3632/tcp # Distcc Distributed Compiler 3 | -------------------------------------------------------------------------------- /distcc/doc/example/xinetd: -------------------------------------------------------------------------------- 1 | # default: off 2 | # description: distccd serves C/C++ compilation requests from distcc clients. 3 | # WARNING: This service should ONLY be used on trusted networks. 4 | 5 | # xinetd service description for distcc, contributed by akpm, updated 6 | # by mbp. 7 | 8 | # To use this, just check the parameters below and copy this file into 9 | # /etc/xinet.d/distcc, or the appropriate location for your system, 10 | # and then restart xinetd. You should also create a 'distcc' user. 11 | 12 | # ===> Note that running from inetd is generally NOT recommended for 13 | # distcc. distccd should give better performance when it can run as a 14 | # standalone daemon and regulate its own load. 15 | 16 | service distcc 17 | { 18 | disable = yes 19 | socket_type = stream 20 | wait = no 21 | user = distcc 22 | server = /usr/local/bin/distccd 23 | server_args = --inetd 24 | 25 | # This makes xinetd cope if there is no service listed in 26 | # /etc/services 27 | type = UNLISTED 28 | } 29 | -------------------------------------------------------------------------------- /distcc/doc/protocol-2.txt: -------------------------------------------------------------------------------- 1 | description of distcc protocol version 2 2 | Copyright (C) 2003 by Martin Pool 3 | 4 | disclaimer 5 | ---------- 6 | 7 | This document is provided as explanation for people developing or 8 | debugging distcc. Discrepancies between this document and the distcc 9 | code are an error in the document. 10 | 11 | This document is intended to describe distcc 2.9. 12 | 13 | Because this program and document is licensed free of charge, there is 14 | no warranty of any kind, to the extent permitted by applicable law. 15 | 16 | If anything is unclear, please ask on the mailing list. 17 | 18 | 19 | protocol 20 | -------- 21 | 22 | Protocol 2 is a variation of protocol 1. It gets a new version number 23 | because that's the simplest way to indicate the change. 24 | 25 | The protocol number (DIST) sent by the client is set to 2. The server 26 | must respond (DONE) in version 2. 27 | 28 | The content of the "bulk" tokens (DOTI, DOTO, SERR, SOUT) are 29 | compressed using the LZO1X algorithm. 30 | 31 | The token parameter gives the length of the compressed form. 32 | 33 | As a special case, if the uncompressed form is zero bytes, then it is 34 | not compressed but rather sent directly as zero bytes. (Compression 35 | slightly expands a zero byte string.) 36 | 37 | The distcc client and server can handle either protocol 1 or 2 38 | depending on whether the user configures compression on. 39 | -------------------------------------------------------------------------------- /distcc/doc/web/distcc-green.css: -------------------------------------------------------------------------------- 1 | BODY { 2 | font-family: verdana, arial, helvetica, "Lucida Sans", sans-serif; 3 | color: black; 4 | background-color: white; 5 | margin: 1em; 6 | padding: 0; 7 | font-size: 12pt; 8 | } 9 | TT { 10 | font-family: monospace; 11 | color: #002200; 12 | } 13 | .bold { 14 | font-weight: bold; 15 | } 16 | a { 17 | color: #003300; 18 | } 19 | a:hover { 20 | color: #336633; 21 | } 22 | div.caption { 23 | font-size: 80%; 24 | text-align: center; 25 | } 26 | div.navbar { 27 | background-color: #ffffee; 28 | padding: 1em; 29 | border-width: 1px; 30 | border-style: solid; 31 | border-color: #888; 32 | font-size: smaller; 33 | } 34 | .navbar UL { 35 | list-style-type: none; 36 | padding-left: 0; 37 | margin-left: 0; 38 | line-height: 1.3; 39 | } 40 | .navbar UL LI { 41 | padding-left: 0; 42 | margin-left: 0; 43 | } 44 | .navbar UL UL { 45 | font-weight: normal; 46 | padding-left: 10px; 47 | margin-left: 0; 48 | } 49 | .body { 50 | line-height: 1.3; 51 | padding: 1em; 52 | } 53 | .navbar A { 54 | color: #030; 55 | text-decoration: none; 56 | } 57 | .title { 58 | font-weight: bold; 59 | color: #003300; 60 | vertical-align: bottom; 61 | } 62 | .banner { 63 | margin-top: 30px; 64 | margin-left: auto; 65 | margin-right: auto; 66 | text-align: center; 67 | } 68 | UL { 69 | list-style-type: square 70 | } 71 | blockquote.quoted { 72 | color: #222; 73 | } 74 | BLOCKQUOTE { 75 | margin-left: 4em; 76 | } 77 | DIV.thanks { 78 | font-size: small; 79 | color: #222; 80 | } -------------------------------------------------------------------------------- /distcc/doc/web/distcc-lca-2004.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/distcc/doc/web/distcc-lca-2004.pdf -------------------------------------------------------------------------------- /distcc/doc/web/distcc-lca2003.ps.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/distcc/doc/web/distcc-lca2003.ps.gz -------------------------------------------------------------------------------- /distcc/doc/web/distccmon-gnome-2003-09-23-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/distcc/doc/web/distccmon-gnome-2003-09-23-01.png -------------------------------------------------------------------------------- /distcc/doc/web/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/distcc/doc/web/favicon.ico -------------------------------------------------------------------------------- /distcc/doc/web/man/index.html: -------------------------------------------------------------------------------- 1 | Distcc manuals 2 | 3 |

Installation instructions:

4 | 7 |

Man pages:

8 | 16 |

README files:

17 | 22 | 23 | -------------------------------------------------------------------------------- /distcc/find_c_extension.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | # Usage: find_c_extension.sh BUILDDIR 4 | # 5 | # Write path of directory containing C-extension of build directory. 6 | # 7 | # More precisely, locate the unique directory of the form: 8 | # 9 | # _include_server/lib.*/include_server/ 10 | # 11 | # that contains file 'distcc_pump_c_extensions.so'. Write the path of this 12 | # directory to stdout and exit with status 0. If such a path does not exist 13 | # then write error message to stderr and exit with status 1. 14 | 15 | builddir="$1" 16 | # We want to catch the file whether it's .so (unix) or .dll (cygwin). 17 | # The '[sd][ol]*' glob does that without having to worry about 18 | # unpredictable 'ls' behavior when a glob has no matches. 19 | # (Side note: there is intense internal debate about whether the 20 | # '[sd][ol]' hack is "so ugly I can't stand it" or "kinda cute".) 21 | so_files=`ls $builddir/_include_server/lib.*/include_server/\ 22 | distcc_pump_c_extensions.[sd][ol]*` 23 | if [ -z "$so_files" ]; then 24 | echo \ 25 | '__________Could not find shared libraries for distcc-pump' 1>&2 26 | exit 1 27 | elif [ `echo "$so_files" | wc -l` -ge 2 ]; then 28 | echo \ 29 | '__________Shared libraries for multiple architectures discovered.' \ 30 | 1>&2 31 | echo \ 32 | "__________Cannot determine which one to use among: $so_files" \ 33 | 1>&2 34 | exit 1 35 | else 36 | # There was only one such file. 37 | dirname "$so_files" 38 | exit 0 39 | fi 40 | -------------------------------------------------------------------------------- /distcc/gnome/distccmon-gnome-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/distcc/gnome/distccmon-gnome-icon.png -------------------------------------------------------------------------------- /distcc/gnome/distccmon-gnome.desktop: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/distcc/gnome/distccmon-gnome.desktop -------------------------------------------------------------------------------- /distcc/include_server/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/distcc/include_server/__init__.py -------------------------------------------------------------------------------- /distcc/include_server/test_data/abc_post.c: -------------------------------------------------------------------------------- 1 | /* Used by computed_includes.c */ 2 | -------------------------------------------------------------------------------- /distcc/include_server/test_data/abc_pre.c: -------------------------------------------------------------------------------- 1 | /* Used by computed_includes.c */ 2 | -------------------------------------------------------------------------------- /distcc/include_server/test_data/computed_includes.c: -------------------------------------------------------------------------------- 1 | #define A "p1.h" 2 | #include A 3 | 4 | #ifdef C 5 | #define m(a) 6 | #else 7 | #define m(a) 8 | #endif 9 | #include m(abc) // 10 | 11 | -------------------------------------------------------------------------------- /distcc/include_server/test_data/contains_abs_include.c: -------------------------------------------------------------------------------- 1 | #include "/love/of/my/life" 2 | -------------------------------------------------------------------------------- /distcc/include_server/test_data/dbar/dbar1/bar.h: -------------------------------------------------------------------------------- 1 | #define dbar_dbar1_bar_h 2 | -------------------------------------------------------------------------------- /distcc/include_server/test_data/dbar/foo.h: -------------------------------------------------------------------------------- 1 | #include "foo2.h" 2 | -------------------------------------------------------------------------------- /distcc/include_server/test_data/dfoo/foo.h: -------------------------------------------------------------------------------- 1 | #include "foo2.h" 2 | #include "../dbar/dbar1/bar.h" 3 | -------------------------------------------------------------------------------- /distcc/include_server/test_data/dfoo/foo2.h: -------------------------------------------------------------------------------- 1 | #define dfoo_foo2_h 2 | // The include below is not valid syntax and should be ignored. 3 | #include ../dbar/foo.h 4 | -------------------------------------------------------------------------------- /distcc/include_server/test_data/dfoo/i_am_perhaps_a_directory.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/distcc/include_server/test_data/dfoo/i_am_perhaps_a_directory.h -------------------------------------------------------------------------------- /distcc/include_server/test_data/dfoo/include_dotdot_foo: -------------------------------------------------------------------------------- 1 | #include "../foo" 2 | -------------------------------------------------------------------------------- /distcc/include_server/test_data/dfoo/include_next_foo.h: -------------------------------------------------------------------------------- 1 | #include_next 2 | -------------------------------------------------------------------------------- /distcc/include_server/test_data/dfoo/stat_triggers.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/distcc/include_server/test_data/dfoo/stat_triggers.h -------------------------------------------------------------------------------- /distcc/include_server/test_data/distcc/README: -------------------------------------------------------------------------------- 1 | This is just part of the distcc code, used for testing. 2 | -------------------------------------------------------------------------------- /distcc/include_server/test_data/distcc/src/compile.h: -------------------------------------------------------------------------------- 1 | /* -*- c-file-style: "java"; indent-tabs-mode: nil -*- 2 | * 3 | * distcc -- A simple distributed compiler system 4 | * 5 | * Copyright (C) 2002, 2003 by Martin Pool 6 | * 7 | * This program is free software; you can redistribute it and/or 8 | * modify it under the terms of the GNU General Public License as 9 | * published by the Free Software Foundation; either version 2 of the 10 | * License, or (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, but 13 | * WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | * General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program; if not, write to the Free Software 19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 20 | * USA 21 | */ 22 | 23 | /* remote.c */ 24 | int dcc_compile_remote(char **argv, 25 | char *input_fname, 26 | char *cpp_fname, 27 | char **file_names, 28 | char *output_fname, 29 | char *deps_fname, 30 | char *server_stderr_fname, 31 | pid_t cpp_pid, 32 | int local_cpu_lock_fd, 33 | struct dcc_hostdef *host, 34 | int *status); 35 | 36 | int dcc_build_somewhere_timed(char *argv[], 37 | int sg_level, 38 | int *status); 39 | -------------------------------------------------------------------------------- /distcc/include_server/test_data/distcc/src/emaillog.h: -------------------------------------------------------------------------------- 1 | #ifndef DCC_EMAILLOG_H 2 | #define DCC_EMAILLOG_H 3 | 4 | #define DCC_EMAILLOG_WHOM_TO_BLAME "distcc-pump-errors@google.com" 5 | void dcc_please_send_email(void); 6 | void dcc_setup_log_email(void); 7 | void dcc_maybe_send_email(void); 8 | int dcc_add_file_to_log_email(const char *description, const char *fname); 9 | 10 | #endif /* EMAILLOG_H */ 11 | -------------------------------------------------------------------------------- /distcc/include_server/test_data/distcc/src/implicit.h: -------------------------------------------------------------------------------- 1 | /* -*- c-file-style: "java"; indent-tabs-mode: nil -*- 2 | * 3 | * distcc -- A simple distributed compiler system 4 | * $Header: /data/cvs/distcc/src/implicit.h,v 1.3 2002/09/18 06:57:45 mbp Exp $ 5 | * 6 | * Copyright (C) 2002 by Martin Pool 7 | * 8 | * This program is free software; you can redistribute it and/or 9 | * modify it under the terms of the GNU General Public License as 10 | * published by the Free Software Foundation; either version 2 of the 11 | * License, or (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, but 14 | * WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | * General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 21 | * USA 22 | */ 23 | 24 | int dcc_find_compiler(char **argv, char ***); 25 | 26 | -------------------------------------------------------------------------------- /distcc/include_server/test_data/distcc/src/include_me.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/distcc/include_server/test_data/distcc/src/include_me.h -------------------------------------------------------------------------------- /distcc/include_server/test_data/func_macro.c: -------------------------------------------------------------------------------- 1 | #include FINCLUDE(foo.h) 2 | -------------------------------------------------------------------------------- /distcc/include_server/test_data/i_am_perhaps_a_directory.h/empty_file: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/distcc/include_server/test_data/i_am_perhaps_a_directory.h/empty_file -------------------------------------------------------------------------------- /distcc/include_server/test_data/include_include_next_foo.h: -------------------------------------------------------------------------------- 1 | #include "include_next_foo.h" 2 | -------------------------------------------------------------------------------- /distcc/include_server/test_data/maps/foo.tpl.varnames.h: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /distcc/include_server/test_data/more_macros.c: -------------------------------------------------------------------------------- 1 | 2 | #define TEMPLATE_VARNAME(_filename_) \ 3 | AS_STRING\ 4 | (maps/_filename_.tpl.varnames.h) 5 | 6 | #define ILLFORMED(_filename_,(x)) \ 7 | AS_STRING(maps/_filename_.tpl.varnames.h, NOTHANDLED(_filename_)) 8 | 9 | // #define BEHINDCOMMENT(x) x + x 10 | 11 | #define AS_STRING(x) AS_STRING_INTERNAL(x) 12 | #define AS_STRING_INTERNAL(x) #x 13 | 14 | #include TEMPLATE_VARNAME(foo) 15 | -------------------------------------------------------------------------------- /distcc/include_server/test_data/p1.h: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /distcc/include_server/test_data/parse.c: -------------------------------------------------------------------------------- 1 | #includenext "incnext.h" 2 | #include 3 | #include "quote.c" 4 | # include \ 5 | /* comment */ "quote1\ 6 | .c" 7 | #include "foo.h" // in dfoo 8 | 9 | -------------------------------------------------------------------------------- /distcc/include_server/test_data/stat_triggers.c: -------------------------------------------------------------------------------- 1 | #include "stat_triggers.h" 2 | -------------------------------------------------------------------------------- /distcc/include_server/test_data/stat_triggers.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/distcc/include_server/test_data/stat_triggers.h -------------------------------------------------------------------------------- /distcc/include_server/test_data/symlink_farm/abc_post.c: -------------------------------------------------------------------------------- 1 | ../abc_post.c -------------------------------------------------------------------------------- /distcc/include_server/test_data/symlink_farm/abc_pre.c: -------------------------------------------------------------------------------- 1 | ../abc_pre.c -------------------------------------------------------------------------------- /distcc/include_server/test_data/symlink_farm/computed_includes.c: -------------------------------------------------------------------------------- 1 | ../computed_includes.c -------------------------------------------------------------------------------- /distcc/include_server/test_data/symlink_farm/dbar: -------------------------------------------------------------------------------- 1 | ../dbar -------------------------------------------------------------------------------- /distcc/include_server/test_data/symlink_farm/dfoo: -------------------------------------------------------------------------------- 1 | ../dfoo -------------------------------------------------------------------------------- /distcc/include_server/test_data/symlink_farm/foo: -------------------------------------------------------------------------------- 1 | #include "sub_farm/link_to_dd_dd_dfoo_include_dotdot_foo" 2 | -------------------------------------------------------------------------------- /distcc/include_server/test_data/symlink_farm/p1.h: -------------------------------------------------------------------------------- 1 | ../p1.h -------------------------------------------------------------------------------- /distcc/include_server/test_data/symlink_farm/parse.c: -------------------------------------------------------------------------------- 1 | ../parse.c -------------------------------------------------------------------------------- /distcc/include_server/test_data/symlink_farm/sub_farm/link_to_dd_dd_dfoo_include_dotdot_foo: -------------------------------------------------------------------------------- 1 | ../../dfoo/include_dotdot_foo -------------------------------------------------------------------------------- /distcc/include_server/test_data/symlink_farm/test_directory_probing.c: -------------------------------------------------------------------------------- 1 | ../test_directory_probing.c -------------------------------------------------------------------------------- /distcc/include_server/test_data/symlink_farm/test_include_next: -------------------------------------------------------------------------------- 1 | ../test_include_next -------------------------------------------------------------------------------- /distcc/include_server/test_data/test_computed_includes/helper.c: -------------------------------------------------------------------------------- 1 | #include INCL 2 | -------------------------------------------------------------------------------- /distcc/include_server/test_data/test_computed_includes/incl.h: -------------------------------------------------------------------------------- 1 | #define MSG "hello" 2 | -------------------------------------------------------------------------------- /distcc/include_server/test_data/test_computed_includes/inclA.h: -------------------------------------------------------------------------------- 1 | #define MSG "hello A" 2 | -------------------------------------------------------------------------------- /distcc/include_server/test_data/test_computed_includes/src.c: -------------------------------------------------------------------------------- 1 | #define INCL "incl.h" 2 | #include "helper.c" 3 | 4 | #include 5 | int main() { 6 | printf(MSG); 7 | printf("\n"); 8 | return 0; 9 | } 10 | -------------------------------------------------------------------------------- /distcc/include_server/test_data/test_computed_includes/srcA.c: -------------------------------------------------------------------------------- 1 | #define INCL "inclA.h" 2 | #include "helper.c" 3 | #include 4 | 5 | int main() { 6 | printf(MSG); 7 | printf("\n"); 8 | return 0; 9 | } 10 | -------------------------------------------------------------------------------- /distcc/include_server/test_data/test_directory_probing.c: -------------------------------------------------------------------------------- 1 | // For the include: should not be distracted by the directory 2 | // i_am_perhaps_a_directory.h in the present directory (test_data). 3 | 4 | #include "i_am_perhaps_a_directory.h" 5 | -------------------------------------------------------------------------------- /distcc/include_server/test_data/test_include_next/bar/x.h: -------------------------------------------------------------------------------- 1 | Now bar/x.h 2 | #include_next "x.h" 3 | 4 | -------------------------------------------------------------------------------- /distcc/include_server/test_data/test_include_next/bar/y.h: -------------------------------------------------------------------------------- 1 | Now bar/y.h 2 | #include_next "y.h" 3 | 4 | -------------------------------------------------------------------------------- /distcc/include_server/test_data/test_include_next/baz/start_x.c: -------------------------------------------------------------------------------- 1 | Now baz/start_x.h 2 | #include "x.h" 3 | -------------------------------------------------------------------------------- /distcc/include_server/test_data/test_include_next/baz/start_y.c: -------------------------------------------------------------------------------- 1 | Now baz/start_y.h 2 | #include "../foo/y.h" 3 | -------------------------------------------------------------------------------- /distcc/include_server/test_data/test_include_next/baz/x.h: -------------------------------------------------------------------------------- 1 | Now in baz/x.h 2 | #include_next "x.h" 3 | 4 | -------------------------------------------------------------------------------- /distcc/include_server/test_data/test_include_next/baz/y.h: -------------------------------------------------------------------------------- 1 | Now baz/y.h 2 | #ifndef baz_y_h 3 | #define baz_y_h 4 | #include y.h 5 | #endif 6 | 7 | -------------------------------------------------------------------------------- /distcc/include_server/test_data/test_include_next/biz/x.h: -------------------------------------------------------------------------------- 1 | Now biz/x.h 2 | -------------------------------------------------------------------------------- /distcc/include_server/test_data/test_include_next/foo/x.h: -------------------------------------------------------------------------------- 1 | Now: foo/x.h 2 | #include_next "x.h" 3 | -------------------------------------------------------------------------------- /distcc/include_server/test_data/test_include_next/foo/y.h: -------------------------------------------------------------------------------- 1 | Now: foo/y.h 2 | #include_next "y.h" 3 | -------------------------------------------------------------------------------- /distcc/lzo/.stamp-conf.in: -------------------------------------------------------------------------------- 1 | ## Force lzo directory to be created in build directory. 2 | -------------------------------------------------------------------------------- /distcc/mkinstalldirs: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | # mkinstalldirs --- make directory hierarchy 3 | # Author: Noah Friedman 4 | # Created: 1993-05-16 5 | # Public domain 6 | 7 | # $Id: mkinstalldirs,v 1.1 2002/05/28 02:43:45 mbp Exp $ 8 | 9 | errstatus=0 10 | 11 | for file 12 | do 13 | set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` 14 | shift 15 | 16 | pathcomp= 17 | for d 18 | do 19 | pathcomp="$pathcomp$d" 20 | case "$pathcomp" in 21 | -* ) pathcomp=./$pathcomp ;; 22 | esac 23 | 24 | if test ! -d "$pathcomp"; then 25 | echo "mkdir $pathcomp" 26 | 27 | mkdir "$pathcomp" || lasterr=$? 28 | 29 | if test ! -d "$pathcomp"; then 30 | errstatus=$lasterr 31 | fi 32 | fi 33 | 34 | pathcomp="$pathcomp/" 35 | done 36 | done 37 | 38 | exit $errstatus 39 | 40 | # mkinstalldirs ends here 41 | -------------------------------------------------------------------------------- /distcc/packaging/RedHat/conf/clients.allow: -------------------------------------------------------------------------------- 1 | # Comments start with "#" and go to end of line. Non-comment lines should 2 | # contain entries suitable for passing to the --allow option of distccd, e.g. 3 | # 192.168.1.100 4 | # 192.168.2.0/8 5 | # 6 | # From the distccd man page: 7 | # -a, --allow IPADDR[/MASK] 8 | # Instructs distccd to accept connections from the IP address 9 | # IPADDR. A CIDR mask length can be supplied optionally after a 10 | # trailing slash, e.g. 192.168.0.0/24, in which case addresses 11 | # that match in the most significant MASK bits will be allowed. 12 | # If no --allow options are specified, no clients are allowed! 13 | # Unauthorized connections are rejected by closing the TCP connec- 14 | # tion immediately. A warning is logged on the server but nothing 15 | # is sent to the client. 16 | # 17 | # You should only allow trusted hosts to connect to distccd in TCP mode. 18 | # You should assume that any user on the trusted hosts can (with some 19 | # effort) run arbitrary commands as the distcc user on the distccd host. 20 | # If this is not acceptible, then you should leave this config file empty 21 | # (apart from comments) and thus only allow SSH mode rather than TCP mode. 22 | # However, be aware that SSH mode has poorer performance than TCP mode. 23 | 24 | # Add your trusted hosts here, e.g. start by uncommented the line below. 25 | # 127.0.0.1 26 | -------------------------------------------------------------------------------- /distcc/packaging/RedHat/conf/hosts: -------------------------------------------------------------------------------- 1 | # --- /etc/distcc/hosts ----------------------- 2 | # See the "Hosts Specification" section of 3 | # "man distcc" for the format of this file. 4 | # 5 | # By default, just test that it works in loopback mode. 6 | 127.0.0.1 7 | -------------------------------------------------------------------------------- /distcc/packaging/RedHat/default/distcc: -------------------------------------------------------------------------------- 1 | STARTDISTCC=true 2 | -------------------------------------------------------------------------------- /distcc/packaging/RedHat/logrotate.d/distcc: -------------------------------------------------------------------------------- 1 | # logrotate.d example configuration for distcc, contributed by Dag 2 | # Wieers. 3 | 4 | # The "copytruncate" option means distcc can keep appending to the 5 | # same filehandle. You would otherwise need to shut down and restart 6 | # distccd. 7 | 8 | /var/log/distccd.log { 9 | missingok 10 | copytruncate 11 | notifempty 12 | } 13 | -------------------------------------------------------------------------------- /distcc/packaging/RedHat/xinetd.d/distcc: -------------------------------------------------------------------------------- 1 | # default: on 2 | # description: distccd serves C/C++ compilation requests from distcc clients. 3 | # WARNING: This service should ONLY be used on trusted networks. 4 | service distcc 5 | { 6 | socket_type = stream 7 | protocol = tcp 8 | port = 3632 9 | wait = no 10 | user = nobody 11 | server = /usr/bin/distccd 12 | server_args = --inetd 13 | disable = yes 14 | } 15 | 16 | -------------------------------------------------------------------------------- /distcc/packaging/deb.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh -e 2 | 3 | # This takes a package name and version, 4 | # and a list of rpms to convert to .deb files. 5 | # It puts them all under a debian-* directory under the current directory. 6 | # 7 | # Run this from the 'packaging' directory, just under rootdir 8 | 9 | PACKAGE="$1"; 10 | VERSION="$2"; 11 | shift; shift; 12 | 13 | # Clean out any old .deb files from a previous build. 14 | rm -f "$PACKAGE"*[-._]"$VERSION".deb 15 | 16 | for file in "$@"; do 17 | fakeroot alien -c -k -v "$file" 18 | done 19 | 20 | echo 21 | echo "The Debian package files are located in $PWD:" 22 | ls *.deb 23 | 24 | -------------------------------------------------------------------------------- /distcc/popt/.stamp-conf.in: -------------------------------------------------------------------------------- 1 | ## Force popt directory to be created in build directory. 2 | 3 | -------------------------------------------------------------------------------- /distcc/popt/README.popt: -------------------------------------------------------------------------------- 1 | This is a perfectly ordinary copy of libpopt 1.7, except that the 2 | configure scripts have been munged to make them fit with distcc. NLS 3 | support has been removed, because distcc currently does not use it. 4 | 5 | It is only used on platforms that do not have a sufficiently 6 | up-to-date copy of their own. If you build distcc on a platform which 7 | has popt, this directory should not be used. (You can control that 8 | using the --with-included-popt configure flag.) 9 | 10 | popt has no apparent home page, but the source can be retrieved from 11 | 12 | ftp://ftp.rpm.org/pub/rpm/dist/rpm-4.1.x -------------------------------------------------------------------------------- /distcc/popt/findme.c: -------------------------------------------------------------------------------- 1 | /** \ingroup popt 2 | * \file popt/findme.c 3 | */ 4 | 5 | /* (C) 1998-2002 Red Hat, Inc. -- Licensing details are in the COPYING 6 | file accompanying popt source distributions, available from 7 | ftp://ftp.rpm.org/pub/rpm/dist. */ 8 | 9 | #include "system.h" 10 | #include "findme.h" 11 | 12 | const char * findProgramPath(const char * argv0) { 13 | char * path = getenv("PATH"); 14 | char * pathbuf; 15 | char * start, * chptr; 16 | char * buf; 17 | 18 | if (argv0 == NULL) return NULL; /* XXX can't happen */ 19 | /* If there is a / in the argv[0], it has to be an absolute path */ 20 | if (strchr(argv0, '/')) 21 | return xstrdup(argv0); 22 | 23 | if (path == NULL) return NULL; 24 | 25 | start = pathbuf = alloca(strlen(path) + 1); 26 | buf = malloc(strlen(path) + strlen(argv0) + sizeof("/")); 27 | if (buf == NULL) return NULL; /* XXX can't happen */ 28 | strcpy(pathbuf, path); 29 | 30 | chptr = NULL; 31 | /*@-branchstate@*/ 32 | do { 33 | if ((chptr = strchr(start, ':'))) 34 | *chptr = '\0'; 35 | sprintf(buf, "%s/%s", start, argv0); 36 | 37 | if (!access(buf, X_OK)) 38 | return buf; 39 | 40 | if (chptr) 41 | start = chptr + 1; 42 | else 43 | start = NULL; 44 | } while (start && *start); 45 | /*@=branchstate@*/ 46 | 47 | free(buf); 48 | 49 | return NULL; 50 | } 51 | -------------------------------------------------------------------------------- /distcc/popt/findme.h: -------------------------------------------------------------------------------- 1 | /** \ingroup popt 2 | * \file popt/findme.h 3 | */ 4 | 5 | /* (C) 1998-2000 Red Hat, Inc. -- Licensing details are in the COPYING 6 | file accompanying popt source distributions, available from 7 | ftp://ftp.rpm.org/pub/rpm/dist. */ 8 | 9 | #ifndef H_FINDME 10 | #define H_FINDME 11 | 12 | /** 13 | * Return absolute path to executable by searching PATH. 14 | * @param argv0 name of executable 15 | * @return (malloc'd) absolute path to executable (or NULL) 16 | */ 17 | /*@null@*/ const char * findProgramPath(/*@null@*/ const char * argv0) 18 | /*@*/; 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /distcc/src/clinet.h: -------------------------------------------------------------------------------- 1 | /* -*- c-file-style: "java"; indent-tabs-mode: nil; tab-width: 4; fill-column: 78 -*- 2 | * 3 | * distcc -- A simple distributed compiler system 4 | * 5 | * Copyright (C) 2002, 2003 by Martin Pool 6 | * Copyright 2007 Google Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or 9 | * modify it under the terms of the GNU General Public License 10 | * as published by the Free Software Foundation; either version 2 11 | * of the License, or (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 21 | * USA. 22 | */ 23 | 24 | struct sockaddr; 25 | 26 | int dcc_connect_by_name(const char *host, 27 | int port, 28 | int *p_fd); 29 | 30 | int dcc_connect_by_addr(struct sockaddr *sa, 31 | size_t salen, 32 | int *p_fd); 33 | -------------------------------------------------------------------------------- /distcc/src/cpp_dialect.h: -------------------------------------------------------------------------------- 1 | 2 | extern int dcc_seen_opt_x; 3 | extern char const*dcc_opt_x_ext; 4 | 5 | char const*dcc_ext_lookup(char const*key); 6 | void dcc_fix_opt_x(char **argv); 7 | -------------------------------------------------------------------------------- /distcc/src/dotd.h: -------------------------------------------------------------------------------- 1 | /* -*- c-file-style: "java"; indent-tabs-mode: nil; tab-width: 4; fill-column: 78 -*- 2 | * 3 | * Copyright 2007 Google Inc. 4 | * 5 | * This program is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU General Public License 7 | * as published by the Free Software Foundation; either version 2 8 | * of the License, or (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 18 | * USA. 19 | */ 20 | 21 | int dcc_cleanup_dotd(const char *dotd_fname, 22 | char **new_dotd_fname, 23 | const char *root_dir, 24 | const char *client_out_name, 25 | const char *server_out_name); 26 | 27 | int dcc_get_dotd_info(char **argv, char **dotd_fname, 28 | int *needs_dotd, int *sets_dotd_target, 29 | char **dotd_target); 30 | -------------------------------------------------------------------------------- /distcc/src/emaillog.h: -------------------------------------------------------------------------------- 1 | /* -*- c-file-style: "java"; indent-tabs-mode: nil; tab-width: 4; fill-column: 78 -*- 2 | * 3 | * Copyright 2007 Google Inc. 4 | * 5 | * This program is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU General Public License 7 | * as published by the Free Software Foundation; either version 2 8 | * of the License, or (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 18 | * USA. 19 | */ 20 | 21 | #ifndef DCC_EMAILLOG_H 22 | #define DCC_EMAILLOG_H 23 | 24 | /* See also include_server/basics.py */ 25 | #define DCC_EMAILLOG_WHOM_TO_BLAME "distcc-pump-errors" 26 | void dcc_please_send_email(void); 27 | void dcc_setup_log_email(void); 28 | void dcc_maybe_send_email(void); 29 | int dcc_add_file_to_log_email(const char *description, const char *fname); 30 | 31 | #endif /* EMAILLOG_H */ 32 | -------------------------------------------------------------------------------- /distcc/src/fix_debug_info.h: -------------------------------------------------------------------------------- 1 | /* -*- c-file-style: "java"; indent-tabs-mode: nil; tab-width: 4; fill-column: 78 -*- 2 | * Copyright 2007 Google Inc. 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 17 | * USA. 18 | */ 19 | 20 | /* Author: Fergus Henderson */ 21 | 22 | #ifndef DISTCC_FIX_DEBUG_INFO_H__ 23 | #define DISTCC_FIX_DEBUG_INFO_H__ 24 | 25 | int dcc_fix_debug_info(const char *path, const char *client_cwd, 26 | const char *server_cwd); 27 | 28 | #endif /* DISTCC_FIX_DEBUG_INFO_H__ */ 29 | -------------------------------------------------------------------------------- /distcc/src/implicit.h: -------------------------------------------------------------------------------- 1 | /* -*- c-file-style: "java"; indent-tabs-mode: nil; tab-width: 4; fill-column: 78 -*- 2 | * 3 | * distcc -- A simple distributed compiler system 4 | * $Header: /data/cvs/distcc/src/implicit.h,v 1.3 2002/09/18 06:57:45 mbp Exp $ 5 | * 6 | * Copyright (C) 2002 by Martin Pool 7 | * Copyright 2007 Google Inc. 8 | * 9 | * This program is free software; you can redistribute it and/or 10 | * modify it under the terms of the GNU General Public License 11 | * as published by the Free Software Foundation; either version 2 12 | * of the License, or (at your option) any later version. 13 | * 14 | * This program is distributed in the hope that it will be useful, 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | * GNU General Public License for more details. 18 | * 19 | * You should have received a copy of the GNU General Public License 20 | * along with this program; if not, write to the Free Software 21 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 22 | * USA. 23 | */ 24 | 25 | int dcc_find_compiler(char **argv, char ***); 26 | -------------------------------------------------------------------------------- /distcc/src/include_server_if.h: -------------------------------------------------------------------------------- 1 | /* -*- c-file-style: "java"; indent-tabs-mode: nil; tab-width: 4; fill-column: 78 -*- 2 | * Copyright 2007 Google Inc. 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 17 | * USA. 18 | */ 19 | 20 | /* Author: Manos Renieris */ 21 | 22 | int dcc_talk_to_include_server(char **argv, char ***files); 23 | int dcc_get_original_fname(const char *fname, char **original_fname); 24 | int dcc_approximate_includes(struct dcc_hostdef *host, char **argv); 25 | -------------------------------------------------------------------------------- /distcc/src/lock.h: -------------------------------------------------------------------------------- 1 | /* -*- c-file-style: "java"; indent-tabs-mode: nil; tab-width: 4; fill-column: 78 -*- 2 | * 3 | * distcc -- A simple distributed compiler system 4 | * 5 | * Copyright (C) 2002, 2003 by Martin Pool 6 | * 7 | * This program is free software; you can redistribute it and/or 8 | * modify it under the terms of the GNU General Public License 9 | * as published by the Free Software Foundation; either version 2 10 | * of the License, or (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program; if not, write to the Free Software 19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 20 | * USA. 21 | */ 22 | 23 | int dcc_lock_host(const char *lockname, 24 | const struct dcc_hostdef *host, int slot, int block, 25 | int *lock_fd); 26 | 27 | int dcc_unlock(int lock_fd); 28 | 29 | int dcc_make_lock_filename(const char *lockname, 30 | const struct dcc_hostdef *host, 31 | int iter, 32 | char **); 33 | 34 | int dcc_open_lockfile(const char *fname, int *plockfd); 35 | -------------------------------------------------------------------------------- /distcc/src/netutil.h: -------------------------------------------------------------------------------- 1 | /* -*- c-file-style: "java"; indent-tabs-mode: nil; tab-width: 4; fill-column: 78 -*- 2 | * 3 | * distcc -- A simple distributed compiler system 4 | * 5 | * Copyright (C) 2002, 2003 by Martin Pool 6 | * 7 | * This program is free software; you can redistribute it and/or 8 | * modify it under the terms of the GNU General Public License 9 | * as published by the Free Software Foundation; either version 2 10 | * of the License, or (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program; if not, write to the Free Software 19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 20 | * USA. 21 | */ 22 | 23 | struct sockaddr; 24 | int dcc_sockaddr_to_string(struct sockaddr *sa, 25 | size_t salen, 26 | char **p_buf); 27 | 28 | void dcc_set_nonblocking(int fd); 29 | void dcc_set_blocking(int fd); 30 | 31 | 32 | #ifndef HAVE_HSTRERROR 33 | /* Missing on e.g. Solaris 2.6 */ 34 | const char *hstrerror(int err); 35 | #endif 36 | 37 | void dcc_defer_accept(int); 38 | -------------------------------------------------------------------------------- /distcc/src/snprintf.h: -------------------------------------------------------------------------------- 1 | /* -*- c-file-style: "java"; indent-tabs-mode: nil; tab-width: 4; fill-column: 78 -*- */ 2 | /* 3 | * Copyright Patrick Powell 1995 4 | * This code is based on code written by Patrick Powell (papowell@astart.com) 5 | * It may be used for any purpose as long as this notice remains intact 6 | * on all source code distributions 7 | */ 8 | 9 | #include 10 | #include "config.h" 11 | 12 | #ifdef __GNUC__ 13 | /** Use gcc attribute to check printf fns. a1 is the 1-based index of 14 | * the parameter containing the format, and a2 the index of the first 15 | * argument. **/ 16 | #define PRINTF_ATTRIBUTE(a1, a2) __attribute__ ((format (__printf__, a1, a2))) 17 | #else 18 | #define PRINTF_ATTRIBUTE(a1, a2) 19 | #endif 20 | 21 | 22 | /* Note that the HAVE_DECL macros are defined to 0 if the declaration 23 | * is not present, rather than being undefined as is the case for most 24 | * autoconf tests. */ 25 | 26 | 27 | #if !HAVE_DECL_VASPRINTF 28 | int vasprintf(char **ptr, const char *format, va_list ap); 29 | #endif 30 | #if !HAVE_DECL_SNPRINTF 31 | int snprintf(char *,size_t ,const char *, ...) PRINTF_ATTRIBUTE(3,4); 32 | #endif 33 | #if !HAVE_DECL_ASPRINTF 34 | int asprintf(char **,const char *, ...) PRINTF_ATTRIBUTE(2,3); 35 | #endif 36 | 37 | #if !HAVE_DECL_VSNPRINTF 38 | int vsnprintf(char *, size_t, const char *, va_list); 39 | #endif 40 | 41 | int checked_asprintf(char **, const char *, ...) PRINTF_ATTRIBUTE(2,3); 42 | -------------------------------------------------------------------------------- /distcc/src/srvnet.h: -------------------------------------------------------------------------------- 1 | /* -*- c-file-style: "java"; indent-tabs-mode: nil; tab-width: 4; fill-column: 78 -*- 2 | * 3 | * distcc -- A simple distributed compiler system 4 | * 5 | * Copyright (C) 2002, 2003 by Martin Pool 6 | * 7 | * This program is free software; you can redistribute it and/or 8 | * modify it under the terms of the GNU General Public License 9 | * as published by the Free Software Foundation; either version 2 10 | * of the License, or (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program; if not, write to the Free Software 19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 20 | * USA. 21 | */ 22 | 23 | /* srvnet.c */ 24 | int dcc_socket_listen(int port, int *fd, const char *listen_addr); 25 | int is_a_socket(int fd); 26 | struct dcc_allow_list; 27 | int dcc_check_client(struct sockaddr *, int, struct dcc_allow_list *); 28 | -------------------------------------------------------------------------------- /distcc/src/stringmap.h: -------------------------------------------------------------------------------- 1 | /* -*- c-file-style: "java"; indent-tabs-mode: nil; tab-width: 4; fill-column: 78 -*- 2 | * 3 | * Copyright 2005 Google Inc. 4 | * 5 | * This program is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU General Public License 7 | * as published by the Free Software Foundation; either version 2 8 | * of the License, or (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 18 | * USA. 19 | */ 20 | 21 | #ifndef STRINGMAP_H 22 | #define STRINGMAP_H 23 | 24 | typedef struct { 25 | /* the strings, and what they map to */ 26 | struct { 27 | char *key; 28 | char *value; 29 | } *map; 30 | 31 | /* number of elements in map */ 32 | int n; 33 | 34 | /* if nonzero, ignore all but this many trailing words, 35 | * where words are separated by the '/' char 36 | * Example: 37 | * comparison num=1 num=2 num=3 38 | * a/b/z =? 1/y/z match no no 39 | * a/b/z =? 1/b/z match match no 40 | */ 41 | int numFinalWordsToMatch; 42 | } stringmap_t; 43 | 44 | stringmap_t *stringmap_load(const char *filename, int numFinalWordsToMatch); 45 | const char *stringmap_lookup(const stringmap_t *map, const char *string); 46 | 47 | #endif 48 | -------------------------------------------------------------------------------- /distcc/src/timefile.h: -------------------------------------------------------------------------------- 1 | /* -*- c-file-style: "java"; indent-tabs-mode: nil; tab-width: 4; fill-column: 78 -*- 2 | * 3 | * distcc -- A simple distributed compiler system 4 | * 5 | * Copyright (C) 2003 by Martin Pool 6 | * 7 | * This program is free software; you can redistribute it and/or 8 | * modify it under the terms of the GNU General Public License 9 | * as published by the Free Software Foundation; either version 2 10 | * of the License, or (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program; if not, write to the Free Software 19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 20 | * USA. 21 | */ 22 | 23 | 24 | /* timefile.c */ 25 | int dcc_mark_timefile(const char *lockname, 26 | const struct dcc_hostdef *host); 27 | 28 | int dcc_remove_timefile(const char *lockname, 29 | const struct dcc_hostdef *host); 30 | 31 | int dcc_check_timefile(const char *lockname, 32 | const struct dcc_hostdef *host, 33 | time_t *mtime); 34 | -------------------------------------------------------------------------------- /distcc/src/timeval.h: -------------------------------------------------------------------------------- 1 | /* -*- c-file-style: "java"; indent-tabs-mode: nil; tab-width: 4; fill-column: 78 -*- 2 | * 3 | * struct timeval subtraction. 4 | * 5 | * Copyright (C) 1991-2013 Free Software Foundation, Inc. 6 | * 7 | * This program is free software; you can redistribute it and/or 8 | * modify it under the terms of the GNU General Public License 9 | * as published by the Free Software Foundation; either version 2 10 | * of the License, or (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program; if not, write to the Free Software 19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 20 | * USA. 21 | */ 22 | 23 | int 24 | timeval_subtract(struct timeval *result, 25 | struct timeval *x, 26 | struct timeval *y); 27 | -------------------------------------------------------------------------------- /distcc/src/types.h: -------------------------------------------------------------------------------- 1 | /* -*- c-file-style: "java"; indent-tabs-mode: nil; tab-width: 4; fill-column: 78 -*- 2 | * 3 | * distcc -- A simple distributed compiler system 4 | * 5 | * Copyright (C) 2002, 2003 by Martin Pool 6 | * 7 | * This program is free software; you can redistribute it and/or 8 | * modify it under the terms of the GNU General Public License 9 | * as published by the Free Software Foundation; either version 2 10 | * of the License, or (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program; if not, write to the Free Software 19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 20 | * USA. 21 | */ 22 | 23 | #ifndef HAVE_IN_PORT_T 24 | #define HAVE_IN_PORT_T 25 | typedef int in_port_t; 26 | #endif 27 | 28 | #ifndef HAVE_IN_ADDR_T 29 | /* Seems to be equivalent to ulong on FreeBSD 3.3, where it is missing. 30 | * http://www.freebsd.org/cgi/man.cgi?query=inet_aton&apropos=0&sektion=0&manpath=FreeBSD+3.3-RELEASE&format=html 31 | * 32 | * On Linux it is uint32. 33 | */ 34 | #define HAVE_IN_ADDR_T 35 | typedef unsigned long in_addr_t; 36 | #endif 37 | -------------------------------------------------------------------------------- /distcc/src/where.h: -------------------------------------------------------------------------------- 1 | /* -*- c-file-style: "java"; indent-tabs-mode: nil; tab-width: 4; fill-column: 78 -*- 2 | * 3 | * distcc -- A simple distributed compiler system 4 | * 5 | * Copyright (C) 2002, 2003 by Martin Pool 6 | * Copyright 2007 Google Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or 9 | * modify it under the terms of the GNU General Public License 10 | * as published by the Free Software Foundation; either version 2 11 | * of the License, or (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 21 | * USA. 22 | */ 23 | 24 | /* where.c */ 25 | int dcc_pick_host_from_list_and_lock_it(struct dcc_hostdef **, 26 | int *cpu_lock_fd); 27 | 28 | int dcc_lock_local(int *cpu_lock_fd); 29 | 30 | int dcc_lock_local_cpp(int *cpu_lock_fd); 31 | -------------------------------------------------------------------------------- /distcc/src/zeroconf.h: -------------------------------------------------------------------------------- 1 | /* -*- c-file-style: "java"; indent-tabs-mode: nil; tab-width: 4; fill-column: 78 -*- 2 | * 3 | * Copyright (C) 2007 Lennart Poettering 4 | * 5 | * This program is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU General Public License 7 | * as published by the Free Software Foundation; either version 2 8 | * of the License, or (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 18 | * USA. 19 | */ 20 | 21 | #ifndef foozeroconfhfoo 22 | #define foozeroconfhfoo 23 | 24 | #include 25 | 26 | int dcc_zeroconf_add_hosts(struct dcc_hostdef **re_list, int *ret_nhosts, int slots, struct dcc_hostdef **ret_prev); 27 | 28 | void *dcc_zeroconf_register(uint16_t port, int n_cpus); 29 | int dcc_zeroconf_unregister(void*); 30 | 31 | char* dcc_get_gcc_version(char *s, size_t nbytes); 32 | char* dcc_get_gcc_machine(char *s, size_t nbytes); 33 | 34 | char* dcc_make_dnssd_subtype(char *stype, size_t nbytes, const char *v, const char *m); 35 | 36 | #define DCC_DNS_SERVICE_TYPE "_distcc._tcp" 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /distcc/survey.txt: -------------------------------------------------------------------------------- 1 | If you find distcc useful, please take a little time to fill out this 2 | survey and mail it to {distcc-survey at google.com}. 3 | 4 | Don't stress too much about getting scientifically rigorous numbers: 5 | rough numbers are more useful than none at all. Ideally, complete the 6 | survey for one large application that you work on, where compile speed 7 | is important. 8 | 9 | If after installing distcc you find that it makes your compile slower, 10 | or not as much faster as you would be expect, then please write to 11 | {distcc at lists.samba.org} instead of filling in the survey, and 12 | we'll try to resolve the problem. 13 | 14 | 15 | 0. What version of distcc are you using? 16 | 17 | 1. Your name and email address: 18 | 19 | 2. OK to publish this? 20 | - yes 21 | - yes, but without my identifying details 22 | - yes, but without my email address 23 | - no, for your eyes only 24 | 25 | 3. Your codebase: lines of code (by wc -l), and language: 26 | 27 | 4. Your machines: number, OS, processor, memory, network connectivity: 28 | 29 | 5. Time to compile, with and without distcc: 30 | 31 | 6. Any other observations: 32 | 33 | 34 | Thanks! 35 | The distcc maintainers. 36 | -------------------------------------------------------------------------------- /dmucs/CVSROOT/checkoutlist: -------------------------------------------------------------------------------- 1 | # The "checkoutlist" file is used to support additional version controlled 2 | # administrative files in $CVSROOT/CVSROOT, such as template files. 3 | # 4 | # The first entry on a line is a filename which will be checked out from 5 | # the corresponding RCS file in the $CVSROOT/CVSROOT directory. 6 | # The remainder of the line is an error message to use if the file cannot 7 | # be checked out. 8 | # 9 | # File format: 10 | # 11 | # [][] 12 | # 13 | # comment lines begin with '#' 14 | -------------------------------------------------------------------------------- /dmucs/CVSROOT/commitinfo: -------------------------------------------------------------------------------- 1 | # The "commitinfo" file is used to control pre-commit checks. 2 | # The filter on the right is invoked with the repository and a list 3 | # of files to check. A non-zero exit of the filter program will 4 | # cause the commit to be aborted. 5 | # 6 | # The first entry on a line is a regular expression which is tested 7 | # against the directory that the change is being committed to, relative 8 | # to the $CVSROOT. For the first match that is found, then the remainder 9 | # of the line is the name of the filter to run. 10 | # 11 | # If the repository name does not match any of the regular expressions in this 12 | # file, the "DEFAULT" line is used, if it is specified. 13 | # 14 | # If the name "ALL" appears as a regular expression it is always used 15 | # in addition to the first matching regex or "DEFAULT". 16 | -------------------------------------------------------------------------------- /dmucs/CVSROOT/config: -------------------------------------------------------------------------------- 1 | # Set this to "no" if pserver shouldn't check system users/passwords 2 | #SystemAuth=no 3 | 4 | # Put CVS lock files in this directory rather than directly in the repository. 5 | #LockDir=/var/lock/cvs 6 | 7 | # Set `TopLevelAdmin' to `yes' to create a CVS directory at the top 8 | # level of the new working directory when using the `cvs checkout' 9 | # command. 10 | #TopLevelAdmin=no 11 | 12 | # Set `LogHistory' to `all' or `TOEFWUPCGMAR' to log all transactions to the 13 | # history file, or a subset as needed (ie `TMAR' logs all write operations) 14 | #LogHistory=TOEFWUPCGMAR 15 | 16 | # Set `RereadLogAfterVerify' to `always' (the default) to allow the verifymsg 17 | # script to change the log message. Set it to `stat' to force CVS to verify# that the file has changed before reading it (this can take up to an extra 18 | # second per directory being committed, so it is not recommended for large 19 | # repositories. Set it to `never' (the previous CVS behavior) to prevent 20 | # verifymsg scripts from changing the log message. 21 | #RereadLogAfterVerify=always 22 | -------------------------------------------------------------------------------- /dmucs/CVSROOT/cvswrappers: -------------------------------------------------------------------------------- 1 | # This file affects handling of files based on their names. 2 | # 3 | # The -m option specifies whether CVS attempts to merge files. 4 | # 5 | # The -k option specifies keyword expansion (e.g. -kb for binary). 6 | # 7 | # Format of wrapper file ($CVSROOT/CVSROOT/cvswrappers or .cvswrappers) 8 | # 9 | # wildcard [option value][option value]... 10 | # 11 | # where option is one of 12 | # -f from cvs filter value: path to filter 13 | # -t to cvs filter value: path to filter 14 | # -m update methodology value: MERGE or COPY 15 | # -k expansion mode value: b, o, kkv, &c 16 | # 17 | # and value is a single-quote delimited value. 18 | # For example: 19 | #*.gif -k 'b' 20 | -------------------------------------------------------------------------------- /dmucs/CVSROOT/editinfo: -------------------------------------------------------------------------------- 1 | # The "editinfo" file is used to allow verification of logging 2 | # information. It works best when a template (as specified in the 3 | # rcsinfo file) is provided for the logging procedure. Given a 4 | # template with locations for, a bug-id number, a list of people who 5 | # reviewed the code before it can be checked in, and an external 6 | # process to catalog the differences that were code reviewed, the 7 | # following test can be applied to the code: 8 | # 9 | # Making sure that the entered bug-id number is correct. 10 | # Validating that the code that was reviewed is indeed the code being 11 | # checked in (using the bug-id number or a seperate review 12 | # number to identify this particular code set.). 13 | # 14 | # If any of the above test failed, then the commit would be aborted. 15 | # 16 | # Actions such as mailing a copy of the report to each reviewer are 17 | # better handled by an entry in the loginfo file. 18 | # 19 | # One thing that should be noted is the the ALL keyword is not 20 | # supported. There can be only one entry that matches a given 21 | # repository. 22 | -------------------------------------------------------------------------------- /dmucs/CVSROOT/loginfo: -------------------------------------------------------------------------------- 1 | # The "loginfo" file controls where "cvs commit" log information 2 | # is sent. The first entry on a line is a regular expression which must match 3 | # the directory that the change is being made to, relative to the 4 | # $CVSROOT. If a match is found, then the remainder of the line is a filter 5 | # program that should expect log information on its standard input. 6 | # 7 | # If the repository name does not match any of the regular expressions in this 8 | # file, the "DEFAULT" line is used, if it is specified. 9 | # 10 | # If the name ALL appears as a regular expression it is always used 11 | # in addition to the first matching regex or DEFAULT. 12 | # 13 | # You may specify a format string as part of the 14 | # filter. The string is composed of a `%' followed 15 | # by a single format character, or followed by a set of format 16 | # characters surrounded by `{' and `}' as separators. The format 17 | # characters are: 18 | # 19 | # s = file name 20 | # V = old version number (pre-checkin) 21 | # v = new version number (post-checkin) 22 | # t = tag or branch name 23 | # 24 | # For example: 25 | #DEFAULT (echo ""; id; echo %s; date; cat) >> $CVSROOT/CVSROOT/commitlog 26 | # or 27 | #DEFAULT (echo ""; id; echo %{sVv}; date; cat) >> $CVSROOT/CVSROOT/commitlog 28 | -------------------------------------------------------------------------------- /dmucs/CVSROOT/modules: -------------------------------------------------------------------------------- 1 | # Three different line formats are valid: 2 | # key -a aliases... 3 | # key [options] directory 4 | # key [options] directory files... 5 | # 6 | # Where "options" are composed of: 7 | # -i prog Run "prog" on "cvs commit" from top-level of module. 8 | # -o prog Run "prog" on "cvs checkout" of module. 9 | # -e prog Run "prog" on "cvs export" of module. 10 | # -t prog Run "prog" on "cvs rtag" of module. 11 | # -u prog Run "prog" on "cvs update" of module. 12 | # -d dir Place module in directory "dir" instead of module name. 13 | # -l Top-level directory only -- do not recurse. 14 | # 15 | # NOTE: If you change any of the "Run" options above, you'll have to 16 | # release and re-checkout any working directories of these modules. 17 | # 18 | # And "directory" is a path to a directory relative to $CVSROOT. 19 | # 20 | # The "-a" option specifies an alias. An alias is interpreted as if 21 | # everything on the right of the "-a" had been typed on the command line. 22 | # 23 | # You can encode a module within a module by using the special '&' 24 | # character to interpose another module into the current module. This 25 | # can be useful for creating a module that consists of many directories 26 | # spread out over the entire source repository. 27 | -------------------------------------------------------------------------------- /dmucs/CVSROOT/notify: -------------------------------------------------------------------------------- 1 | # The "notify" file controls where notifications from watches set by 2 | # "cvs watch add" or "cvs edit" are sent. The first entry on a line is 3 | # a regular expression which is tested against the directory that the 4 | # change is being made to, relative to the $CVSROOT. If it matches, 5 | # then the remainder of the line is a filter program that should contain 6 | # one occurrence of %s for the user to notify, and information on its 7 | # standard input. 8 | # 9 | # "ALL" or "DEFAULT" can be used in place of the regular expression. 10 | # 11 | # For example: 12 | #ALL mail -s "CVS notification" %s 13 | -------------------------------------------------------------------------------- /dmucs/CVSROOT/rcsinfo: -------------------------------------------------------------------------------- 1 | # The "rcsinfo" file is used to control templates with which the editor 2 | # is invoked on commit and import. 3 | # 4 | # The first entry on a line is a regular expression which is tested 5 | # against the directory that the change is being made to, relative to the 6 | # $CVSROOT. For the first match that is found, then the remainder of the 7 | # line is the name of the file that contains the template. 8 | # 9 | # If the repository name does not match any of the regular expressions in this 10 | # file, the "DEFAULT" line is used, if it is specified. 11 | # 12 | # If the name "ALL" appears as a regular expression it is always used 13 | # in addition to the first matching regex or "DEFAULT". 14 | -------------------------------------------------------------------------------- /dmucs/CVSROOT/taginfo: -------------------------------------------------------------------------------- 1 | # The "taginfo" file is used to control pre-tag checks. 2 | # The filter on the right is invoked with the following arguments: 3 | # 4 | # $1 -- tagname 5 | # $2 -- operation "add" for tag, "mov" for tag -F, and "del" for tag -d 6 | # $3 -- repository 7 | # $4-> file revision [file revision ...] 8 | # 9 | # A non-zero exit of the filter program will cause the tag to be aborted. 10 | # 11 | # The first entry on a line is a regular expression which is tested 12 | # against the directory that the change is being committed to, relative 13 | # to the $CVSROOT. For the first match that is found, then the remainder 14 | # of the line is the name of the filter to run. 15 | # 16 | # If the repository name does not match any of the regular expressions in this 17 | # file, the "DEFAULT" line is used, if it is specified. 18 | # 19 | # If the name "ALL" appears as a regular expression it is always used 20 | # in addition to the first matching regex or "DEFAULT". 21 | -------------------------------------------------------------------------------- /dmucs/CVSROOT/verifymsg: -------------------------------------------------------------------------------- 1 | # The "verifymsg" file is used to allow verification of logging 2 | # information. It works best when a template (as specified in the 3 | # rcsinfo file) is provided for the logging procedure. Given a 4 | # template with locations for, a bug-id number, a list of people who 5 | # reviewed the code before it can be checked in, and an external 6 | # process to catalog the differences that were code reviewed, the 7 | # following test can be applied to the code: 8 | # 9 | # Making sure that the entered bug-id number is correct. 10 | # Validating that the code that was reviewed is indeed the code being 11 | # checked in (using the bug-id number or a seperate review 12 | # number to identify this particular code set.). 13 | # 14 | # If any of the above test failed, then the commit would be aborted. 15 | # 16 | # Actions such as mailing a copy of the report to each reviewer are 17 | # better handled by an entry in the loginfo file. 18 | # 19 | # One thing that should be noted is the the ALL keyword is not 20 | # supported. There can be only one entry that matches a given 21 | # repository. 22 | -------------------------------------------------------------------------------- /dmucs/README.md: -------------------------------------------------------------------------------- 1 | DMUCS + Xcode Integration 2 | ========================== 3 | 4 | This is a fork of: 5 | 6 | DMUCS – a Distributed Multi-User Compilation System 7 | 8 | [http://dmucs.sourceforge.net](http://dmucs.sourceforge.net) 9 | 10 | by Victor Norman 11 | 12 | Additional changes have been made to integrate into Xcode 5+ as part of DistCode: 13 | [https://github.com/marksatt/DistCode](https://github.com/marksatt/DistCode) 14 | 15 | License 16 | ------- 17 | 18 | This program is free software; you can redistribute it and/or modify it 19 | under the terms of the GNU General Public License as published by the 20 | Free Software Foundation; either version 2 of the License, or (at your 21 | option) any later version. 22 | 23 | This program is distributed in the hope that it will be useful, but 24 | WITHOUT ANY WARRANTY; without even the implied warranty of 25 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 26 | Public License for more details. 27 | 28 | You should have received a copy of the GNU General Public License along 29 | with this program; if not, write to the Free Software Foundation, Inc., 30 | 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 31 | -------------------------------------------------------------------------------- /dmucs/dmucs/AUTHORS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/dmucs/dmucs/AUTHORS -------------------------------------------------------------------------------- /dmucs/dmucs/COSMIC/AS400/ADUCBAT: -------------------------------------------------------------------------------- 1 | /* COMPILE C PROGRAMS */ 2 | ADUCBAT: PGM PARM(&LIB &FILE &SRCMBR &TESTP &DEBUG &LSTDBG ) 3 | 4 | DCL &LIB TYPE(*CHAR) LEN(10) 5 | DCL &FILE TYPE(*CHAR) LEN(10) 6 | DCL &SRCMBR TYPE(*CHAR) LEN(10) 7 | DCL &TESTP TYPE(*CHAR) LEN(4) 8 | DCL &DEBUG TYPE(*CHAR) LEN(6) 9 | DCL &LSTDBG TYPE(*CHAR) LEN(7) 10 | DCL &QINCLUDE TYPE(*CHAR) LEN(10) 11 | DCL &PGMLIB TYPE(*CHAR) LEN(10) 12 | 13 | MONMSG CPF3C50 14 | MONMSG CPF2184 15 | MONMSG LNC9001 EXEC(GOTO DONE) 16 | 17 | 18 | CHGVAR &QINCLUDE ('ADU' *CAT &TESTP ) 19 | CHGVAR &PGMLIB ('ADU' *CAT &TESTP *CAT 'LIB' ) 20 | CHGLIBL LIBL(QGPL QTEMP &QINCLUDE ADUPRODLIB) CURLIB(&PGMLIB) 21 | 22 | CRTCMOD MODULE(&PGMLIB/&SRCMBR) SRCFILE(&LIB/&FILE) + 23 | SRCMBR(&SRCMBR) OUTPUT(*PRINT) + 24 | OPTION(*SECLVL *NOLOGMSG) SYSIFCOPT(*ALL) + 25 | CHECKOUT(*USAGE) OPTIMIZE(*NONE) + 26 | DBGVIEW(*LIST) DEFINE(AS400) FLAG(10) + 27 | LANGLVL(*ANSI) REPLACE(*YES) TGTRLS(V4R3M0) 28 | MONMSG MSGID(CZM0613) 29 | 30 | DONE: 31 | 32 | ENDPGM 33 |  -------------------------------------------------------------------------------- /dmucs/dmucs/COSMIC/AS400/ADUCBATB: -------------------------------------------------------------------------------- 1 | /* COMPILE C PROGRAMS */ 2 | ADUCBAT: PGM PARM(&LIB &FILE &SRCMBR &TESTP &DEBUG &LSTDBG ) 3 | 4 | DCL &LIB TYPE(*CHAR) LEN(10) 5 | DCL &FILE TYPE(*CHAR) LEN(10) 6 | DCL &SRCMBR TYPE(*CHAR) LEN(10) 7 | DCL &TESTP TYPE(*CHAR) LEN(4) 8 | DCL &DEBUG TYPE(*CHAR) LEN(6) 9 | DCL &LSTDBG TYPE(*CHAR) LEN(7) 10 | DCL &QINCLUDE TYPE(*CHAR) LEN(10) 11 | DCL &PGMLIB TYPE(*CHAR) LEN(10) 12 | 13 | MONMSG CPF3C50 14 | MONMSG CPF2184 15 | MONMSG LNC9001 EXEC(GOTO DONE) 16 | 17 | 18 | CHGVAR &QINCLUDE ('ADU' *CAT &TESTP ) 19 | CHGVAR &PGMLIB ('ADU' *CAT &TESTP *CAT 'LIB' ) 20 | CHGLIBL LIBL(QGPL QTEMP &QINCLUDE ADUPRODLIB) CURLIB(&PGMLIB) 21 | 22 | CRTCMOD MODULE(&PGMLIB/&SRCMBR) SRCFILE(&LIB/&FILE) SRCMBR(&SRCMBR) OUTPUT(*PRINT) OPTION(*SECLVL *NOLOGMSG) CHECKOUT(*USAGE) OPTIMIZE(*NONE) DBGVIEW(*LIST) DEFINE(AS400) LANGLVL(*EXTENDED) REPLACE(*YES) + 23 | TGTRLS(V4R3M0) FLAG(10) 24 | MONMSG MSGID(CZM0613) 25 | CRTPGM PGM(ADUTESTLIB/&SRCMBR) MODULE(ADUTESTLIB/&SRCMBR) BNDDIR(ADUTESTLIB/ADUSSLBND) DETAIL(*BASIC) 26 | DONE: 27 | 28 | ENDPGM 29 |  -------------------------------------------------------------------------------- /dmucs/dmucs/COSMIC/AS400/AS400.NOTES: -------------------------------------------------------------------------------- 1 | 1) some name > 8.3 were renamed to 8.3 to make migration to 2 | migration easier. I did not include the modules I just chopped 3 | any name that was not 8.3 when I moved it to the AS/400. 4 | 5 | 2) Changed unix format (x'0a') to (x'0d0a') for move on all modules 6 | and headers before I moved them to the AS/400. Again this was 7 | a mechanical process so I did not include. 8 | 9 | 3) Added def AS400 to sockets.h 10 | 11 | 4) Added "define(AS400)" to setproto.h 12 | 13 | 5) Added def AS400 to xtdio.h 14 | 15 | 6) Changed this line in svprintf 16 | #ifdef AS400 17 | ret= vsprintf(buf,fmt,__va_list args); 18 | #else 19 | ret= vsprintf(buf,fmt,(char *) args); 20 | #endif 21 | 22 | 7) changed sopen to initialize sockaddr_in to 0x00 just before bind 23 | and just before connect in SOPEN.c 24 | 25 | look for two lines of code in sopen.c that say... 26 | memset(&sin,0x00,sizeof(struct sockaddr_in)); 27 | 28 | 29 | 8) I modified spm (called spmstrtr) to start the server if it was 30 | not registered already. There are some comments in the module 31 | and the code is at the very end. 32 | 33 | 9) On the AS/400 I created a service library. 34 | 35 | -------------------------------------------------------------------------------- /dmucs/dmucs/COSMIC/AS400/READ.ME: -------------------------------------------------------------------------------- 1 | This AS/400 cl will compile the library modules 2 | ADUCBAT 3 | 4 | This AS/400 cl will compile the executabe modules and bind them with 5 | the service program library 6 | ADUCBATB 7 | 8 | This AS/400 cl will create the service program after the modules are 9 | are all compiled. 10 | crtsslsrv 11 | 12 | This is the binder export file that crtsslsrv uses 13 | adusslbnd 14 | 15 | 16 | 17 | I use spmstrtr to kickoff a CICS/400 transaction when an input request 18 | comes into the system. 19 | 20 | This is an AS/400 command that can be kicked off by spmstrtr to auto 21 | matically start a server. 22 | RUNAU17 23 | 24 | This is the CL to support the RUNAU17 command. 25 | startau17w 26 | -------------------------------------------------------------------------------- /dmucs/dmucs/COSMIC/AS400/RUNAU17: -------------------------------------------------------------------------------- 1 | CMD PROMPT('RUNAU17 TO SUBMIT JOB ') 2 | PARM KWD(ANYVALUE) TYPE(*CHAR) LEN(10) MIN(1) 3 | 4 | /*CRTCMD CMD(ADUTESTLIB/RUNAU17) PGM(*LIBL/STARTAU17W) SRCFILE(ADUTEST/ADUCLCMD+ 5 | MAXPOS(1) */ 6 | 7 |  -------------------------------------------------------------------------------- /dmucs/dmucs/COSMIC/AS400/crtsslsrv: -------------------------------------------------------------------------------- 1 | ADUCRT: PGM 2 | 3 | 4 | /* THIS COMMAND WILL BIND ALL OF THESE MODULES INTO A SERVICE PROGRAM + 5 | IF ONE OF THESE MODULES CHANGES THIS JOB MUST BE RERUN TO REBIND + 6 | IT WILL NOT BE NECESSARY TO REBIND ALL OF THE PROGRAMS THAT CALL THESE + 7 | MODULES. IF YOU CHANGE THE CALLING STRUCTURE OF ANY OF THESE MODULES + 8 | ALL PROGRAMS MUST BE REBOUND. + 9 | IF YOU ADD A PROGRAM IT MUST BE ADDED TO THE END. YOU MUST UPDATE THE + 10 | EXPORT LIST IN ADUTEST/BATCH MEMBER NAME ADUSRVPGM. IF YOU ADD TO THE + 11 | END ONLY THE PROGRAMS USING THE NEW MODULE NEED TO BE REBOUND */ 12 | 13 | CRTSRVPGM SRVPGM(ADUTESTLIB/ADUSSLPGM) MODULE(*LIBL/CPRT *LIBL/ERROR *LIBL/FOPENV *LIBL/OUTOFMEM *LIBL/RDCOLOR *LIBL/SACCEPT *LIBL/SCLOSE *LIBL/SGETS *LIBL/SINIT *LIBL/SMASKWAI *LIBL/SMKSKT *LIBL/SOPEN + 14 | *LIBL/SOPENV *LIBL/SPEEK *LIBL/SPEERADD *LIBL/SPEERNAM *LIBL/SPRINTF *LIBL/SPRT *LIBL/SPRTSKT *LIBL/SPUTS *LIBL/SREAD *LIBL/SREADBYT *LIBL/SRMSRVR *LIBL/SRMTRBLK *LIBL/SSCANF *LIBL/STEST + 15 | *LIBL/STIMEOUT *LIBL/STPBLK *LIBL/STPNXT *LIBL/STRNXTFM *LIBL/SVPRINTF *LIBL/SWAIT *LIBL/SWRITE ESDTOSSL) EXPORT(*SRCFILE) SRCFILE(ADUTEST/QCSRC) SRCMBR(ADUSSLBND) TEXT('CREATE ADU SERVICE PROGRAM + 16 | OF COSMIC SSL ROUTINES') BNDDIR(*NONE) DETAIL(*EXTENDED) TGTRLS(V4R3M0) 17 | ENDPGM 18 | 19 |  -------------------------------------------------------------------------------- /dmucs/dmucs/COSMIC/AS400/startau17w: -------------------------------------------------------------------------------- 1 | /* */ 2 | /* START THE AS400 POS TCP RECEIVER */ 3 | /* */ 4 | /* ADU TEST REGION V1.0 */ 5 | 6 | STARTAU17: PGM PARM(&ANYVALUE) 7 | DCL &ANYVALUE *CHAR 10 8 | CHGLIBL LIBL(QGPL QTEMP ) CURLIB(ADUTESTLIB) 9 | 10 | SBMJOB CMD(STRCICSUSR CTLRGN(ADUC) TRANID(A17R)) + 11 | JOB(RUNAU17R) JOBQ(*LIBL/ADUCJOBQ) + 12 | USER(CICSTST) 13 | 14 | ENDPGM 15 |  -------------------------------------------------------------------------------- /dmucs/dmucs/COSMIC/EXAMPLES/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for the Simple Socket Library's EXAMPLES 2 | # Note: not all the programs may build on your system, 3 | # (the oob*.c ones in particular) 4 | 5 | # EXES: list of executables to be made 6 | # Note: not all of these may compile correctly, 7 | # ie. sktsig/oobrecv/oobsend, which have BSD-Unix dependencies 8 | # 9 | # Cygwin, for example, will have problems with sigcontext structures 10 | # which affects oobrecv and sktsig. 11 | # ------------------------------------------------------------------------ 12 | EXES=smsrvr smclient multiskt sktpoll talksrvr talkclient sktsig oobrecv oobsend 13 | 14 | # to convert C into executables 15 | .c: 16 | $(CC) $(CFLAGS) $(LDFLAGS) $< $(LOADLIBES) -o $@ 17 | 18 | # make all executables 19 | all : $(EXES) 20 | 21 | clean : 22 | /bin/rm -f *.o *.bak *.err $(EXES) 23 | -------------------------------------------------------------------------------- /dmucs/dmucs/COSMIC/EXAMPLES/sktpoll.c: -------------------------------------------------------------------------------- 1 | /* sktpoll: this program illustrates sleep-polls for clients */ 2 | #include 3 | #include "xtdio.h" 4 | #include "sockets.h" 5 | 6 | /* --------------------------------------------------------------------- */ 7 | 8 | /* main: begin here */ 9 | #ifdef __PROTOTYPE__ 10 | int main( 11 | int argc, 12 | char **argv) 13 | #else /* __PROTOTYPE__ */ 14 | int main(argc,argv) 15 | int argc; 16 | char **argv; 17 | #endif /* __PROTOTYPE__ */ 18 | { 19 | Socket *client=NULL; 20 | 21 | client= Sopenv("sktpoll","c","SKTPATH"); 22 | 23 | while(!client) { 24 | sleep(1); 25 | client= Sopenv("sktpoll","c","SKTPATH"); 26 | } 27 | 28 | Sputs("hello",client); 29 | 30 | Sclose(client); 31 | } 32 | 33 | /* --------------------------------------------------------------------- */ 34 | 35 | -------------------------------------------------------------------------------- /dmucs/dmucs/COSMIC/EXAMPLES/smclient.c: -------------------------------------------------------------------------------- 1 | /* smclient.c: this file contains a small client example */ 2 | #include 3 | #include "sockets.h" 4 | 5 | /* --------------------------------------------------------------------- */ 6 | 7 | int main() 8 | { 9 | Socket *skt = NULL; 10 | char buf[128]; 11 | 12 | do { 13 | skt= Sopen("SmallServer","c"); 14 | if(!skt) sleep(1); 15 | } while(!skt); 16 | 17 | Sscanf(skt,"%s",buf); 18 | printf("buf<%s>\n",buf); 19 | Sclose(skt); 20 | 21 | return 0; 22 | } 23 | /* --------------------------------------------------------------------- */ 24 | -------------------------------------------------------------------------------- /dmucs/dmucs/COSMIC/EXAMPLES/smsrvr.c: -------------------------------------------------------------------------------- 1 | /* smsrvr.c: a real small server example */ 2 | #include 3 | #include "sockets.h" 4 | 5 | /* --------------------------------------------------------------------- */ 6 | 7 | int main() 8 | { 9 | Socket *srvr = NULL; 10 | Socket *skt = NULL; 11 | 12 | srvr= Sopen("SmallServer","s"); 13 | skt = Saccept(srvr); 14 | 15 | Sprintf(skt,"hello"); 16 | Sclose(skt); 17 | Sclose(srvr); 18 | 19 | return 0; 20 | } 21 | 22 | /* --------------------------------------------------------------------- */ 23 | -------------------------------------------------------------------------------- /dmucs/dmucs/COSMIC/EXE/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for the Simple Sockets Library (C version) Executables 2 | # 3 | # NASA -- Goddard Space Flight Center, Code 714.1 4 | # Intelligent Robotics Laboratory 5 | # Robotics Branch 6 | # 7 | # Authors: Dr. Charles E. Campbell, Jr. 8 | # Terry McRoberts 9 | # 10 | 11 | # list of executables 12 | EXES= Spm sktdbg spmtable srmsrvr spmchk 13 | 14 | # to convert C into executables 15 | .c: 16 | $(CC) $(CFLAGS) $(LDFLAGS) $< $(LOADLIBES) -o $(EXETGT)/$@ 17 | 18 | all : $(EXES) 19 | 20 | clean : 21 | /bin/rm -f *.o *.bak *.err Spm sktdbg spmchk spmtable srmsrvr 22 | -------------------------------------------------------------------------------- /dmucs/dmucs/COSMIC/EXE/spmchk.c: -------------------------------------------------------------------------------- 1 | /* spmchk: see if there is a portmaster running on the specified machine 2 | * by attempting to open a Socket on it. If the attempt fails, return 1, 3 | * otherwise 0. 4 | * 5 | * XTDIO_USAGE: spmchk [machine] 6 | * 7 | * This can be used in a script like so: 8 | * 9 | * spmchk || Spm 10 | * 11 | * -or- 12 | * 13 | * spmchk || (nohup Spm > /dev/null)& 14 | * 15 | * to avoid having Spm print out an error message if it is already 16 | * running. 17 | * 18 | * Author: Marty Olevitch, Dec 1993 19 | * (This routine is placed into the public domain.) 20 | */ 21 | 22 | #include 23 | #include 24 | #include "sockets.h" 25 | 26 | /* --------------------------------------------------------------------- 27 | * Definitions: 28 | */ 29 | #define BUFSIZE 256 30 | 31 | /* --------------------------------------------------------------------- 32 | * Prototypes: 33 | */ 34 | #ifdef __PROTOTYPE__ 35 | int main(int, char **); 36 | #else 37 | extern main(); 38 | #endif 39 | 40 | /* --------------------------------------------------------------------- 41 | * Source Code: 42 | */ 43 | 44 | #ifdef __PROTOTYPE__ 45 | int main( 46 | int argc, 47 | char **argv) 48 | #else 49 | int main(argc, argv) 50 | int argc; 51 | char **argv; 52 | #endif 53 | { 54 | char hostnm[BUFSIZE]; 55 | Socket *s; 56 | 57 | Sinit(); 58 | 59 | if(argc > 1) strcpy(hostnm, argv[1]); 60 | else gethostname(hostnm,BUFSIZE); 61 | 62 | s = Sopen_clientport(hostnm, "PMClient", PORTMASTER); 63 | if (!s) { 64 | exit(2); 65 | } 66 | Sclose(s); 67 | 68 | #ifdef vms 69 | exit(1); 70 | #else 71 | exit(0); 72 | #endif 73 | } 74 | 75 | /* --------------------------------------------------------------------- */ 76 | -------------------------------------------------------------------------------- /dmucs/dmucs/COSMIC/EXE/srmsrvr.c: -------------------------------------------------------------------------------- 1 | /* srmsrvr.c: this program is dangerous, but it does allow one to forcibly 2 | * remove servers from the PortMaster's desmesne. 3 | */ 4 | #include 5 | #include "xtdio.h" 6 | #include "sockets.h" 7 | 8 | /* ---------------------------------------------------------------------- */ 9 | 10 | /* main: */ 11 | #ifdef __PROTOTYPE__ 12 | int main( 13 | int argc, 14 | char **argv) 15 | #else /* __PROTOTYPE__ */ 16 | int main(argc,argv) 17 | int argc; 18 | char **argv; 19 | #endif /* __PROTOTYPE__ */ 20 | { 21 | rdcolor(); 22 | Sinit(); 23 | 24 | for(--argc, ++argv; argc > 0; --argc, ++argv) { 25 | if(Srmsrvr(*argv) != PM_OK) 26 | error(XTDIO_WARNING,"failed to remove <%s%s%s>\n",MAGENTA,*argv,GREEN); 27 | } 28 | 29 | #ifdef vms 30 | return 1; 31 | #else 32 | return 0; 33 | #endif 34 | } 35 | 36 | /* ---------------------------------------------------------------------- */ 37 | 38 | -------------------------------------------------------------------------------- /dmucs/dmucs/COSMIC/HDR/setproto.h: -------------------------------------------------------------------------------- 1 | /* : determine if prototype using or not 2 | * Authors: Charles E. Campbell, Jr. 3 | * Terry McRoberts 4 | * Copyright: Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{1 5 | * Permission is hereby granted to use and distribute this code, 6 | * with or without modifications, provided that this copyright 7 | * notice is copied with it. Like anything else that's free, 8 | * sockets.h is provided *as is* and comes with no warranty 9 | * of any kind, either expressed or implied. By using this 10 | * software, you agree that in no event will the copyright 11 | * holder be liable for any damages resulting from the use 12 | * of this software. 13 | * Date: Aug 22, 2005 14 | */ 15 | #ifndef SETPROTO_H 16 | # define SETPROTO_H 17 | 18 | /* --------------------------------------------------------------------- */ 19 | 20 | # ifndef __PROTOTYPE__ 21 | 22 | # ifdef vms 23 | # ifndef oldvms 24 | # define __PROTOTYPE__ 25 | # endif 26 | 27 | # else 28 | 29 | # if defined(sgi) || defined(apollo) || defined(__STDC__) || \ 30 | defined(MCH_AMIGA) || defined(_AIX) || defined(__MSDOS__) || \ 31 | defined(ultrix) || defined(__DECC) || defined(__alpha) || \ 32 | defined(__osf__) || defined(__WIN32__) || defined(__linux__) || \ 33 | defined(_MSC_VER) || defined(os2) || defined(AS400) 34 | # define __PROTOTYPE__ 35 | # endif 36 | # endif 37 | # endif 38 | 39 | /* --------------------------------------------------------------------- */ 40 | 41 | #endif /* SETPROTO_H */ 42 | -------------------------------------------------------------------------------- /dmucs/dmucs/COSMIC/HDR/xstdlib.h: -------------------------------------------------------------------------------- 1 | /* xstdlib.h: has standard library function prototypes 2 | * Authors: Charles E. Campbell, Jr. 3 | * Terry McRoberts 4 | * Copyright: Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{1 5 | * Permission is hereby granted to use and distribute this code, 6 | * with or without modifications, provided that this copyright 7 | * notice is copied with it. Like anything else that's free, 8 | * xstdlib.h is provided *as is* and comes with no warranty 9 | * of any kind, either expressed or implied. By using this 10 | * software, you agree that in no event will the copyright 11 | * holder be liable for any damages resulting from the use 12 | * of this software. 13 | * Date: Aug 22, 2005 14 | */ 15 | #ifndef XSTDLIB_H 16 | #define XSTDLIB_H 17 | 18 | #include 19 | 20 | /* Prototypes for standard library functions */ 21 | extern char *calloc(); 22 | extern void exit(); 23 | extern char *getenv(); 24 | extern char *index(); 25 | extern char *malloc(); 26 | extern char *strchr(); 27 | extern char *strrchr(); 28 | #define remove unlink 29 | 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /dmucs/dmucs/COSMIC/MAKE.CMD: -------------------------------------------------------------------------------- 1 | @echo OS/2 Command file: makes the Simple Sockets Library from a 2 | @echo OS/2S console 3 | @echo Trying Watcomm C++ 11.0a or better 4 | @echo ------------------------------------ 5 | @echo Authors: Charles E. Campbell, Jr. 6 | @echo Terry McRoberts 7 | @echo mod for OS/2 Steve Richards 8 | @echo --------------------------------------------------------------- 9 | 10 | @echo Compiling Simple Sockets Library 11 | 12 | @del *.lib >NUL 13 | wmake 14 | 15 | rem Compile and link SSL utilities and PortMaster (Spm) 16 | @echo Compiling and linking SSL utilities 17 | cd EXE 18 | @del exe\*.exe 19 | wmake -f MAKEFILE.os2 20 | cd .. 21 | 22 | @echo --------------------------------------------------------------- 23 | @echo Utilities and the PortMaster (Spm) are in COSMIC\*.exe 24 | @echo The Simple Sockets library is in COSMIC\smplskts.lib 25 | @echo Try out the examples, too! 26 | @echo .......................... 27 | @echo Best of luck, 28 | @echo Charles E. Campbell 29 | -------------------------------------------------------------------------------- /dmucs/dmucs/COSMIC/Makefile.am: -------------------------------------------------------------------------------- 1 | lib_LTLIBRARIES = libsimpleskts.la 2 | 3 | AM_CPPFLAGS = -I ${srcdir}/HDR 4 | 5 | libsimpleskts_la_SOURCES = Saccept.c Sclose.c Sgets.c Sinit.c Smaskwait.c \ 6 | Smkskt.c Sopen.c Sopenv.c Speek.c Speeraddr.c Speername.c Sprintf.c \ 7 | Sprtskt.c Sputs.c Sread.c Sreadbytes.c Srmsrvr.c Sscanf.c Stest.c \ 8 | Stimeoutwait.c Svprintf.c Swait.c Swrite.c cprt.c error.c fopenv.c \ 9 | outofmem.c rdcolor.c sprt.c srmtrblk.c stpblk.c stpnxt.c strnxtfmt.c 10 | 11 | -------------------------------------------------------------------------------- /dmucs/dmucs/COSMIC/Makelib.: -------------------------------------------------------------------------------- 1 | smplskts.lib 2 | y 3 | +error +sprt +sscanf +swait & 4 | +fopenv +smaskwai +sprtskt +stest +swrite & 5 | +outofmem +smkskt +sputs +stimeout & 6 | +rdcolor +sopen +sread +stpblk & 7 | +saccept +sopenv +sreadbyt +stpnxt & 8 | +sclose +speek +srmsrvr +strnxtfm & 9 | +sgets +sprintf +srmtrblk +svprintf 10 | smplskts.lst 11 | -------------------------------------------------------------------------------- /dmucs/dmucs/COSMIC/Makeskt.bat: -------------------------------------------------------------------------------- 1 | cl -c *.c /AS 2 | lib @makelib 3 | cd exe 4 | cl -c /AS -I\c600\socket *.c 5 | cd .. 6 | link exe\sktdbg ,,,smplskts+socket+slibce+winapp,/noi /noe 7 | link exe\spmtable,,,smplskts+socket+slibce+winapp,/noi /noe 8 | link exe\srmsrvr ,,,smplskts+socket+slibce+winapp,/noi /noe 9 | mv *.exe c:\c600\socket\exe 10 | -------------------------------------------------------------------------------- /dmucs/dmucs/COSMIC/Mkwin95.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | echo Windows 95 Batch file: makes the Simple Sockets Library from a 3 | echo MSDOS console 4 | echo Batch file for Borland C++ v5.0 or better 5 | echo 6 | echo Authors: Charles E. Campbell, Jr. 7 | echo Terry McRoberts 8 | echo --------------------------------------------------------------- 9 | echo 10 | 11 | rem This batch file already assumes that the files have been gunzip'ped and 12 | rem untar'red. It creates a smplskts.lib; you will also want to have 13 | rem its header files in your -I list when compiling. 14 | 15 | rem Compile the Simple Sockets Library 16 | echo Compiling Simple Sockets Library 17 | for %%f in (*.c) do bcc32 -c -vi- -w-aus -w-csu -w-pia -I. -w-vnu -I.\HDR %%f 18 | 19 | rem Build smplskts.lib Library 20 | echo Building smplskts.lib 21 | for %%f in (*.obj) do tlib /C smplskts +%%f 22 | 23 | rem Compile and link SSL utilities and PortMaster (Spm) 24 | echo Compiling and linking SSL utilities 25 | cd EXE 26 | for %%f in (*.c) do bcc32 -Ot -vi- -w-aus -w-csu -w-pia -I..\HDR %%f ..\smplskts.lib 27 | mv *.exe .. 28 | cd .. 29 | 30 | rem Cleanup 31 | del *.bak 32 | del *.obj 33 | del EXE\*.obj 34 | 35 | rem Final Note 36 | echo 37 | echo --------------------------------------------------------------- 38 | echo 39 | echo Utilities and the PortMaster (Spm) are in COSMIC\*.exe 40 | echo The Simple Sockets library is in COSMIC\smplskts.lib 41 | echo Try out the examples, too! 42 | echo 43 | echo Best of luck, 44 | echo Charles E. Campbell 45 | -------------------------------------------------------------------------------- /dmucs/dmucs/COSMIC/Sputs.c: -------------------------------------------------------------------------------- 1 | /* Sputs.c: this function "puts" a string which Sgets can receive 2 | * Authors: Charles E. Campbell, Jr. 3 | * Terry McRoberts 4 | * Copyright: Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{1 5 | * Permission is hereby granted to use and distribute this code, 6 | * with or without modifications, provided that this copyright 7 | * notice is copied with it. Like anything else that's free, 8 | * Sputs.c is provided *as is* and comes with no warranty 9 | * of any kind, either expressed or implied. By using this 10 | * software, you agree that in no event will the copyright 11 | * holder be liable for any damages resulting from the use 12 | * of this software. 13 | * Date: Aug 22, 2005 14 | */ 15 | #include 16 | #include 17 | #include 18 | #include "sockets.h" 19 | 20 | /* --------------------------------------------------------------------- */ 21 | 22 | /* Sputs: */ 23 | #ifdef __PROTOTYPE__ 24 | void Sputs( 25 | char *buf, 26 | Socket *skt) 27 | #else 28 | void Sputs( 29 | buf, 30 | skt) 31 | char *buf; 32 | Socket *skt; 33 | #endif 34 | { 35 | 36 | /* write out buf and the null byte */ 37 | Swrite(skt,buf,(int)strlen(buf)+1); 38 | 39 | } 40 | 41 | /* --------------------------------------------------------------------- 42 | * vim: ts=4 43 | */ 44 | -------------------------------------------------------------------------------- /dmucs/dmucs/COSMIC/cprt.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "xtdio.h" 3 | 4 | /* --------------------------------------------------------------------- */ 5 | 6 | /* cprt: print out a character so that it is legible */ 7 | #ifdef __PROTOTYPE__ 8 | char *cprt(const char c) 9 | #else /* __PROTOTYPE__ */ 10 | char *cprt(c) 11 | char c; 12 | #endif /* __PROTOTYPE__ */ 13 | { 14 | static char buf1[10]; 15 | static char buf2[10]; 16 | static char buf3[10]; 17 | static char buf4[10]; 18 | static char buf5[10]; 19 | static char *buf=buf1; 20 | int ic; 21 | 22 | ic= (int) c; 23 | if(ic < 32) sprintf(buf,"^%c",(char) (ic + 64)); 24 | else if(ic == 127) sprintf(buf,"^"); 25 | else if(ic >= 128) sprintf(buf,"^<%3d>",ic); 26 | else sprintf(buf,"%c",c); 27 | if(buf == buf1) { 28 | buf= buf2; 29 | return buf1; 30 | } 31 | else if(buf == buf2) { 32 | buf= buf3; 33 | return buf2; 34 | } 35 | else if(buf == buf3) { 36 | buf= buf4; 37 | return buf3; 38 | } 39 | else if(buf == buf4) { 40 | buf= buf5; 41 | return buf4; 42 | } 43 | else { 44 | buf= buf1; 45 | return buf5; 46 | } 47 | } 48 | 49 | /* --------------------------------------------------------------------- */ 50 | -------------------------------------------------------------------------------- /dmucs/dmucs/COSMIC/outofmem.c: -------------------------------------------------------------------------------- 1 | /* outofmem.c */ 2 | #include 3 | #include "sockets.h" 4 | 5 | /* ---------------------------------------------------------------------- */ 6 | 7 | /* outofmem: tests if ptr is null. If it is, the format and arguments 8 | * a la printf are put to the stdout and then the program exits 9 | */ 10 | #ifdef __PROTOTYPE__ 11 | void outofmem( 12 | void *ptr, 13 | char *fmt, 14 | ...) 15 | #else /* __PROTOTYPE__ */ 16 | void outofmem(ptr,fmt,va_alist) 17 | void *ptr; 18 | char *fmt; 19 | va_dcl 20 | #endif /* __PROTOTYPE__ */ 21 | { 22 | va_list args; 23 | 24 | /* check if ptr is not null */ 25 | if(ptr) return; 26 | 27 | #ifdef __PROTOTYPE__ 28 | /* initialize for variable arglist handling */ 29 | va_start(args,fmt); 30 | 31 | #else /* __PROTOTYPE__ */ 32 | 33 | /* initialize for variable arglist handling */ 34 | va_start(args); 35 | 36 | fmt= va_arg(args,char *); 37 | #endif /* __PROTOTYPE__ */ 38 | 39 | fprintf(stderr,"***out of memory*** "); 40 | vfprintf(stderr,fmt,args); 41 | va_end(args); 42 | (*error_exit)(1); 43 | } 44 | 45 | /* ---------------------------------------------------------------------- */ 46 | -------------------------------------------------------------------------------- /dmucs/dmucs/COSMIC/rdcolor.dat: -------------------------------------------------------------------------------- 1 | iris-ansi | iris-ansi-net | vt100 | RLamiga | ibmpc: 2 | RED \e[m\e[31m 3 | GREEN \e[m\e[32m 4 | YELLOW \e[m\e[33m 5 | BLUE \e[m\e[34m 6 | MAGENTA \e[m\e[35m 7 | CYAN \e[m\e[36m 8 | WHITE \e[m\e[37m 9 | RVRED \e[m\e[7;31m 10 | RVGREEN \e[m\e[7;32m 11 | RVYELLOW \e[m\e[7;33m 12 | RVBLUE \e[m\e[7;34m 13 | RVMAGENTA \e[m\e[7;35m 14 | RVCYAN \e[m\e[7;36m 15 | RVWHITE \e[m\e[7;37m 16 | URED \e[m\e[4;31m 17 | UGREEN \e[m\e[4;32m 18 | UYELLOW \e[m\e[4;33m 19 | UBLUE \e[m\e[4;34m 20 | UMAGENTA \e[m\e[4;35m 21 | UCYAN \e[m\e[4;36m 22 | UWHITE \e[m\e[4;37m 23 | NRML \e[m\e[32m 24 | BOLD \e[m\e[7m 25 | CLEAR \e[2J\e[m 26 | vms: 27 | RED \e[m\e[7m 28 | YELLOW \e[m\e[7m 29 | GREEN \e[m 30 | BLUE \e[m 31 | CYAN \e[m\e[7m 32 | MAGENTA \e[m\e[7m 33 | WHITE \e[m 34 | RVRED \e[m\e[7m 35 | RVYELLOW \e[m\e[7m 36 | RVGREEN \e[m\e[7m 37 | RVBLUE \e[m\e[7m 38 | RVCYAN \e[m\e[7m 39 | RVMAGENTA \e[m\e[7m 40 | RVWHITE \e[m\e[7m 41 | URED \e[4m 42 | UYELLOW \e[4m 43 | UGREEN \e[4m 44 | UBLUE \e[4m 45 | UCYAN \e[4m 46 | UMAGENTA \e[4m 47 | UWHITE \e[4m 48 | NRML \e[m 49 | BOLD \e[m\e[7m 50 | CLEAR \e2J 51 | iris: 52 | RED \e9P 53 | YELLOW \e9P 54 | GREEN \e0@ 55 | BLUE \e9P 56 | CYAN \e9P 57 | MAGENTA \e9P 58 | WHITE \e9P 59 | RVRED \e9P 60 | RVYELLOW \e9P 61 | RVGREEN \e9P 62 | RVBLUE \e9P 63 | RVCYAN \e9P 64 | RVMAGENTA \e9P 65 | RVWHITE \e9P 66 | URED \e9P 67 | UYELLOW \e9P 68 | UGREEN \e9P 69 | UBLUE \e9P 70 | UCYAN \e9P 71 | UMAGENTA \e9P 72 | UWHITE \e9P 73 | NRML \e0@ 74 | BOLD \e9P 75 | CLEAR \eH\eJ 76 | -------------------------------------------------------------------------------- /dmucs/dmucs/COSMIC/sprt.c: -------------------------------------------------------------------------------- 1 | /* sprt.c: */ 2 | #include 3 | #include 4 | #include "xtdio.h" 5 | 6 | /* ------------------------------------------------------------------------- 7 | * Local Definitions: 8 | */ 9 | #define BUFSIZE 261 10 | #define SFTY 5 11 | 12 | /* sprt: this routine makes string characters all visible */ 13 | #ifdef __PROTOTYPE__ 14 | char *sprt(const char *s) 15 | #else /* __PROTOTYPE__ */ 16 | char *sprt(s) 17 | char *s; 18 | #endif /* __PROTOTYPE__ */ 19 | { 20 | static char buf1[BUFSIZE]; 21 | static char buf2[BUFSIZE]; 22 | static char buf3[BUFSIZE]; 23 | static char buf4[BUFSIZE]; 24 | char *b; 25 | char *bend; 26 | static char *buf = buf3; 27 | int ic; 28 | 29 | /* allows up to three sprt()s in one function call */ 30 | if(buf == buf1) buf= buf2; 31 | else if(buf == buf2) buf= buf3; 32 | else if(buf == buf3) buf= buf4; 33 | else buf= buf1; 34 | 35 | buf[0]= '\0'; 36 | bend = buf + BUFSIZE - SFTY; 37 | if(s) for(b= buf; *s && b < bend; ++s, b+= strlen(b)) { 38 | ic= (int) *s; 39 | if(ic < 31) sprintf(b,"^%c",(char) (ic + 64)); 40 | else if(ic >= 128) sprintf(b,"~%3d",ic); 41 | else { 42 | *b = *s; 43 | *(b+1)= '\0'; 44 | } 45 | b+= strlen(b); 46 | } 47 | return buf; 48 | } 49 | 50 | /* --------------------------------------------------------------------- */ 51 | -------------------------------------------------------------------------------- /dmucs/dmucs/COSMIC/srmtrblk.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | /* srmtrblk: remove trailing blanks from string s */ 5 | #ifdef __PROTOTYPE__ 6 | void srmtrblk(char *s) 7 | #else /* __PROTOTYPE__ */ 8 | void srmtrblk(s) 9 | char *s; 10 | #endif /* __PROTOTYPE__ */ 11 | { 12 | char *ss; 13 | for(ss= s; *ss; ++ss); /* find end of string */ 14 | for(--ss; ss >= s && isspace(*ss) && *ss != '\f'; --ss) *ss= '\0'; 15 | } 16 | -------------------------------------------------------------------------------- /dmucs/dmucs/COSMIC/stpblk.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | /* stpblk: skips blanks (white space) */ 5 | #ifdef __PROTOTYPE__ 6 | char *stpblk(char *p) 7 | #else /* __PROTOTYPE__ */ 8 | char *stpblk(p) 9 | char *p; 10 | #endif /* __PROTOTYPE__ */ 11 | { 12 | while(isspace(*p)) ++p; 13 | return p; 14 | } 15 | -------------------------------------------------------------------------------- /dmucs/dmucs/ChangeLog: -------------------------------------------------------------------------------- 1 | 2 | 0.1 -- Initial release. 3 | 4 | 0.2 -- Thanks to Patrik Olesen for code to eliminate most pthread forks, 5 | and for the -H option to the server to point to the hosts-info file. 6 | -- made a few changes to store resolve IP names in the DmucsHost object. 7 | 8 | 0.3 -- Look for hosts-info in the $pkgdatadir now -- usually 9 | /usr/local/share/dmucs/hosts-info. 10 | -- Expect the administrator to specify 11 | CPPFLAGS=-DSERVER_MACH_NAME=\\\"\\\" when running 12 | 'configure'. This specifies where the dmucs host-server will be run. 13 | With this change, you don't have to specify -s to all the executables 14 | (loadavg, gethost, monitor, etc.) 15 | 16 | 0.4 -- Better yet: the administrator should add the CPPFLAGS thing above 17 | to the gmake command -- this works for me on both solaris and linux. 18 | Added a message to be printed out when a new host is added. 19 | Cleaned up the host name resolution stuff -- all in one file now. 20 | Thanks for Patrik Olesen for his help. 21 | 22 | 0.4.1 23 | -- Fix some problems with 0.4: problem when running out of hosts, 24 | problem with compilation, etc. 25 | 26 | 0.5 -- Fix compilation problems with running out of hosts. 27 | 28 | 0.6 -- Add support for multiple databases. Using -t "" for loadavg, 29 | you can group compilation hosts according to some common 30 | characteristic. Then, to get the host with that characteristic, use 31 | -t for gethost as well. 32 | 33 | 0.6.1 -- Fix compilation problems on Solaris with Solaris's cc 34 | compiler. Fix a few other minor things I found. 35 | 36 | -------------------------------------------------------------------------------- /dmucs/dmucs/Makefile.am: -------------------------------------------------------------------------------- 1 | SUBDIRS = COSMIC 2 | 3 | bin_PROGRAMS = dmucs gethost loadavg monitor remhost 4 | 5 | dmucs_SOURCES = dmucs_resolve.cc dmucs_db.cc dmucs_host.cc \ 6 | dmucs_hosts_file.cc dmucs_msg.cc dmucs_host_state.cc main.cc 7 | 8 | LDADD = COSMIC/libsimpleskts.la 9 | 10 | gethost_SOURCES = dmucs_resolve.cc gethost.cc 11 | 12 | loadavg_SOURCES = loadavg.cc 13 | 14 | monitor_SOURCES = monitor.cc 15 | 16 | remhost_SOURCES = remhost.cc 17 | 18 | # 19 | # Make -DPKGDATADIR= be passed on each compile. 20 | # 21 | AM_CPPFLAGS = -DPKGDATADIR=\"${pkgdatadir}\" 22 | 23 | -------------------------------------------------------------------------------- /dmucs/dmucs/NEWS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/dmucs/dmucs/NEWS -------------------------------------------------------------------------------- /dmucs/dmucs/README: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marksatt/DistCode/5b76dac549b1b5fbdaac71bfed439065d2845f00/dmucs/dmucs/README -------------------------------------------------------------------------------- /dmucs/dmucs/autogen.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh -e 2 | 3 | # Usage: autogen.sh [srcdir] 4 | # Run this script to build distcc from CVS. 5 | 6 | ## first try the default names 7 | ACLOCAL="aclocal" 8 | AUTOHEADER="autoheader" 9 | AUTOCONF="autoconf" 10 | 11 | if which $AUTOCONF > /dev/null 12 | then 13 | : 14 | else 15 | echo "$0: need autoconf 2.53 or later to regenerate configure scripts" >&2 16 | exit 1 17 | fi 18 | 19 | srcdir=`dirname "$0"` 20 | builddir=`pwd` 21 | 22 | echo "$0: running $ACLOCAL" 23 | (cd $srcdir && $ACLOCAL -I m4 --output="$builddir"/aclocal.m4) 24 | 25 | echo "$0: running $AUTOHEADER" 26 | [ -d src ] || mkdir src # Needed for autoheader to generate src/config.h.in. 27 | $AUTOHEADER $srcdir/configure.ac 28 | 29 | echo "$0: running $AUTOCONF" 30 | $AUTOCONF $srcdir/configure.ac > configure 31 | chmod +x configure 32 | 33 | if [ "$srcdir" = "." ]; then 34 | echo "Now run './configure' and then 'make'." 35 | else 36 | echo "Now run './configure --srcdir=$srcdir' and then 'make'." 37 | fi 38 | exit 0 39 | -------------------------------------------------------------------------------- /dmucs/dmucs/configure.scan: -------------------------------------------------------------------------------- 1 | # -*- Autoconf -*- 2 | # Process this file with autoconf to produce a configure script. 3 | 4 | AC_PREREQ(2.58) 5 | AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS) 6 | AC_CONFIG_SRCDIR([config.h.in]) 7 | AC_CONFIG_HEADER([config.h]) 8 | 9 | # Checks for programs. 10 | AC_PROG_CXX 11 | AC_PROG_CC 12 | AC_PROG_MAKE_SET 13 | 14 | # Checks for libraries. 15 | 16 | # Checks for header files. 17 | AC_HEADER_STDC 18 | AC_HEADER_SYS_WAIT 19 | AC_CHECK_HEADERS([arpa/inet.h fcntl.h netdb.h netinet/in.h stdlib.h string.h strings.h sys/socket.h sys/time.h unistd.h]) 20 | 21 | # Checks for typedefs, structures, and compiler characteristics. 22 | AC_HEADER_STDBOOL 23 | AC_C_CONST 24 | AC_C_INLINE 25 | AC_TYPE_PID_T 26 | AC_TYPE_SIZE_T 27 | AC_HEADER_TIME 28 | 29 | # Checks for library functions. 30 | AC_FUNC_ERROR_AT_LINE 31 | AC_FUNC_FORK 32 | AC_FUNC_MALLOC 33 | AC_FUNC_SELECT_ARGTYPES 34 | AC_TYPE_SIGNAL 35 | AC_FUNC_STAT 36 | AC_FUNC_VPRINTF 37 | AC_CHECK_FUNCS([atexit gethostbyaddr gethostbyaddr_r gethostbyname gethostname inet_ntoa memset putenv select socket strchr strerror strrchr strstr]) 38 | 39 | AC_CONFIG_FILES([COSMIC/EXAMPLES/Makefile 40 | COSMIC/EXE/Makefile 41 | COSMIC/Makefile 42 | Makefile]) 43 | AC_OUTPUT 44 | -------------------------------------------------------------------------------- /dmucs/dmucs/dmucs_dprop.h: -------------------------------------------------------------------------------- 1 | #ifndef _DMUCS_DPROP_H_ 2 | #define _DMUCS_DPROP_H_ 1 3 | 4 | /* 5 | * dmucs_dprop.h: the DMUCS Dprop definition. 6 | * 7 | * Copyright (C) 2005, 2006 Victor T. Norman 8 | * 9 | * This program is free software; you can redistribute it and/or modify it 10 | * under the terms of the GNU General Public License as published by the 11 | * Free Software Foundation; either version 2 of the License, or (at your 12 | * option) any later version. 13 | * 14 | * This program is distributed in the hope that it will be useful, but 15 | * WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 17 | * Public License for more details. 18 | * 19 | * You should have received a copy of the GNU General Public License along 20 | * with this program; if not, write to the Free Software Foundation, Inc., 21 | * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 22 | */ 23 | 24 | /* 25 | * A Dprop is a Dintinguishing Property of a host. The administrator of a 26 | * DMUCS installation may want to partition her entire set of compilation 27 | * hosts into multiple subsets, with each host in a subset having a common 28 | * distinguishing property -- e.g., each subset may: 29 | * 30 | * o have a common architecture -- Solaris vs. Linux vs. FreeBsd -- and 31 | * thus may be used for only certain compilations. 32 | * o be available to a certain set of users or a certain set of 33 | * compilations. 34 | */ 35 | 36 | #include 37 | 38 | typedef std::string DmucsDprop; 39 | 40 | const char *dprop2cstr(DmucsDprop d); 41 | 42 | const int DPROP_MAX_STRLEN = 4096; 43 | 44 | #endif 45 | -------------------------------------------------------------------------------- /dmucs/dmucs/dmucs_resolve.h: -------------------------------------------------------------------------------- 1 | #ifndef DMUCS_RESOLVE_H_ 2 | #define DMUCS_RESOLVE_H_ 3 | 4 | /* 5 | * dmucs_resolve.h: Helperfunction to reslove host names 6 | * 7 | * Copyright (C) 2006 Patrik Olesen 8 | * 9 | * This program is free software; you can redistribute it and/or modify it 10 | * under the terms of the GNU General Public License as published by the 11 | * Free Software Foundation; either version 2 of the License, or (at your 12 | * option) any later version. 13 | * 14 | * This program is distributed in the hope that it will be useful, but 15 | * WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 17 | * Public License for more details. 18 | * 19 | * You should have received a copy of the GNU General Public License along 20 | * with this program; if not, write to the Free Software Foundation, Inc., 21 | * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 22 | */ 23 | 24 | #include 25 | 26 | /** 27 | * Resolves the host name by using the gethostbyname versions that was specified 28 | * in the configuration script 29 | * \param resolvedName the resolved name will be put in this variable 30 | * \param ipAddr ip address to resolve 31 | * \return a referance to resolvedName 32 | */ 33 | const std::string& getHostName(std::string &resolvedName, const struct in_addr &ipAddr); 34 | 35 | #endif /*DMUCS_RESOLVE_H_*/ 36 | -------------------------------------------------------------------------------- /dmucs/dmucs/scripts/disable-host: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | DMUCS_DIR=/us/bfsbld/Compilers/distcc 4 | 5 | # 6 | # This script undoes what the enable-host script does. Specifically, it 7 | # kills the dmucs loadavg daemon, and, then sends a "remove host" message 8 | # to the dmucs server (note that a loadavg message from a machine adds 9 | # the host to the dmucs database if it is not already there, but lack of 10 | # periodic load average messages from a host does NOT remove the host from 11 | # the database -- that's why we have to send a "remove host" message. 12 | # 13 | # Then, this script kills the distccd daemons. 14 | # 15 | # Arguments: 1: the name of the machine on which the dmucs server is running. 16 | # 17 | 18 | if [ $# -eq 0 ] ; then 19 | echo "Usage: $0 " 20 | exit 21 | fi 22 | 23 | server=$1 24 | 25 | echo "Stopping the loadavg daemon" 26 | /bin/ps -ef | /bin/grep 'loadavg' | /bin/grep -v grep | /usr/bin/awk '{print $2}' | /usr/bin/xargs /bin/kill 27 | echo "done" 28 | 29 | echo "Removing this host from the dmucs server" 30 | $DMUCS_DIR/bin/removehost -s $server 31 | echo "done" 32 | 33 | echo "Stopping the distccd daemons" 34 | pidfile=$DMUCS_DIR/pids/`hostname`.pid 35 | /bin/kill -HUP `cat $pidfile` 36 | echo "done" 37 | -------------------------------------------------------------------------------- /dmucs/dmucs/scripts/enable-host: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | 4 | DMUCS_DIR=/us/bfsbld/Compilers/distcc 5 | 6 | 7 | # 8 | # This shell script simply starts up the distccd daemons and the 9 | # loadavg daemon on this host. The only argument to it is the location of 10 | # the dmucs server ('dmucs'). 11 | # 12 | 13 | 14 | if [ $# -eq 0 ] ; then 15 | echo "Usage: $0 " 16 | exit 17 | fi 18 | 19 | server=$1 20 | 21 | echo "Starting distcc daemons" 22 | logfile=$DMUCS_DIR/log/`hostname`.log 23 | pidfile=$DMUCS_DIR/pids/`hostname`.pid 24 | 25 | 26 | # 27 | # NOTE NOTE NOTE: you probably want to change the value of the "--allow" 28 | # argument to something more restrictive. See the distcc documentation for 29 | # more information. 30 | # 31 | $DMUCS_DIR/bin/distccd --daemon --log-file=$logfile --pid-file $DMUCS_DIR/pids/`hostname`.pid --allow 0.0.0.0/0 32 | 33 | echo "done: daemons writing to log file" $logfile 34 | echo " master daemon pid" `cat $pidfile` 35 | 36 | echo "Starting loadavg daemon, communicating with $server" 37 | $DMUCS_DIR/bin/loadavg -s $server & 38 | echo "done" 39 | 40 | -------------------------------------------------------------------------------- /dmucs/dmucs/scripts/watch-ssaver: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | 3 | my $numArgs = @ARGV; 4 | my $host = ""; 5 | 6 | if ($numArgs == 1) { 7 | $host = $ARGV[0]; 8 | } 9 | 10 | my $blanked = 0; 11 | open (IN, "xscreensaver-command -watch |"); 12 | while () { 13 | if (m/^(BLANK|LOCK)/) { 14 | if (!$blanked) { 15 | if ($host == "") { 16 | system("/us/bfsbld/Compilers/distcc/bin/enable-host"); 17 | } else { 18 | system("/us/bfsbld/Compilers/distcc/bin/enable-host $host"); 19 | } 20 | $blanked = 1; 21 | } 22 | } elsif (m/^UNBLANK/) { 23 | if ($host == "") { 24 | system("/us/bfsbld/Compilers/distcc/bin/disable-host"); 25 | } else { 26 | system("/us/bfsbld/Compilers/distcc/bin/disable-host $host"); 27 | } 28 | $blanked = 0; 29 | } 30 | } 31 | --------------------------------------------------------------------------------