r18711 - gnucash/trunk - Bug #610348: Add compiling our own binary of libbonoboui because the ftp.gnome.org binary still depends on the obsolete libxml2.dll.

Christian Stimming cstim at code.gnucash.org
Tue Feb 23 15:10:31 EST 2010


Author: cstim
Date: 2010-02-23 15:10:31 -0500 (Tue, 23 Feb 2010)
New Revision: 18711
Trac: http://svn.gnucash.org/trac/changeset/18711

Added:
   gnucash/trunk/packaging/win32/libbonoboui-2.24.2.patch
Modified:
   gnucash/trunk/.gitignore
   gnucash/trunk/packaging/win32/defaults.sh
   gnucash/trunk/packaging/win32/dist.sh
   gnucash/trunk/packaging/win32/install.sh
Log:
Bug #610348: Add compiling our own binary of libbonoboui because the ftp.gnome.org binary still depends on the obsolete libxml2.dll.

However, we still download the erroneous binary and unpack it into $GNOME_DIR
because libgnomeui depends on libbonoboui which in turn depends on libgnome.
Hence, libbonoboui cannot be compiled before libgnome-dev is unpacked, but
libgnomeui won't report to be installed correctly before libbonoboui is
available as well. Theoretically, we would have to split the inst_gnome step
so that it first unpacks libgnome et al., then we run the inst_libbonoboui
step, then we run the second part of inst_gnome which would be something like
inst_gnomeui. I'm lazy, so I silently overwrite the libbonoboui DLL with
our hand-compiled version and that's it.

Modified: gnucash/trunk/.gitignore
===================================================================
--- gnucash/trunk/.gitignore	2010-02-23 20:04:30 UTC (rev 18710)
+++ gnucash/trunk/.gitignore	2010-02-23 20:10:31 UTC (rev 18711)
@@ -119,3 +119,4 @@
 src/bin/gnucash-bin.o
 gnucash-*.*.*/
 gnucash-*.*.*.tar.*
+packaging/win32/custom.sh

Modified: gnucash/trunk/packaging/win32/defaults.sh
===================================================================
--- gnucash/trunk/packaging/win32/defaults.sh	2010-02-23 20:04:30 UTC (rev 18710)
+++ gnucash/trunk/packaging/win32/defaults.sh	2010-02-23 20:10:31 UTC (rev 18711)
@@ -209,8 +209,6 @@
 set_default LIBGNOME_DEV_URL "$GNOME_WIN32_URL/libgnome/2.24/libgnome-dev_2.24.1-1_win32.zip"
 set_default LIBGNOMECANVAS_URL "$GNOME_WIN32_URL/libgnomecanvas/2.20/libgnomecanvas-2.20.1.zip"
 set_default LIBGNOMECANVAS_DEV_URL "$GNOME_WIN32_URL/libgnomecanvas/2.20/libgnomecanvas-dev-2.20.1.zip"
-set_default LIBBONOBOUI_URL "$GNOME_WIN32_URL/libbonoboui/2.24/libbonoboui_2.24.0-1_win32.zip"
-set_default LIBBONOBOUI_DEV_URL "$GNOME_WIN32_URL/libbonoboui/2.24/libbonoboui-dev_2.24.0-1_win32.zip"
 set_default LIBGNOMEUI_URL "$GNOME_WIN32_URL/libgnomeui/2.22/libgnomeui-2.22.1.zip"
 set_default LIBGNOMEUI_DEV_URL "$GNOME_WIN32_URL/libgnomeui/2.22/libgnomeui-dev-2.22.1.zip"
 set_default LIBGLADE_URL "$GNOME_WIN32_URL/libglade/2.6/libglade_2.6.4-1_win32.zip"
@@ -220,6 +218,12 @@
 set_default GTK_DOC_URL "$GNOME_MIRROR/sources/gtk-doc/1.13/gtk-doc-1.13.tar.bz2"
 set_default GNOME_DIR $GLOBAL_DIR\\gnome
 
+set_default LIBBONOBOUI_URL "$GNOME_WIN32_URL/libbonoboui/2.24/libbonoboui_2.24.0-1_win32.zip"
+set_default LIBBONOBOUI_DEV_URL "$GNOME_WIN32_URL/libbonoboui/2.24/libbonoboui-dev_2.24.0-1_win32.zip"
+set_default LIBBONOBOUI_SRC_URL "$GNOME_MIRROR/sources/libbonoboui/2.24/libbonoboui-2.24.2.tar.bz2"
+set_default LIBBONOBOUI_PATCH `pwd`/libbonoboui-2.24.2.patch
+set_default LIBBONOBOUI_DIR $GLOBAL_DIR\\libbonoboui
+
 set_default SWIG_URL "$SF_MIRROR/swig/swigwin-1.3.36.zip"
 set_default SWIG_DIR $GLOBAL_DIR\\swig
 
@@ -343,6 +347,7 @@
 fi
 add_step inst_swig
 add_step inst_pcre
+add_step inst_libbonoboui
 add_step inst_libgsf
 if [ "$CROSS_COMPILE" != "yes" ]; then
  add_step inst_hh

Modified: gnucash/trunk/packaging/win32/dist.sh
===================================================================
--- gnucash/trunk/packaging/win32/dist.sh	2010-02-23 20:04:30 UTC (rev 18710)
+++ gnucash/trunk/packaging/win32/dist.sh	2010-02-23 20:10:31 UTC (rev 18711)
@@ -28,6 +28,7 @@
     _EXETYPE_UDIR=`unix_path $EXETYPE_DIR`
     _GNOME_UDIR=`unix_path $GNOME_DIR`
     _PCRE_UDIR=`unix_path $PCRE_DIR`
+    _LIBBONOBOUI_UDIR=`unix_path $LIBBONOBOUI_DIR`
     _LIBGSF_UDIR=`unix_path $LIBGSF_DIR`
     _GOFFICE_UDIR=`unix_path $GOFFICE_DIR`
     _OPENSP_UDIR=`unix_path $OPENSP_DIR`
@@ -126,6 +127,12 @@
     cp -a $_PCRE_UDIR/bin/pcre3.dll $DIST_UDIR/bin
 }
 
+function dist_libbonoboui() {
+    setup libbonoboui
+    mkdir -p $DIST_UDIR/bin
+    cp -a $_LIBBONOBOUI_UDIR/bin/libbonoboui*.dll $DIST_UDIR/bin
+}
+
 function dist_libgsf() {
     setup libGSF
     mkdir -p $DIST_UDIR/bin
@@ -287,6 +294,7 @@
 dist_guile
 dist_gnome
 dist_pcre
+dist_libbonoboui
 dist_libgsf
 dist_goffice
 dist_libofx

Modified: gnucash/trunk/packaging/win32/install.sh
===================================================================
--- gnucash/trunk/packaging/win32/install.sh	2010-02-23 20:04:30 UTC (rev 18710)
+++ gnucash/trunk/packaging/win32/install.sh	2010-02-23 20:10:31 UTC (rev 18711)
@@ -679,6 +679,43 @@
     quiet ${LD} $PCRE_LDFLAGS -lpcre -o $TMP_UDIR/ofile || die "pcre not installed correctly"
 }
 
