Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.debian.maint.python > #10066 > unrolled thread

Parallelizing a submake of debian/rules

Started byChristoph Groth <christoph@grothesque.org>
First post2018-01-17 15:10 +0100
Last post2018-01-17 15:10 +0100
Articles 1 — 1 participant

Back to article view | Back to linux.debian.maint.python


Contents

  Parallelizing a submake of debian/rules Christoph Groth <christoph@grothesque.org> - 2018-01-17 15:10 +0100

#10066 — Parallelizing a submake of debian/rules

FromChristoph Groth <christoph@grothesque.org>
Date2018-01-17 15:10 +0100
SubjectParallelizing a submake of debian/rules
Message-ID<v8WzD-8pO-1@gated-at.bofh.it>

[Multipart message — attachments visible in raw view] — view raw

Hello,

(Please keep me CCed, I'm not subscribed to debian-python.)

I'm working on packaging the libraries Kwant [1] and Tinyarray [2] (a
dependency for Kwant) for Debian.  The Debian packaging was done in git
repositories [3] [4] and seems finished.

I'm not satisfied with one aspect of it, however: build parallelization
does not work, i.e. running

gbp buildpackage -j4

does not result in a parallel build.

There are several parts of the build process of Kwant that could be
parallelized.  The only one that I'd like to consider here is the one
that is consuming the most time: the generation of figures for the HTML
documentation from patched example scripts.

Having cloned [1], one can build the documentation in parallel like
this:

./setup.py build
cd doc
make -j4 html

In the Debian packaging [3] this is done in debian/rules like this:

# Make documentation only if needed.
ifneq "$(shell dh_listpackages | grep -- -doc)" ""
PY3VER = $(shell python3 --version | cut -d' ' -f2 | cut -d. -f1,2)
override_dh_installdocs:
	PYTHONPATH=$(CURDIR)/debian/python3-kwant/usr/lib/python$(PY3VER)/dist-packages \
	LC_ALL=C.UTF-8 $(MAKE) -C doc html
	dh_installdocs
endif

But the submake launchd by "$(MAKE)" is not a parallel one.

I have enabled parallel builds by giving the --parallel option to "dh",
and I launch gbp buildpackage with "-j4".  Moreover, DEB_BUILD_OPTIONS
is set to "parallel=4", but all to no avail.  The only way to make it
work is to add an explicit "-j" to the make invocation in debian/rules,
but that's certainly not the way it should be done.

I'm grateful for any hints on how to fix the situation.

Thanks,
Christoph

[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=886418
[2] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=886628
[3] https://gitlab.kwant-project.org/kwant/debian-kwant
[4] https://gitlab.kwant-project.org/kwant/debian-tinyarray

[toc] | [standalone]


Back to top | Article view | linux.debian.maint.python


csiph-web