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.

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@18711 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
Christian Stimming 2010-02-23 20:10:31 +00:00
parent a598e25d19
commit b83517abd9
5 changed files with 276 additions and 2 deletions

1
.gitignore vendored
View File

@ -119,3 +119,4 @@ po/.intltool-merge-cache
src/bin/gnucash-bin.o
gnucash-*.*.*/
gnucash-*.*.*.tar.*
packaging/win32/custom.sh

View File

@ -209,8 +209,6 @@ set_default LIBGNOME_URL "$GNOME_WIN32_URL/libgnome/2.24/libgnome_2.24.1-1_win32
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 GTKHTML_DEV_URL "$GNOME_WIN32_URL/gtkhtml/3.24/gtkhtml-dev_3.24.2-1_
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 @@ if [ "$AQBANKING3" = "yes" ]; then
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

View File

@ -28,6 +28,7 @@ function prepare() {
_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 @@ function dist_pcre() {
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_autotools
dist_guile
dist_gnome
dist_pcre
dist_libbonoboui
dist_libgsf
dist_goffice
dist_libofx

View File

@ -679,6 +679,43 @@ function inst_pcre() {
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`

View File

@ -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