BIND 10 #1640: incomplete pc file for botan and wrong filename for botan-config

BIND 10 Development do-not-reply at isc.org
Sat Feb 11 16:25:31 UTC 2012


#1640: incomplete pc file for botan and wrong filename for botan-config
-------------------------------------+-------------------------------------
                   Reporter:  jreed  |                 Owner:  UnAssigned
                       Type:         |                Status:  new
  defect                             |             Milestone:
                   Priority:  minor  |  Sprint-20120221
                  Component:  build  |            Resolution:
  system                             |             Sensitive:  0
                   Keywords:         |           Sub-Project:  Core
            Defect Severity:  N/A    |  Estimated Difficulty:  4
Feature Depending on Ticket:         |           Total Hours:  0
        Add Hours to Ticket:  0      |
                  Internal?:  0      |
-------------------------------------+-------------------------------------

Comment (by jaspain):

 I did some additional testing on Ubuntu Oneiric of bind10 configure in
 relation to botan. Starting with botan 1.10.1 built from source and
 installed, and the package pkg-config removed, I got the following
 excerpted output from bind10 configure:
 checking for pkg-config... no
 checking for botan-config... no
 ./configure: line 15911: --libs: command not found
 ./configure: line 15912: --cflags: command not found
 checking botan/botan.h usability... no
 checking botan/botan.h presence... no
 checking for botan/botan.h... no
 configure: error: Missing required header files.

 Now to simulate bind10 configure being able to find botan-
 config-<version>, I executed:
 ln /usr/bin/botan-config-1.10 /usr/bin/botan-config

 Now bind10 configure behaved as follows:
 checking for pkg-config... no
 checking for botan-config... /usr/bin/botan-config
 checking botan/botan.h usability... no
 checking botan/botan.h presence... no
 checking for botan/botan.h... no
 configure: error: Missing required header files.

 The output of botan-config is as follows:
 root at oneiric:~/bind10-devel-20120119# botan-config --prefix
 /usr
 root at oneiric:~/bind10-devel-20120119# botan-config --cflags
 root at oneiric:~/bind10-devel-20120119# botan-config --libs
 -lbotan-1.10 -lbz2 -lcrypto -ldl -lgmp -lpthread -lrt -lz

 Note that 'botan-config --cflags' returns null. Looking at botan-config
 itself, the relevant code is:
 --cflags)
         if [ $prefix != "/usr" -a $prefix != "/usr/local" ]
         then
            echo -I$prefix/$includedir
         fi
         ;;

 I'm not sure why the botan people don't want to return any cflags when
 --prefix is /usr or /usr/local. Perhaps -I/usr/include/botan-1.10 or
 -I/usr/local/include/botan-1.10 would be considered default paths by g++?
 Anyway, I commented out the conditional logic in botan-config for --cflags
 with the following result:
 root at oneiric:~/bind10-devel-20120119# botan-config --cflags
 -I/usr/include/botan-1.10

 Now bind10 configure succeeds with botan:
 checking for pkg-config... no
 checking for botan-config... /usr/bin/botan-config
 checking botan/botan.h usability... yes
 checking botan/botan.h presence... yes
 checking for botan/botan.h... yes
 checking for Botan library... yes

 But a little later:
 checking boost/function.hpp usability... yes
 checking boost/function.hpp presence... yes
 checking for boost/function.hpp... yes
 checking for pthread_create in -lpthread... yes
 checking for pkg-config... no
 configure: error: Please install pkg-config

 The easiest solution to this problem, since pkg-config seems to be
 required anyway, might be to cause bind10 configure to error out when it
 checks for and doesn't find pkg-config just prior to checking for botan.

 Otherwise if it is desirable to detect botan versions greater than 1.8
 without pkg-config, then the following will be required:
 1. Check for and be able to use $prefix/bin/botan-config-(.*) as well as
 just $prefix/bin/botan-config. Here (.*) is a regular expression intended
 to capture the botan version number, hereinafter referred to as $botanVer.
 2. If 'botan-config-$botanVer --cflags' returns null, then manually look
 for the presence of the directory $prefix/include/botan-$botanVer. This
 directory should contain a botan directory which in turn should contain
 all the botan *.h files.

 Hopefully this will be easy to implement. Note that Ubuntu Precise
 Pangolin (12.04LTS) due for release at the end of April will provide botan
 1.10.0 as a standard package. Thanks. Jeff.

-- 
Ticket URL: <http://bind10.isc.org/ticket/1640#comment:6>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list