From 8d1e76d3b543b9023ebb0280cfd90188dc2133c8 Mon Sep 17 00:00:00 2001 From: voidframe Date: Tue, 14 May 2024 00:15:26 +0200 Subject: [PATCH 1/4] new package: icecream icecc - distributed compiler with a central scheduler to share build load --- srcpkgs/icecc/files/icecc-scheduler/run | 27 +++++++++++ srcpkgs/icecc/files/icecc.conf | 63 +++++++++++++++++++++++++ srcpkgs/icecc/files/iceccd/run | 58 +++++++++++++++++++++++ srcpkgs/icecc/template | 21 +++++++++ 4 files changed, 169 insertions(+) create mode 100644 srcpkgs/icecc/files/icecc-scheduler/run create mode 100644 srcpkgs/icecc/files/icecc.conf create mode 100755 srcpkgs/icecc/files/iceccd/run create mode 100644 srcpkgs/icecc/template diff --git a/srcpkgs/icecc/files/icecc-scheduler/run b/srcpkgs/icecc/files/icecc-scheduler/run new file mode 100644 index 00000000000000..f7d0d08f809e02 --- /dev/null +++ b/srcpkgs/icecc/files/icecc-scheduler/run @@ -0,0 +1,27 @@ +#!/bin/sh +exec 2>&1 + + +SCHEDULER=/usr/sbin/icecc-scheduler +CONFIGFILE=/etc/icecc/icecc.conf + +# Read configuration files +[ -r $CONFIGFILE ] && . $CONFIGFILE + +test -x $SCHEDULER || exit 0 + + +netname= +if test -n "$ICECC_NETNAME"; then + netname="-n $ICECC_NETNAME" +fi + +if test -z "$ICECC_SCHEDULER_LOG_FILE"; then + ICECC_SCHEDULER_LOG_FILE="/var/log/icecc_scheduler" +fi + +logfile="-l $ICECC_SCHEDULER_LOG_FILE" +: > $ICECC_SCHEDULER_LOG_FILE +chown icecc $ICECC_SCHEDULER_LOG_FILE +exec $SCHEDULER -u icecc -d $logfile $netname 2>&1 + diff --git a/srcpkgs/icecc/files/icecc.conf b/srcpkgs/icecc/files/icecc.conf new file mode 100644 index 00000000000000..3c88ca1a5e319f --- /dev/null +++ b/srcpkgs/icecc/files/icecc.conf @@ -0,0 +1,63 @@ +# +# Nice level of running compilers +# +# ICECC_NICE_LEVEL="5" +ICECC_NICE_LEVEL="5" + +# +# icecc daemon log file +# +# ICECC_LOG_FILE="/var/log/iceccd.log" +ICECC_LOG_FILE="/var/log/iceccd.log" + +# +# Identification for the network the scheduler and daemon run on. +# You can have several distinct icecc networks in the same LAN +# for whatever reason. +# +# ICECC_NETNAME="" +ICECC_NETNAME="" + +# +# You can overwrite here the number of jobs to run in parallel. Per +# default this depends on the number of (virtual) CPUs installed. +# +# Note: a value of "0" is actually interpreted as "1", however it +# also sets ICECC_ALLOW_REMOTE="no". +# +# ICECC_MAX_JOBS="" +ICECC_MAX_JOBS="" + +# +# Specifies whether jobs submitted by other nodes are allowed to run on +# this one. +# +# ICECC_ALLOW_REMOTE="yes" +ICECC_ALLOW_REMOTE="yes" + +# +# This is the directory where the icecc daemon stores the environments +# it compiles in. In a big network this can grow quite a bit, so use some +# path if your /tmp is small - but the user icecc has to write to it. +# +# ICECC_BASEDIR="/var/cache/icecc" +ICECC_BASEDIR="/var/cache/icecc" + +# +# icecc scheduler log file +# +# ICECC_SCHEDULER_LOG_FILE="/var/log/icecc_scheduler.log" +ICECC_SCHEDULER_LOG_FILE="/var/log/icecc_scheduler.log" + +# +# If the daemon can't find the scheduler by broadcast (e.g. because +# of a firewall) you can specify it. +# +# ICECC_SCHEDULER_HOST="" +ICECC_SCHEDULER_HOST="" + +# +# Option to set cache limit of icecc daemon in MB. +# +# ICECC_CACHE_LIMIT="" +ICECC_CACHE_LIMIT="" diff --git a/srcpkgs/icecc/files/iceccd/run b/srcpkgs/icecc/files/iceccd/run new file mode 100755 index 00000000000000..2796376a7342c2 --- /dev/null +++ b/srcpkgs/icecc/files/iceccd/run @@ -0,0 +1,58 @@ +#!/bin/sh +exec 2>&1 + +DAEMON=/usr/sbin/iceccd +CONFIGFILE=/etc/icecc/icecc.conf + +# Read configuration files +[ -r $CONFIGFILE ] && . $CONFIGFILE + +test -x $DAEMON || exit 0 + +netname= +if test -n "$ICECC_NETNAME"; then + netname="-n $ICECC_NETNAME" +fi + +logfile="" +if test -n "$ICECC_LOG_FILE"; then + logfile="-l $ICECC_LOG_FILE" +fi + +nice= +if test -n "$ICECC_NICE_LEVEL"; then + nice="--nice $ICECC_NICE_LEVEL" +fi + +scheduler= +if test -n "$ICECC_SCHEDULER_HOST"; then + scheduler="-s $ICECC_SCHEDULER_HOST" +fi + +basedir= +if test -n "$ICECC_BASEDIR"; then + basedir="-b $ICECC_BASEDIR" +fi + +noremote= +if test "$ICECC_ALLOW_REMOTE" = "no"; then + noremote="--no-remote" +fi + +maxjobs= +if test -n "$ICECC_MAX_JOBS"; then + if test "$ICECC_MAX_JOBS" -eq 0; then + maxjobs="-m 1" + noremote="--no-remote" + else + maxjobs="-m $ICECC_MAX_JOBS" + fi +fi + +cachelimit= +if test -n "$ICECC_CACHE_LIMIT"; then + cachelimit="--cache-limit $ICECC_CACHE_LIMIT" +fi + +exec $DAEMON -d $logfile $nice $scheduler $netname -u icecc $basedir $maxjobs $noremote $cachelimit 2>&1 + diff --git a/srcpkgs/icecc/template b/srcpkgs/icecc/template new file mode 100644 index 00000000000000..e46796339e3806 --- /dev/null +++ b/srcpkgs/icecc/template @@ -0,0 +1,21 @@ +# Template file for 'wir' +pkgname=icecc +version=1.4.0 +version_family=1.4 +revision=2 +build_style=gnu-configure +short_desc="Distributed compiler with a central scheduler to share build load" +maintainer="voidframe.com " +license="GPL-2.0-only" +homepage="https://github.com/icecc/icecream" +distfiles="https://github.com/icecc/icecream/releases/download/${version_family}/icecc-${version}.tar.xz" +checksum=7d750e8b866215f8b8e93404a75a8d5a9b1c1a675565af847e4d24964ec7d66b +#make_dirs="/etc/icecc 0700 root root" +hostmakedepends="pkg-config libcap-ng-devel lzo-devel libzstd-devel libarchive-devel" +system_accounts=icecc +make_dirs="/var/cache/icecc 0700 icecc icecc" +post_install() { + vinstall ${FILESDIR}/icecc.conf 644 /etc/ + vsv iceccd + vsv icecc-scheduler +} From df2f815c2e7bb2a51d96b6b4fffe44e43b551560 Mon Sep 17 00:00:00 2001 From: voidframe Date: Tue, 14 May 2024 00:43:23 +0200 Subject: [PATCH 2/4] xlint --- srcpkgs/icecc/files/icecc-scheduler/run | 4 ++-- srcpkgs/icecc/files/iceccd/run | 2 +- srcpkgs/icecc/template | 11 +++++------ 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/srcpkgs/icecc/files/icecc-scheduler/run b/srcpkgs/icecc/files/icecc-scheduler/run index f7d0d08f809e02..a39fea47d301c7 100644 --- a/srcpkgs/icecc/files/icecc-scheduler/run +++ b/srcpkgs/icecc/files/icecc-scheduler/run @@ -22,6 +22,6 @@ fi logfile="-l $ICECC_SCHEDULER_LOG_FILE" : > $ICECC_SCHEDULER_LOG_FILE -chown icecc $ICECC_SCHEDULER_LOG_FILE -exec $SCHEDULER -u icecc -d $logfile $netname 2>&1 +chown _icecc $ICECC_SCHEDULER_LOG_FILE +exec $SCHEDULER -u _icecc -d $logfile $netname 2>&1 diff --git a/srcpkgs/icecc/files/iceccd/run b/srcpkgs/icecc/files/iceccd/run index 2796376a7342c2..dfe6ed8daeacba 100755 --- a/srcpkgs/icecc/files/iceccd/run +++ b/srcpkgs/icecc/files/iceccd/run @@ -54,5 +54,5 @@ if test -n "$ICECC_CACHE_LIMIT"; then cachelimit="--cache-limit $ICECC_CACHE_LIMIT" fi -exec $DAEMON -d $logfile $nice $scheduler $netname -u icecc $basedir $maxjobs $noremote $cachelimit 2>&1 +exec $DAEMON -d $logfile $nice $scheduler $netname -u _icecc $basedir $maxjobs $noremote $cachelimit 2>&1 diff --git a/srcpkgs/icecc/template b/srcpkgs/icecc/template index e46796339e3806..8526c6baff71fe 100644 --- a/srcpkgs/icecc/template +++ b/srcpkgs/icecc/template @@ -1,19 +1,18 @@ -# Template file for 'wir' +# Template file for 'icecc' pkgname=icecc version=1.4.0 -version_family=1.4 revision=2 build_style=gnu-configure +hostmakedepends="pkg-config libcap-ng-devel lzo-devel libzstd-devel libarchive-devel" short_desc="Distributed compiler with a central scheduler to share build load" maintainer="voidframe.com " license="GPL-2.0-only" homepage="https://github.com/icecc/icecream" distfiles="https://github.com/icecc/icecream/releases/download/${version_family}/icecc-${version}.tar.xz" checksum=7d750e8b866215f8b8e93404a75a8d5a9b1c1a675565af847e4d24964ec7d66b -#make_dirs="/etc/icecc 0700 root root" -hostmakedepends="pkg-config libcap-ng-devel lzo-devel libzstd-devel libarchive-devel" -system_accounts=icecc -make_dirs="/var/cache/icecc 0700 icecc icecc" +version_family=1.4 +system_accounts=_icecc +make_dirs="/var/cache/icecc 0700 _icecc _icecc" post_install() { vinstall ${FILESDIR}/icecc.conf 644 /etc/ vsv iceccd From 00a8d02170546636b043ffcd6c2fbcb5a4ae6804 Mon Sep 17 00:00:00 2001 From: voidframe Date: Tue, 14 May 2024 00:51:39 +0200 Subject: [PATCH 3/4] order of variables matters --- srcpkgs/icecc/template | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/srcpkgs/icecc/template b/srcpkgs/icecc/template index 8526c6baff71fe..d72fae7b4c88f7 100644 --- a/srcpkgs/icecc/template +++ b/srcpkgs/icecc/template @@ -8,9 +8,8 @@ short_desc="Distributed compiler with a central scheduler to share build load" maintainer="voidframe.com " license="GPL-2.0-only" homepage="https://github.com/icecc/icecream" -distfiles="https://github.com/icecc/icecream/releases/download/${version_family}/icecc-${version}.tar.xz" +distfiles="https://github.com/icecc/icecream/releases/download/1.4/icecc-${version}.tar.xz" checksum=7d750e8b866215f8b8e93404a75a8d5a9b1c1a675565af847e4d24964ec7d66b -version_family=1.4 system_accounts=_icecc make_dirs="/var/cache/icecc 0700 _icecc _icecc" post_install() { From 7a23722599642f8bc91cce7ca4612f53aa58dd87 Mon Sep 17 00:00:00 2001 From: voidframe Date: Wed, 15 May 2024 21:24:08 +0200 Subject: [PATCH 4/4] revision: 1 --- srcpkgs/icecc/template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/srcpkgs/icecc/template b/srcpkgs/icecc/template index d72fae7b4c88f7..d54f90d993e6c7 100644 --- a/srcpkgs/icecc/template +++ b/srcpkgs/icecc/template @@ -1,7 +1,7 @@ # Template file for 'icecc' pkgname=icecc version=1.4.0 -revision=2 +revision=1 build_style=gnu-configure hostmakedepends="pkg-config libcap-ng-devel lzo-devel libzstd-devel libarchive-devel" short_desc="Distributed compiler with a central scheduler to share build load"