Skip to content

Conversation

posita
Copy link
Contributor

@posita posita commented Dec 2, 2015

Fixes the following issue:

root@c74c16a6aee2:~/bitcoin# ./autogen.sh
Can't exec "aclocal": No such file or directory at /usr/share/autoconf/Autom4te/FileUtils.pm line 326.
autoreconf: failed to run aclocal: No such file or directory
root@c74c16a6aee2:~/bitcoin# apt-get install --no-install-recommends automake
...
root@c74c16a6aee2:~/bitcoin# ./autogen.sh
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `build-aux'.
...

@jonasschnelli
Copy link
Contributor

utACK. Can't hurt.
But i guess installing automake will install autoconf (as depends)?

@posita
Copy link
Contributor Author

posita commented Dec 2, 2015

But i guess installing automake will install autoconf (as depends)?

Ah, good point (for both Ubuntu and Debian). Fixed (rebased).

@fanquake
Copy link
Member

fanquake commented Dec 2, 2015

utACK

@laanwj
Copy link
Member

laanwj commented Dec 2, 2015

Isn't it the other way around - doesn't autoconf install automake as dependency?

I've installed bitcoin core on many VMs (both Debian and Ubuntu) from scratch by following just the build-unix.md instructions, I'm not convinced that this change is needed.

@posita
Copy link
Contributor Author

posita commented Dec 2, 2015

@laanwj wrote:

Isn't it the other way around - doesn't autoconf install automake as dependency?

No. You are confusing their relationship. From https://www.gnu.org/software/automake/#introduction (_emphasis_ added):

Automake is a tool for automatically generating Makefile.in files compliant with the GNU Coding Standards. _Automake requires the use of Autoconf._

From https://www.gnu.org/software/autoconf/autoconf.html#family (_emphasis_ added):

Autoconf is often used together with the following software systems:

This is consistent with Debian's and Ubuntu's package dependencies:

@laanwj wrote:

I've installed bitcoin core on many VMs (both Debian and Ubuntu) from scratch by following just the build-unix.md instructions, I'm not convinced that this change is needed.

I can't comment on why your intuition is what it is without knowing more about what tools you were using, your understanding of how those tools worked, and what was already on the base images you used for those VMs, but I suspect your confusion stems from one or more of:

  • automake was already installed;
  • automake was getting pulled in as a dependency of something else; or
  • you were indiscriminately installing "recommended" packages (in both Debian and Ubuntu, autoconf recommends automake, but it doesn't maintain a circular dependency for it)

I'm guessing it was the last one, because that is the default behavior for apt-get. However, relying on recommended packages breaks if you don't install them (e.g., you're aiming for a minimal system by using apt-get install --no-install-recommends ...).

If you're still unconvinced, try these. Excerpts:

% docker build -f Dockerfile-debian-jessie-autoconf .
...
+ ./autogen.sh
Can't exec "aclocal": No such file or directory at /usr/share/autoconf/Autom4te/FileUtils.pm line 326.
autoreconf: failed to run aclocal: No such file or directory
The command '/bin/sh -c BTCD_VERSION=master /tmp/build-unix.sh' returned a non-zero code: 1
% docker build -f Dockerfile-debian-jessie-automake .
...
+ ./autogen.sh
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `build-aux'.
libtoolize: copying file `build-aux/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `build-aux/m4'.
...
% docker build -f Dockerfile-ubuntu-trusty-autoconf .
...
+ ./autogen.sh
Can't exec "aclocal": No such file or directory at /usr/share/autoconf/Autom4te/FileUtils.pm line 326.
autoreconf: failed to run aclocal: No such file or directory
The command '/bin/sh -c BTCD_VERSION=master /tmp/build-unix.sh' returned a non-zero code: 1
% docker build -f Dockerfile-ubuntu-trusty-automake .
...
+ ./autogen.sh
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `build-aux'.
libtoolize: copying file `build-aux/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `build-aux/m4'.
...

@maflcko
Copy link
Member

maflcko commented Dec 2, 2015

utACK

@laanwj
Copy link
Member

laanwj commented Dec 3, 2015

OK, utACK then

@laanwj laanwj merged commit b440409 into bitcoin:master Dec 3, 2015
laanwj added a commit that referenced this pull request Dec 3, 2015
b440409 Add missing automake package to deb-based UNIX install instructions. (Matt Bogosian)
laanwj pushed a commit that referenced this pull request Dec 3, 2015
@posita posita deleted the posita/fix-doc-build-unix branch December 3, 2015 15:21
luke-jr pushed a commit to luke-jr/bitcoin that referenced this pull request Dec 8, 2015
luke-jr pushed a commit to luke-jr/bitcoin that referenced this pull request Dec 8, 2015
@bitcoin bitcoin locked as resolved and limited conversation to collaborators Sep 8, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants