You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bu...@apache.org on 2013/10/25 20:25:40 UTC

[Bug 55706] New: broken apr version check in native v1.1.29 build; fails detect of installed v2.0.0

https://issues.apache.org/bugzilla/show_bug.cgi?id=55706

            Bug ID: 55706
           Summary: broken apr version check in native v1.1.29 build;
                    fails detect of installed v2.0.0
           Product: Tomcat Native
           Version: 1.1.29
          Hardware: All
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Library
          Assignee: dev@tomcat.apache.org
          Reporter: rand@sent.com

I'm building Tomcat 7.0.47.0 from src on

    uname -a
        Linux rand3.int 3.7.10-1.16-desktop #1 SMP PREEMPT Fri May 31 20:21:23
UTC 2013 (97c14ba) x86_64 x86_64 x86_64 GNU/Linux

Once built,

    service tomcat7-custom version
        jsvc (Apache Commons Daemon) 1.0.15-dev
        Copyright (c) 1999-2011 Apache Software Foundation.
        java version "1.7.0_15"
        OpenJDK Runtime Environment (build 1.7.0_15-b20)
        OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)
        commons daemon version "1.0.15-dev"
        commons daemon process (id: 23245, parent: 23244)
        Server version: Apache Tomcat/7.0.47
        Server built:   Oct 25 2013 10:07:09
        Server number:  7.0.47.0
        OS Name:        Linux
        OS Version:     3.7.10-1.16-desktop
        Architecture:   amd64
        JVM Version:    1.7.0_15-b20
        JVM Vendor:     Oracle Corporation

moving on to 'native',

    cd tomcat7/build/bin
    tar zxvf tomcat-native.tar.gz
    cd tomcat-native-1.1.29-src/jni/native

configure fails @ APR version check

    ./configure \
     --prefix=/usr/local \
     --with-apr=/usr/local/apache24x/bin/apr-2-config \
     --with-java-home=/etc/alternatives/java_sdk_openjdk \
     --with-ssl=/usr/local/src/openssl/1.0.1e \
     --libdir=/usr/lib64

        ...
        configure: loading site script /usr/share/site/x86_64-unknown-linux-gnu
        checking build system type... x86_64-unknown-linux-gnu
        checking host system type... x86_64-unknown-linux-gnu
        checking target system type... x86_64-unknown-linux-gnu
        checking for a BSD-compatible install... /usr/bin/install -c
        checking for working mkdir -p... yes
        Tomcat Native Version: 1.1.29
        checking for chosen layout... tcnative
        checking for APR... yes
        configure: error: You need APR version 1.2.1 or newer installed. For
optimal performance version 1.3.0 or newer is needed.

but,

    /usr/local/apache24x/bin/apr-2-config --version
        2.0.0

applying this patch

    cat /usr/local/src/tc-native.patch
            Only in native: config.log
            Only in native: config.nice
            diff -ur native.ORIG/configure native/configure
            --- native.ORIG/configure    2013-10-10 05:51:58.000000000 -0700
            +++ native/configure    2013-10-25 10:11:19.692085473 -0700
            @@ -1903,7 +1903,7 @@
                 TEST_X="test -x"
               fi

            -  acceptable_majors="1"
            +  acceptable_majors="2"

               apr_temp_acceptable_apr_config=""
               for apr_temp_major in $acceptable_majors
            @@ -2020,20 +2020,20 @@
               fi
               sapr_version="`echo $sapr_pversion|sed -e 's/\(a-z*\)$/.\1/'`"
               tc_save_IFS=$IFS; IFS=.; set $sapr_version; IFS=$tc_save_IFS
            -  if test "${1}" -lt "1"; then
            -    { { echo "$as_me:$LINENO: error: You need APR version 1.2.1 or
newer installed. For optimal performance version 1.3.0 or newer is needed." >&5
            -echo "$as_me: error: You need APR version 1.2.1 or newer
installed. For optimal performance version 1.3.0 or newer is needed." >&2;}
            -   { (exit 1); exit 1; }; }
            -  else
            -    if test "${2}" -lt "2"; then
            -      { { echo "$as_me:$LINENO: error: You need APR version 1.2.1
or newer installed. For optimal performance version 1.3.0 or newer is needed."
>&5
            -echo "$as_me: error: You need APR version 1.2.1 or newer
installed. For optimal performance version 1.3.0 or newer is needed." >&2;}
            -   { (exit 1); exit 1; }; }
            -    elif test "${2}" -lt "3"; then
            -      { echo "$as_me:$LINENO: WARNING: For optimal performance you
need APR version 1.3.0 or newer installed." >&5
            -echo "$as_me: WARNING: For optimal performance you need APR
version 1.3.0 or newer installed." >&2;}
            -    fi
            -  fi
            +#  if test "${1}" -lt "1"; then
            +#    { { echo "$as_me:$LINENO: error: You need APR version 1.2.1
or newer installed. For optimal performance version 1.3.0 or newer is needed."
>&5
            +#echo "$as_me: error: You need APR version 1.2.1 or newer
installed. For optimal performance version 1.3.0 or newer is needed." >&2;}
            +#   { (exit 1); exit 1; }; }
            +#  else
            +#    if test "${2}" -lt "2"; then
            +#      { { echo "$as_me:$LINENO: error: You need APR version 1.2.1
or newer installed. For optimal performance version 1.3.0 or newer is needed."
>&5
            +#echo "$as_me: error: You need APR version 1.2.1 or newer
installed. For optimal performance version 1.3.0 or newer is needed." >&2;}
            +#   { (exit 1); exit 1; }; }
            +#    elif test "${2}" -lt "3"; then
            +#      { echo "$as_me:$LINENO: WARNING: For optimal performance
you need APR version 1.3.0 or newer installed." >&5
            +#echo "$as_me: WARNING: For optimal performance you need APR
version 1.3.0 or newer installed." >&2;}
            +#    fi
            +#  fi

               APR_BUILD_DIR="`$apr_config --installbuilddir`"

    patch -p1 <  /usr/local/src/tc-native.patch
        patching file configure

removes the broken check, and the build proceeds,

    ./configure ...
    make
    make install
    ls -al /usr/lib64/libtcnative*
        -rw-r--r-- 1 root root 214K Apr 15 14:46 /usr/lib64/libtcnative-1.a
        -rwxr-xr-x 1 root root 1.1K Apr 15 14:46 /usr/lib64/libtcnative-1.la*
        lrwxrwxrwx 1 root root   23 Apr 15 14:46 /usr/lib64/libtcnative-1.so ->
libtcnative-1.so.0.1.27*
        lrwxrwxrwx 1 root root   23 Apr 15 14:46 /usr/lib64/libtcnative-1.so.0
-> libtcnative-1.so.0.1.27*
        -rwxr-xr-x 1 root root 186K Apr 15 14:46
/usr/lib64/libtcnative-1.so.0.1.27*
    ldd /usr/${LIBDIR}/libtcnative-1.so
        linux-vdso.so.1 =>  (0x00007fffc4549000)
        libapr-2.so.0 => /usr/local/apache24x/lib/libapr-2.so.0
(0x00007feabdd3a000)
        libssl.so.1.0.0 => /usr/local/ssl/lib64/libssl.so.1.0.0
(0x00007feabdacf000)
        libcrypto.so.1.0.0 => /usr/local/ssl/lib64/libcrypto.so.1.0.0
(0x00007feabd6e4000)
        libuuid.so.1 => /lib64/libuuid.so.1 (0x00007feabd4a1000)
        librt.so.1 => /lib64/librt.so.1 (0x00007feabd298000)
        libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007feabd05d000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007feabce40000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007feabcc3b000)
        libexpat.so.1 => /lib64/libexpat.so.1 (0x00007feabca10000)
        libc.so.6 => /lib64/libc.so.6 (0x00007feabc680000)
        libz.so.1 => /lib64/libz.so.1 (0x00007feabc467000)
        /lib64/ld-linux-x86-64.so.2 (0x00007feabe1c1000)

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


[Bug 55706] broken apr version check in native v1.1.29 build; fails detect of installed v2.0.0

Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=55706

--- Comment #2 from rand <ra...@sent.com> ---
> 1. APR 2.x hasn't yet been released

True.  It will be.

There's value, if not priority, in taking notice now, and handling the case
appropriately.

> 2. Your patch looks like it would fail to build against apr 1.4.8, the
> current release version

I'm not submitting the patch for production, but rather as a crude workaround
until a proper fix can be worked out.

In any case, spec'ing

  --with-apr=/usr/local/apache24x/bin/apr-2-config

can, and arguably should, trivially return version # in a check, and respond
appropriately.

> 3. IIRC, tcnative (or Tomcat?) checks APR version at runtime, too, so you
> may still have a problem using your binary

Using apr2, revno sync'd with the httpd src tree, I haven't had any problems as
yet.  That I'm aware of.

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


[Bug 55706] broken apr version check in native v1.1.29 build; fails detect of installed v2.0.0

Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=55706

--- Comment #1 from Christopher Schultz <ch...@christopherschultz.net> ---
Some notes:

1. APR 2.x hasn't yet been released
2. Your patch looks like it would fail to build against apr 1.4.8, the current
release version
3. IIRC, tcnative (or Tomcat?) checks APR version at runtime, too, so you may
still have a problem using your binary

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org