+function inst_libbonoboui() {
+    setup libbonoboui
+    _LIBBONOBOUI_UDIR=`unix_path $LIBBONOBOUI_DIR`
+    add_to_env $_LIBBONOBOUI_UDIR/bin PATH
+    add_to_env $_LIBBONOBOUI_UDIR/lib/pkgconfig PKG_CONFIG_PATH
+    if quiet ${PKG_CONFIG} --exists --atleast-version=2.24.2 libbonoboui-2.0 && [ -f $_LIBBONOBOUI_UDIR/bin/libbonoboui*.dll ]
+    then
+        echo "libbonoboui already installed.  skipping."
+    else
+        wget_unpacked $LIBBONOBOUI_SRC_URL $DOWNLOAD_DIR $TMP_DIR
+        mydir=`pwd`
+        assert_one_dir $TMP_UDIR/libbonoboui-*
+        qpushd $TMP_UDIR/libbonoboui-*
+            [ -n "$LIBBONOBOUI_PATCH" -a -f "$LIBBONOBOUI_PATCH" ] && \
+                patch -p1 < $LIBBONOBOUI_PATCH
+            #libtoolize --force
+            #aclocal ${ACLOCAL_FLAGS} -I .
+            #automake
+            #autoconf
+            ./configure ${HOST_XCOMPILE} --prefix=$_LIBBONOBOUI_UDIR \
+                POPT_LIBS="-lpopt" \
+                CPPFLAGS="${GNOME_CPPFLAGS}" \
+                LDFLAGS="${GNOME_LDFLAGS}" \
+                --enable-static=no
+            make
+            make install
+
+            # We override the $GNOME_DIR libbonoboui files because
+            # those erroneously depend on the obsolete libxml2.dll
+            cp -a $_LIBBONOBOUI_UDIR/bin/libbonoboui*.dll $_GNOME_UDIR/bin
+            cp -a $_LIBBONOBOUI_UDIR/lib/libbonoboui*.dll $_GNOME_UDIR/lib
+        qpopd
+        ${PKG_CONFIG} --exists --atleast-version=2.24.2 libbonoboui-2.0 && [ -f $_LIBBONOBOUI_UDIR/bin/libbonoboui*.dll ] || die "libbonoboui not installed correctly"
+        rm -rf ${TMP_UDIR}/libbonoboui-*
+    fi
+}
+
 function inst_libgsf() {
     setup libGSF
     _LIBGSF_UDIR=`unix_path $LIBGSF_DIR`

Added: gnucash/trunk/packaging/win32/libbonoboui-2.24.2.patch
===================================================================
--- gnucash/trunk/packaging/win32/libbonoboui-2.24.2.patch	                        (rev 0)
+++ gnucash/trunk/packaging/win32/libbonoboui-2.24.2.patch	2010-02-23 20:10:31 UTC (rev 18711)
@@ -0,0 +1,223 @@
+diff -ur libbonoboui-2.24.2/configure libbonoboui-2.24.2-cs/configure
+--- libbonoboui-2.24.2/configure	2009-09-22 23:12:20 +0000
++++ libbonoboui-2.24.2-cs/configure	2010-02-23 12:25:27 +0000
+@@ -16422,219 +16422,6 @@
+ 
+ 
+ # popt
+-{ $as_echo "$as_me:$LINENO: checking for poptStrippedArgv in -lpopt" >&5
+-$as_echo_n "checking for poptStrippedArgv in -lpopt... " >&6; }
+-if test "${ac_cv_lib_popt_poptStrippedArgv+set}" = set; then
+-  $as_echo_n "(cached) " >&6
+-else
+-  ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lpopt  $LIBS"
+-cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-/* Override any GCC internal prototype to avoid an error.
+-   Use char because int might match the return type of a GCC
+-   builtin and then its argument prototype would still apply.  */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-char poptStrippedArgv ();
+-int
+-main ()
+-{
+-return poptStrippedArgv ();
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (ac_try="$ac_link"
+-case "(($ac_try" in
+-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+-  *) ac_try_echo=$ac_try;;
+-esac
+-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+-$as_echo "$ac_try_echo") >&5
+-  (eval "$ac_link") 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } && {
+-	 test -z "$ac_c_werror_flag" ||
+-	 test ! -s conftest.err
+-       } && test -s conftest$ac_exeext && {
+-	 test "$cross_compiling" = yes ||
+-	 $as_test_x conftest$ac_exeext
+-       }; then
+-  ac_cv_lib_popt_poptStrippedArgv=yes
+-else
+-  $as_echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-	ac_cv_lib_popt_poptStrippedArgv=no
+-fi
+-
+-rm -rf conftest.dSYM
+-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+-      conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
+-fi
+-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_popt_poptStrippedArgv" >&5
+-$as_echo "$ac_cv_lib_popt_poptStrippedArgv" >&6; }
+-if test "x$ac_cv_lib_popt_poptStrippedArgv" = x""yes; then
+-  POPT_LIBS=-lpopt
+-else
+-  { { $as_echo "$as_me:$LINENO: error: You must have popt version 1.5 or greater installed." >&5
+-$as_echo "$as_me: error: You must have popt version 1.5 or greater installed." >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-
+-
+-if test "${ac_cv_header_popt_h+set}" = set; then
+-  { $as_echo "$as_me:$LINENO: checking for popt.h" >&5
+-$as_echo_n "checking for popt.h... " >&6; }
+-if test "${ac_cv_header_popt_h+set}" = set; then
+-  $as_echo_n "(cached) " >&6
+-fi
+-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_popt_h" >&5
+-$as_echo "$ac_cv_header_popt_h" >&6; }
+-else
+-  # Is the header compilable?
+-{ $as_echo "$as_me:$LINENO: checking popt.h usability" >&5
+-$as_echo_n "checking popt.h usability... " >&6; }
+-cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-$ac_includes_default
+-#include <popt.h>
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (ac_try="$ac_compile"
+-case "(($ac_try" in
+-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+-  *) ac_try_echo=$ac_try;;
+-esac
+-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+-$as_echo "$ac_try_echo") >&5
+-  (eval "$ac_compile") 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } && {
+-	 test -z "$ac_c_werror_flag" ||
+-	 test ! -s conftest.err
+-       } && test -s conftest.$ac_objext; then
+-  ac_header_compiler=yes
+-else
+-  $as_echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-	ac_header_compiler=no
+-fi
+-
+-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+-$as_echo "$ac_header_compiler" >&6; }
+-
+-# Is the header present?
+-{ $as_echo "$as_me:$LINENO: checking popt.h presence" >&5
+-$as_echo_n "checking popt.h presence... " >&6; }
+-cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-#include <popt.h>
+-_ACEOF
+-if { (ac_try="$ac_cpp conftest.$ac_ext"
+-case "(($ac_try" in
+-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+-  *) ac_try_echo=$ac_try;;
+-esac
+-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+-$as_echo "$ac_try_echo") >&5
+-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } >/dev/null && {
+-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+-	 test ! -s conftest.err
+-       }; then
+-  ac_header_preproc=yes
+-else
+-  $as_echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-  ac_header_preproc=no
+-fi
+-
+-rm -f conftest.err conftest.$ac_ext
+-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+-$as_echo "$ac_header_preproc" >&6; }
+-
+-# So?  What about this header?
+-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+-  yes:no: )
+-    { $as_echo "$as_me:$LINENO: WARNING: popt.h: accepted by the compiler, rejected by the preprocessor!" >&5
+-$as_echo "$as_me: WARNING: popt.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+-    { $as_echo "$as_me:$LINENO: WARNING: popt.h: proceeding with the compiler's result" >&5
+-$as_echo "$as_me: WARNING: popt.h: proceeding with the compiler's result" >&2;}
+-    ac_header_preproc=yes
+-    ;;
+-  no:yes:* )
+-    { $as_echo "$as_me:$LINENO: WARNING: popt.h: present but cannot be compiled" >&5
+-$as_echo "$as_me: WARNING: popt.h: present but cannot be compiled" >&2;}
+-    { $as_echo "$as_me:$LINENO: WARNING: popt.h:     check for missing prerequisite headers?" >&5
+-$as_echo "$as_me: WARNING: popt.h:     check for missing prerequisite headers?" >&2;}
+-    { $as_echo "$as_me:$LINENO: WARNING: popt.h: see the Autoconf documentation" >&5
+-$as_echo "$as_me: WARNING: popt.h: see the Autoconf documentation" >&2;}
+-    { $as_echo "$as_me:$LINENO: WARNING: popt.h:     section \"Present But Cannot Be Compiled\"" >&5
+-$as_echo "$as_me: WARNING: popt.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+-    { $as_echo "$as_me:$LINENO: WARNING: popt.h: proceeding with the preprocessor's result" >&5
+-$as_echo "$as_me: WARNING: popt.h: proceeding with the preprocessor's result" >&2;}
+-    { $as_echo "$as_me:$LINENO: WARNING: popt.h: in the future, the compiler will take precedence" >&5
+-$as_echo "$as_me: WARNING: popt.h: in the future, the compiler will take precedence" >&2;}
+-    ( cat <<\_ASBOX
+-## ------------------------------------------------------------------------------------------- ##
+-## Report this to http://bugzilla.gnome.org/enter_bug.cgi?product=bonobo&component=libbonoboui ##
+-## ------------------------------------------------------------------------------------------- ##
+-_ASBOX
+-     ) | sed "s/^/$as_me: WARNING:     /" >&2
+-    ;;
+-esac
+-{ $as_echo "$as_me:$LINENO: checking for popt.h" >&5
+-$as_echo_n "checking for popt.h... " >&6; }
+-if test "${ac_cv_header_popt_h+set}" = set; then
+-  $as_echo_n "(cached) " >&6
+-else
+-  ac_cv_header_popt_h=$ac_header_preproc
+-fi
+-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_popt_h" >&5
+-$as_echo "$ac_cv_header_popt_h" >&6; }
+-
+-fi
+-if test "x$ac_cv_header_popt_h" = x""yes; then
+-  :
+-else
+-  { { $as_echo "$as_me:$LINENO: error: Failed to find popt.h - you may have to adjust your environment" >&5
+-$as_echo "$as_me: error: Failed to find popt.h - you may have to adjust your environment" >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+ 
+ 
+ 



More information about the gnucash-changes mailing list