--zbghedm4f3nbf3rv
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Control: tags -1 patch
On Sat, Oct 22, 2022 at 05:07:54PM +0200, Samuel Thibault wrote:
Control: severity -1 wishlist
Samuel Thibault, le sam. 22 oct. 2022 17:06:07 +0200, a ecrit:
Nilesh Patra, le sam. 22 oct. 2022 20:09:05 +0530, a ecrit:
Command: dpkg-buildpackage --sanitize-env -us -uc -b -rfakeroot -j5
Ok, that's why. festival's makefile does not support parallel builds. That's why we do not pass any -j parameter to the explicit make call.
It seems that dpkg-buildpackage's -j option forcibly passes -j
in MAKEFLAGS. Is there a way to prevent it from doing that, or
should users just know whether they can use -j, and rather use DEB_BUILD_OPTIONS=parallel=nn if they don't know?
-J's documentation
“
-J, --jobs-try[=jobs|auto]
This option (since dpkg 1.18.2, long option since dpkg 1.18.8) is
equivalent to the -j option except that it does not set the
MAKEFLAGS environment variable, and as such it is safer to use with
any package including those that are not parallel-build safe.
auto is the default behavior (since dpkg 1.18.11). Setting the
number of jobs to 1 will restore a serial behavior.
”
leads me into thinking that this is notabug from festival, and people
should be just using -J and not -j?
I see, yes indeed. I have "$dpkg_buildpackage_user_options = ['-j5'];" set in my sbuildrc since atleast a couple of years or so and this is the first time I have seen something choke.
If the makefile does not support parallel building, then it makes sense
to explicity declare that with a --no-parallel. The custom $(MAKE) call can go away. I tried again with -j5 option, and passing a --no-parallel seems to mitigate this. I have attached the patch for the same, please consider taking
a look.
BTW, if you could do something to not build the festival.info file during the build, somehow split build and doc for override_dh_auto_build into -arch and -indep call, that'd make
festival natively cross-building, and I'd be quite happy on seeing that. Currently, you are installing festival.info.* files in festival binary package and
cross-build would choke there if doc call is separated into -indep rule.
One way could be to build this package twice, once natively and once cross-build but that'd be a ugly.
--
Best,
Nilesh
--zbghedm4f3nbf3rv
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment; filename="no-parallel-build.patch" Content-Transfer-Encoding: quoted-printable
diff --git a/debian/rules b/debian/rules
index 5b28cca..435e7db 100755
--- a/debian/rules
+++ b/debian/rules
@@ -10,11 +10,6 @@ export FORCE_SOURCE_DATE=1
FAKETIME = TZ=UTC faketime @$(SOURCE_DATE_EPOCH)
endif
-ifeq ($(origin CC),default)
-CC := $(DEB_HOST_GNU_TYPE)-gcc
-CXX := $(DEB_HOST_GNU_TYPE)-g++
-endif
-
override_dh_auto_configure:
#Avoid conflicting with upstreams build system
@@ -22,7 +17,7 @@ override_dh_auto_test:
#Upstream states test is only for their local development not a functional test
override_dh_auto_build:
- $(MAKE) CC='$(CC)' CXX='$(CXX)'
+ dh_auto_build --no-parallel --buildsystem=makefile
cd doc && $(FAKETIME) $(MAKE) festival.info festival.html festival.ps
override_dh_auto_clean:
--zbghedm4f3nbf3rv--
-----BEGIN PGP SIGNATURE-----
iHUEAB