Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 489600 - games-puzzle/pingus-0.7.6 - src_install() takes a long time
Summary: games-puzzle/pingus-0.7.6 - src_install() takes a long time
Status: RESOLVED WORKSFORME
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Games (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Games
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-10-27 18:16 UTC by Toralf Förster
Modified: 2013-11-01 15:22 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Toralf Förster gentoo-dev 2013-10-27 18:16:14 UTC
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?
Comment 1 Jeroen Roovers (RETIRED) gentoo-dev 2013-10-28 01:21:11 UTC
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.
Comment 2 Mr. Bones. (RETIRED) gentoo-dev 2013-10-28 03:19:35 UTC
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.
Comment 3 Toralf Förster gentoo-dev 2013-11-01 15:22:54 UTC
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)/{} \;