[Home]

Summary:ASTERISK-27332: Asterisk fails to configure on MacOS Sierra
Reporter:Ivan Larionov (xeron)Labels:
Date Opened:2017-10-11 20:09:21Date Closed:2017-11-21 05:23:33.000-0600
Priority:MajorRegression?Yes
Status:Closed/CompleteComponents:Core/BuildSystem
Versions:15.0.0 Frequency of
Occurrence
Constant
Related
Issues:
Environment:MacOS Sierra 10.12.6Attachments:
Description:Asterisk 15 (may be older versions as well) fails to configure on MacOS Sierra (may be affects some other OS as well).

Looks like it's due to {{sed}} and {{readlink}} calls incompatibility. For me it fails on {{pjproject}} verification and applying patches.

Using {{greadlink}} instead of {{readlink}} helps.

Places where incompatible calls are made from:

* {{third-party/pjproject/Makefile}}
* {{third-party/pjproject/apply_patches}}
* may be more

{code}
$ ./bootstrap.sh
Generating the configure script ...
$ ./configure --without-asound --without-netsnmp --without-gtk2 --with-crypto --with-ssl
checking build system type... x86_64-apple-darwin16.7.0
checking host system type... x86_64-apple-darwin16.7.0
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking whether char is unsigned... no
checking for uname... /usr/bin/uname
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking how to run the C preprocessor... gcc -E
checking how to run the C++ preprocessor... g++ -E
checking for a sed that does not truncate output... /usr/bin/sed
checking for egrep... grep -E
checking for ld used by gcc... /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
checking if the linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) is GNU ld... no
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking for a BSD-compatible install... /opt/brew/bin/ginstall -c
checking whether ln -s works... yes
checking for ranlib... ranlib
checking for GNU make... make
checking for egrep... (cached) /usr/bin/grep -E
checking for strip... strip
checking for ar... ar
checking for bison... /usr/bin/bison
checking for cmp... /usr/bin/cmp
checking for cat... /bin/cat
checking for flex... /usr/bin/flex
checking for grep... (cached) /usr/bin/grep
checking for python... /opt/brew/opt/python/libexec/bin/python
checking for find... /usr/bin/find
checking for compress... /usr/bin/compress
checking for basename... /usr/bin/basename
checking for dirname... /usr/bin/dirname
checking for sh... /bin/sh
checking for ln... /bin/ln
checking for doxygen... :
checking for dot... /opt/brew/bin/dot
checking for wget... /opt/brew/bin/wget
checking for curl... /usr/bin/curl
checking for rubber... :
checking for catdvi... :
checking for kpsewhich... :
checking for xmllint... /opt/brew/bin/xmllint
checking for xmlstarlet... :
checking for bash... /bin/sh
checking for git... /opt/brew/bin/git
checking for alembic... :
checking for bzip2... /usr/bin/bzip2
checking for tar... /usr/bin/tar
checking for patch... /usr/bin/patch
checking for sed... (cached) /usr/bin/sed
checking for nm... /usr/bin/nm
checking for ldconfig... :
checking for sha1sum... /Users/ilarionov/Projects/Twilio/asterisk/build_tools/sha1sum-sh
checking for openssl... /opt/brew/bin/openssl
checking for bison that supports parse-param... /usr/bin/bison
checking for soxmix... no
checking for md5... md5
checking for a sed that does not truncate output... (cached) /usr/bin/sed
checking whether gcc is Clang... yes
checking whether Clang needs flag to prevent "argument unused" warning when linking with -pthread... -Qunused-arguments
checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
checking whether more special flags are required for pthreads... no
checking for PTHREAD_PRIO_INHERIT... yes
checking for RAII support... checking for clang -fblocks... yes
checking for clang strsep/strcmp optimization... prevent use of __string2_1bptr_p / strsep / strcmp from bits/string2.h
checking for embedded pjproject (may have to download)... configuring
[pjproject]  Verifying /var/folders/rf/mq84rkb50gqfnrfrrsm74c5d1tkx0l/T//pjproject-2.6.tar.bz2
/usr/bin/sed: illegal option -- r
usage: sed script [-Ealn] [-i extension] [file ...]
      sed [-Ealn] [-i extension] [-e script] ... [-f script_file] ... [file ...]
/usr/bin/sed: illegal option -- r
usage: sed script [-Ealn] [-i extension] [file ...]
      sed [-Ealn] [-i extension] [-e script] ... [-f script_file] ... [file ...]
[pjproject]  Verify successful
[pjproject]  Unpacking /var/folders/rf/mq84rkb50gqfnrfrrsm74c5d1tkx0l/T//pjproject-2.6.tar.bz2
[pjproject]  Applying patches
readlink: illegal option -- f
usage: readlink [-n] [file ...]
readlink: illegal option -- f
usage: readlink [-n] [file ...]
is not a directory
make: *** [source/.unpacked] Error 1
failed
configure: Unable to configure third-party/pjproject
configure: error: Re-run the ./configure command with 'NOISY_BUILD=yes' appended to see error details.
{code}

Marking as regression because it actually worked for me on some older OSX and older Asterisk (11 and 13) versions.
Comments:By: Asterisk Team (asteriskteam) 2017-10-11 20:09:21.810-0500

Thanks for creating a report! The issue has entered the triage process. That means the issue will wait in this status until a Bug Marshal has an opportunity to review the issue. Once the issue has been reviewed you will receive comments regarding the next steps towards resolution.

A good first step is for you to review the [Asterisk Issue Guidelines|https://wiki.asterisk.org/wiki/display/AST/Asterisk+Issue+Guidelines] if you haven't already. The guidelines detail what is expected from an Asterisk issue report.

Then, if you are submitting a patch, please review the [Patch Contribution Process|https://wiki.asterisk.org/wiki/display/AST/Patch+Contribution+Process].

By: Rusty Newton (rnewton) 2017-10-12 17:45:32.621-0500

Opening this up, but remember that MacOS is not a supported OS for Asterisk. Response times will reflect that and the issue may not get resolved at all. I encourage you to submit a patch for review if you are able.

By: Ivan Larionov (xeron) 2017-10-12 17:57:21.142-0500

Thanks. I'll try to find some time to create a patch but obviously can't promise anything.

Just FYI I'm not really trying to run asterisk on macOS (while some my colleagues do this and it actually possible). All I wanted to get is {{menuselect}} to figure out categories/options for our RPM package build system.

By: Friendly Automation (friendly-automation) 2017-11-21 05:23:34.387-0600

Change 7299 merged by Joshua Colp:
Build: Fix OSX build issues.

[https://gerrit.asterisk.org/7299|https://gerrit.asterisk.org/7299]

By: Friendly Automation (friendly-automation) 2017-11-21 05:23:41.660-0600

Change 7298 merged by Joshua Colp:
Build: Fix OSX build issues.

[https://gerrit.asterisk.org/7298|https://gerrit.asterisk.org/7298]

By: Friendly Automation (friendly-automation) 2017-11-21 05:24:12.190-0600

Change 7297 merged by Joshua Colp:
Build: Fix OSX build issues.

[https://gerrit.asterisk.org/7297|https://gerrit.asterisk.org/7297]