httpuv fails to build on macOS if automake is present

Open
#429 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
45/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
c
Domain
build-system

Research direction

Start by reproducing the macOS source installation with automake on PATH, then inspect autogen.sh, configure, and the libuv build rules mentioned in the output. The fix is complete when httpuv no longer regenerates the build system during a regular installation and the package builds with automake present or absent.

Written by the indexing model from the issue text.

Description

If automake is present (i.e., on the PATH) then httpuv fails to build because it tries to re-generate configure in a fundamentally broken way, thus failing the installation.

Expected: it should not try to regenerate without maintainer mode being enabled and thus regular installation should work regardless of the absence/presence of automake.

To replicate, install automake and its dependenceis (here automake-1.17 from https://mac.r-project.org/bin/ - but it breaks even if you try to match the internally used versions). The problem does not occur is automake is not on the PATH.

* installing *source* package ‘httpuv’ ...
** this is package ‘httpuv’ version ‘1.6.16’
** package ‘httpuv’ successfully unpacked and MD5 sums checked
** using staged installation
** libs
using C compiler: ‘Apple clang version 17.0.0 (clang-1700.3.19.1)’
using C++ compiler: ‘Apple clang version 17.0.0 (clang-1700.3.19.1)’
using SDK: ‘MacOSX14.5.sdk’
aclocal.m4:17: warning: this file was generated for autoconf 2.71.
You have another version of autoconf.  It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically 'autoreconf'.
+ glibtoolize --copy
autogen.sh: line 43: glibtoolize: command not found
Error in untar2(tarfile, files, list, exdir, restore_times, allow_all) : 
  incomplete block on file
rm: conftest.dSYM: is a directory
rm: conftest.dSYM: is a directory
rm: conftest.dSYM: is a directory
rm: conftest.dSYM: is a directory
/Volumes/Temp/tmp/Rtmpc9VX5f/R.INSTALL4d7147fa73de/httpuv/src/libuv/missing: line 81: aclocal-1.16: command not found
WARNING: 'aclocal-1.16' is missing on your system.
         You should only need it if you modified 'acinclude.m4' or
         'configure.ac' or m4 files included by 'configure.ac'.
         The 'aclocal' program is part of the GNU Automake package:
         <https://www.gnu.org/software/automake>
         It also requires GNU Autoconf, GNU m4 and Perl in order to run:
         <https://www.gnu.org/software/autoconf>
         <https://www.gnu.org/software/m4/>
         <https://www.perl.org/>
make[1]: *** [aclocal.m4] Error 127
make: *** [libuv/.libs/libuv.b] Error 2
ERROR: compilation failed for package ‘httpuv’
Dominant language
C
Stars
252
Forks
87
PR merge metrics
No merged PRs in 30d

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from rstudio/httpuv

All issues in rstudio/httpuv

Similar issues

More C issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.