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
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:
signature.asc
Description: PGP signature