add/remove files that CVS forgot to...
--- 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