Repository: spack/spack

Issue:
Installation issue: bison (Spack v0.22)
### Steps to reproduce the issue

```console
$ spack spec -I bison %intel@2021.10.0 target=x86_64
Input spec
--------------------------------
 -   bison%intel@2021.10.0 arch=None-None-x86_64

Concretized
--------------------------------
 -   bison@3.8.2%intel@2021.10.0~color build_system=autotools arch=linux-rocky8-x86_64
[e]      ^glibc@2.28%gcc@8.5.0 build_system=autotools arch=linux-rocky8-x86_64
[+]      ^gmake@4.4.1%gcc@8.5.0~guile build_system=generic arch=linux-rocky8-x86_64
[+]          ^gcc-runtime@8.5.0%gcc@8.5.0 build_system=generic arch=linux-rocky8-x86_64
[+]      ^m4@1.4.19%intel@2021.10.0+sigsegv build_system=autotools patches=9dc5fbd,bfdffa7 arch=linux-rocky8-x86_64
[+]          ^diffutils@3.10%intel@2021.10.0 build_system=autotools arch=linux-rocky8-x86_64
[+]          ^libsigsegv@2.14%intel@2021.10.0 build_system=autotools arch=linux-rocky8-x86_64
...
```

### Error message

<details><summary>Error message</summary>

<pre>
/tmp/root/spack-stage/spack-stage-bison-3.8.2-u3myxz7277cwla52laeaezqhoizaqmwa/spack-src/build-aux/missing: line 81: makeinfo: command not found
WARNING: 'makeinfo' is missing on your system.
         You should only need it if you modified a '.texi' file, or
         any other file indirectly affecting the aspect of the manual.
         You might want to install the Texinfo package:
         <https://www.gnu.org/software/texinfo/>
         The spurious makeinfo call might also be the consequence of
         using a buggy 'make' (AIX, DU, IRIX), in which case you might
         want to install GNU make:
         <https://www.gnu.org/software/make/>
make[2]: *** [Makefile:9582: /tmp/root/spack-stage/spack-stage-bison-3.8.2-u3myxz7277cwla52laeaezqhoizaqmwa/spack-src/doc/bison.info] Error 127
make[2]: Leaving directory '/tmp/root/spack-stage/spack-stage-bison-3.8.2-u3myxz7277cwla52laeaezqhoizaqmwa/spack-src/spack-build'
make[1]: *** [Makefile:10377: all-recursive] Error 1
make[1]: Leaving directory '/tmp/root/spack-stage/spack-stage-bison-3.8.2-u3myxz7277cwla52laeaezqhoizaqmwa/spack-src/spack-build'
make: *** [Makefile:3866: all] Error 2
</pre></details>


### Information on your system

* **Spack:** 0.22.0 (5fe93fee1eec46a0750bd340198bffcb92ff9eec)
* **Python:** 3.6.8
* **Platform:** linux-rocky8-skylake
* **Concretizer:** clingo


### Additional information

Adding a `depends_on("texinfo")` resolves the issue.

### General information

- [X] I have run `spack debug report` and reported the version of Spack/Python/Platform
- [X] I have run `spack maintainers <name-of-the-package>` and **@mentioned** any maintainers
- [X] I have uploaded the build log and environment files
- [X] I have searched the issues of this repo and believe this is not a duplicate


Discussion:
It appears that the removal of `depends_on("diffutils", type="build")` in https://github.com/spack/spack/pull/42209 is causing build error. The build succeeds when it is added. I'm not suggesting that we should do that. The warning/error message suggests `texinfo`:
```
/tmp/root/spack-stage/spack-stage-bison-3.8.2-u3myxz7277cwla52laeaezqhoizaqmwa/spack-src/build-aux/missing: line 81: makeinfo: command not found
WARNING: 'makeinfo' is missing on your system.
         You should only need it if you modified a '.texi' file, or
         any other file indirectly affecting the aspect of the manual.
         You might want to install the Texinfo package:
         
         The spurious makeinfo call might also be the consequence of
         using a buggy 'make' (AIX, DU, IRIX), in which case you might
         want to install GNU make:
```

@alecbcs Do you want to take a look at this in the context of #42209?
@harshula are you able to install `bison%gcc`? I can't reproduce on rhel8.
Note also https://github.com/spack/spack/pull/44245, @sethrj. 
Thanks @wdconinc this is indeed the error I saw.
Hi @alecbcs ,

Using `gcc@8.5.0` still results in a build error.  I'm using this Dockerfile: https://github.com/ACCESS-NRI/build-ci/blob/main/containers/Dockerfile.base-spack . 

Are you testing on a RHEL 8 minimal installation? If not, is it possible that `makeinfo` is installed via the RHEL package manager? What's the output of `find / -iname makeinfo`?

```
# spack compilers
==> Available compilers
-- gcc rocky8-x86_64 --------------------------------------------
gcc@8.5.0

-- intel rocky8-x86_64 ------------------------------------------
intel@2021.2.0

-- oneapi rocky8-x86_64 -----------------------------------------
oneapi@2021.2.0
```
```
# spack debug report
* **Spack:** 0.22.0 (8cc6b5a711ac01325a3fd90c8054236727b19bb4)
* **Python:** 3.6.8
* **Platform:** linux-rocky8-skylake
* **Concretizer:** clingo
```

```
# spack install bison %gcc target=x86_64
[+] /usr (external glibc-2.28-6bfinv7zwwffcz4l7b4cb6ndkdy77yqv)
[+] /opt/release/linux-rocky8-x86_64/gcc-8.5.0/gcc-runtime-8.5.0-xvjgomg5sceyxwzzma4lejwdhh4lp7xe
[+] /opt/release/linux-rocky8-x86_64/gcc-8.5.0/gmake-4.4.1-nql6rhtimta2o7fpa2gbgybf2e6qd4vr
==> Installing libsigsegv-2.14-rwk2eujdeeky6sjltsc7mzmagljn5m5j [4/7]
==> No binary for libsigsegv-2.14-rwk2eujdeeky6sjltsc7mzmagljn5m5j found: installing from source
==> Using cached archive: /opt/spack/var/spack/cache/_source-cache/archive/cd/cdac3941803364cf81a908499beb79c200ead60b6b5b40cad124fd1e06caa295.tar.gz
==> No patches needed for libsigsegv
==> libsigsegv: Executing phase: 'autoreconf'
==> libsigsegv: Executing phase: 'configure'
==> libsigsegv: Executing phase: 'build'
==> libsigsegv: Executing phase: 'install'
==> libsigsegv: Successfully installed libsigsegv-2.14-rwk2eujdeeky6sjltsc7mzmagljn5m5j
  Stage: 0.02s.  Autoreconf: 0.00s.  Configure: 4.16s.  Build: 0.49s.  Install: 0.10s.  Post-install: 0.02s.  Total: 4.83s
[+] /opt/release/linux-rocky8-x86_64/gcc-8.5.0/libsigsegv-2.14-rwk2eujdeeky6sjltsc7mzmagljn5m5j
==> Installing diffutils-3.10-jcdcs2xks3vxhlj6tdmrdfotaqes7gjz [5/7]
==> No binary for diffutils-3.10-jcdcs2xks3vxhlj6tdmrdfotaqes7gjz found: installing from source
==> Using cached archive: /opt/spack/var/spack/cache/_source-cache/archive/90/90e5e93cc724e4ebe12ede80df1634063c7a855692685919bfe60b556c9bd09e.tar.xz
==> No patches needed for diffutils
==> diffutils: Executing phase: 'autoreconf'
==> diffutils: Executing phase: 'configure'
==> diffutils: Executing phase: 'build'
==> diffutils: Executing phase: 'install'
==> diffutils: Successfully installed diffutils-3.10-jcdcs2xks3vxhlj6tdmrdfotaqes7gjz
  Stage: 0.10s.  Autoreconf: 0.00s.  Configure: 23.57s.  Build: 2.41s.  Install: 0.72s.  Post-install: 0.04s.  Total: 26.89s
[+] /opt/release/linux-rocky8-x86_64/gcc-8.5.0/diffutils-3.10-jcdcs2xks3vxhlj6tdmrdfotaqes7gjz
==> Installing m4-1.4.19-qziii76ocm2svdyhywwp6bd3v6favv67 [6/7]
==> No binary for m4-1.4.19-qziii76ocm2svdyhywwp6bd3v6favv67 found: installing from source
==> Using cached archive: /opt/spack/var/spack/cache/_source-cache/archive/3b/3be4a26d825ffdfda52a56fc43246456989a3630093cced3fbddf4771ee58a70.tar.gz
==> Applied patch /opt/spack/var/spack/repos/builtin/packages/m4/checks-198.sysval.1.patch
==> Applied patch /opt/spack/var/spack/repos/builtin/packages/m4/checks-198.sysval.2.patch
==> Ran patch() for m4
==> m4: Executing phase: 'autoreconf'
==> m4: Executing phase: 'configure'
==> m4: Executing phase: 'build'
==> m4: Executing phase: 'install'
==> m4: Successfully installed m4-1.4.19-qziii76ocm2svdyhywwp6bd3v6favv67
  Stage: 0.10s.  Autoreconf: 0.00s.  Configure: 26.53s.  Build: 4.27s.  Install: 0.93s.  Post-install: 0.07s.  Total: 31.98s
[+] /opt/release/linux-rocky8-x86_64/gcc-8.5.0/m4-1.4.19-qziii76ocm2svdyhywwp6bd3v6favv67
==> Installing bison-3.8.2-336eticbz33uab33wkryica2zjqkptjz [7/7]
==> No binary for bison-3.8.2-336eticbz33uab33wkryica2zjqkptjz found: installing from source
==> Using cached archive: /opt/spack/var/spack/cache/_source-cache/archive/06/06c9e13bdf7eb24d4ceb6b59205a4f67c2c7e7213119644430fe82fbd14a0abb.tar.gz
==> No patches needed for bison
==> bison: Executing phase: 'autoreconf'
==> bison: Executing phase: 'configure'
==> bison: Executing phase: 'build'
==> Error: ProcessError: Command exited with status 2:
    'make' '-j16' 'V=1'

4 errors found in build log:
     2451      rc=$?; \
     2452      CDPATH="${ZSH_VERSION+.}:" && cd /tmp/root/spack-stage/spack-sta
             ge-bison-3.8.2-336eticbz33uab33wkryica2zjqkptjz/spack-src && \
     2453      $restore $backupdir/* `echo ".//tmp/root/spack-stage/spack-stage
             -bison-3.8.2-336eticbz33uab33wkryica2zjqkptjz/spack-src/doc/bison.
             info" | sed 's|[^/]*$||'`; \
     2454    fi; \
     2455    rm -rf $backupdir; exit $rc
     2456    /tmp/root/spack-stage/spack-stage-bison-3.8.2-336eticbz33uab33wkry
             ica2zjqkptjz/spack-src/build-aux/missing: line 81: makeinfo: comma
             nd not found
  >> 2457    WARNING: 'makeinfo' is missing on your system.
     2458             You should only need it if you modified a '.texi' file, o
             r
     2459             any other file indirectly affecting the aspect of the man
             ual.
     2460             You might want to install the Texinfo package:
     2461             <https://www.gnu.org/software/texinfo/>
     2462             The spurious makeinfo call might also be the consequence 
             of
     2463             using a buggy 'make' (AIX, DU, IRIX), in which case you m
             ight
     2464             want to install GNU make:
     2465             <https://www.gnu.org/software/make/>
  >> 2466    make[2]: *** [Makefile:9582: /tmp/root/spack-stage/spack-stage-bis
             on-3.8.2-336eticbz33uab33wkryica2zjqkptjz/spack-src/doc/bison.info
             ] Error 127
     2467    make[2]: Leaving directory '/tmp/root/spack-stage/spack-stage-biso
             n-3.8.2-336eticbz33uab33wkryica2zjqkptjz/spack-src/spack-build'
  >> 2468    make[1]: *** [Makefile:10377: all-recursive] Error 1
     2469    make[1]: Leaving directory '/tmp/root/spack-stage/spack-stage-biso
             n-3.8.2-336eticbz33uab33wkryica2zjqkptjz/spack-src/spack-build'
  >> 2470    make: *** [Makefile:3866: all] Error 2

