Package Details: icecream 1.1rc2-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: 23
Popularity: 0.235912
First Submitted: 2006-10-11 20:48
Last Updated: 2016-04-21 16:20

Dependencies (5)

Required by (4)

Sources (7)

Latest Comments

bitfix commented on 2016-01-01 21:13

The chown icecc:icecc ${ICECREAM_LOG_FILE} line in icecreamd doesn't match the user and group icecream:icecream created by icecream.install.

bwidawsk commented on 2015-12-28 18:45

PSA: This fails to work with community/hardening-wrapper. I am not sure why yet (ld related). I have no desire to try to fix it.

bwidawsk commented on 2015-12-24 19:42

I've done my best to update this package to have it closely resemble upstream (SuSE) where possible, and using Fedora Core's systemd service files for the rest. This was a pretty large change overall. Please let me know if you have issues.

It might be best to manually remove the old icecream package and verify all the contents are gone.

@hunger: Also FWIW, type=simple + the -d option is not correct. However, I've dropped the -d and gone with type=simple because of the issue you reported. This matches the FC service as well.

bwidawsk commented on 2015-12-11 18:12

@hunger Sorry for the delay, I was on vacation.

You are correct about Type=simple. I noticed some other changes in the upstream package which I never bothered to look at when I adopted the package. I should probably work to incorporate those, and may as well do it on the update with Type=simple. I will try to get it completed today or tomorrow.

Thanks!

hunger commented on 2015-12-02 11:56

I had to add the following override to icecream.service:
ProtectSystem=full
PrivateDevices=true
PrivateTmp=true
ProtectHome=on
NoNewPrivileges=true
Type=simple

The Protect*, Private* and NoNewPrivileges are just to harden the installation. That will prevent some attacks.

But without Type=simple the iceccd would stop with a timeout after a while. It apparently does need -d to detach, so Type=forking is probably wrong -- and you do not want forking anyway if you can avoid that with systemd.

abique commented on 2015-01-14 12:22

I disown the package if anyone wants to take it :)

ecloud commented on 2015-01-14 12:19

https://aur.archlinux.org/packages/icecream-git/ does indeed work better.

But there is also aur/icecc.

aur/icemon-git depends on aur/icecc. Whereas aur/iceberg-git does not build.

Does that mean icecc is the one that regular users should be running? Apparently. It does seem to work. But it is version 1.0.1.

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 :)

All comments