• Re: Bug#1022239: festival FTBFS: make[2]: *** [/usr/lib/speech_tools/co

    From Samuel Thibault@21:1/5 to All on Sat Oct 22 17:10:01 2022
    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?

    Samuel

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Nilesh Patra@21:1/5 to Samuel Thibault on Sat Oct 22 18:20:01 2022
    --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