-
Notifications
You must be signed in to change notification settings - Fork 138
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
1.1.19: configure stops with an error when pg_config is not found and sqlite3 is now required for compiling #270
Comments
A clean rebuild of my 1.1.18 Docker image works just fine. My Docker image is based on Ubuntu Xenial (16.04). |
My gearmand Docker image does not utilize PostgreSQL at all. Adding When configuring 1.1.18, it just says:
and it just keeps on configuring. |
Found a workaround: Specify |
But then the build still fails (ugh!) with errors, like this:
Separate issue?? |
I tried adding
|
Adding Any ideas as to what went wrong here?? |
I don't know, it still feels like there's some weird bug lurking in the m4 and we're hitting it. I'm thinking a bisect is in order to find out when this broke. |
Looking at the diffs of 1.1.19's configure and 1.1.18's configure, and this diff looks like the reason for the sqlite issue: @@ -19972,6 +19725,7 @@
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }
success="no"
+ WANT_SQLITE3="no"
fi There are many, many diffs between the PostgreSQL portions of these configure scripts, too. The 1.1.19 configure script claims it was created by the same version of Autoconf as 1.1.18's, so why did it result in a vastly different script?? How is that possible? I'm not sure how autoconf works, honestly. Can anyone spare a clue? |
I really doubt it. m4/ax_lib_sqlite3.m4 and m4/ax_lib_postgresql.m4 haven't changed in 8 years. And the stuff that's in those files is not what's in the 1.1.19's configure. Could something have overrode our m4 files? |
I have a Dockerfile based on Ubuntu 16.04 which git clones the master branch, runs |
Ditto for Ubuntu 18.04 (using gcc-8/g++-8) and 14.04, by the way. FROM ubuntu:16.04
MAINTAINER gearmand
ARG version=16.04
ARG GEARMAN_REPO=https://github.com/gearman/gearmand
LABEL version="${version}" description="Gearman SSL Job Server Image"
# Configure environment
ENV DEBIAN_FRONTEND=noninteractive \
TZ=America/New_York \
HOME=/root
# Install packages
RUN apt-get update \
&& apt-get -y upgrade \
&& apt-get -y install \
automake \
autoconf \
libtool \
make \
curl \
gcc \
g++ \
git \
gperf \
libboost-all-dev \
libevent-dev \
libhiredis-dev \
libssl-dev \
libtokyocabinet-dev \
python3-sphinx \
uuid-dev \
wget \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Retrieve the source code and bootstrap
RUN cd /tmp && git clone --depth 1 --branch master ${GEARMAN_REPO}.git
WORKDIR /tmp/gearmand
RUN ./bootstrap.sh -a
RUN ./configure --enable-ssl 2>&1 | tee ./configure.log
RUN make 2>&1 | tee ./build.log
RUN make test 2>&1 | tee ./test.log The resulting configure file from the Essentially, I think the 1.1.19 release tarball wasn't packaged correctly.... @SpamapS : How does your release packaging procedure differ from the above Dockerfile? |
The m4 files in the 1.1.19 release tarball do not match the m4 files in this repository. |
Thanks Ed, I think I was rushing and ran I'll try making a 1.1.19.1 tarball from a clean VM. (and I'll test it before release this time!) |
Please try 1.1.19.1, which should work fine. |
bootstrap force overriding of m4 files: Line 1096 in a6bd168
Source build on Ubuntu 18.04 overrides 27 files:
|
Well, um, don’t do that? |
Wouldn't it be good to put those update into repo? |
I've tested 1.1.19.1, and it compiled fine and did not exhibit the problems detailed earlier. But the m4 files in the m4 directory still do not match the m4 files in this repo:
Clearly, the release procedure is different from I would expect. Could the release procedure be documented somewhere? |
If they improve something, sure, but it should be done in a PR. |
libtoolize 2.4.6 produces current files see gearman#270 (comment)
My Ubuntu 18.04 build doesn't do this. I wonder what's different about your build? My aclocal on Ubuntu 18.04 is version 1.15.1. FROM ubuntu:18.04
MAINTAINER gearmand
ARG version=18.04
ARG GEARMAN_REPO=https://github.com/gearman/gearmand
LABEL version="${version}" description="Gearman SSL Job Server Image"
# Configure environment
ENV DEBIAN_FRONTEND=noninteractive \
TZ=America/New_York \
HOME=/root
# Install packages
RUN apt-get update \
&& apt-get -y upgrade \
&& apt-get -y install \
automake \
autoconf \
libtool \
make \
curl \
gcc-8 \
g++-8 \
git \
gperf \
libboost-all-dev \
libevent-dev \
libhiredis-dev \
libssl-dev \
libtokyocabinet-dev \
tcsh \
python3-sphinx \
uuid-dev \
wget \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Retrieve the source code and bootstrap
RUN cd /tmp && git clone --depth 1 --branch master ${GEARMAN_REPO}.git
WORKDIR /tmp/gearmand
RUN ./bootstrap.sh -a
RUN env CC=gcc-8 CXX=g++-8 ./configure --enable-ssl 2>&1 | tee ./configure.log
RUN make 2>&1 | tee ./build.log
RUN make test 2>&1 | tee ./test.log After running
|
Please fix your
The same in my environment. |
I'm sorry, but I don't understand what you are saying. EDIT: Oh, OK. I see what you mean now. That was just an error in my copying and pasting. My Dockerfile does not have "building" there. I've edited the above post to remove it. |
Quoting Ed Sabol (2020-02-19 13:42:26)
Please try 1.1.19.1, which should work fine.
I've tested 1.1.19.1, and it compiled fine and did not exhibit the
problems detailed earlier. make test passed on the second try.
t/multi_client FAILed on the first try.
But the m4 files in the m4 directory still do not match the m4 files in
this repo:
% wget https://github.com/gearman/gearmand/releases/download/1.1.19.1/gearmand-1
.1.19.1.tar.gz
% tar xzvf gearmand-1.1.19.1.tar.gz
% cd gearmand-1.1.19.1/m4/
% diff -ur . ../../gearmand/m4/
Only in ../../gearmand/m4/: ax_cxx_compile_stdcxx_0x.m4
Only in ../../gearmand/m4/: ax_cxx_header_stdcxx_98.m4
Only in ../../gearmand/m4/: ax_switch_flags.m4
Only in ../../gearmand/m4/: lib-ld.m4
Only in ../../gearmand/m4/: lib-link.m4
Only in ../../gearmand/m4/: lib-prefix.m4
Only in .: libtool.m4
Only in .: lt~obsolete.m4
Only in .: ltoptions.m4
Only in .: ltsugar.m4
Only in .: ltversion.m4
Only in ../../gearmand/m4/: pandora_check_cxx_standard.m4
Only in ../../gearmand/m4/: pandora_clock_gettime.m4
Only in ../../gearmand/m4/: pandora_extensions.m4
Only in ../../gearmand/m4/: pandora_have_gcc_atomics.m4
Only in ../../gearmand/m4/: pandora_plugins.m4
Only in ../../gearmand/m4/: pandora_print_callstack.m4
Only in ../../gearmand/m4/: pandora_python3_devel.m4
Only in ../../gearmand/m4/: pandora_stack_direction.m4
Only in ../../gearmand/m4/: pandora_use_pipe.m4
Only in ../../gearmand/m4/: pandora_with_perl.m4
Only in ../../gearmand/m4/: pandora_with_python3.m4
Only in ../../gearmand/m4/: pandora_with_python.m4
Only in ../../gearmand/m4/: pandora_with_r.m4
Only in ../../gearmand/m4/: pandora_with_ruby.m4
Only in ../../gearmand/m4/: pkg.m4
Only in ../../gearmand/m4/: progtest.m4
Only in ../../gearmand/m4/: README.md
Clearly, the release procedure is different from I would expect. Could
the release procedure be documented somewhere?
Great idea, I'll try to get some cycles for a more complete writeup but
here's the basics:
1) On a clean VM, clone gearmand
2) git tag -s {release} describing overall release changes
3) ./bootstrap.sh
4) assuming clean build and test seen there: `make dist` -- this makes
the tarball
5) copy tarball to another dir, extract, ./configure && make -j && make
install
6) smoke test gearmand
7) gpg --armor --sign --detach {tarball}
8) Create release on github, upload tarball + signature
The reason this makes the m4 files different in the tarball is that it
uses the versions packaged along with auto tools. I'm not a deep expert
here (I'm pretty sure nobody actually is), but I think the approach
@p-alik is taking to update them in the git repo is correct, as long as
we can get it to build with all the stuff turned on.
|
Quoting Ed Sabol (2020-02-20 18:45:50)
bootstrap force overriding of m4 files:
...
Source build on Ubuntu 18.04 overrides 27 files:
My Ubuntu 18.04 build doesn't do this. I wonder what's different about
your build? My aclocal on Ubuntu 18.04 is version 1.15.1.
FROM ubuntu:18.04
MAINTAINER gearmand
ARG version=18.04
ARG GEARMAN_REPO=https://github.com/gearman/gearmand
LABEL version="${version}" description="Gearman SSL Job Server Image"
# Configure environment
ENV DEBIAN_FRONTEND=noninteractive \
TZ=America/New_York \
HOME=/root
# Install packages
RUN apt-get update \
&& apt-get -y upgrade \
&& apt-get -y install \
automake \
autoconf \
libtool \
make \
curl \
gcc-8 \
g++-8 \
git \
gperf \
libboost-all-dev \
libevent-dev \
libhiredis-dev \
libssl-dev \
libtokyocabinet-dev \
tcsh \
python3-sphinx \
uuid-dev \
wget \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Retrieve the source code and bootstrap
RUN cd /tmp && git clone --depth 1 --branch master ${GEARMAN_REPO}.git
WORKDIR /tmp/gearmand
RUN ./bootstrap.sh -a
RUN env CC=gcc-8 CXX=g++-8 ./configure --enable-ssl 2>&1 | tee ./configure.log
RUN make 2>&1 | tee ./build.log
RUN make test 2>&1 | tee ./test.log
The Dockerfiles like the one above have been useful for me. Can you
submit it as Dockerfile in the repo root?
|
The main difference I see from what you do and what I do (and what Travis CI does) is that you execute
Sure, I get that, but I'm using the latest versions of aclocal and automake on Ubuntu 18.04... Do you have a different versions?
Just the one Dockerfile or something like this?
|
I went to update the Docker image I use at work, and I encountered the following when building:
All I did was change the version number of the gearmand.tar.gz file from 1.1.18 to 1.1.19.
The text was updated successfully, but these errors were encountered: