[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#793404: massive waste of CPU time in debian/rules by inline commands



Package: general
Severity: minor

Hello Fellow Maintainers,

please tell me that I am wrong or that I start fighting the windmills if
that's the case, but I have a general impression that something smells
in lots of debian/rules files nowadays and we need a concept to improve
that.

The problem: I see lots of $(shell ...) stuff. In boost, there are about
12 such calls. And they run dpkg-architecture or dpkg-parsechangelogs or
similar commands. When this was done a just couple of times (i.e. before
dh(7)), that's acceptable. But now, it looks like debian/rules is called
many, many times through dh. Making many, many calls of that inline
commands. Wasting many, many CPU cycles. All that just to retrieve the
same information all over again.

In the emulated m68k environment, it spends about half an hour (guessed,
not measured) before starting the actual build, doing things like:

|      \_ /usr/bin/perl -w /usr/bin/dh build --with python2 --with python3
|          \_ /usr/bin/make -f debian/rules override_dh_auto_configure
|              \_ /bin/sh -c dpkg-parsechangelog | grep Version | cut -d' ' -f2
|                  \_ /usr/bin/perl /usr/bin/dpkg-parsechangelog
|                  |   \_ /usr/bin/perl /usr/lib/dpkg/parsechangelog/debian -ldebian/changelog --file debia

I think we need to find a shortcut for this. The best idea I got after
short brainstorming is hacking fakeroot to provide a cache of stdout
data from certain commands.

If someone has a better idea or could point to an existing concept or
implementation, please tell me.

Regards,
Eduard.


Reply to: