{"action":"created","issue":{"url":"https://api.github.com/repos/apache/arrow/issues/2818","repository_url":"https://api.github.com/repos/apache/arrow","labels_url":"https://api.github.com/repos/apache/arrow/issues/2818/labels{/name}","comments_url":"https://api.github.com/repos/apache/arrow/issues/2818/comments","events_url":"https://api.github.com/repos/apache/arrow/issues/2818/events","html_url":"https://github.com/apache/arrow/issues/2818","id":372813032,"node_id":"MDU6SXNzdWUzNzI4MTMwMzI=","number":2818,"title":"To make libarrow compilable on Alpine, change how backtracing is guarded","user":{"login":"bskaggs","id":3201240,"node_id":"MDQ6VXNlcjMyMDEyNDA=","avatar_url":"https://avatars2.githubusercontent.com/u/3201240?v=4","gravatar_id":"","url":"https://api.github.com/users/bskaggs","html_url":"https://github.com/bskaggs","followers_url":"https://api.github.com/users/bskaggs/followers","following_url":"https://api.github.com/users/bskaggs/following{/other_user}","gists_url":"https://api.github.com/users/bskaggs/gists{/gist_id}","starred_url":"https://api.github.com/users/bskaggs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bskaggs/subscriptions","organizations_url":"https://api.github.com/users/bskaggs/orgs","repos_url":"https://api.github.com/users/bskaggs/repos","events_url":"https://api.github.com/users/bskaggs/events{/privacy}","received_events_url":"https://api.github.com/users/bskaggs/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":6,"created_at":"2018-10-23T05:23:30Z","updated_at":"2018-11-27T14:30:21Z","closed_at":null,"author_association":"NONE","body":"I was able to get libarrow and pyarrow to compile and run on Alpine in Docker, but only after I used `sed` to remove the [inclusion of `execinfo.h`](https://github.com/apache/arrow/blob/master/cpp/src/arrow/util/logging.cc#L21) and the related [`ifdef` block in `PrintBacktrace`](https://github.com/apache/arrow/blob/master/cpp/src/arrow/util/logging.cc#L71), which removes the call to `backtrace`.\r\n\r\nThis leads me to believe that if you improve how you check for `backtrace` (not just checking if `_WIN32` is _not_ defined), perhaps by using [`FindBacktrace`](https://cmake.org/cmake/help/latest/module/FindBacktrace.html), things would compile cleanly on Alpine.  I'm not exactly sure how to do this, so I'm opening this issue.\r\n\r\nHere's my working Dockerfile:\r\n\r\n```docker\r\nFROM python:3.7-alpine3.8\r\n\r\nRUN apk add --no-cache \\\r\n            git \\\r\n            build-base \\\r\n            cmake \\\r\n            bash \\\r\n            jemalloc-dev \\\r\n            boost-dev \\\r\n            autoconf \\\r\n            zlib-dev \\\r\n            flex \\\r\n            bison\r\n\r\nRUN pip install six numpy pandas cython pytest\r\n\r\nRUN git clone https://github.com/apache/arrow.git\r\n\r\nRUN mkdir /arrow/cpp/build    \r\nWORKDIR /arrow/cpp/build\r\n\r\nENV ARROW_BUILD_TYPE=release\r\nENV ARROW_HOME=/usr/local\r\nENV PARQUET_HOME=/usr/local\r\n\r\n#disable backtrace\r\nRUN sed -i -e '/_EXECINFO_H/,/endif/d' -e '/execinfo/d' ../src/arrow/util/logging.cc\r\n\r\nRUN cmake -DCMAKE_BUILD_TYPE=$ARROW_BUILD_TYPE \\\r\n          -DCMAKE_INSTALL_LIBDIR=lib \\\r\n          -DCMAKE_INSTALL_PREFIX=$ARROW_HOME \\\r\n          -DARROW_PARQUET=on \\\r\n          -DARROW_PYTHON=on \\\r\n          -DARROW_PLASMA=on \\\r\n          -DARROW_BUILD_TESTS=OFF \\\r\n          ..\r\nRUN make -j$(nproc)\r\nRUN make install\r\n\r\nWORKDIR /arrow/python\r\n\r\nRUN python setup.py build_ext --build-type=$ARROW_BUILD_TYPE \\\r\n       --with-parquet --inplace\r\n      #--with-plasma  # commented out because plasma tests don't work\r\nRUN py.test pyarrow\r\n```"},"comment":{"url":"https://api.github.com/repos/apache/arrow/issues/comments/442078115","html_url":"https://github.com/apache/arrow/issues/2818#issuecomment-442078115","issue_url":"https://api.github.com/repos/apache/arrow/issues/2818","id":442078115,"node_id":"MDEyOklzc3VlQ29tbWVudDQ0MjA3ODExNQ==","user":{"login":"wesm","id":329591,"node_id":"MDQ6VXNlcjMyOTU5MQ==","avatar_url":"https://avatars2.githubusercontent.com/u/329591?v=4","gravatar_id":"","url":"https://api.github.com/users/wesm","html_url":"https://github.com/wesm","followers_url":"https://api.github.com/users/wesm/followers","following_url":"https://api.github.com/users/wesm/following{/other_user}","gists_url":"https://api.github.com/users/wesm/gists{/gist_id}","starred_url":"https://api.github.com/users/wesm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wesm/subscriptions","organizations_url":"https://api.github.com/users/wesm/orgs","repos_url":"https://api.github.com/users/wesm/repos","events_url":"https://api.github.com/users/wesm/events{/privacy}","received_events_url":"https://api.github.com/users/wesm/received_events","type":"User","site_admin":false},"created_at":"2018-11-27T14:30:21Z","updated_at":"2018-11-27T14:30:21Z","author_association":"MEMBER","body":"Can you submit a pull request with changes to make the build work?"}}
{"actor":{"display_login":"wesm"}}