ports/103195: archivers/rpm4 fails to build python libs for python 2.4

Eygene Ryabinkin rea-fbsd at codelabs.ru
Tue Sep 12 15:40:22 UTC 2006


>Number:         103195
>Category:       ports
>Synopsis:       archivers/rpm4 fails to build python libs for python 2.4
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Sep 12 15:40:21 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Eygene A. Ryabinkin
>Release:        FreeBSD 6.1-STABLE i386
>Organization:
Code Labs
>Environment:
System: FreeBSD XXXXX 6.1-STABLE FreeBSD 6.1-STABLE #2: Mon Sep 11 09:56:59 MSD 2006 root at XXXXX:/usr/src/sys/i386/compile/XXXXXX i386


	
>Description:
Port archivers/rpm4 fails to recognize python 2.4, because its configure
script is rather old. So no python bindings are build when WITH_PYTHON
knob is on and deinstallation reports broken package list.

>How-To-Repeat:
Build and install archivers/rpm4 with WITH_PYTHON defined and python 2.4
installed. You will not get python bindings in
/usr/local/share/python2.4/site-packages and 'make deinstall' will shout
that package list is broken.

>Fix:
Add recognition of python 2.4 to the configure script. It is done in a
same manner that for python 2.3 (it was also added by patch, as I see).

The new file 'files/patch-configure' follows (it is no a patch for a
patch, it is just the new patchfile; weird, heh?)

--- configure.orig	Thu Feb 14 02:03:27 2002
+++ configure	Tue Sep 12 10:54:53 2006
@@ -186,6 +186,8 @@
 ac_help="$ac_help
   --with-libiconv-prefix=DIR  search for libiconv in DIR/include and DIR/lib"
 ac_help="$ac_help
+  --with-popt-prefix=DIR  search for popt in DIR/include and DIR/lib"
+ac_help="$ac_help
   --disable-nls           do not use Native Language Support"
 ac_help="$ac_help
   --with-included-gettext use the GNU gettext library included here"
@@ -7381,6 +7383,8 @@
 #  AC_DEFINE(HAVE_GZSEEK)
 #fi
 
+WITH_POPT_INCLUDE=$ac_default_prefix/include
+WITH_POPT_LIB=-L$ac_default_prefix/lib -lpopt
 
 
 
@@ -8335,6 +8339,47 @@
   DBLIBSRCS="$DBLIBSRCS db3.c"; libdb3="-ldb"
 else
   echo "$ac_t""no" 1>&6
