Hello community, here is the log from the commit of package wxWidgets for openSUSE:Factory checked in at Thu May 26 16:22:50 CEST 2011.
-------- --- wxWidgets/wxWidgets-ansi.changes 2011-01-15 03:43:58.000000000 +0100 +++ /mounts/work_src_done/STABLE/wxWidgets/wxWidgets-ansi.changes 2011-05-18 18:18:18.000000000 +0200 @@ -1,0 +2,31 @@ +Tue May 17 20:24:51 CEST 2011 - [email protected] + +- Create synthetic .la files to work-around libtool failures when + linking third level libraries or binaries (bnc#690952). + +------------------------------------------------------------------- +Fri Apr 8 16:19:23 CEST 2011 - [email protected] + +- Updated to version 2.8.12: + * Many crash and bug fixes. + * Minor API improvements. + * Several additions for forward compatibility with version 2.9. + * See changes.txt for more. + +------------------------------------------------------------------- +Fri Apr 8 14:27:33 CEST 2011 - [email protected] + +- Do not use bash coproc on system with bash-3. + +------------------------------------------------------------------- +Tue Mar 29 19:35:10 CEST 2011 - [email protected] + +- Fixed find-wx-requires to check directories instead of library + name. Provide find-wx-provides. (bnc#681409) + +------------------------------------------------------------------- +Fri Mar 4 16:05:47 CET 2011 - [email protected] + +- Fixed %WX_DEBUG support. + +------------------------------------------------------------------- wxWidgets-wxcontainer.changes: same change wxWidgets.changes: same change calling whatdependson for head-i586 Old: ---- wxWidgets-2.8.11.tar.bz2 New: ---- wxWidgets-2.8.12.tar.bz2 wxWidgets-find-wx-provides wxWidgets-find-wx-provides-bash3.patch wxWidgets-find-wx-requires ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ wxWidgets-ansi.spec ++++++ --- /var/tmp/diff_new_pack.6AIhH6/_old 2011-05-26 16:20:52.000000000 +0200 +++ /var/tmp/diff_new_pack.6AIhH6/_new 2011-05-26 16:20:52.000000000 +0200 @@ -48,7 +48,7 @@ BuildRequires: libgnomeprintui-devel libmspack-devel libtiff-devel License: GPLv2+ Group: System/Libraries -Version: 2.8.11 +Version: 2.8.12 Release: 1 %define wx_minor %(echo %{version} | sed 's/\.[0-9][0-9]*$//') # libdir for installing of all the stuff @@ -60,10 +60,18 @@ %define wx_variant wxcontainer %endif %if %ENABLE_UNICODE +%if 0%{?WX_DEBUG} +%define WXFLAGS ud +%else %define WXFLAGS u +%endif +%else +%if 0%{?WX_DEBUG} +%define WXFLAGS d %else %define WXFLAGS %{nil} %endif +%endif # lang packages are exactly equal for all variants. Build it only once: %if "%{name}" == "%{base_name}" %define BUILD_LANG 1 @@ -74,10 +82,12 @@ Source: %{tarball_name}-%{version}.tar.bz2 Source1: README.SUSE Source2: virtual-package.README -Source3: rpmlintrc +Source3: wxWidgets-find-wx-provides +Source4: wxWidgets-find-wx-requires +Source5: rpmlintrc # This script is not used during build, but it makes possible to # identify and backport wxPython fixes to wxWidgets. -Source4: wxpython-mkdiff.sh +Source6: wxpython-mkdiff.sh Url: http://www.wxwidgets.org/ BuildRoot: %{_tmppath}/%{name}-%{version}-build Patch0: wxGTK-2.6.3.3-decl.patch @@ -85,6 +95,8 @@ # PATCH-FEATURE-OPENSUSE wxWidgets-config-force-rpath.patch [email protected] -- Force rpath use for installed libraries. Patch2: wxWidgets-config-force-rpath.patch Patch3: wxGTK-datarootdir.patch +# PATCH-FEATURE-OPENSUSE wxWidgets-find-wx-provides-bash3.patch [email protected] -- Port to bash-3 that does not support coproc. +Patch4: wxWidgets-find-wx-provides-bash3.patch # We cannot use standard Requires/Provides, as we can have several instances of the library with the same soname. %define _use_internal_dependency_generator 0 @@ -646,6 +658,12 @@ %endif %patch3 cp %{S:1} %{S:2} . +cp %{S:3} find-wx-provides +cp %{S:4} find-wx-requires +%if %suse_version < 1120 +%patch4 +%endif +chmod +x find-wx-provides find-wx-requires %if %ENABLE_STL # Remove sources of deprecated libraries that don't compile with STL. # The build failure would be ignored but the package will be rejected by @@ -655,6 +673,8 @@ %build %{suse_update_config -f} +# Ugly hack that makes possible to call autoconf: +sed -i 's/0\.2\.8/0.2.9/' build/aclocal/bakefile.m4 autoconf # NOTE: gnome-vfs and gnomeprintui are deprecated. Disable it in future! # @@ -731,6 +751,58 @@ rm -rf $RPM_BUILD_ROOT%{_datadir}/locale %endif +# Create synthetic .la files to work-around libtool inability to link +# third level libraries built on top of wxWidgets (bnc#690952). +cd $RPM_BUILD_ROOT%{wxlibdir} +for LIB in *.so ; do + LIBNAME=${LIB%.so} + LC_ALL=C + LIBNAMES=($LIB*) + unset LC_ALL + cat >$LIBNAME.la <<EOF +# $LIBNAME.la - a libtool library file +# Generated by %{name}.spec (for GNU libtool) +# + +# The name that we can dlopen(3). +dlname='${LIBNAMES[1]}' + +# Names of this library. +library_names='$(for ((i=${#LIBNAMES[@]}-1;i>=0;i--)); do echo ${LIBNAMES[i]} ; done | tr \\n \ | sed s/\ $// )' + +# The name of the static archive. +old_library='' + +# Linker flags that can not go in dependency_libs. +inherited_linker_flags=' -pthread' + +# Libraries that this one depends upon. +dependency_libs='' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for $LIBNAME. +current=8 +age=0 +revision=8 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=no + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='%{wxlibdir}' +EOF +done +cd - + # Create ld.so.conf.d file that provides binary compatibility with third party binaries. %if "%{_libdir}" != "%{wxlibdir}" mkdir -p $RPM_BUILD_ROOT/etc/ld.so.conf.d @@ -759,21 +831,26 @@ # %%define _use_internal_dependency_generator 0 # %%define __find_requires %%wx_requires # -%%wx_requires %{wxlibdir}/wx/rpm/find-wx-requires +# and use this line if you build wxWidgets variant-specific libraries or +# modules +# +# %%define __find_provides %%wx_provides +# +%%wx_provides %{wxlibdir}/wx/rpm/find-wx-provides +%%wx_requires %{wxlibdir}/wx/rpm/find-wx-requires "%%{buildroot}" EOF mkdir -p $RPM_BUILD_ROOT%{wxlibdir}/wx/rpm -cat <<EOF >$RPM_BUILD_ROOT%{wxlibdir}/wx/rpm/find-wx-requires -#! /bin/sh -# convert libfoo()() to libfoo(variant)()() -/usr/lib/rpm/find-requires | sed 's/^\(\(libwx\|sound_sdl\)[^)]*\)(/\1(%{wx_variant})(/' -EOF -chmod 755 $RPM_BUILD_ROOT%{wxlibdir}/wx/rpm/find-wx-requires +install find-wx-provides find-wx-requires $RPM_BUILD_ROOT%{wxlibdir}/wx/rpm/ # Modify provides/requires to prevent identical provides for different libraries. -%define wx_provides %{_builddir}/%{?buildsubdir}/wx-provides -%define wx_requires %{_builddir}/%{?buildsubdir}/wx-requires +%define build_wx_provides %{_builddir}/%{?buildsubdir}/build-wx-provides +%define build_find_wx_provides %{_builddir}/%{?buildsubdir}/find-wx-provides +%define build_wx_requires %{_builddir}/%{?buildsubdir}/find-wx-requires + +# We need a very special version of %%wx_provides here. +# This version creates provides for compat-lib packages. echo 0 >wx-libno -cat << EOF > %{wx_provides} +cat << EOF > %{build_wx_provides} #! /bin/sh # convert libfoo()() to libfoo(variant)()() and create virtual symbols. wx_libno=\$(<$PWD/wx-libno) @@ -817,22 +894,18 @@ /usr/lib/rpm/find-provides ;; *%{_docdir}* ) - echo "\$REPLY" | /usr/lib/rpm/find-provides | sed 's/^\(\(libwx\|sound_sdl\)[^)]*\)(/\1(%{wx_variant})(/' + echo "\$REPLY" | %{build_find_wx_provides} ;; * ) - ( echo "\$REPLY" ; cat ) | /usr/lib/rpm/find-provides | sed 's/^\(\(libwx\|sound_sdl\)[^)]*\)(/\1(%{wx_variant})(/' + ( echo "\$REPLY" ; cat ) | %{build_find_wx_provides} ;; esac done EOF -cat << EOF > %{wx_requires} -#! /bin/sh -# convert libfoo()() to libfoo(variant)()() -/usr/lib/rpm/find-requires | sed 's/^\(\(libwx\|sound_sdl\)[^)]*\)(/\1(%{wx_variant})(/' -EOF -chmod 755 %{wx_provides} %{wx_requires} -%define __find_provides %{wx_provides} -%define __find_requires %{wx_requires} + +chmod 755 %{build_wx_provides} +%define __find_provides %{build_wx_provides} +%define __find_requires %{build_wx_requires} "%{buildroot}" %clean rm -rf $RPM_BUILD_ROOT @@ -1242,6 +1315,7 @@ %{_datadir}/bakefile %{_includedir}/wx-%{wx_minor} %{wxlibdir}/*.so +%{wxlibdir}/*.la %{wxlibdir}/wx/config %{wxlibdir}/wx/include %{wxlibdir}/wx/rpm wxWidgets-wxcontainer.spec: same change wxWidgets.spec: same change ++++++ README.SUSE ++++++ --- /var/tmp/diff_new_pack.6AIhH6/_old 2011-05-26 16:20:52.000000000 +0200 +++ /var/tmp/diff_new_pack.6AIhH6/_new 2011-05-26 16:20:52.000000000 +0200 @@ -23,6 +23,13 @@ %define _use_internal_dependency_generator 0 %define __find_requires %wx_requires +These lines must be placed below any BuildRoot preamble line. + +If you compile wxWidgets variant-specific libraries or wxWidgets +modules, you also need to use: + +%define __find_provides %wx_provides + If you don't do it, rpm would not be able to identify library variant package your package is linked with. ++++++ pre_checkin.sh ++++++ --- /var/tmp/diff_new_pack.6AIhH6/_old 2011-05-26 16:20:52.000000000 +0200 +++ /var/tmp/diff_new_pack.6AIhH6/_new 2011-05-26 16:20:52.000000000 +0200 @@ -1,21 +1,22 @@ #!/bin/bash +CANONICAL_NAME=wxWidgets VARIANTS=("" -wxcontainer -ansi) for VAR in "${VARIANTS[@]}" ; do - NAME=wxWidgets$VAR - if test $NAME = wxWidgets ; then + NAME=$CANONICAL_NAME$VAR + if test $NAME = $CANONICAL_NAME ; then continue fi - if test wxWidgets.spec -ot $NAME.spec ; then - echo "wxWidgets.spec is older than $NAME.spec. Please merge changes manually and call pre-checkin.sh again." + if test $CANONICAL_NAME.spec -ot $NAME.spec ; then + echo "$CANONICAL_NAME.spec is older than $NAME.spec. Please merge changes manually and call pre-checkin.sh again." exit 1 fi - if test wxWidgets.changes -ot $NAME.changes ; then - echo "wxWidgets.changes is older than $NAME.changes. Please merge changes manually and call pre-checkin.sh again." + if test $CANONICAL_NAME.changes -ot $NAME.changes ; then + echo "$CANONICAL_NAME.changes is older than $NAME.changes. Please merge changes manually and call pre-checkin.sh again." exit 1 fi - sed "s/^Name: *wxWidgets$/&$VAR$DBG/" <wxWidgets.spec >$NAME.spec - cp -a wxWidgets.changes $NAME.changes + sed "s/^Name: *$CANONICAL_NAME$/&$VAR/" <$CANONICAL_NAME.spec >$NAME.spec + cp -a $CANONICAL_NAME.changes $NAME.changes done -touch wxWidgets.spec wxWidgets.changes +touch $CANONICAL_NAME.spec $CANONICAL_NAME.changes ++++++ wxWidgets-2.8.11.tar.bz2 -> wxWidgets-2.8.12.tar.bz2 ++++++ wxWidgets/wxWidgets-2.8.11.tar.bz2 /mounts/work_src_done/STABLE/wxWidgets/wxWidgets-2.8.12.tar.bz2 differ: char 11, line 1 ++++++ wxWidgets-find-wx-provides ++++++ #! /bin/bash # convert libwxfoo()() to libwxfoo(variant)()() for libraries inside wx libdir shopt -s extglob # redirect 3 to stdout (3 does not change in coprocesses) exec 3>&1 # Coprocess for files outside wx libdir coproc COPROC_NOT_WX ( /usr/lib/rpm/find-provides >&3 ) # HACK: Return stderr to place. while read ; do case "$REPLY" in */usr/lib*/wx-*-* ) VARIANT=${REPLY#*/usr/lib*/wx-*-} VARIANT=${VARIANT%%/*} case "$VARIANT" in +([A-Za-z_]) ) # Assign a coprocess that corresponds to the variant. eval "COPROC_YES_WX=(\"\${COPROC_YES_WX_$VARIANT[@]}\")" # Coprocess for files inside particular wx libdir if test -z "$COPROC_YES_WX" ; then # HACK: Closing stderr seems to be the only way # to silence warning "execute_coproc: coproc # [$PID:TRA] still exists" exec 4>&2- eval "coproc COPROC_YES_WX_$VARIANT ( /usr/lib/rpm/find-provides |\ sed 's/^\([^)]*\)(/\1($VARIANT)(/' >&3 )" exec 2>&4 eval "COPROC_YES_WX=(\"\${COPROC_YES_WX_$VARIANT[@]}\")" fi echo "$REPLY" >&${COPROC_YES_WX[1]} ;; # invalid variant string * ) echo "find-wx-provides: ERROR: invalid format of wx variant directory name" >&2 echo "$REPLY" >&${COPROC_NOT_WX[1]} ;; esac ;; * ) echo "$REPLY" >&${COPROC_NOT_WX[1]} ;; esac done # close input of coprocesses (terminate them) for COPROC_YES_WX in "${!COPROC_YES_WX_@}" ; do case $COPROC_YES_WX in # foo_PID variables are created by coproc builtin *_PID ) ;; * ) eval eval exec \${$COPROC_YES_WX\[1\]}\\\>\\\&- ;; esac done eval exec ${COPROC_NOT_WX[1]}\>\&- # wait for coprocesses to finish wait ++++++ wxWidgets-find-wx-provides-bash3.patch ++++++ --- find-wx-provides 2011-03-28 18:27:14.000000000 +0200 +++ find-wx-provides 2011-04-08 14:23:22.718604689 +0200 @@ -3,12 +3,6 @@ shopt -s extglob -# redirect 3 to stdout (3 does not change in coprocesses) -exec 3>&1 -# Coprocess for files outside wx libdir -coproc COPROC_NOT_WX ( /usr/lib/rpm/find-provides >&3 ) -# HACK: Return stderr to place. - while read ; do case "$REPLY" in */usr/lib*/wx-*-* ) @@ -16,45 +10,18 @@ VARIANT=${VARIANT%%/*} case "$VARIANT" in +([A-Za-z_]) ) - # Assign a coprocess that corresponds to the variant. - eval "COPROC_YES_WX=(\"\${COPROC_YES_WX_$VARIANT[@]}\")" - # Coprocess for files inside particular wx libdir - if test -z "$COPROC_YES_WX" ; then - # HACK: Closing stderr seems to be the only way - # to silence warning "execute_coproc: coproc - # [$PID:TRA] still exists" - exec 4>&2- - eval "coproc COPROC_YES_WX_$VARIANT ( /usr/lib/rpm/find-provides |\ - sed 's/^\([^)]*\)(/\1($VARIANT)(/' >&3 )" - exec 2>&4 - eval "COPROC_YES_WX=(\"\${COPROC_YES_WX_$VARIANT[@]}\")" - fi - echo "$REPLY" >&${COPROC_YES_WX[1]} + echo "$REPLY" | /usr/lib/rpm/find-provides |\ + sed "s/^\([^)]*\)(/\1($VARIANT)(/" ;; # invalid variant string * ) echo "find-wx-provides: ERROR: invalid format of wx variant directory name" >&2 - echo "$REPLY" >&${COPROC_NOT_WX[1]} + echo "$REPLY" | /usr/lib/rpm/find-provides ;; esac ;; * ) - echo "$REPLY" >&${COPROC_NOT_WX[1]} + echo "$REPLY" | /usr/lib/rpm/find-provides ;; esac done - -# close input of coprocesses (terminate them) -for COPROC_YES_WX in "${!COPROC_YES_WX_@}" ; do - case $COPROC_YES_WX in - # foo_PID variables are created by coproc builtin - *_PID ) ;; - * ) - eval eval exec \${$COPROC_YES_WX\[1\]}\\\>\\\&- - ;; - esac -done -eval exec ${COPROC_NOT_WX[1]}\>\&- - -# wait for coprocesses to finish -wait ++++++ wxWidgets-find-wx-requires ++++++ #! /bin/bash # convert libwxfoo()() to libwxfoo(variant)()() for libraries inside wx libdir # # Notes: # - We do not use ldd, it fails to detect uninstalled libraries in the sysroot. # - The script is not able to recognize exact variant of wx libraries. # It expects, that it corresponds with just-installed devel packages. shopt -s nullglob RPM_BUILD_ROOT=$1 /usr/lib/rpm/find-requires |\ while read ; do case "$REPLY" in *'('*')' | *'('*')('*')' ) SONAME=${REPLY%%(*} NOT_WX=true for DIR in /usr/lib*/wx-*-* /usr/lib*/wx-*-*/wx/* "$RPM_BUILD_ROOT"/usr/lib*/wx-*-* "$RPM_BUILD_ROOT"/usr/lib*/wx-*-*/wx/* ; do if test -f "$DIR/$SONAME" ; then VARIANT=${DIR#*/usr/lib*/wx-*-} VARIANT=${VARIANT%%/*} echo "$SONAME($VARIANT)${REPLY#$SONAME}" NOT_WX=false break fi done if $NOT_WX ; then echo "$REPLY" fi ;; * ) echo "$REPLY" ;; esac done ++++++ wxpython-mkdiff.sh ++++++ --- /var/tmp/diff_new_pack.6AIhH6/_old 2011-05-26 16:20:52.000000000 +0200 +++ /var/tmp/diff_new_pack.6AIhH6/_new 2011-05-26 16:20:52.000000000 +0200 @@ -3,7 +3,7 @@ # This script helps to find important differences between # wxWidgets/wxGTK and wxWidgets instance embedded in wxPython-src. -VER=2.8.11 +VER=2.8.12 PYREL=0 find wxWidgets-${VER} wxPython-src-${VER}.${PYREL} -type f | while read ; do tr -d '\r' <"$REPLY" >"$REPLY".new ; mv "$REPLY".new "$REPLY" ; done find wxWidgets-${VER} wxPython-src-${VER}.${PYREL} -type f -exec sed -i /RCS-ID:/d {} \; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
