Package Details: icecream 1.3-1

Git Clone URL: https://aur.archlinux.org/icecream.git (read-only)
Package Base: icecream
Description: takes compile jobs from your build and distributes it to remote machines allowing a parallel build on several machines.
Upstream URL: http://en.opensuse.org/Icecream
Licenses: GPL2
Conflicts: icecream-git
Provides: icecream
Submitter: uwolfer
Maintainer: bwidawsk
Last Packager: bwidawsk
Votes: 33
Popularity: 0.436177
First Submitted: 2006-10-11 20:48
Last Updated: 2019-09-25 20:08

Latest Comments

« First ‹ Previous 1 2 3 4 5 Next › Last »

ecloud commented on 2015-01-14 11:43

It's confusing that the user name is different between icecream-git and this build, and this one is not managing it well. The first time I installed this (tried to "upgrade" from icecream-git) it failed to change /etc/passwd, so I edited it myself to ensure that both users exist. Set the home dir to /tmp (why would it have /home/icecc given that directory does not exist?)

Then had to modify /usr/lib/icecream/icecream-schedulerd:

- /usr/lib/icecream/sbin/scheduler -d $netname $logfile &>/dev/null
+ /usr/lib/icecream/sbin/icecc-scheduler -d $netname $logfile &>/dev/null

If the user name is now icecc, this line needs changing too:

chown icecream:icecream $ICECREAM_LOG_FILE

So now I have the scheduler running (shown by ps):

icecc 1991 0.1 0.0 23600 3076 ? Ss 11:08 0:05 /usr/lib/icecream/sbin/icecc-scheduler -d -l /var/log/iceccd

But the icecream service silently failed to start. (Why silently?) When trying to run the daemon manually I could see

chown/chmod in cleanup_cache() failed Operation not permitted

So I modified source to find out what such an ambiguous error message could mean. It turns out that /tmp/icecc-envs already existed and belonged to the wrong user. I removed it, and now I can run the daemon manually. But systemd still doesn't really run it, even though it thinks it was successful.

So I put an echo command into /usr/lib/icecream/icecreamd to see what it does; the command line is

/usr/lib/icecream/sbin/iceccd -d -l /var/log/iceccd --nice 5 -b /var/cache/icecream

and it runs as user icecc. So /var/cache/icecream needs to belong to that user.

Shouldn't the two daemons have separate log files? Now they are both going to /var/log/iceccd. So I make the scheduler log go to /var/log/icecc-scheduler instead (by setting ICECREAM_LOG_FILE=/var/log/icecc-scheduler in /usr/lib/icecream/icecream-schedulerd).

Gishten commented on 2014-04-15 12:08

I recommend going for https://aur.archlinux.org/packages/icecream-git/ instead, that works well for me.

SirPenguins commented on 2014-03-01 06:56

Sorry that took so long, I've disowned the package so feel free to adopt it.

Thank you :)

lucasdemarchi commented on 2013-07-26 15:53

> icecream service doesn't start.

This is probably due to /var/cache/icecream not being writable by the user icecc runs with, since it will either fail to create the dir if it doesn't exist (strace logs):

mkdir("/var/cache/icecream", 0755) = -1 EACCES (Permission denied)

Or fail to own it afterwards, since it will try to own the directory after revoking its privileges:

setresuid(1001, 1001, 1001) = 0
...
chown("/var/cache/icecream", 1001, 1001) = -1 EPERM (Operation not permitted)


I think the best way would be to create a bug report to icecream so it chown() the dir before revoking privileges. But.... creating the dir beforehand and giving proper privileges works as well.

IMO we should change the type of .service file to "simple" and the last line of the script to:
exec /usr/lib/icecream/sbin/iceccd $logfile $nice $netname -b "$ICECREAM_BASEDIR" $maxjobs $noremote

This way we get proper logs on "systemctl status icecream"

net147 commented on 2013-07-26 13:00

In icecream-schedulerd:
/usr/lib/icecream/sbin/scheduler -d $netname $logfile &>/dev/null

needs to change to:
/usr/lib/icecream/sbin/icecc-scheduler -d $netname $logfile &>/dev/null

Otherwise systemctl start icecream-scheduler will fail.
icecream-scheduler needs icecream user/groug which isn't created on install.
icecream needs icecc user which isn't created on install.
icecream service doesn't start.

SirPenguins commented on 2013-02-20 18:07

@scippio -- That's where they're supposed to go. /usr/bin/gcc and others are already owned by another package, and I'm not putting a subdirectory in /usr/bin/

@hugo -- I'm on it, I'm updating this to a git package and and adding in the .pc file where its supposed to go

@rakuco -- Thank you!

scippio commented on 2013-02-19 01:11

icecream /usr/lib/icecream/bin/ I hate you :)

hugo commented on 2013-01-30 19:33

Would be nice to install icecc.pc (pkgconfig file) on default pkgconfig location to have it available system wide by default.

Anonymous comment on 2012-10-24 20:40

FWIW, icecream has finally moved to git, so you kids can finally start submitting pull requests or whatever: https://github.com/icecc

lucasdemarchi commented on 2012-07-17 13:29

what a shame... because committers like you it's now broken :-p