add/remove files that CVS forgot to... HEAD_AFTER_MERGE_FROM_GNOME_2_10
authorlaca
Thu, 11 Aug 2005 18:49:44 +0000
changeset 5519 99868c39b3a5
parent 5518 235b0b4aa324
child 5520 052639bd21d7
add/remove files that CVS forgot to...
bootsplash-theme-Sun.spec
ext-sources/staroffice8-accessibility-icons.tar.gz
hydrogen.spec
liby2util.spec
nautilus-media.spec
oxygen2.spec
patches/bug-buddy-01-remove-ximian-druid-pages.diff
patches/gail-02-model-row-deleted-fix.diff
patches/gail-03-garbage-collect-6278812.diff
patches/gaim-07-g11n-potfiles.diff
patches/gaim-09-ebook-checks.diff
patches/gaim-12-msn-security-fix.diff
patches/gaim-13-add-help.diff
patches/gaim-17-g11n-filename.diff
patches/gaim-18-msn-webmessenger-fix.diff
patches/gaim-19-yahoo-privacy-fix.diff
patches/gcalctool-02-l10n-online-help.diff
patches/gdm-10-a11y-gestures.diff
patches/ggv-05-convert-uri-to-display-name.diff
patches/gnome-session-09-load-a11y-modules.diff
patches/gnome-speech-01-freetts-perf.diff
patches/gnome-utils-05-l10n-online-help.diff
patches/gnome-vfs-42-subfs.diff
patches/gnome-vfs-45-smb-browse-fixes.diff
patches/gpdf-02-lookupglyph.diff
patches/nautilus-27-fsexam-integrate.diff
patches/xscreensaver-13-2scrat.diff
sun-system-settings.spec
yast2-theme-Sun.spec
yast2-trans-cs.spec
yast2-trans-de.spec
yast2-trans-en_GB.spec
yast2-trans-en_US.spec
yast2-trans-es.spec
yast2-trans-fr.spec
yast2-trans-hu.spec
yast2-trans-it.spec
yast2-trans-ja.spec
yast2-trans-ko.spec
yast2-trans-pl.spec
yast2-trans-pt_BR.spec
yast2-trans-ru.spec
yast2-trans-sv.spec
yast2-trans-zh_CN.spec
yast2-trans-zh_HK.spec
yast2-trans-zh_TW.spec
--- a/bootsplash-theme-Sun.spec	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,146 +0,0 @@
-#
-# Copyright (c) 2003 Sun Microsystems Inc.
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
-#
-Name: bootsplash-theme-Sun
-Version: 0.8.4
-Release: 1
-Distribution: Java Desktop System, Release 3
-Group: User Interface/Desktops
-Vendor: Sun Microsystems, Inc.
-Copyright: commercial
-Provides: bootsplash-theme
-Provides: %{name}
-Provides: %{name}-%{version}-%{release}
-URL: http://www.sun.com
-Source: %{name}-%{version}.tgz
-Source1: l10n-configure.sh
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
-Group: User Interface/Desktops
-Summary: Sample boot splash theme for the Sun Mercury Desktop
-Autoreqprov:  on
-
-Requires:      aaa_base mkinitrd
-
-%define splash_theme /etc/bootsplash/themes
-%define templates /var/adm/fillup-templates
-%define sysconfig sysconfig.%{name}
-%define default_theme Sun
-%define message /boot/message
-
-%description
-Sun branded sample boot splash theme for the Sun Mercury Desktop
-
-Property of Sun Microsystems Inc., 2003
-
-%package devel
-Summary: Components for creating the %{name} bootsplash theme.
-Group: Development/Libraries/C and C++
-%description devel
-Contains the necessary components to build the %{name} bootsplash theme.
-
-Property of Sun Microsystems Inc., 2003
-
-%prep
-%setup -c
-
-bash -x %SOURCE1
-
-%install
-
-\rm -rf $RPM_BUILD_ROOT
-\mkdir -p $RPM_BUILD_ROOT%{splash_theme}/%{default_theme} \
-          $RPM_BUILD_ROOT%{templates} \
-
-# Let's start
-SRCDIR=`\pwd`/bootsplash-theme-Sun/src
-
-# bootsplash files
-cd ${SRCDIR}
-\cp -f sysconfig $RPM_BUILD_ROOT%{templates}/%{sysconfig}
-
-cd ${SRCDIR}/%{default_theme}
-for d in bootloader config/*.cfg images/*.jpg bootloader-src-SLES-9.1
-do 
-  \tar cf - $d | (cd $RPM_BUILD_ROOT%{splash_theme}/%{default_theme} ; tar xpf -)
-done
-
-%post
-# Link the current theme
-if [ -d %{splash_theme} ]; then
-   cd %{splash_theme}
-   if   [ -h current ]; then
-     \rm -f current
-   elif [ -d current ]; then
-     \mv -f current current.orig
-   fi
-   \ln -s ./%{default_theme} %{splash_theme}/current
-
-   # Backup original message file ONLY if not done earlier
-   \install --backup=simple -p --suffix=.pre-%{name} -m 644  ./%{default_theme}/bootloader/message %{message}
-   \install --backup=simple -p --suffix=.pre-%{name}  ./%{default_theme}/bootloader/splash /sbin/splash
-   # copy sysconfig template to /etc/sysconfig/bootsplash
-   \mv /etc/sysconfig/bootsplash /etc/sysconfig/bootsplash.old
-   \cp /var/adm/fillup-templates/sysconfig.bootsplash-theme-Sun /etc/sysconfig/bootsplash
-
-   # Create ramdisk image
-   \mkinitrd   
-fi
-
-%clean
-\rm -rf $RPM_BUILD_ROOT
-
-%files
-%defattr(-,root,root)
-
-%{splash_theme}/%{default_theme}/bootloader
-%{splash_theme}/%{default_theme}/config
-%{splash_theme}/%{default_theme}/images
-%{templates}/%{sysconfig}
-
-%files devel
-%defattr(-,root,root)
-%{splash_theme}/%{default_theme}/bootloader-src-SLES-9.1
-
-%changelog
-*Fri Oct 08 2004 - [email protected] %Version
-	Modification for the SuSE 9.1 boot theme rewrite
-*Wed Jul 07 2004 - [email protected] %Version
-	Ported to SuSE9.1, changed splash_theme macro to /etc/bootsplash/themes
-*Mon Oct 28 2003 - <[email protected]> %Version
-	Expanded graphics to adjust more menu.items
-	New graphics for bootsplash
-	New graphics for grub and system splash (Less color usage)
-*Sun Oct 20 2003 - <[email protected]> %Version
-	New graphics from Chester
-*Tue Sep 3 2003 - <[email protected]> %Version
-	New graphics (Java Desktop System)
-	Support scripts in the devel package
-*Tue Aug 26 2003 - <[email protected]> %Version
-	Added Provides
-	Renamed package
-	New graphics (compressed)
-*Tue Jul 1 2003 Carl Gadener <[email protected]>
-	Version 0.6-6
-	Separated theme deploy from devel
-*Mon Jun 30 2003 Carl Gadener <[email protected]>
-	Version 0.6-5
-	Modified Images
-	Removed Leadership theme
-*Fri Jun 27 2003 Carl Gadener <[email protected]>
-	Version 0.6-4
-	New Images
-*Wed Jun 18 2003 Carl Gadener <[email protected]>
-	Version 0.6-3
-	Changed References from Openstack to Sun
-*Fri Jun 13 2003 Carl Gadener <[email protected]>
-	Version 0.6-2
-	Simplified Makefile
-*Wed Jun 11 2003 Carl Gadener <[email protected]>
-	Version 0.6-1
-	New Grub splash screen
-	Added post install script
-*Thu Jun 4 2003 Carl Gadener <[email protected]>
-	Version 0.5-1
-	Creation of RPM package
Binary file ext-sources/staroffice8-accessibility-icons.tar.gz has changed
--- a/hydrogen.spec	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,251 +0,0 @@
-#
-# License (c) 2003 Sun Microsystems Inc.
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
-#
-
-%define t_suffix -build34-linux-cb
-%{?nightly:%define t_suffix -%(TZ=GMT date +%Y%m%d)}
-
-%define evolution_imagesdir %(echo `PKG_CONFIG_PATH=%{_libdir}/pkgconfig:/usr/lib/pkgconfig pkg-config --variable imagesdir evolution-shell 2>/dev/null`)
-
-%define evolution_libdir %(echo `PKG_CONFIG_PATH=%{_libdir}/pkgconfig:/usr/lib/pkgconfig pkg-config --variable privlibdir evolution-shell 2>/dev/null`)
-
-Name:     	hydrogen
-Version: 	1.0.0
-Release:	379
-Vendor:		Sun Microsystems, Inc.
-Distribution:	Java Desktop System, Release 3
-Copyright:	LGPL/GPL
-BuildRoot:	%{_tmppath}/%{name}-%{version}-root
-Docdir:         %{_datadir}/doc
-Autoreqprov:    on
-URL:		http://www.sun.com/software/javadesktopsystem/
-Source:		%{name}-%{version}%{t_suffix}.tar.bz2
-Source1:	mkinstalldirs
-Source2: hydrogen-l10n-po-1.14.tar.bz2
-Source3: l10n-configure.sh
-Patch1:         hydrogen-01-g11n-alllinguas.diff
-
-BuildRequires:	glibc-devel
-BuildRequires:	libtool
-BuildRequires:	glib2-devel
-BuildRequires:	libsoup-devel
-BuildRequires:	evolution-devel	
-BuildRequires:  libgal-devel 
-BuildRequires:  libbonoboui-devel
-BuildRequires:  bonobo-activation-devel
-Summary:	The SUN one connector.
-Group:		System Environment/Libraries
-Requires:	libsoup
-Requires:	evolution
-Requires:	glib2
-Requires:	libgal
-Requires:       bonobo-activation
-
-%description
-    The SUN one connector, protocol wcap.
-
-%files
-%defattr(-, root, root)
-%doc COPYING ChangeLog AUTHORS INSTALL NEWS README
-%{_bindir}/hydrogen
-%{_libdir}/bonobo/servers/GNOME_Evolution_SunOne_Storage.server
-%{_datadir}/locale/*/LC_MESSAGES/hydrogen-1.0.mo
-%{_datadir}/hydrogen/glade/*.glade
-%{_datadir}/hydrogen/etspec/*.etspec
-/%{evolution_imagesdir}/*.png
-/%{evolution_libdir}/
-%post
-ldconfig
-
-# $RPM_COMMAND is an environment variable used by the SUN build
-# system to control the build process with finer granularity than RPM
-# normally allows.  This specfile will function as expected by RPM if
-# $RPM_COMMAND is unset.  If you are not the SUN build system,
-# feel free to ignore it.
-
-%prep
-case "${RPM_COMMAND:-all}" in
-dist)
-
-%setup  -q -D -n %{name}-%{version}
-/usr/bin/bzcat -dc %SOURCE2|tar xf -
-    ;;
-all)
-%setup  -q -n %{name}-%{version}
-%patch1 -p1
-/usr/bin/bzcat -dc %SOURCE2|tar xf -
-    ;;
-esac
-cp %SOURCE1 .
-
-bash -x %SOURCE3
-
-%build
-MAKE=${MAKE:-make}
-RPM_COMMAND=${RPM_COMMAND:-all}
-DESTDIR=${DESTDIR:-"$RPM_BUILD_ROOT"}
-ARCH=%{_target_platform}
-export MAKE RPM_COMMAND DESTDIR ARCH
-case "$RPM_COMMAND" in
-prepare|all)
-    aclocal $ACLOCAL_FLAGS -I %{_datadir}/aclocal/gnome2-macros
-    libtoolize --force
-    glib-gettextize --force --copy
-    intltoolize --force --automake
-    autoheader
-    automake -a -f -c --gnu
-    autoconf
-    ./configure --prefix=%{_prefix}  \
-                 --enable-idn=yes
-    ;;
-esac
-case "$RPM_COMMAND" in
-clean|all)
-    if [ "/" != "$DESTDIR" ]; then
-	rm -rf "$DESTDIR"
-    fi
-    ;;
-esac
-case "$RPM_COMMAND" in
-build|all)
-    ${MAKE}
-    ;;
-esac
-
-%install
-mkdir -p $RPM_BUILD_ROOT%{evolution_imagesdir}
-cp ./storage/*.png $RPM_BUILD_ROOT%{evolution_imagesdir}
-mkdir -p $RPM_BUILD_ROOT%{evolution_libdir}
-cp ./calendar/.libs/libwcapcalendar.so.0 $RPM_BUILD_ROOT%{evolution_libdir}
-cp ./lib/.libs/libhydrogen.so.0 $RPM_BUILD_ROOT%{evolution_libdir}
-MAKE=${MAKE:-make}
-DESTDIR=${DESTDIR:-"$RPM_BUILD_ROOT"}
-# export DESTDIR
-case "${RPM_COMMAND:-all}" in
-install|all)
-    ${MAKE} install DESTDIR=${DESTDIR}
-    ;;
-esac
-
-%clean
-DESTDIR=${DESTDIR:-"$RPM_BUILD_ROOT"}
-export DESTDIR
-case "${RPM_COMMAND:-all}" in
-clean|all)
-    if [ "/" != "$DESTDIR" ]; then
-	rm -rf "$DESTDIR"
-    fi
-    ;;
-esac
-
-
-%changelog
-* Mon Apr 25 2005 - [email protected]
-- Bump source tarball to build 34 (linux)
-
-* Mon Apr 11 2005 - [email protected]
-- Bump source tarball to build 33 (linux)
-
-* Mon Mar 28 2005 - [email protected]
-- Bump source tarball to build 32 (linux)
-
-* Mon Mar 14 2005 - [email protected]
-- Bump source tarball to build 31 (linux)
-
-* Mon Feb 28 2005 - [email protected]
-- Bump source tarball to build 30 (linux)
-
-* Mon Feb 14 2005 - [email protected]
-- Bump source tarball to build 29 (linux)
-
-* Mon Jan 31 2005 - [email protected]
-- Bump source tarball to build 28 (linux)
-
-* Fri Jan 28 2005 - [email protected]
-- Fix the wrong description by script failure.
-
-* Mon Jan 17 2005 - [email protected]
-- Bump source tarball to build 27 (linux)
-
-* Tue Jan 04 2005 - [email protected]
-- Bump source tarball to build 26 (linux)
-
-* Mon Dec 13 2004 - [email protected]
-- Bump source tarball to build 25 (linux)
-
-* Mon Nov 29 2004 - [email protected]
-- Bump source tarball to build 24
-
-* Fri Nov 26 2004 - [email protected]
-- Typo in changelog
-
-* Thu Nov 25 2004 - [email protected]
-- Re-enabled IDN support
-
-* Mon Nov 15 2004 - [email protected]
-- Bump source tarball to build 23.
-
-* Mon Nov 01 2004 - [email protected]
-- bump src tarball to build22
-
-* Mon Oct 18 2004 - [email protected]
-- bump src tarball to build21
-
-* Mon Oct 11 2004 - [email protected]
-- bump src tarball to build20b
-
-* Mon Oct 04 2004 - [email protected]
-- removed idn support
-
-* Mon Sep 20 2004 - [email protected]
-- bump src tarball to build19
-
-* Thu Sep 16 2004 - [email protected]
-- Added hydrogen-01-g11n-alllinguas.diff to include cd,hu linguas
-
-* Mon Sep 06 2004 - [email protected]
-- bump src tarball to build18
-
-* Mon Aug 23 2004 - [email protected]
-- bump src tarball to build17
-
-* Mon Aug 09 2004 - [email protected]
-- bump src tarball to build16
-
-* Mon Jul 26 2004 - [email protected]
-- bump src tarball to build15
-
-* Fri Jul 09 2004 - [email protected]
-- undid -j $CPUS for this module
-
-* Thu Jul 08 2004 - [email protected]
-- Updated l10n content to hydrogen-l10n-po-1.2.tar.bz2
-
-* Wed Jul 07 2004 - [email protected]
-- added "-j $CPUS" to make to speed up builds
-
-* Sun Jun 27 2004 - [email protected]
-- Removed hydrogen-01-calander-makefile.diff, not needed
-* Sat Jun 26 2004 - [email protected]
-- Added hydrogen-01-calander-makefile.diff for build13 tarball problem
-* Fri Jun 25 2004 - [email protected]
-- bump src tarball to build13
-* Thu Jun 10 2004 - [email protected]
-- bump src tarball to build12
-* Sun May 30 2004 - [email protected]
-- bump src tarball to build11
-* Fri May 14 2004 - [email protected]
-- bump src tarball to build10
-* Wed May 12 2004 - [email protected]
-- replace tar jxf with the more solaris friendly
-  bzcat piped through tar
-* Wed May 12 2004 - [email protected]
-- Adding hydrogen-l10n-po-1.1.tar.bz2 l10n content
-* Sat May 01 2004 - [email protected]
-- remove icon conflict hack as it is fixed in the tarball
-* Fri Apr 30 2004 - [email protected]
-- bump src tarball to build09
-* Wed Apr 07 2004 - [email protected]
-- 
--- a/liby2util.spec	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,390 +0,0 @@
-#
-# spec file for package liby2util (Version 2.10.6)
-#
-# Copyright (c) 2004 SUSE LINUX AG, Nuernberg, Germany.
-# Copyright (c) 2005 Sun Microsystems, Inc.
-#
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
-#
-
-# norootforbuild
-# neededforbuild  dejagnu doxygen expect gpp libgpp libpng libxcrypt libxcrypt-devel openssl-devel pkgconfig tcl yast2-devtools
-
-Name:         liby2util
-Version:      2.10.6
-Release:      2.34
-License:      GPL
-Group:        System/YaST
-BuildRoot:    %{_tmppath}/%{name}-%{version}-build
-Source0:      liby2util-2.10.6.tar.bz2
-Patch1:       liby2util-01-Sun-string.diff
-prefix:		/usr
-Summary:      YaST2 - Utilities Library
-
-BuildRequires: aaa_base acl attr bash bind-utils bison bzip2 coreutils cpio cpp cracklib cvs cyrus-sasl db devs diffutils e2fsprogs file filesystem fillup findutils flex gawk gdbm-devel glibc glibc-devel glibc-locale gpm grep groff gzip info insserv less libacl libattr libgcc libnscd libselinux libstdc++ libxcrypt libzio m4 make man mktemp module-init-tools ncurses ncurses-devel net-tools netcfg openldap2-client openssl pam pam-modules patch permissions popt procinfo procps psmisc pwdutils rcs readline sed strace syslogd sysvinit tar tcpd texinfo timezone unzip util-linux vim zlib zlib-devel autoconf automake binutils dejagnu doxygen expect gcc gcc-c++ gdbm gettext libpng libstdc++-devel libtool libxcrypt-devel openssl-devel perl pkgconfig rpm tcl yast2-devtools
-
-Distribution: Java Desktop System, Release 3
-Vendor:       Sun Microsystems, Inc.
-
-%description
-YaST2 - Utilities Library
-
-Authors:
---------
-    Michael Andres <[email protected]>
-    Alvaro Lopez <[email protected]>
-
-%package devel
-Requires:     liby2util = %version
-Group:        System/YaST
-Summary:      YaST2 - Include Files and Documentation for Utilities Library
-Requires:     openssl-devel pkgconfig
-
-%description devel
-YaST2 - Include Files and Documentation for Utilities Library
-
-Authors:
---------
-    Michael Andres <[email protected]>
-    Alvaro Lopez <[email protected]>
-
-%prep
-%setup -n liby2util-2.10.6
-%patch1 -p1 
-
-%build
-%{prefix}/bin/y2tool y2autoconf
-%{prefix}/bin/y2tool y2automake
-autoreconf --force --install
-export CFLAGS="$RPM_OPT_FLAGS -DNDEBUG"
-export CXXFLAGS="$RPM_OPT_FLAGS -DNDEBUG"
-%{?suse_update_config:%{suse_update_config -f}}
-./configure --libdir=%{_libdir} --prefix=%{prefix} --mandir=%{_mandir}
-make %{?jobs:-j%jobs}
-
-%install
-make install DESTDIR="$RPM_BUILD_ROOT"
-[ -e "%{prefix}/share/YaST2/data/devtools/NO_MAKE_CHECK" ] || Y2DIR="$RPM_BUILD_ROOT/usr/share/YaST2" make check DESTDIR="$RPM_BUILD_ROOT"
-for f in `find $RPM_BUILD_ROOT/%{prefix}/share/applications/YaST2/ -name "*.desktop"` ; do
-    d=${f##*/}
-    %suse_update_desktop_file ${d%.desktop}
-done
-
-%clean
-rm -rf "$RPM_BUILD_ROOT"
-
-%files
-%defattr(-,root,root)
-%{_libdir}/lib*.so.*
-
-%files devel
-%defattr(-,root,root)
-%{_libdir}/lib*.so
-%{_libdir}/lib*.la
-%{prefix}/include/YaST2
-%doc %{prefix}/share/doc/packages/liby2util
-
-%changelog -n liby2util
-* Mon Jan 31 2005 - [email protected]
-- Added patch liby2util-01-Sun-string.diff
-* Thu Sep 30 2004 - [email protected]
-- Added class KVMap
-- 2.10.6
-* Tue Sep 21 2004 - [email protected]
-- Allow passing environment varaibles to ExternalProgram. (#38261)
-- 2.10.5
-* Sat Sep 18 2004 - [email protected]
-- Fix C++ syntax.
-* Mon Aug 30 2004 - [email protected]
-- use pkgconfig macro to check for OpenSSL
-- use get() instead of readsome() as readsome() seems to be non-blocking and
-  returns zero in the middle of a file
-- add Makefile target to test Digest class
-- 2.10.4
-* Thu Aug 12 2004 - [email protected]
-- added libpng to neededforbuild
-- 2.10.3
-* Tue Jul 13 2004 - [email protected]
-- don't use system() for calling gpg (#42776)
-- always log executed external programs and their status if they fail
-- 2.10.2
-* Thu Jul 01 2004 - [email protected]
-- New PathInfo::md5sum
-* Thu Jun 24 2004 - [email protected]
-- link against openssl so that the dependencies are added to liby2util.la
-- new class for message digests (MD5, SHA1 etc)
-- 2.10.1
-* Thu Jun 17 2004 - [email protected]
-- merge 9.1 branch
-- 2.10.0
-* Fri May 21 2004 - [email protected]
-- fixed logging configuration (#40970)
-- 2.9.24
-* Tue Apr 20 2004 - [email protected]
-- New enum PathInfo::file_type (file, directory, link, etc.)
-- New PathInfo::readdir which retrieves directory content and
-  file_type of each entry.
-- 2.9.23
-* Tue Apr 06 2004 - [email protected]
-- SUSE is great (#38495)
-- 2.9.22
-* Sun Apr 04 2004 - [email protected]
-- add 'cifs' to URL (#37871)
-- 2.9.21
-* Fri Apr 02 2004 - [email protected]
-- finally changed license to GPL for good
-* Tue Mar 23 2004 - [email protected]
-  PathInfo::md5sum- use GNU-like output for log_simple mode
-- 2.9.19
-* Mon Mar 22 2004 - [email protected]
-- TagCacheRetrieval::retrieveData must clear any old data in case
-  of retrieval error.
-- 2.9.18
-* Thu Mar 18 2004 - [email protected]
-- Added convenience classes for callback redirection.
-- 2.9.17
-* Wed Mar 17 2004 - [email protected]
-- include MemUsage.h unconditionally, let *it* (un)define D_MEMUSAGE
-- 2.9.16
-* Tue Mar 16 2004 - [email protected]
-- disable -DD_MEMUSAGE otherwise all depending packages need to enable it too
-- 2.9.15
-* Mon Mar 15 2004 - [email protected]
-- fixed initialization of LangCode::_nameHash
-- 2.9.14
-* Sun Mar 14 2004 - [email protected]
-- enable MemUsage with -DD_MEMUSAGE
-- add size tracking
-* Tue Mar 02 2004 - [email protected]
-- add access functions to internal debug variable
-* Mon Mar 01 2004 - [email protected]
-- Added common set operations (setutil.h)
-- 2.9.12
-* Tue Feb 24 2004 - [email protected]
-- Toggle debug on SIGUSR1, reread log.conf on SIGUSR2.
-* Tue Feb 24 2004 - [email protected]
-- use normal log behavior in ycpc when Y2DEBUG is set
-* Mon Feb 23 2004 - [email protected]
-- Reread log.conf on SIGUSR1
-- 2.9.11
-* Sat Feb 21 2004 - [email protected]
-- Reimplemented counted pointer classes
-- 2.9.10
-* Thu Feb 19 2004 - [email protected]
-- ensure initialization of memusage counter
-- 2.9.9
-* Wed Feb 18 2004 - [email protected]
-- better function name for the simple log mode
-* Tue Feb 17 2004 - [email protected]
-- Added MemUsage
-- 2.9.8
-* Mon Feb 09 2004 - [email protected]
-- added simple log mode (mainly for ycpc)
-- 2.9.7
-* Tue Jan 27 2004 - [email protected]
-- Let parser classes use std::streamoff instead of std::streampos.
-* Sat Jan 24 2004 - [email protected]
-- Added PathInfo::hardlink
-- 2.9.6
-* Fri Jan 23 2004 - [email protected]
-- added possibility to use a custom log.conf
-* Thu Jan 22 2004 - [email protected]
-- Compile with gcc-3.4
-- 2.9.5
-* Thu Dec 18 2003 - [email protected]
-- Restored Y2SLog providing a default log component name.
-- 2.9.4
-* Fri Dec 12 2003 - [email protected]
-- merge again the logging functionality from core
-- implement better logging configuration
-- 2.9.3
-* Thu Nov 13 2003 - [email protected]
-- Fixed ProgressCounter::updateIfNewPercent. After reset, update
-  should be triggered anyway. Otherwise an initial 0%% report may
-  get lost. (#30382)
-- 2.9.2
-* Thu Nov 06 2003 - [email protected]
-- Switched autodocs from kdoc to doxygen
-- 2.9.1
-* Tue Sep 23 2003 - [email protected]
-- Added PathInfo::symlink
-- 2.8.15
-* Thu Sep 18 2003 - [email protected]
-- Provide virtual methods Rep::ref_to and Rep::unref_to triggered
-  whenever the reference counter changes.
-- 2.8.12
-* Thu Sep 11 2003 - [email protected]
-- ExternalProgram: Close excess file descriptors on exec. (#30410)
-- 2.8.11
-* Fri Aug 29 2003 - [email protected]
-- Adapt CallBack and ProgressCounter to packagemanager needs.
-- 2.8.10
-* Mon Aug 25 2003 - [email protected]
-- Second part of fix for bug #19603: RPM groups not translated
-  Moved gettext initialization out to from Y2PM.cc (in packagemanager)
-  to YRpmGroupsTree.cc
-* Tue Aug 12 2003 - [email protected]
-- fixed PtrClasses: call to nonstatic member before class is
-  completely initialized.
-- 2.8.9
-* Tue Jul 29 2003 - [email protected]
-- Suppress ".." in PathInfo::readDir().
-* Mon Jul 28 2003 - [email protected]
-- Fix test suite for autobuild.
-- 2.8.8
-* Sun Jul 27 2003 - [email protected]
-- Fixes to CallBack class.
-- 2.8.7
-* Tue Jul 15 2003 - [email protected]
-- Added CallBack template classes.
-- Added ProgressCounter incl. callback support.
-- 2.8.6
-* Tue Jul 08 2003 - [email protected]
-- Added support for "file:" URLs.
-- Added Url class tests.
-- Removed "get" suffix from Url accessor functions.
-- Added Protocol enum to Url class.
-- Changed Url::setPort/port() to use int value.
-- 2.8.5
-* Tue Jun 24 2003 - [email protected]
-- Fixed ExternalProgram::running().
-* Tue Jun 17 2003 - [email protected]
-- Added FSize constructor with string argument.
-* Wed Jun 11 2003 - [email protected]
-- add /usr/include/YaST2 to file list of devel subpackage
-* Tue Jun 03 2003 - [email protected]
-- Build fix: Don't package unmaintained validate_* programs at all.
-- Added PathInfo::zipType
-- 2.8.2
-* Fri May 30 2003 - [email protected]
-- Build fix: package also validate_packages_lang, validate_selection.
-- 2.8.1
-* Tue Apr 22 2003 - [email protected]
-- 2.8.0
-* Tue Apr 22 2003 - [email protected]
-- Also use separate GPG home dir when running as non-root (#26360).
-* Fri Mar 14 2003 - [email protected]
-- In vendor check isSuSE() return true for "UnitedLinux" too.
-- 2.7.15
-* Thu Mar 06 2003 - [email protected]
-- Added 'int PathInfo::chmod( const Pathname & path, mode_t mode );'
-- 2.7.14
-* Mon Mar 03 2003 - [email protected]
-- 2.7.13
-* Thu Feb 27 2003 - [email protected]
-- use std::set instead of hash in Ustring.h for speed reasons
-- increase library version number to reflect binary incompatible changes
-* Tue Feb 25 2003 - [email protected]
-- GPGCheck now also works for non-root users.
-* Tue Feb 25 2003 - [email protected]
-- 2.7.12   #include <assert.h> added
-* Mon Feb 24 2003 - [email protected]
-- Don't report missing config file as error (#23799).
-* Fri Feb 21 2003 - [email protected]
-- 2.7.10
-* Wed Feb 19 2003 - [email protected]
-- GPGCheck: Don't prompt user, when destination file can't be removed.
-* Tue Feb 18 2003 - [email protected]
-- Added PathInfo::userMay methods, evaluating file permissions according
-  to current uid/gid.
-- 2.7.9
-* Tue Feb 11 2003 - [email protected]
-- (Partial) fix for bug #19603: RPM groups not translated
-  YRpmGroupsTree / YStringTree now use dgettext( "rpm-groups", msg )
-  to retrieve the translations.
-* Mon Feb 03 2003 - [email protected]
-- Url::operator== should be 'const'.
-- 2.7.7
-* Wed Jan 29 2003 - [email protected]
-- Added FSize::fillBlock (and FSize::fullBlock) to adjust (return adjusted)
-  size to provided blocksize boundary.
-- 2.7.6
-* Thu Jan 23 2003 - [email protected]
-- Added class PathInfo::devino_cache. Standalone simple cache
-  remembering device/inode to detect hardlinks.
-- 2.7.5
-- Added class PathInfo::stat_mode. Standalone wrapper class for mode_t
-  values (filetype and protection) as derived from ::stat().
-- 2.7.4
-- Added stringutil::splitToLines. Split string into a list of lines
-  using per default '\n' as line delimiter.
-- Added stringutil::dumpOn. Helper for stream output of string list
-  and vector.
-- 2.7.3
-* Wed Jan 22 2003 - [email protected]
-- Added numstring, hexstring and optstring functions for long long
-  parameters.
-* Wed Dec 18 2002 - [email protected]
-- Added Url::operator==().
-- Added PathInfo::copy().
-- Cleaned up GPGCheck class.
-- Folded TaggedParser::lookupYouEndTag() into TaggedParser::lookupEndTag().
-* Thu Nov 14 2002 - [email protected]
-- Fixed bug that inhibits logging on big-endian architectures.
-- 2.7.1
-* Thu Nov 14 2002 - [email protected]
-- Added SysConfig class for accessing /etc/sysconfig/* files.
-* Mon Oct 14 2002 - [email protected]
-- Fixed TagRetrievalPos. Failed to read multiline entries containing
-  lines longer than 1024 byte.
-- 2.6.21
-* Wed Oct 09 2002 - [email protected]
-- Fixed pathInfo::copy_dir. Check for existing target dir didn't work.
-- 2.6.20
-* Wed Oct 02 2002 - [email protected]
-- Added support for YOU-style localized multiline tags.
-- 2.6.19
-* Wed Sep 11 2002 - [email protected]
-- Handle empty values in TaggedParser more gracefully
-- 2.6.18
-* Tue Sep 10 2002 - [email protected]
-- Added LangCode::hasCountry() and LangCode::languageOnly()
-- 2.6.17
-* Tue Sep 10 2002 - [email protected]
-- reduce logging (bug #19289)
-* Tue Sep 10 2002 - [email protected]
-- add PathInfo::rename()
-- 2.6.15
-* Mon Sep 09 2002 - [email protected]
-- do not output password by default, use saveAsString if you need it
-* Sun Sep 08 2002 - [email protected]
-- ignore case of end tags when parsing
-- 2.6.13
-* Fri Sep 06 2002 - [email protected]
-- dont output stderr of "diff" to console
-- 2.6.12
-* Thu Sep 05 2002 - [email protected]
-- improve Rep handling
-- improve Url handling
-- count sizes in 1024, not 1000
-- 2.6.11
-* Tue Sep 03 2002 - [email protected]
-- add vendor checks
-- improve TaggedParser/TaggedFile to read old common.pkd format
-- 2.6.10
-* Tue Sep 03 2002 - [email protected]
-- kdoc cleanup: better cross references and fixed some parsing issues.
-* Sun Sep 01 2002 - [email protected]
-- add Vendor hash
-- 2.6.9
-* Wed Aug 28 2002 - [email protected]
-- add PathInfo::copy_file2dir()
-- 2.6.8
-* Wed Aug 28 2002 - [email protected]
-- add PathInfo::copy_dir()
-- 2.6.7
-* Sun Aug 25 2002 - [email protected]
-- add TaggedFile and TaggedParser for easier packages parsing
-* Fri Aug 23 2002 - [email protected]
-- drop BitField implementation.
-* Wed Aug 21 2002 - [email protected]
-- add group tag cache
-* Sun Aug 18 2002 - [email protected]
-- add TagCacheRetrievalPtr
-- add reference pointer statistics
-* Fri Aug 16 2002 - [email protected]
-- split off core logging functions for use by liby2util
-  and yast2-core
-* Thu May 16 2002 - [email protected]
-- Initial version.
--- a/nautilus-media.spec	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,143 +0,0 @@
-Name: 		nautilus-media
-Version: 	0.8.0
-Release: 	38
-Distribution:	Java Desktop System, Release 3
-Vendor:		Sun Microsystems, Inc.
-Summary: 	A Nautilus media package with views and thumbnailers.
-Group: 		System/GUI/GNOME
-License: 	GPL
-URL:		http://www.gnome.org/
-Source: 	http://ftp.gnome.org/pub/gnome/sources/nautilus-media/0.3/%{name}-%{version}.tar.bz2
-Source1:    nautilus-media-l10n-po-1.14.tar.bz2
-Source2:    gst-thumbnail.1.gz
-Source3:    l10n-configure.sh
-Patch1:		nautilus-media-01-solaris.diff
-BuildRoot: 	%{_tmppath}/%{name}-%{version}-build
-Autoreqprov:	on
-Prereq:         /sbin/ldconfig
-
-%define gstreamer_version 0.8.0
-%define gconf_version 2.4.0.1
-%define nautilus_version 2.5.4
-
-Requires: 	gstreamer >= %{gstreamer_version}
-Requires: 	gstreamer-plugins >= %{gstreamer_version}
-Requires:	GConf >= %{gconf_version}
-
-BuildRequires:	gstreamer-devel >= %{gstreamer_version}
-BuildRequires:	gstreamer-plugins-devel >= %{gstreamer_version}
-BuildRequires:	nautilus-devel >= %{nautilus_version}
-
-%description
-This package contains a Nautilus view for audio using GStreamer.
-
-%prep
-%setup -n %{name}-%{version}
-%patch1 -p1
-/usr/bin/bzcat -dc %SOURCE1|tar xf -
-
-bash -x %SOURCE3
-
-%build
-CFLAGS="$RPM_OPT_FLAGS"		\
-./configure			\
-  --prefix=%{_prefix}		\
-  --sysconfdir=%{_sysconfdir}	\
-  --libexecdir=%{_libexecdir}	\
-  --mandir=%{_mandir}
-
-%install
-export GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1
-make -i install DESTDIR=$RPM_BUILD_ROOT
-unset GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL
-
-install -d $RPM_BUILD_ROOT%{_mandir}/man1
-install --mode=0644 %SOURCE2 $RPM_BUILD_ROOT%{_mandir}/man1
-
-# clean up unpackaged files
-rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
-rm -f $RPM_BUILD_ROOT%{_libdir}/bonobo/*.la
-rm -f $RPM_BUILD_ROOT%{_libdir}/bonobo/*.a
-rm -f $RPM_BUILD_ROOT%{_libdir}/bonobo/servers/Nautilus_View_audio.server
-rm -f $RPM_BUILD_ROOT%{_libdir}/bonobo/servers/Nautilus_View_audio_properties.server
-
-%clean
-[ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf $RPM_BUILD_ROOT
-
-%post
-/sbin/ldconfig
-export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source`
-gconftool-2 --makefile-install-rule %{_sysconfdir}/gconf/schemas/gst-thumbnail.schemas > /dev/null
-
-%postun
-/sbin/ldconfig
-
-%files
-%defattr(-, root, root)
-%{_bindir}/gst-thumbnail
-#%{_libdir}/bonobo/servers/*
-%{_libdir}/bonobo/libnautilus-audio-properties-view.so
-%{_libexecdir}/nautilus-audio-view
-%{_datadir}/pixmaps/%{name}
-%{_datadir}/nautilus/glade/audio-properties-view.glade
-%{_datadir}/gnome-2.0/ui/nautilus-audio-view-ui.xml
-%{_datadir}/locale/*/LC_MESSAGES/nautilus-media.mo
-%{_sysconfdir}/gconf/schemas/gst-thumbnail.schemas
-%{_mandir}/man1/*
-
-%changelog
-* Thu Oct 28 2004 - [email protected]
-- Add gst-thumbnail.1 man page
-
-* Fri Aug 20 2004 - [email protected]
-- Remove server files by name rather than using *.server because when building
-  on Solaris we build multiple packages together and this is also deleting
-  server files installed by gnome-media, which is not desired.
-
-* Thu Jul 15 2004 - [email protected]
-- Added patch 01 to support nautilus-media working on Solaris.
-
-* Tue Jul 12 2004 - [email protected]
-- remove %{_libdir}/bonobo/servers/* from installed files
-  rpm4 does not like it when stuff is just commented out
-
-* Thu Jul 08 2004 - [email protected]
-- Updated l10n content to nautilus-media-l10n-po-1.2.tar.bz2
-
-* Mon May 10 2004 - [email protected]
-- up required gstreamer version
-
-* Tue Apr 06 2004 - [email protected]
-- pump up to 0.8.0 version which is released in 2.6
-
-* Wed Mar 31 2004 - [email protected]
-- replace tar jxf with the more solaris friendly
-  bzcat piped through tar
-
-* Mon Mar 29 2004 - [email protected]
-- Adding nautilus-media-l10n-po-1.0.tar.bz2 l10n content
-
-* Mon Feb 02 2004 <[email protected]>
-- Bump to 0.5.3, because of gstreamer update
-
-* Mon Feb 02 2004 <[email protected]>
-- comment out %{_libdir}/bonobo/servers/* from %files
-
-* Mon Jan 12 2004 Niall Power <[email protected]>
-- new version: 0.5.2
-- clean up dependencies
-
-* Tue Oct 14 2003 Niall Power <[email protected]>
-- update to version 0.3.3
-- removed patches nautilus-media-01-file-info.diff and
-  nautilus-media-02-dnd-mp3-crash.diff: merged upstream.
-
-* Tue Sep 23 2003 Niall Power <[email protected]>
-- added nautilus-media-02-dnd-mp3-crash.diff. Patch from
-  [email protected] fixes BT# 4891138
-
-* Thu Sep 18 2003 Niall Power <[email protected]>
-- added nautilus-media-01-file-info.diff patch from Kaushal
-- Fixes BT# 4903315
-* Wed May 14 2003 Niall Power <[email protected]>
-- initial spec file
--- a/oxygen2.spec	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,246 +0,0 @@
-#
-# License (c) 2003 Sun Microsystems Inc.
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
-#
-%define t_suffix -build34-linux-cb
-%define _unpackaged_files_terminate_build 0
-%{?nightly:%define t_suffix -%(TZ=GMT date +%Y%m%d)}
-
-Name:		oxygen2
-Version:	1.4
-Release:	56
-Vendor:		Sun Microsystems, Inc.
-Distribution:	Java Desktop System, Release 3
-Copyright:	LGPL/GPL
-BuildRoot:	%{_tmppath}/%{name}-%{version}-root
-Docdir:		%{_datadir}/doc
-Autoreqprov:	on
-URL:		http://www.sun.com/software/javadesktopsystem/
-Source:		%{name}-%{version}%{t_suffix}.tar.bz2
-Source1:        mkinstalldirs
-Source2: oxygen2-l10n-po-1.14.tar.bz2
-Source3: l10n-configure.sh
-Patch1:         oxygen2-01-g11n-alllinguas.diff
-BuildRequires:	glibc-devel
-BuildRequires:	libtool
-BuildRequires:	glib2-devel
-BuildRequires:	libsoup-devel
-BuildRequires:	evolution-devel	
-BuildRequires:  libgal-devel 
-BuildRequires:  libbonoboui-devel
-BuildRequires:  bonobo-activation-devel
-BuildRequires:	libxml2-devel
-Summary:	The Evolution Exchange connector
-Group:		System Environment/Libraries
-Requires:	libsoup
-Requires:	evolution
-Requires:	glib2
-Requires:	libgal
-Requires:       bonobo-activation
-Requires:	libxml2
-
-%description
-The MS Exchange connector, protocol webdev.
-
-%files
-%defattr(755, root, root)
-%doc COPYING ChangeLog AUTHORS INSTALL NEWS README
-%{_bindir}/*
-%{_libdir}/evolution/*/camel-providers/lib*.so
-%{_libdir}/evolution/*/camel-providers/*.urls
-%{_libdir}/bonobo
-%{_libexecdir}/evolution/1.4/evolution-exchange-storage
-%{_sysconfdir}/gconf/schemas/apps_evolution_exchange.schemas
-%{_datadir}/ximian-connector
-%{_datadir}/evolution
-%{_datadir}/locale
-
-%post
-ldconfig
-
-%prep
-case "${RPM_COMMAND:-all}" in
-dist)
-%setup  -q -D -n %{name}-%{version}
-bzcat %SOURCE2 | tar xf -
-    ;;
-all)
-%setup  -q -n %{name}-%{version}
-%patch1 -p1
-
-bzcat %SOURCE2 | tar xf -
-    ;;
-esac
-cp %SOURCE1 .
-
-bash -x %SOURCE3
-
-%build
-%ifos linux
-if [ -x /usr/bin/getconf ]; then
-  CPUS=`getconf _NPROCESSORS_ONLN`
-fi
-%else
-  CPUS=`/usr/sbin/psrinfo | grep on-line | wc -l | tr -d ' '`
-%endif
-if test "x$CPUS" = "x" -o $CPUS = 0; then
-  CPUS=1
-fi
-
-export LDFLAGS=$LDFLAGS" -R`pkg-config --variable=privlibdir evolution-shell`" 
-MAKE=${MAKE:-make}
-RPM_COMMAND=${RPM_COMMAND:-all}
-ARCH=%{_target_platform}
-export MAKE RPM_COMMAND ARCH
-case "$RPM_COMMAND" in
-prepare|all)
-    aclocal $ACLOCAL_FLAGS -I %{_datadir}/aclocal/gnome2-macros
-    libtoolize --force
-    glib-gettextize --force --copy
-    intltoolize --force --automake
-    autoheader
-    automake -a -f -c --gnu
-    autoconf
-    ./configure --prefix=%{_prefix} \
-	--libexecdir=%{_libexecdir} \
-	--sysconfdir=%{_sysconfdir} \
-        --enable-ldap=/usr
-    ;;
-esac
-export DESTDIR=${DESTDIR:-"$RPM_BUILD_ROOT"}
-case "$RPM_COMMAND" in
-clean|all)
-    if [ "/" != "$DESTDIR" ]; then
-        rm -rf "$DESTDIR"
-    fi
-    ;;
-esac
-case "$RPM_COMMAND" in
-build|all)
-    ${MAKE} -j $CPUS
-    ;;
-esac
-
-%install
-MAKE=${MAKE:-make}
-DESTDIR=${DESTDIR:-"$RPM_BUILD_ROOT"}
-export DESTDIR
-case "${RPM_COMMAND:-all}" in
-install|all)
-     ${MAKE} install DESTDIR=${DESTDIR}
-    ;;
-esac
-
-%clean
-DESTDIR=${DESTDIR:-"$RPM_BUILD_ROOT"}
-export DESTDIR
-case "${RPM_COMMAND:-all}" in
-clean|all)
-    if [ "/" != "$DESTDIR" ]; then
-        rm -rf "$DESTDIR"
-    fi
-    ;;
-esac
-%changelog
-* Mon Apr 25 2005 - [email protected]
-- Bump source tarball to build 34 (linux)
-
-* Mon Apr 11 2005 - [email protected]
-- Bump source tarball to build 33 (linux)
-
-* Mon Mar 28 2005 - [email protected]
-- Bump source tarball to build 32 (linux)
-
-* Mon Mar 14 2005 - [email protected]
-- Bump source tarball to build 31 (linux)
-
-* Mon Feb 28 2005 - [email protected]
-- Bump source tarball to build 30 (linux)
-
-* Mon Feb 14 2005 - [email protected]
-- Bump source tarball to build 29 (linux)
-
-* Mon Jan 31 2005 - [email protected]
-- Bump source tarball to build 28 (linux)
-
-* Mon Jan 17 2005 - [email protected]
-- Bump source tarball to build 27 (linux)
-
-* Tue Jan 04 2005 - [email protected]
-- Bump source tarball to build 26 (linux)
-
-* Mon Dec 13 2004 - [email protected]
-- Bump source tarball to build 25 (linux)
-
-* Mon Nov 29 2004 - [email protected]
-- Bump source tarball to build 24
-
-* Mon Nov 15 2004 - [email protected]
-- Bump source tarball to build 23.
-
-* Mon Nov 01 2004 - [email protected]
-- bump src tarball to build22
-
-* Mon Oct 18 2004 - [email protected]
-- bump src tarball to build21
-
-* Mon Oct 11 2004 - [email protected]
-- bump src tarball to build20b
-
-* Thu Oct 07 2004 - [email protected]
-- Recreated oxygen2-01-g11n-alllinguas.diff
-
-* Mon Sep 20 2004 - [email protected]
-- removed patch 01
-
-* Mon Sep 20 2004 - [email protected]
-- bump src tarball to build19
-
-* Thu Sep 17 2004 - [email protected]
-- Added oxygen2-01-g11n-alllinguas.diff to support cs,hu linguas
-
-* Tue Sep 15 2004 - [email protected]
-- Add _unpackaged_files_terminate_build to 
-- disable rpm v4.1.1 "Checking for unpackaged file" feature
-
-* Mon Sep 06 2004 - [email protected]
-- bump src tarball to build18
-
-* Tue Aug 24 2004 - [email protected]
-- changed %{_sysconfdir}/* to %{_sysconfdir}/gconf/schemas/apps_evolution_exchange.schemas 
-
-* Mon Aug 23 2004 - [email protected]
-- bump src tarball to build17
-
-* Mon Aug 09 2004 - [email protected]
-- bump src tarball to build16
-
-* Tue Jul 27 2004 - [email protected]
-- remove patch 01
-
-* Mon Jul 26 2004 - [email protected]
-- bump src tarball to build15
-
-* Fri Jul 16 2004 - [email protected]
-- change the version number to 1.4 approved by Henry Jia
-* Mon Jul 12 2004 - [email protected]
-- bump src tarball to build14
-
-* Fri Jul 09 2004 - [email protected]
-- Added patch1 for language content inclusion
-
-* Thu Jul 08 2004 - [email protected]
-- Adding oxygen2-l10n-po-1.2.tar.bz2 l10n content
-
-* Wed Jul 07 2004 - [email protected]
-- added "-j $CPUS" to make to speed up builds
-
-* Fri Jun 25 2004 - [email protected]
-- bump src tarball to build13
-* Wed Jun 16 2004 - [email protected]
-- Remove upstream applied patch.
-* Fri Jun 11 2004 - [email protected]
-- Add patch for configure.in.
-* Thu Jun 10 2004 - [email protected]
-- bump src tarball to build12
--- a/patches/bug-buddy-01-remove-ximian-druid-pages.diff	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,202 +0,0 @@
---- ../bug-buddy-2.5.3.old/src/bugzilla.c	2004-02-23 10:48:30.000000000 +0000
-+++ ./src/bugzilla.c	2004-02-23 10:52:33.000000000 +0000
-@@ -1505,7 +1505,7 @@
- 
- 	severity = druid_data.severity ? druid_data.severity : "Normal";
- 	
--	if (include_headers)
-+/*	if (include_headers) */
- 		g_string_append_printf (email, "Subject: %s\n\n", subject);
- 
- 	get_distro_name();
---- ../bug-buddy-2.5.3.old/src/bug-buddy.c	2004-02-23 10:48:30.000000000 +0000
-+++ ./src/bug-buddy.c	2004-02-23 10:53:25.000000000 +0000
-@@ -684,6 +684,7 @@
- 	init_gnome_version_stuff ();
- 	init_ui ();
- 
-+/*
- 	load_bugzillas ();
- 	if (druid_data.need_to_download) {
- 		int response;
-@@ -717,10 +718,11 @@
- 	}
- 
- 	load_bugzilla_xml ();
-+*/
- 
- 	gtk_widget_show (GET_WIDGET ("druid-window"));
- 
--	load_applications ();
-+/*	load_applications (); */
- 	start_gdb ();
- 
- 	gtk_main ();
---- ../bug-buddy-2.5.3.old/src/united-states-of-bug-buddy.c	2004-02-23 10:54:36.000000000 +0000
-+++ ./src/united-states-of-bug-buddy.c	2004-02-23 10:57:47.000000000 +0000
-@@ -353,6 +353,7 @@
- 
- 	switch (druid_data.state) {
- 	case STATE_DESC:
-+/*
- 		if (!druid_data.mostfreq_skipped) {
- 			newstate = STATE_MOSTFREQ;
- 			break;
-@@ -370,6 +371,7 @@
- 			newstate = STATE_GDB;
- 			break;
- 		}
-+*/
- 		newstate = STATE_INTRO;
- 		break;
- 	case STATE_MOSTFREQ:
-@@ -648,7 +650,8 @@
- 	g_free (from);
- 	g_free (name);
- 
--	to = buddy_get_text ("email-to-entry");
-+/*	to = buddy_get_text ("email-to-entry");*/
-+	to = "[email protected]";
- 	g_string_append_printf (buf, "To: %s\n", to);
- 	
- 	s = buddy_get_text ("email-cc-entry");
-@@ -703,7 +706,7 @@
- 			goto submit_ok_out;
- 		}
- 
--		s = g_strdup_printf (_("Your bug report has been submitted to:\n\n        <%s>\n\nBug reporting is an important part of making Free Software. Thank you for helping."), to);
-+		s = g_strdup_printf (_("Your bug report has been submitted!"));
- 	}
- 
- 	buddy_set_text ("finished-label", s);
-@@ -876,6 +879,7 @@
- 	}
- 	case STATE_GDB:
- 	{
-+		/*
- 		BugzillaApplication *application;
- 		BugzillaProduct *product;
- 		BugzillaBTS *bts;
-@@ -923,6 +927,8 @@
- 			select_version (product->versions, druid_data.version);
- 			select_severity (druid_data.product->bts->severities, "critical");
- 		}
-+		*/
-+		newstate = STATE_DESC;
- 		break;
- 	}
- 	case STATE_PRODUCT:
---- ../bug-buddy-2.5.3.old/src/bug-buddy.glade	2004-02-23 10:54:36.000000000 +0000
-+++ ./src/bug-buddy.glade	2004-02-23 11:03:17.000000000 +0000
-@@ -1456,8 +1456,7 @@
- 			  <child>
- 			    <widget class="GtkLabel" id="label153">
- 			      <property name="visible">True</property>
--			      <property name="label" translatable="yes">Bug Buddy uses email to submit the bug reports.
--Please choose how you would like Bug Buddy to send email.</property>
-+			      <property name="label" translatable="yes">Please provide your name and email address.</property>
- 			      <property name="use_underline">False</property>
- 			      <property name="use_markup">False</property>
- 			      <property name="justify">GTK_JUSTIFY_LEFT</property>
-@@ -1477,7 +1476,6 @@
- 
- 			  <child>
- 			    <widget class="GtkRadioButton" id="email-sendmail-radio">
--			      <property name="visible">True</property>
- 			      <property name="can_focus">True</property>
- 			      <property name="label" translatable="yes">Use _sendmail directly</property>
- 			      <property name="use_underline">True</property>
-@@ -1497,7 +1495,6 @@
- 
- 			  <child>
- 			    <widget class="GtkRadioButton" id="email-file-radio">
--			      <property name="visible">True</property>
- 			      <property name="can_focus">True</property>
- 			      <property name="label" translatable="yes">Just s_ave to a file so I can submit a bug report manually</property>
- 			      <property name="use_underline">True</property>
-@@ -1589,7 +1586,6 @@
- 
- 				  <child>
- 				    <widget class="GtkLabel" id="email-sendmail-label">
--				      <property name="visible">True</property>
- 				      <property name="label" translatable="yes">Path of sendmail:</property>
- 				      <property name="use_underline">False</property>
- 				      <property name="use_markup">False</property>
-@@ -1613,7 +1609,6 @@
- 
- 				  <child>
- 				    <widget class="GnomeFileEntry" id="email-sendmail-gnome-entry">
--				      <property name="visible">True</property>
- 				      <property name="max_saved">10</property>
- 				      <property name="directory_entry">False</property>
- 				      <property name="modal">False</property>
-@@ -1621,7 +1616,6 @@
- 
- 				      <child internal-child="entry">
- 					<widget class="GtkEntry" id="email-sendmail-entry">
--					  <property name="visible">True</property>
- 					  <property name="can_focus">True</property>
- 					  <property name="editable">True</property>
- 					  <property name="visibility">True</property>
-@@ -1698,20 +1692,7 @@
- 			      </child>
- 
- 			      <child>
--				<widget class="GtkLabel" id="label176">
--				  <property name="visible">True</property>
--				  <property name="label" translatable="yes">Sendmail Settings</property>
--				  <property name="use_underline">False</property>
--				  <property name="use_markup">False</property>
--				  <property name="justify">GTK_JUSTIFY_LEFT</property>
--				  <property name="wrap">False</property>
--				  <property name="selectable">False</property>
--				  <property name="xalign">0.5</property>
--				  <property name="yalign">0.5</property>
--				  <property name="xpad">0</property>
--				  <property name="ypad">0</property>
--				</widget>
--				<packing>
-+				<placeholder/>
- 				  <property name="type">label_item</property>
- 				</packing>
- 			      </child>
-@@ -1783,7 +1764,6 @@
- 
- 			  <child>
- 			    <widget class="GtkTable" id="email-to-table">
--			      <property name="visible">True</property>
- 			      <property name="n_rows">2</property>
- 			      <property name="n_columns">2</property>
- 			      <property name="homogeneous">False</property>
-@@ -1792,7 +1772,6 @@
- 
- 			      <child>
- 				<widget class="GtkLabel" id="email-cc-label">
--				  <property name="visible">True</property>
- 				  <property name="label" translatable="yes">Cc:</property>
- 				  <property name="use_underline">False</property>
- 				  <property name="use_markup">False</property>
-@@ -1869,7 +1848,6 @@
- 
- 			      <child>
- 				<widget class="GnomeEntry" id="email-to-gnome-entry">
--				  <property name="visible">True</property>
- 				  <property name="history_id">email-to-gnome-entry</property>
- 				  <property name="max_saved">10</property>
- 
-@@ -1905,7 +1883,6 @@
- 
- 			  <child>
- 			    <widget class="GtkHBox" id="email-save-in-box">
--			      <property name="visible">True</property>
- 			      <property name="homogeneous">False</property>
- 			      <property name="spacing">4</property>
- 
-@@ -2296,7 +2273,6 @@
- 	      <property name="focus_on_click">True</property>
- 	      <property name="response_id">-6</property>
- 	    </widget>
--	  </child>
- 
- 	  <child>
- 	    <widget class="GtkButton" id="button5">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/gail-02-model-row-deleted-fix.diff	Thu Aug 11 18:49:44 2005 +0000
@@ -0,0 +1,51 @@
+? gail/gailtreeview.c.debug
+Index: gail/gailtreeview.c
+===================================================================
+RCS file: /cvs/gnome/gail/gail/gailtreeview.c,v
+retrieving revision 1.177
+diff -u -r1.177 gailtreeview.c
+--- gail/gailtreeview.c	28 Apr 2005 14:14:37 -0000	1.177
++++ gail/gailtreeview.c	19 May 2005 12:47:15 -0000
+@@ -3435,14 +3435,17 @@
+   GObject *obj;
+ 
+   cell_info = list->data;
+-  obj = G_OBJECT (cell_info->cell);
+ 
+-  gail_cell_add_state (cell_info->cell, ATK_STATE_DEFUNCT, TRUE);
+-  g_object_weak_unref (obj, (GWeakNotify) cell_destroyed, cell_info);
+-  cell_info->in_use = FALSE; 
+-  if (!garbage_collection_pending) {
+-      garbage_collection_pending = TRUE;
+-      g_idle_add (garbage_collect_cell_data, gailview);
++  if (cell_info->in_use) {
++      obj = G_OBJECT (cell_info->cell);
++      
++      gail_cell_add_state (cell_info->cell, ATK_STATE_DEFUNCT, TRUE);
++      g_object_weak_unref (obj, (GWeakNotify) cell_destroyed, cell_info);
++      cell_info->in_use = FALSE; 
++      if (!garbage_collection_pending) {
++	  garbage_collection_pending = TRUE;
++	  g_idle_add (garbage_collect_cell_data, gailview);
++      }
+   }
+ }
+ 
+@@ -3957,11 +3960,12 @@
+   GailTreeViewCellInfo *cell_info = data;
+ 
+   g_return_if_fail (cell_info);
+-  g_return_if_fail (GAIL_IS_CELL (cell_info->cell));
+-  cell_info->in_use = FALSE;
+-  if (!garbage_collection_pending) {
+-      garbage_collection_pending = TRUE;
+-      g_idle_add (garbage_collect_cell_data, cell_info->view);
++  if (cell_info->in_use) {
++      cell_info->in_use = FALSE;
++      if (!garbage_collection_pending) {
++	  garbage_collection_pending = TRUE;
++	  g_idle_add (garbage_collect_cell_data, cell_info->view);
++      }
+   }
+ }
+ 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/gail-03-garbage-collect-6278812.diff	Thu Aug 11 18:49:44 2005 +0000
@@ -0,0 +1,145 @@
+? gail/gailtreeview.c.debug
+Index: gail/gailtreeview.c
+===================================================================
+RCS file: /cvs/gnome/gail/gail/gailtreeview.c,v
+retrieving revision 1.178
+diff -u -r1.178 gailtreeview.c
+--- gail/gailtreeview.c	19 May 2005 13:07:37 -0000	1.178
++++ gail/gailtreeview.c	2 Jun 2005 14:07:33 -0000
+@@ -341,7 +341,6 @@
+ static gboolean editing = FALSE;
+ static const gchar* hadjustment = "hadjustment";
+ static const gchar* vadjustment = "vadjustment";
+-static gboolean garbage_collection_pending = FALSE;
+ 
+ struct _GailTreeViewRowInfo
+ {
+@@ -685,6 +684,10 @@
+ {
+   GailTreeView *view = GAIL_TREE_VIEW (object);
+ 
++  /* remove anyg idle handlers still pending */
++  if (view->idle_garbage_collect_id)
++      g_source_remove (view->idle_garbage_collect_id);
++
+   if (view->caption)
+     g_object_unref (view->caption);
+   if (view->summary)
+@@ -3434,6 +3437,8 @@
+   GailTreeViewCellInfo *cell_info;
+   GObject *obj;
+ 
++  g_assert (GAIL_IS_TREE_VIEW (gailview));
++
+   cell_info = list->data;
+ 
+   if (cell_info->in_use) {
+@@ -3442,9 +3447,10 @@
+       gail_cell_add_state (cell_info->cell, ATK_STATE_DEFUNCT, TRUE);
+       g_object_weak_unref (obj, (GWeakNotify) cell_destroyed, cell_info);
+       cell_info->in_use = FALSE; 
+-      if (!garbage_collection_pending) {
+-	  garbage_collection_pending = TRUE;
+-	  g_idle_add (garbage_collect_cell_data, gailview);
++      if (!gailview->garbage_collection_pending) {
++	  gailview->garbage_collection_pending = TRUE;
++	  gailview->idle_garbage_collect_id = 
++	      g_idle_add (garbage_collect_cell_data, gailview);
+       }
+   }
+ }
+@@ -3552,11 +3558,16 @@
+ static gboolean
+ garbage_collect_cell_data (gpointer data)
+ {
+-      GailTreeView *tree_view = data;
+-      GList *temp_list = tree_view->cell_data;
++      GailTreeView *tree_view;
++      GList *temp_list;
+       GailTreeViewCellInfo *cell_info;
+ 
+-      garbage_collection_pending = FALSE;
++      g_assert (GAIL_IS_TREE_VIEW (data));
++      tree_view = (GailTreeView *)data;
++      temp_list = tree_view->cell_data;
++
++      tree_view->garbage_collection_pending = FALSE;
++      tree_view->idle_garbage_collect_id = 0;
+ 
+       /* Must loop through them all */
+       while (temp_list != NULL)
+@@ -3574,7 +3585,7 @@
+           temp_list = temp_list->next;
+       }
+       
+-      return garbage_collection_pending;
++      return tree_view->garbage_collection_pending;
+ }
+ 
+ /**
+@@ -3962,8 +3973,10 @@
+   g_return_if_fail (cell_info);
+   if (cell_info->in_use) {
+       cell_info->in_use = FALSE;
+-      if (!garbage_collection_pending) {
+-	  garbage_collection_pending = TRUE;
++
++      g_assert (GAIL_IS_TREE_VIEW (cell_info->view));
++      if (!cell_info->view->garbage_collection_pending) {
++	  cell_info->view->garbage_collection_pending = TRUE;
+ 	  g_idle_add (garbage_collect_cell_data, cell_info->view);
+       }
+   }
+@@ -4010,6 +4023,8 @@
+ {
+   GailTreeViewCellInfo *cell_info;
+ 
++  g_assert (GAIL_IS_TREE_VIEW (gailview));
++
+   cell_info = g_new (GailTreeViewCellInfo, 1);
+   cell_info->cell_row_ref = gtk_tree_row_reference_new (tree_model, path);
+ 
+@@ -4154,21 +4169,19 @@
+       view->row_data = NULL;
+     }
+ 
+-  garbage_collect_cell_data (view);
+   if (view->cell_data)
+     {
+       /* Must loop through them all */
+       for (temp_list = view->cell_data; temp_list; temp_list = temp_list->next)
+         {
+-          cell_info = (GailTreeViewCellInfo *) temp_list->data;
+-          if (cell_info->cell_row_ref != NULL)
+-            gtk_tree_row_reference_free (cell_info->cell_row_ref);
+-          g_free (temp_list->data);
++	    clean_cell_info (view, temp_list);
+         }
+-      g_list_free (view->cell_data);
+-
+-      view->cell_data = NULL;
+     }
++  garbage_collect_cell_data (view);
++  if (view->cell_data)
++      g_list_free (view->cell_data);
++  
++  view->cell_data = NULL;
+ }
+ 
+ /*
+Index: gail/gailtreeview.h
+===================================================================
+RCS file: /cvs/gnome/gail/gail/gailtreeview.h,v
+retrieving revision 1.24
+diff -u -r1.24 gailtreeview.h
+--- gail/gailtreeview.h	25 Nov 2004 13:27:29 -0000	1.24
++++ gail/gailtreeview.h	2 Jun 2005 14:07:34 -0000
+@@ -53,6 +53,8 @@
+   GtkAdjustment *old_hadj;
+   GtkAdjustment *old_vadj;
+   guint         idle_expand_id;
++  guint         idle_garbage_collect_id;
++  gboolean      garbage_collection_pending;
+ };
+ 
+ GType gail_tree_view_get_type (void);
--- a/patches/gaim-07-g11n-potfiles.diff	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
---- gaim-0.81/po/POTFILES.in	2004-07-27 12:32:11.000000000 +1200
-+++ gaim-0.81-hacked/po/POTFILES.in	2004-08-24 15:49:27.000000000 +1200
-@@ -1,12 +1,10 @@
-+gaim.desktop.in
- plugins/autorecon.c
--plugins/chkmail.c
--plugins/contact_priority.c
- plugins/docklet/docklet-win32.c
- plugins/docklet/docklet.c
- plugins/extplacement.c
- plugins/filectl.c
- plugins/gaim-remote/remote.c
--plugins/gaiminc.c
- plugins/gestures/gestures.c
- plugins/gevolution/add_buddy_dialog.c
- plugins/gevolution/assoc-buddy.c
-@@ -16,8 +14,6 @@
- plugins/history.c
- plugins/iconaway.c
- plugins/idle.c
--plugins/ipc-test-client.c
--plugins/ipc-test-server.c
- plugins/mailchk.c
- plugins/notify.c
- plugins/perl/perl.c
-@@ -67,7 +63,6 @@
- src/plugin.c
- src/prefs.c
- src/protocols/gg/gg.c
--src/protocols/icq/gaim_icq.c
- src/protocols/irc/cmds.c
- src/protocols/irc/dcc_send.c
- src/protocols/irc/irc.c
-@@ -125,6 +120,7 @@
- src/protocols/silc/util.c
- src/protocols/toc/toc.c
- src/protocols/trepia/trepia.c
-+src/protocols/rendezvous/rendezvous.c
- src/protocols/yahoo/yahoo.c
- src/protocols/yahoo/yahoo_filexfer.c
- src/protocols/yahoo/yahoo_profile.c
--- a/patches/gaim-09-ebook-checks.diff	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
---- gaim-0.81/configure.ac	2004-08-24 15:43:54.000000000 +1200
-+++ gaim-0.81-hacked/configure.ac	2004-08-24 16:19:19.000000000 +1200
-@@ -319,9 +322,9 @@
- 	dnl it goes stable!
- 	AC_MSG_CHECKING([libebook version])
- 	LIBEBOOK_VERSION=`$PKG_CONFIG --modversion libebook-1.0`
--	LIBEBOOK_MAJOR_VER=`echo $LIBEBOOK_VERSION | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
--	LIBEBOOK_MINOR_VER=`echo $LIBEBOOK_VERSION | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
--	LIBEBOOK_MICRO_VER=`echo $LIBEBOOK_VERSION | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
-+	LIBEBOOK_MAJOR_VER=`echo $LIBEBOOK_VERSION | sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
-+	LIBEBOOK_MINOR_VER=`echo $LIBEBOOK_VERSION | sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
-+	LIBEBOOK_MICRO_VER=`echo $LIBEBOOK_VERSION | sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
- 	AC_MSG_RESULT($LIBEBOOK_VERSION)
- 	AC_DEFINE_UNQUOTED(LIBEBOOK_MAJOR_VER, $LIBEBOOK_MAJOR_VER, [libebook major version.])
- 	AC_DEFINE_UNQUOTED(LIBEBOOK_MINOR_VER, $LIBEBOOK_MINOR_VER, [libebook minor version.])
--- a/patches/gaim-12-msn-security-fix.diff	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
---- gaim-0.82.1/src/protocols/msn/slplink.h	2004-06-06 09:12:54.000000000 +0530
-+++ gaim-0.82.1-new/src/protocols/msn/slplink.h	2004-10-28 19:47:10.571442704 +0530
-@@ -70,7 +70,7 @@ void msn_slplink_send_slpmsg(MsnSlpLink 
- void msn_slplink_unleash(MsnSlpLink *slplink);
- void msn_slplink_send_ack(MsnSlpLink *slplink, MsnMessage *msg);
- void msn_slplink_process_msg(MsnSlpLink *slplink, MsnMessage *msg);
--MsnSlpMessage *msn_slplink_message_find(MsnSlpLink *slplink, long id);
-+MsnSlpMessage *msn_slplink_message_find(MsnSlpLink *slplink, long session_id, long id);
- void msn_slplink_append_slp_msg(MsnSlpLink *slplink, MsnSlpMessage *slpmsg);
- void msn_slplink_remove_slp_msg(MsnSlpLink *slplink,
- 								 MsnSlpMessage *slpmsg);
---- gaim-0.82.1/src/protocols/msn/slplink.c	2004-08-25 07:15:41.000000000 +0530
-+++ gaim-0.82.1-new/src/protocols/msn/slplink.c	2004-10-28 19:57:59.909728280 +0530
-@@ -447,7 +447,6 @@ msn_slplink_process_msg(MsnSlpLink *slpl
- 		slpmsg->session_id = msg->msnslp_header.session_id;
- 		slpmsg->size = msg->msnslp_header.total_size;
- 		slpmsg->flags = msg->msnslp_header.flags;
--		slpmsg->buffer = g_malloc(slpmsg->size);
- 
- 		if (slpmsg->session_id)
- 		{
-@@ -471,10 +470,19 @@ msn_slplink_process_msg(MsnSlpLink *slpl
- 				}
- 			}
- 		}
-+		if (!slpmsg->fp)
-+		{
-+			slpmsg->buffer = g_try_malloc(slpmsg->size);
-+			if (slpmsg->buffer == NULL)
-+			{
-+				gaim_debug_error("msn", "Failed to allocate buffer for slpmsg\n");
-+				return;
-+			}
-+		}
- 	}
- 	else
- 	{
--		slpmsg = msn_slplink_message_find(slplink, msg->msnslp_header.id);
-+		slpmsg = msn_slplink_message_find(slplink, msg->msnslp_header.session_id, msg->msnslp_header.id);
- 	}
- 
- 	if (slpmsg != NULL)
-@@ -486,7 +494,13 @@ msn_slplink_process_msg(MsnSlpLink *slpl
- 		}
- 		else
- 		{
--			memcpy(slpmsg->buffer + offset, data, len);
-+			if ((offset + len) > slpmsg->size)
-+			{
-+				gaim_debug_error("msn", "Oversized slpmsg\n");
-+				g_return_if_reached();
-+			}
-+			else
-+				memcpy(slpmsg->buffer + offset, data, len);
- 		}
- 	}
- 	else
-@@ -544,7 +558,7 @@ msn_slplink_process_msg(MsnSlpLink *slpl
- }
- 
- MsnSlpMessage *
--msn_slplink_message_find(MsnSlpLink *slplink, long id)
-+msn_slplink_message_find(MsnSlpLink *slplink, long session_id, long id)
- {
- 	GList *e;
- 
-@@ -552,7 +566,7 @@ msn_slplink_message_find(MsnSlpLink *slp
- 	{
- 		MsnSlpMessage *slpmsg = e->data;
- 
--		if (slpmsg->id == id)
-+		if ((slpmsg->session_id == session_id) && (slpmsg->id == id))
- 			return slpmsg;
- 	}
- 
--- a/patches/gaim-13-add-help.diff	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-diff -ur gaim-0.82.1/src/gtkblist.c gaimnew/src/gtkblist.c
---- gaim-0.82.1/src/gtkblist.c	2004-08-25 22:47:00.000000000 +0100
-+++ gaimnew/src/gtkblist.c	2004-10-29 15:39:05.183497328 +0100
-@@ -542,7 +542,7 @@
- 
- static void gtk_blist_show_onlinehelp_cb()
- {
--	gaim_notify_uri(NULL, GAIM_WEBSITE "documentation.php");
-+	gaim_notify_uri(NULL, "ghelp:gaim");
- }
- 
- static void gtk_blist_button_im_cb(GtkWidget *w, GtkTreeView *tv)
-@@ -2358,7 +2358,7 @@
- 
- 	/* Help */
- 	{ N_("/_Help"), NULL, NULL, 0, "<Branch>" },
--	{ N_("/Help/Online _Help"), "F1", gtk_blist_show_onlinehelp_cb, 0, "<StockItem>", GTK_STOCK_HELP },
-+	{ N_("/Help/_Contents"), "F1", gtk_blist_show_onlinehelp_cb, 0, "<StockItem>", GTK_STOCK_HELP },
- 	{ N_("/Help/_Debug Window"), NULL, toggle_debug, 0, NULL },
- 	{ N_("/Help/_About"), NULL, gaim_gtkdialogs_about, 0,  "<StockItem>", GAIM_STOCK_ABOUT },
- };
-diff -ur gaim-0.82.1/src/gtknotify.c gaimnew/src/gtknotify.c
---- gaim-0.82.1/src/gtknotify.c	2004-08-21 06:12:23.000000000 +0100
-+++ gaimnew/src/gtknotify.c	2004-10-29 15:39:47.908002216 +0100
-@@ -478,7 +478,11 @@
- 	web_browser = gaim_prefs_get_string("/gaim/gtk/browsers/browser");
- 	place = gaim_prefs_get_int("/gaim/gtk/browsers/place");
- 
--	if (!strcmp(web_browser, "epiphany") ||
-+	if (!strncmp(uri, "ghelp:", 6)) 
-+	{
-+		command = g_strdup_printf("jds-help \"%s\"", uri);
-+	}
-+	else if (!strcmp(web_browser, "epiphany") ||
- 		!strcmp(web_browser, "galeon"))
- 	{
- 		if (place == GAIM_BROWSER_NEW_WINDOW)
-diff -ur gaim-0.82.1/src/main.c gaimnew/src/main.c
---- gaim-0.82.1/src/main.c	2004-08-20 06:11:30.000000000 +0100
-+++ gaimnew/src/main.c	2004-10-29 16:50:42.146259696 +0100
-@@ -137,6 +137,11 @@
- 	return TRUE;
- }
- 
-+static void gaim_gtk_help_show(GtkWidget *widget, gpointer data)
-+{
-+	gaim_notify_uri (NULL, "ghelp:gaim");
-+}
-+
- static void dologin(GtkWidget *widget, GtkWidget *w)
- {
- 	GaimAccount *account;
-@@ -276,6 +281,12 @@
- 	gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 5);
- 
- 	/* And now for the buttons */
-+	button = gaim_pixbuf_button_from_stock(_("_Help"), GTK_STOCK_HELP, GAIM_BUTTON_VERTICAL);
-+	gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
-+	g_signal_connect(G_OBJECT(button), "clicked",
-+                                         G_CALLBACK(gaim_gtk_help_show), mainwindow);
-+	gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
-+
- 	button = gaim_pixbuf_button_from_stock(_("_Accounts"), GAIM_STOCK_ACCOUNTS, GAIM_BUTTON_VERTICAL);
- 	gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
- 	g_signal_connect(G_OBJECT(button), "clicked",
--- a/patches/gaim-17-g11n-filename.diff	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,355 +0,0 @@
-diff -urN gaim-0.82.1-orig/src/ft.c gaim-0.82.1/src/ft.c
---- gaim-0.82.1-orig/src/ft.c	2005-01-07 14:19:58.689031568 +0900
-+++ gaim-0.82.1/src/ft.c	2005-01-07 14:20:29.378366080 +0900
-@@ -890,13 +890,18 @@
- {
- 	GaimXferUiOps *ui_ops;
- 	gchar *msg;
-+	gchar *utf8_filename;
- 
- 	g_return_if_fail(xfer != NULL);
- 
- 	gaim_request_close_with_handle(xfer);
- 
-+	utf8_filename = g_locale_to_utf8(gaim_xfer_get_local_filename(xfer), 
-+	                                 -1, NULL, NULL, NULL);
-+
- 	msg = g_strdup_printf(_("%s canceled the transfer of %s"),
--					xfer->who, gaim_xfer_get_filename(xfer));
-+					xfer->who, utf8_filename);
-+	g_free (utf8_filename);
- 	gaim_xfer_error(gaim_xfer_get_type(xfer), xfer->who, msg);
- 	g_free(msg);
- 
-diff -urN gaim-0.82.1-orig/src/gtkconv.c gaim-0.82.1/src/gtkconv.c
---- gaim-0.82.1-orig/src/gtkconv.c	2005-01-07 14:19:59.820859504 +0900
-+++ gaim-0.82.1/src/gtkconv.c	2005-01-07 14:20:29.435357416 +0900
-@@ -807,16 +807,35 @@
- {
- 	GaimConversation *conv = (GaimConversation *)user_data;
- 	FILE *fp;
-+	GaimAccount *account;
-+	GaimBuddy *b;
- 	const char *name;
-+	char *alias;
-+	gchar* arg_list;
-+	gchar* arg1;
- 
- 	if ((fp = fopen(filename, "w+")) == NULL) {
- 		gaim_notify_error(conv, NULL, _("Unable to open file."), NULL);
- 		return;
- 	}
- 
-+	account = gaim_conversation_get_account(conv);
- 	name = gaim_conversation_get_name(conv);
--	fprintf(fp, _("<h1>Conversation with %s</h1>\n"), name);
--	fprintf(fp, "%s", conv->history->str);
-+	b = gaim_find_buddy(account, name);
-+	alias = gaim_escape_html(gaim_buddy_get_alias(b));
-+
-+	arg_list = g_locale_from_utf8(_("<h1>Conversation with %s</h1>\n"),
-+	                              -1, NULL, NULL, NULL);
-+	arg1 = g_locale_from_utf8(alias ? alias : name, -1, NULL, NULL, NULL);
-+
-+	fprintf(fp, arg_list, arg1);
-+	g_free(arg_list);
-+	g_free(arg1);
-+
-+	arg1 = g_locale_from_utf8(conv->history->str, -1, NULL, NULL, NULL);
-+	fprintf(fp, "%s", arg1);
-+	g_free(arg1);
-+
- 	fclose(fp);
- }
- 
-diff -urN gaim-0.82.1-orig/src/gtkft.c gaim-0.82.1/src/gtkft.c
---- gaim-0.82.1-orig/src/gtkft.c	2005-01-07 14:19:59.857853880 +0900
-+++ gaim-0.82.1/src/gtkft.c	2005-01-07 14:20:29.440356656 +0900
-@@ -811,6 +811,7 @@
- 	GdkPixbuf *pixbuf;
- 	char *size_str, *remaining_str;
- 	char *lfilename;
-+	char *utf8_lfilename;
- 
- 	g_return_if_fail(dialog != NULL);
- 	g_return_if_fail(xfer != NULL);
-@@ -838,6 +839,11 @@
- 
- 	gtk_list_store_append(dialog->model, &data->iter);
- 	lfilename = g_path_get_basename(gaim_xfer_get_local_filename(xfer));
-+	utf8_lfilename = g_locale_to_utf8(lfilename, -1, NULL, NULL, NULL);
-+	if (g_utf8_validate(utf8_lfilename, -1, NULL)) {
-+		g_free (lfilename);
-+		lfilename = utf8_lfilename;
-+	}
- 	gtk_list_store_set(dialog->model, &data->iter,
- 					   COLUMN_STATUS, pixbuf,
- 					   COLUMN_PROGRESS, 0.0,
-diff -urN gaim-0.82.1-orig/src/protocols/msn/nexus.c gaim-0.82.1/src/protocols/msn/nexus.c
---- gaim-0.82.1-orig/src/protocols/msn/nexus.c	2005-01-07 14:20:01.690575264 +0900
-+++ gaim-0.82.1/src/protocols/msn/nexus.c	2005-01-07 14:20:29.481350424 +0900
-@@ -202,6 +202,7 @@
- 					c = error + strlen(error);
- 
- 				temp = g_strndup(error, c - error);
-+				gaim_str_strip_cr(temp);
- 				error = gaim_url_decode(temp);
- 				g_free(temp);
- 			}
-@@ -216,7 +217,10 @@
- 				  "MSN login server."));
- 		}
- 		else
-+		{
-+			error = gaim_http_failed_gettext(error);
- 			gaim_connection_error(gc, error);
-+		}
- 	}
- 	else if (strstr(buffer, "HTTP/1.1 200 OK"))
- 	{
-diff -urN gaim-0.82.1-orig/src/protocols/msn/sync.c gaim-0.82.1/src/protocols/msn/sync.c
---- gaim-0.82.1-orig/src/protocols/msn/sync.c	2005-01-07 14:20:01.970532704 +0900
-+++ gaim-0.82.1/src/protocols/msn/sync.c	2005-01-07 14:20:29.517344952 +0900
-@@ -92,10 +92,14 @@
- 	MsnGroup *group;
- 	GaimGroup *g;
- 	const char *name;
-+	const gchar *default_group_name = N_("Individuals");
- 	int group_id;
- 
- 	group_id = atoi(cmd->params[0]);
- 	name = gaim_url_decode(cmd->params[1]);
-+	if (!strcmp(name, default_group_name)){
-+		name=_(default_group_name);
-+	}
- 
- 	group = msn_group_new(session->userlist, group_id, name);
- 
-diff -urN gaim-0.82.1-orig/src/protocols/yahoo/yahoo_filexfer.c gaim-0.82.1/src/protocols/yahoo/yahoo_filexfer.c
---- gaim-0.82.1-orig/src/protocols/yahoo/yahoo_filexfer.c	2005-01-07 14:20:04.890088864 +0900
-+++ gaim-0.82.1/src/protocols/yahoo/yahoo_filexfer.c	2005-01-07 14:20:29.552339632 +0900
-@@ -433,7 +433,28 @@
- 			start++;
- 		end = g_strrstr(xfer_data->path, "?");
- 		if (start && *start && end) {
-+			gchar *decoded;
-+			struct yahoo_data *yd = gc->proto_data;
- 			filename = g_strndup(start, end - start);
-+			decoded = g_strdup(gaim_url_decode_without_validate(filename));
-+			g_free(filename);
-+			filename = decoded;
-+			if (yd->jp && filename) {
-+				decoded = yahoo_string_decode(gc, filename, TRUE);
-+				if (decoded) {
-+					g_free(filename);
-+					filename = decoded;
-+				}
-+			}
-+			if (!g_utf8_validate(filename, -1, NULL)) {
-+				decoded = gaim_utf8_try_convert(filename);
-+				g_free (filename);
-+				filename = decoded;
-+				if (!filename || !g_utf8_validate(filename, -1, NULL)) {
-+					decoded = g_strndup(start, end - start);
-+					filename = decoded;
-+				}
-+			}
- 			gaim_xfer_set_filename(xfer, filename);
- 			g_free(filename);
- 			filename = NULL;
-diff -urN gaim-0.82.1-orig/src/util.c gaim-0.82.1/src/util.c
---- gaim-0.82.1-orig/src/util.c	2005-01-07 14:19:59.424919696 +0900
-+++ gaim-0.82.1/src/util.c	2005-01-07 14:23:16.824910336 +0900
-@@ -63,6 +63,14 @@
- static char custom_home_dir[MAXPATHLEN];
- static char home_dir[MAXPATHLEN];
- 
-+static gchar *gaim_http_failed_string[] ={
-+	N_("Type your e-mail address and password correctly. If you haven't "
-+	   "registered with .NET Passport, click the Get a .NET Passport "
-+	   "link."),
-+	NULL
-+};
-+
-+
- /**************************************************************************
-  * Base16 Functions
-  **************************************************************************/
-@@ -478,8 +486,25 @@
- {
- 	char *date;
- 	time_t tme;
-+	struct tm *tm;
-+	gchar *utf8_date = N_("%a %b %e %T %Y");
-+	gchar *locale_date;
-+	gchar buf[BUF_LEN];
- 
- 	time(&tme);
-+
-+	if (g_utf8_collate(utf8_date, _(utf8_date))) {
-+		tm = localtime(&tme);
-+		locale_date = g_locale_from_utf8(_(utf8_date), -1, NULL, NULL, NULL);
-+
-+		if(strftime(buf, sizeof(buf), locale_date, tm)) {
-+
-+			utf8_date = g_locale_to_utf8(buf, -1, NULL, NULL, NULL);
-+			g_free(locale_date);
-+			return utf8_date;
-+		}
-+	}
-+
- 	date = ctime(&tme);
- 	date[strlen(date) - 1] = '\0';
- 
-@@ -2830,11 +2855,10 @@
- }
- 
- const char *
--gaim_url_decode(const char *str)
-+gaim_url_decode_without_validate(const char *str)
- {
- 	static char buf[BUF_LEN];
- 	guint i, j = 0;
--	char *bum;
- 	char hex[3];
- 
- 	g_return_val_if_fail(str != NULL, NULL);
-@@ -2867,6 +2891,17 @@
- 
- 	buf[j] = '\0';
- 
-+	return buf;
-+}
-+
-+const char *
-+gaim_url_decode(const char *str)
-+{
-+	char *bum;
-+	const char *buf;
-+
-+	buf = gaim_url_decode_without_validate(str);
-+
- 	if (!g_utf8_validate(buf, -1, (const char **)&bum))
- 		*bum = '\0';
- 
-@@ -3110,6 +3145,39 @@
- 	return ret;
- }
- 
-+char*
-+gaim_utf8_to_ascii(const char *utf8)
-+{
-+	char *temp, *retval;
-+	gchar *p;
-+	gunichar u;
-+
-+/* U+2019 right single quotation mark */
-+	gunichar rsq = g_utf8_get_char("\342\200\231");
-+
-+	if (!g_utf8_validate(utf8, -1, NULL))
-+		return NULL;
-+
-+	p = temp = malloc(strlen(utf8) + 1);
-+	strcpy (temp, utf8);
-+	while (u = g_utf8_get_char(p), u != '\0') {
-+		if (u == rsq) {
-+			*p ='\'';
-+			strcpy (p+1, p+3);
-+			p++;
-+		}
-+		else {
-+			p = g_utf8_next_char(p);
-+		}
-+	}
-+
-+	retval = malloc (strlen(temp) + 1);
-+	strcpy (retval, temp);
-+	g_free (temp);
-+
-+	return retval;
-+}
-+
- gboolean gaim_message_meify(char *message, size_t len)
- {
- 	char *c;
-@@ -3201,3 +3269,24 @@
- 	return out;
- }
- 
-+const char*
-+gaim_http_failed_gettext(const char* str)
-+{
-+	int i = 0;
-+
-+	g_return_val_if_fail(str != NULL, NULL);
-+
-+	gchar *msgid = gaim_utf8_to_ascii(str);
-+
-+	g_return_val_if_fail(msgid != NULL, str);
-+
-+	while (gaim_http_failed_string[i] != NULL)
-+	{
-+		if (!g_utf8_collate(msgid, gaim_http_failed_string[i])) {
-+			return _(msgid);
-+		}
-+		i++;
-+	}
-+	g_free(msgid);
-+	return str;
-+}
-diff -urN gaim-0.82.1-orig/src/util.h gaim-0.82.1/src/util.h
---- gaim-0.82.1-orig/src/util.h	2005-01-07 14:19:58.187107872 +0900
-+++ gaim-0.82.1/src/util.h	2005-01-07 14:20:29.661323064 +0900
-@@ -622,6 +622,18 @@
- /**
-  * Decodes a URL into a plain string.
-  *
-+ * This is a minor version of gaim_url_decode() without g_utf8_validate()
-+ *
-+ * @param str The string to translate.
-+ *
-+ * @return The resulting string.
-+ */
-+
-+const char *gaim_url_decode_without_validate(const char *str);
-+
-+/**
-+ * Decodes a URL into a plain string.
-+ *
-  * This will change hex codes and such to their ascii equivalents.
-  *
-  * @param str The string to translate.
-@@ -704,6 +716,16 @@
- int gaim_utf8_strcasecmp(const char *a, const char *b);
- 
- /**
-+ * Convert the UTF-8 string to ascii. We want as many English msgids 
-+ * as possible.
-+ *
-+ * @param utf8 The UTF-8 string.
-+ *
-+ * @return The new ASCII string. Need to free it.
-+ */
-+char* gaim_utf8_to_ascii(const char *utf8);
-+
-+/**
-  * Checks for messages starting with "/me "
-  *
-  * @param message The message to check
-@@ -723,6 +745,16 @@
-  */
- char *gaim_text_strip_mnemonic(const char *in);
- 
-+/**
-+ * Returns the localized HTTP cbtxt when the cbtxt is corresponded to
-+ * the stored msn_http_faild_string[i].
-+ *
-+ * @param The decoded HTTP header string.
-+ *
-+ * @return The localized string or the original.
-+ */
-+const char* gaim_http_failed_gettext(const char* msgid);
-+
- /*@}*/
- 
- /**
--- a/patches/gaim-18-msn-webmessenger-fix.diff	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-diff -urN gaim-0.82.1/src/protocols/msn/utils.c gaim-0.82.1-hacked/src/protocols/msn/utils.c
---- gaim-0.82.1/src/protocols/msn/utils.c	2004-06-21 09:40:15.000000000 +1200
-+++ gaim-0.82.1-hacked/src/protocols/msn/utils.c	2005-01-18 12:12:01.171443936 +1300
-@@ -181,7 +181,8 @@
- 	msg = g_malloc0(len + 1);
- 
- 	memset(fontcolor, 0, sizeof(fontcolor));
--	memset(fonteffect, 0, sizeof(fontcolor));
-+        strcat(fontcolor, "0");
-+	memset(fonteffect, 0, sizeof(fonteffect));
- 
- 	for (c = html; *c != '\0';)
- 	{
--- a/patches/gaim-19-yahoo-privacy-fix.diff	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,193 +0,0 @@
---- gaim-0.82.1/src/protocols/yahoo/yahoo.h	2004-07-27 10:53:03.000000000 +0530
-+++ gaim-0.82.1-new/src/protocols/yahoo/yahoo.h	2005-03-16 17:28:29.000000000 +0530
-@@ -267,4 +267,13 @@ char *yahoo_tooltip_text(GaimBuddy *b);
- /* yahoo_profile.c */
- void yahoo_get_info(GaimConnection *gc, const char *name);
- 
-+/**
-+ * Check to see whether the sender is permitted to send
-+ *
-+ * @param gc The gc handle.
-+ * @param who The sender of the packet to check
-+ * @param need_reply TRUE if a reply may be required, otherwise FALSE
-+*/
-+gboolean yahoo_check_privacy(GaimConnection *gc, const char *who);
-+
- #endif /* _YAHOO_H_ */
---- gaim-0.82.1/src/protocols/yahoo/yahoo.c	2004-08-23 06:11:23.000000000 +0530
-+++ gaim-0.82.1-new/src/protocols/yahoo/yahoo.c	2005-03-18 10:59:02.719460907 +0530
-@@ -52,6 +52,83 @@ extern char *yahoo_crypt(const char *, c
- static void yahoo_add_buddy(GaimConnection *gc, GaimBuddy *, GaimGroup *);
- static void yahoo_login_page_cb(void *user_data, const char *buf, size_t len);
- 
-+static void yahoo_add_permit(GaimConnection *gc, const char *who)
-+{
-+	gaim_debug_info("yahoo",
-+			"Permitting ID %s local contact rights for account %s\n", who, gc->account);   
-+	gaim_privacy_permit_add(gc->account,who,TRUE);
-+}
-+
-+static void yahoo_rem_permit(GaimConnection *gc, const char *who)
-+{
-+	gaim_debug_info("yahoo",
-+			"Denying ID %s local contact rights for account %s\n", who, gc->account);   
-+	gaim_privacy_permit_remove(gc->account,who,TRUE);
-+}
-+
-+gboolean yahoo_check_privacy(GaimConnection *gc, const char *who)
-+{
-+	/* returns TRUE if allowed through, FALSE otherwise */
-+	GSList *list;
-+	gboolean permitted=FALSE;
-+
-+	switch ( gc->account->perm_deny ) {
-+			/* it would appear somewhere inside gaim, GAIM_PRIVACY can end up
-+			 * being set to 0 
-+			 */
-+		case 0:
-+			permitted = TRUE;
-+			break;
-+		case GAIM_PRIVACY_ALLOW_ALL:
-+			permitted = TRUE;
-+			break;
-+		case GAIM_PRIVACY_DENY_ALL:
-+			gaim_debug_info("yahoo",
-+					"%s blocked data received from %s (GAIM_PRIVACY_DENY_ALL)\n",
-+					gc->account->username,who);
-+			break;
-+		case GAIM_PRIVACY_ALLOW_USERS:
-+			for( list=gc->account->permit; list!=NULL; list=list->next ) {
-+				if ( !gaim_utf8_strcasecmp(who, gaim_normalize(gc->account, (char *)list->data)) ) {
-+					permitted=TRUE;
-+					gaim_debug_info("yahoo",
-+							"%s allowed data received from %s (GAIM_PRIVACY_ALLOW_USERS)\n",
-+							gc->account->username,who);
-+					break;
-+				}
-+			}
-+			break;
-+		case GAIM_PRIVACY_DENY_USERS:
-+			/* seeing we're letting everyone through, except the deny list*/
-+			permitted=TRUE;
-+			for( list=gc->account->deny; list!=NULL; list=list->next ) {
-+				if ( !gaim_utf8_strcasecmp(who, gaim_normalize( gc->account, (char *)list->data )) ) {
-+					permitted=FALSE;
-+					gaim_debug_info("yahoo",
-+							"%s blocked data received from %s (GAIM_PRIVACY_DENY_USERS)\n",
-+							gc->account->username,who);
-+				}
-+				break;
-+			}
-+			break;
-+		case GAIM_PRIVACY_ALLOW_BUDDYLIST:
-+			if ( gaim_find_buddy(gc->account,who) != NULL ) {
-+				permitted = TRUE;
-+			} else {
-+				gaim_debug_info("yahoo",
-+						"%s blocked data received from %s (GAIM_PRIVACY_ALLOW_BUDDYLIST)\n",
-+						gc->account->username,who);
-+			}
-+			break;
-+		default:
-+			gaim_debug(GAIM_DEBUG_INFO, "yahoo",
-+				   "Default privacy dropthrough - we should never see this. Please report yahoo privacy bug to http://gaim.sf.net\n");
-+			permitted = FALSE;
-+			break;
-+	}
-+	return permitted;
-+}
-+
- 
- struct yahoo_packet *yahoo_packet_new(enum yahoo_service service, enum yahoo_status status, int id)
- {
-@@ -736,7 +813,8 @@ static void yahoo_process_notify(GaimCon
- 	if (!from || !msg)
- 		return;
- 
--	if (!g_ascii_strncasecmp(msg, "TYPING", strlen("TYPING"))) {
-+	if (!g_ascii_strncasecmp(msg, "TYPING", strlen("TYPING")) 
-+	    && (yahoo_check_privacy(gc, from)))  {
- 		if (*stat == '1')
- 			serv_got_typing(gc, from, 0, GAIM_TYPING);
- 		else
-@@ -818,6 +896,11 @@ static void yahoo_process_message(GaimCo
- 			continue;
- 		}
- 
-+		if (!yahoo_check_privacy(gc, im->from)) {
-+			gaim_debug_info("yahoo", "Message from %s dropped.\n", im->from);
-+			continue;
-+		}
-+
- 		m = yahoo_string_decode(gc, im->msg, im->utf8);
- 		gaim_str_strip_cr(m);
- 
-@@ -3300,9 +3383,9 @@ static GaimPluginProtocolInfo prpl_info 
- 	NULL, /* add_buddies */
- 	yahoo_remove_buddy,
- 	NULL, /*remove_buddies */
--	NULL, /* add_permit */
-+	yahoo_add_permit, 
- 	yahoo_add_deny,
--	NULL, /* rem_permit */
-+	yahoo_rem_permit, 
- 	yahoo_rem_deny,
- 	yahoo_set_permit_deny,
- 	NULL, /* warn */
---- gaim-0.82.1/src/protocols/yahoo/yahoochat.c	2004-08-24 09:42:27.000000000 +0530
-+++ gaim-0.82.1-new/src/protocols/yahoo/yahoochat.c	2005-03-16 16:26:04.000000000 +0530
-@@ -32,6 +32,7 @@
- 
- #include "debug.h"
- #include "prpl.h"
-+#include "privacy.h"
- 
- #include "conversation.h"
- #include "notify.h"
-@@ -157,6 +158,11 @@ void yahoo_process_conference_invite(Gai
- 	if (members) {
- 		g_hash_table_replace(components, g_strdup("members"), g_strdup(members->str));
- 	}
-+	if (!yahoo_check_privacy(gc, who)) {
-+		gaim_debug_info("yahoo",
-+		"Invite to conference %s from %s has been dropped.\n", room, who);
-+		return;
-+	}
- 	serv_got_chat_invite(gc, room, who, msg, components);
- 
- 	g_string_free(members, TRUE);
-@@ -437,6 +443,21 @@ void yahoo_process_chat_join(GaimConnect
- 		yahoo_chat_add_users(GAIM_CONV_CHAT(c), members);
- 	}
- 
-+	GList *roomies=NULL;
-+	GaimConversationUiOps *ops;
-+	ops = gaim_conversation_get_ui_ops(c);
-+	GaimAccount *account = gaim_connection_get_account(gc);
-+	for (l = account->deny; l != NULL; l = l->next) {
-+		for (roomies = members; roomies; roomies = roomies->next) {
-+			if (!gaim_utf8_strcasecmp((char *)l->data, roomies->data)) {
-+				gaim_debug_info("yahoo", "Ignoring room member %s in room %s\n" ,roomies->data, room);
-+				gaim_conv_chat_ignore(GAIM_CONV_CHAT(c),roomies->data);
-+				ops->chat_update_user((c), roomies->data);
-+			}
-+		}
-+	}
-+	g_list_free(roomies); 
-+
- 	g_list_free(members);
- 	g_free(room);
- 	if (topic)
-@@ -565,6 +586,12 @@ void yahoo_process_chat_addinvite(GaimCo
- 
- 		components = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);
- 		g_hash_table_replace(components, g_strdup("room"), g_strdup(room));
-+
-+		if (!yahoo_check_privacy(gc, who)) {
-+			gaim_debug_info("yahoo",
-+			"Invite to room %s from %s has been dropped.\n", room, who);
-+			return;
-+		}
- 		serv_got_chat_invite(gc, room, who, msg, components);
- 	}
- 	if (room)
--- a/patches/gcalctool-02-l10n-online-help.diff	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-diff -ruNa gcalctool-4.3.51/configure.in gcalctool-4.3.51.new/configure.in
---- gcalctool-4.3.51/configure.in	2004-11-12 17:16:17.363266000 +0900
-+++ gcalctool-4.3.51.new/configure.in	2004-11-12 15:23:32.000000000 +0900
-@@ -112,4 +112,5 @@
- help/zh_CN/Makefile
- help/zh_HK/Makefile
- help/zh_TW/Makefile
-+help/pt_BR/Makefile
- ])
-diff -ruNa gcalctool-4.3.51/help/Makefile.am gcalctool-4.3.51.new/help/Makefile.am
---- gcalctool-4.3.51/help/Makefile.am	2004-03-15 21:40:49.000000000 +0900
-+++ gcalctool-4.3.51.new/help/Makefile.am	2004-11-12 15:23:31.000000000 +0900
-@@ -1 +1 @@
--SUBDIRS = C de es fr it ja ko sv zh_CN zh_HK zh_TW
-+SUBDIRS = C de es fr it ja ko sv zh_CN zh_HK zh_TW pt_BR
--- a/patches/gdm-10-a11y-gestures.diff	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,990 +0,0 @@
-Index: acconfig.h
-===================================================================
-RCS file: /cvs/gnome/gdm2/acconfig.h,v
-retrieving revision 1.24
-diff -u -r1.24 acconfig.h
---- acconfig.h	11 Aug 2004 20:48:33 -0000	1.24
-+++ acconfig.h	25 Aug 2004 15:54:53 -0000
-@@ -22,1 +22,2 @@
- #undef HAVE_SETRESUID
-+#undef HAVE_XINPUT
-Index: configure.in
-===================================================================
-RCS file: /cvs/gnome/gdm2/configure.in,v
-retrieving revision 1.240
-diff -u -r1.240 configure.in
---- configure.in	18 Aug 2004 20:44:44 -0000	1.240
-+++ configure.in	25 Aug 2004 15:54:54 -0000
-@@ -468,6 +468,31 @@
- AC_MSG_CHECKING([for corrupt government])
- AC_MSG_RESULT(yes)
- 
-+have_xinput=
-+AC_CHECK_LIB(Xi, XOpenDevice, XINPUT_LIBS=-lXi)
-+if test "x$XINPUT_LIBS" = x; then
-+  save_LIBS="$LIBS"
-+  for xinputpath in $x_libraries /usr/X11R6/lib /usr/openwin/lib; do
-+    LIBS="-L$xinputpath -lXi"
-+    case "$host" in
-+    *solaris*) XINPUT_RPATH_FLAGS="-R$xinputpath" ;;
-+    esac
-+    AC_MSG_CHECKING(for -lXi in $xinputpath)
-+    AC_TRY_LINK([], [XOpenDisplay()], [
-+	AC_MSG_RESULT(yes)
-+	XINPUT_LIBS="$XINPUT_RPATH_FLAGS -L$xinputpath -lXi"
-+        LIBS="$save_LIBS"
-+	break],[AC_MSG_RESULT(no)])
-+  done
-+  if test "x$XINPUT_LIBS" = x; then
-+    AC_MSG_ERROR(Couldn't find the XInput library. Check config.log for details)
-+  fi			       
-+fi
-+AC_CHECK_HEADER(X11/extensions/XInput.h, have_xinput=yes)
-+if test "x$have_xinput" = xyes; then
-+   AC_DEFINE(HAVE_XINPUT)
-+   X_EXTRA_LIBS="$X_EXTRA_LIBS $XINPUT_LIBS"
-+fi
- 
- #
- # X11 Xinerama extension
-Index: gui/modules/Makefile.am
-===================================================================
-RCS file: /cvs/gnome/gdm2/gui/modules/Makefile.am,v
-retrieving revision 1.4
-diff -u -r1.4 Makefile.am
---- gui/modules/Makefile.am	6 Jan 2004 19:49:49 -0000	1.4
-+++ gui/modules/Makefile.am	25 Aug 2004 15:54:54 -0000
-@@ -22,6 +22,7 @@
- 	-rpath $(moduledir) -module -avoid-version \
- 	$(GUI_LIBS)	\
- 	$(X_LIBS)	\
-+	$(X_EXTRA_LIBS) \
- 	-L$(top_builddir)/vicious-extensions	\
- 	-lviciousui
- 
-@@ -32,6 +33,7 @@
- 	-rpath $(moduledir) -module -avoid-version \
- 	$(GUI_LIBS)	\
- 	$(X_LIBS)	\
-+	$(X_EXTRA_LIBS) \
- 	-L$(top_builddir)/vicious-extensions	\
- 	-lviciousui
- 
-Index: gui/modules/dwellmouselistener.c
-===================================================================
-RCS file: /cvs/gnome/gdm2/gui/modules/dwellmouselistener.c,v
-retrieving revision 1.12
-diff -u -r1.12 dwellmouselistener.c
---- gui/modules/dwellmouselistener.c	27 May 2004 20:42:48 -0000	1.12
-+++ gui/modules/dwellmouselistener.c	25 Aug 2004 15:54:55 -0000
-@@ -26,12 +26,18 @@
- #include <glib.h>
- #include <gmodule.h>
- #include <gdk/gdk.h>
-+#include <gdk/gdkx.h>
- #include <gtk/gtk.h>
- #include <vicious.h>
- #include <gnome.h>
- 
-+#include <X11/Xlib.h>
- #include <config.h>
--
-+ 
-+#ifdef HAVE_XINPUT
-+#include <X11/extensions/XInput.h>
-+#endif
-+ 
- /*
-  * Note that CONFIGFILE will have to be changed to something more generic
-  * if this module is ever moved outside of gdm.
-@@ -81,11 +87,15 @@
- extern char **environ;
- static guint enter_signal_id = 0;
- static guint leave_signal_id = 0;
-+static int xinput_type_motion = 0;
- 
- static Crossings *crossings = NULL;
- static int crossings_position = 0;
- static guint max_crossings = 0;
--
-+static XID *ext_input_devices = NULL;
-+static gint ext_device_count = 0;
-+static gboolean latch_core_pointer = TRUE;
-+ 
- static void create_event_watcher ();
- static void load_bindings(gchar *path);
- static gchar * screen_exec_display_string (GdkScreen *screen, const char *old);
-@@ -95,6 +105,67 @@
- BindingType get_binding_type(char c);
- BindingDirection get_binding_direction(char c);
- 
-+static gboolean
-+is_ext_device (XID id)
-+{
-+	gint i;
-+	for (i = 0; i < ext_device_count; i++)
-+		if (id == ext_input_devices[i]) return TRUE;
-+	g_message ("is-ext-device failed for %d", id);
-+	return FALSE;
-+}
-+
-+static void
-+init_xinput (GdkDisplay *display, GdkWindow *root)
-+{
-+#ifdef HAVE_XINPUT
-+	XEventClass      event_list[40];
-+	int              i, j, number = 0, num_devices; 
-+	XDeviceInfo  *devices = NULL;
-+	XDevice      *device = NULL;
-+
-+	devices = XListInputDevices (GDK_DISPLAY_XDISPLAY (display), &num_devices);
-+
-+#ifdef DEBUG_GESTURES
-+	g_message ("checking %d input devices...", num_devices);
-+#endif
-+	for (i = 0; i < num_devices; i++) {
-+		if (devices[i].use == IsXExtensionDevice)
-+		{
-+			device = XOpenDevice (GDK_DISPLAY_XDISPLAY (display), devices[i].id);
-+			for (j = 0; j < device->num_classes && number < 40; j++) {
-+				switch (device->classes[j].input_class) 
-+				{
-+				case ValuatorClass:
-+					DeviceMotionNotify(device, 
-+							   xinput_type_motion, 
-+							   event_list[number]); number++;
-+				default:
-+					break;
-+				}
-+			}
-+			++ext_device_count;
-+			if (ext_input_devices) {
-+				ext_input_devices = g_realloc (ext_input_devices,
-+							       sizeof (XID *) * ext_device_count);
-+			} else {
-+				ext_input_devices = g_malloc (sizeof (XID *));
-+			}
-+			ext_input_devices[ext_device_count - 1] = devices[i].id;
-+		}
-+	}
-+#ifdef DEBUG_GESTURES
-+	g_message ("%d event types available\n", number);
-+#endif	
-+	if (XSelectExtensionEvent(GDK_WINDOW_XDISPLAY (root), 
-+				  GDK_WINDOW_XWINDOW (root),
-+				  event_list, number)) 
-+	{
-+		g_warning ("Can't select input device events!");
-+	}
-+#endif
-+}
-+
- static gchar *
- screen_exec_display_string (GdkScreen *screen, const char *old)
- {
-@@ -596,6 +667,8 @@
- 			  g_timeout_add (2000,
- 					 change_cursor_back,
- 					 NULL);
-+			  latch_core_pointer = FALSE;
-+			  /* once we've recognized a gesture, we need to leave the pointer alone */
-                         }
-                     }
-                 }
-@@ -608,6 +681,25 @@
-   return TRUE;
- }
- 
-+static GdkFilterReturn
-+gestures_filter (GdkXEvent *gdk_xevent,
-+		 GdkEvent *event,
-+		 gpointer data)
-+{
-+	XEvent *xevent = (XEvent *)gdk_xevent;
-+
-+	if (xevent->type == xinput_type_motion) {
-+		XDeviceMotionEvent *motion = (XDeviceMotionEvent *) xevent;
-+		if ((motion->axes_count < 2) || !is_ext_device (motion->deviceid))
-+			return GDK_FILTER_CONTINUE;
-+		if (latch_core_pointer)
-+		    XWarpPointer (motion->display, None, 
-+			      motion->root,
-+			      0, 0, 0, 0, motion->axis_data[0], motion->axis_data[1]);
-+	}
-+       	return GDK_FILTER_CONTINUE;
-+}
-+
- static void
- create_event_watcher (void)
- {
-@@ -629,6 +721,12 @@
-       crossings[i].direction = BINDING_DWELL_DIRECTION_ERROR;
-       crossings[i].time      = 0;
-     }
-+
-+  init_xinput (display, 
-+	       gdk_screen_get_root_window (
-+		   gdk_display_get_default_screen (display)));
-+
-+  gdk_window_add_filter (NULL, gestures_filter, NULL);
- 
-   /* set up emission hook */
-   gtk_type_class (GTK_TYPE_WIDGET);
-Index: gui/modules/keymouselistener.c
-===================================================================
-RCS file: /cvs/gnome/gdm2/gui/modules/keymouselistener.c,v
-retrieving revision 1.16
-diff -u -r1.16 keymouselistener.c
---- gui/modules/keymouselistener.c	27 May 2004 20:42:48 -0000	1.16
-+++ gui/modules/keymouselistener.c	25 Aug 2004 15:54:57 -0000
-@@ -38,21 +38,39 @@
- 
- #include <config.h>
- 
-+#ifdef HAVE_XINPUT
-+#include <X11/extensions/XInput.h>
-+#endif
-+
-+
- /*
-  * Note that CONFIGFILE will have to be changed to something more generic
-  * if this module is ever moved outside of gdm.
-  */
- 
-+#undef DEBUG_GESTURES
-+
- #define CONFIGFILE EXPANDED_SYSCONFDIR "/gdm/modules/AccessKeyMouseEvents"
- #define	iseol(ch)	((ch) == '\r' || (ch) == '\f' || (ch) == '\0' || \
- 			(ch) == '\n')
- 
-+#define N_INPUT_TYPES 40
-+
- typedef enum
- {
- 	GESTURE_TYPE_KEY	= 1 << 0,
--	GESTURE_TYPE_MOUSE	= 1 << 1
-+	GESTURE_TYPE_MOUSE	= 1 << 1,
-+	GESTURE_TYPE_BUTTON	= 1 << 2
- } GestureType;
- 
-+typedef enum {
-+  XINPUT_TYPE_MOTION = 0,
-+  XINPUT_TYPE_BUTTON_PRESS   = 1,
-+  XINPUT_TYPE_BUTTON_RELEASE = 2,
-+  XINPUT_TYPE_KEY_PRESS      = 3,
-+  XINPUT_TYPE_KEY_RELEASE    = 4
-+} XInputEventType;
-+
- typedef struct {
- 	guint keysym;
- 	GdkModifierType state;
-@@ -77,8 +95,12 @@
- 	guint n_times;
- 	guint duration;
- 	guint timeout;
-+	gint  start_time;
-+	gint  seq_count;
- } Gesture;
- 
-+static int xinput_types[N_INPUT_TYPES];
-+
- static int lineno = 0;
- static GSList *gesture_list = NULL;
- extern char **environ;
-@@ -88,10 +110,11 @@
- static void load_gestures(gchar *path);
- static gchar ** get_exec_environment (XEvent *xevent);
- static Gesture * parse_line(gchar *buf);
--static gboolean gesture_already_used (Gesture *gesture);
--static GdkFilterReturn	
--gestures_filter (GdkXEvent *gdk_xevent, GdkEvent *event, gpointer data);
-+static GdkFilterReturn gestures_filter (GdkXEvent *gdk_xevent, GdkEvent *event, gpointer data);
- static gint is_mouseX (const gchar *string);
-+static gint is_switchX (const gchar *string);
-+
-+#define gesture_list_get_matches(a, b, c) (g_slist_find_custom (a, b, c))
- 
- static void
- free_gesture (Gesture *gesture)
-@@ -132,6 +155,63 @@
- 	return retval;
- }
- 
-+static void
-+init_xinput (GdkDisplay *display, GdkWindow *root)
-+{
-+#ifdef HAVE_XINPUT
-+	XEventClass      event_list[40];
-+	int              i, j, number = 0, num_devices; 
-+	XDeviceInfo  *devices = NULL;
-+	XDevice      *device = NULL;
-+
-+	devices = XListInputDevices (GDK_DISPLAY_XDISPLAY (display), &num_devices);
-+
-+#ifdef DEBUG_GESTURES
-+	g_message ("checking %d input devices...", num_devices);
-+#endif
-+	for (i = 0; i < num_devices; i++) {
-+		if (devices[i].use == IsXExtensionDevice)
-+		{
-+			device = XOpenDevice (GDK_DISPLAY_XDISPLAY (display), devices[i].id);
-+			for (j = 0; j < device->num_classes && number < 40; j++) {
-+				switch (device->classes[j].input_class) 
-+				{
-+				case KeyClass:
-+					DeviceKeyPress(device, 
-+						       xinput_types[XINPUT_TYPE_KEY_PRESS], 
-+						       event_list[number]); number++;
-+					DeviceKeyRelease(device, 
-+							 xinput_types[XINPUT_TYPE_KEY_RELEASE], 
-+							 event_list[number]); number++;
-+					break;      
-+				case ButtonClass:
-+					DeviceButtonPress(device, 
-+							  xinput_types[XINPUT_TYPE_BUTTON_PRESS], 
-+							  event_list[number]); number++;
-+					DeviceButtonRelease(device, 
-+							    xinput_types[XINPUT_TYPE_BUTTON_RELEASE], 
-+							    event_list[number]); number++;
-+					break;
-+				case ValuatorClass:
-+					DeviceMotionNotify(device, 
-+							   xinput_types[XINPUT_TYPE_MOTION], 
-+							   event_list[number]); number++;
-+				}
-+			}
-+		}
-+	}
-+#ifdef DEBUG_GESTURES
-+	g_message ("%d event types available\n", number);
-+#endif	
-+	if (XSelectExtensionEvent(GDK_WINDOW_XDISPLAY (root), 
-+				  GDK_WINDOW_XWINDOW (root),
-+				  event_list, number)) 
-+	{
-+		g_warning ("Can't select input device events!");
-+	}
-+#endif
-+}
-+
- static void create_event_watcher ()
- {
- 	GdkDisplay *display;
-@@ -145,6 +225,11 @@
- 	 * Switch off keyboard autorepeat
- 	 */
- 	load_gestures(CONFIGFILE);
-+
-+	init_xinput (display, 
-+		     gdk_screen_get_root_window (
-+			 gdk_display_get_default_screen (display)));
-+
- 	gdk_window_add_filter (NULL, gestures_filter, NULL);
- 
- 	return;
-@@ -161,7 +246,7 @@
- 	fp = fopen (path, "r");
- 	if (fp == NULL) {
- 		/* TODO - I18n */
--		g_warning ("Cannot open gestures file: %s\n", path);
-+		g_warning (_("Cannot open gestures file: %s\n)"), path);
- 		return;
- 	}
- 
-@@ -188,11 +273,9 @@
- 						g_strdup((gchar *)tmp_gesture->actions->data));
- 				}
- 				free_gesture (tmp_gesture);
--				/* Ignore duplicate gestures */
--			} else if ( ! gesture_already_used (tmp_gesture))
-+				/* We must be able to deal with multiple unambiguous gestures attached to one switch/button */
-+			} else
- 				gesture_list = g_slist_append (gesture_list, tmp_gesture);
--			else
--				free_gesture (tmp_gesture);
- 		}
- 	}
- 	fclose(fp);
-@@ -222,8 +305,11 @@
- 	GdkScreen  *screen = NULL;
-   	GdkWindow *window = gdk_xid_table_lookup (xevent->xkey.root);
-   	if (window)
--    	screen = gdk_drawable_get_screen (GDK_DRAWABLE (window));
--   
-+		screen = gdk_drawable_get_screen (GDK_DRAWABLE (window));
-+	/* TODO: revisit this fallback, it's suspect since Xi events might not have xkey.root set */
-+	else
-+		screen = gdk_display_get_default_screen (gdk_display_get_default ());   
-+
- 	g_assert (GDK_IS_SCREEN (screen));
- 
- 	for (i = 0; environ [i]; i++)
-@@ -280,10 +366,16 @@
- 		guint n, duration, timeout;
- 		gchar *tmp_string;
- 
-+		tmp_gesture->start_time = 0;
-+		tmp_gesture->seq_count = 0;
-+
- 		button = is_mouseX (tmp_gesture->gesture_str);
- 		if (button > 0) {
- 			tmp_gesture->type = GESTURE_TYPE_MOUSE;
- 			tmp_gesture->input.button.number = button;
-+		} else if ((button = is_switchX (tmp_gesture->gesture_str)) == TRUE) {
-+			tmp_gesture->type = GESTURE_TYPE_BUTTON;
-+			tmp_gesture->input.button.number = button;
- 		} else {
- 			tmp_gesture->type = GESTURE_TYPE_KEY;
- 			gtk_accelerator_parse(tmp_gesture->gesture_str, 
-@@ -389,244 +481,365 @@
- 	while (*keyservice && isspace (*keyservice))
- 		keyservice++;
- 	tmp_gesture->actions = g_slist_append(tmp_gesture->actions, g_strdup(keyservice));
-+
-+#ifdef DEBUG_GESTURES
-+	g_message ("gesture parsed for %s button %d", 
-+		   (tmp_gesture->type == GESTURE_TYPE_MOUSE) ? "mouse" : ((tmp_gesture->type == GESTURE_TYPE_BUTTON) ? "switch" : "key"), 
-+		   tmp_gesture->input.button.number);
-+#endif
-+
- 	return tmp_gesture;
- }
- 
- /* 
-  * These modifiers are ignored because they make no sense.
-- * .eg <NumLock>x
-+ * .eg <NumLock>x 
-+ * FIXME: [sadly, NumLock isn't always mapped to the same modifier, so the logic below is faulty - bill]
-  */
--#define IGNORED_MODS (GDK_LOCK_MASK  | \
--       GDK_MOD3_MASK | GDK_MOD5_MASK) 
-+#define IGNORED_MODS (GDK_LOCK_MASK | GDK_MOD2_MASK | GDK_MOD3_MASK)
- #define USED_MODS (GDK_SHIFT_MASK | GDK_CONTROL_MASK | GDK_MOD1_MASK | \
--	   GDK_MOD2_MASK | GDK_MOD4_MASK)
-+	   GDK_MOD4_MASK | GDK_MOD5_MASK)
- 
--#define N_BITS 32
-+static gboolean
-+change_cursor_back (gpointer data)
-+{
-+	GdkCursor *cursor = gdk_cursor_new (GDK_LEFT_PTR);
-+	gdk_window_set_cursor (gdk_get_default_root_window (), cursor);
-+	gdk_cursor_unref (cursor);
- 
--static gboolean 
--gesture_already_used (Gesture *gesture)
-+	return FALSE;
-+}
-+
-+static gint
-+event_time (XEvent *ev)
- {
--	GSList *li;
-+	if ((ev->type == KeyPress) ||
-+	    (ev->type == KeyRelease))
-+		return ((XKeyEvent *) ev)->time;
-+	else if ((ev->type == ButtonPress) ||
-+		 (ev->type == ButtonRelease))
-+		return ((XButtonEvent *) ev)->time;
-+	else if ((ev->type == xinput_types[XINPUT_TYPE_KEY_PRESS]) ||
-+		 (ev->type == xinput_types[XINPUT_TYPE_KEY_RELEASE]))
-+		return ((XDeviceKeyEvent *) ev)->time;
-+	else if ((ev->type == xinput_types[XINPUT_TYPE_BUTTON_PRESS]) ||
-+		 (ev->type == xinput_types[XINPUT_TYPE_BUTTON_RELEASE]))
-+		return ((XDeviceButtonEvent *) ev)->time;
-+	else
-+		return 0;
-+}
- 
--	for (li = gesture_list; li != NULL; li = li->next) {
--		Gesture *tmp_gesture =  (Gesture*) li->data;
--
--		if (tmp_gesture != gesture && tmp_gesture->type == gesture->type) {
--			switch (tmp_gesture->type) {
--		  	case (GESTURE_TYPE_KEY):
--				if (tmp_gesture->input.key.keycode == gesture->input.key.keycode &&
--			    	tmp_gesture->input.key.state == gesture->input.key.state)
--					return TRUE;
--		  	case (GESTURE_TYPE_MOUSE):
--				if (tmp_gesture->input.button.number == gesture->input.button.number)
--					return TRUE;
--		  	default:
--		  		break;
--			}
-+static gint
-+elapsed_time (XEvent *ev1, XEvent *ev2)
-+{
-+	return event_time (ev2) - event_time (ev1);
-+}
-+
-+static gboolean
-+keycodes_equal (XEvent *ev1, XEvent *ev2)
-+{
-+	if (ev1->type == ev2->type)
-+	{
-+		if (ev1->type == KeyPress || ev1->type == KeyRelease)
-+		{
-+			return (((XKeyEvent *) ev1)->keycode == ((XKeyEvent *) ev2)->keycode);
-+		}
-+		else if (ev1->type == xinput_types[XINPUT_TYPE_KEY_PRESS] || ev1->type == xinput_types[XINPUT_TYPE_KEY_RELEASE])
-+		{
-+			return (((XDeviceKeyEvent *) ev1)->keycode == ((XDeviceKeyEvent *) ev2)->keycode);
- 		}
- 	}
- 	return FALSE;
- }
- 
--static gboolean
--change_cursor_back (gpointer data)
-+static gint
-+key_gesture_compare_func (gconstpointer a, gconstpointer b)
- {
--	GdkCursor *cursor = gdk_cursor_new (GDK_LEFT_PTR);
--	gdk_window_set_cursor (gdk_get_default_root_window (), cursor);
--	gdk_cursor_unref (cursor);
-+	const Gesture *gesture = a;
-+	const XEvent *xev = b;
- 
--	return FALSE;
-+	if (gesture->type == GESTURE_TYPE_KEY) 
-+	{
-+	    if (((xev->type == KeyPress) || (xev->type == KeyRelease)) &&
-+		(xev->xkey.keycode == gesture->input.key.keycode) &&
-+		((xev->xkey.state & USED_MODS) == gesture->input.key.state))
-+		return 0;
-+	    else if (((xev->type == xinput_types[XINPUT_TYPE_KEY_PRESS]) || (xev->type == xinput_types[XINPUT_TYPE_KEY_RELEASE])) &&
-+		     (xev->xkey.keycode == gesture->input.key.keycode) &&
-+		     ((xev->xkey.state & USED_MODS) == gesture->input.key.state))
-+		return 0;
-+	    else
-+		return 1;
-+	}
-+	else if ((gesture->type == GESTURE_TYPE_MOUSE) &&
-+		 ((xev->type == ButtonPress) || (xev->type == ButtonRelease)) &&
-+		 (xev->xbutton.button == gesture->input.button.number))
-+		return 0;
-+	else if ((gesture->type == GESTURE_TYPE_BUTTON) &&
-+		 ((xev->type == xinput_types[XINPUT_TYPE_BUTTON_PRESS]) || (xev->type == xinput_types[XINPUT_TYPE_BUTTON_RELEASE])) &&
-+		 ((XDeviceButtonEvent *) xev)->button == gesture->input.button.number)
-+		return 0;
-+	else
-+		return 1;
- }
- 
--GdkFilterReturn
-+#define event_is_gesture_type(xevent) (xevent->type == KeyPress ||\
-+	    xevent->type == KeyRelease ||\
-+	    xevent->type == ButtonPress ||\
-+	    xevent->type == ButtonRelease ||\
-+	    xevent->type == xinput_types[XINPUT_TYPE_KEY_PRESS] ||\
-+	    xevent->type == xinput_types[XINPUT_TYPE_KEY_RELEASE] ||\
-+	    xevent->type == xinput_types[XINPUT_TYPE_BUTTON_PRESS] ||\
-+	    xevent->type == xinput_types[XINPUT_TYPE_BUTTON_RELEASE])
-+
-+static GdkFilterReturn
- gestures_filter (GdkXEvent *gdk_xevent,
--		    GdkEvent *event,
--		    gpointer data)
-+		 GdkEvent *event,
-+		 gpointer data)
- {
- 	XEvent *xevent = (XEvent *)gdk_xevent;
- 	GSList *li, *act_li;
- 	Gesture *curr_gesture = NULL;
-+	XID xinput_device = None;
- 	
- 	static XEvent *last_event = NULL;
- 	static gint seq_count = 0;
- 
--	if (xevent->type != KeyPress &&
--	    xevent->type != KeyRelease &&
--	    xevent->type != ButtonPress &&
--	    xevent->type != ButtonRelease)
--	 	return GDK_FILTER_CONTINUE;
-+	if (!event_is_gesture_type (xevent)) 
-+		return GDK_FILTER_CONTINUE;
- 
- 	if (!last_event)
- 		last_event = g_new0(XEvent, 1);
- 
--	switch (xevent->type) {
--
--	case KeyPress:
-+	if ((xevent->type == KeyPress) || (xevent->type == xinput_types[XINPUT_TYPE_KEY_PRESS]))
-+	{
-+#ifdef DEBUG_GESTURES
-+	    g_message ("key press");
-+#endif
- 		if (last_event->type == KeyPress &&
- 		    last_event->xkey.keycode == xevent->xkey.keycode) {
--			/* they comes from auto key-repeat */
-+			/* these come from auto key-repeat */
-+#ifdef DEBUG_GESTURES
-+		    g_message ("rejecting repeat");
-+#endif
- 			return GDK_FILTER_CONTINUE;
- 		}
- 
- 		if (seq_count > 0 &&
- 		    last_event->type != KeyRelease) {
-+#ifdef DEBUG_GESTURES
-+		    g_message ("last event wasn't a release, resetting seq");
-+#endif
- 			seq_count = 0;
--			break;
- 		}
--
--		if (seq_count > 0 &&
--		    last_event->xkey.keycode != xevent->xkey.keycode) {
-+		else if (seq_count > 0 &&
-+		    keycodes_equal (last_event, xevent)) {
-+#ifdef DEBUG_GESTURES
-+		    g_message ("keycode doesn't match last event, resetting seq");
-+#endif
- 			seq_count = 0;
--			break;
- 		}
- 
- 		/*
- 		 * Find the associated gesture for this keycode & state
--		 * TODO: write a custom g_slist_find function.
- 		 */
--		for (li = gesture_list; li != NULL; li = li->next) {
--			Gesture *gesture = (Gesture *) li->data;
--			if (gesture->type == GESTURE_TYPE_KEY &&
--			    xevent->xkey.keycode == gesture->input.key.keycode &&
--			    (xevent->xkey.state & USED_MODS) == gesture->input.key.state) {
--				/* 
--				 * OK Found the gesture.
--				 * Now check if it has a timeout value > 0;
--				 */
--				curr_gesture = gesture;
--				if (gesture->timeout > 0 && seq_count > 0 &&
--				    /* xevent time values are in milliseconds. The config file spec is in ms */
--				    (xevent->xkey.time - last_event->xkey.time) > gesture->timeout) {
--					seq_count = 0; /* The timeout has been exceeded. Reset the sequence. */
--					curr_gesture = NULL;
--				}
--				break;
-+		li = gesture_list_get_matches (gesture_list, xevent, key_gesture_compare_func);
-+		if (li) {
-+			curr_gesture = li->data;
-+#ifdef DEBUG_GESTURES
-+		    g_message ("found a press match [%s]", curr_gesture->gesture_str);
-+#endif
-+			if (curr_gesture->timeout > 0 && seq_count > 0 && 
-+			    /* xevent time values are in milliseconds. The config file spec is in ms */
-+			    elapsed_time (last_event, xevent) > curr_gesture->timeout) {
-+#ifdef DEBUG_GESTURES
-+			    g_message ("timeout exceeded: reset seq and gesture");
-+#endif
-+				seq_count = 0; /* The timeout has been exceeded. Reset the sequence. */
-+				curr_gesture = NULL;
- 			}
- 		}
--		break;
--
--	case KeyRelease:
-+	}
-+	else if ((xevent->type == KeyRelease) || (xevent->type == xinput_types[XINPUT_TYPE_KEY_RELEASE]))
-+	{
-+#ifdef DEBUG_GESTURES
-+	    g_message ("key release");
-+#endif
- 		if (seq_count > 0 &&
--		    (last_event->type != KeyPress ||
--		     last_event->xkey.keycode != xevent->xkey.keycode)) {
-+		    ((last_event->type != KeyPress && last_event->type != xinput_types[XINPUT_TYPE_KEY_PRESS]) ||
-+		     !keycodes_equal (last_event, xevent))) {
-+#ifdef DEBUG_GESTURES
-+		    g_message ("either last event not a keypress, or keycodes don't match. Resetting seq.");
-+#endif
- 			seq_count = 0;
--			break;
- 		}
--
-+		
- 		/*
- 		 * Find the associated gesture for this keycode & state
--		 * TODO: write a custom g_slist_find function.
- 		 *
- 		 * Note that here we check the state against the last_event,
- 		 * otherwise key gestures based on modifier keys such as
- 		 * Control_R won't work.
- 		 */
--		for (li = gesture_list; li != NULL; li = li->next) {
--			Gesture *gesture = (Gesture *) li->data;
--			if (gesture->type == GESTURE_TYPE_KEY &&
--			    xevent->xkey.keycode == gesture->input.key.keycode &&
--			    last_event->xkey.state == gesture->input.key.state) {
--				/* 
--				 * OK Found the gesture.
--				 * Now check if it has a duration value > 0.
--				 */
--				curr_gesture = gesture;
--				if ((gesture->duration > 0) &&
--				    ((xevent->xkey.time - last_event->xkey.time) < gesture->duration)) {
--					seq_count = 0;
--					curr_gesture = NULL;
--				} else {
--					seq_count++;
--				}
--				break;
--			}
-+		li = gesture_list_get_matches (gesture_list, xevent, key_gesture_compare_func);
-+	        if (li) {
-+			curr_gesture = li->data;
-+#ifdef DEBUG_GESTURES
-+		    g_message ("found a release match [%s]", curr_gesture->gesture_str);
-+#endif
-+			if ((curr_gesture->duration > 0) &&
-+			    (elapsed_time (last_event, xevent) < curr_gesture->duration)) {
-+				seq_count = 0;
-+				curr_gesture = NULL;
-+#ifdef DEBUG_GESTURES
-+				g_message ("setting current gesture to NULL");
-+#endif
-+			} else {
-+				seq_count++;
-+#ifdef DEBUG_GESTURES
-+				g_message ("incrementing seq_count");
-+#endif
-+			}	
- 		}
--		break;
--
--	case ButtonPress:
--		if (seq_count > 0 && last_event->type != ButtonRelease) {
--			seq_count = 0;
--			break;
-+	}
-+	else if ((xevent->type == ButtonPress) ||  (xevent->type == xinput_types[XINPUT_TYPE_BUTTON_PRESS]))
-+	{
-+		gint button = 0;
-+		gint time = 0;
-+
-+
-+		if (xevent->type == ButtonPress) {
-+			button = xevent->xbutton.button;
-+			time = xevent->xbutton.time;
-+#ifdef DEBUG_GESTURES
-+			g_message ("button press: %d", button);
-+#endif
-+			if (seq_count > 0 && (last_event->type != ButtonRelease))
-+				seq_count = 0;
-+			else if (seq_count > 0 && last_event->xbutton.button != button) {
-+				seq_count = 0;
-+			}
- 		}
--
--		if (seq_count > 0 && last_event->xbutton.button != xevent->xbutton.button) {
--			seq_count = 0;
--			break;
-+#ifdef HAVE_XINPUT
-+		else {
-+			button = ((XDeviceButtonEvent *) xevent)->button;
-+			time =  ((XDeviceButtonEvent *) xevent)->time;
-+#ifdef DEBUG_GESTURES
-+			g_message ("xinput button press: %d", button);
-+#endif
-+			if (seq_count > 0 && last_event->type != xinput_types[XINPUT_TYPE_BUTTON_RELEASE]) {
-+				seq_count = 0;
-+			}
-+			else if (seq_count > 0 && ((XDeviceButtonEvent *) last_event)->button != button) {
-+				seq_count = 0;
-+			}
- 		}
--
-+#endif
-+		
- 		/*
- 		 * Find the associated gesture for this button.
--		 * TODO: write a custom g_slist_find function
- 		 */
--		for (li = gesture_list; li != NULL; li = li->next) {
--			Gesture *gesture = (Gesture *) li->data;
--			if (gesture->type == GESTURE_TYPE_MOUSE &&
--			    xevent->xbutton.button == gesture->input.button.number) { /* TODO: Support state? */
--				/*
--				 * Ok Found the gesture.
--				 * Now check if it has a timeout value > 0;
--				 */
--				curr_gesture = gesture;
--				if (gesture->timeout > 0 && seq_count > 0 &&
--				    /* xevent time values are in milliseconds. The config file spec is in ms */
--				    (xevent->xbutton.time - last_event->xbutton.time) > gesture->timeout) {
-+		li = gesture_list_get_matches (gesture_list, xevent, key_gesture_compare_func);
-+		if (li) {
-+#ifdef DEBUG_GESTURES
-+			g_message ("found match for press");
-+#endif
-+			curr_gesture = li->data;
-+			if (curr_gesture->timeout > 0 && seq_count > 0) {
-+				/* xevent time values are in milliseconds. The config file spec is in ms */
-+				if (curr_gesture->type == 
-+				    elapsed_time (last_event, xevent) > curr_gesture->timeout) {
- 					seq_count = 0; /* Timeout has elapsed. Reset the sequence. */
- 					curr_gesture = NULL;
-+#ifdef DEBUG_GESTURES
-+					g_message ("gesture timed out.");
-+#endif
- 				}
--				break;
- 			}
- 		}
--		break;
--
--	case ButtonRelease:
--		if (seq_count > 0 &&
--		    (last_event->type != ButtonPress ||
--		     last_event->xbutton.button != xevent->xbutton.button)) {
--			seq_count = 0;
--			break;
-+#ifdef DEBUG_GESTURES
-+		else g_message ("no match for press %d", button);
-+#endif
-+	}
-+	else if ((xevent->type == ButtonRelease) || (xevent->type == xinput_types[XINPUT_TYPE_BUTTON_RELEASE]))
-+	{
-+		gint button = 0;
-+		gint time = 0;
-+		
-+		if (xevent->type == ButtonRelease) 
-+		{
-+			button = xevent->xbutton.button;
-+			time = xevent->xbutton.time;
-+			if (seq_count > 0 &&
-+			    (last_event->type != ButtonPress ||
-+			     last_event->xbutton.button != button)) {
-+#ifdef DEBUG_GESTURES
-+				g_message ("resetting count to zero, based on failure to match last event.");
-+#endif
-+				seq_count = 0;
-+			}
- 		}
--
--		/*
--		 * Find the associated gesture for this button.
--		 * TODO: write a custom g_slist_find function
--		 */
--		for (li = gesture_list; li != NULL; li = li->next) {
--			Gesture *gesture = (Gesture *) li->data;
--			if (gesture->type == GESTURE_TYPE_MOUSE &&
--			    xevent->xbutton.button == gesture->input.button.number) { /* TODO: Support state? */
--				/*
--				 * OK Found the gesture.
--				 * Now check if it has a duration value > 0.
--				 */
--				curr_gesture = gesture;
--				if ((gesture->duration > 0) &&
--				    ((xevent->xbutton.time - last_event->xbutton.time) < gesture->duration)) {
--					seq_count = 0;
--					curr_gesture = NULL;
--				} else {
--					seq_count++;
--				}
--				break;
-+#ifdef HAVE_XINPUT
-+		else
-+		{
-+			button = ((XDeviceButtonEvent *) (xevent))->button;
-+			time = ((XDeviceButtonEvent *)(xevent))->time;
-+			xinput_device = ((XDeviceButtonEvent *)(xevent))->deviceid;
-+			if (seq_count > 0 &&
-+			    (last_event->type != xinput_types[XINPUT_TYPE_BUTTON_PRESS] ||
-+			     ((XDeviceButtonEvent *) last_event)->button != button)) {
-+#ifdef DEBUG_GESTURES
-+				g_message ("resetting count to zero, based on failure to match last input event.");
-+#endif
-+				seq_count = 0;
- 			}
- 		}
--		break;
-+#endif
- 
--	default:
--		break;
-+		li = gesture_list_get_matches (gesture_list, xevent, key_gesture_compare_func);
-+		if (li) {
-+#ifdef DEBUG_GESTURES
-+			g_message ("found match for release");
-+#endif
-+			curr_gesture = li->data;
-+			if ((curr_gesture->duration > 0) &&
-+			    (elapsed_time (last_event, xevent) < curr_gesture->duration)) {
-+				seq_count = 0;
-+				curr_gesture = NULL;
-+#ifdef DEBUG_GESTURES
-+				g_message ("insufficient duration.");
-+#endif
-+			} else {
-+#ifdef DEBUG_GESTURES
-+				g_message ("duration OK");
-+#endif
-+				seq_count++;
-+			}
-+		}
-+#ifdef DEBUG_GESTURES
-+		else g_message ("no match for release - button %d", button);
-+#endif
- 	}
- 
- 	/*
- 	 * Did this event complete any gesture sequences?
- 	 */
-+
- 	last_event = memcpy(last_event, xevent, sizeof(XEvent));
- 	if (curr_gesture) {
- 		if (seq_count != curr_gesture->n_times) {
-+#ifdef DEBUG_GESTURES
-+			g_message ("waiting for %d more repetitions...", curr_gesture->n_times - seq_count);
-+#endif
- 			return GDK_FILTER_CONTINUE;
- 		} else {
- 			gboolean retval;
- 			gchar **argv = NULL;
- 			gchar **envp = NULL; 
- 
-+#ifdef DEBUG_GESTURES
-+			g_message ("gesture complete!");
-+#endif
- 			seq_count = 0;
- 			for (act_li = curr_gesture->actions; act_li != NULL; act_li = act_li->next) {
- 				gchar *action = (gchar *)act_li->data;
-@@ -715,13 +928,32 @@
- 		return 0;
- }
- 
-+static gint
-+is_switchX (const gchar *string)
-+{
-+	if ((string[0] == '<') &&
-+	  (string[1] == 's' || string[1] == 'S') &&
-+	  (string[2] == 'w' || string[2] == 'W') &&
-+	  (string[3] == 'i' || string[3] == 'I') &&
-+	  (string[4] == 't' || string[4] == 'T') &&
-+	  (string[5] == 'c' || string[5] == 'C') &&
-+	  (string[6] == 'h' || string[6] == 'H') &&
-+	  (isdigit(string[7]) && 
-+	  	(atoi(&string[7]) > 0) && 
-+		(atoi(&string[7]) < 6)) &&
-+	  (string[8] == '>'))
-+		return atoi(&string[7]);
-+	else
-+		return 0;
-+}
-+
- /* The init function for this gtk module */
- G_MODULE_EXPORT void gtk_module_init(int *argc, char* argv[]);
- 
- void gtk_module_init(int *argc, char* argv[])
- {
--	create_event_watcher();
-+#ifdef DEBUG_GESTURES
-+    g_message ("keymouselistener loaded.");
-+#endif
-+    create_event_watcher();
- }
--
--/* EOF */
--
--- a/patches/ggv-05-convert-uri-to-display-name.diff	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
---- ggv-2.6.1/src/ggv-window.c.orig	2004-11-02 13:55:15.082024562 -0800
-+++ ggv-2.6.1/src/ggv-window.c	2004-11-04 20:37:16.799918625 -0800
-@@ -314,6 +314,19 @@
-         }
- }
- 
-+static gchar*
-+get_filename_from_uri (gchar *uri_name)
-+{
-+        gchar *utf8_filename, *unescaped;
-+
-+        g_return_val_if_fail(uri_name != NULL, NULL);
-+
-+        unescaped = gnome_vfs_unescape_string_for_display (uri_name);
-+        utf8_filename = g_filename_to_utf8 (unescaped, -1, NULL, NULL, NULL);
-+        g_free (unescaped);
-+        return utf8_filename;
-+}
-+
- static void
- verb_FileOpen(BonoboUIComponent *uic, gpointer data, const char *cname)
- {
-@@ -364,13 +377,18 @@
-                 if(!ggv_window_load(GGV_WINDOW(newwin),
-                                     (gchar *)uris->data)) {
-                         GtkWidget *dlg;
-+                        gchar *utf8_filename;
-+
-+                        utf8_filename = get_filename_from_uri (uris->data);
-+
-                         dlg = gtk_message_dialog_new
-                                 (GTK_WINDOW(win),
-                                  GTK_DIALOG_MODAL,
-                                  GTK_MESSAGE_ERROR,
-                                  GTK_BUTTONS_OK,
-                                  _("Unable to load file:\n%s"),
--                                 (gchar *)uris->data);
-+                                 (gchar *)utf8_filename);
-+                        g_free(utf8_filename);
-                         gtk_widget_show(dlg);
-                         gtk_dialog_run(GTK_DIALOG(dlg));
-                         gtk_widget_destroy(dlg);
--- a/patches/gnome-session-09-load-a11y-modules.diff	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
---- gnome-session-2.6.1/gnome-session/main.c	2005-03-23 14:26:40.837739600 +0530
-+++ gnome-session-2.6.1-new/gnome-session/main.c	2005-03-23 14:30:20.958276192 +0530
-@@ -332,6 +332,8 @@ main (int argc, char *argv[])
-   int status;
-   Display *xdisp;
-   GdkDisplay *gdisp;
-+  const char *gtk_modules_old;
-+  char *gtk_modules;
-   
-   if (getenv ("GSM_VERBOSE_DEBUG"))
-     gsm_set_verbose (TRUE);
-@@ -382,6 +384,21 @@ main (int argc, char *argv[])
-         }
-     }
-   
-+  /* Read in config options early so that we can set GTK_MODULES */
-+
-+  gconf_client = gconf_client_get_default ();
-+  gconf_client_add_dir (gconf_client, GSM_GCONF_CONFIG_PREFIX, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
-+
-+  a_t_support    = gconf_client_get_bool (gconf_client, ACCESSIBILITY_KEY, NULL);
-+
-+  if (a_t_support) {
-+    gtk_modules_old = g_getenv ("GTK_MODULES");
-+    gtk_modules = g_strdup_printf ("GTK_MODULES=%s:gail:atk-bridge", gtk_modules_old ? gtk_modules_old : "");
-+    putenv (gtk_modules);
-+    if (g_getenv ("NO_J2D_DGA") == NULL)
-+      putenv ("NO_J2D_DGA=true");
-+  }
-+
-   gnome_program_init("gnome-session", VERSION, LIBGNOMEUI_MODULE, argc, argv, 
- 		  GNOME_PARAM_POPT_TABLE, options,
- 		  NULL);
-@@ -414,14 +431,10 @@ main (int argc, char *argv[])
-   /* Need DISPLAY set */
-   gsm_keyring_daemon_start ();
-   
--  /* Read in config options */  
--  gconf_client = gconf_client_get_default ();
--
--  gconf_client_add_dir (gconf_client, GSM_GCONF_CONFIG_PREFIX, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
-+  /* Read the rest of config options */  
-   splashing      = gconf_client_get_bool (gconf_client, SPLASH_SCREEN_KEY, NULL);
-   autosave       = gconf_client_get_bool (gconf_client, AUTOSAVE_MODE_KEY, NULL);
-   logout_prompt  = gconf_client_get_bool (gconf_client, LOGOUT_PROMPT_KEY, NULL);
--  a_t_support    = gconf_client_get_bool (gconf_client, ACCESSIBILITY_KEY, NULL);
- 
-   gconf_client_notify_add (gconf_client,
- 			   AUTOSAVE_MODE_KEY,
--- a/patches/gnome-speech-01-freetts-perf.diff	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,314 +0,0 @@
-diff -u -r -w gnome-speech-0.3.5/drivers/freetts/freetts-synthesis-driver.in gnome-speech-0.3.5.patched/drivers/freetts/freetts-synthesis-driver.in
---- gnome-speech-0.3.5/drivers/freetts/freetts-synthesis-driver.in	2003-09-29 19:36:45.000000000 +0100
-+++ gnome-speech-0.3.5.patched/drivers/freetts/freetts-synthesis-driver.in	2004-10-08 13:33:55.000000000 +0100
-@@ -13,4 +13,10 @@
- 	JAVA="`which java`"
- fi
- 
--$JAVA org.GNOME.Speech.FreeTTSSynthesisDriver $1 $2
-+if test "`uname -s`" = "SunOS"; then
-+    AUDIOPLAYER="-Dft_audio_player=streaming -Dcom.sun.speech.freetts.audio.AudioPlayer.drainDelay=0"
-+else
-+    AUDIOPLAYER=" "
-+fi
-+
-+$JAVA $AUDIOPLAYER -Dcom.sun.speech.freetts.audio.AudioPlayer.openFailDelayMs=100 -Dcom.sun.speech.freetts.audio.AudioPlayer.totalOpenFailDelayMs=1500 org.GNOME.Speech.FreeTTSSynthesisDriver $1 $2
-Only in gnome-speech-0.3.5.patched/drivers/freetts: freetts-synthesis-driver.in~
-diff -u -r -w gnome-speech-0.3.5/drivers/freetts/java/org/GNOME/Speech/FreeTTSSynthesisDriver.java gnome-speech-0.3.5.patched/drivers/freetts/java/org/GNOME/Speech/FreeTTSSynthesisDriver.java
---- gnome-speech-0.3.5/drivers/freetts/java/org/GNOME/Speech/FreeTTSSynthesisDriver.java	2004-07-28 13:00:32.000000000 +0100
-+++ gnome-speech-0.3.5.patched/drivers/freetts/java/org/GNOME/Speech/FreeTTSSynthesisDriver.java	2004-10-08 13:39:05.000000000 +0100
-@@ -10,6 +10,7 @@
- import com.sun.speech.freetts.VoiceManager;
- import com.sun.speech.freetts.Gender;
- import com.sun.speech.freetts.audio.JavaClipAudioPlayer;
-+import com.sun.speech.freetts.audio.JavaStreamingAudioPlayer;
- 
- public class FreeTTSSynthesisDriver extends UnknownImpl implements SynthesisDriverOperations {
- 
-@@ -18,8 +19,21 @@
- 	private Voice[] voices = null;
- 	private int index = 0;
- 	private SpeechThread thread = null;
-+    private boolean debug = false;
- 	
- 	
-+    /**
-+     * Prints out a debugging statement to System.out, if the System
-+     * property "debug" is set to true.
-+     *
-+     * @param line the debugging statement
-+     */
-+    private void debugPrintln(String line) {
-+	if (debug) {
-+	    System.out.println(line);
-+	}
-+    }
-+	
- 	public void bonoboActivate (String iid, String [] args) {
- 		ORB orb = AccessUtil.getORB ();
- 		String ior = orb.object_to_string (tie._this_object());
-@@ -34,6 +48,7 @@
- 	}
-     
- 	public FreeTTSSynthesisDriver (String [] args) {
-+	debug = Boolean.getBoolean("debug");
- 		poa = JavaBridge.getRootPOA ();
- 		tie = new SynthesisDriverPOATie (this, poa);
- 		try {
-@@ -115,7 +130,8 @@
- 			return false; // For now, FreeTTS doesn't have any locales with encoding suffices
- 		    }
- 		}
--		if ((country == null) || (voiceCountry == null) || (voiceCountry.length () == 0) || 
-+	    if ((country == null) || (voiceCountry == null) || 
-+		(voiceCountry.length () == 0) || 
- 		    voiceCountry.toUpperCase().equals (country)) 
- 		    return true;
- 	    }
-@@ -136,8 +152,7 @@
- 		if (voices == null)
- 			voices = vm.getVoices ();
- 		num_voices = voices.length;
--		for (i = 0; i < num_voices; i++)
--		{
-+	for (i = 0; i < num_voices; i++) {
- 			vi = getVoiceInfo (voices[i]);
- 
- 		    System.err.println ("checking voice " + i + " " + vi.name);
-@@ -160,8 +175,7 @@
- 		}
- 		num_voices = matched.size ();
- 		via = new VoiceInfo[num_voices];
--		for (i = 0; i < num_voices; i++)
--		{
-+	for (i = 0; i < num_voices; i++) {
- 			via[i] = (VoiceInfo) matched.remove (0);
- 		}
- 		return via;
-@@ -179,16 +193,14 @@
- 			voices = vm.getVoices ();
- 
- 		num_voices = voices.length;
--		for (i = 0; i < num_voices; i++)
--		{
-+	for (i = 0; i < num_voices; i++) {
- 			if (!voices[i].getDomain().equals("general"))
- 				continue;
- 			list.add(getVoiceInfo(voices[i]));
- 		}
- 		num_voices = list.size ();
- 		vi = new VoiceInfo[num_voices];
--		for (i = 0; i < num_voices; i++)
--		{
-+	for (i = 0; i < num_voices; i++) {
- 			vi[i] = (VoiceInfo) list.remove (0);
- 		}
- 		return vi;
-@@ -196,7 +208,8 @@
- 
- 	/* Speaker creation */
- 
--	public org.GNOME.Speech.Speaker createSpeaker (org.GNOME.Speech.VoiceInfo voice_spec) {
-+    public org.GNOME.Speech.Speaker createSpeaker
-+	(org.GNOME.Speech.VoiceInfo voice_spec) {
- 		Speaker speaker = null;
- 		VoiceInfo vi;
- 		int i;
-@@ -206,24 +219,35 @@
- 			voices = vm.getVoices ();
- 
- 		num_voices = voices.length;
--		for (i = 0; i < num_voices; i++)
--		{
-+	for (i = 0; i < num_voices; i++) {
- 			if (voices[i].getDomain () != "general")
- 				continue;
- 			vi = getVoiceInfo (voices[i]);
--			if (voice_spec.name.length () != 0 && !voice_spec.name.equals(vi.name))
-+	    
-+	    if (voice_spec.name.length () != 0 && 
-+		!voice_spec.name.equals(vi.name))
- 				continue;
--			if (voice_spec.language.length () != 0 && !voice_spec.language.equals(vi.language))
-+	    if (voice_spec.language.length () != 0 && 
-+		!voice_spec.language.equals(vi.language))
- 				continue;
- 			
- 			System.out.println ("Found voice.");
--			if (!voices[i].isLoaded ())
--			{
-+	    
-+	    if (!voices[i].isLoaded ()) {
- 				System.out.println ("Loading voice.");
-+		String audioPlayer = System.getProperty("ft_audio_player");
-+		if (audioPlayer != null && 
-+		    audioPlayer.equals("streaming")) {
-+		    voices[i].setAudioPlayer(new JavaStreamingAudioPlayer());
-+		    System.out.println("Using JavaStreamingAudioPlayer");
-+		} else {
- 				voices[i].setAudioPlayer (new JavaClipAudioPlayer());
-+		    System.out.println("Using JavaClipAudioPlayer");
-+		}
- 				voices[i].allocate ();
- 			}
--			speaker = SpeakerHelper.narrow ((new FreeTTSSpeaker (this, voices[i])).tie());
-+	    speaker = SpeakerHelper.narrow
-+		((new FreeTTSSpeaker (this, voices[i])).tie());
- 			break;
- 		}
- 		return speaker;
-@@ -240,8 +264,7 @@
- 		}
- 	}
- 	
--	public int say (FreeTTSSpeaker s,
--			String text) {
-+    public int say (FreeTTSSpeaker s, String text) {
- 		index++;
- 		thread.addEntry (s, index, text);
- 		return index;
-@@ -273,27 +296,28 @@
- 	}
- 	
- 	class SpeechThread extends Thread {
-+	
- 		private boolean done = false;
--		private Vector SpeechQueue = null;
-+	private Vector speechQueue = null;
- 		private QueueEntry current = null;
- 	
- 		public SpeechThread () {
--			SpeechQueue = new Vector ();
-+	    speechQueue = new Vector ();
-+	    System.out.println("SpeechThread created");
- 		}
- 	
- 		public void run () {
- 			current = null;
- 			while (done == false) {
--				synchronized (SpeechQueue) {
--					if (SpeechQueue.size() == 0) {
-+		synchronized (speechQueue) {
-+		    while (speechQueue.size() == 0) {
- 						try {
--							SpeechQueue.wait ();
-+			    speechQueue.wait();
- 						} catch (InterruptedException ie) {
-+			    ie.printStackTrace();
- 						}
- 					}
--				}
--				synchronized (SpeechQueue) {
--					current = (QueueEntry) SpeechQueue.remove(0);
-+		    current = (QueueEntry) speechQueue.remove(0);
- 				}
- 				if (current != null) {
- 					
-@@ -304,47 +328,92 @@
- 						current.s.v.setRate(current.s.getRate());
- 						current.s.v.setVolume(current.s.getVolume());
- 					}
--					if (current.s.getCallback() != null)
-+		    /*
-+		    long callBack = 0L;
-+		    if (debug) {
-+			callBack = System.currentTimeMillis();
-+		    }
-+		    */
-+		    if (current.s.getCallback() != null) {
- 						try {
--							current.s.getCallback()._notify (speech_callback_type.speech_callback_speech_started,
-+			    current.s.getCallback()._notify 
-+				(speech_callback_type.speech_callback_speech_started,
- 										   current.index, 0);
- 						} catch (Exception ex) {
- 							System.err.println ("error: " + ex);
- 						}
--
--					System.out.println ("speaking " + current.text);
-+		    }
-+		    /*
-+		    if (debug) {
-+			callBack = System.currentTimeMillis() - callBack;
-+			System.out.println("1st callback: " + callBack);
-+		    }
-+		    */
-+		    debugPrintln("SPEAKING: " + current.text);
-+		    long speakTime = 0L;
-+		    if (debug) {
-+			speakTime = System.currentTimeMillis();
-+		    }
- 					current.s.v.speak (current.text);
--					if (current.s.getCallback() != null)
-+		    if (debug) {
-+			speakTime = System.currentTimeMillis() - speakTime;
-+			System.out.println("Voice.speak() time: " + 
-+					   speakTime + " ms");
-+		    }
-+		    /*
-+		    if (debug) {
-+			callBack = System.currentTimeMillis();
-+		    }
-+		    */
-+		    if (current.s.getCallback() != null) {
- 						try {
--							current.s.getCallback()._notify (speech_callback_type.speech_callback_speech_ended,
-+			    current.s.getCallback()._notify
-+				(speech_callback_type.speech_callback_speech_ended,
- 										   current.index, 0);
- 						} catch (Exception ex) {
- 							System.err.println ("error: " + ex);
- 						}
--					
-+		    }
-+		    /*
-+		    if (debug) {
-+			callBack = System.currentTimeMillis() - callBack;
-+			System.out.println("2nd callback: " + callBack);
-+		    }
-+		    */
- 				}
- 			}
- 		}
- 	
--		public void addEntry (FreeTTSSpeaker s,
--				      int index,
--				      String text) {
-+	public void addEntry (FreeTTSSpeaker s, int index, String text) {
-+	    debugPrintln("SpeechThread.addEntry() called");
- 			QueueEntry e = new QueueEntry (s, index, text);
--			synchronized (SpeechQueue) {
--				SpeechQueue.add(e);
--				SpeechQueue.notifyAll();
-+	    synchronized (speechQueue) {
-+		speechQueue.add(e);
-+		speechQueue.notifyAll();
-+		debugPrintln("Added QueueEntry: " + text);
- 			}
- 		}
- 
- 		public synchronized void quit () {
-+	    System.out.println("SpeechThread.quit() called");
- 			removeAll ();
- 			done = true;
- 		}
- 
- 		public synchronized void removeAll () {
-+	    debugPrintln("SpeechThread.removeAll() called");
-+	    synchronized (speechQueue) {
-+		speechQueue.removeAllElements();
-+	    }
-+	    long cancelTime = 0L;
-+	    if (debug) {
-+		cancelTime = System.currentTimeMillis();
-+	    }
- 			current.s.v.getAudioPlayer().cancel();
--			synchronized (SpeechQueue) {
--				SpeechQueue.removeAllElements();
-+	    if (debug) {
-+		cancelTime = System.currentTimeMillis() - cancelTime;
-+		System.out.println("AudioPlayer.cancel() time: " + 
-+				   cancelTime + " ms");
- 			}
- 		}
- 	}
--- a/patches/gnome-utils-05-l10n-online-help.diff	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-diff -ruN gnome-utils-2.6.2/configure.in gnome-utils-2.6.2.new/configure.in
---- gnome-utils-2.6.2/configure.in	2004-08-20 14:46:31.414396000 +0900
-+++ gnome-utils-2.6.2.new/configure.in	2004-08-20 14:42:19.615715000 +0900
-@@ -318,6 +318,8 @@
- gsearchtool/Makefile
- gsearchtool/help/Makefile
- gsearchtool/help/C/Makefile
-+gsearchtool/help/de/Makefile
-+gsearchtool/help/pt_BR/Makefile
- gsearchtool/help/es/Makefile
- gsearchtool/help/fr/Makefile
- gsearchtool/help/it/Makefile
-@@ -330,7 +331,17 @@
- gdictsrc/Makefile
- gdictsrc/help/Makefile
- gdictsrc/help/C/Makefile
-+gdictsrc/help/de/Makefile
-+gdictsrc/help/es/Makefile
-+gdictsrc/help/fr/Makefile
-+gdictsrc/help/it/Makefile
-+gdictsrc/help/sv/Makefile
- gdictsrc/help/ja/Makefile
-+gdictsrc/help/ko/Makefile
-+gdictsrc/help/zh_CN/Makefile
-+gdictsrc/help/zh_HK/Makefile
-+gdictsrc/help/zh_TW/Makefile
-+gdictsrc/help/pt_BR/Makefile
- gfloppy/Makefile
- gfloppy/doc/Makefile
- gfloppy/doc/C/Makefile
-diff -ruN gnome-utils-2.6.2/gdictsrc/help/Makefile.am gnome-utils-2.6.2.new/gdictsrc/help/Makefile.am
---- gnome-utils-2.6.2/gdictsrc/help/Makefile.am	2003-02-23 11:31:16.000000000 +0900
-+++ gnome-utils-2.6.2.new/gdictsrc/help/Makefile.am	2004-08-20 14:42:55.341002000 +0900
-@@ -1,4 +1,4 @@
- # Process this file with automake to produce Makefile.in
- 
--SUBDIRS = C ja
-+SUBDIRS = C de es fr it sv ja ko zh_CN zh_TW zh_HK pt_BR
- 
---- ../gnome-utils-2.6.2.old/gsearchtool/help/Makefile.am	2004-10-06 13:59:30.433346144 +0100
-+++ ./gsearchtool/help/Makefile.am	2004-10-06 13:59:45.358077240 +0100
-@@ -1,2 +1,2 @@
--SUBDIRS = C ja es fr it sv ko zh_CN zh_HK zh_TW
-+SUBDIRS = C de ja es fr it sv ko zh_CN zh_HK zh_TW pt_BR
- 
--- a/patches/gnome-vfs-42-subfs.diff	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,135 +0,0 @@
-diff -Naur gnome-vfs-2.6.0.orig/libgnomevfs/gnome-vfs-unix-mounts.c gnome-vfs-2.6.0/libgnomevfs/gnome-vfs-unix-mounts.c
---- gnome-vfs-2.6.0.orig/libgnomevfs/gnome-vfs-unix-mounts.c	2004-11-22 11:13:03.000000000 +0000
-+++ gnome-vfs-2.6.0/libgnomevfs/gnome-vfs-unix-mounts.c	2004-11-23 09:23:15.000000000 +0000
-@@ -568,6 +568,9 @@
- 			mount_entry->is_user_mountable = TRUE;
- 		}
- 
-+		if (mntent->mnt_type && (!strcmp (mntent->mnt_type, "subfs"))) {
-+			mount_entry->is_user_mountable = FALSE;
-+		}
- 		
- 		*return_list = g_list_prepend (*return_list, mount_entry);
- 	}
-diff -Naur gnome-vfs-2.6.0.orig/libgnomevfs/gnome-vfs-volume-monitor-daemon.c gnome-vfs-2.6.0/libgnomevfs/gnome-vfs-volume-monitor-daemon.c
---- gnome-vfs-2.6.0.orig/libgnomevfs/gnome-vfs-volume-monitor-daemon.c	2004-11-22 11:13:03.000000000 +0000
-+++ gnome-vfs-2.6.0/libgnomevfs/gnome-vfs-volume-monitor-daemon.c	2004-11-30 12:12:23.288279672 +0000
-@@ -221,6 +221,30 @@
- 	    	return GNOME_VFS_DEVICE_TYPE_CDROM;
- 	} else if (g_str_has_prefix (device_path, "/dev/cd")) {
- 	    	return GNOME_VFS_DEVICE_TYPE_CDROM;
-+	} else if (g_str_has_prefix (mount_path, "/media/")) {		
-+		name = mount_path + strlen ("/media/");
-+
-+		if (g_str_has_prefix (name, "usb")) {
-+			return GNOME_VFS_DEVICE_TYPE_MEMORY_STICK;
-+		} else if (g_str_has_prefix (name, "cdrom") ||
-+			   g_str_has_prefix (name, "burn") || 
-+			   g_str_has_prefix (name, "dvd")) {
-+			return GNOME_VFS_DEVICE_TYPE_CDROM;
-+		} else if (g_str_has_prefix (name, "floppy")) {
-+			return GNOME_VFS_DEVICE_TYPE_FLOPPY;
-+		} else if (g_str_has_prefix (name, "zip")) {
-+			return GNOME_VFS_DEVICE_TYPE_ZIP;
-+		} else if (g_str_has_prefix (name, "jaz")) {
-+			return GNOME_VFS_DEVICE_TYPE_JAZ;
-+		} else if (g_str_has_prefix (name, "camera")) {
-+			return GNOME_VFS_DEVICE_TYPE_CAMERA;
-+		} else if (g_str_has_prefix (name, "memstick") ||
-+			   g_str_has_prefix (name, "ram")) {
-+			return GNOME_VFS_DEVICE_TYPE_MEMORY_STICK;
-+		} else if (g_str_has_prefix (name, "ipod")) {
-+			return GNOME_VFS_DEVICE_TYPE_MUSIC_PLAYER;
-+		} 
-+
- 	} else if (g_str_has_prefix (mount_path, "/mnt/")) {		
- 		name = mount_path + strlen ("/mnt/");
- 		
-diff -Naur gnome-vfs-2.6.0.orig/libgnomevfs/gnome-vfs-volume-ops.c gnome-vfs-2.6.0/libgnomevfs/gnome-vfs-volume-ops.c
---- gnome-vfs-2.6.0.orig/libgnomevfs/gnome-vfs-volume-ops.c	2004-11-22 11:13:03.000000000 +0000
-+++ gnome-vfs-2.6.0/libgnomevfs/gnome-vfs-volume-ops.c	2004-11-29 12:42:30.141392736 +0000
-@@ -25,7 +25,8 @@
- 
- #include <string.h>
- #include <stdlib.h>
--#include <pthread.h>
-+#include <pthread.h>    
-+#include <pwd.h>
- #include <libbonobo.h>
- #include <gconf/gconf-client.h>
- #include "gnome-vfs-i18n.h"
-@@ -207,6 +208,31 @@
- 	return FALSE;
- }
- 
-+static void
-+setup_child_eject (char *mount_point)
-+{
-+	GnomeVFSVolumeMonitor *monitor;
-+	GnomeVFSVolume        *volume;
-+	gchar                 *fstype;
-+
-+	monitor = gnome_vfs_get_volume_monitor();
-+	volume  = gnome_vfs_volume_monitor_get_volume_for_path (monitor, mount_point);
-+	fstype  = gnome_vfs_volume_get_filesystem_type(volume);
-+
-+	/* Root should not unmount subfs mounts!!
-+	 */
-+	if (fstype && !strcmp(fstype, "subfs") && !getuid()) {
-+		struct passwd *nb;
-+
-+		nb = getpwnam("nobody");
-+		if (nb) {
-+			setuid(nb->pw_uid);
-+		}
-+	}
-+
-+	if (fstype) g_free(fstype);
-+}
-+
- static void *
- mount_unmount_thread (void *arg)
- {
-@@ -221,7 +247,7 @@
- 
- 	info = arg;
- 
--	if (info != NULL) {
-+	if (info && !g_str_has_prefix(info->mount_point, "/media/")) {
- 		error = NULL;
- 		if (g_spawn_sync (NULL,
- 				   info->argv,
-@@ -258,7 +284,7 @@
- 		}
- 	}
- 
--	if (info->should_eject) {
-+	if (info->should_eject) {		
- #ifdef __FreeBSD__
- 	    	char *argv[5] = {
- 		    	"cdcontrol",
-@@ -277,14 +303,16 @@
- 		argv[1] = info->device_path?info->device_path:info->mount_point;
- #endif
- 
--		if (g_spawn_sync (NULL,
--				  argv,
--				  NULL,
--				  G_SPAWN_SEARCH_PATH,
--				  NULL, NULL,
--				  NULL, &standard_error,
--				  &exit_status,
--				  &error)) {
-+		if (g_spawn_sync (NULL,                       /* work dir */
-+				  argv,                       /* argv */
-+				  NULL,                       /* env */
-+				  G_SPAWN_SEARCH_PATH,        /* flags */
-+				  setup_child_eject,          /* child setup */
-+				  info->mount_point,          /* user data */
-+				  NULL,                       /* output */
-+				  &standard_error,            /* error */
-+				  &exit_status,               /* exit status */
-+				  &error)) {                  /* gerror */
- 			if (exit_status != 0 &&
- 			    info->succeeded) {
- 				info->succeeded = FALSE;
--- a/patches/gnome-vfs-45-smb-browse-fixes.diff	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2397 +0,0 @@
---- gnome-vfs-2.6.0/libgnomevfs/gnome-vfs-handle.h	2005-04-07 21:10:58.522503808 -0700
-+++ gnome-vfs-2.6.0-new/libgnomevfs/gnome-vfs-handle.h	2005-04-07 21:10:34.265191480 -0700
-@@ -47,6 +47,7 @@ typedef struct GnomeVFSHandle GnomeVFSHa
-  * @GNOME_VFS_OPEN_READ:
-  * @GNOME_VFS_OPEN_WRITE:
-  * @GNOME_VFS_OPEN_RANDOM:
-+ * @GNOME_VFS_OPEN_TRUNCATE:
-  *
-  * Mode in which files are opened. If GNOME_VFS_OPEN_RANDOM is not used, the
-  * file will be have to be accessed sequentially.
-@@ -55,7 +56,8 @@ typedef enum {
-         GNOME_VFS_OPEN_NONE = 0,
-         GNOME_VFS_OPEN_READ = 1 << 0,
-         GNOME_VFS_OPEN_WRITE = 1 << 1,
--        GNOME_VFS_OPEN_RANDOM = 1 << 2
-+        GNOME_VFS_OPEN_RANDOM = 1 << 2,
-+        GNOME_VFS_OPEN_TRUNCATE = 1 <<3
- } GnomeVFSOpenMode;
- 
- /**
---- gnome-vfs-2.6.0/modules/smb-method.c	2005-04-07 21:10:01.176221768 -0700
-+++ gnome-vfs-2.6.0-new/modules/smb-method.c	2005-04-07 21:09:53.989314344 -0700
-@@ -23,6 +23,7 @@
-  *
-  * Author: Bastien Nocera <[email protected]>
-  *         Alexander Larsson <[email protected]>
-+ * 	   Nate Nielsen <[email protected]>
-  */
- 
- #include <config.h>
-@@ -33,6 +34,9 @@
- #include <glib.h>
- #include <errno.h>
- #include <time.h>
-+#include <sys/types.h>
-+#include <sys/stat.h>
-+#include <unistd.h>
- 
- #include <libgnomevfs/gnome-vfs.h>
- #include <libgnomevfs/gnome-vfs-mime.h>
-@@ -70,14 +74,11 @@ typedef struct {
- } SmbServerCacheEntry;
- 
- typedef struct {
--	char *server_name; /* Server or workgroup */
--	char *share_name; /* NULL for just the server or a workgroup,
--			     NULL used as default for shares if there is no
--			     specific one for the share */
--	
- 	char *username;
- 	char *domain;
--} SmbDefaultUser;
-+        char *password;
-+        time_t stamp;
-+} SmbCachedUser;
- 
- static GMutex *smb_lock;
- 
-@@ -85,49 +86,70 @@ static SMBCCTX *smb_context = NULL;
- 
- static GHashTable *server_cache = NULL;
- 
-+static GHashTable *user_cache = NULL;
-+
- #define SMB_BLOCK_SIZE (32*1024)
- 
--/* Reap unused server connections after 30 minutes */
--#define SERVER_CACHE_REAP_TIMEOUT (30*60)
--static guint server_cache_reap_timeout = 0;
-+/* Reap unused server connections and user cache after 30 minutes */
-+#define CACHE_REAP_TIMEOUT (30 * 60)
-+static guint cache_reap_timeout = 0;
-+
-+/* The magic "default workgroup" hostname */
-+#define DEFAULT_WORKGROUP_NAME "X-GNOME-DEFAULT-WORKGROUP"
- 
- 
- /* 5 minutes before we re-read the workgroup cache again */
- #define WORKGROUP_CACHE_TIMEOUT (5*60)
- 
- static GHashTable *workgroups = NULL;
--static int workgroups_errno;
- static time_t workgroups_timestamp = 0;
- 
--static GHashTable *default_user_hashtable = NULL;
-+/* Authentication ----------------------------------------------------------- */
- 
--static GnomeVFSURI *current_uri = NULL;
-+#define SMB_AUTH_STATE_PREFILLED	0x00000010 	/* Have asked gnome-auth for prefilled auth */
-+#define SMB_AUTH_STATE_PROMPTED		0x00000020 	/* Have asked gnome-auth for to prompt user */
- 
--/* Auth stuff: */
-+/* TODO: Move this to the top of the file */
-+typedef struct _SmbAuthContext {
-+	
-+	GnomeVFSURI *uri;		/* Uri being worked with. Does not own this URI */
-+	GnomeVFSResult res;		/* Current error code */
-+	
-+	/* Internal state */
-+	guint passes;			/* Number of passes through authentication code */
-+	guint state;			/* Various flags (above) */
-+	
-+	/* For saving passwords into gnome-keyring */
-+	gboolean save_auth;		/* Whether to save the authentication or not */
-+	gchar *keyring;			/* The keyring to save passwords in */
-+	
-+	/* Used in chat between perform_authentication and auth_callback */
-+	gboolean auth_called;		/* Set by auth_callback */
-+	gchar *for_server;		/* Set by auth_callback */
-+	gchar *for_share;		/* Set by auth_callback */
-+	gchar *use_user;		/* Set by perform_authentication */
-+	gchar *use_domain;		/* Set by perform_authentication */
-+	gchar *use_password;		/* Set by perform_authentication */
-+	gboolean uri_has_user;          /* Set by initial_authentication, if URI has username */
-+	gboolean uri_has_domain;        /* Set by initial_authentication, if URI has domain name */
-+	
-+} SmbAuthContext;
-+
-+static void init_authentication (SmbAuthContext *actx, GnomeVFSURI *uri);
-+static int  perform_authentication (SmbAuthContext *actx);
- 
--static gboolean done_pre_auth;
--static gboolean done_auth;
--static gboolean auth_cancelled;
--static gboolean auth_save_password;
--static char *auth_keyring;
--static char *last_pwd;
-+static SmbAuthContext *current_auth_context = NULL;
- 
- /* Used to detect failed logins */
- static gboolean cache_access_failed = FALSE;
- 
--static void init_auth (GnomeVFSURI *uri);
--
--static gboolean invoke_save_auth (const char *server,
--				  const char *share,
--				  const char *username,
--				  const char *domain,
--				  const char *password,
--				  const char *keyring);
--
-+static void auth_callback (const char *server_name, const char *share_name,
-+		     	   char *domain, int domainmaxlen,
-+		     	   char *username, int unmaxlen,
-+		     	   char *password, int pwmaxlen);
-+		     	   
- #if 0
- #define DEBUG_SMB_ENABLE
--#endif
--#if 0
- #define DEBUG_SMB_LOCKS
- #endif
- 
-@@ -145,10 +167,22 @@ static gboolean invoke_save_auth (const 
- #define UNLOCK_SMB() 	g_mutex_unlock (smb_lock)
- #endif
- 
--static void auth_fn (const char *server_name, const char *share_name,
--		     char *domain, int domainmaxlen,
--		     char *username, int unmaxlen,
--		     char *password, int pwmaxlen);
-+static gchar*
-+string_dup_nzero (const gchar *s)
-+{
-+	if (!s || !s[0])
-+		return NULL;
-+	return g_strdup (s);
-+}
-+
-+static gchar*
-+string_ndup_nzero (const gchar *s, const guint n)
-+{
-+	if(!s || !s[0] || !n)
-+		return NULL;
-+	return g_strndup (s, n);
-+}
-+	     	   
- static gboolean
- string_compare (const char *a, const char *b)
- {
-@@ -159,6 +193,15 @@ string_compare (const char *a, const cha
- 	}
- }
- 
-+static gchar*
-+string_realloc (gchar *dest, const gchar *src)
-+{
-+        if (string_compare (src, dest))
-+                return dest;
-+        g_free (dest);
-+        return string_dup_nzero (src);
-+}
-+
- static gboolean
- server_equal (gconstpointer  v1,
- 	      gconstpointer  v2)
-@@ -211,46 +254,13 @@ server_free (SmbServerCacheEntry *entry)
- 	g_free (entry);
- }
- 
--static gboolean
--default_user_equal (gconstpointer  v1,
--		    gconstpointer  v2)
--{
--	const SmbDefaultUser *e1, *e2;
--
--	e1 = v1;
--	e2 = v2;
--	
--	return (string_compare (e1->server_name, e2->server_name) &&
--		string_compare (e1->share_name, e2->share_name));
--}
--
--static guint
--default_user_hash (gconstpointer  v)
--{
--	const SmbDefaultUser *e;
--	guint hash;
--
--	e = v;
--	hash = 0;
--	if (e->server_name) {
--		hash = g_str_hash (e->server_name);
--	}
--	if (e->share_name) {
--		hash = hash ^ g_str_hash (e->share_name);
--	}
--	return hash;
--}
--
- static void
--default_user_free (SmbDefaultUser *entry)
-+user_free (SmbCachedUser *user)
- {
--	g_free (entry->server_name);
--	g_free (entry->share_name);
--	
--	g_free (entry->username);
--	g_free (entry->domain);
--
--	g_free (entry);
-+        g_free (user->username);
-+        g_free (user->domain);
-+        g_free (user->password);
-+        g_free (user);
- }
- 
- static void
-@@ -266,19 +276,34 @@ add_old_servers (gpointer key,
- 
- 	entry = key;
- 	array = user_data;
--	if (now > entry->last_time + SERVER_CACHE_REAP_TIMEOUT ||
--	    now < entry->last_time) {
-+	if (now > entry->last_time + CACHE_REAP_TIMEOUT || now < entry->last_time)
- 		g_ptr_array_add (array, entry->server);
--	}
- }
- 
-+static gboolean
-+reap_user (gpointer key, gpointer value, gpointer user_data)
-+{
-+        SmbCachedUser *user = (SmbCachedUser*)value;
-+        time_t now =  time (NULL);
-+
-+        if (now > user->stamp + CACHE_REAP_TIMEOUT || now < user->stamp) 
-+                return TRUE;
-+        return FALSE;              
-+}
- 
- static gboolean
--server_cache_reap_cb ()
-+cache_reap_cb (void)
- {
--     	int size;
- 	GPtrArray *servers;
-+        gboolean ret;
-+        int size;
- 	int i;
-+        
-+        /* Don't deadlock here, this is callback and we're not completely
-+         * sure when we'll be called */
-+        if (!g_mutex_trylock (smb_lock))
-+                return TRUE;
-+        DEBUG_SMB(("LOCK %s\n", G_GNUC_PRETTY_FUNCTION));
- 
- 	size = g_hash_table_size (server_cache);
- 	servers = g_ptr_array_sized_new (size);
-@@ -292,21 +317,26 @@ server_cache_reap_cb ()
- 	}
- 
- 	g_ptr_array_free (servers, TRUE);
-+     
-+        /* Cleanup users */
-+        g_hash_table_foreach_remove (user_cache, reap_user, NULL);
-+
-+        ret = !(g_hash_table_size (server_cache) == 0 && 
-+                g_hash_table_size (user_cache) == 0);
-+        if (!ret)
-+                cache_reap_timeout = 0;
- 
--	if (g_hash_table_size (server_cache) == 0) {
--		server_cache_reap_timeout = 0;
--		return FALSE;
--	} else {
--		return TRUE;
--	}
-+        UNLOCK_SMB();
-+
-+        return ret;        
- }
- 
- static void
--schedule_server_cache_reap (void)
-+schedule_cache_reap (void)
- {
--	if (server_cache_reap_timeout == 0) {
--		server_cache_reap_timeout = g_timeout_add (SERVER_CACHE_REAP_TIMEOUT*1000,
--							   server_cache_reap_cb, NULL);
-+	if (cache_reap_timeout == 0) {
-+		cache_reap_timeout = g_timeout_add (CACHE_REAP_TIMEOUT * 1000,
-+						    (GSourceFunc)cache_reap_cb, NULL);
- 	}
- }
- 
-@@ -316,66 +346,37 @@ add_cached_server (SMBCCTX *context, SMB
- 		   const char *domain, const char *username)
- {
- 	SmbServerCacheEntry *entry = NULL;
--	GnomeVFSToplevelURI *toplevel;
--	SmbDefaultUser *default_user;
--	const char *ask_share_name;
- 
- 	DEBUG_SMB(("add_cached_server: server: %s, share: %s, domain: %s, user: %s\n",
- 		   server_name, share_name, domain, username));
- 	
--	schedule_server_cache_reap ();
-+	schedule_cache_reap ();
- 	
- 	entry = g_new0 (SmbServerCacheEntry, 1);
- 	
- 	entry->server = new;
- 	
--	entry->server_name = g_strdup (server_name);
--	entry->share_name = g_strdup (share_name);
--	entry->domain = g_strdup (domain);
--	entry->username = g_strdup (username);
-+	entry->server_name = string_dup_nzero (server_name);
-+	entry->share_name = string_dup_nzero (share_name);
-+	entry->domain = string_dup_nzero (domain);
-+	entry->username = string_dup_nzero (username);
- 	entry->last_time = time (NULL);
- 
- 	g_hash_table_insert (server_cache, entry, entry);
- 
- 	cache_access_failed = FALSE;
--
--	if (current_uri != NULL) {
--		toplevel = (GnomeVFSToplevelURI *)current_uri;
--
--		if (toplevel->user_name == NULL ||
--		    toplevel->user_name[0] == 0) {
--			default_user = g_new0 (SmbDefaultUser, 1);
--			default_user->server_name = g_strdup (server_name);
--			default_user->share_name = g_strdup (share_name);
--			default_user->username = g_strdup (username);
--			default_user->domain = g_strdup (domain);
--			g_hash_table_insert (default_user_hashtable, default_user, default_user);
--		}
--	}
--
--	if (auth_save_password) {
--		if (strcmp (share_name,"IPC$") == 0) {
--			ask_share_name = NULL;
--		} else {
--			ask_share_name = share_name;
--		}
--		invoke_save_auth (server_name, ask_share_name,
--				  username, domain,
--				  last_pwd?last_pwd:"",
--				  auth_keyring);
--	}
--	
- 	return 0;
- }
- 
- static SMBCSRV *
--get_cached_server (SMBCCTX * context,
--		   const char *server_name, const char *share_name,
--		   const char *domain, const char *username)
-+find_cached_server (const char *server_name, const char *share_name,
-+		    const char *domain, const char *username)
- {
- 	SmbServerCacheEntry entry;
- 	SmbServerCacheEntry *res;
- 
-+	DEBUG_SMB(("find_cached_server: server: %s, share: %s, domain: %s, user: %s\n", server_name, share_name, domain, username));
-+
- 	entry.server_name = (char *)server_name;
- 	entry.share_name = (char *)share_name;
- 	entry.domain = (char *)domain;
-@@ -384,9 +385,24 @@ get_cached_server (SMBCCTX * context,
- 	res = g_hash_table_lookup (server_cache, &entry);
- 
- 	if (res != NULL) {
--		cache_access_failed = FALSE;
- 		res->last_time = time (NULL);
- 		return res->server;
-+	} 
-+	return NULL;
-+}
-+
-+static SMBCSRV *
-+get_cached_server (SMBCCTX * context,
-+		   const char *server_name, const char *share_name,
-+		   const char *domain, const char *username)
-+{
-+	SMBCSRV *srv;
-+	
-+	srv = find_cached_server (server_name, share_name, domain, username);
-+	if (srv != NULL) {
-+		DEBUG_SMB(("got cached server: server: %s, share: %s, domain: %s, user: %s\n", server_name, share_name, domain, username));
-+		cache_access_failed = FALSE;
-+		return srv;
- 	}
- 	cache_access_failed = TRUE;
- 	return NULL;
-@@ -398,20 +414,12 @@ remove_server  (gpointer key,
- 		gpointer user_data)
- {
- 	SmbServerCacheEntry *entry;
--	SmbDefaultUser default_user;
- 	SMBCSRV *server;
- 	
- 	entry = key;
- 	server = user_data;
- 
- 	if (entry->server == user_data) {
--		default_user.server_name = entry->server_name;
--		default_user.share_name = entry->share_name;
--		default_user.username = entry->username;
--		default_user.domain = entry->domain;
--		
--		g_hash_table_remove (default_user_hashtable, &default_user);
--		
- 		entry->server = NULL;
- 		return TRUE;
- 	} 
-@@ -482,7 +490,8 @@ remove_all (gpointer  key,
- static void
- update_workgroup_cache (void)
- {
--	SMBCFILE *dir;
-+	SmbAuthContext actx;
-+	SMBCFILE *dir = NULL;
- 	time_t t;
- 	struct smbc_dirent *dirent;
- 	
-@@ -501,12 +510,20 @@ update_workgroup_cache (void)
- 	g_hash_table_foreach_remove (workgroups, remove_all, NULL);
- 	
- 	LOCK_SMB();
--	workgroups_errno = 0;
--	init_auth (NULL);
--	dir = smb_context->opendir (smb_context, "smb://");
-+	
-+	init_authentication (&actx, NULL);
-+	
-+	/* Important: perform_authentication leaves and re-enters the lock! */
-+	while (perform_authentication (&actx) > 0) {
-+		dir = smb_context->opendir (smb_context, "smb://");
-+		actx.res = (dir != NULL) ? GNOME_VFS_OK : gnome_vfs_result_from_errno ();
-+	}
-+
- 	if (dir != NULL) {
- 		while ((dirent = smb_context->readdir (smb_context, dir)) != NULL) {
--			if (dirent->smbc_type == SMBC_WORKGROUP) {
-+			if (dirent->smbc_type == SMBC_WORKGROUP &&
-+			    dirent->name != NULL &&
-+			    strlen (dirent->name) > 0) {
- 				g_hash_table_insert (workgroups,
- 						     g_ascii_strdown (dirent->name, -1),
- 						     GINT_TO_POINTER (1));
-@@ -514,9 +531,8 @@ update_workgroup_cache (void)
- 				g_warning ("non-workgroup at smb toplevel\n");
- 			}
- 		}
-+
- 		smb_context->closedir (smb_context, dir);
--	} else {
--		workgroups_errno = errno;
- 	}
- 	UNLOCK_SMB();
- }
-@@ -546,7 +562,9 @@ smb_uri_type (GnomeVFSURI *uri)
- 	    strcmp (uri->text, "/") == 0) {
- 		/* smb://foo/ */
- 		update_workgroup_cache ();
--		if (g_hash_table_lookup (workgroups, toplevel->host_name)) {
-+		if (!g_ascii_strcasecmp(toplevel->host_name,
-+					DEFAULT_WORKGROUP_NAME) ||
-+		    g_hash_table_lookup (workgroups, toplevel->host_name)) {
- 			return SMB_URI_WORKGROUP;
- 		} else {
- 			return SMB_URI_SERVER;
-@@ -556,7 +574,9 @@ smb_uri_type (GnomeVFSURI *uri)
- 	if (first_slash == NULL) {
- 		/* smb://foo/bar */
- 		update_workgroup_cache ();
--		if (g_hash_table_lookup (workgroups, toplevel->host_name)) {
-+		if (!g_ascii_strcasecmp(toplevel->host_name,
-+					DEFAULT_WORKGROUP_NAME) ||
-+		    g_hash_table_lookup (workgroups, toplevel->host_name)) {
- 			return SMB_URI_SERVER_LINK;
- 		} else {
- 			return SMB_URI_SHARE;
-@@ -583,27 +603,21 @@ static gboolean
- try_init (void)
- {
- 	char *path;
-+	struct stat statbuf;
- 
- 	LOCK_SMB();
- 
--	/* TODO: Why is this needed? */
--	/* Create an empty ~/.smb/smb.conf */
--	path = g_build_filename (G_DIR_SEPARATOR_S, g_get_home_dir (),
--			".smb", NULL);
--	if (g_file_test (path, G_FILE_TEST_IS_DIR) == FALSE) {
--		mkdir (path, 0700);
--	} else {
--		chmod (path, 0700);
--	}
--	g_free (path);
--
-+	/* We used to create an empty ~/.smb/smb.conf to get
-+	 * default settings, but this breaks a lot of smb.conf
-+	 * configurations, so we remove this again. If you really
-+	 * need an empty smb.conf, put a newline in it */
- 	path = g_build_filename (G_DIR_SEPARATOR_S, g_get_home_dir (),
- 			".smb", "smb.conf", NULL);
--	if (g_file_test (path, G_FILE_TEST_IS_REGULAR) == FALSE) {
--		int fd;
--		fd = creat (path, 0600);
--		if (fd > 0) {
--			close (fd);
-+
-+	if (stat (path, &statbuf) == 0) {
-+		if (S_ISREG (statbuf.st_mode) &&
-+		    statbuf.st_size == 0) {
-+			unlink (path);
- 		}
- 	}
- 	g_free (path);
-@@ -611,7 +625,7 @@ try_init (void)
- 	smb_context = smbc_new_context ();
- 	if (smb_context != NULL) {
- 		smb_context->debug = 0;
--		smb_context->callbacks.auth_fn = auth_fn;
-+		smb_context->callbacks.auth_fn 		    = auth_callback;
- 		smb_context->callbacks.add_cached_srv_fn    = add_cached_server;
- 		smb_context->callbacks.get_cached_srv_fn    = get_cached_server;
- 		smb_context->callbacks.remove_cached_srv_fn = remove_cached_server;
-@@ -621,19 +635,23 @@ try_init (void)
- 			smbc_free_context (smb_context, FALSE);
- 			smb_context = NULL;
- 		}
-+
-+#if defined(HAVE_SAMBA_FLAGS) 
-+#if defined(SMB_CTX_FLAG_USE_KERBEROS) && defined(SMB_CTX_FLAG_FALLBACK_AFTER_KERBEROS)
-+		smb_context->flags |= SMB_CTX_FLAG_USE_KERBEROS | SMB_CTX_FLAG_FALLBACK_AFTER_KERBEROS;
-+#endif
-+#if defined(SMBCCTX_FLAG_NO_AUTO_ANONYMOUS_LOGON)
-+		smb_context->flags |= SMBCCTX_FLAG_NO_AUTO_ANONYMOUS_LOGON;
-+#endif
-+#endif		
- 	}
- 
--	server_cache = g_hash_table_new_full (server_hash,
--					      server_equal,
--					      (GDestroyNotify)server_free,
--					      NULL);
--	workgroups = g_hash_table_new_full (g_str_hash,
--					    g_str_equal,
-+	server_cache = g_hash_table_new_full (server_hash, server_equal,
-+					      (GDestroyNotify)server_free, NULL);
-+	workgroups = g_hash_table_new_full (g_str_hash, g_str_equal,
- 					    g_free, NULL);
--	
--	default_user_hashtable = g_hash_table_new_full (default_user_hash,
--							default_user_equal,
--							(GDestroyNotify)default_user_free, NULL);
-+	user_cache = g_hash_table_new_full (g_str_hash, g_str_equal,
-+                                            g_free, (GDestroyNotify)user_free);
- 	
- 	UNLOCK_SMB();
- 
-@@ -645,53 +663,220 @@ try_init (void)
- 	return TRUE;
- }
- 
-+
-+/* Authentication ----------------------------------------------------------- */
-+
-+static char*
-+get_auth_display_uri (SmbAuthContext *actx, gboolean machine)
-+{
-+        if (actx->uri != NULL && !machine)
-+                return gnome_vfs_uri_to_string (actx->uri, 0);
-+         else
-+                return g_strdup_printf ("smb://%s%s%s%s", 
-+                                        actx->for_server ? actx->for_server : "", 
-+                                        actx->for_server ? "/" : "",
-+                                        actx->for_share && !machine ? actx->for_share : "",
-+                                        actx->for_share && !machine ? "/" : "");
-+}
-+
-+static void
-+update_user_cache (SmbAuthContext *actx, gboolean with_share)
-+{
-+        SmbCachedUser *user;
-+        gchar *key;
-+        
-+        g_return_if_fail (actx->for_server != NULL);
-+        
-+        key = g_strdup_printf ("%s/%s", actx->for_server, with_share ? actx->for_share : "");
-+        user = (SmbCachedUser*)g_hash_table_lookup (user_cache, key);
-+        
-+        DEBUG_SMB(("[auth] Saved in cache: %s = %s:%s@%s\n", key, actx->use_user, actx->use_domain, actx->use_password));
-+        
-+        if (!user) {
-+                user = g_new0 (SmbCachedUser, 1);
-+                g_hash_table_replace (user_cache, key, user);
-+                schedule_cache_reap ();
-+        } else {
-+                g_free (key);
-+        }
-+
-+        user->domain = string_realloc (user->domain, actx->use_domain);
-+        user->username = string_realloc (user->username, actx->use_user);
-+        user->password = string_realloc (user->password, actx->use_password);
-+        user->stamp = time (NULL);
-+}
-+
-+static gboolean
-+lookup_user_cache (SmbAuthContext *actx, gboolean with_share, gboolean with_user)
-+{
-+        SmbCachedUser *user;
-+        gchar *key;
-+       
-+        g_return_val_if_fail (actx->for_server != NULL, FALSE);
-+       
-+        key = g_strdup_printf ("%s/%s", actx->for_server, with_share ? actx->for_share : "");
-+        user = (SmbCachedUser*)g_hash_table_lookup (user_cache, key);
-+        g_free (key);
-+       
-+        /* If the caller specified we already have a user name and domain name, double check that... */
-+        if (with_user && user &&
-+            (!string_compare (user->username, actx->use_user) &&
-+             !string_compare (user->domain, actx->use_domain)))
-+                return FALSE;
-+                        
-+        if (user) {
-+                actx->use_user = string_realloc (actx->use_user, user->username);
-+                actx->use_domain = string_realloc (actx->use_domain, user->domain);
-+                actx->use_password = string_realloc (actx->use_password, user->password);
-+                DEBUG_SMB(("[auth] Looked up in cache: %s:%s@%s\n", actx->use_user, actx->use_domain, actx->use_password));
-+                return TRUE;
-+        }
-+        
-+        return FALSE;
-+}      
-+
- static gboolean
--invoke_fill_auth (const char *server,
--		 const char *share,
--		 const char *username,
--		 const char *domain,
--		 char **username_out,
--		 char **domain_out,
--		 char **password_out)
-+initial_authentication (SmbAuthContext *actx)
- {
-+	/* IMPORTANT: We are IN the lock at this point */
-+	
-+	GnomeVFSToplevelURI *toplevel_uri;
-+	SmbServerCacheEntry server_lookup;
-+	SmbServerCacheEntry *server;
-+        gboolean found_user = FALSE;
-+        gboolean preset_user = FALSE;
-+	char *tmp;
-+
-+	DEBUG_SMB(("[auth] Initial authentication lookups\n"));
-+
-+	toplevel_uri =	(GnomeVFSToplevelURI*)actx->uri;
-+	
-+	/* Try parsing a user and domain out of the URI */
-+	if (toplevel_uri && toplevel_uri->user_name != NULL && 
-+  	    toplevel_uri->user_name[0] != 0) {
-+
-+		tmp = strchr (toplevel_uri->user_name, ';');
-+		if (tmp != NULL) {
-+			g_free (actx->use_domain);
-+			actx->use_domain = string_ndup_nzero (toplevel_uri->user_name,
-+					    	  	      tmp - toplevel_uri->user_name);
-+			g_free (actx->use_user);
-+			actx->use_user = string_dup_nzero (tmp + 1);
-+
-+			if (actx->use_domain != NULL && actx->use_domain[0] != 0) {
-+				actx->uri_has_domain = TRUE;
-+			}
-+			if (actx->use_user != NULL && actx->use_user[0] != 0) {
-+				actx->uri_has_user = TRUE;
-+			}
-+			DEBUG_SMB(("[auth] User from URI: %s@%s\n", actx->use_user, actx->use_domain));
-+		} else {
-+			g_free (actx->use_user);
-+			actx->use_user = string_dup_nzero (toplevel_uri->user_name);
-+			g_free (actx->use_domain);
-+			actx->use_domain = NULL;
-+
-+			if (actx->use_user != NULL && actx->use_user[0] != 0) {
-+				actx->uri_has_user = TRUE;
-+			}
-+			actx->uri_has_domain = FALSE;
-+			DEBUG_SMB(("[auth] User from URI: %s\n", actx->use_user));
-+		}
-+                preset_user = TRUE;
-+	} 
-+
-+        if (lookup_user_cache (actx, TRUE, preset_user) ||
-+            lookup_user_cache (actx, FALSE, preset_user))
-+                found_user = TRUE;
-+
-+        if (found_user || preset_user) {
-+        	/* Lookup the password in our internal cache */
-+        	server_lookup.server_name = (char*)actx->for_server;
-+        	server_lookup.share_name = (char*)actx->for_share;
-+        	server_lookup.username = (char*)actx->use_user;
-+        	server_lookup.domain = (char*)actx->use_domain;
-+        		
-+        	server = g_hash_table_lookup (server_cache, &server_lookup);
-+        	if (server != NULL) {
-+        		/* Server is in cache already, no need to get password */
-+        		g_free (actx->use_password);
-+        		actx->use_password = g_strdup ("");
-+        		DEBUG_SMB(("[auth] Using login info for '%s@%s' from our internal cache\n", actx->use_user, actx->use_domain));
-+                        found_user = TRUE;
-+        	}
-+        }
-+
-+	return found_user;
-+}
-+
-+static gboolean
-+prefill_authentication (SmbAuthContext *actx)
-+{
-+	/* IMPORTANT: We are NOT IN the lock at this point */
-+	
- 	GnomeVFSModuleCallbackFillAuthenticationIn in_args;
- 	GnomeVFSModuleCallbackFillAuthenticationOut out_args;
- 	gboolean invoked;
- 
--	if (username != NULL && username[0] == 0) {
--		username = NULL;
--	}
--	if (domain != NULL && domain[0] == 0) {
--		domain = NULL;
--	}
-+	g_return_val_if_fail (actx != NULL, FALSE);
-+	g_return_val_if_fail (actx->for_server != NULL, FALSE);	
- 
- 	memset (&in_args, 0, sizeof (in_args));
--	in_args.uri = gnome_vfs_uri_to_string (current_uri, 0);
-+	in_args.uri = get_auth_display_uri (actx, FALSE);
- 	in_args.protocol = "smb";
--	in_args.server = (char *)server;
--	in_args.object = (char *)share;
--	in_args.username = (char *)username;
--	in_args.domain = (char *)domain;
--	in_args.port = ((GnomeVFSToplevelURI *)current_uri)->host_port;
-+	in_args.server = (char*)actx->for_server;
-+	in_args.object = (char*)actx->for_share;
-+	in_args.username = (char*)actx->use_user;
-+	in_args.domain = (char*)actx->use_domain;
-+	in_args.port = actx->uri ? ((GnomeVFSToplevelURI*)actx->uri)->host_port : 0;
- 
- 	memset (&out_args, 0, sizeof (out_args));
- 
--	invoked = gnome_vfs_module_callback_invoke
--		(GNOME_VFS_MODULE_CALLBACK_FILL_AUTHENTICATION,
--		 &in_args, sizeof (in_args),
--		 &out_args, sizeof (out_args));
-+	DEBUG_SMB(("[auth] Trying to prefill credentials for: %s\n", in_args.uri));
- 
-+	invoked = gnome_vfs_module_callback_invoke
-+		              (GNOME_VFS_MODULE_CALLBACK_FILL_AUTHENTICATION,
-+		              &in_args, sizeof (in_args),
-+		              &out_args, sizeof (out_args));
-+
-+        g_free (in_args.uri);
-+               
-+        /* If that didn't work then try without the share name */
-+        if (!invoked || !out_args.valid) {
-+
-+                g_free (out_args.username);
-+                g_free (out_args.domain);
-+                g_free (out_args.password);
-+      
-+                memset (&in_args, 0, sizeof (in_args));
-+                in_args.uri = get_auth_display_uri (actx, TRUE);
-+                in_args.protocol = "smb";
-+                in_args.server = (char*)actx->for_server;
-+                in_args.object = (char*)NULL;
-+                in_args.username = (char*)actx->use_user;
-+                in_args.domain = (char*)actx->use_domain;
-+                in_args.port = actx->uri ? ((GnomeVFSToplevelURI*)actx->uri)->host_port : 0;
-+
-+                memset (&out_args, 0, sizeof (out_args));
-+
-+                DEBUG_SMB(("[auth] Trying to prefill server credentials for: %s\n", in_args.uri));
-+
-+                invoked = gnome_vfs_module_callback_invoke
-+                                        (GNOME_VFS_MODULE_CALLBACK_FILL_AUTHENTICATION,
-+                                        &in_args, sizeof (in_args),
-+                                        &out_args, sizeof (out_args));                               
-+        }
-+        
- 	if (invoked && out_args.valid) {
--		*username_out = g_strdup (out_args.username);
--		*domain_out = g_strdup (out_args.domain);
--		*password_out = g_strdup (out_args.password);
--	} else {
--		*username_out = NULL;
--		*domain_out = NULL;
--		*password_out = NULL;
--	}
--
--	g_free (in_args.uri);
-+		g_free (actx->use_user);
-+		actx->use_user = string_dup_nzero (out_args.username);
-+		g_free (actx->use_domain);
-+		actx->use_domain = string_dup_nzero (out_args.domain);
-+		g_free (actx->use_password);
-+		actx->use_password = g_strdup (out_args.password);
-+		DEBUG_SMB(("[auth] Prefilled credentials: %s@%s:%s\n", actx->use_user, actx->use_domain, actx->use_password));
-+	} 
-+	
- 	g_free (out_args.username);
- 	g_free (out_args.domain);
- 	g_free (out_args.password);
-@@ -700,68 +885,70 @@ invoke_fill_auth (const char *server,
- }
- 
- static gboolean
--invoke_full_auth (const char *server,
--		  const char *share,
--		  const char *username,
--		  const char *domain,
--		  gboolean *cancel_auth_out,
--		  char **username_out,
--		  char **domain_out,
--		  char **password_out,
--		  gboolean *save_password_out,
--		  char **keyring_out)
-+prompt_authentication (SmbAuthContext *actx)
- {
-+	/* IMPORTANT: We are NOT in the lock at this point */
-+
- 	GnomeVFSModuleCallbackFullAuthenticationIn in_args;
- 	GnomeVFSModuleCallbackFullAuthenticationOut out_args;
--	gboolean invoked;
-+	gboolean invoked, cancelled = FALSE;
- 	
--	if (username != NULL && username[0] == 0) {
--		username = NULL;
--	}
--	if (domain != NULL && domain[0] == 0) {
--		domain = NULL;
--	}
-+	g_return_val_if_fail (actx != NULL, FALSE);
-+	g_return_val_if_fail (actx->for_server != NULL, FALSE);
- 	
- 	memset (&in_args, 0, sizeof (in_args));
--	in_args.uri = gnome_vfs_uri_to_string (current_uri, 0);
-+	
- 	in_args.flags = GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_PASSWORD | GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_SAVING_SUPPORTED;
--	if (done_auth) {
-+	if (actx->state & SMB_AUTH_STATE_PROMPTED)
- 		in_args.flags |= GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_PREVIOUS_ATTEMPT_FAILED;
-+	if (actx->uri && ((GnomeVFSToplevelURI*)actx->uri)->user_name == NULL) {
-+		in_args.flags |= GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_USERNAME |
-+	  			 GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_DOMAIN;
-+	} else if (!actx->uri_has_user) {
-+		in_args.flags |= GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_USERNAME;
-+	} else if (!actx->uri_has_domain) {
-+		in_args.flags |= GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_DOMAIN;
- 	}
--	if (((GnomeVFSToplevelURI *)current_uri)->user_name == NULL) {
--		in_args.flags |=
--			GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_USERNAME |
--			GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_DOMAIN;
--	}
-+
-+	in_args.uri = get_auth_display_uri (actx, FALSE);
- 	in_args.protocol = "smb";
--	in_args.server = (char *)server;
--	in_args.object = (char *)share;
--	in_args.username = (char *)username;
--	in_args.domain = (char *)domain;
--	in_args.port = ((GnomeVFSToplevelURI *)current_uri)->host_port;
-+	in_args.server = (char*)actx->for_server;
-+	in_args.object = (char*)actx->for_share;
-+	in_args.username = (char*)actx->use_user;
-+	in_args.domain = (char*)actx->use_domain;
-+	in_args.port = actx->uri ? ((GnomeVFSToplevelURI*)actx->uri)->host_port : 0;
- 
- 	/* TODO: set default_user & default_domain? */
- 	
- 	memset (&out_args, 0, sizeof (out_args));
- 
-+	DEBUG_SMB(("[auth] Prompting credentials for: %s\n", in_args.uri));
-+
- 	invoked = gnome_vfs_module_callback_invoke
- 		(GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION,
- 		 &in_args, sizeof (in_args),
- 		 &out_args, sizeof (out_args));
- 
- 	if (invoked) {
--		*cancel_auth_out = out_args.abort_auth;
--		*username_out = g_strdup (out_args.username);
--		*domain_out = g_strdup (out_args.domain);
--		*password_out = g_strdup (out_args.password);
--		*save_password_out = out_args.save_password;
--		*keyring_out = g_strdup (out_args.keyring);
--	} else {
--		*cancel_auth_out = FALSE;
--		*username_out = NULL;
--		*domain_out = NULL;
--		*password_out = NULL;
--	}
-+		cancelled = out_args.abort_auth;
-+                if (in_args.flags & GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_USERNAME) {
-+                     g_free (actx->use_user);
-+                       actx->use_user = string_dup_nzero (out_args.username);
-+                }
-+                if (in_args.flags & GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_DOMAIN) {
-+                      g_free (actx->use_domain);
-+                     actx->use_domain = string_dup_nzero (out_args.domain);
-+                }
-+		g_free (actx->use_password);
-+		actx->use_password = out_args.password ? g_strdup (out_args.password) : NULL;
-+		g_free (actx->keyring);
-+		actx->save_auth = out_args.save_password;
-+		actx->keyring = actx->save_auth && out_args.keyring ? g_strdup (out_args.keyring) : NULL;
-+		DEBUG_SMB(("[auth] Prompted credentials: %s@%s:%s\n", actx->use_user, actx->use_domain, actx->use_password));
-+	} 
-+	
-+	actx->state |= SMB_AUTH_STATE_PROMPTED;
-+
- 	g_free (out_args.username);
- 	g_free (out_args.domain);
- 	g_free (out_args.password);
-@@ -769,262 +956,313 @@ invoke_full_auth (const char *server,
- 
- 	g_free (in_args.uri);
- 
--	return invoked;
-+	return invoked && !cancelled;
- }
- 
--
--static gboolean
--invoke_save_auth (const char *server,
--		  const char *share,
--		  const char *username,
--		  const char *domain,
--		  const char *password,
--		  const char *keyring)
-+static void
-+save_authentication (SmbAuthContext *actx)
- {
- 	GnomeVFSModuleCallbackSaveAuthenticationIn in_args;
- 	GnomeVFSModuleCallbackSaveAuthenticationOut out_args;
- 	gboolean invoked;
- 
--	if (username != NULL && username[0] == 0) {
--		username = NULL;
--	}
--	if (domain != NULL && domain[0] == 0) {
--		domain = NULL;
--	}
--	if (keyring != NULL && keyring[0] == 0) {
--		keyring = NULL;
--	}
--	
-+        /* Add to the user cache both with and without shares */
-+        if (actx->for_server) {
-+                update_user_cache (actx, TRUE);
-+                update_user_cache (actx, FALSE);
-+        }
-+
-+        if (!actx->save_auth)
-+                return;
-+      
-+        /* Save with the domain name */
- 	memset (&in_args, 0, sizeof (in_args));
--	in_args.uri = gnome_vfs_uri_to_string (current_uri, 0);
--	in_args.keyring = (char *)keyring;
-+	in_args.uri = get_auth_display_uri (actx, TRUE);
-+	in_args.keyring = (char*)actx->keyring;
- 	in_args.protocol = "smb";
--	in_args.server = (char *)server;
--	in_args.object = (char *)share;
--	in_args.port = ((GnomeVFSToplevelURI *)current_uri)->host_port;
-+	in_args.server = (char*)actx->for_server;
-+	in_args.object = NULL;
-+	in_args.port = actx->uri ? ((GnomeVFSToplevelURI*)actx->uri)->host_port : 0;
- 	in_args.authtype = NULL;
--	in_args.username = (char *)username;
--	in_args.domain = (char *)domain;
--	in_args.password = (char *)password;
-+	in_args.username = (char*)actx->use_user;
-+	in_args.domain = (char*)actx->use_domain;
-+	in_args.password = (char*)actx->use_password;
- 
- 	memset (&out_args, 0, sizeof (out_args));
-+	DEBUG_SMB(("[auth] Saving credentials: %s = %s@%s:%s\n", in_args.uri, actx->use_user, actx->use_domain, actx->use_password));
-+	DEBUG_SMB(("[auth] Keyring: %s\n", actx->keyring));
- 
- 	invoked = gnome_vfs_module_callback_invoke
--		(GNOME_VFS_MODULE_CALLBACK_SAVE_AUTHENTICATION,
--		 &in_args, sizeof (in_args),
--		 &out_args, sizeof (out_args));
--
-+                                (GNOME_VFS_MODULE_CALLBACK_SAVE_AUTHENTICATION,
-+		                &in_args, sizeof (in_args),
-+		                &out_args, sizeof (out_args));
-+        
-+        g_free (in_args.uri);
-+              
-+        /* Save without the domain name */
-+        memset (&in_args, 0, sizeof (in_args));
-+        in_args.uri = get_auth_display_uri (actx, FALSE);
-+        in_args.keyring = (char*)actx->keyring;
-+        in_args.protocol = "smb";
-+        in_args.server = (char*)actx->for_server;
-+        in_args.object = (char*)actx->for_share;
-+        in_args.port = actx->uri ? ((GnomeVFSToplevelURI*)actx->uri)->host_port : 0;
-+        in_args.authtype = NULL;
-+        in_args.username = (char*)actx->use_user;
-+        in_args.domain = (char*)actx->use_domain;
-+        in_args.password = (char*)actx->use_password;
-+        
-+        memset (&out_args, 0, sizeof (out_args));
-+        DEBUG_SMB(("[auth] Saving credentials: %s = %s@%s:%s\n", in_args.uri, actx->use_user, actx->use_domain, actx->use_password));
-+        DEBUG_SMB(("[auth] Keyring: %s\n", actx->keyring));
-+
-+        invoked = gnome_vfs_module_callback_invoke
-+                                (GNOME_VFS_MODULE_CALLBACK_SAVE_AUTHENTICATION,
-+                                &in_args, sizeof (in_args),
-+                                &out_args, sizeof (out_args));
-+        
- 	g_free (in_args.uri);
--	return invoked;
- }
--
--
-+	
- static void
--init_auth (GnomeVFSURI *uri)
-+cleanup_authentication (SmbAuthContext *actx)
- {
--	done_pre_auth = FALSE;
--	done_auth = FALSE;
--	auth_cancelled = FALSE;
--	cache_access_failed = FALSE;
--	current_uri = uri;
--	auth_save_password = FALSE;
--	if (last_pwd != NULL) {
--		memset (last_pwd, 0, strlen (last_pwd));
--		g_free (last_pwd);
--		last_pwd = NULL;
--	}
--}
-+	/* IMPORTANT: We are IN the lock at this point */
-+	
-+	DEBUG_SMB(("[auth] Cleaning up Authentication\n"));
-+	g_return_if_fail (actx != NULL);
-+	
-+	g_free (actx->for_server);
-+	actx->for_server = NULL;
-+	
-+	g_free (actx->for_share);
-+	actx->for_share = NULL;
-+	
-+	g_free (actx->use_user);
-+	actx->use_user = NULL;
-+	
-+	g_free (actx->use_domain);
-+	actx->use_domain = NULL;
-+	
-+	g_free (actx->use_password);
-+	actx->use_password = NULL;
-+	
-+	g_free (actx->keyring);
-+	actx->keyring = NULL;
-+	
-+	g_return_if_fail (current_auth_context == actx);
-+	current_auth_context = NULL;
-+}
-+
-+/* 
-+ * This is the workhorse of all the authentication and caching work.
-+ * It is called in a loop, and must be called from within the lock:
-+ * 
-+ * static GnomeVFSResult
-+ * function_xxxx (GnomeVFSURI* uri)
-+ * {
-+ * 	SmbAuthContext actx;
-+ * 
-+ * 	LOCK_SMB ();
-+ * 	init_authentication (&actx);
-+ * 
-+ * 	while (perform_authentication (&actx) > 0) {
-+ * 		actx.res = gnome_vfs_result_from_errno_code (the_operation_here ());
-+ * 	}
-+ * 
-+ * 	UNLOCK_SMB();
-+ * 
-+ * 	return actx.err;
-+ * }
-+ * 
-+ * On different passes it performs seperate operations, such as checking
-+ * the cache, prompting the user for a password, saving valid passwords, 
-+ * cleaning up etc.... 
-+ * 
-+ * The loop must never be broken on it's own when perform_authentication
-+ * has not returned a 0 or negative return value.
-+ */
- 
--static gboolean
--auth_failed ()
-+static void 
-+init_authentication (SmbAuthContext *actx, GnomeVFSURI *uri)
- {
--	return cache_access_failed &&
--		(errno == EACCES || errno == EPERM) &&
--		!auth_cancelled;
-+	DEBUG_SMB(("[auth] Initializing Authentication\n"));
-+	memset (actx, 0, sizeof(*actx));
-+	actx->uri = uri;
-+	cache_access_failed = FALSE;
- }
- 
--static void
--auth_fn (const char *server_name, const char *share_name,
--	 char *domain_out, int domainmaxlen,
--	 char *username_out, int unmaxlen,
--	 char *password_out, int pwmaxlen)
--{
--	char *username, *domain, *tmp;
--	char *real_username, *real_domain, *real_password;
--	char *ask_share_name;
--	GnomeVFSToplevelURI *current_toplevel_uri;
--	gboolean cancel_auth;
--	gboolean got_default_user;
--
--	DEBUG_SMB (("auth_fn called: server: %s share: %s\n",
--		    server_name, share_name));
--
--	if (server_name == NULL || server_name[0] == 0) {
--		/* We never authenticate for the toplevel (enumerating workgroups) */
--		return;
-+static int
-+perform_authentication (SmbAuthContext *actx)
-+{
-+	gboolean cont, auth_failed = FALSE;
-+	int ret = -1;
-+	
-+	/* IMPORTANT: We are IN the lock at this point */
-+	DEBUG_SMB(("[auth] perform_authentication called.\n"));
-+	
-+	switch (actx->res) {
-+	case GNOME_VFS_OK:
-+		auth_failed = FALSE;
-+		break;
-+		
-+	/* Authentication errors are special */
-+	case GNOME_VFS_ERROR_ACCESS_DENIED:
-+	case GNOME_VFS_ERROR_NOT_PERMITTED:
-+	case GNOME_VFS_ERROR_LOGIN_FAILED:
-+		auth_failed = TRUE;
-+		break;
-+	
-+	/* Other errors mean we're done */
-+	default:
-+		DEBUG_SMB(("[auth] Non-authentication error. Leaving auth loop.\n"));
-+		cleanup_authentication (actx);
-+		return -1;
- 	}
-+	
-+	/* TODO: What about cache_access_failed? */
-+	
-+	actx->passes++;
- 
--	if (current_uri == NULL) {
--		/* TODO: What to do with this,
--		   comes from e.g. enumerating workgroups which needs login on
--		   master browser $IPC.
--		*/
--		DEBUG_SMB (("auth_fn - no current_uri, ignoring\n"));
--		return;
--	}
-+	/* First pass */
-+	if (actx->passes == 1) {
-+
-+		DEBUG_SMB(("[auth] First authentication pass\n"));
- 	
--	got_default_user = FALSE;
--	username = NULL;
--	domain = NULL;
--	current_toplevel_uri =	(GnomeVFSToplevelURI *)current_uri;
--	if (current_toplevel_uri->user_name != NULL &&
--	    current_toplevel_uri->user_name[0] != 0) {
--		tmp = strchr (current_toplevel_uri->user_name, ';');
--		if (tmp != NULL) {
--			domain = g_strndup (current_toplevel_uri->user_name,
--					    current_toplevel_uri->user_name - tmp);
--			username = g_strdup (tmp + 1);
--		} else {
--			username = g_strdup (current_toplevel_uri->user_name);
--			domain = NULL;
--		}
-+		/* Our auth context is the global one for the moment */
-+		g_return_val_if_fail (current_auth_context == NULL, GNOME_VFS_ERROR_INTERNAL);
-+		current_auth_context = actx;
-+			
-+		/* Continue with perform_authentication loop ... */
-+		ret = 1;
-+		
-+	/* Subsequent passes */
- 	} else {
--		SmbDefaultUser lookup;
--		SmbDefaultUser *default_user;
-+
-+		/* We should still be the global context at this point */
-+		g_return_val_if_fail (current_auth_context == actx, GNOME_VFS_ERROR_INTERNAL);
- 		
--		/* lookup default user/domain */
--		lookup.server_name = (char *)server_name;
--		lookup.share_name = (char *)share_name;
-+		/* A successful operation. Done! */
-+		if (!auth_failed) {
-+			
-+			DEBUG_SMB(("[auth] Operation successful\n"));
-+			save_authentication (actx);
-+			ret = 0;
-+	
-+		/* A failed authentication */
-+		} else if (actx->auth_called) {
-+			
-+			/* We need a server to perform any authentication */
-+			g_return_val_if_fail (actx->for_server != NULL, GNOME_VFS_ERROR_INTERNAL);
-+			
-+			/* We won't be the global context for now */
-+			current_auth_context = NULL;
-+			cont = FALSE;
-+			
-+			UNLOCK_SMB();
- 
--		default_user = g_hash_table_lookup (default_user_hashtable, &lookup);
--		if (default_user != NULL) {
--			got_default_user = TRUE;
--			username = g_strdup (default_user->username);
--			domain = g_strdup (default_user->domain);
-+				if (!(actx->state & SMB_AUTH_STATE_PREFILLED)) {
-+					actx->state |= SMB_AUTH_STATE_PREFILLED;
-+					cont = prefill_authentication (actx);
-+				}
-+				
-+				if (!cont)
-+					cont = prompt_authentication (actx);
-+				
-+			LOCK_SMB();
-+			
-+			/* Claim the global context back */
-+			g_return_val_if_fail (current_auth_context == NULL, GNOME_VFS_ERROR_INTERNAL);
-+			current_auth_context = actx;
-+			
-+			if (cont)
-+				ret = 1;
-+			else {
-+				DEBUG_SMB(("[auth] Authentication cancelled by user.\n"));
-+				actx->res = GNOME_VFS_ERROR_CANCELLED;
-+				ret = -1;
-+			}
-+					
-+		/* Weird, don't want authentication, but failed */
-+		} else {
-+			ret = -1;
- 		}
- 	}
- 
--	if (strcmp (share_name,"IPC$") == 0) {
--		/* Don't authenticate to IPC$ using dialog, but allow name+domain in uri */
--		if (username != NULL) {
--			strncpy (username_out, username, unmaxlen);
--		}
--		if (domain != NULL) {
--			strncpy (domain_out, domain, domainmaxlen);
--		}
--		strncpy (password_out, "", pwmaxlen);
--		g_free (username);
--		g_free (domain);
--		return;
--	}
-+	if (ret <= 0)
-+		cleanup_authentication (actx);
-+	return ret;
- 
--	if (got_default_user ||
--	    (username != NULL && username[0] != 0)) {
--		SmbServerCacheEntry server_lookup;
--		SmbServerCacheEntry *server;
--		
--		server_lookup.server_name = (char *)server_name;
--		server_lookup.share_name = (char *)share_name;
--		server_lookup.username = username;
--		server_lookup.domain = domain;
--		
--		server = g_hash_table_lookup (server_cache, &server_lookup);
--		if (server != NULL) {
--			strncpy (username_out, username, unmaxlen);
--			if (domain != NULL) {
--				strncpy (domain_out, domain, domainmaxlen);
--			} 
--			strncpy (password_out, "", pwmaxlen);
-+	/* IMPORTANT: We need to still be in the lock when returning from this func */
-+}
- 
--			/* Server is in cache already, no need to get password */
--			return ;
--		}
--	}
-+static void
-+auth_callback (const char *server_name, const char *share_name,
-+	       char *domain_out, int domainmaxlen,
-+	       char *username_out, int unmaxlen,
-+	       char *password_out, int pwmaxlen)
-+{
-+	/* IMPORTANT: We are IN the global lock */
-+	SmbAuthContext *actx;
-+	SMBCSRV *server;
- 	
--	if (strcmp (share_name,"IPC$") == 0) {
--		ask_share_name = NULL;
--	} else {
--		ask_share_name = (char *)share_name;
--	}
-+	DEBUG_SMB (("[auth] auth_callback called: server: %s share: %s\n",
-+		    server_name, share_name));
-+
-+	g_return_if_fail (current_auth_context != NULL);
-+	actx = current_auth_context;
- 	
--	if (!done_pre_auth) {
--		/* call pre-auth, if got filled, return to test auth */
--		done_pre_auth = TRUE;
--		if (invoke_fill_auth (server_name, ask_share_name,
--				      username, domain,
--				      &real_username,
--				      &real_domain,
--				      &real_password)) {
--			g_free (username);
--			g_free (domain);
--			
--			if (real_username != NULL) {
--				strncpy (username_out, real_username, unmaxlen);
--			}
--			if (real_domain != NULL) {
--				strncpy (domain_out, real_domain, domainmaxlen);
--			}
--			if (real_password != NULL) {
--				strncpy (password_out, real_password, pwmaxlen);
--			}
-+	/* We never authenticate for the toplevel (enumerating workgroups) */
-+	if (!server_name || !server_name[0])
-+		return;
- 
--			g_free (real_username);
--			g_free (real_domain);
--			g_free (real_password);
--
--			return;
--		}
-+	actx->auth_called = TRUE;	
-+		
-+	/* The authentication location */
-+	g_free (actx->for_server);
-+	actx->for_server = string_dup_nzero (server_name);
-+	g_free (actx->for_share);
-+	actx->for_share = !share_name || strcmp (share_name,"IPC$") == 0 
-+				? NULL : string_dup_nzero (share_name);
-+
-+	/* The first pass, try the cache, fill in anything we know */
-+	if (actx->passes == 1)
-+		initial_authentication (actx);
-+	
-+	/* If we have a valid user and password then go for it */
-+	if (actx->use_user && actx->use_password) {
-+		DEBUG_SMB(("[auth] Using credentials: %s@%s:%s\n", actx->use_user, actx->use_domain, actx->use_password));
-+		strncpy (username_out, actx->use_user, unmaxlen);
-+		strncpy (password_out, actx->use_password, pwmaxlen);
-+		if (actx->use_domain)
-+			strncpy (domain_out, actx->use_domain, domainmaxlen);
-+
-+	/* We have no credentials ... */			
-+	} else {
-+		DEBUG_SMB(("[auth] No credentials, returning null values\n"));
-+		strncpy (username_out, "", unmaxlen);
-+		strncpy (password_out, "", pwmaxlen);
- 	}
- 
--	g_free (auth_keyring);
--	auth_keyring = NULL;
--	if (invoke_full_auth (server_name, ask_share_name,
--			      username, domain,
--			      &cancel_auth,
--			      &real_username,
--			      &real_domain,
--			      &real_password,
--			      &auth_save_password,
--			      &auth_keyring)) {
--		if (cancel_auth) {
--			auth_cancelled = TRUE;
--			strncpy (username_out, "not", unmaxlen);
--			strncpy (password_out, "matching", unmaxlen);
--		} else {
--			/* Try this auth */
--			if (real_username != NULL) {
--				strncpy (username_out, real_username, unmaxlen);
--			}
--			if (real_domain != NULL) {
--				strncpy (domain_out, real_domain, domainmaxlen);
--			}
--			if (real_password != NULL) {
--				strncpy (password_out, real_password, pwmaxlen);
--			}
-+	/* Put in the default workgroup if none specified or found */
-+	if (domain_out[0] == 0 && smb_context->workgroup) { 
-+		strncpy (domain_out, smb_context->workgroup, domainmaxlen);
-+	}
- 
--			if (auth_save_password) {
--				last_pwd = g_strdup (real_password);
--			}
--			
--			g_free (real_username);
--			g_free (real_domain);
--			g_free (real_password);
--		}
--	} else {
--		if (done_auth) {
--			auth_cancelled = TRUE;
--			strncpy (username_out, "not", unmaxlen);
--			strncpy (password_out, "matching", unmaxlen);
-+	/* If authentication details are asked immediatly for the same
-+	 * server which is in cache, then the server may not be useful.
-+	 * So, remove the server entry from server cache.
-+	 */
-+	if ((actx->state & SMB_AUTH_STATE_PROMPTED) &&
-+	    actx->res != GNOME_VFS_OK) {
-+		server = find_cached_server (server_name, share_name, domain_out, username_out);
-+		if (server) {
-+			DEBUG_SMB (("[auth] auth_callback. Remove the wrong server entry from server_cache.\n"));
-+			g_hash_table_foreach_remove (server_cache, remove_server, server);
- 		}
--		/* else, no auth callback registered and first try, try anon */
- 	}
--	
--	done_auth = TRUE;
--
--	return;
- }
- 
--
- static char *
- get_workgroup_data (const char *display_name, const char *name)
- {
-@@ -1079,11 +1317,12 @@ do_open (GnomeVFSMethod *method,
- 	 GnomeVFSOpenMode mode,
- 	 GnomeVFSContext *context)
- {
-+	SmbAuthContext actx;
- 	FileHandle *handle = NULL;
- 	char *path, *name, *unescaped_name;
- 	int type;
- 	mode_t unix_mode;
--	SMBCFILE *file;
-+	SMBCFILE *file = NULL;
- 	
- 	DEBUG_SMB(("do_open() %s mode %d\n",
- 				gnome_vfs_uri_to_string (uri, 0), mode));
-@@ -1153,26 +1392,28 @@ do_open (GnomeVFSMethod *method,
- 			return GNOME_VFS_ERROR_INVALID_OPEN_MODE;
- 	}
- 
--	if (! (mode & GNOME_VFS_OPEN_RANDOM) && (mode & GNOME_VFS_OPEN_WRITE))
-+	if ((mode & GNOME_VFS_OPEN_TRUNCATE) ||
-+	    (!(mode & GNOME_VFS_OPEN_RANDOM) && (mode & GNOME_VFS_OPEN_WRITE)))
- 		unix_mode |= O_TRUNC;
- 	
- 	path = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_USER_NAME | GNOME_VFS_URI_HIDE_PASSWORD);
- 	
- 	LOCK_SMB();
--	init_auth (uri);
-- again:
--	file = smb_context->open (smb_context, path, unix_mode, 0666);
--	if (file == NULL && auth_failed ()) {
--		goto again;
-+	init_authentication (&actx, uri);
-+
-+	/* Important: perform_authentication leaves and re-enters the lock! */
-+	while (perform_authentication (&actx) > 0) {
-+		file = smb_context->open (smb_context, path, unix_mode, 0666);
-+		actx.res = (file != NULL) ? GNOME_VFS_OK : gnome_vfs_result_from_errno ();
- 	}
-+
- 	UNLOCK_SMB();
--	
--	if (file == NULL) {
--		g_free (path);
--		return gnome_vfs_result_from_errno ();
- 
--	}
- 	g_free (path);
-+	
-+	if (file == NULL)
-+		return actx.res;
-+	
- 	handle = g_new (FileHandle, 1);
- 	handle->is_data = FALSE;
- 	handle->file = file;
-@@ -1189,7 +1430,9 @@ do_close (GnomeVFSMethod *method,
- 
- {
- 	FileHandle *handle = (FileHandle *)method_handle;
-+	SmbAuthContext actx;
- 	GnomeVFSResult res;
-+	int r;
- 
- 	DEBUG_SMB(("do_close()\n"));
- 
-@@ -1199,15 +1442,19 @@ do_close (GnomeVFSMethod *method,
- 		g_free (handle->file_data);
- 	} else {
- 		LOCK_SMB();
--		init_auth (NULL);
--		if (smb_context->close (smb_context, handle->file) < 0) {
--			res = gnome_vfs_result_from_errno ();
-+		init_authentication (&actx, NULL);
-+
-+		/* Important: perform_authentication leaves and re-enters the lock! */
-+		while (perform_authentication (&actx) > 0) {
-+			r = smb_context->close (smb_context, handle->file);
-+			actx.res = (r >= 0) ? GNOME_VFS_OK : gnome_vfs_result_from_errno ();
- 		}
-+
-+		res = actx.res;		
- 		UNLOCK_SMB();
- 	}
- 
- 	g_free (handle);
--
- 	return res;
- }
- 
-@@ -1220,8 +1467,9 @@ do_read (GnomeVFSMethod *method,
- 	 GnomeVFSContext *context)
- {
- 	FileHandle *handle = (FileHandle *)method_handle;
--	GnomeVFSResult res;
--	ssize_t n;
-+	GnomeVFSResult res = GNOME_VFS_OK;;
-+	SmbAuthContext actx;
-+	ssize_t n = 0;
- 
- 	DEBUG_SMB(("do_read() %Lu bytes\n", num_bytes));
- 
-@@ -1234,24 +1482,22 @@ do_read (GnomeVFSMethod *method,
- 		}
- 	} else {
- 		LOCK_SMB();
--		init_auth (NULL);
--		n = smb_context->read (smb_context, handle->file, buffer, num_bytes);
-+		init_authentication (&actx, NULL);
-+		
-+		/* Important: perform_authentication leaves and re-enters the lock! */
-+		while (perform_authentication (&actx) > 0) {
-+			n = smb_context->read (smb_context, handle->file, buffer, num_bytes);
-+			actx.res = (n >= 0) ? GNOME_VFS_OK : gnome_vfs_result_from_errno ();
-+		}
-+		
-+		res = actx.res;
- 		UNLOCK_SMB();
- 	}
- 
--	/* Can only happen when reading from smb: */
--	if (n < 0) {
--		*bytes_read = 0;
--		res = gnome_vfs_result_from_errno ();
--	} else {
--		res = GNOME_VFS_OK;
--	}
--
--	*bytes_read = n;
-+	*bytes_read = (n < 0) ? 0 : n;
- 
--	if (n == 0) {
-+	if (n == 0) 
- 		return GNOME_VFS_ERROR_EOF;
--	}
- 
- 	handle->offset += n;
- 
-@@ -1268,30 +1514,28 @@ do_write (GnomeVFSMethod *method,
- 
- 
- {
--	GnomeVFSResult res;
- 	FileHandle *handle = (FileHandle *)method_handle;
--	ssize_t written;
-+	SmbAuthContext actx;
-+	ssize_t written = 0;
- 
- 	DEBUG_SMB (("do_write() %p\n", method_handle));
- 
--	if (handle->is_data) {
-+	if (handle->is_data)
- 		return GNOME_VFS_ERROR_READ_ONLY;
--	}
- 
- 	LOCK_SMB();
--	init_auth (NULL);
--	written = smb_context->write (smb_context, handle->file, (void *)buffer, num_bytes);
--	UNLOCK_SMB();
-+	init_authentication (&actx, NULL);
- 
--	if (written < 0) {
--		res = gnome_vfs_result_from_errno ();
--		*bytes_written = 0;
--	} else {
--		res = GNOME_VFS_OK;
--		*bytes_written = written;
-+	/* Important: perform_authentication leaves and re-enters the lock! */
-+	while (perform_authentication (&actx) > 0) {
-+		written = smb_context->write (smb_context, handle->file, (void *)buffer, num_bytes);
-+		actx.res = (written >= 0) ? GNOME_VFS_OK : gnome_vfs_result_from_errno ();
- 	}
-+	
-+	UNLOCK_SMB();
- 
--	return res;
-+	*bytes_written = (written < 0) ? 0 : written;
-+	return actx.res;
- }
- 
- static GnomeVFSResult
-@@ -1306,8 +1550,9 @@ do_create (GnomeVFSMethod *method,
- 	int type;
- 	mode_t unix_mode;
- 	char *path;
--	SMBCFILE *file;
-+	SMBCFILE *file = NULL;
- 	FileHandle *handle;
-+	SmbAuthContext actx;
- 	
- 	DEBUG_SMB (("do_create() %s mode %d\n",
- 				gnome_vfs_uri_to_string (uri, 0), mode));
-@@ -1315,21 +1560,18 @@ do_create (GnomeVFSMethod *method,
- 	
- 	type = smb_uri_type (uri);
- 
--	if (type == SMB_URI_ERROR) {
-+	if (type == SMB_URI_ERROR)
- 		return GNOME_VFS_ERROR_INVALID_URI;
--	}
- 
- 	if (type == SMB_URI_WHOLE_NETWORK ||
- 	    type == SMB_URI_WORKGROUP ||
- 	    type == SMB_URI_SERVER ||
--	    type == SMB_URI_SHARE) {
-+	    type == SMB_URI_SHARE)
- 		return GNOME_VFS_ERROR_IS_DIRECTORY;
--	}
- 
- 	if (type == SMB_URI_WORKGROUP_LINK ||
--	    type == SMB_URI_SERVER_LINK) {
-+	    type == SMB_URI_SERVER_LINK) 
- 		return GNOME_VFS_ERROR_NOT_PERMITTED;
--	}
- 	
- 	unix_mode = O_CREAT | O_TRUNC;
- 	
-@@ -1347,20 +1589,21 @@ do_create (GnomeVFSMethod *method,
- 	path = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_USER_NAME | GNOME_VFS_URI_HIDE_PASSWORD);
- 
- 	LOCK_SMB();
--	init_auth (uri);
-- again:
--	file = smb_context->open (smb_context, path, unix_mode, perm);
--	if (file == NULL && auth_failed ()) {
--		goto again;
-+	init_authentication (&actx, uri);
-+	
-+	/* Important: perform_authentication leaves and re-enters the lock! */	
-+	while (perform_authentication (&actx) > 0) {
-+		file = smb_context->open (smb_context, path, unix_mode, perm);
-+		actx.res = (file != NULL) ? GNOME_VFS_OK : gnome_vfs_result_from_errno ();
- 	}
--	if (file == NULL) {
--		UNLOCK_SMB();
--		g_free (path);
--		return gnome_vfs_result_from_errno ();
- 
--	}
- 	UNLOCK_SMB();
-+
- 	g_free (path);
-+
-+	if (file == NULL)
-+		return actx.res;
-+	
- 	handle = g_new (FileHandle, 1);
- 	handle->is_data = FALSE;
- 	handle->file = file;
-@@ -1380,8 +1623,9 @@ do_get_file_info (GnomeVFSMethod *method
- {
- 	struct stat st;
- 	char *path;
--	int err, type;
-+	int type, err = -1;
- 	const char *mime_type;
-+	SmbAuthContext actx;
- 
- 	DEBUG_SMB (("do_get_file_info() %s\n",
- 				gnome_vfs_uri_to_string (uri, 0)));
-@@ -1405,6 +1649,17 @@ do_get_file_info (GnomeVFSMethod *method
- 		} else {
- 			file_info->mime_type = g_strdup ("x-directory/normal");
- 		}
-+		/* Make sure you can't write to smb:// or smb://foo. For smb://server/share we
-+		 * leave this empty, since accessing the data for real can cause authentication
-+		 * while e.g. browsing smb://server
-+		 */
-+		if (type != SMB_URI_SHARE) {
-+			file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS;
-+			file_info->permissions =
-+ 				GNOME_VFS_PERM_USER_READ |
-+ 				GNOME_VFS_PERM_OTHER_READ |
-+ 				GNOME_VFS_PERM_GROUP_READ;
-+		}
- 		return GNOME_VFS_OK;
- 	}
- 
-@@ -1413,9 +1668,14 @@ do_get_file_info (GnomeVFSMethod *method
- 		file_info->name = get_base_from_uri (uri);
- 		file_info->valid_fields = file_info->valid_fields
- 			| GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE
--			| GNOME_VFS_FILE_INFO_FIELDS_TYPE;
-+			| GNOME_VFS_FILE_INFO_FIELDS_TYPE
-+			| GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS;
- 		file_info->type = GNOME_VFS_FILE_TYPE_REGULAR;
- 		file_info->mime_type = g_strdup ("application/x-desktop");
-+		file_info->permissions =
-+			GNOME_VFS_PERM_USER_READ |
-+			GNOME_VFS_PERM_OTHER_READ |
-+			GNOME_VFS_PERM_GROUP_READ;
- 		return GNOME_VFS_OK;
- 	}
- 
-@@ -1424,22 +1684,20 @@ do_get_file_info (GnomeVFSMethod *method
- 	path = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_USER_NAME | GNOME_VFS_URI_HIDE_PASSWORD);
- 
- 	LOCK_SMB();
--	init_auth (uri);
-- again:
--	err = smb_context->stat (smb_context, path, &st);
--	if (err < 0 && auth_failed ()) {
--		goto again;
--	}
--	
--	if (err < 0) {
--		UNLOCK_SMB();
--		g_free (path);
--		return gnome_vfs_result_from_errno ();
-+	init_authentication (&actx, uri);
-+
-+	/* Important: perform_authentication leaves and re-enters the lock! */
-+	while (perform_authentication (&actx) > 0) {
-+		err = smb_context->stat (smb_context, path, &st);
-+		actx.res = (err >= 0) ? GNOME_VFS_OK : gnome_vfs_result_from_errno ();
- 	}
- 
- 	UNLOCK_SMB();
--	
-+
- 	g_free (path);
-+
-+	if (err < 0)
-+		return actx.res;
- 	
- 	gnome_vfs_stat_to_file_info (file_info, &st);
- 	file_info->name = get_base_from_uri (uri);
-@@ -1476,17 +1734,24 @@ do_get_file_info_from_handle (GnomeVFSMe
- 		GnomeVFSContext *context)
- {
- 	FileHandle *handle = (FileHandle *)method_handle;
-+	SmbAuthContext actx;
- 	struct stat st;
--	int err;
-+	int err = -1;
- 
- 	LOCK_SMB();
--	init_auth (NULL);
--	err = smb_context->fstat (smb_context, handle->file, &st);
--	UNLOCK_SMB();
--	if (err < 0) {
--		return gnome_vfs_result_from_errno ();
-+	init_authentication (&actx, NULL);
-+	
-+	/* Important: perform_authentication leaves and re-enters the lock! */
-+	while (perform_authentication (&actx) > 0) {
-+		err = smb_context->fstat (smb_context, handle->file, &st);
-+		actx.res = (err >= 0) ? GNOME_VFS_OK : gnome_vfs_result_from_errno ();
- 	}
- 	
-+	UNLOCK_SMB();
-+	
-+	if (err < 0) 
-+		return actx.res;
-+	
- 	gnome_vfs_stat_to_file_info (file_info, &st);
- 
- 	file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE;
-@@ -1498,9 +1763,6 @@ static gboolean
- do_is_local (GnomeVFSMethod *method,
- 	     const GnomeVFSURI *uri)
- {
--	DEBUG_SMB (("do_is_local(): %s\n", gnome_vfs_uri_to_string (uri,
--					GNOME_VFS_URI_HIDE_NONE)));
--
- 	return FALSE;
- }
- 
-@@ -1532,9 +1794,12 @@ do_open_directory (GnomeVFSMethod *metho
- 
- {
- 	DirectoryHandle *directory_handle;
-+	GnomeVFSURI *new_uri = NULL;
-+	const char *host_name;
- 	char *path;
- 	SmbUriType type;
--	SMBCFILE *dir;
-+	SMBCFILE *dir = NULL;
-+	SmbAuthContext actx;
- 
- 	DEBUG_SMB(("do_open_directory() %s\n",
- 		gnome_vfs_uri_to_string (uri, 0)));
-@@ -1544,10 +1809,6 @@ do_open_directory (GnomeVFSMethod *metho
- 	if (type == SMB_URI_WHOLE_NETWORK) {
- 		update_workgroup_cache ();
- 		
--		if (workgroups_errno != 0) {
--			gnome_vfs_result_from_errno_code (workgroups_errno);
--		}
--		
- 		directory_handle = g_new0 (DirectoryHandle, 1);
- 		g_hash_table_foreach (workgroups, add_workgroup, directory_handle);
- 		*method_handle = (GnomeVFSMethodHandle *) directory_handle;
-@@ -1559,27 +1820,43 @@ do_open_directory (GnomeVFSMethod *metho
- 	    type == SMB_URI_SERVER_LINK) {
- 		return GNOME_VFS_ERROR_NOT_A_DIRECTORY;
- 	}
-+
-+	/* if it is the magic default workgroup name, map it to the 
-+	 * SMBCCTX's workgroup, which comes from the smb.conf file. */
-+	host_name = gnome_vfs_uri_get_host_name (uri);
-+	if (type == SMB_URI_WORKGROUP && host_name != NULL &&
-+	    !g_ascii_strcasecmp(host_name, DEFAULT_WORKGROUP_NAME)) {
-+		new_uri = gnome_vfs_uri_dup (uri);
-+		gnome_vfs_uri_set_host_name (new_uri,
-+					     smb_context->workgroup
-+					     ? smb_context->workgroup
-+					     : "WORKGROUP");
-+		uri = new_uri;
-+	}
- 		
- 	path = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_USER_NAME | GNOME_VFS_URI_HIDE_PASSWORD);
- 
- 	DEBUG_SMB(("do_open_directory() path %s\n", path));
- 
- 	LOCK_SMB();
--	init_auth (uri);
-- again:
--	dir = smb_context->opendir (smb_context, path);
--	if (dir == NULL && auth_failed ()) {
--		goto again;
-+	init_authentication (&actx, uri);
-+
-+	/* Important: perform_authentication leaves and re-enters the lock! */
-+	while (perform_authentication (&actx) > 0) {
-+		dir = smb_context->opendir (smb_context, path);
-+		actx.res = (dir != NULL) ? GNOME_VFS_OK : gnome_vfs_result_from_errno ();
- 	}
-+
-+	UNLOCK_SMB();
-+	
-+	if (new_uri) 
-+		gnome_vfs_uri_unref (new_uri);
- 	
- 	if (dir == NULL) {
--		UNLOCK_SMB();
- 		g_free (path);
--		return gnome_vfs_result_from_errno ();
-+		return actx.res;
- 	}
--
--	UNLOCK_SMB();
--
-+	
- 	/* Construct the handle */
- 	directory_handle = g_new0 (DirectoryHandle, 1);
- 	directory_handle->dir = dir;
-@@ -1596,8 +1873,9 @@ do_close_directory (GnomeVFSMethod *meth
- {
- 	DirectoryHandle *directory_handle = (DirectoryHandle *) method_handle;
- 	GnomeVFSResult res;
-+	SmbAuthContext actx;
- 	GList *l;
--	int err;
-+	int err = -1;
- 
- 	DEBUG_SMB(("do_close_directory: %p\n", directory_handle));
- 
-@@ -1615,11 +1893,15 @@ do_close_directory (GnomeVFSMethod *meth
- 	
- 	if (directory_handle->dir != NULL) {
- 		LOCK_SMB ();
--		init_auth (NULL);
--		err = smb_context->closedir (smb_context, directory_handle->dir);
--		if (err < 0) {
--			res = gnome_vfs_result_from_errno ();
--		} 
-+		init_authentication (&actx, NULL);
-+
-+		/* Important: perform_authentication leaves and re-enters the lock! */
-+		while (perform_authentication (&actx) > 0) {
-+			err = smb_context->closedir (smb_context, directory_handle->dir);
-+			actx.res = (err >= 0) ? GNOME_VFS_OK : gnome_vfs_result_from_errno ();
-+		}
-+		
-+		res = actx.res;
- 		UNLOCK_SMB ();
- 	}
- 	g_free (directory_handle->path);
-@@ -1635,10 +1917,12 @@ do_read_directory (GnomeVFSMethod *metho
- 		   GnomeVFSContext *context)
- {
- 	DirectoryHandle *dh = (DirectoryHandle *) method_handle;
--	struct smbc_dirent *entry;
-+	struct smbc_dirent *entry = NULL;
-+	SmbAuthContext actx;
- 	struct stat st;
- 	char *statpath;
- 	char *path;
-+	int r = -1;
- 	GList *l;
- 
- 	DEBUG_SMB (("do_read_directory()\n"));
-@@ -1666,21 +1950,33 @@ do_read_directory (GnomeVFSMethod *metho
- 	LOCK_SMB();
- 	do {
- 		errno = 0;
--		init_auth (NULL);
--		entry = smb_context->readdir (smb_context, dh->dir);
- 		
--		if (entry == NULL) {
--			UNLOCK_SMB();
-+		init_authentication (&actx, NULL);
-+		
-+		/* Important: perform_authentication leaves and re-enters the lock! */
-+		while (perform_authentication (&actx) > 0) {
-+			entry = smb_context->readdir (smb_context, dh->dir);
- 			
--			if (errno != 0) {
--				return gnome_vfs_result_from_errno ();
-+			if(entry == NULL) {
-+				if(errno == 0)
-+					actx.res = GNOME_VFS_ERROR_EOF;
-+				else
-+					actx.res = gnome_vfs_result_from_errno ();
- 			} else {
--				return GNOME_VFS_ERROR_EOF;
-+				actx.res = GNOME_VFS_OK;
- 			}
- 		}
-+		
-+		if (entry == NULL) {
-+			UNLOCK_SMB();
-+			return actx.res;
-+		}
-+		
- 	} while (entry->smbc_type == SMBC_COMMS_SHARE ||
- 		 entry->smbc_type == SMBC_IPC_SHARE ||
- 		 entry->smbc_type == SMBC_PRINTER_SHARE ||
-+		 entry->name == NULL ||
-+		 strlen (entry->name) == 0 ||
- 		 (entry->smbc_type == SMBC_FILE_SHARE &&
- 		  is_hidden_entry (entry->name)));
- 		
-@@ -1694,7 +1990,8 @@ do_read_directory (GnomeVFSMethod *metho
- 	switch (entry->smbc_type) {
- 	case SMBC_FILE_SHARE:
- 		file_info->valid_fields = file_info->valid_fields
--			| GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE;
-+			| GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE
-+			| GNOME_VFS_FILE_INFO_FIELDS_TYPE;
- 		file_info->type = GNOME_VFS_FILE_TYPE_DIRECTORY;
- 		file_info->mime_type = g_strdup ("x-directory/smb-share");
- 		break;
-@@ -1737,14 +2034,20 @@ do_read_directory (GnomeVFSMethod *metho
- 		*/
- 		
- 		LOCK_SMB();
--		init_auth (NULL);
--		if (smb_context->stat (smb_context, statpath, &st) == 0) {
-+		init_authentication (&actx, NULL);
-+		
-+		/* Important: perform_authentication leaves and re-enters the lock! */
-+		while (perform_authentication (&actx) > 0) {
-+			r = smb_context->stat (smb_context, statpath, &st);
-+			actx.res = (r == 0) ? GNOME_VFS_OK : gnome_vfs_result_from_errno ();
-+		}
-+		UNLOCK_SMB();
-+		
-+		if (r == 0) {
- 			gnome_vfs_stat_to_file_info (file_info, &st);
--
- 			file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE;
- 			file_info->io_block_size = SMB_BLOCK_SIZE;
- 		}
--		UNLOCK_SMB();
- 		g_free (statpath);
- 
- 		file_info->valid_fields = file_info->valid_fields
-@@ -1782,9 +2085,9 @@ do_seek (GnomeVFSMethod *method,
- 		GnomeVFSContext *context)
- {
- 	FileHandle *handle = (FileHandle *)method_handle;
--	GnomeVFSResult res;
-+	SmbAuthContext actx;
- 	int meth_whence;
--	off_t ret;
-+	off_t ret = (off_t) -1;
- 
- 	if (handle->is_data) {
- 		switch (whence) {
-@@ -1822,16 +2125,16 @@ do_seek (GnomeVFSMethod *method,
- 	}
- 
- 	LOCK_SMB();
--	init_auth (NULL);
--	ret = smb_context->lseek (smb_context, handle->file, (off_t) offset, meth_whence);
--	UNLOCK_SMB();
--	if (ret == (off_t) -1) {
--		res = gnome_vfs_result_from_errno ();
--	} else {
--		res = GNOME_VFS_OK;
-+	init_authentication (&actx, NULL);
-+	
-+	/* Important: perform_authentication leaves and re-enters the lock! */
-+	while (perform_authentication (&actx) > 0) {
-+		ret = smb_context->lseek (smb_context, handle->file, (off_t) offset, meth_whence);
-+		actx.res = (ret != (off_t) -1) ? GNOME_VFS_OK : gnome_vfs_result_from_errno ();
- 	}
--
--	return res;
-+	UNLOCK_SMB();
-+	
-+	return actx.res;
- }
- 
- static GnomeVFSResult
-@@ -1840,8 +2143,8 @@ do_tell (GnomeVFSMethod *method,
- 		GnomeVFSFileOffset *offset_return)
- {
- 	FileHandle *handle = (FileHandle *)method_handle;
--	GnomeVFSResult res;
--	off_t ret;
-+	SmbAuthContext actx;
-+	off_t ret = (off_t) -1;
- 
- 	if (handle->is_data) {
- 		*offset_return = handle->offset;
-@@ -1849,18 +2152,17 @@ do_tell (GnomeVFSMethod *method,
- 	}
- 	
- 	LOCK_SMB();
--	init_auth (NULL);
--	ret = smb_context->lseek (smb_context, handle->file, (off_t) 0, SEEK_CUR);
--	UNLOCK_SMB();
--	if (ret == (off_t) -1) {
--		*offset_return = 0;
--		res = gnome_vfs_result_from_errno ();
--	} else {
--		*offset_return = (GnomeVFSFileOffset) ret;
--		res = GNOME_VFS_OK;
-+	init_authentication (&actx, NULL);
-+	
-+	/* Important: perform_authentication leaves and re-enters the lock! */
-+	while (perform_authentication (&actx) > 0) {
-+		ret = smb_context->lseek (smb_context, handle->file, (off_t) 0, SEEK_CUR);
-+		actx.res = (ret != (off_t) -1) ? GNOME_VFS_OK : gnome_vfs_result_from_errno ();
- 	}
--
--	return res;
-+	UNLOCK_SMB();
-+	
-+	*offset_return = (ret == (off_t) -1) ? 0 : (GnomeVFSFileOffset) ret;
-+	return actx.res;
- }
- 
- static GnomeVFSResult
-@@ -1869,7 +2171,8 @@ do_unlink (GnomeVFSMethod *method,
- 	   GnomeVFSContext *context)
- {
- 	char *path;
--	int type, err;
-+	SmbAuthContext actx;
-+	int type, err = -1;
- 
- 	DEBUG_SMB (("do_unlink() %s\n",
- 				gnome_vfs_uri_to_string (uri, 0)));
-@@ -1892,19 +2195,19 @@ do_unlink (GnomeVFSMethod *method,
- 	path = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_USER_NAME | GNOME_VFS_URI_HIDE_PASSWORD);
- 
- 	LOCK_SMB();
--	init_auth (uri);
-- again:
--	err = smb_context->unlink (smb_context, path);
--	if (err < 0 && auth_failed ()) {
--		goto again;
-+	init_authentication (&actx, uri);
-+	
-+	/* Important: perform_authentication leaves and re-enters the lock! */
-+	while (perform_authentication (&actx) > 0) {
-+		err = smb_context->unlink (smb_context, path);
-+		actx.res = (err >= 0) ? GNOME_VFS_OK : gnome_vfs_result_from_errno ();
- 	}
-+	
- 	UNLOCK_SMB();
-+
- 	g_free (path);
- 	
--	if (err < 0) {
--		return gnome_vfs_result_from_errno ();
--	}
--	return GNOME_VFS_OK;
-+	return actx.res;
- }
- 
- static GnomeVFSResult
-@@ -1978,10 +2281,10 @@ do_move (GnomeVFSMethod *method,
- 	 gboolean force_replace,
- 	 GnomeVFSContext *context)
- {
--	GnomeVFSResult res;
- 	char *old_path, *new_path;
--	int err;
-+	int errnox = 0, err = -1;
- 	gboolean tried_once;
-+	SmbAuthContext actx;
- 	int old_type, new_type;
- 	
- 	
-@@ -2003,48 +2306,47 @@ do_move (GnomeVFSMethod *method,
- 
- 	tried_once = FALSE;
-  retry:
--	res = GNOME_VFS_OK;
- 	LOCK_SMB();
--	init_auth (old_uri);
-- again:
--	err = smb_context->rename (smb_context, old_path,
--				   smb_context, new_path);
--	if (err < 0 && auth_failed ()) {
--		goto again;
-+	init_authentication (&actx, old_uri);
-+	
-+	/* Important: perform_authentication leaves and re-enters the lock! */
-+	while (perform_authentication (&actx) > 0) {
-+		err = smb_context->rename (smb_context, old_path, smb_context, new_path);
-+		errnox = errno;
-+		actx.res = (err >= 0) ? GNOME_VFS_OK : gnome_vfs_result_from_errno ();
- 	}
- 	UNLOCK_SMB();
-+	
- 	if (err < 0) {
--		err = errno;
--		if (err == EXDEV) {
--			res = GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM;
-+		if (errnox == EXDEV) {
-+			actx.res = GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM;
-+			
- 		} else if (err == EEXIST && force_replace != FALSE) {
- 			/* If the target exists and force_replace is TRUE */
- 			LOCK_SMB();
--			init_auth (new_uri);
--		again2:
--			err = smb_context->unlink (smb_context, new_path);
--			if (err < 0 && auth_failed ()) {
--				goto again2;
-+			init_authentication (&actx, new_uri);
-+
-+			/* Important: perform_authentication leaves and re-enters the lock! */
-+			while (perform_authentication (&actx) > 0) {			
-+				err = smb_context->unlink (smb_context, new_path);
-+				actx.res = (err >= 0) ? GNOME_VFS_OK : gnome_vfs_result_from_errno ();
- 			}
- 			UNLOCK_SMB();
--			if (err < 0) {
--				res = gnome_vfs_result_from_errno ();
--			} else {
-+
-+			if (err >= 0) {
- 				if (!tried_once) {
- 					tried_once = TRUE;
- 					goto retry;
- 				}
--				res = GNOME_VFS_ERROR_FILE_EXISTS;
-+				actx.res = GNOME_VFS_ERROR_FILE_EXISTS;
- 			}
--		} else {
--			res = gnome_vfs_result_from_errno ();
- 		}
- 	}
- 
- 	g_free (old_path);
- 	g_free (new_path);
- 
--	return res;
-+	return actx.res;
- }
- 
- static GnomeVFSResult
-@@ -2065,7 +2367,8 @@ do_make_directory (GnomeVFSMethod *metho
- 		   GnomeVFSContext *context)
- {
- 	char *path;
--	int err, type;
-+	int type, err = -1;
-+	SmbAuthContext actx;
- 
- 	type = smb_uri_type (uri);
- 
-@@ -2086,20 +2389,19 @@ do_make_directory (GnomeVFSMethod *metho
- 	path = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_USER_NAME | GNOME_VFS_URI_HIDE_PASSWORD);
- 
- 	LOCK_SMB();
--	init_auth (uri);
-- again:
--	err = smb_context->mkdir (smb_context, path, perm);
--	if (err < 0 && auth_failed ()) {
--		goto again;
-+	init_authentication (&actx, uri);
-+
-+	/* Important: perform_authentication leaves and re-enters the lock! */
-+	while (perform_authentication (&actx) > 0) {
-+		err = smb_context->mkdir (smb_context, path, perm);
-+		actx.res = (err >= 0) ? GNOME_VFS_OK : gnome_vfs_result_from_errno ();
- 	}
-+
- 	UNLOCK_SMB();
--	g_free (path);
- 
--	if (err < 0) {
--		return gnome_vfs_result_from_errno ();
--	}
-+	g_free (path);
- 
--	return GNOME_VFS_OK;
-+	return actx.res;
- }
- 
- static GnomeVFSResult
-@@ -2108,7 +2410,8 @@ do_remove_directory (GnomeVFSMethod *met
- 		     GnomeVFSContext *context)
- {
- 	char *path;
--	int err, type;
-+	int err = -1, type;
-+	SmbAuthContext actx;
- 
- 	type = smb_uri_type (uri);
- 
-@@ -2129,20 +2432,17 @@ do_remove_directory (GnomeVFSMethod *met
- 	path = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_USER_NAME | GNOME_VFS_URI_HIDE_PASSWORD);
- 
- 	LOCK_SMB();
--	init_auth (uri);
-- again:
--	err = smb_context->rmdir (smb_context, path);
--	if (err < 0 && auth_failed ()) {
--		goto again;
-+	init_authentication (&actx, uri);
-+
-+	while (perform_authentication (&actx) > 0) {
-+		err = smb_context->rmdir (smb_context, path);
-+		actx.res = (err >= 0) ? GNOME_VFS_OK : gnome_vfs_result_from_errno ();
- 	}
- 	UNLOCK_SMB();
--	g_free (path);
- 
--	if (err < 0) {
--		return gnome_vfs_result_from_errno ();
--	}
-+	g_free (path);
- 
--	return GNOME_VFS_OK;
-+	return actx.res;
- }
- 
- static GnomeVFSResult
-@@ -2153,8 +2453,8 @@ do_set_file_info (GnomeVFSMethod *method
- 		  GnomeVFSContext *context)
- {
- 	char *path;
--	int err, type;
--	GnomeVFSResult res;
-+	int err = -1, errnox = 0, type;
-+	SmbAuthContext actx;	
- 
- 	DEBUG_SMB (("do_set_file_info: mask %x\n", mask));
- 
-@@ -2187,30 +2487,25 @@ do_set_file_info (GnomeVFSMethod *method
- 
- 
- 		LOCK_SMB();
--		init_auth (uri);
--	again:
--		err = smb_context->rename (smb_context, path,
--					   smb_context, new_path);
--		if (err < 0 && auth_failed ()) {
--			goto again;
-+		init_authentication (&actx, uri);
-+		
-+		while (perform_authentication (&actx) > 0) {
-+			err = smb_context->rename (smb_context, path, smb_context, new_path);
-+			errnox = errno;
-+			actx.res = (err >= 0) ? GNOME_VFS_OK : gnome_vfs_result_from_errno ();
- 		}
-+		
- 		UNLOCK_SMB();
- 
--		res = GNOME_VFS_OK;
--		if (err < 0) {
--			if (errno == EXDEV) {
--				res = GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM;
--			} else {
--				res = gnome_vfs_result_from_errno ();
--			}
--		}
-+		if (err < 0 && errnox == EXDEV)
-+			actx.res = GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM;
- 		
- 		g_free (path);
- 		path = new_path;
- 
--		if (res != GNOME_VFS_OK) {
-+		if (actx.res != GNOME_VFS_OK) {
- 			g_free (path);
--			return res;
-+			return actx.res;
- 		}
- 	}
- 
-@@ -2292,7 +2587,7 @@ vfs_module_shutdown (GnomeVFSMethod *met
- 
- 	g_hash_table_destroy (server_cache);
- 	g_hash_table_destroy (workgroups);
--	g_hash_table_destroy (default_user_hashtable);
-+        g_hash_table_destroy (user_cache);
- 	
- 	g_mutex_free (smb_lock);
- 
--- a/patches/gpdf-02-lookupglyph.diff	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
---- gpdf-0.132/xpdf/GPOutputDev.cc	2004-02-28 08:22:41.000000000 +0900
-+++ gpdf-0.132-new/xpdf/GPOutputDev.cc	2005-04-21 00:31:02.927412096 +0900
-@@ -47,6 +47,8 @@
- #define HAS_NON_NULL_PRINT_CONTEXT \
- (this->gpc && GNOME_IS_PRINT_CONTEXT(this->gpc))
- 
-+gint ftype = fontUnknownType;
-+
- const struct {
-   const gchar *psName;
-   const gchar *name;
-@@ -217,7 +219,8 @@ GnomeFontFace *GPOFontMap::getFontFaceEm
-   }
- #endif /* PDF_DEBUG */
- 
--  switch (font->getType()) {
-+  ftype = font->getType();
-+  switch (ftype) {
-   case fontTrueType:
-   case fontType1:
-   case fontType1C: {
-@@ -646,6 +649,9 @@ static gint getFillColorRGBA(GfxState *s
- 
- static gint lookupGlyph(GnomeFont *font, CharCode c, Unicode u)
- {
-+  if (ftype == fontTrueType)  /*This is only for truetype fonts */
-+    return gnome_font_lookup_default(font, c);
-+
-   /* FIXME */
-   return gnome_font_lookup_default(font, u > 0 ? u : c);
- }
--- a/patches/nautilus-27-fsexam-integrate.diff	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,126 +0,0 @@
-diff -urp nautilus-2.6.1.orig/src/file-manager/fm-directory-view.c nautilus-2.6.1/src/file-manager/fm-directory-view.c
---- nautilus-2.6.1.orig/src/file-manager/fm-directory-view.c	2004-11-26 16:22:24.000000000 +0800
-+++ nautilus-2.6.1/src/file-manager/fm-directory-view.c	2004-12-01 11:38:29.394405736 +0800
-@@ -127,6 +127,7 @@
-  */
- #define FM_DIRECTORY_VIEW_COMMAND_RENAME                                "/commands/Rename"
- #define FM_DIRECTORY_VIEW_COMMAND_OPEN                      		"/commands/Open"
-+#define FM_DIRECTORY_VIEW_COMMAND_NAME_CONVERT                    	"/commands/Name Convert"
- #define FM_DIRECTORY_VIEW_COMMAND_OPEN_ALTERNATE        		"/commands/OpenAlternate"
- #define FM_DIRECTORY_VIEW_COMMAND_OPEN_WITH				"/commands/Open With"
- #define FM_DIRECTORY_VIEW_COMMAND_NEW_FOLDER				"/commands/New Folder"
-@@ -606,6 +607,62 @@ selection_not_empty_in_menu_callback (FM
- }
- 
- static void
-+name_convert_callback (BonoboUIComponent *component, gpointer callback_data, const char *verb)
-+{
-+	GList *selection;
-+	FMDirectoryView *view;
-+	NautilusFile *file;
-+	GnomeVFSMimeApplication *fsexam_app;
-+
-+	fsexam_app = g_new0 (GnomeVFSMimeApplication, 1);
-+	fsexam_app->id = g_strdup ("fsexam");
-+	fsexam_app->name = g_strdup ("file system examiner");
-+	fsexam_app->command = g_strdup ("fsexam");
-+	fsexam_app->expects_uris = GNOME_VFS_MIME_APPLICATION_ARGUMENT_TYPE_PATHS;
-+
-+	view = FM_DIRECTORY_VIEW (callback_data);
-+
-+	selection = fm_directory_view_get_selection (view);
-+	file = NAUTILUS_FILE (selection->data);
-+
-+	nautilus_launch_application (fsexam_app, file, NULL);
-+
-+	gnome_vfs_mime_application_free (fsexam_app);
-+	nautilus_file_list_free (selection);
-+}
-+
-+static gboolean
-+is_file_name_garbage (FMDirectoryView *view)
-+{
-+	NautilusFile *file;
-+	GList *selection;
-+	gchar *name;
-+	gboolean retv = FALSE;
-+
-+	selection = fm_directory_view_get_selection (view);
-+
-+	if (selection == NULL) {
-+		return FALSE;
-+	}
-+
-+	if (!selection_contains_one_item_in_menu_callback (view, selection)) {
-+		nautilus_file_list_free (selection);
-+		return FALSE;
-+	}
-+
-+	file = NAUTILUS_FILE (selection->data);
-+
-+	name = gnome_vfs_get_local_path_from_uri (nautilus_file_get_uri (file));
-+
-+	if (name)
-+		retv = !g_utf8_validate (name, strlen(name), NULL);
-+
-+	nautilus_file_list_free (selection);
-+
-+	return retv;
-+}
-+
-+static void
- open_callback (BonoboUIComponent *component, gpointer callback_data, const char *verb)
- {
- 	GList *selection;
-@@ -5273,6 +5330,7 @@ real_merge_menus (FMDirectoryView *view)
- 		BONOBO_UI_VERB ("Trash", trash_callback),
- 		BONOBO_UI_VERB ("Mount Volume Conditional", mount_volume_callback),
- 		BONOBO_UI_VERB ("Unmount Volume Conditional", unmount_volume_callback),
-+		BONOBO_UI_VERB ("Name Convert", name_convert_callback),
- #ifdef HAVE_LIBGNOMECUPSUI
- 		BONOBO_UI_VERB ("Print Document", print_document_callback),
- #endif
-@@ -5777,6 +5835,10 @@ real_update_menus (FMDirectoryView *view
- 				       FM_DIRECTORY_VIEW_COMMAND_OPEN,
- 				       selection_count != 0);
- 	
-+	nautilus_bonobo_set_sensitive (view->details->ui, 
-+				       FM_DIRECTORY_VIEW_COMMAND_NAME_CONVERT,
-+				       selection_count != 0);
-+
- 	if (nautilus_view_get_window_type (view->details->nautilus_view) == Nautilus_WINDOW_NAVIGATION) {
- 		show_open_alternate = TRUE;
- 		label_with_underscore = g_strdup_printf (ngettext("Open in New Window",
-@@ -5937,6 +5999,11 @@ real_update_menus (FMDirectoryView *view
- 				    FM_DIRECTORY_VIEW_COMMAND_PRINT_DOCUMENT,
- 				    TRUE);
- #endif
-+
-+	nautilus_bonobo_set_hidden (view->details->ui,
-+				    FM_DIRECTORY_VIEW_COMMAND_NAME_CONVERT,
-+				    !is_file_name_garbage(view) );
-+
- 	real_update_menus_volumes (view, selection, selection_count);
- 	
- 	bonobo_ui_component_thaw (view->details->ui, NULL);
-diff -urp nautilus-2.6.1.orig/src/file-manager/nautilus-directory-view-ui.xml nautilus-2.6.1/src/file-manager/nautilus-directory-view-ui.xml
---- nautilus-2.6.1.orig/src/file-manager/nautilus-directory-view-ui.xml	2004-11-26 16:22:24.000000000 +0800
-+++ nautilus-2.6.1/src/file-manager/nautilus-directory-view-ui.xml	2004-12-01 11:34:18.507546336 +0800
-@@ -27,6 +27,9 @@
-         <cmd name="Edit Launcher"
-          _label="Edit Launcher"
-          _tip="Edit the launcher information"/>
-+        <cmd name="Name Convert"
-+	 _label="Convert _Filename"
-+	 _tip="Use fsexam to convert the garbage file name"/>
- 	<cmd name="Open"
-          _label="_Open"
- 	 _tip="Open the selected item in this window"/>
-@@ -301,6 +304,7 @@
- 		<placeholder name="File Actions" delimit="top">
- 			<menuitem name="Create Link" verb="Create Link"/>
- 			<menuitem name="Rename" verb="Rename"/>
-+			<menuitem name="Name Convert" verb="Name Convert"/>
- 		</placeholder>
- 		<placeholder name="Dangerous File Actions" delimit="top">
- 			<menuitem name="Trash" 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/xscreensaver-13-2scrat.diff	Thu Aug 11 18:49:44 2005 +0000
@@ -0,0 +1,945 @@
+--- xscreensaver-4.10/driver/xscreensaver.h.1	2005-05-27 16:47:31.163609528 -0700
++++ xscreensaver-4.10/driver/xscreensaver.h	2005-05-27 16:47:39.867286368 -0700
+@@ -287,6 +287,8 @@ struct saver_screen_info {
+   GC stderr_gc;
+   Window stderr_overlay_window;    /* Used if the server has overlay planes */
+   Colormap stderr_cmap;
++  Display *other_dpy;              /* used by AT's MAG XRestackWindow() */
++				   /* 5083155 mag dual-heads */
+ };
+ 
+ 
+@@ -361,6 +363,98 @@ extern Bool display_message (saver_info 
+ #endif /* HAVE_OCF_SMARTCARD */
+ 
+ 
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
+ /* =======================================================================
+    runtime privileges
+    ======================================================================= */
+--- xscreensaver-4.10/driver/xscreensaver.c.1	2005-05-27 16:48:14.021094200 -0700
++++ xscreensaver-4.10/driver/xscreensaver.c	2005-05-27 16:48:44.183508816 -0700
+@@ -839,6 +839,19 @@ initialize_per_screen_info (saver_info *
+ 	      get_visual (ssi->screen, "GrayScale", True, False))
+ 	    found_any_writable_cells = True;
+ 	}
++       if (i > 0)	/* other screens */
++	{
++	char other_dpyname[20];
++
++   	sprintf(other_dpyname,":0.%d\0",i);
++
++	ssi->other_dpy = XOpenDisplay(":0.1");
++
++	
++fprintf(stderr,"==>other dpy i(%d) dpy(%s) 0x%x\n",i,other_dpyname, ssi->other_dpy);
++
++	}
++
+     }
+ 
+   si->fading_possible_p = found_any_writable_cells;
+@@ -1058,11 +1071,22 @@ main_loop (saver_info *si)
+   saver_preferences *p = &si->prefs;
+   Bool ok_to_unblank;
+   Bool sunray_rt = False;
++  const char *modulesptr = NULL;
+ 
+ /* Check the SunRay run-time env */
+ 
+   if ((getenv ("DTLOGINDISPLAYCLASS")))
+         sunray_rt = True;
++/*
++** CR4784055(P1)locked-screen dialog is inaccessible to Gnopernicus
++** voice for each type-in char in the password field of
++** pop-up diaglog
++*/
++
++ /* GTK Accessibility Module initialized */
++  modulesptr = getenv ("GTK_MODULES");
++  if (!modulesptr || modulesptr [0] == '\0')
++        putenv ("GTK_MODULES=gail:atk-bridge");
+ 
+ 
+   while (1)
+--- xscreensaver-4.10/driver/lock-Gtk.c.1	2005-05-27 16:48:03.781650832 -0700
++++ xscreensaver-4.10/driver/lock-Gtk.c	2005-05-27 16:48:33.443141600 -0700
+@@ -65,14 +65,22 @@ typedef struct {
+   GtkWidget *progress;
+   GtkWidget *button;
+   GtkWidget *msg_label;
++
+ } PasswdDialog;
+ 
+ static void ok_clicked_cb (GtkWidget *button, PasswdDialog *pwd);
+-static PasswdDialog * atk_make_dialog (void);
++/*
++** 6182506: scr dialog is obscurred byg MAG window
++*/
++static PasswdDialog * atk_make_dialog (gboolean center_pos);
+ /*Global info */
+ #define MAXRAISEDWINS	2
+ #define KEY "/desktop/gnome/interface/accessibility"
+ gboolean	 at_enabled  = FALSE;
++/*
++** 6182506: scr dialog is obscurred byg MAG window
++*/
++gboolean	 center_postion = FALSE; 	
+ char *progname = 0;
+ int  smartcard_is_enabled = 0; 
+ Bonobo_ServerInfoList *server_list = NULL;
+@@ -133,9 +141,12 @@ else 
+ 
+ }
+ 
++/*
++** 6182506: scr dialog is obscurred byg MAG window
++*/
+ 
+ static PasswdDialog *
+-atk_make_dialog (void)
++atk_make_dialog (gboolean center_pos)
+ {
+   GtkWidget *dialog;
+   GtkWidget *frame1,*frame2;
+@@ -188,8 +199,15 @@ atk_make_dialog (void)
+   dialog = gtk_window_new (GTK_WINDOW_POPUP);
+ /* 
+ ** bugid: 5077989(P2)Bug 147580: password input dialogue obscures GOK
++   gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_MOUSE);
++   bugid: 5002244:  scr unlock dialog incompatible with MAG technique
++** 6182506: scr dialog is obscurred byg MAG window
+ */
+-  gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER_ALWAYS);
++
++  if (center_pos)
++   gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER_ALWAYS);
++  else
++   gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_MOUSE);
+ /* AT-eabled dialog role = frame*/
+   atk_dialog = gtk_widget_get_accessible(dialog);
+   atk_object_set_description(atk_dialog, _("AT-enabled lock dialog"));
+@@ -207,7 +225,8 @@ atk_make_dialog (void)
+   /*AT role = panel */
+ 
+   atk_frame1 = gtk_widget_get_accessible(frame1);
+-  atk_object_set_description(atk_frame1,_("AT lock dialog frame1"));
++
++
+ 
+   /* vbox */
+   vbox = gtk_vbox_new (FALSE, 10);
+@@ -216,7 +235,7 @@ atk_make_dialog (void)
+ 
+   /* AT role= filler(default) */
+   atk_vbox = gtk_widget_get_accessible(vbox);
+-  atk_object_set_description(atk_vbox,_("AT lock dialog vbox"));
++
+   
+   /* hbox */
+   hbox = gtk_hbox_new (FALSE, 5);
+@@ -233,7 +252,6 @@ atk_make_dialog (void)
+  
+   /* AT role= filler(default) */
+   atk_hbox = gtk_widget_get_accessible(hbox);
+-  atk_object_set_description(atk_hbox,_("AT lock dialog hbox"));
+  
+ 
+   /* image */
+@@ -247,12 +265,10 @@ atk_make_dialog (void)
+   /* AT role=panel */
+ 
+   atk_frame2 = gtk_widget_get_accessible(frame2);
+-  atk_object_set_description(atk_frame2,_("AT-enabled lock dialog frame2"));
+ 
+   /* AT role = icon */
+ 
+   atk_image = gtk_widget_get_accessible(image);
+-  atk_object_set_description(atk_image,_("AT-enabled lock dialog image "));
+ 
+    /* progress thingie */
+   progress = g_object_new (GTK_TYPE_PROGRESS_BAR,
+@@ -284,10 +300,8 @@ atk_make_dialog (void)
+   /*AT role =filler*/
+   
+   atk_vbox2 = gtk_widget_get_accessible(vbox2);
+-  atk_object_set_description(atk_vbox2,_("AT text vbox2 "));
+   /*AT role =label prog name */
+   atk_label1 = gtk_widget_get_accessible(label1);
+-  atk_object_set_description(atk_label1,_("AT text vbox2 label1"));
+ 
+   g_free (s);
+ 
+@@ -301,7 +315,8 @@ atk_make_dialog (void)
+   /* AT role = label , msg */
+ 
+   atk_label2 = gtk_widget_get_accessible(label2);
+-  atk_object_set_description(atk_label2,_("AT text vbox2 label2"));
++
++
+ 
+ 
+   /* table with password things */
+@@ -315,8 +330,8 @@ atk_make_dialog (void)
+ 
+   /* User: */
+   label3 = g_object_new (GTK_TYPE_LABEL,
+-			"label", _("        User:"),
+-                           "use_underline", TRUE,
++                        "label", _("        User:"),
++                        "use_underline", TRUE,
+ 			"justify",GTK_JUSTIFY_FILL,
+ 			"xalign", 1.0,
+ 			NULL);
+@@ -351,7 +366,7 @@ atk_make_dialog (void)
+ 	      		  "label", _("     Pin:"),
+                            "use_underline", TRUE,
+                         "use_markup",FALSE,
+-                        "justify",GTK_JUSTIFY_LEFT,
++                        "justify",GTK_JUSTIFY_RIGHT,
+                         "wrap", FALSE,
+                         "selectable",TRUE,
+                         "xalign", 1.0,
+@@ -394,26 +409,20 @@ atk_make_dialog (void)
+  
+   /* AT role=panel */
+   atk_hbox1 = gtk_widget_get_accessible(hbox1);
+-  atk_object_set_description(atk_hbox1,_("AT vbox2 hbox1"));
+   /* AT role=label */
+   atk_label3= gtk_widget_get_accessible(label3);
+-  atk_object_set_description(atk_label3,_("AT vbox2 table user"));
+   /* AT role=label */
+   atk_label4= gtk_widget_get_accessible(label4);
+-  atk_object_set_description(atk_label4,_("AT vbox2 table pin"));
+   /* AT role = text */
+   atk_entry1 = gtk_widget_get_accessible(entry1);
+-  atk_object_set_description(atk_entry1,_("AT vbox2 table USER"));
+   /* hbox1 for password/pin and text entry */
+  
+   atk_hbox2 = gtk_widget_get_accessible(hbox2);
+-  atk_object_set_description(atk_hbox2,_("AT pwd or pin  hbox2"));
+ 
+ /* AT role = password-text */
+   /* gtk_widget_grab_focus (entry2);
+    */
+   atk_entry2 = gtk_widget_get_accessible(entry2);
+-  atk_object_set_description(atk_entry2,_("AT hhox2 atk pwd"));
+   /* bugid 5079870 */
+    atk_object_set_role(atk_entry2, ATK_ROLE_PASSWORD_TEXT);
+   
+@@ -442,7 +451,6 @@ if (utf8_format)
+ 		      FALSE, FALSE, 0);
+   /* AT role=label */
+   atk_label5= gtk_widget_get_accessible(label5);
+-  atk_object_set_description(atk_label5,_("AT vbox2 label5"));
+ 
+ if (s)
+   g_free (s);
+@@ -462,7 +470,6 @@ if (s)
+ 
+ 
+   atk_button = gtk_widget_get_accessible(button);
+-  atk_object_set_description(atk_button,_("AT vbox2 button"));
+ 
+ 
+   
+@@ -600,8 +607,8 @@ make_dialog (void)
+ 
+   /* User: */
+   label = g_object_new (GTK_TYPE_LABEL,
+-                        "label", _("        User:"),
+-                           "use_underline", TRUE,
++                  	"label", _("        User:"),
++                        "use_underline", TRUE,
+                         "justify",GTK_JUSTIFY_FILL,
+                         "xalign", 1.0,
+                         NULL);
+@@ -744,7 +751,6 @@ ok_clicked_cb (GtkWidget *button, Passwd
+   char *s;
+   int i;
+  
+-
+   desensitize_entry (pwd);
+   g_object_set (pwd->msg_label, "label", _("<b>Checking...</b>"), NULL);
+   s = g_strdup_printf ("%s\n", gtk_entry_get_text (GTK_ENTRY (pwd->passwd_entry)));
+@@ -822,7 +828,7 @@ handle_input (GIOChannel *source, GIOCon
+ {
+   PasswdDialog *pwd = data;
+   GIOStatus status;
+-  char *str;
++  char *str = NULL;
+   char *label;
+ 
+   desensitize_entry (pwd);
+@@ -832,10 +838,14 @@ handle_input (GIOChannel *source, GIOCon
+   if (status == G_IO_STATUS_AGAIN)
+     goto read_line;
+ 
++
++ 
+   if (str)
+     {
+       label = g_strdup_printf ("<b>%s</b>", str);
+-      g_object_set (pwd->msg_label, "label", label, NULL);
++     g_object_set (pwd->msg_label, "label", label, NULL);
++     /* g_warning("after handle input() %s\n",str);
++     */
+       g_free (label);
+       g_free (str);
+     }
+@@ -899,9 +909,11 @@ main (int argc, char *argv[])
+      
+ /*CR6205224 disable AT support temp.
+   hardwired, at_enabled is False
+-*/
+   at_enabled = False;
+- 
++* 6240938 screensaver-lock's password timer needs to to be reset for each key
++          (all users) and enabling AT support
++*/
++   
+   if (at_enabled) {
+ 
+ 
+@@ -911,48 +923,16 @@ main (int argc, char *argv[])
+         putenv ("GTK_MODULES=gail:atk-bridge");
+ 
+ 
+-  pwd = atk_make_dialog();
+-  connect_signals (pwd);
+   
+-  gtk_widget_show_all (pwd->dialog);
+-  gtk_window_present (GTK_WINDOW (pwd->dialog));
+-  gtk_widget_map (pwd->dialog);
+-  
+-  XSync(GDK_DISPLAY(), False);
+-                                                                                 
+-  gdk_window_add_filter (pwd->dialog->window, dialog_filter_func, pwd);
+-  s = g_strdup_printf ("%lu\n", GDK_WINDOW_XID (pwd->dialog->window));
+-  write_string (s);
+-  g_free (s);
+-  /*CR 5039878 2 3 "Password:" field should be focused / have flashing caret 
+-  on the xscreensaver site, it should be focus on passwd_entry
+-  */
+-  s = g_strdup_printf ("%lu\n", GDK_WINDOW_XID (pwd->passwd_entry->window));
+-  write_string (s);
+-  g_free (s);
+-  
+-/* checking the running gok or gnop  */
+-
+-
+-    Window root_ret, parent_ret, *children = NULL,root;
+-    unsigned int nchildren = 0;
+     Accessibility_LoginHelper_WindowList *windows;
+     int i, wid_count = 0;
+ 
+ 
+-    if (!GDK_DISPLAY())
+-	return (FALSE);
+-
+-/* Multiple GDK heads is not supported yet */
+-
+-     /*
+-     * then, get the list of windows
+-     */
+-  root = GDK_ROOT_WINDOW();
+-  if (!XQueryTree (GDK_DISPLAY(), root, &root_ret,&parent_ret, &children, &nchildren))  	
+-  return (FALSE);
+-
++  /*
++if there is any running GOK or MAG, using GTK_WIN_POS_MOUSE
++*/
+ 
++  
+       CORBA_exception_init (&ev);
+     if (!bonobo_init (&argc, argv))
+     {
+@@ -964,8 +944,7 @@ main (int argc, char *argv[])
+         "(repo_ids.has('IDL:Accessibility/LoginHelper:1.0')) AND _active",
+         NULL, &ev);
+ 
+-
+-  if (BONOBO_EX (&ev))
++    if (BONOBO_EX (&ev))
+     {
+         bonobo_debug_shutdown ();
+         g_error ("LoginHelper query failed : %s",
+@@ -974,6 +953,37 @@ main (int argc, char *argv[])
+         CORBA_exception_free (&ev);
+     }
+ 
++ 
++/*
++** 6182506: scr dialog is obscurred byg MAG window
++*/
++
++   if (server_list && server_list->_length)
++        center_postion = FALSE;
++   else
++        center_postion = TRUE;    /* center position of screen */
++        
++  pwd = atk_make_dialog(center_postion);
++  connect_signals (pwd);
++
++  gtk_widget_show_all (pwd->dialog);
++  gtk_window_present (GTK_WINDOW (pwd->dialog));
++  gtk_widget_map (pwd->dialog);
++
++  XSync(GDK_DISPLAY(), False);
++
++
++  gdk_window_add_filter (pwd->dialog->window, dialog_filter_func, pwd);
++  s = g_strdup_printf ("%lu\n", GDK_WINDOW_XID (pwd->dialog->window));
++  write_string (s);
++  g_free (s);
++  /*CR 5039878 2 3 "Password:" field should be focused / have flashing caret  on the xscreensaver site, it should be focus on passwd_entry
++  */
++  s = g_strdup_printf ("%lu\n", GDK_WINDOW_XID (pwd->passwd_entry->window));  write_string (s);
++  g_free (s);
++
++
++
+ 
+      g_message ("%d LoginHelpers are running.",
+                server_list ? server_list->_length : 0);
+@@ -1107,24 +1117,10 @@ main (int argc, char *argv[])
+ 			Window wid;
+ 			wid = windows->_buffer[j].winID;
+ 			g_message ("Window ID = x%x",  wid);
+-			gboolean loop = TRUE;
+-                while (loop)
+-                {
+-                XQueryTree (GDK_DISPLAY(), wid ,&root_ret,&parent_ret,
+-                &children, &nchildren);
+-                if ( root_ret != parent_ret)
+-                        wid  = parent_ret;
+-                else
+-                        loop = FALSE;
+-                }
+-		/* send it */
+-	        if (wid_count < MAXRAISEDWINS && wid) {
++	        	if (wid_count < MAXRAISEDWINS && wid) {
+ 			wid_count++;
+ 			write_string(g_strdup_printf ("%lu\n", wid));
+-		/* need to change to array */
+ 			}
+-
+-
+ 		    }    
+ 		}
+ 	    }
+@@ -1148,8 +1144,6 @@ main (int argc, char *argv[])
+ 	}
+     }
+ 
+-    /* max 2 wids will be mapped on the top of locked screen */
+-    /* temp sol. once GOK fix the wid, it needs to changed */
+ 
+ 	
+     if (wid_count == 0)
+--- xscreensaver-4.10/driver/lock.c.1	2005-05-27 16:47:53.612196824 -0700
++++ xscreensaver-4.10/driver/lock.c	2005-05-27 16:48:27.157097224 -0700
+@@ -30,6 +30,7 @@
+ 
+ #include <X11/Intrinsic.h>
+ #include <X11/Xos.h>		/* for time() */
++#include <X11/Xatom.h>
+ #include <time.h>
+ #include <sys/time.h>
+ #include <errno.h>
+@@ -259,10 +260,106 @@ static void update_passwd_window (saver_
+ 				  float ratio);
+ void destroy_passwd_window (saver_info *si);
+ static void undo_vp_motion (saver_info *si);
++/* GOK bug */
+ 
+ extern Atom XA_UNLOCK_RATIO;
++Window at_win[4] = {0,0,0,0};	/* wIds for XRestackWindows() */
++				/* dialog, GOK, or MAG or screenSaver */
+ 
++int no_atserv = 0;		/* GOK or MAG or Both on def. screen 0 */
++ 
+ Bool at_enabled = False; 	/* Ass. Tech support? def. no */
++				/* for restoring the origin setting
++				   override_redirect setting of MAG/GOK
++				*/
++Bool winatt_reset[2] = {FALSE,FALSE};
++
++/* 
++5083155 Unable to unlock screen when running dual-head MAG
++*adding dual or multiple heads for magnifier support
++*
++  screen 0: loginhelp can pass the raisedWid of GOK or MAG or both
++	    found: return its parent Wid (child of root)
++	    not found: 	0
++
++  other screen:	MAG only if the target screen no > 0 is selected
++	found:	restack on that screen
++		return 0
++	not-found : rturn 0
++
++*/
++Atom atom_type[1], atom_window_type;
++
++Window
++check_raisedWid(saver_info *si,Window wid)
++{
++int screen_no,status;
++Bool loop, found = FALSE;
++Window root_ret, parent_ret, *children = NULL,root;
++unsigned int nchildren = 0;
++
++Screen *screen;
++saver_screen_info *ssi;
++Display *dpy;
++Window screen_win[2] = {0,0};
++
++
++for (screen_no = 0; screen_no < si->nscreens; screen_no++)
++ {
++   loop = TRUE;
++   ssi = &si->screens[screen_no];
++   screen = ssi->screen;
++   root =    RootWindowOfScreen (screen);
++   if (screen_no == 0)
++	dpy = DisplayOfScreen(screen);
++   else
++	dpy = ssi->other_dpy;
++   if (dpy)
++   {
++     while (loop)
++     {
++     status =  
++	XQueryTree (dpy, wid ,&root_ret,&parent_ret, &children, &nchildren);
++/*  AT_LOCK_DEBUG
++fprintf(stderr, " ==>screen(%x) root(%x) wid(%x) root_ret(%x) parent_ret(%x)\n", screen, root, wid, root_ret, parent_ret);
++fprintf(stderr, " screen_no(%d) ==>dpy(%x)\n", screen_no,dpy);
++*/
++
++	if (parent_ret == 0 || root != root_ret) /* not found */
++			loop = FALSE;
++        else if ( root_ret != parent_ret)
++          wid  = parent_ret;
++        else
++	{
++		    
++	  loop = FALSE;
++	  found = TRUE;
++/*  AT_LOCK_DEBUG
++fprintf(stderr,"==> found wid is 0x%x screen_no(%d)\n", wid, screen_no);
++*/
++	  if (screen_no)
++	  {
++/* 
++** found in other screen(not scn 0), implies MAG target scn, 
++** invoke XRestackWindow()
++*/
++		screen_win[0] = wid;
++		screen_win[1] = ssi->screensaver_window;
++		XRestackWindows(dpy, screen_win, 2);
++		XSync (dpy, False);
++		wid = 0;   /* no need to do the restack on screen 0 */
++	   }
++	   screen_no = si->nscreens;
++	}
++	} /* while loop */
++  } /*dpy check */
++   
++ } /* for loop */
++ if (found)
++	return wid;
++ else 
++	return 0;
++}
+ 
+ #if defined (HAVE_XF86VMODE) || defined (HAVE_XSCREENSAVER_LOCK)
+ static Bool vp_got_error = False;
+@@ -307,6 +404,7 @@ handle_passwd_input (XtPointer data, int
+   saver_preferences *p = &si->prefs;
+   char buffer[1024];
+   char *s;
++  int status;
+ 
+   if (si->prefs.verbose_p)
+     fprintf (stderr, "passwd input handler() fd=%d\n",*fd);
+@@ -351,25 +449,25 @@ handle_passwd_input (XtPointer data, int
+   else
+     {
+       Window window = strtoul (s, NULL, 0);
+-      /* Accessiblity AT proc window id */
+         XSetWindowAttributes setwinattr;
+-        unsigned long valuemask = CWOverrideRedirect|CWSaveUnder;
++        unsigned long valuemask = CWOverrideRedirect;
+         XWindowChanges changes;
+         setwinattr.override_redirect = True;
+-        setwinattr.save_under = True;
++	XWindowAttributes window_attributes_return;
+ 
+-      Window win[4], window1 = 0, passwd_win = 0;
+-      int j,no_atserv = 0;
++      Window window1 = 0, passwd_win = 0,wintemp = 0; int j;
+ /*CR 5039878 2 3 "Password:" field should be focused / have flashing caret */
+       s = fgets (buffer, sizeof (buffer), si->pw_data->input_file);
+       passwd_win = strtoul (s, NULL, 0);
+-      	
+-      win[no_atserv] = window;
++      no_atserv = 0;
++      at_win[no_atserv] = window;
+ 		
+ 	/* There is no need to reset the timer for Normal user
+ 	   for each pop-up dialog
+ 	*/
+       at_enabled = False;
++
++
+       for (j= 0; j < 2; j++)
+       {
+         s = fgets (buffer, sizeof (buffer), si->pw_data->input_file);
+@@ -382,12 +480,29 @@ handle_passwd_input (XtPointer data, int
+ 		at_enabled = True;
+ 	else
+         if (window1 != 0x0 ) {
+-
++/*
++5083155 Unable to unlock screen when running dual-head MAG
++*adding dual or multiple heads for magnifier support
++*/
+ 		at_enabled = True;
+-                XChangeWindowAttributes(si->dpy,window1,valuemask,&setwinattr);
+-                no_atserv++;
+-                win[no_atserv] = window1;
+-                XMapSubwindows(si->dpy, window1);
++		wintemp = check_raisedWid(si, window1);
++                if (wintemp) {
++	status = 
++	XGetWindowAttributes(si->dpy,wintemp,&window_attributes_return);
++	
++	if ((status) && (!window_attributes_return.override_redirect))
++	{
++           XFlush(si->dpy);
++	   XChangeWindowAttributes(si->dpy,wintemp,valuemask,&setwinattr);
++	   winatt_reset[j] = TRUE;
++/*  AT_LOCK_DEBUG
++fprintf(stderr,"Debug: ==> winatt_reset[%d] override_redirect needs to be reset\n",j);
++*/
++        }
++        XMapSubwindows(si->dpy, wintemp);
++        no_atserv++;
++        at_win[no_atserv] = wintemp;
++		} /* wintemp != 0 */
+         }
+       }
+ 	/* common parent, i.e root win */
+@@ -395,7 +510,11 @@ handle_passwd_input (XtPointer data, int
+ /* cases for running GOK , or MAG or GOK+MAG */
+ 
+         if (no_atserv > 0) {
+-          XRestackWindows(si->dpy, win, no_atserv + 1);
++        /* pop-up dialog in dock mode */
++/* AT_LOCK_DEBUG
++fprintf(stderr,"==> found dialog wid 0x%x\n", window);
++*/
++          XRestackWindows(si->dpy, at_win, no_atserv+1);
+ 	  XUngrabKeyboard(si->dpy, CurrentTime);
+           XUngrabPointer(si->dpy, CurrentTime);
+           si->at_external_passwd = True;
+@@ -412,12 +531,11 @@ handle_passwd_input (XtPointer data, int
+ 		XFlush(si->dpy);
+ 	}
+ 
+-
+-	/*
++/*  AT_LOCK_DEBUG
+ 	fprintf(stderr,"debug no_atserv   0x%x\n", no_atserv);
+ 	fprintf(stderr,"debug passwd win   0x%x\n", passwd_win);
+ 	fprintf(stderr,"debug window   0x%x\n", window);
+-        */
++*/
+  
+       XSelectInput(si->dpy, passwd_win,KeyPressMask);
+       XSetInputFocus (si->dpy, passwd_win,RevertToPointerRoot, CurrentTime);
+@@ -1233,6 +1351,15 @@ destroy_passwd_window (saver_info *si)
+   Colormap cmap;
+   Pixel black, white;
+   XEvent event;
++/* CR5083155 [Cinn Solaris]Unable to unlock screen when running dual-head MAG
++*/
++  int j;
++  XSetWindowAttributes setwinattr;
++  unsigned long valuemask = CWOverrideRedirect;
++  XWindowChanges changes;
++  setwinattr.override_redirect = FALSE;
++
++
+ 
+   if (si->prefs.verbose_p)
+     fprintf (stderr, "destroy_passwd_window\n");
+@@ -1263,15 +1390,6 @@ destroy_passwd_window (saver_info *si)
+ 	  XSetErrorHandler (old_handler);
+ 
+ 	  si->passwd_dialog = 0;
+-
+-
+-
+-
+-
+-
+-
+-
+-
+ 	}
+ 
+       if (pw->stdout_input_id)
+@@ -1432,6 +1550,22 @@ destroy_passwd_window (saver_info *si)
+   memset (pw, 0, sizeof(*pw));
+   free (pw);
+   si->pw_data = 0;
++/*
++CR5083155 [Cinn Solaris]Unable to unlock screen when running dual-head
++
++*/
++ for (j= 1; j < 3 ; j++)
++ {
++   if (winatt_reset[j-1] && at_win[j] )
++   {
++      XChangeWindowAttributes(si->dpy,at_win[j],valuemask,&setwinattr);
++      winatt_reset[j-1] = FALSE;
++      at_win[j] = 0;
++/*fprintf(stderr, "DEBUG: at(%d) override_redirect set to FALSE\n", j);
++*/
++   }
++ }
++
+ }
+ 
+ 
+@@ -1841,8 +1975,13 @@ passwd_event_loop (saver_info *si)
+ 
+ /* CR 6176524 passwdTimeoutEnable for disabled user 
+    timer will be reset if 4 conditions art true (for each char of pwd)
++   (status) && (p->pwd_p) && (at_enabled) && (pw->timer)
++   However AT group wants to remove at_enabled 
++   i.e reset the password timer for each key for all users
++   * 6240938 screensaver-lock's password timer needs to to be reset 
++	for each key (all users) and enabling AT support
+ */
+-	if ((status) && (p->pwd_p) && (at_enabled) && (pw->timer)) {
++	if ((status) && (p->pwd_p)  && (pw->timer)) {
+         XtRemoveTimeOut (pw->timer);
+ 	pw->ratio = 1.0;
+         pw->timer = XtAppAddTimeOut (si->app, 166, passwd_animate_timer,
+@@ -1884,9 +2023,63 @@ passwd_event_loop (saver_info *si)
+ 	  si->pw_data->state = pw_cancel;
+ 	}
+ #endif /* HAVE_OCF_SMARTCARD */
++/*
++* 5077974 P1 "Bug 147583: Screen Lock unlocks because of GOK dwell movement in
++              core pointer mode"
++* Once WM/metacity fixes the problem, the code can be removed.
++  The problem:
++  repositioning the Wids in the wrong positions when
++  1. the window type is changed from NORMAL to DOCK or vice versa
++  2. the Wid is managed 
++  within the X window stack with or without screen-lock 
++  in a mixed Wids
++  there are two get-around solutions:
++  1. non-managed GOK or MAG Wid
++  or
++  2. screensaver picks up the WM's restacking task and fixes the prevous
++     restacking problem.
++
++     the cons: there is a flashing screen when corepointer is touching
++     GOK or MAG and mouse is moved in a fast way
++     when GOK or MAG window type is DOCK only.
++     and it is not a good temp. get-around solution.
++     This is the only choice if WM did not want to fix the problem now
++     and AT group did not want to use non-managed Wids.
++     Now, GOK only supports 2nd USB/mouse/Dwell, corepointer is supposed
++     not to be used, and GOK cannot disable it
++     ,corepointer needs to be ungrabbed
++*/
++        else if (((event.type == UnmapNotify)
++		|| (event.type == MapNotify )
++		|| (event.type == ConfigureNotify)
++		|| (event.type == PropertyNotify )
++		|| (event.type == ReparentNotify ))
++		&& (si->passwd_dialog) && (no_atserv))
++        {
++/* AT_LOCK_DEBUG
++fprintf (stderr, "client window(0x%x) %s\n", event.xclient.window,blurb());
++fprintf (stderr, "dialog window 0x%x:\n", si->passwd_dialog);
++fprintf(stderr, "** no_atserv: %d \n", no_atserv);
++for (ii = 0; ii < 4;  ii++)
++         fprintf(stderr, "** win : 0x%x \n", at_win[ii]);
++*/
+ 
+-      else
++
++          at_win[no_atserv+1] = si->screens[0].screensaver_window;
++/* 2 => screensaver and dialog Wids */
++         XRestackWindows(si->dpy, at_win, no_atserv+2);
++          XFlush(si->dpy);
++	}
++/* the above new code for restacking under the conidtion
++*/
++      else 
++	{
++/*
++	 if ((si->passwd_dialog) && (no_atserv) && (event.type != 0))
++         fprintf(stderr, "** DEbug other event %d\n", event.type);
++*/
+ 	XtDispatchEvent (&event);
++	}
+     }
+ 
+   switch (si->pw_data->state)
+@@ -2140,6 +2333,8 @@ message_animate_timer (XtPointer closure
+ 
+   idle_timer ((XtPointer) si, id);
+ }
++/*GOK BUG */
++
+ 
+ static void
+ message_event_loop (saver_info *si)
+--- xscreensaver-4.10/driver/xscreensaver-demo.glade2.1	2005-05-27 16:49:04.229461368 -0700
++++ xscreensaver-4.10/driver/xscreensaver-demo.glade2	2005-05-27 16:49:16.915532792 -0700
+@@ -644,6 +644,7 @@
+ 				  <property name="visible">True</property>
+ 				  <property name="arrow_type">GTK_ARROW_DOWN</property>
+ 				  <property name="shadow_type">GTK_SHADOW_OUT</property>
++			          <property name="can_focus">True</property>
+ 				  <property name="xalign">0.5</property>
+ 				  <property name="yalign">0.5</property>
+ 				  <property name="xpad">0</property>
+@@ -670,6 +671,7 @@
+ 				  <property name="visible">True</property>
+ 				  <property name="arrow_type">GTK_ARROW_UP</property>
+ 				  <property name="shadow_type">GTK_SHADOW_OUT</property>
++			          <property name="can_focus">True</property>
+ 				  <property name="xalign">0.5</property>
+ 				  <property name="yalign">0.5</property>
+ 				  <property name="xpad">0</property>
+@@ -866,6 +868,7 @@ Available</property>
+ 		  <property name="label" translatable="yes">Image Manipulation</property>
+ 		  <property name="label_xalign">0</property>
+ 		  <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
++		  <property name="can_focus">True</property>
+ 
+ 		  <child>
+ 		    <widget class="GtkHBox" id="grab_hbox">
+@@ -1048,6 +1051,7 @@ Available</property>
+ 		  <property name="label" translatable="yes">Diagnostics</property>
+ 		  <property name="label_xalign">0</property>
+ 		  <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
++		  <property name="can_focus">True</property>
+ 
+ 		  <child>
+ 		    <widget class="GtkHBox" id="diag_hbox">
+@@ -1159,6 +1163,7 @@ Available</property>
+ 		  <property name="label" translatable="yes">Display Power Management</property>
+ 		  <property name="label_xalign">0</property>
+ 		  <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
++		  <property name="can_focus">True</property>
+ 
+ 		  <child>
+ 		    <widget class="GtkHBox" id="dpms_hbox">
+@@ -1471,6 +1476,7 @@ Available</property>
+ 		  <property name="label" translatable="yes">Colormaps</property>
+ 		  <property name="label_xalign">0</property>
+ 		  <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
++		  <property name="can_focus">True</property>
+ 
+ 		  <child>
+ 		    <widget class="GtkHBox" id="cmap_hbox">
--- a/sun-system-settings.spec	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,232 +0,0 @@
-#
-# spec file for package sun-system-settings
-#
-# Copyright (c) 2003 Sun Microsystems, Inc.
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
-#
-
-
-Name:			sun-system-settings
-License:		GPL
-Group:			System/GUI/GNOME
-BuildArchitectures:	noarch
-Version:		1.20
-Release:		34
-Distribution:		Java Desktop System, Release 3
-Vendor:			Sun Microsystems, Inc.
-Summary:		Sun branded system settings
-Source:			%{name}-%{version}.tar.bz2 
-Source1:		sun-system-settings-l10n-po-1.14.tar.bz2
-Source2:		l10n-configure.sh
-URL:			http://sun.com
-BuildRoot:		%{_tmppath}/%{name}-%{version}-build
-Docdir:			%{_defaultdocdir}/%{name}
-Autoreqprov:		on
-
-%define intltool_version 0.25
-
-BuildRequires:  intltool >= %{intltool_version}
-
-%description
-This package contains .desktop items for system settings
-
-%prep
-%setup -q
-/usr/bin/bzcat -dc %SOURCE1|tar xf -
-
-bash -x %SOURCE2
-
-%build
-%ifos linux
-if [ -x /usr/bin/getconf ]; then
-  CPUS=`getconf _NPROCESSORS_ONLN`
-fi
-%else
-  CPUS=`/usr/sbin/psrinfo | grep on-line | wc -l | tr -d ' '`
-%endif
-if test "x$CPUS" = "x" -o $CPUS = 0; then
-  CPUS=1
-fi
-
-libtoolize --force
-aclocal $ACLOCAL_FLAGS -I %{_datadir}/aclocal/gnome2-macros -I .
-autoheader
-automake -a -c -f
-autoconf
-CFLAGS="$RPM_OPT_FLAGS" \
-./configure \
-	--prefix=%{_prefix} \
-	--sysconfdir=%{_sysconfdir} \
-	--localstatedir=/var/lib
-make -j $CPUS
-
-%install
-rm -rf $RPM_BUILD_ROOT
-make DESTDIR=$RPM_BUILD_ROOT install
-
-mkdir -p $RPM_BUILD_ROOT%{_bindir}
-for iii in yast2 YaST2; do
-  ln -sf consolehelper $RPM_BUILD_ROOT%{_bindir}/$iii
-done
-#clean up unpackaged files
-rm -Rf $RPM_BUILD_ROOT%{_sysconfdir}/X11/sysconfig
-
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-%post
-
-%files
-%defattr (-, root, root)
-%config(noreplace) %{_sysconfdir}/pam.d/*
-%config(noreplace) %{_sysconfdir}/security/console.apps/*
-%{_datadir}/applications/*
-%{_datadir}/control-center-2.0/capplets/*
-%{_datadir}/locale/*/LC_MESSAGES/*.mo
-%{_bindir}/*
-
-%changelog
-* Tue Feb 1 2005 [email protected]
-- Re-bump to 1.20 to fix my screwups.
-
-* Tue Feb 1 2005 [email protected]
-- Bump to 1.19. Fixes #6207542 and #6207541.
-
-* Wed Jan 19 2005 [email protected]
-- changing the date on previus entry as it's causing rpmbuild errors.
-  Glynn, we're in 2005 now! ;-)
-
-* Wed Jan 19 2005 - [email protected]
-- Bump to 1.18. Fixes #6218544 and #6218548.
-
-* Thu Dec 16 2004 - [email protected]
-- Bump to 1.17. Fixes #6207075.
-
-* Tue Dec 14 2004 - [email protected]
-- Bump to 1.16, which includes a fix for #6207076.
-
-* Fri Dec 10 2004 - [email protected]
-- Added patch sun-system-settings-02-bootloader-launch.diff to fix the problem
-  of bootloader not launching when clicked on the menu. Fixes #6204930.
-
-* Fri Nov 26 2004 - [email protected]
-- Add patch that removes the scanner menu entry, since there is no 
-  direct module available on SLES 9. Fixes stopper #6197929.
-
-* Wed Nov 24 2004 - [email protected]
-- Bump to 1.15. Fixes a lot of missing .desktop items. Really something
-  odd going on here, probably caused by a lot of other vfolder bugs in
-  the gnome-vfs module. This fix seperates the .desktop files into
-  a separate system-settings subdir of /usr/share/applications. Broken, huh?
-
-* Tue Nov 23 2004 - [email protected]
-- Bump to 1.14. Fixes a bunch of things, including stopper bug
-  #5109266.
-
-* Thu Oct 07 2004 - [email protected]
-- Added sun-system-settings-01-g11n-alllinguas.diff to add cs,hu locales
-
-* Fri Jul 16 2004 - [email protected]
-- resync with HEAD
-
-* Wed Jul 14 2004 - [email protected]
-- removed /etc/X11/sysconfig and /usr/share/gnome/applications from %files
-
-* Wed Jul 14 2004 - [email protected]
-- Bump to 1.13
-
-* Thu Jul 08 2004 - [email protected]
-- Updated l10n content to sun-system-settings-l10n-po-1.2.tar.bz2
-
-* Thu Jul 08 2004 - [email protected]
-- ported to rpm4
-
-* Wed Jul 07 2004 - [email protected]
-- added "-j $CPUS" to make to speed up builds
-
-* Tue Jun 1 2004 - [email protected]
-- Bump to 1.12
-
-* Wed May 19 2004 - [email protected]
-- Bump to 1.11
-
-* Wed May 12 2004 - [email protected]
-- Updated l10n content to sun-system-settings-l10n-po-1.1.tar.bz2
-
-* Thu May 06 2004 - [email protected]
-- Bump to 1.10
-
-* Fri Apr 29 2004 - [email protected]
-- Bump to 1.9
-
-* Wed Mar 31 2004 - [email protected]
-- replace tar jxf with the more solaris friendly
-  bzcat piped through tar
-
-* Mon Mar 29 2004 - [email protected]
-- Adding sun-system-settings-l10n-po-1.0.tar.bz2 l10n content
-
-* Thu Mar 11 2004 - [email protected]
-- added sun-system-settings-01-g11n-potfiles.diff
-
-* Fri Mar 05 2004 - [email protected]
-- Bump tarball to 1.7
-
-* Fri Dec 12 2003 - [email protected]
-- Bump tarball to 1.5
-
-* Tue Dec 02 2003 - [email protected]
-- Bump tarball to 1.4
-
-* Fri Nov 14 2003 - [email protected]
-- Bump tarball to 1.2
-
-* Thu Nov 13 2003 - [email protected]
-- Bump tarball to 1.1
-
-* Wed Oct 31 2003 - [email protected]
-- Bump tarball to 1.0
-
-* Tue Oct 21 2003 - [email protected]
-- Remove the potfiles patch, since it's not 
-  needed anymore.
-
-* Mon Oct 20 2003 - [email protected]
-- Update tarball.
-
-* Tue Aug 19 2003 - <[email protected]>
-- Update tarball.
-
-* Wed Aug 13 2003 - <[email protected]>
-- Update tarball.
-
-* Sat Aug 02 2003 - <[email protected]>
-- Yet another new tarball. Bump version, reset release.
-
-* Sat Aug 02 2003 - <[email protected]>
-- New tarball. Bump version, reset release.
-
-* Sun Jul 27 2003 - <[email protected]>
-- Update yast2.console.apps
-
-* Sat Jul 26 2003 - <[email protected]>
-- Fixes to make pam_timestamp work.
-
-* Thu Jul 24 2003 - <[email protected]>
-- New tarball.
-
-* Wed Jul 23 2003 - <[email protected]>
-- Add categories and stuff
-
-* Wed Jul 23 2003 - <[email protected]>
-- wrap YaST2 as well. Sigh.
-
-* Wed Jul 23 2003 - <[email protected]>
-- wrap yast2 with userhelper
-
-* Mon Jul 21 2003 - [email protected]
-- New tarball
-
-* Wed Jul 09 2003 - [email protected]
-- Initial Sun release
--- a/yast2-theme-Sun.spec	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-#
-# Copyright (c) 2003 Sun Microsystems Inc.
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
-#
-
-Name: yast2-theme-Sun
-Group: User Interface/Desktops
-Version: 0.9.2
-Release: 34
-Distribution: Java Desktop System, Release 3
-Vendor: Sun Microsystems, Inc.
-Copyright: Commercial
-Provides: %{name}
-Provides: %{name}-%{version}-%{release}
-URL: http://www.sun.com
-Source: %{name}-%{version}.tar.bz2
-Source1: l10n-configure.sh
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
-Summary: Sun branded YaST2 theme
-Autoreqprov:  on
-
-PreReq: yast2-theme-SuSELinux
-Requires: yast2-control-center 
-
-%define yast2_dir /usr/share/YaST2
-%define theme_dir %{yast2_dir}/theme
-
-%description
-This package contains a Sun branded YaST2 theme
-
-Property of Sun Microsystems Inc., 2004
-
-%prep
-%setup -q
-/usr/bin/bzcat -dc %SOURCE1|tar xf -
-
-bash -x %SOURCE1
-
-%build
-./configure --prefix=%{_prefix}  \
-	    --libdir=%{_prefix}/%_lib \
-	    --sysconfdir=%{_sysconfdir}
-make
-cd -
-
-%install
-make install DESTDIR="$RPM_BUILD_ROOT"
-
-%post
-cd /usr/share/YaST2/theme
-rm -f current
-ln -s Sun current
-
-%clean
-[ "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
-
-%files
-%defattr(-,root,root)
-%dir /usr/share/YaST2/theme/Sun/*
-
-%{theme_dir}
-
-%changelog
-*Thu Sep 2 2004 - Erwann Chenede - <[email protected]>
-	Rewrote the spec file for SuSE 9.1
-*Tue Sep 2 2003 - <[email protected]> %Version
-	Replaced broken button graphics
-*Tue Aug 26 2003 - <[email protected]> %Version
-	Added PreReq depend
-	Renamed package
-*Fri Jun 13 2003 Carl Gadener <[email protected]>
-	Version 0.8-2
-	Generalized Makefile and simplified spec file
-*Sat Jun 7 2003 Carl Gadener <[email protected]>
-	Version 0.8-1
-	Creation of RPM package
--- a/yast2-trans-cs.spec	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,224 +0,0 @@
-#
-# spec file for package yast2-trans-cs (Version 2.9.21)
-#
-# Copyright (c) 2004 SUSE LINUX AG, Nuernberg, Germany.
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
-#
-# Please submit bugfixes or comments via http://www.suse.de/feedback/
-#
-
-# norootforbuild
-# neededforbuild  autoconf automake gettext yast2-devtools
-
-
-Name:         yast2-trans-cs
-Version:      2.9.21
-Release:      1.34
-License:      GPL
-Vendor:       Sun Microsystems, Inc.
-Distribution: Java Desktop System, Release 3
-Group:        System/YaST
-BuildRoot:    %{_tmppath}/%{name}-%{version}-build
-Source0:      yast2-trans-cs-2.9.21.tar.bz2
-prefix:		/usr
-BuildArchitectures:	noarch
-Provides:     yast2-trans-inst-general:/usr/lib/YaST2/locale/cs/LC_MESSAGES/general.mo
-Provides:     y2t_inst:/usr/lib/YaST2/locale/cs/LC_MESSAGES/installation.mo
-Provides:     y2t_menu:/usr/lib/YaST2/locale/cs/LC_MESSAGES/menu.mo
-Provides:     y2t_inst-general:/usr/lib/YaST2/locale/cs/LC_MESSAGES/general.mo
-Summary:      YaST2 - Czech Translations
-
-%description
-YaST2 - Czech translations
-
-
-
-%prep
-%setup -n yast2-trans-cs-2.9.21
-
-%build
-autoreconf --force --install
-%{?suse_update_config:%{suse_update_config -f}}
-./configure --libdir=%{_libdir} --prefix=%{prefix}
-%if %ul_version > 0
-for f in po/*.po ; do
-  cp $f $f.orig
-  awk -f %{prefix}/lib/YaST2/bin/cleanuppo.awk $f.orig >$f
-done
-%endif
-%if %sles_version == 8
-for f in po/*.po ; do
-  cp $f $f.orig
-  awk -f %{prefix}/lib/YaST2/bin/cleanuppo.awk -v sles=8 $f.orig >$f
-done
-%endif
-make %{?jobs:-j%jobs}
-
-%install
-[ "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
-make install DESTDIR="$RPM_BUILD_ROOT"
-
-%clean
-[ "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
-
-%files
-%defattr(-,root,root)
-%doc %{prefix}/share/doc/packages/yast2-trans-cs
-/usr/share/YaST2/locale
-
-%changelog -n yast2-trans-cs
-* Fri Jan 28 2005 - [email protected]
-- Updating translations for latest vendor cycle
-
-* Mon Jun 21 2004 - [email protected]
-- Update to version 2.9.21.
-* Thu Jun 17 2004 - [email protected]
-- Update to version 2.9.20.
-* Wed Jun 16 2004 - [email protected]
-- Update to version 2.9.19.
-* Wed Jun 09 2004 - [email protected]
-- Update to version 2.9.18.
-* Thu Jun 03 2004 - [email protected]
-- Update to version 2.9.17.
-* Wed Jun 02 2004 - [email protected]
-- Update to version 2.9.16.
-* Thu May 27 2004 - [email protected]
-- Update to version 2.9.15.
-* Wed May 26 2004 - [email protected]
-- Update to version 2.9.14.
-* Wed May 26 2004 - [email protected]
-- Update to version 2.9.13.
-* Mon May 24 2004 - [email protected]
-- Update to version 2.9.12.
-* Fri May 21 2004 - [email protected]
-- Update to version 2.9.11.
-* Wed Apr 28 2004 - [email protected]
-- Update to version 2.9.10.
-* Mon Apr 05 2004 - [email protected]
-- Update to version 2.9.9.
-* Fri Apr 02 2004 - [email protected]
-- Update to version 2.9.8.
-* Wed Mar 31 2004 - [email protected]
-- Update to version 2.9.7.
-* Tue Mar 30 2004 - [email protected]
-- Update to version 2.9.6.
-* Tue Mar 30 2004 - [email protected]
-- Update to version 2.9.5.
-* Mon Mar 29 2004 - [email protected]
-- Update to version 2.9.4.
-* Mon Mar 29 2004 - [email protected]
-- Update to version 2.9.3.
-* Mon Mar 22 2004 - [email protected]
-- Update to version 2.9.2.
-* Fri Mar 12 2004 - [email protected]
-- Update to version 2.9.1.
-* Mon Oct 13 2003 - [email protected]
-- Update to version 2.8.14.
-* Tue Sep 23 2003 - [email protected]
-- fixed typo in sound.cs.po
-- Update to version 2.8.13.
-* Mon Sep 22 2003 - [email protected]
-- Update to version 2.8.12.
-* Fri Sep 19 2003 - [email protected]
-- Update to version 2.8.11.
-* Thu Sep 18 2003 - [email protected]
-- Update to version 2.8.10.
-* Wed Sep 17 2003 - [email protected]
-- Update to version 2.8.9.
-* Tue Sep 16 2003 - [email protected]
-- Update to version 2.8.8.
-* Tue Sep 16 2003 - [email protected]
-- Update to version 2.8.7.
-* Mon Sep 15 2003 - [email protected]
-- Update to version 2.8.6.
-* Fri Sep 12 2003 - [email protected]
-- Update to version 2.8.5.
-* Mon Sep 08 2003 - [email protected]
-- Update to version 2.8.4.
-* Mon Sep 01 2003 - [email protected]
-- Update to version 2.8.3.
-* Wed Aug 27 2003 - [email protected]
-- Update to version 2.8.2.
-* Fri Aug 22 2003 - [email protected]
-- Update to version 2.8.1.
-* Mon Mar 17 2003 - [email protected]
-- 2.7.9
-* Fri Mar 14 2003 - [email protected]
-- 2.7.8
-* Thu Mar 13 2003 - [email protected]
-- 2.7.7
-* Thu Mar 13 2003 - [email protected]
-- Update to version 2.7.6.
-* Wed Mar 12 2003 - [email protected]
-- Update to version 2.7.5.
-* Wed Mar 12 2003 - [email protected]
-- Update to version 2.7.4.
-* Tue Mar 11 2003 - [email protected]
-- Update to version 2.7.3.
-* Tue Mar 11 2003 - [email protected]
-- Update to version 2.7.2.
-* Tue Feb 25 2003 - [email protected]
-- Update to version 2.7.1.
-* Tue Oct 29 2002 - [email protected]
-- 2.6.28
-* Tue Oct 15 2002 - [email protected]
-- 2.6.27
-* Fri Oct 11 2002 - [email protected]
-- Update to version 2.6.26.
-* Wed Oct 09 2002 - [email protected]
-- 2.6.25
-* Mon Oct 07 2002 - [email protected]
-- 2.6.24
-* Mon Oct 07 2002 - [email protected]
-- Update to version 2.6.23.
-* Wed Oct 02 2002 - [email protected]
-- Update to version 2.6.22.
-* Fri Sep 20 2002 - [email protected]
-- 2.6.21
-* Wed Sep 18 2002 - [email protected]
-- Update to version 2.6.20.
-* Wed Sep 18 2002 - [email protected]
-- Update to version 2.6.19.
-* Wed Sep 18 2002 - [email protected]
-- Update to version 2.6.18.
-* Wed Sep 18 2002 - [email protected]
-- Update to version 2.6.17.
-* Wed Sep 18 2002 - [email protected]
-- fixed typos, inconsistencies between help text and dialog content
-  (profile-manager, printer, scanner, sound, tv)
-* Wed Sep 18 2002 - [email protected]
-- fixed typos, inconsistencies between help text and dialog content
-* Mon Sep 16 2002 - [email protected]
-- Update to version 2.6.14 (ltinkl + current packager-related pots).
-- Finally all messages are translated.
-* Thu Sep 12 2002 - [email protected]
-- Update to version 2.6.13.
-* Thu Sep 12 2002 - [email protected]
-- Update to version 2.6.12.
-* Wed Sep 11 2002 - [email protected]
-- Update to version 2.6.11.
-* Fri Sep 06 2002 - [email protected]
-- Update to version 2.6.10.
-* Fri Sep 06 2002 - [email protected]
-- update to version 2.6.9
-* Thu Sep 05 2002 - [email protected]
-- Update to version 2.6.8.
-* Thu Sep 05 2002 - [email protected]
-- Update to version 2.6.7.
-* Thu Sep 05 2002 - [email protected]
-- Update to version 2.6.6.
-* Thu Sep 05 2002 - [email protected]
-- Update to version 2.6.5.
-* Thu Sep 05 2002 - [email protected]
-- Update to version 2.6.4.
-* Mon Sep 02 2002 - [email protected]
-- Update to version 2.6.3.
-* Mon Aug 26 2002 - [email protected]
-- Update to version 2.6.2.
-* Fri Aug 02 2002 - [email protected]
-- Update to version 2.6.1.
-* Wed Jul 03 2002 - [email protected]
-- Version 2.6.0 (for testing).
-* Fri Jun 07 2002 - [email protected]
-- initial version
--- a/yast2-trans-de.spec	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,249 +0,0 @@
-#
-# spec file for package yast2-trans-de (Version 2.9.32)
-#
-# Copyright (c) 2004 SUSE LINUX AG, Nuernberg, Germany.
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
-#
-# Please submit bugfixes or comments via http://www.suse.de/feedback/
-#
-
-# norootforbuild
-# neededforbuild  autoconf automake gettext yast2-devtools
-
-
-Name:         yast2-trans-de
-Version:      2.9.32
-Release:      1.34
-License:      GPL
-Vendor:       Sun Microsystems, Inc.
-Distribution: Java Desktop System, Release 3
-Group:        System/YaST
-BuildRoot:    %{_tmppath}/%{name}-%{version}-build
-Source0:      yast2-trans-de-2.9.32.tar.bz2
-prefix:		/usr
-# Requires:	yast2-config-XXpkgXX
-BuildArchitectures:	noarch
-Provides:     yast2-trans-inst-general:/usr/lib/YaST2/locale/de/LC_MESSAGES/general.mo
-Provides:     y2t_inst:/usr/lib/YaST2/locale/de/LC_MESSAGES/installation.mo
-Provides:     y2t_menu:/usr/lib/YaST2/locale/de/LC_MESSAGES/menu.mo
-Provides:     y2t_inst-general:/usr/lib/YaST2/locale/de/LC_MESSAGES/general.mo
-Summary:      YaST2 - German Translations
-
-%description
-YaST2 - German translations.
-
-
-
-%prep
-%setup -n yast2-trans-de-2.9.32
-
-%build
-autoreconf --force --install
-%{?suse_update_config:%{suse_update_config -f}}
-./configure --libdir=%{_libdir} --prefix=%{prefix}
-%if %ul_version > 0
-for f in po/*.po ; do
-  cp $f $f.orig
-  awk -f %{prefix}/lib/YaST2/bin/cleanuppo.awk $f.orig >$f
-done
-%endif
-%if %sles_version == 8
-for f in po/*.po ; do
-  cp $f $f.orig
-  awk -f %{prefix}/lib/YaST2/bin/cleanuppo.awk -v sles=8 $f.orig >$f
-done
-%endif
-make %{?jobs:-j%jobs}
-
-%install
-[ "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
-make install DESTDIR="$RPM_BUILD_ROOT"
-
-%clean
-[ "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
-
-%files
-%defattr(-,root,root)
-%doc %{prefix}/share/doc/packages/yast2-trans-de
-/usr/share/YaST2/locale
-
-%changelog -n yast2-trans-de
-* Fri Jan 28 2005 - [email protected]
-- Updating translations for latest vendor cycle
-
-* Tue Jun 29 2004 - [email protected]
-- Update to version 2.9.32.
-* Mon Jun 28 2004 - [email protected]
-- Update to version 2.9.31.
-* Fri Jun 25 2004 - [email protected]
-- Update to version 2.9.30.
-* Fri Jun 25 2004 - [email protected]
-- Update to version 2.9.29.
-* Wed Jun 16 2004 - [email protected]
-- Update to version 2.9.28.
-* Tue Jun 15 2004 - [email protected]
-- Update to version 2.9.27.
-* Wed Jun 09 2004 - [email protected]
-- Update to version 2.9.26.
-* Thu Jun 03 2004 - [email protected]
-- Update to version 2.9.25.
-* Wed Jun 02 2004 - [email protected]
-- Update to version 2.9.24.
-* Fri May 28 2004 - [email protected]
-- Update to version 2.9.23.
-* Thu May 27 2004 - [email protected]
-- Update to version 2.9.22.
-* Wed May 26 2004 - [email protected]
-- Update to version 2.9.21.
-* Wed May 26 2004 - [email protected]
-- Update to version 2.9.20.
-* Tue May 25 2004 - [email protected]
-- Update to version 2.9.19.
-* Fri May 21 2004 - [email protected]
-- Update to version 2.9.18.
-* Wed Apr 28 2004 - [email protected]
-- Update to version 2.9.17.
-* Fri Apr 16 2004 - [email protected]
-- Update to version 2.9.16.
-* Mon Apr 05 2004 - [email protected]
-- Update to version 2.9.15.
-* Fri Apr 02 2004 - [email protected]
-- Update to version 2.9.14.
-* Wed Mar 31 2004 - [email protected]
-- Update to version 2.9.13.
-* Tue Mar 30 2004 - [email protected]
-- Update to version 2.9.12.
-* Tue Mar 30 2004 - [email protected]
-- Update to version 2.9.11.
-* Mon Mar 29 2004 - [email protected]
-- Update to version 2.9.10.
-* Fri Mar 26 2004 - [email protected]
-- Update to version 2.9.9.
-* Wed Mar 24 2004 - [email protected]
-- Update to version 2.9.8.
-* Mon Mar 22 2004 - [email protected]
-- Update to version 2.9.7.
-* Mon Mar 22 2004 - [email protected]
-- Update to version 2.9.6.
-* Fri Mar 19 2004 - [email protected]
-- Update to version 2.9.5.
-* Thu Mar 18 2004 - [email protected]
-- Update to version 2.9.4.
-* Mon Mar 15 2004 - [email protected]
-- Update to version 2.9.3.
-* Fri Mar 12 2004 - [email protected]
-- Update to version 2.9.2.
-* Tue Mar 09 2004 - [email protected]
-- Update to version 2.9.1.
-* Mon Oct 13 2003 - [email protected]
-- Update to version 2.8.12.
-* Mon Sep 22 2003 - [email protected]
-- Update to version 2.8.11.
-* Thu Sep 18 2003 - [email protected]
-- Update to version 2.8.10.
-* Wed Sep 17 2003 - [email protected]
-- Update to version 2.8.9.
-* Tue Sep 16 2003 - [email protected]
-- Update to version 2.8.8.
-* Mon Sep 15 2003 - [email protected]
-- Update to version 2.8.7.
-* Mon Sep 15 2003 - [email protected]
-- Update to version 2.8.6.
-* Fri Sep 12 2003 - [email protected]
-- Update to version 2.8.5.
-* Mon Sep 08 2003 - [email protected]
-- Update to version 2.8.4.
-* Mon Sep 01 2003 - [email protected]
-- Update to version 2.8.3.
-* Mon Sep 01 2003 - [email protected]
-- Update to version 2.8.2.
-* Tue Aug 26 2003 - [email protected]
-- Update to version 2.8.1.
-* Mon Mar 17 2003 - [email protected]
-- Update to version 2.7.14.
-* Fri Mar 14 2003 - [email protected]
-- Update to version 2.7.13.
-* Thu Mar 13 2003 - [email protected]
-- Update to version 2.7.12.
-* Wed Mar 12 2003 - [email protected]
-- Update to version 2.7.11.
-* Wed Mar 12 2003 - [email protected]
-- Update to version 2.7.10.
-* Tue Mar 11 2003 - [email protected]
-- Update to version 2.7.9.
-* Tue Mar 11 2003 - [email protected]
-- Update to version 2.7.8.
-* Tue Mar 11 2003 - [email protected]
-- Update to version 2.7.7.
-* Tue Mar 11 2003 - [email protected]
-- Update to version 2.7.6.
-* Mon Mar 10 2003 - [email protected]
-- Update to version 2.7.5.
-* Mon Mar 03 2003 - [email protected]
-- Update to version 2.7.4.
-* Mon Feb 24 2003 - [email protected]
-- Update to version 2.7.3.
-* Mon Feb 17 2003 - [email protected]
-- Update to version 2.7.2.
-* Fri Feb 14 2003 - [email protected]
-- Update to version 2.7.1.
-* Wed Nov 20 2002 - [email protected]
-- Update to version 2.6.26.
-* Mon Nov 04 2002 - [email protected]
-- Update to version 2.6.25.
-* Mon Oct 28 2002 - [email protected]
-- Update to version 2.6.24.
-* Fri Oct 11 2002 - [email protected]
-- Update to version 2.6.23.
-* Wed Oct 09 2002 - [email protected]
-- Update to version 2.6.22.
-* Wed Oct 09 2002 - [email protected]
-- Shorten a message to work around a display problem [# 19756].
-- Work around keyboard accel clash [# 20212].
-* Tue Oct 08 2002 - [email protected]
-- Update to version 2.6.21.
-* Mon Oct 07 2002 - [email protected]
-- Update to version 2.6.20.
-* Wed Oct 02 2002 - [email protected]
-- Update to version 2.6.19.
-* Thu Sep 12 2002 - [email protected]
-- Update to version 2.6.18.
-* Thu Sep 12 2002 - [email protected]
-- Update to version 2.6.17.
-* Thu Sep 12 2002 - [email protected]
-- Update to version 2.6.16.
-* Thu Sep 12 2002 - [email protected]
-- Update to version 2.6.15.
-* Wed Sep 11 2002 - [email protected]
-- Update to version 2.6.14.
-* Tue Sep 10 2002 - [email protected]
-- fixed one umlaut to use utf-8 (make packaeg build)
-* Mon Sep 09 2002 - [email protected]
-- Update to version 2.6.13.
-* Fri Sep 06 2002 - [email protected]
-- Update to version 2.6.12.
-* Thu Sep 05 2002 - [email protected]
-- Update to version 2.6.11.
-* Thu Sep 05 2002 - [email protected]
-- Update to version 2.6.10.
-* Thu Sep 05 2002 - [email protected]
-- Update to version 2.6.9.
-* Mon Sep 02 2002 - [email protected]
-- Update to version 2.6.8.
-* Mon Aug 26 2002 - [email protected]
-- Update to version 2.6.7.
-* Mon Aug 19 2002 - [email protected]
-- Update to version 2.6.6.
-* Fri Aug 16 2002 - [email protected]
-- Update to version 2.6.5.
-* Mon Aug 12 2002 - [email protected]
-- Update to version 2.6.4.
-* Fri Aug 09 2002 - [email protected]
-- Update to version 2.6.3.
-* Mon Aug 05 2002 - [email protected]
-- Update to version 2.6.2.
-* Fri Aug 02 2002 - [email protected]
-- Update to version 2.6.1.
-* Fri Jun 07 2002 - [email protected]
-- initial version
--- a/yast2-trans-en_GB.spec	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,132 +0,0 @@
-#
-# spec file for package yast2-trans-en_GB (Version 2.9.6)
-#
-# Copyright (c) 2004 SUSE LINUX AG, Nuernberg, Germany.
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
-#
-# Please submit bugfixes or comments via http://www.suse.de/feedback/
-#
-
-# norootforbuild
-# neededforbuild  autoconf automake gettext yast2-devtools
-
-Name:         yast2-trans-en_GB
-Version:      2.9.6
-Release:      1.34
-License:      GPL
-Vendor:       Sun Microsystems, Inc.
-Distribution: Java Desktop System, Release 3
-Group:        System/YaST
-BuildRoot:    %{_tmppath}/%{name}-%{version}-build
-Source0:      yast2-trans-en_GB-2.9.6.tar.bz2
-Source1:      installation.en_GB.po
-prefix:		/usr
-BuildArchitectures:	noarch
-Provides:     yast2-trans-inst-general:/usr/lib/YaST2/locale/en_GB/LC_MESSAGES/general.mo
-Provides:     y2t_inst:/usr/lib/YaST2/locale/en_GB/LC_MESSAGES/installation.mo
-Provides:     y2t_menu:/usr/lib/YaST2/locale/en_GB/LC_MESSAGES/menu.mo
-Provides:     y2t_inst-general:/usr/lib/YaST2/locale/en_GB/LC_MESSAGES/general.mo
-Summary:      YaST2 - British English Translations
-
-%description
-YaST2 - British English Translations
-
-%prep
-%setup -n yast2-trans-en_GB-2.9.6
-cp %SOURCE1 po
-%if %ul_version > 0
-pushd po >/dev/null
-export LANG=en_US.UTF-8
-msgopt="--no-wrap --force-po"
-for f in *po; do
-  # echo $f
-  # msgfmt --stat $f
-  msgattrib $msgopt --translated --no-fuzzy --no-obsolete -o xxxgood-$f $f
-  msgfilter $msgopt -i $f -o - sed -e '/^Content-Type:/!d' \
-    | msgattrib $msgopt --clear-fuzzy --no-obsolete -o - - \
-    | msgen --no-wrap -o xxxinit-$f -
-  msgcat $msgopt --use-first -o $f xxxgood-$f xxxinit-$f
-  # msgfmt --stat $f
-done
-rm -f xxxgood-* xxxinit-*
-unset LANG
-popd >/dev/null
-%endif
-
-%build
-autoreconf --force --install
-%{?suse_update_config:%{suse_update_config -f}}
-./configure --libdir=%{_libdir} --prefix=%{prefix}
-%if %ul_version > 0
-for f in po/*.po ; do
-  cp $f $f.orig
-  awk -f %{prefix}/lib/YaST2/bin/cleanuppo.awk $f.orig >$f
-done
-%endif
-%if %sles_version > 0
-for f in po/*.po ; do
-  cp $f $f.orig
-  awk -f %{prefix}/lib/YaST2/bin/cleanuppo.awk -v sles=8 $f.orig >$f
-done
-%endif
-make %{?jobs:-j%jobs}
-
-%install
-make install DESTDIR="$RPM_BUILD_ROOT"
-
-%clean
-[ "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
-
-%files
-%defattr(-,root,root)
-%doc %{prefix}/share/doc/packages/yast2-trans-en_GB
-/usr/share/YaST2/locale
-
-%changelog -n yast2-trans-en_GB
-* Wed May 04 2005 - [email protected]
-- added Vendor and Distribution headers (#6218401)
-* Mon Feb 14 2005 - [email protected]
-- Added installation.en_GB.po for Sun branding issue.
-* Wed Jun 02 2004 - [email protected]
-- Update to version 2.9.6.
-* Fri May 28 2004 - [email protected]
-- Update to version 2.9.5.
-* Fri Apr 02 2004 - [email protected]
-- Update to version 2.9.4.
-* Fri Apr 02 2004 - [email protected]
-- Update to version 2.9.3.
-* Fri Mar 26 2004 - [email protected]
-- Update to version 2.9.2.
-* Fri Mar 19 2004 - [email protected]
-- Update to version 2.9.1.
-* Tue Sep 23 2003 - [email protected]
-- Update to version 2.8.6.
-* Thu Sep 18 2003 - [email protected]
-- Update to version 2.8.5.
-* Tue Sep 16 2003 - [email protected]
-- Update to version 2.8.4.
-* Mon Sep 15 2003 - [email protected]
-- Update to version 2.8.3.
-* Fri Sep 12 2003 - [email protected]
-- Update to version 2.8.2.
-* Tue Sep 09 2003 - [email protected]
-- Update to version 2.8.1.
-* Thu Mar 13 2003 - [email protected]
-- Update to version 2.7.3.
-* Fri Mar 07 2003 - [email protected]
-- Update to version 2.7.2.
-* Tue Mar 04 2003 - [email protected]
-- Update to version 2.7.1.
-* Fri Oct 11 2002 - [email protected]
-- Update to version 2.6.5.
-* Thu Sep 12 2002 - [email protected]
-- Update to version 2.6.4.
-* Thu Sep 12 2002 - [email protected]
-- Update to version 2.6.3.
-* Mon Sep 09 2002 - [email protected]
-- Update to version 2.6.2.
-* Fri Sep 06 2002 - [email protected]
-- Update to version 2.6.1.
-* Fri Jun 07 2002 - [email protected]
-- initial version
--- a/yast2-trans-en_US.spec	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,142 +0,0 @@
-#
-# spec file for package yast2-trans-en_US (Version 2.9.7)
-#
-# Copyright (c) 2004 SUSE LINUX AG, Nuernberg, Germany.
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
-#
-# Please submit bugfixes or comments via http://www.suse.de/feedback/
-#
-
-# norootforbuild
-# neededforbuild  autoconf automake gettext yast2-devtools
-
-Name:         yast2-trans-en_US
-Version:      2.9.7
-Release:      1.34
-License:      GPL
-Vendor:       Sun Microsystems, Inc.
-Distribution: Java Desktop System, Release 3
-Group:        System/YaST
-BuildRoot:    %{_tmppath}/%{name}-%{version}-build
-Source0:      yast2-trans-en_US-2.9.7.tar.bz2
-Source1:      installation.en_US.po
-prefix:		/usr
-BuildArchitectures:	noarch
-Provides:     yast2-trans-inst-general:/usr/lib/YaST2/locale/en_US/LC_MESSAGES/general.mo
-Provides:     y2t_inst:/usr/lib/YaST2/locale/en_US/LC_MESSAGES/installation.mo
-Provides:     y2t_menu:/usr/lib/YaST2/locale/en_US/LC_MESSAGES/menu.mo
-Provides:     y2t_inst-general:/usr/lib/YaST2/locale/en_US/LC_MESSAGES/general.mo
-Summary:      YaST2 - American English Translations
-
-%description
-YaST2 - Translations for American English.
-
-
-
-%prep
-%setup -n yast2-trans-en_US-2.9.7
-cp %SOURCE1 po
-%if %ul_version > 0
-pushd po >/dev/null
-export LANG=en_US.UTF-8
-msgopt="--no-wrap --force-po"
-for f in *po; do
-  # echo $f
-  # msgfmt --stat $f
-  msgattrib $msgopt --translated --no-fuzzy --no-obsolete -o xxxgood-$f $f
-  msgfilter $msgopt -i $f -o - sed -e '/^Content-Type:/!d' \
-    | msgattrib $msgopt --clear-fuzzy --no-obsolete -o - - \
-    | msgen --no-wrap -o xxxinit-$f -
-  msgcat $msgopt --use-first -o $f xxxgood-$f xxxinit-$f
-  # msgfmt --stat $f
-done
-rm -f xxxgood-* xxxinit-*
-unset LANG
-popd >/dev/null
-%endif
-
-%build
-autoreconf --force --install
-%{?suse_update_config:%{suse_update_config -f}}
-./configure --libdir=%{_libdir} --prefix=%{prefix}
-%if %ul_version > 0
-for f in po/*.po ; do
-  cp $f $f.orig
-  awk -f %{prefix}/lib/YaST2/bin/cleanuppo.awk $f.orig >$f
-done
-%endif
-%if %sles_version > 0
-for f in po/*.po ; do
-  cp $f $f.orig
-  awk -f %{prefix}/lib/YaST2/bin/cleanuppo.awk -v sles=8 $f.orig >$f
-done
-%endif
-make %{?jobs:-j%jobs}
-
-%install
-make install DESTDIR="$RPM_BUILD_ROOT"
-
-%clean
-[ "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
-
-%files
-%defattr(-,root,root)
-%doc %{prefix}/share/doc/packages/yast2-trans-en_US
-/usr/share/YaST2/locale
-
-%changelog -n yast2-trans-en_US
-* Wed May 04 2005 - [email protected]
-- added Vendor and Distribution headers (#6218401)
-* Mon Feb 14 2005 - [email protected]
-- Added installation.en_US.po for Sun branding issue.
-* Wed Jun 02 2004 - [email protected]
-- Update to version 2.9.7.
-* Fri May 28 2004 - [email protected]
-- Update to version 2.9.6.
-* Fri Apr 02 2004 - [email protected]
-- Update to version 2.9.5.
-* Fri Apr 02 2004 - [email protected]
-- Update to version 2.9.4.
-* Fri Mar 26 2004 - [email protected]
-- Update to version 2.9.3.
-* Fri Mar 19 2004 - [email protected]
-- Update to version 2.9.2.
-* Mon Mar 15 2004 - [email protected]
-- Update to version 2.9.1.
-* Thu Sep 18 2003 - [email protected]
-- Update to version 2.8.5.
-* Tue Sep 16 2003 - [email protected]
-- Update to version 2.8.4.
-* Mon Sep 15 2003 - [email protected]
-- Update to version 2.8.3.
-* Fri Sep 12 2003 - [email protected]
-- Update to version 2.8.2.
-* Tue Sep 09 2003 - [email protected]
-- Update to version 2.8.1.
-* Thu Mar 13 2003 - [email protected]
-- Update to version 2.7.5.
-* Wed Mar 12 2003 - [email protected]
-- Update to version 2.7.4.
-* Fri Mar 07 2003 - [email protected]
-- Update to version 2.7.3.
-* Wed Mar 05 2003 - [email protected]
-- Update to version 2.7.2.
-* Tue Mar 04 2003 - [email protected]
-- Update to version 2.7.1.
-* Fri Oct 11 2002 - [email protected]
-- Update to version 2.6.7.
-* Mon Oct 07 2002 - [email protected]
-- Update to version 2.6.6.
-* Thu Sep 12 2002 - [email protected]
-- Update to version 2.6.5.
-* Thu Sep 12 2002 - [email protected]
-- Update to version 2.6.4.
-* Mon Sep 09 2002 - [email protected]
-- Update to version 2.6.3.
-* Fri Sep 06 2002 - [email protected]
-- Update to version 2.6.2.
-* Thu Sep 05 2002 - [email protected]
-- Update to version 2.6.1.
-* Tue Aug 20 2002 - [email protected]
-- initial version
--- a/yast2-trans-es.spec	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,143 +0,0 @@
-#
-# spec file for package yast2-trans-es (Version 2.9.17)
-#
-# Copyright (c) 2004 SUSE LINUX AG, Nuernberg, Germany.
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
-#
-# Please submit bugfixes or comments via http://www.suse.de/feedback/
-#
-
-# norootforbuild
-# neededforbuild  autoconf automake gettext yast2-devtools
-
-
-Name:         yast2-trans-es
-Version:      2.9.17
-Release:      1.34
-License:      GPL
-Vendor:       Sun Microsystems, Inc.
-Distribution: Java Desktop System, Release 3
-Group:        System/YaST
-BuildRoot:    %{_tmppath}/%{name}-%{version}-build
-Source0:      yast2-trans-es-2.9.17.tar.bz2
-prefix:		/usr
-BuildArchitectures:	noarch
-Provides:     yast2-trans-inst-general:/usr/lib/YaST2/locale/es/LC_MESSAGES/general.mo
-Provides:     y2t_inst:/usr/lib/YaST2/locale/es/LC_MESSAGES/installation.mo
-Provides:     y2t_menu:/usr/lib/YaST2/locale/es/LC_MESSAGES/menu.mo
-Provides:     y2t_inst-general:/usr/lib/YaST2/locale/es/LC_MESSAGES/general.mo
-Summary:      YaST2 - Spanish Translations
-
-%description
-YaST2 - Spanish Translations
-
-%prep
-%setup -n yast2-trans-es-2.9.17
-
-%build
-autoreconf --force --install
-%{?suse_update_config:%{suse_update_config -f}}
-./configure --libdir=%{_libdir} --prefix=%{prefix}
-%if %ul_version > 0
-for f in po/*.po ; do
-  cp $f $f.orig
-  awk -f %{prefix}/lib/YaST2/bin/cleanuppo.awk $f.orig >$f
-done
-%endif
-%if %sles_version == 8
-for f in po/*.po ; do
-  cp $f $f.orig
-  awk -f %{prefix}/lib/YaST2/bin/cleanuppo.awk -v sles=8 $f.orig >$f
-done
-%endif
-make %{?jobs:-j%jobs}
-
-%install
-[ "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
-make install DESTDIR="$RPM_BUILD_ROOT"
-
-%clean
-[ "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
-
-%files
-%defattr(-,root,root)
-%doc %{prefix}/share/doc/packages/yast2-trans-es
-/usr/share/YaST2/locale
-
-%changelog -n yast2-trans-es
-* Fri Jan 28 2005 - [email protected]
-- Updating translations for latest vendor cycle
-
-* Wed Jun 09 2004 - [email protected]
-- Update to version 2.9.17.
-* Thu Jun 03 2004 - [email protected]
-- Update to version 2.9.16.
-* Wed Jun 02 2004 - [email protected]
-- Update to version 2.9.15.
-* Wed May 26 2004 - [email protected]
-- Update to version 2.9.14.
-* Mon May 24 2004 - [email protected]
-- Update to version 2.9.13.
-* Fri May 21 2004 - [email protected]
-- Update to version 2.9.12.
-* Wed Apr 28 2004 - [email protected]
-- Update to version 2.9.11.
-* Fri Apr 02 2004 - [email protected]
-- Update to version 2.9.10.
-* Wed Mar 31 2004 - [email protected]
-- Update to version 2.9.9.
-* Tue Mar 30 2004 - [email protected]
-- Update to version 2.9.8.
-* Tue Mar 30 2004 - [email protected]
-- Update to version 2.9.7.
-* Mon Mar 29 2004 - [email protected]
-- Update to version 2.9.6.
-* Fri Mar 26 2004 - [email protected]
-- Update to version 2.9.5.
-* Mon Mar 22 2004 - [email protected]
-- Update to version 2.9.4.
-* Mon Mar 22 2004 - [email protected]
-- Update to version 2.9.3.
-* Thu Mar 18 2004 - [email protected]
-- Update to version 2.9.2.
-* Mon Mar 15 2004 - [email protected]
-- Update to version 2.9.1.
-* Thu Sep 18 2003 - [email protected]
-- Update to version 2.8.2.
-* Tue Aug 26 2003 - [email protected]
-- Update to version 2.8.1.
-* Wed Mar 12 2003 - [email protected]
-- Update to version 2.7.5.
-* Tue Mar 11 2003 - [email protected]
-- Update to version 2.7.4.
-* Mon Mar 10 2003 - [email protected]
-- Update to version 2.7.3.
-* Fri Mar 07 2003 - [email protected]
-- Update to version 2.7.2.
-* Tue Feb 25 2003 - [email protected]
-- Update to version 2.7.1.
-* Mon Nov 04 2002 - [email protected]
-- Update to version 2.6.11.
-* Tue Oct 08 2002 - [email protected]
-- Update to version 2.6.10.
-* Thu Sep 12 2002 - [email protected]
-- Update to version 2.6.9.
-* Thu Sep 12 2002 - [email protected]
-- Update to version 2.6.8.
-* Mon Sep 09 2002 - [email protected]
-- Update to version 2.6.7.
-* Fri Sep 06 2002 - [email protected]
-- Update to version 2.6.6.
-* Thu Sep 05 2002 - [email protected]
-- Update to version 2.6.5.
-* Thu Sep 05 2002 - [email protected]
-- Update to version 2.6.4.
-* Mon Aug 26 2002 - [email protected]
-- Update to version 2.6.3.
-* Fri Aug 16 2002 - [email protected]
-- Update to version 2.6.2.
-* Fri Aug 09 2002 - [email protected]
-- Update to version 2.6.1.
-* Fri Jun 07 2002 - [email protected]
-- initial version
--- a/yast2-trans-fr.spec	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,137 +0,0 @@
-#
-# spec file for package yast2-trans-fr (Version 2.9.10)
-#
-# Copyright (c) 2004 SUSE LINUX AG, Nuernberg, Germany.
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
-#
-# Please submit bugfixes or comments via http://www.suse.de/feedback/
-#
-
-# norootforbuild
-# neededforbuild  autoconf automake gettext yast2-devtools
-
-
-Name:         yast2-trans-fr
-Version:      2.9.10
-Release:      1.34
-License:      GPL
-Vendor:       Sun Microsystems, Inc.
-Distribution: Java Desktop System, Release 3
-Group:        System/YaST
-BuildRoot:    %{_tmppath}/%{name}-%{version}-build
-Source0:      yast2-trans-fr-2.9.10.tar.bz2
-prefix:		/usr
-BuildArchitectures:	noarch
-Provides:     yast2-trans-inst-general:/usr/lib/YaST2/locale/fr/LC_MESSAGES/general.mo
-Provides:     y2t_inst:/usr/lib/YaST2/locale/fr/LC_MESSAGES/installation.mo
-Provides:     y2t_menu:/usr/lib/YaST2/locale/fr/LC_MESSAGES/menu.mo
-Provides:     y2t_inst-general:/usr/lib/YaST2/locale/fr/LC_MESSAGES/general.mo
-Summary:      YaST2 - French Translations
-
-%description
-YaST2 - French Translations
-
-%prep
-%setup -n yast2-trans-fr-2.9.10
-
-%build
-autoreconf --force --install
-%{?suse_update_config:%{suse_update_config -f}}
-./configure --libdir=%{_libdir} --prefix=%{prefix}
-%if %ul_version > 0
-for f in po/*.po ; do
-  cp $f $f.orig
-  awk -f %{prefix}/lib/YaST2/bin/cleanuppo.awk $f.orig >$f
-done
-%endif
-%if %sles_version == 8
-for f in po/*.po ; do
-  cp $f $f.orig
-  awk -f %{prefix}/lib/YaST2/bin/cleanuppo.awk -v sles=8 $f.orig >$f
-done
-%endif
-make %{?jobs:-j%jobs}
-
-%install
-[ "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
-make install DESTDIR="$RPM_BUILD_ROOT"
-
-%clean
-[ "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
-
-%files
-%defattr(-,root,root)
-%doc %{prefix}/share/doc/packages/yast2-trans-fr
-/usr/share/YaST2/locale
-
-%changelog -n yast2-trans-fr
-* Fri Jan 28 2005 - [email protected]
-- Updating translations for latest vendor cycle
-
-* Wed Jun 09 2004 - [email protected]
-- Update to version 2.9.10.
-* Wed Jun 02 2004 - [email protected]
-- Update to version 2.9.9.
-* Fri May 28 2004 - [email protected]
-- Update to version 2.9.8.
-* Wed May 26 2004 - [email protected]
-- Update to version 2.9.7.
-* Tue May 25 2004 - [email protected]
-- Update to version 2.9.6.
-* Wed Apr 28 2004 - [email protected]
-- Update to version 2.9.5.
-* Fri Apr 02 2004 - [email protected]
-- Update to version 2.9.4.
-* Wed Mar 31 2004 - [email protected]
-- Update to version 2.9.3.
-* Mon Mar 22 2004 - [email protected]
-- Update to version 2.9.2.
-* Mon Mar 15 2004 - [email protected]
-- Update to version 2.9.1.
-* Fri Sep 19 2003 - [email protected]
-- Update to version 2.8.7.
-* Thu Sep 18 2003 - [email protected]
-- Update to version 2.8.6.
-* Tue Sep 16 2003 - [email protected]
-- Update to version 2.8.5.
-* Fri Sep 12 2003 - [email protected]
-- Update to version 2.8.4.
-* Wed Aug 27 2003 - [email protected]
-- Update to version 2.8.3.
-* Tue Aug 26 2003 - [email protected]
-- Update to version 2.8.2.
-* Fri Aug 22 2003 - [email protected]
-- Update to version 2.8.1.
-* Fri Mar 14 2003 - [email protected]
-- Update to version 2.7.7.
-* Wed Mar 12 2003 - [email protected]
-- Update to version 2.7.6.
-* Tue Mar 11 2003 - [email protected]
-- Update to version 2.7.5.
-* Tue Mar 11 2003 - [email protected]
-- Update to version 2.7.4.
-* Mon Mar 03 2003 - [email protected]
-- Update to version 2.7.3.
-* Tue Feb 25 2003 - [email protected]
-- Update to version 2.7.2.
-* Mon Feb 17 2003 - [email protected]
-- Update to version 2.7.1.
-* Mon Nov 04 2002 - [email protected]
-- Update to version 2.6.8.
-* Tue Oct 08 2002 - [email protected]
-- Update to version 2.6.7.
-* Wed Sep 18 2002 - [email protected]
-- Update to version 2.6.6.
-* Wed Sep 18 2002 - [email protected]
-- Update to version 2.6.5.
-* Thu Sep 12 2002 - [email protected]
-- Update to version 2.6.4.
-* Thu Sep 05 2002 - [email protected]
-- Update to version 2.6.3.
-* Mon Sep 02 2002 - [email protected]
-- Update to version 2.6.2.
-* Fri Aug 09 2002 - [email protected]
-- Update to version 2.6.1.
-* Fri Jun 07 2002 - [email protected]
-- initial version
--- a/yast2-trans-hu.spec	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,137 +0,0 @@
-#
-# spec file for package yast2-trans-hu (Version 2.9.11)
-#
-# Copyright (c) 2004 SUSE LINUX AG, Nuernberg, Germany.
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
-#
-# Please submit bugfixes or comments via http://www.suse.de/feedback/
-#
-
-# norootforbuild
-# neededforbuild  autoconf automake gettext yast2-devtools
-
-
-Name:         yast2-trans-hu
-Version:      2.9.11
-Release:      1.34
-License:      GPL
-Vendor:       Sun Microsystems, Inc.
-Distribution: Java Desktop System, Release 3
-Group:        System/YaST
-BuildRoot:    %{_tmppath}/%{name}-%{version}-build
-Source0:      yast2-trans-hu-2.9.11.tar.bz2
-prefix:		/usr
-BuildArchitectures:	noarch
-Provides:     yast2-trans-inst-general:/usr/lib/YaST2/locale/hu/LC_MESSAGES/general.mo
-Provides:     y2t_inst:/usr/lib/YaST2/locale/hu/LC_MESSAGES/installation.mo
-Provides:     y2t_menu:/usr/lib/YaST2/locale/hu/LC_MESSAGES/menu.mo
-Provides:     y2t_inst-general:/usr/lib/YaST2/locale/hu/LC_MESSAGES/general.mo
-Summary:      YaST2 - Hungarian Translations
-
-%description
-YaST2 - Hungarian Translations
-
-
-
-%prep
-%setup -n yast2-trans-hu-2.9.11
-
-%build
-autoreconf --force --install
-%{?suse_update_config:%{suse_update_config -f}}
-./configure --libdir=%{_libdir} --prefix=%{prefix}
-%if %ul_version > 0
-for f in po/*.po ; do
-  cp $f $f.orig
-  awk -f %{prefix}/lib/YaST2/bin/cleanuppo.awk $f.orig >$f
-done
-%endif
-%if %sles_version == 8
-for f in po/*.po ; do
-  cp $f $f.orig
-  awk -f %{prefix}/lib/YaST2/bin/cleanuppo.awk -v sles=8 $f.orig >$f
-done
-%endif
-make %{?jobs:-j%jobs}
-
-%install
-[ "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
-make install DESTDIR="$RPM_BUILD_ROOT"
-
-%clean
-[ "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
-
-%files
-%defattr(-,root,root)
-%doc %{prefix}/share/doc/packages/yast2-trans-hu
-/usr/share/YaST2/locale
-
-%changelog -n yast2-trans-hu
-* Fri Jan 28 2005 - [email protected]
-- Updating translations for latest vendor cycle
-
-* Wed Jun 09 2004 - [email protected]
-- Update to version 2.9.11.
-* Thu Jun 03 2004 - [email protected]
-- Update to version 2.9.10.
-* Wed Jun 02 2004 - [email protected]
-- Update to version 2.9.9.
-* Wed May 26 2004 - [email protected]
-- Update to version 2.9.8.
-* Tue May 25 2004 - [email protected]
-- Update to version 2.9.7.
-* Fri Apr 02 2004 - [email protected]
-- Update to version 2.9.6.
-* Wed Mar 31 2004 - [email protected]
-- Update to version 2.9.5.
-* Mon Mar 29 2004 - [email protected]
-- Update to version 2.9.4.
-* Fri Mar 26 2004 - [email protected]
-- Update to version 2.9.3.
-* Mon Mar 22 2004 - [email protected]
-- Update to version 2.9.2.
-* Mon Mar 15 2004 - [email protected]
-- Update to version 2.9.1.
-* Thu Sep 18 2003 - [email protected]
-- Update to version 2.8.3.
-* Mon Sep 15 2003 - [email protected]
-- Update to version 2.8.2.
-* Wed Aug 27 2003 - [email protected]
-- Update to version 2.8.1.
-* Fri Mar 14 2003 - [email protected]
-- Update to version 2.7.5.
-* Wed Mar 12 2003 - [email protected]
-- Update to version 2.7.4.
-* Wed Mar 12 2003 - [email protected]
-- Update to version 2.7.3.
-* Tue Mar 11 2003 - [email protected]
-- Update to version 2.7.2.
-* Mon Mar 03 2003 - [email protected]
-- Update to version 2.7.1.
-* Fri Oct 11 2002 - [email protected]
-- Update to version 2.6.12.
-* Wed Oct 02 2002 - [email protected]
-- Update to version 2.6.11.
-* Wed Sep 18 2002 - [email protected]
-- Update to version 2.6.10.
-* Wed Sep 18 2002 - [email protected]
-- Update to version 2.6.9.
-* Thu Sep 12 2002 - [email protected]
-- Update to version 2.6.8.
-* Wed Sep 11 2002 - [email protected]
-- Update to version 2.6.7.
-* Thu Sep 05 2002 - [email protected]
-- Update to version 2.6.6.
-* Thu Sep 05 2002 - [email protected]
-- Update to version 2.6.5.
-* Thu Sep 05 2002 - [email protected]
-- Update to version 2.6.4.
-* Thu Sep 05 2002 - [email protected]
-- Update to version 2.6.3.
-* Mon Aug 26 2002 - [email protected]
-- Update to version 2.6.2.
-* Thu Aug 22 2002 - [email protected]
-- Update to version 2.6.1.
-* Fri Jun 07 2002 - [email protected]
-- initial version
--- a/yast2-trans-it.spec	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,133 +0,0 @@
-#
-# spec file for package yast2-trans-it (Version 2.9.11)
-#
-# Copyright (c) 2004 SUSE LINUX AG, Nuernberg, Germany.
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
-#
-# Please submit bugfixes or comments via http://www.suse.de/feedback/
-#
-
-# norootforbuild
-# neededforbuild  autoconf automake gettext yast2-devtools
-
-
-Name:         yast2-trans-it
-Version:      2.9.11
-Release:      1.34
-License:      GPL
-Vendor:       Sun Microsystems, Inc.
-Distribution: Java Desktop System, Release 3
-Group:        System/YaST
-BuildRoot:    %{_tmppath}/%{name}-%{version}-build
-Source0:      yast2-trans-it-2.9.11.tar.bz2
-prefix:		/usr
-BuildArchitectures:	noarch
-Provides:     yast2-trans-inst-general:/usr/lib/YaST2/locale/it/LC_MESSAGES/general.mo
-Provides:     y2t_inst:/usr/lib/YaST2/locale/it/LC_MESSAGES/installation.mo
-Provides:     y2t_menu:/usr/lib/YaST2/locale/it/LC_MESSAGES/menu.mo
-Provides:     y2t_inst-general:/usr/lib/YaST2/locale/it/LC_MESSAGES/general.mo
-Summary:      YaST2 - Italian Translations
-
-%description
-The YaST2 Italian translations.
-
-
-
-%prep
-%setup -n yast2-trans-it-2.9.11
-
-%build
-autoreconf --force --install
-%{?suse_update_config:%{suse_update_config -f}}
-./configure --libdir=%{_libdir} --prefix=%{prefix}
-%if %ul_version > 0
-for f in po/*.po ; do
-  cp $f $f.orig
-  awk -f %{prefix}/lib/YaST2/bin/cleanuppo.awk $f.orig >$f
-done
-%endif
-%if %sles_version == 8
-for f in po/*.po ; do
-  cp $f $f.orig
-  awk -f %{prefix}/lib/YaST2/bin/cleanuppo.awk -v sles=8 $f.orig >$f
-done
-%endif
-make %{?jobs:-j%jobs}
-
-%install
-[ "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
-make install DESTDIR="$RPM_BUILD_ROOT"
-
-%clean
-[ "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
-
-%files
-%defattr(-,root,root)
-%doc %{prefix}/share/doc/packages/yast2-trans-it
-/usr/share/YaST2/locale
-
-%changelog -n yast2-trans-it
-* Fri Jan 28 2005 - [email protected]
-- Updating translations for latest vendor cycle
-
-* Wed Jun 09 2004 - [email protected]
-- Update to version 2.9.11.
-* Wed Jun 02 2004 - [email protected]
-- Update to version 2.9.10.
-* Fri May 28 2004 - [email protected]
-- Update to version 2.9.9.
-* Wed May 26 2004 - [email protected]
-- Update to version 2.9.8.
-* Tue May 25 2004 - [email protected]
-- Update to version 2.9.7.
-* Wed Apr 28 2004 - [email protected]
-- Update to version 2.9.6.
-* Fri Apr 02 2004 - [email protected]
-- Update to version 2.9.5.
-* Thu Apr 01 2004 - [email protected]
-- Update to version 2.9.4.
-* Wed Mar 31 2004 - [email protected]
-- Update to version 2.9.3.
-* Mon Mar 22 2004 - [email protected]
-- Update to version 2.9.2.
-* Mon Mar 15 2004 - [email protected]
-- Update to version 2.9.1.
-* Thu Sep 18 2003 - [email protected]
-- Update to version 2.8.2.
-* Wed Aug 27 2003 - [email protected]
-- Update to version 2.8.1.
-* Fri Mar 14 2003 - [email protected]
-- Update to version 2.7.6.
-* Wed Mar 12 2003 - [email protected]
-- Update to version 2.7.5.
-* Tue Mar 11 2003 - [email protected]
-- Update to version 2.7.4.
-* Fri Mar 07 2003 - [email protected]
-- Update to version 2.7.3.
-* Wed Mar 05 2003 - [email protected]
-- Update to version 2.7.2.
-* Mon Mar 03 2003 - [email protected]
-- Update to version 2.7.1.
-* Mon Nov 04 2002 - [email protected]
-- Update to version 2.6.10.
-* Tue Oct 08 2002 - [email protected]
-- Update to version 2.6.9.
-* Wed Sep 18 2002 - [email protected]
-- Update to version 2.6.8.
-* Wed Sep 18 2002 - [email protected]
-- Update to version 2.6.7.
-* Thu Sep 12 2002 - [email protected]
-- Update to version 2.6.6.
-* Thu Sep 12 2002 - [email protected]
-- Update to version 2.6.5.
-* Thu Sep 12 2002 - [email protected]
-- Update to version 2.6.4.
-* Thu Sep 05 2002 - [email protected]
-- Update to version 2.6.3.
-* Mon Sep 02 2002 - [email protected]
-- Update to version 2.6.2.
-* Fri Aug 02 2002 - [email protected]
-- Update to version 2.6.1.
-* Fri Jun 07 2002 - [email protected]
-- initial version
--- a/yast2-trans-ja.spec	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,226 +0,0 @@
-#
-# spec file for package yast2-trans-ja (Version 2.9.21)
-#
-# Copyright (c) 2004 SUSE LINUX AG, Nuernberg, Germany.
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
-#
-# Please submit bugfixes or comments via http://www.suse.de/feedback/
-#
-
-# norootforbuild
-# neededforbuild  autoconf automake gettext yast2-devtools
-
-
-Name:         yast2-trans-ja
-Version:      2.9.21
-Release:      1.34
-License:      GPL
-Vendor:       Sun Microsystems, Inc.
-Distribution: Java Desktop System, Release 3
-Group:        System/YaST
-BuildRoot:    %{_tmppath}/%{name}-%{version}-build
-Source0:      yast2-trans-ja-2.9.21.tar.bz2
-prefix:		/usr
-BuildArchitectures:	noarch
-Provides:     yast2-trans-inst-general:/usr/lib/YaST2/locale/ja/LC_MESSAGES/general.mo
-Provides:     y2t_inst:/usr/lib/YaST2/locale/ja/LC_MESSAGES/installation.mo
-Provides:     y2t_menu:/usr/lib/YaST2/locale/ja/LC_MESSAGES/menu.mo
-Provides:     y2t_inst-general:/usr/lib/YaST2/locale/ja/LC_MESSAGES/general.mo
-Summary:      YaST2 - Japanese Translations
-
-%description
-YaST2 - Japanese translations
-
-
-
-%prep
-%setup -n yast2-trans-ja-2.9.21
-
-%build
-autoreconf --force --install
-%{?suse_update_config:%{suse_update_config -f}}
-./configure --libdir=%{_libdir} --prefix=%{prefix}
-%if %ul_version > 0
-for f in po/*.po ; do
-  cp $f $f.orig
-  awk -f %{prefix}/lib/YaST2/bin/cleanuppo.awk $f.orig >$f
-done
-%endif
-%if %sles_version == 8
-for f in po/*.po ; do
-  cp $f $f.orig
-  awk -f %{prefix}/lib/YaST2/bin/cleanuppo.awk -v sles=8 $f.orig >$f
-done
-%endif
-make %{?jobs:-j%jobs}
-
-%install
-[ "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
-make install DESTDIR="$RPM_BUILD_ROOT"
-
-%clean
-[ "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
-
-%files
-%defattr(-,root,root)
-%doc %{prefix}/share/doc/packages/yast2-trans-ja
-/usr/share/YaST2/locale
-
-%changelog -n yast2-trans-ja
-* Fri Jan 28 2005 - [email protected]
-- Updating translations for latest vendor cycle
-
-* Thu Jun 17 2004 - [email protected]
-- Update to version 2.9.21.
-* Wed Jun 09 2004 - [email protected]
-- Update to version 2.9.20.
-* Thu Jun 03 2004 - [email protected]
-- Update to version 2.9.19.
-* Wed Jun 02 2004 - [email protected]
-- Update to version 2.9.18.
-* Wed May 26 2004 - [email protected]
-- Update to version 2.9.17.
-* Fri May 21 2004 - [email protected]
-- Update to version 2.9.16.
-* Mon Apr 05 2004 - [email protected]
-- Update to version 2.9.15.
-* Mon Apr 05 2004 - [email protected]
-- Update to version 2.9.14.
-* Fri Apr 02 2004 - [email protected]
-- Update to version 2.9.13.
-* Fri Apr 02 2004 - [email protected]
-- Update to version 2.9.12.
-* Wed Mar 31 2004 - [email protected]
-- Update to version 2.9.11.
-* Wed Mar 31 2004 - [email protected]
-- Update to version 2.9.10.
-* Tue Mar 30 2004 - [email protected]
-- Update to version 2.9.9.
-* Tue Mar 30 2004 - [email protected]
-- Update to version 2.9.8.
-* Mon Mar 29 2004 - [email protected]
-- Update to version 2.9.7.
-* Mon Mar 29 2004 - [email protected]
-- Update to version 2.9.6.
-* Fri Mar 26 2004 - [email protected]
-- Update to version 2.9.5.
-* Mon Mar 22 2004 - [email protected]
-- Update to version 2.9.4.
-* Fri Mar 19 2004 - [email protected]
-- Update to version 2.9.3.
-* Fri Mar 19 2004 - [email protected]
-- Update to version 2.9.2.
-* Mon Mar 15 2004 - [email protected]
-- Update to version 2.9.1.
-* Mon Oct 13 2003 - [email protected]
-- Update to version 2.8.11.
-* Tue Sep 23 2003 - [email protected]
-- Update to version 2.8.10.
-* Mon Sep 22 2003 - [email protected]
-- Update to version 2.8.9.
-* Fri Sep 19 2003 - [email protected]
-- Update to version 2.8.8.
-* Thu Sep 18 2003 - [email protected]
-- Update to version 2.8.7.
-* Wed Sep 17 2003 - [email protected]
-- Update to version 2.8.6.
-* Tue Sep 16 2003 - [email protected]
-- Update to version 2.8.5.
-* Mon Sep 15 2003 - [email protected]
-- Update to version 2.8.4.
-* Fri Sep 12 2003 - [email protected]
-- Update to version 2.8.3.
-* Mon Sep 08 2003 - [email protected]
-- Update to version 2.8.2.
-* Mon Sep 01 2003 - [email protected]
-- Update to version 2.8.1.
-* Mon Mar 17 2003 - [email protected]
-- Update to version 2.7.12.
-* Fri Mar 14 2003 - [email protected]
-- Update to version 2.7.11.
-* Thu Mar 13 2003 - [email protected]
-- Update to version 2.7.10.
-* Thu Mar 13 2003 - [email protected]
-- Update to version 2.7.9.
-* Wed Mar 12 2003 - [email protected]
-- Update to version 2.7.8.
-* Wed Mar 12 2003 - [email protected]
-- Update to version 2.7.7.
-* Tue Mar 11 2003 - [email protected]
-- Update to version 2.7.6.
-* Tue Mar 11 2003 - [email protected]
-- Update to version 2.7.5.
-* Mon Mar 10 2003 - [email protected]
-- Update to version 2.7.4.
-* Fri Mar 07 2003 - [email protected]
-- Update to version 2.7.3.
-* Tue Mar 04 2003 - [email protected]
-- Update to version 2.7.2.
-* Mon Mar 03 2003 - [email protected]
-- Update to version 2.7.1.
-* Mon Nov 04 2002 - [email protected]
-- Update to version 2.6.31.
-* Tue Oct 15 2002 - [email protected]
-- Update to version 2.6.30
-  small fix by Koushi Takahashi <[email protected]>
-* Mon Oct 14 2002 - [email protected]
-- Update to version 2.6.29
-* Mon Oct 07 2002 - [email protected]
-- Update to version 2.6.28.
-* Wed Oct 02 2002 - [email protected]
-- Update to version 2.6.27.
-* Wed Sep 18 2002 - [email protected]
-- Update to version 2.6.26.
-* Wed Sep 18 2002 - [email protected]
-- Update to version 2.6.25.
-* Wed Sep 18 2002 - [email protected]
-- Update to version 2.6.24.
-* Wed Sep 18 2002 - [email protected]
-- Update to version 2.6.23.
-* Thu Sep 12 2002 - [email protected]
-- Update to version 2.6.22.
-* Thu Sep 12 2002 - [email protected]
-- Update to version 2.6.21.
-* Wed Sep 11 2002 - [email protected]
-- Update to version 2.6.20.
-* Mon Sep 09 2002 - [email protected]
-- Update to version 2.6.19.
-* Mon Sep 09 2002 - [email protected]
-- Update to version 2.6.18.
-* Fri Sep 06 2002 - [email protected]
-- Update to version 2.6.17.
-* Thu Sep 05 2002 - [email protected]
-- Update to version 2.6.16.
-* Thu Sep 05 2002 - [email protected]
-- Update to version 2.6.15.
-* Thu Sep 05 2002 - [email protected]
-- Update to version 2.6.14.
-* Thu Sep 05 2002 - [email protected]
-- Update to version 2.6.13.
-* Thu Sep 05 2002 - [email protected]
-- Update to version 2.6.12.
-* Mon Sep 02 2002 - [email protected]
-- Update to version 2.6.11.
-* Mon Aug 26 2002 - [email protected]
-- Update to version 2.6.10.
-* Mon Aug 26 2002 - [email protected]
-- Update to version 2.6.9.
-* Mon Aug 26 2002 - [email protected]
-- Update to version 2.6.8.
-* Mon Aug 19 2002 - [email protected]
-- Update to version 2.6.7.
-* Fri Aug 16 2002 - [email protected]
-- Update to version 2.6.6.
-* Mon Aug 12 2002 - [email protected]
-- Update to version 2.6.5.
-* Fri Aug 09 2002 - [email protected]
-- Update to version 2.6.4.
-* Mon Aug 05 2002 - [email protected]
-- Update to version 2.6.3.
-* Fri Aug 02 2002 - [email protected]
-- Update to version 2.6.2.
-* Wed Jul 31 2002 - [email protected]
-- Update to version 2.6.1.
-* Fri Jun 07 2002 - [email protected]
-- initial version
--- a/yast2-trans-ko.spec	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,117 +0,0 @@
-#
-# spec file for package yast2-trans-ko (Version 2.9.6)
-#
-# Copyright (c) 2004 SUSE LINUX AG, Nuernberg, Germany.
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
-#
-# Please submit bugfixes or comments via http://www.suse.de/feedback/
-#
-
-# norootforbuild
-# neededforbuild  autoconf automake gettext yast2-devtools
-
-
-Name:         yast2-trans-ko
-Version:      2.9.6
-Release:      1.34
-License:      GPL
-Vendor:       Sun Microsystems, Inc.
-Distribution: Java Desktop System, Release 3
-Group:        System/YaST
-BuildRoot:    %{_tmppath}/%{name}-%{version}-build
-Source0:      yast2-trans-ko-2.9.6.tar.bz2
-prefix:		/usr
-BuildArchitectures:	noarch
-Provides:     yast2-trans-inst-general:/usr/lib/YaST2/locale/ko/LC_MESSAGES/general.mo
-Provides:     y2t_inst:/usr/lib/YaST2/locale/ko/LC_MESSAGES/installation.mo
-Provides:     y2t_menu:/usr/lib/YaST2/locale/ko/LC_MESSAGES/menu.mo
-Provides:     y2t_inst-general:/usr/lib/YaST2/locale/ko/LC_MESSAGES/general.mo
-Summary:      YaST2 - Korean Translations
-
-%description
-YaST2 - Korean Translations
-
-%prep
-%setup -n yast2-trans-ko-2.9.6
-
-%build
-autoreconf --force --install
-%{?suse_update_config:%{suse_update_config -f}}
-./configure --libdir=%{_libdir} --prefix=%{prefix}
-%if %ul_version > 0
-for f in po/*.po ; do
-  cp $f $f.orig
-  awk -f %{prefix}/lib/YaST2/bin/cleanuppo.awk $f.orig >$f
-done
-%endif
-%if %sles_version == 8
-for f in po/*.po ; do
-  cp $f $f.orig
-  awk -f %{prefix}/lib/YaST2/bin/cleanuppo.awk -v sles=8 $f.orig >$f
-done
-%endif
-make %{?jobs:-j%jobs}
-
-%install
-[ "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
-make install DESTDIR="$RPM_BUILD_ROOT"
-
-%clean
-[ "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
-
-%files
-%defattr(-,root,root)
-%doc %{prefix}/share/doc/packages/yast2-trans-ko
-/usr/share/YaST2/locale
-
-%changelog -n yast2-trans-ko
-* Fri Jan 28 2005 - [email protected]
-- Updating translations for latest vendor cycle
-
-* Wed Jun 09 2004 - [email protected]
-- Update to version 2.9.6.
-* Thu Jun 03 2004 - [email protected]
-- Update to version 2.9.5.
-* Wed Jun 02 2004 - [email protected]
-- Update to version 2.9.4.
-* Wed May 26 2004 - [email protected]
-- Update to version 2.9.3.
-* Mon May 24 2004 - [email protected]
-- Update to version 2.9.2.
-* Fri Apr 02 2004 - [email protected]
-- Update to version 2.9.1.
-* Thu Sep 18 2003 - [email protected]
-- Update to version 2.8.3.
-* Mon Sep 01 2003 - [email protected]
-- Update to version 2.8.2.
-* Tue Aug 26 2003 - [email protected]
-- Update to version 2.8.1.
-* Wed Mar 12 2003 - [email protected]
-- Update to version 2.7.7.
-* Wed Mar 12 2003 - [email protected]
-- Update to version 2.7.6.
-* Tue Mar 11 2003 - [email protected]
-- Update to version 2.7.5.
-* Fri Mar 07 2003 - [email protected]
-- Update to version 2.7.4.
-* Mon Mar 03 2003 - [email protected]
-- Update to version 2.7.3.
-* Mon Mar 03 2003 - [email protected]
-- Update to version 2.7.2.
-* Tue Feb 25 2003 - [email protected]
-- Update to version 2.7.1.
-* Mon Nov 04 2002 - [email protected]
-- Update to version 2.6.6.
-* Mon Oct 14 2002 - [email protected]
-- Update to 2.6.5. Kim Jong-hyeok <[email protected]>
-* Mon Oct 14 2002 - [email protected]
-- Update to 2.6.4.
-* Mon Oct 07 2002 - [email protected]
-- Update to version 2.6.3.
-* Thu Sep 12 2002 - [email protected]
-- Update to version 2.6.2.
-* Wed Sep 11 2002 - [email protected]
-- Update to version 2.6.1.
-* Fri Jun 07 2002 - [email protected]
-- initial version
--- a/yast2-trans-pl.spec	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-#
-# spec file for package yast2-trans-pl (Version 2.9.4)
-#
-# Copyright (c) 2004 SUSE LINUX AG, Nuernberg, Germany.
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
-#
-# Please submit bugfixes or comments via http://www.suse.de/feedback/
-#
-
-# norootforbuild
-# neededforbuild  autoconf automake gettext yast2-devtools
-
-
-Name:         yast2-trans-pl
-Version:      2.9.4
-Release:      1.34
-License:      GPL
-Vendor:       Sun Microsystems, Inc.
-Distribution: Java Desktop System, Release 3
-Group:        System/YaST
-BuildRoot:    %{_tmppath}/%{name}-%{version}-build
-Source0:      yast2-trans-pl-2.9.4.tar.bz2
-prefix:		/usr
-BuildArchitectures:	noarch
-Summary:      YaST2 - Polish Translations
-%define Y2LANG pl
-
-%description
-YaST2 - Translations for Polish.
-
-
-
-%prep
-%setup -n yast2-trans-pl-2.9.4
-
-%build
-autoreconf --force --install
-%{?suse_update_config:%{suse_update_config -f}}
-./configure --libdir=%{_libdir} --prefix=%{prefix}
-%if %ul_version > 0
-for f in po/*.po ; do
-  cp $f $f.orig
-  awk -f %{prefix}/lib/YaST2/bin/cleanuppo.awk $f.orig >$f
-done
-%endif
-%if %sles_version == 8
-for f in po/*.po ; do
-  cp $f $f.orig
-  awk -f %{prefix}/lib/YaST2/bin/cleanuppo.awk -v sles=8 $f.orig >$f
-done
-%endif
-make %{?jobs:-j%jobs}
-
-%install
-[ "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
-make install DESTDIR="$RPM_BUILD_ROOT"
-
-%clean
-[ "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
-
-%files
-%defattr(-,root,root)
-%doc %{prefix}/share/doc/packages/yast2-trans-pl
-/usr/share/YaST2/locale
-
-%changelog -n yast2-trans-pl
-* Fri Jan 28 2005 - [email protected]
-- Updating translations for latest vendor cycle
-
-* Wed Jun 09 2004 - [email protected]
-- Update to version 2.9.4.
-* Wed May 26 2004 - [email protected]
-- Update to version 2.9.3.
-* Mon May 24 2004 - [email protected]
-- Update to version 2.9.2.
-* Mon May 24 2004 - [email protected]
-- Update to version 2.9.1.
-* Mon Oct 06 2003 - [email protected]
-- initial version
--- a/yast2-trans-pt_BR.spec	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,118 +0,0 @@
-#
-# spec file for package yast2-trans-pt_BR (Version 2.9.5)
-#
-# Copyright (c) 2004 SUSE LINUX AG, Nuernberg, Germany.
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
-#
-# Please submit bugfixes or comments via http://www.suse.de/feedback/
-#
-
-# norootforbuild
-# neededforbuild  autoconf automake gettext yast2-devtools
-
-##BuildRequires: aaa_base acl attr bash bind-utils bison bzip2 coreutils cpio cpp cracklib cvs cyrus-sasl db devs diffutils e2fsprogs file filesystem fillup findutils flex gawk gdbm-devel glibc glibc-devel glibc-locale gpm grep groff gzip info insserv kbd less libacl libattr libgcc libselinux libstdc++ libxcrypt m4 make man mktemp module-init-tools ncurses ncurses-devel net-tools netcfg openldap2-client openssl pam pam-modules patch permissions popt procinfo procps psmisc pwdutils rcs readline sed strace syslogd sysvinit tar tcpd texinfo timezone unzip util-linux vim zlib zlib-devel autoconf automake binutils gcc gdbm gettext libtool perl rpm yast2-devtools
-
-Name:         yast2-trans-pt_BR
-Version:      2.9.5
-Release:      1.34
-License:      GPL
-Vendor:       Sun Microsystems, Inc.
-Distribution: Java Desktop System, Release 3
-Group:        System/YaST
-BuildRoot:    %{_tmppath}/%{name}-%{version}-build
-Source0:      yast2-trans-pt_BR-2.9.5.tar.bz2
-prefix:		/usr
-BuildArchitectures:	noarch
-Provides:     yast2-trans-inst-general:/usr/lib/YaST2/locale/pt_BR/LC_MESSAGES/general.mo
-Provides:     y2t_inst:/usr/lib/YaST2/locale/pt_BR/LC_MESSAGES/installation.mo
-Provides:     y2t_menu:/usr/lib/YaST2/locale/pt_BR/LC_MESSAGES/menu.mo
-Provides:     y2t_inst-general:/usr/lib/YaST2/locale/pt_BR/LC_MESSAGES/general.mo
-Summary:      YaST2 - Brazilian Portuguese Translations
-
-%description
-YaST2 - Brazilian Portuguese Translations
-
-%prep
-%setup -n yast2-trans-pt_BR-2.9.5
-
-%build
-autoreconf --force --install
-%{?suse_update_config:%{suse_update_config -f}}
-./configure --libdir=%{_libdir} --prefix=%{prefix}
-%if %ul_version > 0
-for f in po/*.po ; do
-  cp $f $f.orig
-  awk -f %{prefix}/lib/YaST2/bin/cleanuppo.awk $f.orig >$f
-done
-%endif
-%if %sles_version == 8
-for f in po/*.po ; do
-  cp $f $f.orig
-  awk -f %{prefix}/lib/YaST2/bin/cleanuppo.awk -v sles=8 $f.orig >$f
-done
-%endif
-make %{?jobs:-j%jobs}
-
-%install
-[ "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
-make install DESTDIR="$RPM_BUILD_ROOT"
-
-%clean
-[ "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
-
-%files
-%defattr(-,root,root)
-%doc %{prefix}/share/doc/packages/yast2-trans-pt_BR
-/usr/share/YaST2/locale
-
-%changelog -n yast2-trans-pt_BR
-* Fri Jan 28 2005 - [email protected]
-- Updating translations for latest vendor cycle
-
-* Wed Jun 09 2004 - [email protected]
-- Update to version 2.9.5.
-* Thu Jun 03 2004 - [email protected]
-- Update to version 2.9.4.
-* Wed Jun 02 2004 - [email protected]
-- Update to version 2.9.3.
-* Wed May 26 2004 - [email protected]
-- Update to version 2.9.2.
-* Fri Apr 02 2004 - [email protected]
-- Update to version 2.9.1.
-* Wed Mar 12 2003 - [email protected]
-- Update to version 2.7.4.
-* Tue Mar 11 2003 - [email protected]
-- Update to version 2.7.3.
-* Mon Mar 10 2003 - [email protected]
-- Update to version 2.7.2.
-* Tue Feb 25 2003 - [email protected]
-- Update to version 2.7.1.
-* Mon Nov 04 2002 - [email protected]
-- Update to version 2.6.11.
-* Mon Oct 07 2002 - [email protected]
-- Update to version 2.6.10.
-* Mon Sep 30 2002 - [email protected]
-- Update to version 2.6.9.
-* Mon Sep 30 2002 - [email protected]
-- Fix spelling problem for real [# 19069].
-* Wed Sep 18 2002 - [email protected]
-- Update to version 2.6.8.
-* Wed Sep 18 2002 - [email protected]
-- Update to version 2.6.7.
-* Thu Sep 12 2002 - [email protected]
-- Update to version 2.6.6.
-* Thu Sep 12 2002 - [email protected]
-- Update to version 2.6.5.
-* Wed Sep 11 2002 - [email protected]
-- Update to version 2.6.4.
-* Wed Sep 11 2002 - [email protected]
-- Fix spelling problem, reported by miura@conectiva [# 19069].
-* Thu Sep 05 2002 - [email protected]
-- Update to version 2.6.3.
-* Mon Sep 02 2002 - [email protected]
-- Update to version 2.6.2.
-* Mon Aug 12 2002 - [email protected]
-- Update to version 2.6.1.
-* Fri Jun 07 2002 - [email protected]
-- initial version
--- a/yast2-trans-ru.spec	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +0,0 @@
-#
-# spec file for package yast2-trans-ru (Version 2.9.7)
-#
-# Copyright (c) 2004 SUSE LINUX AG, Nuernberg, Germany.
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
-#
-# Please submit bugfixes or comments via http://www.suse.de/feedback/
-#
-
-# norootforbuild
-# neededforbuild  autoconf automake gettext yast2-devtools
-
-
-Name:         yast2-trans-ru
-Version:      2.9.7
-Release:      1.34
-License:      GPL
-Vendor:       Sun Microsystems, Inc.
-Distribution: Java Desktop System, Release 3
-Group:        System/YaST
-BuildRoot:    %{_tmppath}/%{name}-%{version}-build
-Source0:      yast2-trans-ru-2.9.7.tar.bz2
-prefix:		/usr
-BuildArchitectures:	noarch
-Provides:     yast2-trans-inst-general:/usr/lib/YaST2/locale/ru/LC_MESSAGES/general.mo
-Provides:     y2t_inst:/usr/lib/YaST2/locale/ru/LC_MESSAGES/installation.mo
-Provides:     y2t_menu:/usr/lib/YaST2/locale/ru/LC_MESSAGES/menu.mo
-Provides:     y2t_inst-general:/usr/lib/YaST2/locale/ru/LC_MESSAGES/general.mo
-Summary:      YaST2 - Russian Translations
-
-%description
-YaST2 - Russian Translations
-
-%prep
-%setup -n yast2-trans-ru-2.9.7
-
-%build
-autoreconf --force --install
-%{?suse_update_config:%{suse_update_config -f}}
-./configure --libdir=%{_libdir} --prefix=%{prefix}
-%if %ul_version > 0
-for f in po/*.po ; do
-  cp $f $f.orig
-  awk -f %{prefix}/lib/YaST2/bin/cleanuppo.awk $f.orig >$f
-done
-%endif
-%if %sles_version == 8
-for f in po/*.po ; do
-  cp $f $f.orig
-  awk -f %{prefix}/lib/YaST2/bin/cleanuppo.awk -v sles=8 $f.orig >$f
-done
-%endif
-make %{?jobs:-j%jobs}
-
-%install
-[ "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
-make install DESTDIR="$RPM_BUILD_ROOT"
-
-%clean
-[ "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
-
-%files
-%defattr(-,root,root)
-%doc %{prefix}/share/doc/packages/yast2-trans-ru
-/usr/share/YaST2/locale
-
-%changelog -n yast2-trans-ru
-* Fri Jan 28 2005 - [email protected]
-- Updating translations for latest vendor cycle
-
-* Wed Jun 09 2004 - [email protected]
-- Update to version 2.9.7.
-* Wed Jun 02 2004 - [email protected]
-- Update to version 2.9.6.
-* Mon Apr 05 2004 - [email protected]
-- Update to version 2.9.5.
-* Fri Apr 02 2004 - [email protected]
-- Update to version 2.9.4.
-* Thu Apr 01 2004 - [email protected]
-- Update to version 2.9.3.
-* Wed Mar 31 2004 - [email protected]
-- Update to version 2.9.2.
-* Mon Mar 22 2004 - [email protected]
-- Update to version 2.9.1.
-* Wed Mar 12 2003 - [email protected]
-- Update to version 2.7.5.
-* Wed Mar 12 2003 - [email protected]
-- Update to version 2.7.4.
-* Tue Mar 11 2003 - [email protected]
-- Update to version 2.7.3.
-* Fri Mar 07 2003 - [email protected]
-- Update to version 2.7.2.
-* Fri Mar 07 2003 - [email protected]
-- Update to version 2.7.1.
-* Fri Jun 07 2002 - [email protected]
-- initial version
--- a/yast2-trans-sv.spec	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,131 +0,0 @@
-#
-# spec file for package yast2-trans-sv (Version 2.9.6)
-#
-# Copyright (c) 2004 SUSE LINUX AG, Nuernberg, Germany.
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
-#
-# Please submit bugfixes or comments via http://www.suse.de/feedback/
-#
-
-# norootforbuild
-# neededforbuild  autoconf automake gettext yast2-devtools
-
-
-Name:         yast2-trans-sv
-Version:      2.9.6
-Release:      1.34
-License:      GPL
-Vendor:       Sun Microsystems, Inc.
-Distribution: Java Desktop System, Release 3
-Group:        System/YaST
-BuildRoot:    %{_tmppath}/%{name}-%{version}-build
-Source0:      yast2-trans-sv-2.9.6.tar.bz2
-prefix:		/usr
-BuildArchitectures:	noarch
-Provides:     yast2-trans-inst-general:/usr/lib/YaST2/locale/sv/LC_MESSAGES/general.mo
-Provides:     y2t_inst:/usr/lib/YaST2/locale/sv/LC_MESSAGES/installation.mo
-Provides:     y2t_menu:/usr/lib/YaST2/locale/sv/LC_MESSAGES/menu.mo
-Provides:     y2t_inst-general:/usr/lib/YaST2/locale/sv/LC_MESSAGES/general.mo
-Summary:      YaST2 - Swedish Translations
-
-%description
-YaST2 - Swedish Translations
-
-%prep
-%setup -n yast2-trans-sv-2.9.6
-
-%build
-autoreconf --force --install
-%{?suse_update_config:%{suse_update_config -f}}
-./configure --libdir=%{_libdir} --prefix=%{prefix}
-%if %ul_version > 0
-for f in po/*.po ; do
-  cp $f $f.orig
-  awk -f %{prefix}/lib/YaST2/bin/cleanuppo.awk $f.orig >$f
-done
-%endif
-%if %sles_version == 8
-for f in po/*.po ; do
-  cp $f $f.orig
-  awk -f %{prefix}/lib/YaST2/bin/cleanuppo.awk -v sles=8 $f.orig >$f
-done
-%endif
-make %{?jobs:-j%jobs}
-
-%install
-[ "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
-make install DESTDIR="$RPM_BUILD_ROOT"
-
-%clean
-[ "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
-
-%files
-%defattr(-,root,root)
-%doc %{prefix}/share/doc/packages/yast2-trans-sv
-/usr/share/YaST2/locale
-
-%changelog -n yast2-trans-sv
-* Fri Jan 28 2005 - [email protected]
-- Updating translations for latest vendor cycle
-
-* Wed Jun 02 2004 - [email protected]
-- Update to version 2.9.6.
-* Fri Apr 02 2004 - [email protected]
-- Update to version 2.9.5.
-* Wed Mar 31 2004 - [email protected]
-- Update to version 2.9.4.
-* Tue Mar 30 2004 - [email protected]
-- Update to version 2.9.3.
-* Mon Mar 15 2004 - [email protected]
-- Update to version 2.9.2.
-* Mon Mar 15 2004 - [email protected]
-- Update to version 2.9.1.
-* Thu Sep 18 2003 - [email protected]
-- Update to version 2.8.5.
-* Mon Sep 15 2003 - [email protected]
-- Update to version 2.8.4.
-* Fri Sep 12 2003 - [email protected]
-- Update to version 2.8.3.
-* Mon Sep 08 2003 - [email protected]
-- Update to version 2.8.2.
-* Tue Aug 26 2003 - [email protected]
-- Update to version 2.8.1.
-* Wed Mar 12 2003 - [email protected]
-- Update to version 2.7.4.
-* Wed Mar 12 2003 - [email protected]
-- Update to version 2.7.3.
-* Mon Mar 10 2003 - [email protected]
-- Update to version 2.7.2.
-* Mon Mar 03 2003 - [email protected]
-- Update to version 2.7.1.
-* Wed Sep 18 2002 - [email protected]
-- Update to version 2.6.14.
-* Wed Sep 18 2002 - [email protected]
-- Update to version 2.6.13.
-* Thu Sep 12 2002 - [email protected]
-- Update to version 2.6.12.
-* Thu Sep 12 2002 - [email protected]
-- Update to version 2.6.11.
-* Fri Sep 06 2002 - [email protected]
-- Update to version 2.6.10.
-* Thu Sep 05 2002 - [email protected]
-- Update to version 2.6.9.
-* Thu Sep 05 2002 - [email protected]
-- Update to version 2.6.8.
-* Thu Sep 05 2002 - [email protected]
-- Update to version 2.6.7.
-* Thu Sep 05 2002 - [email protected]
-- Update to version 2.6.6.
-* Mon Sep 02 2002 - [email protected]
-- Update to version 2.6.5.
-* Mon Aug 26 2002 - [email protected]
-- Update to version 2.6.4.
-* Mon Aug 19 2002 - [email protected]
-- Update to version 2.6.3.
-* Fri Aug 09 2002 - [email protected]
-- Update to version 2.6.2.
-* Fri Aug 09 2002 - [email protected]
-- Update to version 2.6.1.
-* Fri Jun 07 2002 - [email protected]
-- initial version
--- a/yast2-trans-zh_CN.spec	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,119 +0,0 @@
-#
-# spec file for package yast2-trans-zh_CN (Version 2.9.8)
-#
-# Copyright (c) 2004 SUSE LINUX AG, Nuernberg, Germany.
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
-#
-# Please submit bugfixes or comments via http://www.suse.de/feedback/
-#
-
-# norootforbuild
-# neededforbuild  autoconf automake gettext yast2-devtools
-
-
-Name:         yast2-trans-zh_CN
-Version:      2.9.8
-Release:      1.34
-License:      GPL
-Vendor:       Sun Microsystems, Inc.
-Distribution: Java Desktop System, Release 3
-Group:        System/YaST
-BuildRoot:    %{_tmppath}/%{name}-%{version}-build
-Source0:      yast2-trans-zh_CN-2.9.8.tar.bz2
-prefix:		/usr
-BuildArchitectures:	noarch
-Provides:     yast2-trans-inst-general:/usr/lib/YaST2/locale/zh_CN/LC_MESSAGES/general.mo
-Provides:     y2t_inst:/usr/lib/YaST2/locale/zh_CN/LC_MESSAGES/installation.mo
-Provides:     y2t_menu:/usr/lib/YaST2/locale/zh_CN/LC_MESSAGES/menu.mo
-Provides:     y2t_inst-general:/usr/lib/YaST2/locale/zh_CN/LC_MESSAGES/general.mo
-Summary:      YaST2 - Simplified Chinese Translations
-
-%description
-YaST2 - Simplified Chinese Translations
-
-%prep
-%setup -n yast2-trans-zh_CN-2.9.8
-
-%build
-autoreconf --force --install
-%{?suse_update_config:%{suse_update_config -f}}
-./configure --libdir=%{_libdir} --prefix=%{prefix}
-%if %ul_version > 0
-for f in po/*.po ; do
-  cp $f $f.orig
-  awk -f %{prefix}/lib/YaST2/bin/cleanuppo.awk $f.orig >$f
-done
-%endif
-%if %sles_version == 8
-for f in po/*.po ; do
-  cp $f $f.orig
-  awk -f %{prefix}/lib/YaST2/bin/cleanuppo.awk -v sles=8 $f.orig >$f
-done
-%endif
-make %{?jobs:-j%jobs}
-
-%install
-[ "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
-make install DESTDIR="$RPM_BUILD_ROOT"
-
-%clean
-[ "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
-
-%files
-%defattr(-,root,root)
-%doc %{prefix}/share/doc/packages/yast2-trans-zh_CN
-/usr/share/YaST2/locale
-
-%changelog -n yast2-trans-zh_CN
-* Fri Jan 28 2005 - [email protected]
-- Updating translations for latest vendor cycle
-
-* Wed Jun 09 2004 - [email protected]
-- Update to version 2.9.8.
-* Wed Jun 02 2004 - [email protected]
-- Update to version 2.9.7.
-* Fri May 28 2004 - [email protected]
-- Update to version 2.9.6.
-* Wed May 26 2004 - [email protected]
-- Update to version 2.9.5.
-* Mon May 24 2004 - [email protected]
-- Update to version 2.9.4.
-* Fri Apr 02 2004 - [email protected]
-- Update to version 2.9.3.
-* Fri Apr 02 2004 - [email protected]
-- Update to version 2.9.2.
-* Fri Apr 02 2004 - [email protected]
-- Update to version 2.9.1.
-* Wed Mar 12 2003 - [email protected]
-- Update to version 2.7.1.
-* Mon Nov 04 2002 - [email protected]
-- Update to version 2.6.13.
-* Tue Oct 15 2002 - [email protected]
-- Update to version 2.6.12
-  Many corrections from <[email protected]>
-  and some corrections received from TurboLinux.
-* Tue Oct 08 2002 - [email protected]
-- Update to version 2.6.11.
-* Tue Oct 08 2002 - [email protected]
-- Update to version 2.6.10.
-* Mon Oct 07 2002 - [email protected]
-- Update to version 2.6.9.
-* Thu Sep 12 2002 - [email protected]
-- Update to version 2.6.8.
-* Thu Sep 12 2002 - [email protected]
-- Update to version 2.6.7.
-* Fri Sep 06 2002 - [email protected]
-- Update to version 2.6.6.
-* Thu Sep 05 2002 - [email protected]
-- Update to version 2.6.5.
-* Mon Sep 02 2002 - [email protected]
-- Update to version 2.6.4.
-* Mon Aug 26 2002 - [email protected]
-- Update to version 2.6.3.
-* Mon Aug 19 2002 - [email protected]
-- Update to version 2.6.2.
-* Fri Aug 16 2002 - [email protected]
-- Update to version 2.6.1.
-* Fri Jun 07 2002 - [email protected]
-- initial version
--- a/yast2-trans-zh_HK.spec	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-#
-# spec file for package yast2-trans-zh_HK (Version 2.9.2)
-#
-# Copyright (c) 2004 SUSE LINUX AG, Nuernberg, Germany.
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
-#
-# Please submit bugfixes or comments via http://www.suse.de/feedback/
-#
-
-# norootforbuild
-# neededforbuild  autoconf automake gettext yast2-devtools
-
-Name:         yast2-trans-zh_HK
-Version:      2.9.1
-Release:      1.34
-License:      GPL
-Vendor:       Sun Microsystems, Inc.
-Distribution: Java Desktop System, Release 3
-Group:        System/YaST
-BuildRoot:    %{_tmppath}/%{name}-%{version}-build
-Source0:      yast2-trans-zh_HK-2.9.1.tar.bz2
-prefix:		/usr
-BuildArchitectures:	noarch
-Provides:     yast2-trans-inst-general:/usr/lib/YaST2/locale/zh_HK/LC_MESSAGES/general.mo
-Provides:     y2t_inst:/usr/lib/YaST2/locale/zh_HK/LC_MESSAGES/installation.mo
-Provides:     y2t_menu:/usr/lib/YaST2/locale/zh_HK/LC_MESSAGES/menu.mo
-Provides:     y2t_inst-general:/usr/lib/YaST2/locale/zh_HK/LC_MESSAGES/general.mo
-Summary:      YaST2 - Traditional Chinese (Hong Kong) Translations
-
-%description
-YaST2 - Traditional Chinese (Hong Kong) Translations
-
-%prep
-%setup -n yast2-trans-zh_HK-2.9.1
-
-%build
-autoreconf --force --install
-%{?suse_update_config:%{suse_update_config -f}}
-./configure --libdir=%{_libdir} --prefix=%{prefix}
-%if %ul_version > 0
-for f in po/*.po ; do
-  cp $f $f.orig
-  awk -f %{prefix}/lib/YaST2/bin/cleanuppo.awk $f.orig >$f
-done
-%endif
-%if %sles_version == 8
-for f in po/*.po ; do
-  cp $f $f.orig
-  awk -f %{prefix}/lib/YaST2/bin/cleanuppo.awk -v sles=8 $f.orig >$f
-done
-%endif
-make %{?jobs:-j%jobs}
-
-%install
-[ "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
-make install DESTDIR="$RPM_BUILD_ROOT"
-
-%clean
-[ "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
-
-%files
-%defattr(-,root,root)
-%doc %{prefix}/share/doc/packages/yast2-trans-zh_HK
-/usr/share/YaST2/locale
-
-%changelog -n yast2-trans-zh_HK
-* Fri Jan 28 2005 - [email protected]
-- Updating translations for latest vendor cycle
-
-* Wed Jun 02 2004 - [email protected]
-- Update to version 2.9.2.
-* Fri Apr 02 2004 - [email protected]
-- Update to version 2.9.1.
-* Thu Sep 12 2002 - [email protected]
-- Update to version 2.6.3.
-* Wed Sep 11 2002 - [email protected]
-- Update to version 2.6.2.
-* Thu Sep 05 2002 - [email protected]
-- Update to version 2.6.1.
-* Fri Jun 07 2002 - [email protected]
-- initial version
--- a/yast2-trans-zh_TW.spec	Thu Aug 11 18:34:53 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-#
-# spec file for package yast2-trans-zh_TW (Version 2.9.2)
-#
-# Copyright (c) 2004 SUSE LINUX AG, Nuernberg, Germany.
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
-#
-# Please submit bugfixes or comments via http://www.suse.de/feedback/
-#
-
-# norootforbuild
-# neededforbuild  autoconf automake gettext yast2-devtools
-
-
-Name:         yast2-trans-zh_TW
-Version:      2.9.2
-Release:      1.34
-License:      GPL
-Vendor:       Sun Microsystems, Inc.
-Distribution: Java Desktop System, Release 3
-Group:        System/YaST
-BuildRoot:    %{_tmppath}/%{name}-%{version}-build
-Source0:      yast2-trans-zh_TW-2.9.2.tar.bz2
-prefix:		/usr
-BuildArchitectures:	noarch
-Provides:     yast2-trans-inst-general:/usr/lib/YaST2/locale/zh_TW/LC_MESSAGES/general.mo
-Provides:     y2t_inst:/usr/lib/YaST2/locale/zh_TW/LC_MESSAGES/installation.mo
-Provides:     y2t_menu:/usr/lib/YaST2/locale/zh_TW/LC_MESSAGES/menu.mo
-Provides:     y2t_inst-general:/usr/lib/YaST2/locale/zh_TW/LC_MESSAGES/general.mo
-Summary:      YaST2 - Traditional Chinese Translations
-
-%description
-YaST2 - Traditional Chinese Translations
-
-%prep
-%setup -n yast2-trans-zh_TW-2.9.2
-
-%build
-autoreconf --force --install
-%{?suse_update_config:%{suse_update_config -f}}
-./configure --libdir=%{_libdir} --prefix=%{prefix}
-%if %ul_version > 0
-for f in po/*.po ; do
-  cp $f $f.orig
-  awk -f %{prefix}/lib/YaST2/bin/cleanuppo.awk $f.orig >$f
-done
-%endif
-%if %sles_version == 8
-for f in po/*.po ; do
-  cp $f $f.orig
-  awk -f %{prefix}/lib/YaST2/bin/cleanuppo.awk -v sles=8 $f.orig >$f
-done
-%endif
-make %{?jobs:-j%jobs}
-
-%install
-[ "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
-make install DESTDIR="$RPM_BUILD_ROOT"
-
-%clean
-[ "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
-
-%files
-%defattr(-,root,root)
-%doc %{prefix}/share/doc/packages/yast2-trans-zh_TW
-/usr/share/YaST2/locale
-
-%changelog -n yast2-trans-zh_TW
-* Fri Jan 28 2005 - [email protected]
-- Updating translations for latest vendor cycle
-
-* Wed Jun 02 2004 - [email protected]
-- Update to version 2.9.2.
-* Fri Apr 02 2004 - [email protected]
-- Update to version 2.9.1.
-* Thu Sep 12 2002 - [email protected]
-- Update to version 2.6.3.
-* Wed Sep 11 2002 - [email protected]
-- Update to version 2.6.2.
-* Thu Sep 05 2002 - [email protected]
-- Update to version 2.6.1.
-* Fri Jun 07 2002 - [email protected]
-- initial version