See build log for details:
  /tmp/root/spack-stage/spack-stage-bison-3.8.2-336eticbz33uab33wkryica2zjqkptjz/spack-build-out.txt
```
```
/tmp/root/spack-stage/spack-stage-bison-3.8.2-336eticbz33uab33wkryica2zjqkptjz/spack-src/build-aux/missing: line 81: makeinfo: command not found
WARNING: 'makeinfo' is missing on your system.
         You should only need it if you modified a '.texi' file, or
         any other file indirectly affecting the aspect of the manual.
         You might want to install the Texinfo package:
         <https://www.gnu.org/software/texinfo/>
         The spurious makeinfo call might also be the consequence of
         using a buggy 'make' (AIX, DU, IRIX), in which case you might
         want to install GNU make:
         <https://www.gnu.org/software/make/>
make[2]: *** [Makefile:9582: /tmp/root/spack-stage/spack-stage-bison-3.8.2-336eticbz33uab33wkryica2zjqkptjz/spack-src/doc/bison.info] Error 127
make[2]: Leaving directory '/tmp/root/spack-stage/spack-stage-bison-3.8.2-336eticbz33uab33wkryica2zjqkptjz/spack-src/spack-build'
make[1]: *** [Makefile:10377: all-recursive] Error 1
make[1]: Leaving directory '/tmp/root/spack-stage/spack-stage-bison-3.8.2-336eticbz33uab33wkryica2zjqkptjz/spack-src/spack-build'
make: *** [Makefile:3866: all] Error 2
```

Resolving patch:
diff --git a/var/spack/repos/builtin/packages/bison/package.py b/var/spack/repos/builtin/packages/bison/package.py
--- a/var/spack/repos/builtin/packages/bison/package.py
+++ b/var/spack/repos/builtin/packages/bison/package.py
@@ -59,6 +59,7 @@ class Bison(AutotoolsPackage, GNUMirrorPackage):
 
     depends_on("gettext", when="+color")
     depends_on("m4@1.4.6:", type=("build", "run"))
+    depends_on("diffutils", type="build")
 
     patch("pgi.patch", when="@3.0.4")
     # The NVIDIA compilers do not currently support some GNU builtins.


Test patch: