Re-emerging that package (using an external USB 2.0 hard disk as a Gentoo ystem) took a longer time than expected. Therefore I just looked what happened here. It seems that most of the emerge time is spend to the ebuild.sh install phase. A pstree shows: emerge,12369 /usr/bin/emerge @preserved-rebuild └─sandbox,13919 /usr/lib/portage/bin/ebuild.sh install └─ebuild.sh,13920 /usr/lib/portage/bin/ebuild.sh install └─ebuild.sh,13937 /usr/lib/portage/bin/ebuild.sh install └─emake,13946 /usr/lib/portage/bin/ebuild-helpers/emake install-exec install-data DESTDIR=/var/tmp/portage/games-puzzle/pingus-0.7.6/image/ PREFIX=/usr DATADIR=/usr/share/games/pingus BINDIR=/usr/games/bin └─make,13948 -j4 install-exec install-data DESTDIR=/var/tmp/portage/games-puzzle/pingus-0.7.6/image/ PREFIX=/usr DATADIR=/usr/share/games/pingus BINDIR=/usr/games/bin └─sh,13950 -c cd data/ && \\\012find . \\\012 -type f -a \\( \\\012 -name "*.png" -o \\\012 -name "*.jpg" -o \\\012 -name "*.wav" -o \\\012 -name "*.scm" -o \\\012 -name "*.font" -o \\\012 -name "*.story" -o \\\012 -name "*.credits" -o \\\012 -name "*.prefab" -o \\\012 -name "*.it" -o \\\012 -name "*.ogg" -o \\\012 -name "*.s3m" -o \\\012 -name "*.po" -o \\\012 -name "*.worldmap" -o \\\012 -name "*.res" -o \\\012 -name "*.pingus" -o \\\012 -name "*.levelset" -o \\\012 -name "*.sprite" \\\012 \\) -exec install -D {} /var/tmp/portage/games-puzzle/pingus-0.7.6/image//usr/share/games/pingus/{} \\; └─find,13951 . -type f -a ( -name *.png -o -name *.jpg -o -name *.wav -o -name *.scm -o -name *.font -o -name *.story -o -name *.credits -o -name *.prefab -o -name *.it -o -name *.ogg -o -name *.s3m -o -name *.po -o -name *.worldmap -o -name *.res -o -name *.pingus -o -name *.levelset -o -name *.sprite ) -exec install -D {} /var/tmp/portage/games-puzzle/pingus-0.7.6/image//usr/share/games/pingus/{} ; └─python3.2,19867 /usr/lib/portage/bin/install.py -D ./images/groundpieces/ground/real/real12.png /var/tmp/portage/games-puzzle/pingus-0.7.6/image//usr/share/games/pingus/./images/groundpieces/ground/real/real12.png I'm wondering if loading /usr/lib/portage/bin/install.py needs so much time or whatever else can speed up the install phase?
find pingus-0.7.6/data/ -type f | wc -l 2024 That's a lot of files to install and it should be fixed upstream: it's make install running find, apparently, so the ebuild cannot change this without patching.
time ebuild ./pingus-0.7.6.ebuild clean install > /dev/null real 0m27.691s user 0m23.759s sys 0m13.739s seems fine to me. This kind of thing really belongs upstream in any case.
Wrote tho the author this : Pff - it seems that at my Gentoo system not /usr/bin/isntall is executed. instead a Python wrapper is used : bash,14486,tfoerste └─ebuild,3954 -O /usr/bin/ebuild pingus-0.7.6.ebuild install └─sandbox,3968 /usr/lib/portage/bin/ebuild.sh install └─ebuild.sh,3969 /usr/lib/portage/bin/ebuild.sh install └─ebuild.sh,3986 /usr/lib/portage/bin/ebuild.sh install └─emake,3995 /usr/lib/portage/bin/ebuild-helpers/emake install-exec install-data DESTDIR=/var/tmp/portage/games-puzzle/pingus-0.7.6/image/ PREFIX=/usr DATADIR=/usr/share/games/pingus BINDIR=/usr/games/bin └─make,3997 -j4 install-exec install-data DESTDIR=/var/tmp/portage/games-puzzle/pingus-0.7.6/image/ PREFIX=/usr DATADIR=/usr/share/games/pingus BINDIR=/usr/games/bin └─sh,3999 -c cd data/ && \\\012find . \\\012 -type f -a \\( \\\012 -name "*.png" -o \\\012 -name "*.jpg" -o \\\012 -name "*.wav" -o \\\012 -name "*.scm" -o \\\012 -name "*.font" -o \\\012 -name "*.story" -o \\\012 -name "*.credits" -o \\\012 -name "*.prefab" -o \\\012 -name "*.it" -o \\\012 -name "*.ogg" -o \\\012 -name "*.s3m" -o \\\012 -name "*.po" -o \\\012 -name "*.worldmap" -o \\\012 -name "*.res" -o \\\012 -name "*.pingus" -o \\\012 -name "*.levelset" -o \\\012 -name "*.sprite" \\\012 \\) -exec install -D {} /var/tmp/portage/games-puzzle/pingus-0.7.6/image//usr/share/games/pingus/{} \\; └─find,4000 . -type f -a ( -name *.png -o -name *.jpg -o -name *.wav -o -name *.scm -o -name *.font -o -name *.story -o -name *.credits -o -name *.prefab -o -name *.it -o -name *.ogg -o -name *.s3m -o -name *.po -o -name *.worldmap -o -name *.res -o -name *.pingus -o -name *.levelset -o -name *.sprite ) -exec install -D {} /var/tmp/portage/games-puzzle/pingus-0.7.6/image//usr/share/games/pingus/{} ; └─python3.2,4166 /usr/lib/portage/bin/install.py -D ./images/textures/clouds2.jpg /var/tmp/portage/games-puzzle/pingus-0.7.6/image//usr/share/games/pingus/./images/textures/clouds2.jpg This change in the Makefile make it : tfoerste@n22 /var/tmp/portage/games-puzzle/pingus-0.7.6/work/pingus-0.7.6 $ colordiff Makefile* 66c66 < \) -exec /usr/bin/install -D {} $(DESTDIR)$(DATADIR)/{} \; --- > \) -exec install -D {} $(DESTDIR)$(DATADIR)/{} \;