diff --git a/devel/distcc/Makefile b/devel/distcc/Makefile index afaed671d281..0cb1029f6f72 100644 --- a/devel/distcc/Makefile +++ b/devel/distcc/Makefile @@ -1,152 +1,111 @@ PORTNAME= distcc DISTVERSIONPREFIX= v DISTVERSION= 3.4 -PORTREVISION= 1 -CATEGORIES= devel +PORTREVISION= 2 +CATEGORIES= devel python -MAINTAINER= ports@FreeBSD.org -COMMENT= Distribute compilation of C(++) code across machines on a network +MAINTAINER= laurent.chardon@gmail.com +COMMENT= Distribute compilation of C(++) code across machines ${${FLAVOR}_COMMENT} WWW= https://distcc.github.io/ LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/COPYING BUILD_DEPENDS= ${LOCALBASE}/lib/libiberty.a:devel/gnulibiberty LIB_DEPENDS= libpopt.so:devel/popt +FLAVORS= default gtk +FLAVOR?= ${FLAVORS:[1]} +default_COMMENT= (text monitor) +gtk_PKGNAMESUFFIX= -gtk +gtk_DESCR= ${.CURDIR}/pkg-descr.gtk +gtk_COMMENT= (gtk monitor) + USES= alias autoreconf cpe gmake libtool localbase pkgconfig USE_GITHUB= yes USE_RC_SUBR= distccd GNU_CONFIGURE= yes GNU_CONFIGURE_MANPREFIX=${PREFIX}/share CONFIGURE_ARGS= --disable-Werror \ --sysconfdir=${ETCDIR} \ CC="${CC}" \ PTHREAD_CC="${CC}" TEST_TARGET= check ETCDIR= ${PREFIX}/etc SUB_FILES= pkg-message SUB_LIST= DISTCCD_PIDFILE=/var/run/distccd.pid USERS= distcc GROUPS= distcc -PLIST_FILES= ${_BIN_FILES:S|^|bin/|} \ - ${_CONFIG_FILES:S|^|${ETCDIR}/${PORTNAME}/|} \ - ${_DISTCC_COMPILERS:S|^|${CCLINKDIR}/|} \ - ${_MAN_FILES:S|^|share/man/man1/|:S|$|.gz|} \ - ${_SBIN_FILES:S|^|sbin/|} \ - etc/default/distcc - -OPTIONS_DEFINE= AVAHI CLANGLINK DOCS IPV6 LLVMLINK PUMP GUI +OPTIONS_DEFINE= AVAHI CLANGLINK DOCS IPV6 LLVMLINK PUMP +OPTIONS_DEFAULT= CLANGLINK PUMP +OPTIONS_SUB= yes CLANGLINK_DESC= Create clang compiler links if clang is installed -GUI_DESC= Build GUI distcc monitor LLVMLINK_DESC= Create llvm compiler links if llvm is installed PUMP_DESC= Distribute compilation as well as preprocessing to distcc servers AVAHI_LIB_DEPENDS= libavahi-client.so:net/avahi-app AVAHI_CONFIGURE_WITH= avahi -DOCS_PLIST_FILES+= ${_DOC_FILES:S|^|${DOCSDIR_REL}/|} \ - ${_README_FILES:S|^|${DOCSDIR_REL}/|} -GUI_USES= gnome -GUI_USE= GNOME=gtk20 -GUI_CONFIGURE_WITH= gtk IPV6_CONFIGURE_ENABLE= rfc2553 +PUMP_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} PUMP_USES= python +PUMP_USE_PYTHON= flavors PUMP_CONFIGURE_ENABLE= pump-mode -PUMP_PLIST_FILES= ${PYTHON_SITELIBDIR}/include_server-${PORTVERSION}-py${PYTHON_VER}.egg-info \ - ${PYTHON_SITELIBDIR}/include_server/basics.py \ - ${PYTHON_SITELIBDIR}/include_server/basics_test.py \ - ${PYTHON_SITELIBDIR}/include_server/c_extensions_test.py \ - ${PYTHON_SITELIBDIR}/include_server/cache_basics.py \ - ${PYTHON_SITELIBDIR}/include_server/compiler_defaults.py \ - ${PYTHON_SITELIBDIR}/include_server/compress_files.py \ - ${PYTHON_SITELIBDIR}/include_server/distcc_pump_c_extensions.cpython-${PYTHON_SUFFIX}.so \ - ${PYTHON_SITELIBDIR}/include_server/include_analyzer.py \ - ${PYTHON_SITELIBDIR}/include_server/include_analyzer_memoizing_node.py \ - ${PYTHON_SITELIBDIR}/include_server/include_analyzer_memoizing_node_test.py \ - ${PYTHON_SITELIBDIR}/include_server/include_analyzer_test.py \ - ${PYTHON_SITELIBDIR}/include_server/include_server.py \ - ${PYTHON_SITELIBDIR}/include_server/include_server_test.py \ - ${PYTHON_SITELIBDIR}/include_server/macro_eval.py \ - ${PYTHON_SITELIBDIR}/include_server/macro_eval_test.py \ - ${PYTHON_SITELIBDIR}/include_server/mirror_path.py \ - ${PYTHON_SITELIBDIR}/include_server/mirror_path_test.py \ - ${PYTHON_SITELIBDIR}/include_server/parse_command.py \ - ${PYTHON_SITELIBDIR}/include_server/parse_command_test.py \ - ${PYTHON_SITELIBDIR}/include_server/parse_file.py \ - ${PYTHON_SITELIBDIR}/include_server/parse_file_test.py \ - ${PYTHON_SITELIBDIR}/include_server/run.py \ - ${PYTHON_SITELIBDIR}/include_server/setup.py \ - ${PYTHON_SITELIBDIR}/include_server/statistics.py # Leave CCLINKDIR without a leading underscore as it is a variable, which could # be set by the user. CCLINKDIR?= libexec/distcc _DISTCC_COMPILERS= CC c++ cc -_CONFIG_FILES= clients.allow commands.allow.sh hosts -_BIN_FILES= distcc distccmon-text lsdistcc -_DOC_FILES= protocol-1.txt protocol-2.txt protocol-3.txt \ - protocol-3-impl.txt protocol-gssapi.txt reporting-bugs.txt \ - status-1.txt survey.txt -_MAN_FILES= distcc.1 distccd.1 distccmon-text.1 include_server.1 lsdistcc.1 \ - pump.1 -_README_FILES= AUTHORS COPYING INSTALL NEWS README README.pump TODO -_SBIN_FILES= distccd +GNU_COMPILERS= 10 11 12 13 14 15 6 +_DISTCC_COMPILERS+= gcc g++ ${GNU_COMPILERS:S|^|g++|} \ + ${GNU_COMPILERS:S|^|gcc|} \ + ${EXTRA_COMPILERS} .include +.if ${FLAVOR} == gtk +USES+= gnome +USE_GNOME= gtk30 +CONFIGURE_ARGS+= --with-gtk +PLIST_SUB+= GTK="" +.else +PLIST_SUB+= GTK="@comment " +.endif + +.include + +.if ${PORT_OPTIONS:MPUMP} +.if ${PYTHON_VER} != ${PYTHON_DEFAULT} +PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} +.endif +.endif + .if ${PORT_OPTIONS:MCLANGLINK} -CLANG_COMPILERS= -devel 31 32 33 34 35 36 37 38 39 +CLANG_COMPILERS= -devel 11 12 13 14 15 16 17 18 19 _DISTCC_COMPILERS+= clang++ clang ${CLANG_COMPILERS:S|^|clang++|} \ ${CLANG_COMPILERS:S|^|clang|} .endif -GNU_COMPILERS= 34 42 43 44 45 46 47 48 49 5 -_DISTCC_COMPILERS+= gcc g++ ${GNU_COMPILERS:S|^|g++|} \ - ${GNU_COMPILERS:S|^|gcc|} -.if ${ARCH} == "i386" -_DISTCC_COMPILERS+= icc icpc -.endif .if ${PORT_OPTIONS:MLLVMLINK} _DISTCC_COMPILERS+= llvm-c++ llvm-g++ llvm-gcc .endif -_DISTCC_COMPILERS+= ${EXTRA_COMPILERS} - -.if ${PORT_OPTIONS:MGTUI} -PKGNAMESUFFIX= -gtk -_BIN_FILES+= distccmon-gnome -PLIST_FILES+= ${DESKTOPDIR}/distccmon-gnome.desktop \ - share/pixmaps/distccmon-gnome-icon.png -.endif - -post-patch-GUI-on: - ${REINPLACE_CMD} -e 's|PKGDATADIR "|"${PREFIX}/share/pixmaps|' \ - ${WRKSRC}/src/mon-gnome.c - -.if ${PORT_OPTIONS:MPUMP} -_BIN_FILES+= pump -.endif post-install: @${MKDIR} ${STAGEDIR}${PREFIX}/${CCLINKDIR} .for link in ${_DISTCC_COMPILERS} @${LN} ${STAGEDIR}${PREFIX}/bin/distcc \ ${STAGEDIR}${PREFIX}/${CCLINKDIR}/${link} .endfor ${RM} -rf ${STAGEDIR}${PYTHON_SITELIBDIR}/*/__pycache__ ${RM} -rf ${STAGEDIR}${PREFIX}/${DOCSDIR_REL}/example post-install-PUMP-on: ${STRIP_CMD} ${STAGEDIR}${PYTHON_SITELIBDIR}/include_server/distcc_pump_c_extensions.cpython-${PYTHON_SUFFIX}.so -post-install-PUMP-off: - ${RM} ${STAGEDIR}${PUMP_PLIST_FILES} - ${RM} ${STAGEDIR}/bin/pump - -.include +.include diff --git a/devel/distcc/files/patch-Makefile.in b/devel/distcc/files/patch-Makefile.in index 90ab0de63746..6507eec42647 100644 --- a/devel/distcc/files/patch-Makefile.in +++ b/devel/distcc/files/patch-Makefile.in @@ -1,26 +1,26 @@ ---- Makefile.in.orig 2019-08-23 16:46:20 UTC +--- Makefile.in.orig 2021-05-11 17:26:29 UTC +++ Makefile.in -@@ -184,7 +184,7 @@ include_server_PY = \ +@@ -185,7 +185,7 @@ include_server_SRC = \ include_server_SRC = \ include_server/c_extensions/distcc_pump_c_extensions_module.c -update_distcc_symlinks_PY = update-distcc-symlinks.py +update_distcc_symlinks_PY = # These are included in the distribution but not installed anywhere. dist_extra = \ -@@ -415,13 +415,12 @@ popt_EXTRA = popt/README.popt popt/.stamp-conf.in +@@ -416,13 +416,12 @@ bin_PROGRAMS = \ bin_PROGRAMS = \ distcc@EXEEXT@ \ - distccd@EXEEXT@ \ distccmon-text@EXEEXT@ \ lsdistcc@EXEEXT@ \ @GNOME_BIN@ sbin_PROGRAMS = \ - update-distcc-symlinks + distccd@EXEEXT@ \ check_PROGRAMS = \ h_argvtostr@EXEEXT@ \ diff --git a/devel/distcc/files/patch-src_daemon.c b/devel/distcc/files/patch-src_daemon.c new file mode 100644 index 000000000000..c8ea0cd39f8b --- /dev/null +++ b/devel/distcc/files/patch-src_daemon.c @@ -0,0 +1,11 @@ +--- src/daemon.c.orig 2024-09-20 02:11:57 UTC ++++ src/daemon.c +@@ -160,7 +160,7 @@ static void dcc_warn_masquerade_whitelist(void) { + " --enable-tcp-insecure. To set up masquerade automatically" \ + " run update-distcc-symlinks."; + +- e = opendir("/usr/lib/distcc"); ++ e = opendir("/usr/local/libexec/distcc"); + d = opendir(LIBDIR "/distcc"); + if (!e && !d) { + rs_log_crit(LIBDIR "/distcc not found. %s", warn); diff --git a/devel/distcc/pkg-descr b/devel/distcc/pkg-descr index 462cae5bfa89..b6a2156d2814 100644 --- a/devel/distcc/pkg-descr +++ b/devel/distcc/pkg-descr @@ -1,19 +1,18 @@ distcc is a program to distribute compilation of C code across several machines on a network. distcc should always generate the same results as a local compile, is simple to install and use, and is often significantly faster than a local compile. Unlike other distributed build systems, distcc does not require all machines to share a filesystem, have synchronized clocks, or to have the same libraries or header files installed. Machines can be running different operating systems, as long as they have compatible binary formats or cross-compilers. distcc sends the complete preprocessed source code across the network for each job, so all it requires of the volunteer machines is that they be running the distccd daemon, and that they have an appropriate compiler installed. -This version also comes with a text-based as well as a GNOME-based monitor -to inspect the load on the cluster, and how it is distributed among the -various distcc nodes. +This package comes with a text-based monitor to inspect the load on +the cluster, and how it is distributed among the various distcc nodes. diff --git a/devel/distcc/pkg-descr b/devel/distcc/pkg-descr.gtk similarity index 82% copy from devel/distcc/pkg-descr copy to devel/distcc/pkg-descr.gtk index 462cae5bfa89..5b27e4e63337 100644 --- a/devel/distcc/pkg-descr +++ b/devel/distcc/pkg-descr.gtk @@ -1,19 +1,19 @@ distcc is a program to distribute compilation of C code across several machines on a network. distcc should always generate the same results as a local compile, is simple to install and use, and is often significantly faster than a local compile. Unlike other distributed build systems, distcc does not require all machines to share a filesystem, have synchronized clocks, or to have the same libraries or header files installed. Machines can be running different operating systems, as long as they have compatible binary formats or cross-compilers. distcc sends the complete preprocessed source code across the network for each job, so all it requires of the volunteer machines is that they be running the distccd daemon, and that they have an appropriate compiler installed. -This version also comes with a text-based as well as a GNOME-based monitor -to inspect the load on the cluster, and how it is distributed among the -various distcc nodes. +This package contains the GTK-based monitor for distcc to inspect +the load on the cluster, and how it is distributed among the various +distcc nodes. diff --git a/devel/distcc/pkg-plist b/devel/distcc/pkg-plist new file mode 100644 index 000000000000..991bd07e3b48 --- /dev/null +++ b/devel/distcc/pkg-plist @@ -0,0 +1,105 @@ +bin/distcc +%%GTK%%bin/distccmon-gnome +bin/distccmon-text +bin/lsdistcc +%%PUMP%%bin/pump +%%ETCDIR%%/default/distcc +%%ETCDIR%%/distcc/clients.allow +%%ETCDIR%%/distcc/commands.allow.sh +%%ETCDIR%%/distcc/hosts +%%PUMP%%%%PYTHON_SITELIBDIR%%/include_server-3.4-py%%PYTHON_VER%%.egg-info/PKG-INFO +%%PUMP%%%%PYTHON_SITELIBDIR%%/include_server-3.4-py%%PYTHON_VER%%.egg-info/SOURCES.txt +%%PUMP%%%%PYTHON_SITELIBDIR%%/include_server-3.4-py%%PYTHON_VER%%.egg-info/dependency_links.txt +%%PUMP%%%%PYTHON_SITELIBDIR%%/include_server-3.4-py%%PYTHON_VER%%.egg-info/top_level.txt +%%PUMP%%%%PYTHON_SITELIBDIR%%/include_server/basics.py +%%PUMP%%%%PYTHON_SITELIBDIR%%/include_server/basics_test.py +%%PUMP%%%%PYTHON_SITELIBDIR%%/include_server/c_extensions_test.py +%%PUMP%%%%PYTHON_SITELIBDIR%%/include_server/cache_basics.py +%%PUMP%%%%PYTHON_SITELIBDIR%%/include_server/compiler_defaults.py +%%PUMP%%%%PYTHON_SITELIBDIR%%/include_server/compress_files.py +%%PUMP%%%%PYTHON_SITELIBDIR%%/include_server/distcc_pump_c_extensions%%PYTHON_EXT_SUFFIX%%.so +%%PUMP%%%%PYTHON_SITELIBDIR%%/include_server/include_analyzer.py +%%PUMP%%%%PYTHON_SITELIBDIR%%/include_server/include_analyzer_memoizing_node.py +%%PUMP%%%%PYTHON_SITELIBDIR%%/include_server/include_analyzer_memoizing_node_test.py +%%PUMP%%%%PYTHON_SITELIBDIR%%/include_server/include_analyzer_test.py +%%PUMP%%%%PYTHON_SITELIBDIR%%/include_server/include_server.py +%%PUMP%%%%PYTHON_SITELIBDIR%%/include_server/include_server_test.py +%%PUMP%%%%PYTHON_SITELIBDIR%%/include_server/macro_eval.py +%%PUMP%%%%PYTHON_SITELIBDIR%%/include_server/macro_eval_test.py +%%PUMP%%%%PYTHON_SITELIBDIR%%/include_server/mirror_path.py +%%PUMP%%%%PYTHON_SITELIBDIR%%/include_server/mirror_path_test.py +%%PUMP%%%%PYTHON_SITELIBDIR%%/include_server/parse_command.py +%%PUMP%%%%PYTHON_SITELIBDIR%%/include_server/parse_command_test.py +%%PUMP%%%%PYTHON_SITELIBDIR%%/include_server/parse_file.py +%%PUMP%%%%PYTHON_SITELIBDIR%%/include_server/parse_file_test.py +%%PUMP%%%%PYTHON_SITELIBDIR%%/include_server/run.py +%%PUMP%%%%PYTHON_SITELIBDIR%%/include_server/setup.py +%%PUMP%%%%PYTHON_SITELIBDIR%%/include_server/statistics.py +libexec/distcc/CC +libexec/distcc/c++ +libexec/distcc/cc +%%CLANGLINK%%libexec/distcc/clang +%%CLANGLINK%%libexec/distcc/clang++ +%%CLANGLINK%%libexec/distcc/clang++-devel +%%CLANGLINK%%libexec/distcc/clang++11 +%%CLANGLINK%%libexec/distcc/clang++12 +%%CLANGLINK%%libexec/distcc/clang++13 +%%CLANGLINK%%libexec/distcc/clang++14 +%%CLANGLINK%%libexec/distcc/clang++15 +%%CLANGLINK%%libexec/distcc/clang++16 +%%CLANGLINK%%libexec/distcc/clang++17 +%%CLANGLINK%%libexec/distcc/clang++18 +%%CLANGLINK%%libexec/distcc/clang++19 +%%CLANGLINK%%libexec/distcc/clang-devel +%%CLANGLINK%%libexec/distcc/clang11 +%%CLANGLINK%%libexec/distcc/clang12 +%%CLANGLINK%%libexec/distcc/clang13 +%%CLANGLINK%%libexec/distcc/clang14 +%%CLANGLINK%%libexec/distcc/clang15 +%%CLANGLINK%%libexec/distcc/clang16 +%%CLANGLINK%%libexec/distcc/clang17 +%%CLANGLINK%%libexec/distcc/clang18 +%%CLANGLINK%%libexec/distcc/clang19 +libexec/distcc/g++ +libexec/distcc/g++10 +libexec/distcc/g++11 +libexec/distcc/g++12 +libexec/distcc/g++13 +libexec/distcc/g++14 +libexec/distcc/g++15 +libexec/distcc/g++6 +libexec/distcc/gcc +libexec/distcc/gcc10 +libexec/distcc/gcc11 +libexec/distcc/gcc12 +libexec/distcc/gcc13 +libexec/distcc/gcc14 +libexec/distcc/gcc15 +libexec/distcc/gcc6 +%%LLVMLINK%%libexec/distcc/llvm-c++ +%%LLVMLINK%%libexec/distcc/llvm-g++ +%%LLVMLINK%%libexec/distcc/llvm-gcc +sbin/distccd +%%GTK%%share/applications/distccmon-gnome.desktop +%%PORTDOCS%%%%DOCSDIR%%/AUTHORS +%%PORTDOCS%%%%DOCSDIR%%/COPYING +%%PORTDOCS%%%%DOCSDIR%%/INSTALL +%%PORTDOCS%%%%DOCSDIR%%/NEWS +%%PORTDOCS%%%%DOCSDIR%%/README +%%PORTDOCS%%%%DOCSDIR%%/README.pump +%%PORTDOCS%%%%DOCSDIR%%/TODO +%%PORTDOCS%%%%DOCSDIR%%/protocol-1.txt +%%PORTDOCS%%%%DOCSDIR%%/protocol-2.txt +%%PORTDOCS%%%%DOCSDIR%%/protocol-3-impl.txt +%%PORTDOCS%%%%DOCSDIR%%/protocol-3.txt +%%PORTDOCS%%%%DOCSDIR%%/protocol-gssapi.txt +%%PORTDOCS%%%%DOCSDIR%%/reporting-bugs.txt +%%PORTDOCS%%%%DOCSDIR%%/status-1.txt +%%PORTDOCS%%%%DOCSDIR%%/survey.txt +share/man/man1/distcc.1.gz +share/man/man1/distccd.1.gz +share/man/man1/distccmon-text.1.gz +share/man/man1/include_server.1.gz +share/man/man1/lsdistcc.1.gz +share/man/man1/pump.1.gz +%%GTK%%share/pixmaps/distccmon-gnome.png