+echo $ac_n "checking for db_create in -ldb3""... $ac_c" 1>&6
+echo "configure:8188: checking for db_create in -ldb3" >&5
+ac_lib_var=`echo db3'_'db_create | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-ldb3 $libthread $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 8196 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char db_create();
+
+int main() {
+db_create()
+; return 0; }
+EOF
+if { (eval echo configure:8207: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  DBLIBSRCS="$DBLIBSRCS db3.c"; libdb3="-ldb3"
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
 fi
 
       
@@ -8659,6 +8704,100 @@
 
 fi
 
+# Check whether --with-popt-prefix or --without-popt-prefix was given.
+if test "${with_popt_prefix+set}" = set; then
+  withval="$with_popt_prefix"
+  
+    for dir in `echo "$withval" | tr : ' '`; do
+      if test -d $dir/include; then
+        CPPFLAGS="$CPPFLAGS -I$dir/include";
+        WITH_POPT_INCLUDE="-I$dir/include";
+      fi
+      if test -d $dir/lib; then
+        LDFLAGS="$LDFLAGS -L$dir/lib";
+        WITH_POPT_LIB="-L$dir/lib -lpopt";
+      fi
+    done
+fi
+
+echo $ac_n "checking for popt.h""... $ac_c" 1>&6
+echo "configure:8724: checking for popt.h" >&5
+ac_lib_var=`echo popt'_'h | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_CPPFLAGS="$CPPFLAGS"
+CPPFLAGS="${WITH_POPT_INCLUDE}  $CPPFLAGS"
+cat > conftest.$ac_ext <<EOF
+#line 8494 "configure"
+#include "confdefs.h"
+#include <popt.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+
+int main() {
+return 0; }
+EOF
+if { (eval echo configure:8505: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+CPPFLAGS="$ac_save_CPPFLAGS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+  echo "configure: error: sorry rpm requires popt.h" 1>&2; exit 1;
+fi
+
+echo $ac_n "checking for poptGetOptArg in -lpopt""... $ac_c" 1>&6
+echo "configure:8724: checking for poptGetOptArg in -lpopt" >&5
+ac_lib_var=`echo popt'_'poptGetOptArg | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="${WITH_POPT_LIB}  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 8494 "configure"
+#include "confdefs.h"
+#include <popt.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+
+int main() {
+const char *foo = poptGetNextOpt(NULL);
+return 0; }
+EOF
+if { (eval echo configure:8505: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+  echo "configure: error: sorry rpm requires libpopt" 1>&2; exit 1;
+fi
 
 
 for ac_func in personality
@@ -12512,6 +12651,68 @@
 WITH_PYTHON_VERSION=
 if test $withval = auto ; then
 
+  echo $ac_n "checking for python 2.4""... $ac_c" 1>&6
+echo "configure:12517: checking for python 2.4" >&5
+  if test "$cross_compiling" = yes; then
+  withval=yes
+else
+  cat > conftest.$ac_ext <<EOF
+#line 12522 "configure"
+#include "confdefs.h"
+
+#include <python2.4/Python.h>
+main() {
+  exit(strncmp("2.4", PY_VERSION, 3));
+} 
+EOF
+if { (eval echo configure:12530: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  withval=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  withval=no
+fi
+rm -fr conftest*
+fi
+
+  echo "$ac_t""$withval" 1>&6
+  if test $withval = yes ; then
+    WITH_PYTHON_VERSION="2.4"
+  else
+
+  echo $ac_n "checking for python 2.3""... $ac_c" 1>&6
+echo "configure:12517: checking for python 2.3" >&5
+  if test "$cross_compiling" = yes; then
+  withval=yes
+else
+  cat > conftest.$ac_ext <<EOF
+#line 12522 "configure"
+#include "confdefs.h"
+
+#include <python2.3/Python.h>
+main() {
+  exit(strncmp("2.3", PY_VERSION, 3));
+} 
+EOF
+if { (eval echo configure:12530: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  withval=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  withval=no
+fi
+rm -fr conftest*
+fi
+
+  echo "$ac_t""$withval" 1>&6
+  if test $withval = yes ; then
+    WITH_PYTHON_VERSION="2.3"
+  else
+
   echo $ac_n "checking for python 2.2""... $ac_c" 1>&6
 echo "configure:12517: checking for python 2.2" >&5
   if test "$cross_compiling" = yes; then
@@ -12577,6 +12778,10 @@
 
 fi
 
+fi
+
+fi
+
 if test -n "$WITH_PYTHON_VERSION" ; then
   WITH_PYTHON_SUBDIR=python
   WITH_PYTHON_SUBPACKAGE=1
@@ -13130,21 +13335,7 @@
 
 echo "$ac_t""$ROOT_GROUP" 1>&6
 
-
-if test "x$varprefix" = "x"; then
-    # For /usr and /usr/local, we want the 'var' directory to go
-    # in /var and /var/local respectively. For everything else, 
-    # just put the 'var' directory in prefix/var.
-    case $prefix in
-	/usr | /usr/local )
-	    varprefix=`echo $prefix | sed 's/usr/var/'` ;;
-	NONE)
- 	    varprefix=`echo $ac_default_prefix | sed 's/usr/var/'` ;;
-	*) 
-	    varprefix=$prefix/var ;;
-    esac	
-fi
-
+varprefix=/var
 
 if test "x$tmpdir" = "x"; then
     if test -d $varprefix/tmp; then
@@ -13349,7 +13540,7 @@
 
 
 
-subdirs="popt beecrypt zlib $WITH_DB_SUBDIR"
+subdirs="beecrypt $WITH_DB_SUBDIR"
 
 
 trap '' 1 2 15
@@ -13578,6 +13769,8 @@
 s%@WITH_ZLIB_SUBDIR@%$WITH_ZLIB_SUBDIR%g
 s%@WITH_ZLIB_INCLUDE@%$WITH_ZLIB_INCLUDE%g
 s%@WITH_ZLIB_LIB@%$WITH_ZLIB_LIB%g
+s%@WITH_POPT_INCLUDE@%$WITH_POPT_INCLUDE%g
+s%@WITH_POPT_LIB@%$WITH_POPT_LIB%g
 s%@WITH_DB_SUBDIR@%$WITH_DB_SUBDIR%g
 s%@WITH_INTERNAL_DB@%$WITH_INTERNAL_DB%g
 s%@DBLIBSRCS@%$DBLIBSRCS%g
@@ -13889,7 +14082,6 @@
           ;;
         esac
       done
-	echo timestamp > popt/stamp-h.in
 	echo timestamp > beecrypt/stamp-h.in
 	echo timestamp > stamp-h.in
   
@@ -13925,7 +14117,7 @@
     esac
   done
 
-  for ac_config_dir in popt beecrypt zlib $WITH_DB_SUBDIR; do
+  for ac_config_dir in beecrypt $WITH_DB_SUBDIR; do
 
     # Do not complain, so a configure script can configure whichever
     # parts of a large source tree are present.
>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list