openSUSE Commits
Threads by month
- ----- 2025 -----
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
September 2006
- 1 participants
- 1262 discussions
Hello community,
here is the log from the commit of package fonts-config
checked in at Thu Sep 28 12:21:12 CEST 2006.
--------
--- fonts-config/fonts-config.changes 2006-09-13 11:58:02.000000000 +0200
+++ /mounts/work_src_done/NOARCH/fonts-config/fonts-config.changes 2006-09-28 11:51:38.000000000 +0200
@@ -1,0 +2,6 @@
+Thu Sep 28 11:50:50 CEST 2006 - mfabian(a)suse.de
+
+- the OpenOffice font directory on x86_64 is
+ /usr/lib64/ooo-2.0/share/fonts/truetype/.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ fonts-config.spec ++++++
--- /var/tmp/diff_new_pack.DkFVor/_old 2006-09-28 12:19:53.000000000 +0200
+++ /var/tmp/diff_new_pack.DkFVor/_new 2006-09-28 12:19:53.000000000 +0200
@@ -20,7 +20,7 @@
Recommends: ft2demos
%endif
Version: 20060913
-Release: 1
+Release: 4
Summary: Configures Fonts for X Windows and other applications
Source: fonts-config
Source1: SuSEconfig.fonts
@@ -80,6 +80,9 @@
/var/adm/fillup-templates/sysconfig.fonts-config
%changelog -n fonts-config
+* Thu Sep 28 2006 - mfabian(a)suse.de
+- the OpenOffice font directory on x86_64 is
+ /usr/lib64/ooo-2.0/share/fonts/truetype/.
* Wed Sep 13 2006 - mfabian(a)suse.de
- some fonts have more than one space in the family name, replace
them all with '_' where necessary in the Java setup.
++++++ suse-font-dirs.conf.template ++++++
--- fonts-config/suse-font-dirs.conf.template 2006-02-14 13:22:18.000000000 +0100
+++ /mounts/work_src_done/NOARCH/fonts-config/suse-font-dirs.conf.template 2006-09-28 11:50:34.000000000 +0200
@@ -17,6 +17,7 @@
<dir>/usr/X11R6/lib/X11/fonts</dir>
<dir>/opt/kde*/share/fonts</dir>
<dir>/usr/lib/ooo-*/share/fonts</dir>
+ <dir>/usr/lib64/ooo-*/share/fonts</dir>
<dir>/opt/OpenOffice.org/share/fonts</dir>
<dir>/opt/staroffice*/share/fonts</dir>
<dir>/usr/lib*/jvm/java-*-sun-*/jre/lib/fonts</dir>
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package kdepim3
checked in at Thu Sep 28 12:18:20 CEST 2006.
--------
--- KDE/kdepim3/kdepim3.changes 2006-09-08 15:38:00.000000000 +0200
+++ /mounts/work_src_done/STABLE/kdepim3/kdepim3.changes 2006-09-27 18:35:35.000000000 +0200
@@ -1,0 +2,5 @@
+Wed Sep 27 18:35:26 CEST 2006 - stbinner(a)suse.de
+
+- split off kdepim3-notes package
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kdepim3.spec ++++++
--- /var/tmp/diff_new_pack.N4Kbnm/_old 2006-09-28 12:18:01.000000000 +0200
+++ /var/tmp/diff_new_pack.N4Kbnm/_new 2006-09-28 12:18:01.000000000 +0200
@@ -21,7 +21,7 @@
Group: System/GUI/KDE
Summary: Personal Information Manager Software for KDE
Version: 3.5.4
-Release: 7
+Release: 10
URL: http://www.kde.org/
Requires: kdelibs3 >= %( echo `rpm -q --queryformat '%{VERSION}' kdelibs3` )
Requires: kdebase3 >= %( echo `rpm -q --queryformat '%{VERSION}' kdelibs3` )
@@ -173,6 +173,21 @@
--------
The KDE Team.
+%package notes
+Summary: Note taking application
+Group: System/GUI/KDE
+Provides: knotes
+Requires: kdepim3
+
+%description notes
+This package contains the notes application KNotes.
+
+
+
+Authors:
+--------
+ The KDE Team <kde(a)kde.org>
+
%prep
%setup -q -n kdepim-%{version}
%patch0 -E
@@ -289,7 +304,7 @@
/opt/kde3/bin/kaddressbook
/opt/kde3/bin/kalarmd
/opt/kde3/bin/kmail*
-/opt/kde3/bin/kno*
+/opt/kde3/bin/knode
/opt/kde3/bin/kontact
/opt/kde3/bin/korn
/opt/kde3/bin/ksync
@@ -340,7 +355,8 @@
/opt/kde3/%_lib/kde3/libknodepart.*
/opt/kde3/%_lib/kde3/libkontact_kaddressbookplugin*
/opt/kde3/%_lib/kde3/libkontact_kmailplugin*
-/opt/kde3/%_lib/kde3/libkontact_kno*
+/opt/kde3/%_lib/kde3/libkontact_knodeplugin.*
+/opt/kde3/%_lib/kde3/libkontact_knodeplugin.*
/opt/kde3/%_lib/kde3/libkontact_summaryplugin*
/opt/kde3/%_lib/kde3/libkontact_todoplugin*
/opt/kde3/%_lib/kde3/libkontact_weatherplugin*
@@ -350,7 +366,6 @@
/opt/kde3/%_lib/kde3/kfile_ics.*
/opt/kde3/%_lib/kde3/kio_imap4.*
/opt/kde3/%_lib/kde3/kio_sieve.*
-/opt/kde3/%_lib/kde3/knotes_kolab.*
/opt/kde3/%_lib/kde3/libkontact_specialdatesplugin.*
/opt/kde3/%_lib/kde3/libkontact_journalplugin.*
/opt/kde3/%_lib/libakregatorprivate.*
@@ -371,9 +386,9 @@
/opt/kde3/%_lib/libkd*
/opt/kde3/%_lib/libkgantt.*
/opt/kde3/%_lib/libkontact.*
+/opt/kde3/%_lib/libknotes*
/opt/kde3/%_lib/libkpimexchange.*
/opt/kde3/%_lib/libkpinterfaces.*
-/opt/kde3/%_lib/libknotes*
/opt/kde3/%_lib/libksieve.*
/opt/kde3/%_lib/libksync.*
/opt/kde3/%_lib/libktnef.*
@@ -397,8 +412,6 @@
/opt/kde3/%_lib/kde3/kcm_kontactsummary.*
/opt/kde3/%_lib/kde3/kio_mbox.*
/opt/kde3/%_lib/kde3/kfile_palm.*
-/opt/kde3/%_lib/kde3/knotes_local.*
-/opt/kde3/%_lib/kde3/knotes_xmlrpc.*
/opt/kde3/%_lib/kde3/libegroupwarewizard.*
/opt/kde3/%_lib/kde3/libkmail_*
/opt/kde3/%_lib/kde3/libsloxwizard.*
@@ -410,7 +423,6 @@
/opt/kde3/share/applications/kde/K*
/opt/kde3/share/applications/kde/kaddressbook.desktop
/opt/kde3/share/applications/kde/korganizer.desktop
-/opt/kde3/share/applications/kde/knotes.desktop
/opt/kde3/share/applications/kde/ktnef.desktop
/opt/kde3/share/applications/kde/kleopatra_import.desktop
/opt/kde3/share/applications/kde/kmail_view.desktop
@@ -423,7 +435,6 @@
/opt/kde3/share/apps/kg*
/opt/kde3/share/apps/kmail*
/opt/kde3/share/apps/knode
-/opt/kde3/share/apps/knotes
/opt/kde3/share/apps/kontact
/opt/kde3/share/apps/kontactsummary
/opt/kde3/share/apps/ksync
@@ -444,9 +455,6 @@
/opt/kde3/share/config.kcfg/docconduit.kcfg
/opt/kde3/share/config.kcfg/egroupware.kcfg
/opt/kde3/share/config.kcfg/kmail.kcfg
-/opt/kde3/share/config.kcfg/knoteconfig.kcfg
-/opt/kde3/share/config.kcfg/knotesconduit.kcfg
-/opt/kde3/share/config.kcfg/knotesglobalconfig.kcfg
/opt/kde3/share/config.kcfg/memofileconduit.kcfg
/opt/kde3/share/config.kcfg/kpalmdoc.kcfg
/opt/kde3/share/config.kcfg/kpilot.kcfg
@@ -467,7 +475,7 @@
%doc %lang(en) /opt/kde3/share/doc/HTML/en/kalarm
%doc %lang(en) /opt/kde3/share/doc/HTML/en/karm
%doc %lang(en) /opt/kde3/share/doc/HTML/en/kmail
-%doc %lang(en) /opt/kde3/share/doc/HTML/en/kno*
+%doc %lang(en) /opt/kde3/share/doc/HTML/en/knode
%doc %lang(en) /opt/kde3/share/doc/HTML/en/kor*
%doc %lang(en) /opt/kde3/share/doc/HTML/en/kontact
%doc %lang(en) /opt/kde3/share/doc/HTML/en/ktnef
@@ -477,7 +485,6 @@
/opt/kde3/share/icons/*/*/*/kmail*
/opt/kde3/share/icons/*/*/*/knode.png
/opt/kde3/share/icons/*/*/*/knode2.png
-/opt/kde3/share/icons/*/*/*/knotes.png
/opt/kde3/share/icons/*/*/*/kontact.png
/opt/kde3/share/icons/*/*/*/korn.png
/opt/kde3/share/icons/*/*/*/ktnef.png
@@ -505,12 +512,10 @@
/opt/kde3/share/services/kontact/multisynk.desktop
/opt/kde3/share/services/kontact/specialdatesplugin.desktop
/opt/kde3/share/services/kresources/kcal_manager.desktop
-/opt/kde3/share/services/kresources/knotes_manager.desktop
/opt/kde3/share/services/kresources/konnector_manager.desktop
/opt/kde3/share/services/kontact/kaddressbookplugin.desktop
/opt/kde3/share/services/kontact/kmailplugin.desktop
/opt/kde3/share/services/kontact/knodeplugin.desktop
-/opt/kde3/share/services/kontact/knotesplugin.desktop
/opt/kde3/share/services/kontact/newstickerplugin.desktop
/opt/kde3/share/services/kontact/summaryplugin.desktop
/opt/kde3/share/services/kontact/todoplugin.desktop
@@ -554,7 +559,6 @@
/opt/kde3/share/services/kmail_*.desktop
/opt/kde3/share/services/knode_*.desktop
/opt/kde3/share/services/kcmkontactknt.desktop
-/opt/kde3/share/services/kresources/knotes
/opt/kde3/share/services/overview.desktop
/opt/kde3/share/services/korganizer
/opt/kde3/share/services/webcal.protocol
@@ -584,6 +588,25 @@
/opt/kde3/share/services/akregator_mk4storage_plugin.desktop
/opt/kde3/share/services/kaddressbook/skypeprotocol.desktop
/opt/kde3/share/servicetypes/akregator_plugin.desktop
+
+%files notes
+%defattr(-,root,root)
+/opt/kde3/bin/knotes
+/opt/kde3/%_lib/kde3/knotes_kolab.*
+/opt/kde3/%_lib/kde3/libkontact_knotesplugin.*
+/opt/kde3/%_lib/kde3/knotes_local.*
+/opt/kde3/%_lib/kde3/knotes_xmlrpc.*
+/opt/kde3/%_lib/kde3/libkontact_knotesplugin.*
+/opt/kde3/share/applications/kde/knotes.desktop
+/opt/kde3/share/config.kcfg/knoteconfig.kcfg
+/opt/kde3/share/config.kcfg/knotesconduit.kcfg
+/opt/kde3/share/config.kcfg/knotesglobalconfig.kcfg
+/opt/kde3/share/apps/knotes
+/opt/kde3/share/icons/*/*/*/knotes.png
+/opt/kde3/share/services/kresources/knotes_manager.desktop
+/opt/kde3/share/services/kontact/knotesplugin.desktop
+/opt/kde3/share/services/kresources/knotes
+%doc %lang(en) /opt/kde3/share/doc/HTML/en/knotes
%if %suse_version > 910
%files networkstatus
@@ -699,6 +722,8 @@
/opt/kde3/%_lib/kde3/plugins/designer/kpartsdesignerplugin.*
%changelog -n kdepim3
+* Wed Sep 27 2006 - stbinner(a)suse.de
+- split off kdepim3-notes package
* Fri Sep 08 2006 - coolo(a)suse.de
- update to 3_5_BRANCH (random bug fixes)
- recommends to authentification plugins
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package hal
checked in at Thu Sep 28 12:17:52 CEST 2006.
--------
--- hal/hal.changes 2006-09-19 13:45:18.000000000 +0200
+++ /mounts/work_src_done/STABLE/hal/hal.changes 2006-09-28 11:55:27.000000000 +0200
@@ -2 +2,7 @@
-Tue Sep 19 13:39:26 CEST 2006 - danny(a)suse.de
+Wed Sep 27 19:31:47 CEST 2006 - dkukawka(a)suse.de
+
+- updated to current git HEAD (0.5.8_git20060927)
+ - should fix b.n.c #207607
+
+-------------------------------------------------------------------
+Tue Sep 19 13:39:26 CEST 2006 - dkukawka(a)suse.de
Old:
----
hal-0.5.8_git20060919.tar.bz2
New:
----
hal-0.5.8_git20060927.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ hal.spec ++++++
--- /var/tmp/diff_new_pack.rT9R05/_old 2006-09-28 12:17:29.000000000 +0200
+++ /var/tmp/diff_new_pack.rT9R05/_new 2006-09-28 12:17:29.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package hal (Version 0.5.8_git20060919)
+# spec file for package hal (Version 0.5.8_git20060927)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -11,13 +11,13 @@
# norootforbuild
Name: hal
-BuildRequires: PolicyKit dbus-1-glib-devel docbook-utils doxygen glib2-devel gtkdoc html-dtd intltool libusb libvolume_id-devel perl-XML-Parser popt-devel python-devel update-desktop-files
+BuildRequires: PolicyKit dbus-1-glib-devel docbook-utils doxygen glib2-devel gtkdoc html-dtd intltool libusb libvolume_id-devel pciutils-devel perl-XML-Parser popt-devel python-devel update-desktop-files
URL: http://freedesktop.org/Software/hal
%define dbus_version 0.61
%define dbus_release 1
License: Other License(s), see package, Other uncritical OpenSource License
Group: System/Daemons
-Version: 0.5.8_git20060919
+Version: 0.5.8_git20060927
Release: 1
Autoreqprov: on
Summary: Daemon for Collecting Hardware Information
@@ -38,9 +38,9 @@
Patch103: hal-fix-cpufreq-policy.diff
#
# patches for testing:
-#Patch300:
-#
-# external patches from HAL List and backports patches we need to port or to check
+#Patch300: hal_debug.diff
+##
+## external patches from HAL List and backports patches we need to port or to check
# unclear how to fix this atm
Patch400: %{name}-fix-mount_159475.diff
# Kay Sievers is working on a integration in the hal mount binary
@@ -254,7 +254,10 @@
%{_bindir}/hal-device-manager
%changelog -n hal
-* Tue Sep 19 2006 - danny(a)suse.de
+* Wed Sep 27 2006 - dkukawka(a)suse.de
+- updated to current git HEAD (0.5.8_git20060927)
+- should fix b.n.c #207607
+* Tue Sep 19 2006 - dkukawka(a)suse.de
- updated to current git HEAD (next v0.5.8.1/0.5.9)
- should fix bug b.n.c #206458, #202090 and maybe #206352
* Fri Sep 08 2006 - dkukawka(a)suse.de
++++++ hal-0.5.8_git20060919.tar.bz2 -> hal-0.5.8_git20060927.tar.bz2 ++++++
++++ 9433 lines of diff (skipped)
++++++ hal-performance-pci_ids_v2.patch ++++++
--- /var/tmp/diff_new_pack.rT9R05/_old 2006-09-28 12:17:33.000000000 +0200
+++ /var/tmp/diff_new_pack.rT9R05/_new 2006-09-28 12:17:33.000000000 +0200
@@ -1,5 +1,5 @@
---- hald/linux/ids.c 2006-08-22 17:25:33.000000000 +0200
-+++ hald/linux/ids.c 2006-08-22 17:27:07.000000000 +0200
+--- hald/ids.c 2006-08-22 17:25:33.000000000 +0200
++++ hald/ids.c 2006-08-22 17:27:07.000000000 +0200
@@ -42,10 +42,16 @@
/** Pointer to where the pci.ids file is loaded */
static char *pci_ids = NULL;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package cron
checked in at Thu Sep 28 10:33:18 CEST 2006.
--------
--- cron/cron.changes 2006-09-01 14:22:31.000000000 +0200
+++ /mounts/work_src_done/STABLE/cron/cron.changes 2006-09-28 10:23:26.000000000 +0200
@@ -1,0 +2,5 @@
+Wed Sep 27 14:27:22 CEST 2006 - mkoenig(a)suse.de
+
+- relax requirements on crontab permissions [#207645]
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cron.spec ++++++
--- /var/tmp/diff_new_pack.9co5vk/_old 2006-09-28 10:29:32.000000000 +0200
+++ /var/tmp/diff_new_pack.9co5vk/_new 2006-09-28 10:29:32.000000000 +0200
@@ -18,7 +18,7 @@
Autoreqprov: on
PreReq: permissions
Version: 4.1
-Release: 49
+Release: 53
Summary: cron Daemon
Source0: vixie-%name-%version.tar.bz2
Source1: %name.init
@@ -133,6 +133,8 @@
/usr/lib/cron
%changelog -n cron
+* Wed Sep 27 2006 - mkoenig(a)suse.de
+- relax requirements on crontab permissions [#207645]
* Fri Sep 01 2006 - kukuk(a)suse.de
- Add pam_loginuid.so to PAM config
* Wed Aug 23 2006 - mkoenig(a)suse.de
++++++ vixie-cron-4.1-crontab-permissions.diff ++++++
--- /var/tmp/diff_new_pack.9co5vk/_old 2006-09-28 10:29:32.000000000 +0200
+++ /var/tmp/diff_new_pack.9co5vk/_new 2006-09-28 10:29:32.000000000 +0200
@@ -46,7 +46,7 @@
goto next_crontab;
}
- if ((statbuf->st_mode & 07777) != 0600) {
-+ if ((statbuf->st_mode & 07733) != 0600) {
++ if ((statbuf->st_mode & 07533) != 0400) {
log_it(fname, getpid(), "BAD FILE MODE", tabname);
goto next_crontab;
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package fuseiso
checked in at Thu Sep 28 10:29:10 CEST 2006.
--------
--- fuseiso/fuseiso.changes 2006-09-25 09:35:29.000000000 +0200
+++ /mounts/work_src_done/STABLE/fuseiso/fuseiso.changes 2006-09-28 09:36:05.000000000 +0200
@@ -1,0 +2,15 @@
+Thu Sep 28 09:35:26 CEST 2006 - cthiel(a)suse.de
+
+- update to 20060928
+ * Fixed race-condition with find -- display stable inode numbers on
+ mounted filesystem to the outside world. Added check/addition for
+ library option "use_ino" -- required from now. isofs_real_init() split
+ into two parts to make real initialization/error checking before giving
+ control to libfuse.
+ * Several options added to maintain mount point (create if it does not
+ exists, delete on exit), do NOT maintain file ~/.mtab.fuseiso (with
+ format of /etc/mtab), specify iocharset (default iocharset is now
+ locale-specific).
+ * Added support to mounting NRG-image files created by Nero software.
+
+-------------------------------------------------------------------
Old:
----
fuseiso-20060925.tar.bz2
New:
----
fuseiso-20060928.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ fuseiso.spec ++++++
--- /var/tmp/diff_new_pack.A0Vkhd/_old 2006-09-28 10:28:54.000000000 +0200
+++ /var/tmp/diff_new_pack.A0Vkhd/_new 2006-09-28 10:28:54.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package fuseiso (Version 20060925)
+# spec file for package fuseiso (Version 20060928)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -13,7 +13,7 @@
Name: fuseiso
BuildRequires: fuse-devel glib2-devel
Summary: fuseiso is a FUSE module to mount ISO filesystem images
-Version: 20060925
+Version: 20060928
Release: 1
License: GPL
Group: System/Filesystems
@@ -52,6 +52,18 @@
%{_bindir}/*
%changelog -n fuseiso
+* Thu Sep 28 2006 - cthiel(a)suse.de
+- update to 20060928
+ * Fixed race-condition with find -- display stable inode numbers on
+ mounted filesystem to the outside world. Added check/addition for
+ library option "use_ino" -- required from now. isofs_real_init() split
+ into two parts to make real initialization/error checking before giving
+ control to libfuse.
+ * Several options added to maintain mount point (create if it does not
+ exists, delete on exit), do NOT maintain file ~/.mtab.fuseiso (with
+ format of /etc/mtab), specify iocharset (default iocharset is now
+ locale-specific).
+ * Added support to mounting NRG-image files created by Nero software.
* Mon Sep 25 2006 - cthiel(a)suse.de
- update to 20060925 snapshot
* Added support to mounting BIN-image files. One-track only for now.
++++++ fuseiso-20060925.tar.bz2 -> fuseiso-20060928.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuseiso-20060925/ChangeLog new/fuseiso-20060928/ChangeLog
--- old/fuseiso-20060925/ChangeLog 2006-09-24 17:13:56.000000000 +0200
+++ new/fuseiso-20060928/ChangeLog 2006-09-27 20:48:39.000000000 +0200
@@ -1,3 +1,12 @@
+2006-09-28
+ * all: Fixed race-condition with find -- display stable inode numbers on mounted filesystem to the outside world. Added check/addition for library option "use_ino" -- required from now. isofs_real_init() split into two parts to make real initialization/error checking before giving control to libfuse.
+
+2006-09-27
+ * all: Several options added to maintain mount point (create if it does not exists, delete on exit), do NOT maintain file ~/.mtab.fuseiso (with format of /etc/mtab), specify iocharset (default iocharset is now locale-specific).
+
+2006-09-26
+ * all: Added support to mounting NRG-image files created by Nero software.
+
2006-09-25
* all: Added support to mounting BIN-image files. One-track only for now.
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuseiso-20060925/NEWS new/fuseiso-20060928/NEWS
--- old/fuseiso-20060925/NEWS 2006-09-24 17:14:24.000000000 +0200
+++ new/fuseiso-20060928/NEWS 2006-09-27 19:22:34.000000000 +0200
@@ -1,2 +1,8 @@
+2006-09-27
+ * Added support to maintain ~/.mtab.fuseiso, maintain mount point directory. Added support for iocharset.
+
+2006-09-26
+ * Added support to mounting NRG-image files.
+
2006-09-25
* Added support to mounting BIN-image files. One-track only for now.
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuseiso-20060925/README new/fuseiso-20060928/README
--- old/fuseiso-20060925/README 2006-09-24 17:21:37.000000000 +0200
+++ new/fuseiso-20060928/README 2006-09-27 09:21:06.000000000 +0200
@@ -1,15 +1,35 @@
Usage:
- fuseiso <image_file> <mountpoint> [<FUSE library options>]
+ fuseiso [<options>] <image_file> <mountpoint> [<FUSE library options>]
mounts image, while fusermount shipped with FUSE library can be used to unmount:
fusermount -u <mountpoint>
+
+fuseiso options are:
+
+ -p Maintain mountpoint. Create it if it does not exists on start, delete it on exit.
+ -n Do NOT maintain ~/.mtab.fuseiso . This file have format of /etc/mtab and normally stores information about currently mounted iso images.
+ -c iocharset Specify iocharset to use. Joliet filesystem store filenames in unicode and to show them properly they need to be converted to local charset. Default charset is a current locale charset.
-fuseiso supports plain ISO images (created by mkisofs for example) along with BIN images
-containing ISO9660 filesystem. BIN images support have now major limitation --
-fuseiso does not handle .CUE files in any way and thus can work only with
-first track of the BIN image. I don`t know if this is important to support .CUE files
-properly. Please email me if you need it.
+fuseiso supports plain ISO images (created by mkisofs for example), BIN and NRG images
+containing ISO9660 filesystem. Along with standard ISO9660 filesystem it support some common extensions:
+
+Joliet Common in windows world. Allow long filenames stored in unicode.
+RockRidge Common in unix world. Allow long filenames, deep directories, symbolic links and permission bits to be stored.
+zisofs Compressed filesystem, drastically increases capasity of standard CDROM.
+
+In fact i found what CCD (CloneCD) .IMG files along with .MDF (Alcohol 120%) images
+can be mounted without problems because their format looks exactly as .BIN image file format.
+So currently fuseiso supports disk images with following extensions:
+
+.iso
+.img
+.bin
+.mdf
+.nrg
-Status: tested on ISO images and some BIN images. Unfortunately i have no many BIN images to test.
+Although, BIN images support have now major limitation -- fuseiso does not handle .CUE files in any way
+and thus can work only with first track of the BIN image. I don`t know if this is important
+to support .CUE files properly. Please email me if you need it. Support for other types of media
+descriptors like .ccd and .mds looks more difficult task because no one know it`s format.
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuseiso-20060925/configure new/fuseiso-20060928/configure
--- old/fuseiso-20060925/configure 2006-09-24 17:25:39.000000000 +0200
+++ new/fuseiso-20060928/configure 2006-09-27 21:02:45.000000000 +0200
@@ -2218,7 +2218,7 @@
# Define the identity of the package.
PACKAGE=fuseiso
- VERSION=20060925
+ VERSION=20060928
cat >>confdefs.h <<_ACEOF
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuseiso-20060925/configure.in new/fuseiso-20060928/configure.in
--- old/fuseiso-20060925/configure.in 2006-09-24 17:09:23.000000000 +0200
+++ new/fuseiso-20060928/configure.in 2006-09-27 20:49:07.000000000 +0200
@@ -1,7 +1,7 @@
AC_INIT(configure.in)
AM_CONFIG_HEADER(config.h)
-AM_INIT_AUTOMAKE(fuseiso, 20060925)
+AM_INIT_AUTOMAKE(fuseiso, 20060928)
AC_LANG_C
AC_PROG_CC
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuseiso-20060925/fuseiso.spec new/fuseiso-20060928/fuseiso.spec
--- old/fuseiso-20060925/fuseiso.spec 2006-09-24 17:12:39.000000000 +0200
+++ new/fuseiso-20060928/fuseiso.spec 2006-09-27 20:52:06.000000000 +0200
@@ -1,6 +1,6 @@
-%define reldate 20060925
+%define reldate 20060928
Name: fuseiso
-Version: 1.2
+Version: 1.3
Release: 0.%{reldate}%{?dist}
Summary: Mount ISO filesystem images as a non-root user
@@ -17,7 +17,7 @@
%description
Mount ISO filesystem images as a non-root user. Currently supports
plain ISO9660 Level 1 and 2, Rock Ridge, Joliet, zisofs.
-Supported image types: ISO, BIN (single track only).
+Supported image types: ISO, BIN (single track only), NRG, MDF, IMG (CCD).
%prep
%setup -q -n %{name}-%{reldate}
@@ -39,15 +39,18 @@
%files
%defattr(-,root,root,-)
-%doc AUTHORS COPYING INSTALL NEWS README TODO
+%doc AUTHORS COPYING INSTALL NEWS README TODO ChangeLog
%{_bindir}/*
%changelog
-* Fri Feb 17 2006 Dmitry Morozhnikov <dmiceman(a)mail.ru> - 1.0-0.20060925
+* Fri Sep 28 2006 Dmitry Morozhnikov <dmiceman(a)mail.ru> - 1.3-0.20060928
+- Update for 2006-09-28 snapshot.
+
+* Fri Sep 25 2006 Dmitry Morozhnikov <dmiceman(a)mail.ru> - 1.2-0.20060925
- Update for 2006-09-25 snapshot.
-* Fri Feb 17 2006 Dmitry Morozhnikov <dmiceman(a)mail.ru> - 1.0-0.20060731
+* Fri Jul 31 2006 Dmitry Morozhnikov <dmiceman(a)mail.ru> - 1.1-0.20060731
- Update for 2006-07-31 snapshot.
* Fri Feb 17 2006 Dmitry Morozhnikov <dmiceman(a)mail.ru> - 1.0-0.20060217
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuseiso-20060925/linux/iso_fs.h new/fuseiso-20060928/linux/iso_fs.h
--- old/fuseiso-20060925/linux/iso_fs.h 2006-02-16 22:17:37.000000000 +0100
+++ new/fuseiso-20060928/linux/iso_fs.h 2006-09-27 04:42:10.000000000 +0200
@@ -1,3 +1,12 @@
+// this file was borrowed from linux kernel
+// originally it has name /usr/src/linux/include/linux/iso_fs.h
+// unfortunately there was no copyright header on it,
+// so i`m assume it have copyrighted under terms of
+// GNU GENERAL PUBLIC LICENSE version 2
+// as a whole linux kernel
+// copy of this license included into fuseiso
+// distribution in file COPYING
+
#ifndef _ISOFS_FS_H
#define _ISOFS_FS_H
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuseiso-20060925/linux/rock.h new/fuseiso-20060928/linux/rock.h
--- old/fuseiso-20060925/linux/rock.h 2005-09-29 00:10:18.000000000 +0200
+++ new/fuseiso-20060928/linux/rock.h 2006-09-27 04:42:00.000000000 +0200
@@ -1,3 +1,13 @@
+// this file was borrowed from linux kernel
+// originally it has name /usr/src/linux/fs/isofs/rock.h
+// unfortunately there was no copyright header on it,
+// so i`m assume it have copyrighted under terms of
+// GNU GENERAL PUBLIC LICENSE version 2
+// as a whole linux kernel
+// copy of this license included into fuseiso
+// distribution in file COPYING
+
+
/* These structs are used by the system-use-sharing protocol, in which the
Rock Ridge extensions are embedded. It is quite possible that other
extensions are present on the disk, and this is fine as long as they
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuseiso-20060925/src/Makefile.am new/fuseiso-20060928/src/Makefile.am
--- old/fuseiso-20060925/src/Makefile.am 2005-10-09 19:31:15.000000000 +0200
+++ new/fuseiso-20060928/src/Makefile.am 2006-09-27 09:17:37.000000000 +0200
@@ -1,14 +1,11 @@
bin_PROGRAMS = fuseiso
-noinst_PROGRAMS = testiso
fuseiso_SOURCES = fuseiso.c isofs.c
-testiso_SOURCES = testiso.c isofs.c
# set the include path found by configure
INCLUDES= $(all_includes)
# the library search path.
fuseiso_LDFLAGS = $(all_libraries)
-testiso_LDFLAGS = $(all_libraries)
noinst_HEADERS = isofs.h
AM_CFLAGS = -D_FILE_OFFSET_BITS=64 `pkg-config --cflags fuse glib-2.0`
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuseiso-20060925/src/Makefile.in new/fuseiso-20060928/src/Makefile.in
--- old/fuseiso-20060925/src/Makefile.in 2006-09-24 17:25:38.000000000 +0200
+++ new/fuseiso-20060928/src/Makefile.in 2006-09-27 21:02:43.000000000 +0200
@@ -38,7 +38,6 @@
build_triplet = @build@
host_triplet = @host@
bin_PROGRAMS = fuseiso$(EXEEXT)
-noinst_PROGRAMS = testiso$(EXEEXT)
subdir = src
DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in
@@ -51,13 +50,10 @@
CONFIG_CLEAN_FILES =
am__installdirs = "$(DESTDIR)$(bindir)"
binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
+PROGRAMS = $(bin_PROGRAMS)
am_fuseiso_OBJECTS = fuseiso.$(OBJEXT) isofs.$(OBJEXT)
fuseiso_OBJECTS = $(am_fuseiso_OBJECTS)
fuseiso_LDADD = $(LDADD)
-am_testiso_OBJECTS = testiso.$(OBJEXT) isofs.$(OBJEXT)
-testiso_OBJECTS = $(am_testiso_OBJECTS)
-testiso_LDADD = $(LDADD)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
@@ -69,8 +65,8 @@
CCLD = $(CC)
LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = $(fuseiso_SOURCES) $(testiso_SOURCES)
-DIST_SOURCES = $(fuseiso_SOURCES) $(testiso_SOURCES)
+SOURCES = $(fuseiso_SOURCES)
+DIST_SOURCES = $(fuseiso_SOURCES)
HEADERS = $(noinst_HEADERS)
ETAGS = etags
CTAGS = ctags
@@ -177,14 +173,12 @@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
fuseiso_SOURCES = fuseiso.c isofs.c
-testiso_SOURCES = testiso.c isofs.c
# set the include path found by configure
INCLUDES = $(all_includes)
# the library search path.
fuseiso_LDFLAGS = $(all_libraries)
-testiso_LDFLAGS = $(all_libraries)
noinst_HEADERS = isofs.h
AM_CFLAGS = -D_FILE_OFFSET_BITS=64 `pkg-config --cflags fuse glib-2.0`
AM_LDFLAGS = `pkg-config --libs fuse glib-2.0` -lz
@@ -249,19 +243,9 @@
echo " rm -f $$p $$f"; \
rm -f $$p $$f ; \
done
-
-clean-noinstPROGRAMS:
- @list='$(noinst_PROGRAMS)'; for p in $$list; do \
- f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f $$p $$f"; \
- rm -f $$p $$f ; \
- done
fuseiso$(EXEEXT): $(fuseiso_OBJECTS) $(fuseiso_DEPENDENCIES)
@rm -f fuseiso$(EXEEXT)
$(LINK) $(fuseiso_LDFLAGS) $(fuseiso_OBJECTS) $(fuseiso_LDADD) $(LIBS)
-testiso$(EXEEXT): $(testiso_OBJECTS) $(testiso_DEPENDENCIES)
- @rm -f testiso$(EXEEXT)
- $(LINK) $(testiso_LDFLAGS) $(testiso_OBJECTS) $(testiso_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@@ -271,7 +255,6 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fuseiso.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/isofs.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testiso.Po@am__quote@
.c.o:
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
@@ -412,8 +395,7 @@
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
-clean-am: clean-binPROGRAMS clean-generic clean-libtool \
- clean-noinstPROGRAMS mostlyclean-am
+clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
distclean: distclean-am
-rm -rf ./$(DEPDIR)
@@ -462,17 +444,16 @@
uninstall-am: uninstall-binPROGRAMS uninstall-info-am
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
- clean-generic clean-libtool clean-noinstPROGRAMS ctags \
- distclean distclean-compile distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-binPROGRAMS \
- install-data install-data-am install-exec install-exec-am \
- install-info install-info-am install-man install-strip \
- installcheck installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- tags uninstall uninstall-am uninstall-binPROGRAMS \
- uninstall-info-am
+ clean-generic clean-libtool ctags distclean distclean-compile \
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-binPROGRAMS install-data install-data-am install-exec \
+ install-exec-am install-info install-info-am install-man \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags uninstall uninstall-am \
+ uninstall-binPROGRAMS uninstall-info-am
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuseiso-20060925/src/fuseiso.c new/fuseiso-20060928/src/fuseiso.c
--- old/fuseiso-20060925/src/fuseiso.c 2006-01-07 05:17:57.000000000 +0100
+++ new/fuseiso-20060928/src/fuseiso.c 2006-09-27 20:46:28.000000000 +0200
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2005 by Dmitry Morozhnikov *
+ * Copyright (C) 2005, 2006 by Dmitry Morozhnikov *
* dmiceman(a)mail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -30,6 +30,11 @@
#include <errno.h>
#include <unistd.h>
#include <linux/stat.h>
+#include <unistd.h>
+#include <getopt.h>
+#include <mntent.h>
+#include <sys/param.h>
+#include <pwd.h>
#include <linux/iso_fs.h>
@@ -37,6 +42,8 @@
#include <fuse.h>
#include <zlib.h>
+#include <locale.h>
+#include <langinfo.h>
#include "isofs.h"
@@ -47,8 +54,165 @@
#endif
static char *imagefile = NULL;
+static char *mount_point = NULL;
static int image_fd = -1;
+int maintain_mount_point;
+int maintain_mtab;
+char* iocharset;
+
+char* normalize_name(const char* fname) {
+ char* abs_fname = (char *) malloc(PATH_MAX);
+ char* buf = realpath(fname, abs_fname);
+ // ignore errors from realpath()
+ return abs_fname;
+};
+
+int check_mount_point() {
+ struct stat st;
+ int rc = lstat(mount_point, &st);
+ if(rc == -1 && errno == ENOENT) {
+ // directory does not exists, createcontext
+ rc = mkdir(mount_point, 0777); // let`s underlying filesystem manage permissions
+ if(rc != 0) {
+ perror("Can`t create mount point");
+ return -EIO;
+ };
+ } else if(rc == -1) {
+ perror("Can`t check mount point");
+ return -1;
+ };
+ return 0;
+};
+
+void del_mount_point() {
+ int rc = rmdir(mount_point);
+ if(rc != 0) {
+ perror("Can`t delete mount point");
+ };
+};
+
+char* get_mtab_path() {
+ char* mtab_path = (char*) malloc(PATH_MAX);
+ uid_t uid = getuid();
+ struct passwd* passwd = getpwuid(uid);
+ if(!passwd) {
+ fprintf(stderr, "Can`t get home directory for user %d: %s\n", uid, strerror(errno));
+ return NULL;
+ };
+ mtab_path[0] = 0;
+ if(passwd->pw_dir) { // may be NULL, who know..
+ strncpy(mtab_path, passwd->pw_dir, PATH_MAX - 16);
+ mtab_path[PATH_MAX - 1] = 0;
+ };
+ strcat(mtab_path, "/.mtab.fuseiso");
+ return mtab_path;
+};
+
+int add_mtab_record() {
+ int rc;
+ char* mtab_path = get_mtab_path();
+ if(!mtab_path) {
+ return -EIO;
+ };
+ int fd = open(mtab_path, O_RDWR | O_CREAT, 0644);
+ if(fd < 0) {
+ perror("Can`t open mtab");
+ return -EIO;
+ };
+ rc = lockf(fd, F_LOCK, 0);
+ if(rc != 0) {
+ perror("Can`t lock mtab");
+ return -EIO;
+ };
+ FILE* mtab = setmntent(mtab_path, "a");
+ if(!mtab) {
+ perror("Can`t open mtab");
+ return -EIO;
+ };
+ struct mntent ent;
+ ent.mnt_fsname = imagefile;
+ ent.mnt_dir = mount_point;
+ ent.mnt_type = "fuseiso";
+ ent.mnt_opts = "defaults";
+ ent.mnt_freq = 0;
+ ent.mnt_passno = 0;
+ rc = addmntent(mtab, &ent);
+ if(rc != 0) {
+ perror("Can`t add mtab entry");
+ return -EIO;
+ };
+ endmntent(mtab);
+ rc = lockf(fd, F_ULOCK, 0);
+ if(rc != 0) {
+ perror("Can`t unlock mtab");
+ return -EIO;
+ };
+ close(fd);
+ free(mtab_path);
+ return 0;
+};
+
+int del_mtab_record() {
+ int rc;
+ char* mtab_path = get_mtab_path();
+ char new_mtab_path[PATH_MAX];
+ if(!mtab_path) {
+ return -EIO;
+ };
+ int fd = open(mtab_path, O_RDWR | O_CREAT, 0644);
+ if(fd < 0) {
+ perror("Can`t open mtab");
+ return -EIO;
+ };
+ rc = lockf(fd, F_LOCK, 0);
+ if(rc != 0) {
+ perror("Can`t lock mtab");
+ return -EIO;
+ };
+ strncpy(new_mtab_path, mtab_path, PATH_MAX - 16);
+ new_mtab_path[PATH_MAX - 1] = 0;
+ strcat(new_mtab_path, ".new");
+ FILE* mtab = setmntent(mtab_path, "r");
+ if(!mtab) {
+ perror("Can`t open mtab");
+ return -EIO;
+ };
+ FILE* new_mtab = setmntent(new_mtab_path, "a+");
+ if(!new_mtab) {
+ perror("Can`t open new mtab");
+ return -EIO;
+ };
+ struct mntent* ent;
+ while((ent = getmntent(mtab)) != NULL) {
+ if(strcmp(ent->mnt_fsname, imagefile) == 0 &&
+ strcmp(ent->mnt_dir, mount_point) == 0 &&
+ strcmp(ent->mnt_type, "fuseiso") == 0) {
+ // skip
+ } else {
+ rc = addmntent(new_mtab, ent);
+ if(rc != 0) {
+ perror("Can`t add mtab entry");
+ return -EIO;
+ };
+ };
+ };
+ endmntent(mtab);
+ endmntent(new_mtab);
+ rc = rename(new_mtab_path, mtab_path);
+ if(rc != 0) {
+ perror("Can`t rewrite mtab");
+ return -EIO;
+ };
+ rc = lockf(fd, F_ULOCK, 0);
+ if(rc != 0) {
+ perror("Can`t unlock mtab");
+ return -EIO;
+ };
+ close(fd);
+ free(mtab_path);
+};
+
static int isofs_getattr(const char *path, struct stat *stbuf)
{
return isofs_real_getattr(path, stbuf);
@@ -74,7 +238,21 @@
};
static void* isofs_init() {
- return isofs_real_init(imagefile, image_fd);
+ int rc;
+ if(maintain_mtab) {
+ rc = add_mtab_record();
+ if(rc != 0) {
+ exit(EXIT_FAILURE);
+ };
+ };
+ return isofs_real_init();
+};
+
+static void isofs_destroy(void* param) {
+ if(maintain_mtab) {
+ del_mtab_record();
+ };
+ return;
};
static int isofs_opendir(const char *path, struct fuse_file_info *UNUSED(fi)) {
@@ -98,38 +276,139 @@
.read = isofs_read,
.flush = isofs_flush,
.init = isofs_init,
+ .destroy = isofs_destroy,
.opendir = isofs_opendir,
.readdir = isofs_readdir,
.statfs = isofs_statfs,
};
+void usage(const char* prog) {
+ printf("Version: %s\nUsage: %s [-n] [-p] [-c <iocharset>] [-h] <isofs_image_file> <mount_point> [<FUSE library options>]\n"
+ "Where options are:\n"
+ " -n -- do NOT maintain file $HOME/.mtab.fuseiso\n"
+ " -p -- maintain mount point; \n"
+ " create it if it does not exists and delete it on exit\n"
+ " -c <iocharset> -- specify iocharset for Joliet filesystem\n"
+ " -h -- print this screen\n"
+ "\nCommon FUSE library options are:\n"
+ " -f -- run in foreground, do not daemonize\n"
+ " -d -- run in foreground and print debug information\n"
+ " -s -- run single-threaded\n"
+ "\nPlease consult with FUSE ducumentation for more information\n",
+ VERSION,
+ prog);
+};
+
int main(int argc, char *argv[])
{
- if(argc < 3) {
- printf("Version: %s\nUsage: %s <isofs_image_file> <mount_point> [<FUSE library options>]\n",
- VERSION,
- argv[0]);
- exit(EINVAL);
+ setlocale(LC_ALL, ""); // set current locale for proper iocharset
+
+ // defaults
+ maintain_mount_point = 0;
+ maintain_mtab = 1;
+ iocharset = NULL;
+
+ char c;
+ while((c = getopt(argc, argv, "+npc:h")) > 0) {
+ switch(c) {
+ case 'n':
+ maintain_mtab = 0;
+ break;
+ case 'p':
+ maintain_mount_point = 1;
+ break;
+ case 'c':
+ if(optarg) {
+ iocharset = optarg;
+ };
+ break;
+ case 'h':
+ usage(argv[0]);
+ exit(0);
+ break;
+ case '?':
+ case ':':
+ usage(argv[0]);
+ exit(EXIT_FAILURE);
+ break;
+ };
};
- imagefile = argv[1];
+ if((argc - optind) < 2) {
+ usage(argv[0]);
+ exit(EXIT_FAILURE);
+ };
+
+ imagefile = normalize_name(argv[optind]);
image_fd = open(imagefile, O_RDONLY);
if(image_fd == -1) {
- perror("open image file");
- exit(EINVAL);
+ perror("Can`t open image file");
+ exit(EXIT_FAILURE);
};
-
- char **nargv = (char **) malloc(argc * sizeof(char *));
- int nargc = argc - 1;
+
+ mount_point = normalize_name(argv[optind + 1]);
+
+ // with space for possible -o use_ino arguments
+ char **nargv = (char **) malloc((argc + 2) * sizeof(char *));
+ int nargc = argc - optind;
nargv[0] = argv[0];
int i;
+ int next_opt = 0;
+ int use_ino_found = 0;
+ for(i = 0; i < nargc - 1; ++i) {
+ if(next_opt && !use_ino_found) {
+ if(strstr(argv[i + optind + 1], "use_ino")) { // ok, already there
+ use_ino_found = 1;
+ nargv[i + 1] = argv[i + optind + 1];
+ } else { // add it
+ char* str = (char*) malloc(strlen(argv[i + optind + 1]) + 10);
+ strcpy(str, argv[i + optind + 1]);
+ strcat(str, ",use_ino");
+ nargv[i + 1] = str;
+ use_ino_found = 1;
+ };
+ } else {
+ nargv[i + 1] = argv[i + optind + 1];
+ };
+ // check if this is -o string mean that next argument should be options string
+ if(i > 1 && nargv[i + 1][0] == '-' && nargv[i + 1][1] == 'o') {
+ next_opt = 1;
+ };
+ };
+ if(!use_ino_found) {
+ nargv[nargc] = "-o";
+ nargc++;
+ nargv[nargc] = "use_ino";
+ nargc++;
+ };
- for(i = 0; i < nargc; i++) {
- nargv[i + 1] = argv[i + 2];
+ if(!iocharset) {
+ iocharset = nl_langinfo(CODESET);
+ if(!iocharset) {
+ iocharset = "UTF-8";
+ };
};
+ int rc;
+ if(maintain_mount_point) {
+ rc = check_mount_point();
+ if(rc != 0) {
+ exit(EXIT_FAILURE);
+ };
+ };
+ if(maintain_mount_point) {
+ rc = atexit(del_mount_point);
+ if(rc != 0) {
+ fprintf(stderr, "Can`t set exit function\n");
+ exit(EXIT_FAILURE);
+ }
+ };
+
+ // will exit in case of failure
+ rc = isofs_real_preinit(imagefile, image_fd);
+
return fuse_main(nargc, nargv, &isofs_oper);
-}
+};
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuseiso-20060925/src/isofs.c new/fuseiso-20060928/src/isofs.c
--- old/fuseiso-20060925/src/isofs.c 2006-09-24 15:18:06.000000000 +0200
+++ new/fuseiso-20060928/src/isofs.c 2006-09-27 21:07:05.000000000 +0200
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2005 by Dmitry Morozhnikov *
+ * Copyright (C) 2005, 2006 by Dmitry Morozhnikov *
* dmiceman(a)mail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -47,7 +47,9 @@
static int isofs_check_rr(struct iso_directory_record *root_record);
static int isofs_read_raw_block(int block, char *buf);
-void *isofs_real_init( char* imagefile, int fd) {
+extern char* iocharset;
+
+int isofs_real_preinit( char* imagefile, int fd) {
memset(& context, 0, sizeof(isofs_context));
@@ -57,19 +59,30 @@
// trying to read all volume descriptors
struct iso_volume_descriptor *vd =
(struct iso_volume_descriptor *) malloc(sizeof(struct iso_volume_descriptor));
+ if(!vd) {
+ perror("Can`t malloc: ");
+ exit(ENOMEM);
+ };
int vd_num = 0;
+ // defaults for iso
+ context.block_size = 2048;
+ context.data_size = 2048;
+ context.block_offset = 0;
+ context.file_offset = 0;
+
enum {
IDOFF_ISO_2048 = 2048 * 16,
IDOFF_MODE1_2352 = 2352 * 16 + 16,
IDOFF_MODE2_2352_RAW = 2352 * 16,
IDOFF_MODE2_2352 = 2352 * 16 + 24,
IDOFF_MODE2_2336 = 2336 * 16 + 16,
+ IDOFF_NRG = 2048 * 16 + 307200,
};
- int iso_offsets[] = {IDOFF_ISO_2048, IDOFF_MODE2_2336, IDOFF_MODE2_2352_RAW};
+ int iso_offsets[] = {IDOFF_ISO_2048, IDOFF_MODE2_2336, IDOFF_MODE2_2352_RAW, IDOFF_NRG};
// try to find CD001 identifier
int i;
- for(i = 0; i < 5; i++) {
+ for(i = 0; i < 4; i++) {
if(lseek(fd, iso_offsets[i], SEEK_SET) == -1) {
perror("can`t lseek() to next possible data start position; is it really supported file?");
exit(EIO);
@@ -87,20 +100,18 @@
switch(iso_offsets[i]) {
case IDOFF_ISO_2048:
// normal iso file
- context.block_size = 2048;
- context.data_size = 2048;
- context.block_offset = 0;
+ // use defaults
break;
case IDOFF_MODE2_2352_RAW:
context.block_size = 2352;
- context.data_size = 2048;
- context.block_offset = 0;
break;
case IDOFF_MODE2_2336:
context.block_size = 2336;
- context.data_size = 2048;
context.block_offset = 16;
break;
+ case IDOFF_NRG:
+ context.file_offset = 307200;
+ break;
default:
break;
};
@@ -108,13 +119,11 @@
} else if(strncmp("CD001", vd->id + 16, 5) == 0) {
context.id_offset = iso_offsets[i] + 16;
context.block_size = 2352;
- context.data_size = 2048;
context.block_offset = 16;
break;
} else if(strncmp("CD001", vd->id + 24, 5) == 0) {
context.id_offset = iso_offsets[i] + 24;
context.block_size = 2352;
- context.data_size = 2048;
context.block_offset = 24;
break;
};
@@ -122,22 +131,9 @@
/* printf("CD001 found at %d, bs %d, boff %d, ds %d\n",
context.id_offset, context.block_size, context.block_offset, context.data_size);*/
- if(context.block_size == 2048) {
- printf("ISO9660 image found\n");
- } else if(context.block_size == 2352 && context.block_offset == 0) {
- printf("MODE2 RAW BIN image found\n");
- } else if(context.block_size == 2352 && context.block_offset == 16) {
- printf("MODE1 BIN image found\n");
- } else if(context.block_size == 2352 && context.block_offset == 24) {
- printf("MODE2 BIN image found\n");
- } else if(context.block_size == 2336 && context.block_offset == 16) {
- printf("MODE2/2336 BIN image found\n");
- } else {
- printf("UNKNOWN image found; probably will not work\n");
- };
-
while(1) {
- if(lseek(fd, context.block_size * (16 + vd_num) + context.block_offset, SEEK_SET) == -1) {
+ if(lseek(fd, context.block_size * (16 + vd_num) +
+ context.block_offset + context.file_offset, SEEK_SET) == -1) {
perror("can`t lseek() to next volume descriptor");
exit(EIO);
};
@@ -178,7 +174,8 @@
if(context.block_size != 2048) {
// report unusual data block size
- printf("Data block size: %d\n", context.block_size);
+ // later
+ // printf("Data block size: %d\n", context.block_size);
};
if(isofs_check_rr(context.root)) {
@@ -226,12 +223,12 @@
context.root = (struct iso_directory_record *) context.sd.root_directory_record;
- printf("init: switching to supplementary descriptor %d, joliet_level %d, have_rr %d\n",
- vd_num, context.joliet_level, have_rr);
+ // printf("init: switching to supplementary descriptor %d, joliet_level %d, have_rr %d\n",
+ // vd_num, context.joliet_level, have_rr);
} else {
context.joliet_level = 0;
- printf("init: found supplementary descriptor %d, flags %d\n",
- vd_num, isonum_711(sd->flags));
+ // printf("init: found supplementary descriptor %d, flags %d\n",
+ // vd_num, isonum_711(sd->flags));
};
};
};
@@ -262,20 +259,6 @@
exit(EIO);
};
- printf("System Identifier : %.32s\n", context.pd.system_id);
- printf("Volume Identifier : %.32s\n", context.pd.volume_id);
- printf("Volume Set Identifier : %.128s\n", context.pd.volume_set_id);
- printf("Publisher Identifier : %.128s\n", context.pd.publisher_id);
- printf("Data Preparer Identifier : %.128s\n", context.pd.preparer_id);
- printf("Application Identifier : %.128s\n", context.pd.application_id);
- printf("Copyright File Identifier : %.37s\n", context.pd.copyright_file_id);
- printf("Abstract File Identifier : %.37s\n", context.pd.abstract_file_id);
- printf("Bibliographic File Identifier : %.37s\n", context.pd.bibliographic_file_id);
- printf("Volume Creation Date and Time : %.17s\n", context.pd.creation_date);
- printf("Volume Modification Date and Time : %.17s\n", context.pd.modification_date);
- printf("Volume Expiration Date and Time : %.17s\n", context.pd.expiration_date);
- printf("Volume Effective Date and Time : %.17s\n", context.pd.effective_date);
-
context.susp = 0;
context.susp_skip = 0;
@@ -283,16 +266,83 @@
negative_lookup_table = g_hash_table_new(g_str_hash, g_str_equal);
isofs_inode *inode = (isofs_inode *) malloc(sizeof(isofs_inode));
+ if(!inode) {
+ perror("Can`t malloc: ");
+ exit(ENOMEM);
+ };
memset(inode, 0, sizeof(isofs_inode));
inode->record = context.root;
+ context.last_ino++; // set to 1
+ inode->st_ino = context.last_ino;
+ context.last_ino++;
g_hash_table_insert(lookup_table, "/", inode);
- return (void *) & context;
+
+ return 0;
+};
+
+static char* dstr(char* str, const char* src, int len) {
+ int i;
+ strncpy(str, src, len);
+ str[len] = '\0';
+ for(i = len - 1; i >= 0; --i) {
+ if(str[i] == '\0' || str[i] == ' ' || str[i] == '\t' || str[i] == '\r' || str[i] == '\n') {
+ str[i] = '\0';
+ } else {
+ return str;
+ };
+ };
+ return str;
+};
+
+void* isofs_real_init() {
+ if(context.file_offset == 307200) {
+ printf("NRG image found\n");
+ } else if(context.block_size == 2048) {
+ printf("ISO9660 image found\n");
+ } else if(context.block_size == 2352 && context.block_offset == 0) {
+ printf("MODE2 RAW BIN image found\n");
+ } else if(context.block_size == 2352 && context.block_offset == 16) {
+ printf("MODE1 BIN image found (or CCD MODE1 image, or MDF image)\n");
+ } else if(context.block_size == 2352 && context.block_offset == 24) {
+ printf("MODE2 BIN image found (or CCD MODE2 image)\n");
+ } else if(context.block_size == 2336 && context.block_offset == 16) {
+ printf("MODE2/2336 BIN image found\n");
+ } else {
+ printf("UNKNOWN image found; probably will not work\n");
+ };
+
+ if(context.block_size != 2048) {
+ // report unusual data block size
+ printf("Data block size: %d\n", context.block_size);
+ };
+
+ char buf[129];
+
+ printf("System Identifier : %s\n", dstr(buf, context.pd.system_id, 32));
+ printf("Volume Identifier : %.32s\n", dstr(buf, context.pd.volume_id, 32));
+ printf("Volume Set Identifier : %.128s\n", dstr(buf, context.pd.volume_set_id, 128));
+ printf("Publisher Identifier : %.128s\n", dstr(buf, context.pd.publisher_id, 128));
+ printf("Data Preparer Identifier : %.128s\n", dstr(buf, context.pd.preparer_id, 128));
+ printf("Application Identifier : %.128s\n", dstr(buf, context.pd.application_id, 128));
+ printf("Copyright File Identifier : %.37s\n", dstr(buf, context.pd.copyright_file_id, 37));
+ printf("Abstract File Identifier : %.37s\n", dstr(buf, context.pd.abstract_file_id, 37));
+ printf("Bibliographic File Identifier : %.37s\n", dstr(buf, context.pd.bibliographic_file_id, 37));
+ printf("Volume Creation Date and Time : %.17s\n", dstr(buf, context.pd.creation_date, 17));
+ printf("Volume Modification Date and Time : %.17s\n", dstr(buf, context.pd.modification_date, 17));
+ printf("Volume Expiration Date and Time : %.17s\n", dstr(buf, context.pd.expiration_date, 17));
+ printf("Volume Effective Date and Time : %.17s\n", dstr(buf, context.pd.effective_date, 17));
+
+ return (void*) &context;
};
static int isofs_check_rr(struct iso_directory_record *root_record) {
int extent = isonum_733(root_record->extent);
char *buf = (char *) malloc(context.data_size); // can we use "standard" 2048 there?
+ if(!buf) {
+ perror("Can`t malloc: ");
+ return -ENOMEM;
+ };
int rc = isofs_read_raw_block(extent, buf);
if(rc < 0) {
@@ -406,7 +456,7 @@
};
static int isofs_read_raw_block(int block, char *buf) {
- off_t off = block * context.block_size + context.block_offset;
+ off_t off = block * context.block_size + context.block_offset + context.file_offset;
if(pthread_mutex_lock(& fd_mutex)) {
int err = errno;
perror("isofs_read_raw_block: can`l lock fd_mutex");
@@ -463,6 +513,13 @@
static int isofs_direntry2stat(struct stat *st, isofs_inode *inode) {
struct iso_directory_record *record = inode->record;
+ // fill st_ino from block number where file start
+ // since there is no files begin in the same block
+ // st->st_ino = isonum_733(record->extent);
+ // but some iso images save space by sharing content between several files
+ // so it is better to save it unique
+ st->st_ino = inode->st_ino;
+
if(inode->ZF) { // compressed file, report real (uncompressed) size
st->st_size = inode->real_size;
} else { // no zisofs compression
@@ -532,8 +589,7 @@
return entry;
} else {
// initialize iconv descriptor
- /// TODO BIG FAT TODO: find resulting codepage from current locale
- iconv_t cd = iconv_open("UTF-8", "UCS-2BE");
+ iconv_t cd = iconv_open(iocharset, "UCS-2BE");
if(cd < 0) {
perror("iconv");
return NULL;
@@ -543,6 +599,10 @@
size_t inbytesleft = len;
char *outbuf = (char *) malloc(NAME_MAX); // this should be sufficient for our purposes
+ if(!outbuf) {
+ perror("Can`t malloc: ");
+ return NULL;
+ };
char *outentry = outbuf;
size_t outbytesleft = NAME_MAX;
@@ -596,6 +656,10 @@
static int isofs_parse_zisofs_header(isofs_inode *inode) {
char *buf = (char *) malloc(context.block_size);
+ if(!buf) {
+ perror("Can`t malloc: ");
+ return -ENOMEM;
+ };
int block_num = isonum_733(inode->record->extent);
int len = isofs_read_raw_block(block_num, buf);
@@ -624,6 +688,10 @@
size_t block_table_size = (inode->zf_nblocks + 1) * 4;
if(!inode->zf_blockptr) {
inode->zf_blockptr = (int *) malloc(block_table_size);
+ if(!inode->zf_blockptr) {
+ perror("Can`t malloc: ");
+ return -ENOMEM;
+ };
};
// copy offset table into memory buffer, maintaining iso9660 block boundaries
@@ -874,6 +942,10 @@
if(!inode->sl) {
inode->sl = (char *) malloc(PATH_MAX);
+ if(!inode->sl) {
+ perror("Can`t malloc: ");
+ return -ENOMEM;
+ };
};
if(c_separator) {
@@ -977,6 +1049,10 @@
} else {
if(!inode->nm) {
inode->nm = (char *) malloc(NAME_MAX);
+ if(!inode->nm) {
+ perror("Can`t malloc: ");
+ return -ENOMEM;
+ };
};
strncpy(inode->nm + inode->nm_len, sue->u.NM.name, sue_len - 5);
@@ -1010,6 +1086,10 @@
// read block pointed by CL record and process first directory entry
char *buf = (char *) malloc(context.data_size);
+ if(!buf) {
+ perror("Can`t malloc: ");
+ return -ENOMEM;
+ };
int rc = isofs_read_raw_block(inode->cl_block, buf);
if(rc < 0) {
free(buf);
@@ -1044,6 +1124,10 @@
// ignoring anything from original record
struct iso_directory_record *cl_record =
(struct iso_directory_record *) malloc(sizeof(struct iso_directory_record));
+ if(!cl_record) {
+ perror("Can`t malloc: ");
+ return -ENOMEM;
+ };
memcpy(cl_record, record, sizeof(struct iso_directory_record));
// drop existing record
@@ -1210,6 +1294,10 @@
// process continuation area if found
if(cont_block) {
char *buf = (char *) malloc(context.data_size);
+ if(!buf) {
+ perror("Can`t malloc: ");
+ return -ENOMEM;
+ };
int rc = isofs_read_raw_block(cont_block, buf);
if(rc < 0) {
free(buf);
@@ -1262,8 +1350,12 @@
int block = isonum_733(current->extent);
char *buf = (char *) malloc(context.data_size);
+ if(!buf) {
+ perror("Can`t malloc: ");
+ return -ENOMEM;
+ };
int rc;
-// printf("path %s, current_size %d, block %d\n", path, current_size, block);
+ // printf("path %s, current_size %d, block %d\n", path, current_size, block);
size_t total_size = 0;
int count = 1;
@@ -1275,6 +1367,12 @@
if(rc < 0) {
return rc;
};
+ if(rc != context.data_size) {
+ // can`t be allowed
+ fprintf(stderr, "readdir: can`t read whole block, read only %d bytes, block %d\n", rc, block);
+ free(buf);
+ return -EIO;
+ };
block_count++;
if(boff > 0) {
@@ -1336,9 +1434,20 @@
};
isofs_inode *inode = (isofs_inode *) malloc(sizeof(isofs_inode));
+ if(!inode) {
+ perror("Can`t malloc: ");
+ return -ENOMEM;
+ };
memset(inode, 0, sizeof(isofs_inode));
+ inode->st_ino = context.last_ino;
+ context.last_ino++;
+
struct iso_directory_record *n_rec =
(struct iso_directory_record *) malloc (sizeof(struct iso_directory_record));
+ if(!n_rec) {
+ perror("Can`t malloc: ");
+ return -ENOMEM;
+ };
memcpy(n_rec, record, sizeof(struct iso_directory_record));
inode->record = n_rec;
@@ -1356,6 +1465,10 @@
};
char *entry = (char *) malloc(NAME_MAX);
+ if(!entry) {
+ perror("Can`t malloc: ");
+ return -ENOMEM;
+ };
if(count == 1) { // . entry ('\0' on disk)
strcpy(entry, ".");
} else if(count == 2) { // .. entry ('\1' on disk)
@@ -1436,10 +1549,13 @@
// fprintf(stderr, "getattr: know nothing about %s\n", path);
return -ENOENT;
} else {
-// printf("getattr: found %s, size %d\n", path, isonum_733(record->size));
+ // printf("getattr: found %s, size %d\n", path, isonum_733(inode->record->size));
};
memset(stbuf, 0, sizeof(struct stat));
isofs_direntry2stat(stbuf, inode);
+/* if(ISO_FLAGS_DIR(inode->record->flags)) {
+ printf("%s %i %i\n", path, (int) stbuf->st_size, stbuf->st_mode);
+ };*/
return 0;
};
@@ -1496,7 +1612,15 @@
};
char *cbuf = (char *) malloc(zf_block_size * 2);
+ if(!cbuf) {
+ perror("Can`t malloc: ");
+ return -ENOMEM;
+ };
char *ubuf = (char *) malloc(zf_block_size);
+ if(!ubuf) {
+ perror("Can`t malloc: ");
+ return -ENOMEM;
+ };
size_t total_size = 0;
size_t size_left = size;
@@ -1625,6 +1749,10 @@
// path, size, (int) offset, fsize, start, end, shift);
char *buf = (char *) malloc(context.data_size);
+ if(!buf) {
+ perror("Can`t malloc: ");
+ return -ENOMEM;
+ };
int i;
size_t total_size = 0;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuseiso-20060925/src/isofs.h new/fuseiso-20060928/src/isofs.h
--- old/fuseiso-20060925/src/isofs.h 2006-09-24 02:42:26.000000000 +0200
+++ new/fuseiso-20060928/src/isofs.h 2006-09-27 20:47:47.000000000 +0200
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2005 by Dmitry Morozhnikov *
+ * Copyright (C) 2005, 2006 by Dmitry Morozhnikov *
* dmiceman(a)mail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -36,6 +36,7 @@
int supplementary; // 1 if supplementary descriptor found and in effect
struct iso_supplementary_descriptor sd;
struct iso_directory_record *root;
+ int file_offset; // offset to begin of useful data (for .nrg files)
int id_offset; // offset to CD001 inside file
size_t block_size; // raw block size
size_t block_offset; // offset from block start to data
@@ -43,11 +44,13 @@
int susp; // parse susp entries
int susp_skip; // skip bytes from susp SP entry
int joliet_level; // joliet extension level (1, 2 or 3)
+ ino_t last_ino;
} isofs_context;
typedef struct _isofs_inode {
struct iso_directory_record *record;
struct stat st;
+ ino_t st_ino;
time_t ctime; // cached value from record->date
char *sl;
size_t sl_len;
@@ -147,6 +150,7 @@
#endif
}
-void *isofs_real_init( char* imagefile, int fd);
+int isofs_real_preinit(char* imagefile, int fd);
+void* isofs_real_init();
#endif // _ISOFS_H
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuseiso-20060925/src/testiso.c new/fuseiso-20060928/src/testiso.c
--- old/fuseiso-20060925/src/testiso.c 2006-01-07 05:30:23.000000000 +0100
+++ new/fuseiso-20060928/src/testiso.c 1970-01-01 01:00:00.000000000 +0100
@@ -1,90 +0,0 @@
-/***************************************************************************
- * Copyright (C) 2005 by Dmitry Morozhnikov *
- * dmiceman(a)mail.ru *
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program; if not, write to the *
- * Free Software Foundation, Inc., *
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
- ***************************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <unistd.h>
-#include <linux/stat.h>
-
-#include "isofs.h"
-
-int filler(void *buf, char *name, struct stat *st, off_t off) {
- if(st) {
- printf(
- "%c%c%c%c%c%c%c%c%c ",
- (S_ISDIR(st->st_mode) ? 'd' : '-'),
- ((st->st_mode & S_IRUSR) ? 'r' : '-'),
- ((st->st_mode & S_IWUSR) ? 'w' : '-'),
- ((st->st_mode & S_IXUSR) ? 'x' : '-'),
- ((st->st_mode & S_IRGRP) ? 'r' : '-'),
- ((st->st_mode & S_IWGRP) ? 'w' : '-'),
- ((st->st_mode & S_IXGRP) ? 'x' : '-'),
- ((st->st_mode & S_IROTH) ? 'r' : '-'),
- ((st->st_mode & S_IWOTH) ? 'w' : '-'),
- ((st->st_mode & S_IXOTH) ? 'x' : '-')
- );
- };
- printf("%s\n", name);
- return 0;
-};
-
-static int image_fd = -1;
-
-int main(int argc, char *argv[])
-{
- if(argc < 2) {
- printf("Version: %s\nUsage: %s <isofs_image_file>\n",
- VERSION,
- argv[0]);
- exit(EINVAL);
- };
-
- char *imagefile = argv[1];
-
- image_fd = open(imagefile, O_RDONLY);
- if(image_fd == -1) {
- perror("open image file");
- exit(EINVAL);
- };
-
- isofs_context *context = isofs_real_init(imagefile, image_fd);
-
- printf("primary descriptor type: %d (%s)\n", isonum_711(context->pd.type),
- (isonum_711(context->pd.type) == ISO_VD_PRIMARY ? "OK" : "FAIL!"));
- printf("block size: %d\n", context->block_size);
- printf("size of root directory record: %d\n", isonum_711(context->root->length));
- printf("size of root directory content: %d\n", isonum_733(context->root->size));
-
- int rc = isofs_real_readdir("/", NULL, filler);
- if(rc) {
- errno = -rc;
- perror(NULL);
- return -rc;
- };
-
- return 0;
-}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package kernel-source
checked in at Thu Sep 28 08:27:02 CEST 2006.
--------
--- kernel-source/kernel-bigsmp.changes 2006-09-25 19:38:43.000000000 +0200
+++ /mounts/work_src_done/STABLE/kernel-source/kernel-bigsmp.changes 2006-09-28 01:32:32.000000000 +0200
@@ -1,0 +2,42 @@
+Thu Sep 28 01:17:55 CEST 2006 - gregkh(a)suse.de
+
+- patches.suse/usb-storage-disable-delay.patch: USB: change
+ default delay time for usb-storage devices.
+
+-------------------------------------------------------------------
+Wed Sep 27 23:48:19 CEST 2006 - gregkh(a)suse.de
+
+- patches.suse/driver-multithread.patch: Driver Core: add ability
+ for drivers to do a threaded probe.
+- patches.suse/pci-multithreaded-probe.patch: PCI: enable driver
+ multi-threaded probe.
+
+-------------------------------------------------------------------
+Wed Sep 27 23:29:42 CEST 2006 - gregkh(a)suse.de
+
+- fuzz refresh:
+- patches.suse/crasher-26.diff: slab testing module.
+- patches.uml/uml-kconfig: kconfig: enable vt & input subsystems
+ for UML.
+
+-------------------------------------------------------------------
+Wed Sep 27 23:27:32 CEST 2006 - gregkh(a)suse.de
+
+- First step in sysfs changes for 10.2. Here are the base patches that are all
+ in Linus's tree that will be needed by future patches.
+- patches.suse/device-groups.patch: Driver core: add groups
+ support to struct device.
+- patches.suse/device-class-parent.patch: Driver core: allow
+ devices in classes to have no parent.
+- patches.suse/device-class-attr.patch: Driver core: add ability
+ for classes to handle devices properly.
+- patches.suse/device_rename.patch: Driver core: add device_rename
+ function.
+- patches.suse/device-virtual.patch: Driver core: create
+ devices/virtual/ tree.
+- patches.suse/class_device_interface.patch: Class: add support
+ for class interfaces for devices.
+- patches.suse/device_bin_file.patch: Driver core: add ability
+ for devices to create and remove bin files.
+
+-------------------------------------------------------------------
kernel-debug.changes: same change
kernel-default.changes: same change
kernel-dummy.changes: same change
kernel-iseries64.changes: same change
kernel-kdump.changes: same change
kernel-ppc64.changes: same change
kernel-s390.changes: same change
kernel-source.changes: same change
kernel-syms.changes: same change
kernel-um.changes: same change
kernel-vanilla.changes: same change
kernel-xen.changes: same change
kernel-xenpae.changes: same change
New:
----
needed_space_in_mb
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kernel-bigsmp.spec ++++++
--- /var/tmp/diff_new_pack.wM9eok/_old 2006-09-28 08:22:40.000000000 +0200
+++ /var/tmp/diff_new_pack.wM9eok/_new 2006-09-28 08:22:40.000000000 +0200
@@ -23,7 +23,7 @@
BuildRequires: python
%endif
Version: 2.6.18
-Release: 6
+Release: 7
Summary: Kernel with PAE Support
License: GPL
Group: System/Kernel
@@ -119,7 +119,7 @@
-Source Timestamp: 2006/09/25 17:30:03 UTC
+Source Timestamp: 2006/09/27 23:10:02 UTC
%prep
if ! [ -e %_sourcedir/linux-2.6.18.tar.bz2 ]; then
@@ -475,6 +475,36 @@
%files -f kernel.files
%changelog -n kernel-bigsmp
+* Thu Sep 28 2006 - gregkh(a)suse.de
+- patches.suse/usb-storage-disable-delay.patch: USB: change
+ default delay time for usb-storage devices.
+* Wed Sep 27 2006 - gregkh(a)suse.de
+- patches.suse/driver-multithread.patch: Driver Core: add ability
+ for drivers to do a threaded probe.
+- patches.suse/pci-multithreaded-probe.patch: PCI: enable driver
+ multi-threaded probe.
+* Wed Sep 27 2006 - gregkh(a)suse.de
+- fuzz refresh:
+- patches.suse/crasher-26.diff: slab testing module.
+- patches.uml/uml-kconfig: kconfig: enable vt & input subsystems
+ for UML.
+* Wed Sep 27 2006 - gregkh(a)suse.de
+- First step in sysfs changes for 10.2. Here are the base patches that are all
+ in Linus's tree that will be needed by future patches.
+- patches.suse/device-groups.patch: Driver core: add groups
+ support to struct device.
+- patches.suse/device-class-parent.patch: Driver core: allow
+ devices in classes to have no parent.
+- patches.suse/device-class-attr.patch: Driver core: add ability
+ for classes to handle devices properly.
+- patches.suse/device_rename.patch: Driver core: add device_rename
+ function.
+- patches.suse/device-virtual.patch: Driver core: create
+ devices/virtual/ tree.
+- patches.suse/class_device_interface.patch: Class: add support
+ for class interfaces for devices.
+- patches.suse/device_bin_file.patch: Driver core: add ability
+ for devices to create and remove bin files.
* Mon Sep 25 2006 - gregkh(a)suse.de
- Fix the kernel-source rpm build breakage due to the vanilla addition
* Sat Sep 23 2006 - gregkh(a)suse.de
kernel-debug.spec: same change
kernel-default.spec: same change
++++++ kernel-dummy.spec ++++++
--- /var/tmp/diff_new_pack.wM9eok/_old 2006-09-28 08:22:41.000000000 +0200
+++ /var/tmp/diff_new_pack.wM9eok/_new 2006-09-28 08:22:41.000000000 +0200
@@ -17,7 +17,7 @@
Summary: Internal dummy package for synchronizing release numbers
Group: System/Kernel
Version: 2.6.18
-Release: 4
+Release: 5
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@@ -27,7 +27,7 @@
--------
Andreas Gruenbacher <agruen(a)suse.de>
-Source Timestamp: 2006/09/25 17:30:03 UTC
+Source Timestamp: 2006/09/27 23:10:02 UTC
%install
@@ -40,6 +40,36 @@
/etc/dummy
%changelog -n kernel-dummy
+* Thu Sep 28 2006 - gregkh(a)suse.de
+- patches.suse/usb-storage-disable-delay.patch: USB: change
+ default delay time for usb-storage devices.
+* Wed Sep 27 2006 - gregkh(a)suse.de
+- patches.suse/driver-multithread.patch: Driver Core: add ability
+ for drivers to do a threaded probe.
+- patches.suse/pci-multithreaded-probe.patch: PCI: enable driver
+ multi-threaded probe.
+* Wed Sep 27 2006 - gregkh(a)suse.de
+- fuzz refresh:
+- patches.suse/crasher-26.diff: slab testing module.
+- patches.uml/uml-kconfig: kconfig: enable vt & input subsystems
+ for UML.
+* Wed Sep 27 2006 - gregkh(a)suse.de
+- First step in sysfs changes for 10.2. Here are the base patches that are all
+ in Linus's tree that will be needed by future patches.
+- patches.suse/device-groups.patch: Driver core: add groups
+ support to struct device.
+- patches.suse/device-class-parent.patch: Driver core: allow
+ devices in classes to have no parent.
+- patches.suse/device-class-attr.patch: Driver core: add ability
+ for classes to handle devices properly.
+- patches.suse/device_rename.patch: Driver core: add device_rename
+ function.
+- patches.suse/device-virtual.patch: Driver core: create
+ devices/virtual/ tree.
+- patches.suse/class_device_interface.patch: Class: add support
+ for class interfaces for devices.
+- patches.suse/device_bin_file.patch: Driver core: add ability
+ for devices to create and remove bin files.
* Mon Sep 25 2006 - gregkh(a)suse.de
- Fix the kernel-source rpm build breakage due to the vanilla addition
* Sat Sep 23 2006 - gregkh(a)suse.de
++++++ kernel-iseries64.spec ++++++
--- /var/tmp/diff_new_pack.wM9eok/_old 2006-09-28 08:22:41.000000000 +0200
+++ /var/tmp/diff_new_pack.wM9eok/_new 2006-09-28 08:22:41.000000000 +0200
@@ -23,7 +23,7 @@
BuildRequires: python
%endif
Version: 2.6.18
-Release: 5
+Release: 6
Summary: 64-Bit Kernel for iSeries
License: GPL
Group: System/Kernel
@@ -120,7 +120,7 @@
-Source Timestamp: 2006/09/25 17:30:03 UTC
+Source Timestamp: 2006/09/27 23:10:02 UTC
%prep
if ! [ -e %_sourcedir/linux-2.6.18.tar.bz2 ]; then
@@ -476,6 +476,36 @@
%files -f kernel.files
%changelog -n kernel-iseries64
+* Thu Sep 28 2006 - gregkh(a)suse.de
+- patches.suse/usb-storage-disable-delay.patch: USB: change
+ default delay time for usb-storage devices.
+* Wed Sep 27 2006 - gregkh(a)suse.de
+- patches.suse/driver-multithread.patch: Driver Core: add ability
+ for drivers to do a threaded probe.
+- patches.suse/pci-multithreaded-probe.patch: PCI: enable driver
+ multi-threaded probe.
+* Wed Sep 27 2006 - gregkh(a)suse.de
+- fuzz refresh:
+- patches.suse/crasher-26.diff: slab testing module.
+- patches.uml/uml-kconfig: kconfig: enable vt & input subsystems
+ for UML.
+* Wed Sep 27 2006 - gregkh(a)suse.de
+- First step in sysfs changes for 10.2. Here are the base patches that are all
+ in Linus's tree that will be needed by future patches.
+- patches.suse/device-groups.patch: Driver core: add groups
+ support to struct device.
+- patches.suse/device-class-parent.patch: Driver core: allow
+ devices in classes to have no parent.
+- patches.suse/device-class-attr.patch: Driver core: add ability
+ for classes to handle devices properly.
+- patches.suse/device_rename.patch: Driver core: add device_rename
+ function.
+- patches.suse/device-virtual.patch: Driver core: create
+ devices/virtual/ tree.
+- patches.suse/class_device_interface.patch: Class: add support
+ for class interfaces for devices.
+- patches.suse/device_bin_file.patch: Driver core: add ability
+ for devices to create and remove bin files.
* Mon Sep 25 2006 - gregkh(a)suse.de
- Fix the kernel-source rpm build breakage due to the vanilla addition
* Sat Sep 23 2006 - gregkh(a)suse.de
++++++ kernel-kdump.spec ++++++
--- /var/tmp/diff_new_pack.wM9eok/_old 2006-09-28 08:22:41.000000000 +0200
+++ /var/tmp/diff_new_pack.wM9eok/_new 2006-09-28 08:22:41.000000000 +0200
@@ -23,7 +23,7 @@
BuildRequires: python
%endif
Version: 2.6.18
-Release: 6
+Release: 7
Summary: kernel for kdump
License: GPL
Group: System/Kernel
@@ -129,7 +129,7 @@
-Source Timestamp: 2006/09/25 17:30:03 UTC
+Source Timestamp: 2006/09/27 23:10:02 UTC
%prep
if ! [ -e %_sourcedir/linux-2.6.18.tar.bz2 ]; then
@@ -485,6 +485,36 @@
%files -f kernel.files
%changelog -n kernel-kdump
+* Thu Sep 28 2006 - gregkh(a)suse.de
+- patches.suse/usb-storage-disable-delay.patch: USB: change
+ default delay time for usb-storage devices.
+* Wed Sep 27 2006 - gregkh(a)suse.de
+- patches.suse/driver-multithread.patch: Driver Core: add ability
+ for drivers to do a threaded probe.
+- patches.suse/pci-multithreaded-probe.patch: PCI: enable driver
+ multi-threaded probe.
+* Wed Sep 27 2006 - gregkh(a)suse.de
+- fuzz refresh:
+- patches.suse/crasher-26.diff: slab testing module.
+- patches.uml/uml-kconfig: kconfig: enable vt & input subsystems
+ for UML.
+* Wed Sep 27 2006 - gregkh(a)suse.de
+- First step in sysfs changes for 10.2. Here are the base patches that are all
+ in Linus's tree that will be needed by future patches.
+- patches.suse/device-groups.patch: Driver core: add groups
+ support to struct device.
+- patches.suse/device-class-parent.patch: Driver core: allow
+ devices in classes to have no parent.
+- patches.suse/device-class-attr.patch: Driver core: add ability
+ for classes to handle devices properly.
+- patches.suse/device_rename.patch: Driver core: add device_rename
+ function.
+- patches.suse/device-virtual.patch: Driver core: create
+ devices/virtual/ tree.
+- patches.suse/class_device_interface.patch: Class: add support
+ for class interfaces for devices.
+- patches.suse/device_bin_file.patch: Driver core: add ability
+ for devices to create and remove bin files.
* Mon Sep 25 2006 - gregkh(a)suse.de
- Fix the kernel-source rpm build breakage due to the vanilla addition
* Sat Sep 23 2006 - gregkh(a)suse.de
++++++ kernel-ppc64.spec ++++++
--- /var/tmp/diff_new_pack.wM9eok/_old 2006-09-28 08:22:41.000000000 +0200
+++ /var/tmp/diff_new_pack.wM9eok/_new 2006-09-28 08:22:41.000000000 +0200
@@ -22,7 +22,7 @@
BuildRequires: python
%endif
Version: 2.6.18
-Release: 5
+Release: 6
Summary: Kernel for ppc64 Systems
License: GPL, LGPL
Group: System/Kernel
@@ -134,7 +134,7 @@
Tom Gall <tom_gall(a)vnet.ibm.com>
see /usr/src/linux-pmac-benh/CREDITS for more details.
-Source Timestamp: 2006/09/25 17:30:03 UTC
+Source Timestamp: 2006/09/27 23:10:02 UTC
%prep
if ! [ -e %_sourcedir/linux-2.6.18.tar.bz2 ]; then
@@ -490,6 +490,36 @@
%files -f kernel.files
%changelog -n kernel-ppc64
+* Thu Sep 28 2006 - gregkh(a)suse.de
+- patches.suse/usb-storage-disable-delay.patch: USB: change
+ default delay time for usb-storage devices.
+* Wed Sep 27 2006 - gregkh(a)suse.de
+- patches.suse/driver-multithread.patch: Driver Core: add ability
+ for drivers to do a threaded probe.
+- patches.suse/pci-multithreaded-probe.patch: PCI: enable driver
+ multi-threaded probe.
+* Wed Sep 27 2006 - gregkh(a)suse.de
+- fuzz refresh:
+- patches.suse/crasher-26.diff: slab testing module.
+- patches.uml/uml-kconfig: kconfig: enable vt & input subsystems
+ for UML.
+* Wed Sep 27 2006 - gregkh(a)suse.de
+- First step in sysfs changes for 10.2. Here are the base patches that are all
+ in Linus's tree that will be needed by future patches.
+- patches.suse/device-groups.patch: Driver core: add groups
+ support to struct device.
+- patches.suse/device-class-parent.patch: Driver core: allow
+ devices in classes to have no parent.
+- patches.suse/device-class-attr.patch: Driver core: add ability
+ for classes to handle devices properly.
+- patches.suse/device_rename.patch: Driver core: add device_rename
+ function.
+- patches.suse/device-virtual.patch: Driver core: create
+ devices/virtual/ tree.
+- patches.suse/class_device_interface.patch: Class: add support
+ for class interfaces for devices.
+- patches.suse/device_bin_file.patch: Driver core: add ability
+ for devices to create and remove bin files.
* Mon Sep 25 2006 - gregkh(a)suse.de
- Fix the kernel-source rpm build breakage due to the vanilla addition
* Sat Sep 23 2006 - gregkh(a)suse.de
++++++ kernel-s390.spec ++++++
--- /var/tmp/diff_new_pack.wM9eok/_old 2006-09-28 08:22:41.000000000 +0200
+++ /var/tmp/diff_new_pack.wM9eok/_new 2006-09-28 08:22:41.000000000 +0200
@@ -23,7 +23,7 @@
BuildRequires: python
%endif
Version: 2.6.18
-Release: 4
+Release: 5
Summary: The Standard Kernel
License: GPL
Group: System/Kernel
@@ -117,7 +117,7 @@
-Source Timestamp: 2006/09/25 17:30:03 UTC
+Source Timestamp: 2006/09/27 23:10:02 UTC
%prep
if ! [ -e %_sourcedir/linux-2.6.18.tar.bz2 ]; then
@@ -473,6 +473,36 @@
%files -f kernel.files
%changelog -n kernel-s390
+* Thu Sep 28 2006 - gregkh(a)suse.de
+- patches.suse/usb-storage-disable-delay.patch: USB: change
+ default delay time for usb-storage devices.
+* Wed Sep 27 2006 - gregkh(a)suse.de
+- patches.suse/driver-multithread.patch: Driver Core: add ability
+ for drivers to do a threaded probe.
+- patches.suse/pci-multithreaded-probe.patch: PCI: enable driver
+ multi-threaded probe.
+* Wed Sep 27 2006 - gregkh(a)suse.de
+- fuzz refresh:
+- patches.suse/crasher-26.diff: slab testing module.
+- patches.uml/uml-kconfig: kconfig: enable vt & input subsystems
+ for UML.
+* Wed Sep 27 2006 - gregkh(a)suse.de
+- First step in sysfs changes for 10.2. Here are the base patches that are all
+ in Linus's tree that will be needed by future patches.
+- patches.suse/device-groups.patch: Driver core: add groups
+ support to struct device.
+- patches.suse/device-class-parent.patch: Driver core: allow
+ devices in classes to have no parent.
+- patches.suse/device-class-attr.patch: Driver core: add ability
+ for classes to handle devices properly.
+- patches.suse/device_rename.patch: Driver core: add device_rename
+ function.
+- patches.suse/device-virtual.patch: Driver core: create
+ devices/virtual/ tree.
+- patches.suse/class_device_interface.patch: Class: add support
+ for class interfaces for devices.
+- patches.suse/device_bin_file.patch: Driver core: add ability
+ for devices to create and remove bin files.
* Mon Sep 25 2006 - gregkh(a)suse.de
- Fix the kernel-source rpm build breakage due to the vanilla addition
* Sat Sep 23 2006 - gregkh(a)suse.de
++++++ kernel-source.spec ++++++
--- /var/tmp/diff_new_pack.wM9eok/_old 2006-09-28 08:22:41.000000000 +0200
+++ /var/tmp/diff_new_pack.wM9eok/_new 2006-09-28 08:22:41.000000000 +0200
@@ -26,7 +26,7 @@
%endif
PreReq: /sbin/insserv /usr/bin/grep /bin/sed /bin/uname /bin/mkdir /bin/cat /bin/ln /bin/rm /etc/rc.status
Version: 2.6.18
-Release: 6
+Release: 7
Source0: http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.tar.bz2
Source1: functions.sh
Source2: source-post.sh
@@ -94,7 +94,7 @@
see /usr/src/linux/CREDITS for more details.
-Source Timestamp: 2006/09/25 17:30:03 UTC
+Source Timestamp: 2006/09/27 23:10:02 UTC
%prep
if ! [ -e %_sourcedir/linux-2.6.18.tar.bz2 ]; then
@@ -276,6 +276,36 @@
%files -f kernel-source.files
%changelog -n kernel-source
+* Thu Sep 28 2006 - gregkh(a)suse.de
+- patches.suse/usb-storage-disable-delay.patch: USB: change
+ default delay time for usb-storage devices.
+* Wed Sep 27 2006 - gregkh(a)suse.de
+- patches.suse/driver-multithread.patch: Driver Core: add ability
+ for drivers to do a threaded probe.
+- patches.suse/pci-multithreaded-probe.patch: PCI: enable driver
+ multi-threaded probe.
+* Wed Sep 27 2006 - gregkh(a)suse.de
+- fuzz refresh:
+- patches.suse/crasher-26.diff: slab testing module.
+- patches.uml/uml-kconfig: kconfig: enable vt & input subsystems
+ for UML.
+* Wed Sep 27 2006 - gregkh(a)suse.de
+- First step in sysfs changes for 10.2. Here are the base patches that are all
+ in Linus's tree that will be needed by future patches.
+- patches.suse/device-groups.patch: Driver core: add groups
+ support to struct device.
+- patches.suse/device-class-parent.patch: Driver core: allow
+ devices in classes to have no parent.
+- patches.suse/device-class-attr.patch: Driver core: add ability
+ for classes to handle devices properly.
+- patches.suse/device_rename.patch: Driver core: add device_rename
+ function.
+- patches.suse/device-virtual.patch: Driver core: create
+ devices/virtual/ tree.
+- patches.suse/class_device_interface.patch: Class: add support
+ for class interfaces for devices.
+- patches.suse/device_bin_file.patch: Driver core: add ability
+ for devices to create and remove bin files.
* Mon Sep 25 2006 - gregkh(a)suse.de
- Fix the kernel-source rpm build breakage due to the vanilla addition
* Sat Sep 23 2006 - gregkh(a)suse.de
++++++ kernel-syms.spec ++++++
--- /var/tmp/diff_new_pack.wM9eok/_old 2006-09-28 08:22:41.000000000 +0200
+++ /var/tmp/diff_new_pack.wM9eok/_new 2006-09-28 08:22:41.000000000 +0200
@@ -49,7 +49,7 @@
Summary: Kernel Symbol Versions (modversions)
Group: Development/Sources
Version: 2.6.18
-Release: 6
+Release: 7
Requires: linux
Requires: kernel-source = 2.6.18-%release
Source11: arch-symbols
@@ -84,7 +84,7 @@
see /usr/src/linux/CREDITS for more details.
-Source Timestamp: 2006/09/25 17:30:03 UTC
+Source Timestamp: 2006/09/27 23:10:02 UTC
%install
@@ -127,6 +127,36 @@
/boot/symsets-*-*.tar.gz
%changelog -n kernel-syms
+* Thu Sep 28 2006 - gregkh(a)suse.de
+- patches.suse/usb-storage-disable-delay.patch: USB: change
+ default delay time for usb-storage devices.
+* Wed Sep 27 2006 - gregkh(a)suse.de
+- patches.suse/driver-multithread.patch: Driver Core: add ability
+ for drivers to do a threaded probe.
+- patches.suse/pci-multithreaded-probe.patch: PCI: enable driver
+ multi-threaded probe.
+* Wed Sep 27 2006 - gregkh(a)suse.de
+- fuzz refresh:
+- patches.suse/crasher-26.diff: slab testing module.
+- patches.uml/uml-kconfig: kconfig: enable vt & input subsystems
+ for UML.
+* Wed Sep 27 2006 - gregkh(a)suse.de
+- First step in sysfs changes for 10.2. Here are the base patches that are all
+ in Linus's tree that will be needed by future patches.
+- patches.suse/device-groups.patch: Driver core: add groups
+ support to struct device.
+- patches.suse/device-class-parent.patch: Driver core: allow
+ devices in classes to have no parent.
+- patches.suse/device-class-attr.patch: Driver core: add ability
+ for classes to handle devices properly.
+- patches.suse/device_rename.patch: Driver core: add device_rename
+ function.
+- patches.suse/device-virtual.patch: Driver core: create
+ devices/virtual/ tree.
+- patches.suse/class_device_interface.patch: Class: add support
+ for class interfaces for devices.
+- patches.suse/device_bin_file.patch: Driver core: add ability
+ for devices to create and remove bin files.
* Mon Sep 25 2006 - gregkh(a)suse.de
- Fix the kernel-source rpm build breakage due to the vanilla addition
* Sat Sep 23 2006 - gregkh(a)suse.de
++++++ kernel-um.spec ++++++
--- /var/tmp/diff_new_pack.wM9eok/_old 2006-09-28 08:22:42.000000000 +0200
+++ /var/tmp/diff_new_pack.wM9eok/_new 2006-09-28 08:22:42.000000000 +0200
@@ -23,7 +23,7 @@
BuildRequires: python
%endif
Version: 2.6.18
-Release: 6
+Release: 7
Summary: The User Mode Linux kernel.
License: GPL
Group: System/Kernel
@@ -125,7 +125,7 @@
-Source Timestamp: 2006/09/25 17:30:03 UTC
+Source Timestamp: 2006/09/27 23:10:02 UTC
%prep
if ! [ -e %_sourcedir/linux-2.6.18.tar.bz2 ]; then
@@ -481,6 +481,36 @@
%files -f kernel.files
%changelog -n kernel-um
+* Thu Sep 28 2006 - gregkh(a)suse.de
+- patches.suse/usb-storage-disable-delay.patch: USB: change
+ default delay time for usb-storage devices.
+* Wed Sep 27 2006 - gregkh(a)suse.de
+- patches.suse/driver-multithread.patch: Driver Core: add ability
+ for drivers to do a threaded probe.
+- patches.suse/pci-multithreaded-probe.patch: PCI: enable driver
+ multi-threaded probe.
+* Wed Sep 27 2006 - gregkh(a)suse.de
+- fuzz refresh:
+- patches.suse/crasher-26.diff: slab testing module.
+- patches.uml/uml-kconfig: kconfig: enable vt & input subsystems
+ for UML.
+* Wed Sep 27 2006 - gregkh(a)suse.de
+- First step in sysfs changes for 10.2. Here are the base patches that are all
+ in Linus's tree that will be needed by future patches.
+- patches.suse/device-groups.patch: Driver core: add groups
+ support to struct device.
+- patches.suse/device-class-parent.patch: Driver core: allow
+ devices in classes to have no parent.
+- patches.suse/device-class-attr.patch: Driver core: add ability
+ for classes to handle devices properly.
+- patches.suse/device_rename.patch: Driver core: add device_rename
+ function.
+- patches.suse/device-virtual.patch: Driver core: create
+ devices/virtual/ tree.
+- patches.suse/class_device_interface.patch: Class: add support
+ for class interfaces for devices.
+- patches.suse/device_bin_file.patch: Driver core: add ability
+ for devices to create and remove bin files.
* Mon Sep 25 2006 - gregkh(a)suse.de
- Fix the kernel-source rpm build breakage due to the vanilla addition
* Sat Sep 23 2006 - gregkh(a)suse.de
++++++ kernel-vanilla.spec ++++++
--- /var/tmp/diff_new_pack.wM9eok/_old 2006-09-28 08:22:42.000000000 +0200
+++ /var/tmp/diff_new_pack.wM9eok/_new 2006-09-28 08:22:42.000000000 +0200
@@ -23,7 +23,7 @@
BuildRequires: python
%endif
Version: 2.6.18
-Release: 2
+Release: 3
Summary: The Standard Kernel - without any SUSE patches
License: GPL
Group: System/Kernel
@@ -137,7 +137,7 @@
-Source Timestamp: 2006/09/25 17:30:03 UTC
+Source Timestamp: 2006/09/27 23:10:02 UTC
%prep
if ! [ -e %_sourcedir/linux-2.6.18.tar.bz2 ]; then
@@ -493,6 +493,36 @@
%files -f kernel.files
%changelog -n kernel-vanilla
+* Thu Sep 28 2006 - gregkh(a)suse.de
+- patches.suse/usb-storage-disable-delay.patch: USB: change
+ default delay time for usb-storage devices.
+* Wed Sep 27 2006 - gregkh(a)suse.de
+- patches.suse/driver-multithread.patch: Driver Core: add ability
+ for drivers to do a threaded probe.
+- patches.suse/pci-multithreaded-probe.patch: PCI: enable driver
+ multi-threaded probe.
+* Wed Sep 27 2006 - gregkh(a)suse.de
+- fuzz refresh:
+- patches.suse/crasher-26.diff: slab testing module.
+- patches.uml/uml-kconfig: kconfig: enable vt & input subsystems
+ for UML.
+* Wed Sep 27 2006 - gregkh(a)suse.de
+- First step in sysfs changes for 10.2. Here are the base patches that are all
+ in Linus's tree that will be needed by future patches.
+- patches.suse/device-groups.patch: Driver core: add groups
+ support to struct device.
+- patches.suse/device-class-parent.patch: Driver core: allow
+ devices in classes to have no parent.
+- patches.suse/device-class-attr.patch: Driver core: add ability
+ for classes to handle devices properly.
+- patches.suse/device_rename.patch: Driver core: add device_rename
+ function.
+- patches.suse/device-virtual.patch: Driver core: create
+ devices/virtual/ tree.
+- patches.suse/class_device_interface.patch: Class: add support
+ for class interfaces for devices.
+- patches.suse/device_bin_file.patch: Driver core: add ability
+ for devices to create and remove bin files.
* Mon Sep 25 2006 - gregkh(a)suse.de
- Fix the kernel-source rpm build breakage due to the vanilla addition
* Sat Sep 23 2006 - gregkh(a)suse.de
++++++ kernel-xen.spec ++++++
--- /var/tmp/diff_new_pack.wM9eok/_old 2006-09-28 08:22:42.000000000 +0200
+++ /var/tmp/diff_new_pack.wM9eok/_new 2006-09-28 08:22:42.000000000 +0200
@@ -23,7 +23,7 @@
BuildRequires: python
%endif
Version: 2.6.18
-Release: 4
+Release: 5
Summary: The Xen Kernel
License: GPL
Group: System/Kernel
@@ -123,7 +123,7 @@
-Source Timestamp: 2006/09/25 17:30:03 UTC
+Source Timestamp: 2006/09/27 23:10:02 UTC
%prep
if ! [ -e %_sourcedir/linux-2.6.18.tar.bz2 ]; then
@@ -479,6 +479,36 @@
%files -f kernel.files
%changelog -n kernel-xen
+* Thu Sep 28 2006 - gregkh(a)suse.de
+- patches.suse/usb-storage-disable-delay.patch: USB: change
+ default delay time for usb-storage devices.
+* Wed Sep 27 2006 - gregkh(a)suse.de
+- patches.suse/driver-multithread.patch: Driver Core: add ability
+ for drivers to do a threaded probe.
+- patches.suse/pci-multithreaded-probe.patch: PCI: enable driver
+ multi-threaded probe.
+* Wed Sep 27 2006 - gregkh(a)suse.de
+- fuzz refresh:
+- patches.suse/crasher-26.diff: slab testing module.
+- patches.uml/uml-kconfig: kconfig: enable vt & input subsystems
+ for UML.
+* Wed Sep 27 2006 - gregkh(a)suse.de
+- First step in sysfs changes for 10.2. Here are the base patches that are all
+ in Linus's tree that will be needed by future patches.
+- patches.suse/device-groups.patch: Driver core: add groups
+ support to struct device.
+- patches.suse/device-class-parent.patch: Driver core: allow
+ devices in classes to have no parent.
+- patches.suse/device-class-attr.patch: Driver core: add ability
+ for classes to handle devices properly.
+- patches.suse/device_rename.patch: Driver core: add device_rename
+ function.
+- patches.suse/device-virtual.patch: Driver core: create
+ devices/virtual/ tree.
+- patches.suse/class_device_interface.patch: Class: add support
+ for class interfaces for devices.
+- patches.suse/device_bin_file.patch: Driver core: add ability
+ for devices to create and remove bin files.
* Mon Sep 25 2006 - gregkh(a)suse.de
- Fix the kernel-source rpm build breakage due to the vanilla addition
* Sat Sep 23 2006 - gregkh(a)suse.de
kernel-xenpae.spec: same change
++++++ build-source-timestamp ++++++
--- kernel-source/build-source-timestamp 2006-09-25 19:38:35.000000000 +0200
+++ /mounts/work_src_done/STABLE/kernel-source/build-source-timestamp 2006-09-28 01:32:23.000000000 +0200
@@ -1 +1 @@
-2006/09/25 17:30:03 UTC
+2006/09/27 23:10:02 UTC
++++++ patches.suse.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.suse/class_device_interface.patch new/patches.suse/class_device_interface.patch
--- old/patches.suse/class_device_interface.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.suse/class_device_interface.patch 2006-09-27 23:20:22.000000000 +0200
@@ -0,0 +1,116 @@
+From foo@baz Tue Apr 9 12:12:43 2002
+Date: Wed, 13 Sep 2006 15:34:05 +0200
+To: Greg KH <greg(a)kroah.com>
+From: Greg Kroah-Hartman <gregkh(a)suse.de>
+Subject: Class: add support for class interfaces for devices
+Patch-mainline: 2.6.19
+
+When moving class_device usage over to device, we need to handle
+class_interfaces properly with devices. This patch adds that support.
+
+
+Signed-off-by: Greg Kroah-Hartman <gregkh(a)suse.de>
+
+---
+ drivers/base/class.c | 10 ++++++++++
+ drivers/base/core.c | 14 +++++++++++++-
+ include/linux/device.h | 2 ++
+ 3 files changed, 25 insertions(+), 1 deletion(-)
+
+--- linux-2.6.18.orig/drivers/base/class.c
++++ linux-2.6.18/drivers/base/class.c
+@@ -841,6 +841,7 @@ int class_interface_register(struct clas
+ {
+ struct class *parent;
+ struct class_device *class_dev;
++ struct device *dev;
+
+ if (!class_intf || !class_intf->class)
+ return -ENODEV;
+@@ -855,6 +856,10 @@ int class_interface_register(struct clas
+ list_for_each_entry(class_dev, &parent->children, node)
+ class_intf->add(class_dev, class_intf);
+ }
++ if (class_intf->add_dev) {
++ list_for_each_entry(dev, &parent->devices, node)
++ class_intf->add_dev(dev, class_intf);
++ }
+ up(&parent->sem);
+
+ return 0;
+@@ -864,6 +869,7 @@ void class_interface_unregister(struct c
+ {
+ struct class * parent = class_intf->class;
+ struct class_device *class_dev;
++ struct device *dev;
+
+ if (!parent)
+ return;
+@@ -874,6 +880,10 @@ void class_interface_unregister(struct c
+ list_for_each_entry(class_dev, &parent->children, node)
+ class_intf->remove(class_dev, class_intf);
+ }
++ if (class_intf->remove_dev) {
++ list_for_each_entry(dev, &parent->devices, node)
++ class_intf->remove_dev(dev, class_intf);
++ }
+ up(&parent->sem);
+
+ class_put(parent);
+--- linux-2.6.18.orig/drivers/base/core.c
++++ linux-2.6.18/drivers/base/core.c
+@@ -368,6 +368,7 @@ int device_add(struct device *dev)
+ {
+ struct device *parent = NULL;
+ char *class_name = NULL;
++ struct class_interface *class_intf;
+ int error = -EINVAL;
+
+ dev = get_device(dev);
+@@ -447,9 +448,14 @@ int device_add(struct device *dev)
+ klist_add_tail(&dev->knode_parent, &parent->klist_children);
+
+ if (dev->class) {
+- /* tie the class to the device */
+ down(&dev->class->sem);
++ /* tie the class to the device */
+ list_add_tail(&dev->node, &dev->class->devices);
++
++ /* notify any interfaces that the device is here */
++ list_for_each_entry(class_intf, &dev->class->interfaces, node)
++ if (class_intf->add_dev)
++ class_intf->add_dev(dev, class_intf);
+ up(&dev->class->sem);
+ }
+
+@@ -544,6 +550,7 @@ void device_del(struct device * dev)
+ {
+ struct device * parent = dev->parent;
+ char *class_name = NULL;
++ struct class_interface *class_intf;
+
+ if (parent)
+ klist_del(&dev->knode_parent);
+@@ -559,6 +566,11 @@ void device_del(struct device * dev)
+ }
+ kfree(class_name);
+ down(&dev->class->sem);
++ /* notify any interfaces that the device is now gone */
++ list_for_each_entry(class_intf, &dev->class->interfaces, node)
++ if (class_intf->remove_dev)
++ class_intf->remove_dev(dev, class_intf);
++ /* remove the device from the class list */
+ list_del_init(&dev->node);
+ up(&dev->class->sem);
+ }
+--- linux-2.6.18.orig/include/linux/device.h
++++ linux-2.6.18/include/linux/device.h
+@@ -272,6 +272,8 @@ struct class_interface {
+
+ int (*add) (struct class_device *, struct class_interface *);
+ void (*remove) (struct class_device *, struct class_interface *);
++ int (*add_dev) (struct device *, struct class_interface *);
++ void (*remove_dev) (struct device *, struct class_interface *);
+ };
+
+ extern int class_interface_register(struct class_interface *);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.suse/crasher-26.diff new/patches.suse/crasher-26.diff
--- old/patches.suse/crasher-26.diff 2006-09-20 20:45:15.000000000 +0200
+++ new/patches.suse/crasher-26.diff 2006-09-28 01:29:16.000000000 +0200
@@ -9,7 +9,7 @@
--- linux-2.6.18.orig/drivers/char/Kconfig
+++ linux-2.6.18/drivers/char/Kconfig
-@@ -1063,5 +1063,10 @@ config TELCLOCK
+@@ -1073,5 +1073,10 @@ config TELCLOCK
sysfs directory, /sys/devices/platform/telco_clock, with a number of
files for controlling the behavior of this hardware.
@@ -22,7 +22,7 @@
--- linux-2.6.18.orig/drivers/char/Makefile
+++ linux-2.6.18/drivers/char/Makefile
-@@ -98,6 +98,7 @@ obj-$(CONFIG_IPMI_HANDLER) += ipmi/
+@@ -99,6 +99,7 @@ obj-$(CONFIG_IPMI_HANDLER) += ipmi/
obj-$(CONFIG_HANGCHECK_TIMER) += hangcheck-timer.o
obj-$(CONFIG_TCG_TPM) += tpm/
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.suse/device-class-attr.patch new/patches.suse/device-class-attr.patch
--- old/patches.suse/device-class-attr.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.suse/device-class-attr.patch 2006-09-27 23:20:22.000000000 +0200
@@ -0,0 +1,150 @@
+From foo@baz Tue Apr 9 12:12:43 2002
+Date: Wed, 28 Jun 2006 16:19:58 -0700
+To: Greg KH <greg(a)kroah.com>
+From: Greg Kroah-Hartman <gregkh(a)suse.de>
+Subject: Driver core: add ability for classes to handle devices properly
+Patch-mainline: 2.6.19
+
+This adds two new callbacks to the class structure:
+ int (*dev_uevent)(struct device *dev, char **envp, int num_envp,
+ char *buffer, int buffer_size);
+ void (*dev_release)(struct device *dev);
+
+And one pointer:
+ struct device_attribute * dev_attrs;
+
+which all corrispond with the same thing as the "normal" class devices
+do, yet this is for when a struct device is bound to a class.
+
+Someday soon, struct class_device will go away, and then the other
+fields in this structure can be removed too. But this is necessary in
+order to get the transition to work properly.
+
+Tested out on a network core patch that converted it to use struct
+device instead of struct class_device.
+
+
+Signed-off-by: Greg Kroah-Hartman <gregkh(a)suse.de>
+
+
+---
+ drivers/base/core.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++++
+ include/linux/device.h | 4 +++
+ 2 files changed, 57 insertions(+)
+
+--- linux-2.6.18.orig/drivers/base/core.c
++++ linux-2.6.18/drivers/base/core.c
+@@ -94,6 +94,8 @@ static void device_release(struct kobjec
+
+ if (dev->release)
+ dev->release(dev);
++ else if (dev->class && dev->class->dev_release)
++ dev->class->dev_release(dev);
+ else {
+ printk(KERN_ERR "Device '%s' does not have a release() function, "
+ "it is broken and must be fixed.\n",
+@@ -179,6 +181,15 @@ static int dev_uevent(struct kset *kset,
+ }
+ }
+
++ if (dev->class && dev->class->dev_uevent) {
++ /* have the class specific function add its stuff */
++ retval = dev->class->dev_uevent(dev, envp, num_envp, buffer, buffer_size);
++ if (retval) {
++ pr_debug("%s - dev_uevent() returned %d\n",
++ __FUNCTION__, retval);
++ }
++ }
++
+ return retval;
+ }
+
+@@ -224,6 +235,43 @@ static void device_remove_groups(struct
+ }
+ }
+
++static int device_add_attrs(struct device *dev)
++{
++ struct class *class = dev->class;
++ int error = 0;
++ int i;
++
++ if (!class)
++ return 0;
++
++ if (class->dev_attrs) {
++ for (i = 0; attr_name(class->dev_attrs[i]); i++) {
++ error = device_create_file(dev, &class->dev_attrs[i]);
++ if (error)
++ break;
++ }
++ }
++ if (error)
++ while (--i >= 0)
++ device_remove_file(dev, &class->dev_attrs[i]);
++ return error;
++}
++
++static void device_remove_attrs(struct device *dev)
++{
++ struct class *class = dev->class;
++ int i;
++
++ if (!class)
++ return;
++
++ if (class->dev_attrs) {
++ for (i = 0; attr_name(class->dev_attrs[i]); i++)
++ device_remove_file(dev, &class->dev_attrs[i]);
++ }
++}
++
++
+ static ssize_t show_dev(struct device *dev, struct device_attribute *attr,
+ char *buf)
+ {
+@@ -378,6 +426,8 @@ int device_add(struct device *dev)
+ }
+ }
+
++ if ((error = device_add_attrs(dev)))
++ goto AttrsError;
+ if ((error = device_add_groups(dev)))
+ goto GroupError;
+ if ((error = device_pm_add(dev)))
+@@ -408,6 +458,8 @@ int device_add(struct device *dev)
+ PMError:
+ device_remove_groups(dev);
+ GroupError:
++ device_remove_attrs(dev);
++ AttrsError:
+ if (dev->devt_attr) {
+ device_remove_file(dev, dev->devt_attr);
+ kfree(dev->devt_attr);
+@@ -505,6 +557,7 @@ void device_del(struct device * dev)
+ }
+ device_remove_file(dev, &dev->uevent_attr);
+ device_remove_groups(dev);
++ device_remove_attrs(dev);
+
+ /* Notify the platform of the removal, in case they
+ * need to do anything...
+--- linux-2.6.18.orig/include/linux/device.h
++++ linux-2.6.18/include/linux/device.h
+@@ -148,12 +148,16 @@ struct class {
+
+ struct class_attribute * class_attrs;
+ struct class_device_attribute * class_dev_attrs;
++ struct device_attribute * dev_attrs;
+
+ int (*uevent)(struct class_device *dev, char **envp,
+ int num_envp, char *buffer, int buffer_size);
++ int (*dev_uevent)(struct device *dev, char **envp, int num_envp,
++ char *buffer, int buffer_size);
+
+ void (*release)(struct class_device *dev);
+ void (*class_release)(struct class *class);
++ void (*dev_release)(struct device *dev);
+ };
+
+ extern int class_register(struct class *);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.suse/device-class-parent.patch new/patches.suse/device-class-parent.patch
--- old/patches.suse/device-class-parent.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.suse/device-class-parent.patch 2006-09-27 23:20:22.000000000 +0200
@@ -0,0 +1,74 @@
+From foo@baz Tue Apr 9 12:12:43 2002
+Date: Wed, 28 Jun 2006 16:19:58 -0700
+To: Greg KH <greg(a)kroah.com>
+From: Greg Kroah-Hartman <gregkh(a)suse.de>
+Subject: Driver core: allow devices in classes to have no parent
+Patch-mainline: 2.6.19
+
+This fixes an oops when a device is attached to a class, yet has no
+"parent" device. An example of this would be the "lo" device in the
+network core.
+
+We should create a "virtual" subdirectory under /sys/devices/ for these,
+but no one seems to agree on a proper name for it yet...
+
+Oh, and update my copyright on the driver core.
+
+Signed-off-by: Greg Kroah-Hartman <gregkh(a)suse.de>
+
+
+---
+ drivers/base/core.c | 21 +++++++++++----------
+ 1 files changed, 11 insertions(+), 10 deletions(-)
+
+--- linux-2.6.18.orig/drivers/base/core.c
++++ linux-2.6.18/drivers/base/core.c
+@@ -3,6 +3,8 @@
+ *
+ * Copyright (c) 2002-3 Patrick Mochel
+ * Copyright (c) 2002-3 Open Source Development Labs
++ * Copyright (c) 2006 Greg Kroah-Hartman <gregkh(a)suse.de>
++ * Copyright (c) 2006 Novell, Inc.
+ *
+ * This file is released under the GPLv2
+ *
+@@ -369,10 +371,11 @@ int device_add(struct device *dev)
+ "subsystem");
+ sysfs_create_link(&dev->class->subsys.kset.kobj, &dev->kobj,
+ dev->bus_id);
+-
+- sysfs_create_link(&dev->kobj, &dev->parent->kobj, "device");
+- class_name = make_class_name(dev->class->name, &dev->kobj);
+- sysfs_create_link(&dev->parent->kobj, &dev->kobj, class_name);
++ if (parent) {
++ sysfs_create_link(&dev->kobj, &dev->parent->kobj, "device");
++ class_name = make_class_name(dev->class->name, &dev->kobj);
++ sysfs_create_link(&dev->parent->kobj, &dev->kobj, class_name);
++ }
+ }
+
+ if ((error = device_add_groups(dev)))
+@@ -491,8 +494,10 @@ void device_del(struct device * dev)
+ sysfs_remove_link(&dev->kobj, "subsystem");
+ sysfs_remove_link(&dev->class->subsys.kset.kobj, dev->bus_id);
+ class_name = make_class_name(dev->class->name, &dev->kobj);
+- sysfs_remove_link(&dev->kobj, "device");
+- sysfs_remove_link(&dev->parent->kobj, class_name);
++ if (parent) {
++ sysfs_remove_link(&dev->kobj, "device");
++ sysfs_remove_link(&dev->parent->kobj, class_name);
++ }
+ kfree(class_name);
+ down(&dev->class->sem);
+ list_del_init(&dev->node);
+@@ -621,10 +626,6 @@ struct device *device_create(struct clas
+
+ if (class == NULL || IS_ERR(class))
+ goto error;
+- if (parent == NULL) {
+- printk(KERN_WARNING "%s does not work yet for NULL parents\n", __FUNCTION__);
+- goto error;
+- }
+
+ dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ if (!dev) {
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.suse/device-groups.patch new/patches.suse/device-groups.patch
--- old/patches.suse/device-groups.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.suse/device-groups.patch 2006-09-27 23:20:22.000000000 +0200
@@ -0,0 +1,91 @@
+From foo@baz Tue Apr 9 12:12:43 2002
+Date: Tue, 27 Jun 2006 00:06:09 -0700
+To: Greg KH <greg(a)kroah.com>
+From: Greg Kroah-Hartman <gregkh(a)suse.de>
+Subject: Driver core: add groups support to struct device
+Patch-mainline: 2.6.19
+
+This is needed for the network class devices in order to be able to
+convert over to use struct device.
+
+Signed-off-by: Greg Kroah-Hartman <gregkh(a)suse.de>
+
+---
+ drivers/base/core.c | 34 ++++++++++++++++++++++++++++++++++
+ include/linux/device.h | 1 +
+ 2 files changed, 35 insertions(+)
+
+--- linux-2.6.18.orig/drivers/base/core.c
++++ linux-2.6.18/drivers/base/core.c
+@@ -193,6 +193,35 @@ static ssize_t store_uevent(struct devic
+ return count;
+ }
+
++static int device_add_groups(struct device *dev)
++{
++ int i;
++ int error = 0;
++
++ if (dev->groups) {
++ for (i = 0; dev->groups[i]; i++) {
++ error = sysfs_create_group(&dev->kobj, dev->groups[i]);
++ if (error) {
++ while (--i >= 0)
++ sysfs_remove_group(&dev->kobj, dev->groups[i]);
++ goto out;
++ }
++ }
++ }
++out:
++ return error;
++}
++
++static void device_remove_groups(struct device *dev)
++{
++ int i;
++ if (dev->groups) {
++ for (i = 0; dev->groups[i]; i++) {
++ sysfs_remove_group(&dev->kobj, dev->groups[i]);
++ }
++ }
++}
++
+ static ssize_t show_dev(struct device *dev, struct device_attribute *attr,
+ char *buf)
+ {
+@@ -346,6 +375,8 @@ int device_add(struct device *dev)
+ sysfs_create_link(&dev->parent->kobj, &dev->kobj, class_name);
+ }
+
++ if ((error = device_add_groups(dev)))
++ goto GroupError;
+ if ((error = device_pm_add(dev)))
+ goto PMError;
+ if ((error = bus_add_device(dev)))
+@@ -372,6 +403,8 @@ int device_add(struct device *dev)
+ BusError:
+ device_pm_remove(dev);
+ PMError:
++ device_remove_groups(dev);
++ GroupError:
+ if (dev->devt_attr) {
+ device_remove_file(dev, dev->devt_attr);
+ kfree(dev->devt_attr);
+@@ -466,6 +499,7 @@ void device_del(struct device * dev)
+ up(&dev->class->sem);
+ }
+ device_remove_file(dev, &dev->uevent_attr);
++ device_remove_groups(dev);
+
+ /* Notify the platform of the removal, in case they
+ * need to do anything...
+--- linux-2.6.18.orig/include/linux/device.h
++++ linux-2.6.18/include/linux/device.h
+@@ -338,6 +338,7 @@ struct device {
+ struct list_head node;
+ struct class *class; /* optional*/
+ dev_t devt; /* dev_t, creates the sysfs "dev" */
++ struct attribute_group **groups; /* optional groups */
+
+ void (*release)(struct device * dev);
+ };
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.suse/device-virtual.patch new/patches.suse/device-virtual.patch
--- old/patches.suse/device-virtual.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.suse/device-virtual.patch 2006-09-27 23:20:22.000000000 +0200
@@ -0,0 +1,99 @@
+From foo@baz Tue Apr 9 12:12:43 2002
+Date: Mon, 7 Aug 2006 22:19:37 -0700
+To: Greg KH <greg(a)kroah.com>
+From: Greg Kroah-Hartman <gregkh(a)suse.de>
+Subject: Driver core: create devices/virtual/ tree
+Patch-mainline: 2.6.19
+
+This change creates a devices/virtual/CLASS_NAME tree for struct devices
+that belong to a class, yet do not have a "real" struct device for a
+parent. It automatically creates the directories on the fly as needed.
+
+
+Cc: Kay Sievers <kay.sievers(a)vrfy.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh(a)suse.de>
+
+---
+ drivers/base/class.c | 17 +++++++++++++++++
+ drivers/base/core.c | 7 +++++++
+ include/linux/device.h | 5 ++++-
+ 3 files changed, 28 insertions(+), 1 deletion(-)
+
+--- linux-2.6.18.orig/drivers/base/class.c
++++ linux-2.6.18/drivers/base/class.c
+@@ -19,6 +19,8 @@
+ #include <linux/slab.h>
+ #include "base.h"
+
++extern struct subsystem devices_subsys;
++
+ #define to_class_attr(_attr) container_of(_attr, struct class_attribute, attr)
+ #define to_class(obj) container_of(obj, struct class, subsys.kset.kobj)
+
+@@ -877,7 +879,22 @@ void class_interface_unregister(struct c
+ class_put(parent);
+ }
+
++int virtual_device_parent(struct device *dev)
++{
++ if (!dev->class)
++ return -ENODEV;
++
++ if (!dev->class->virtual_dir) {
++ static struct kobject *virtual_dir = NULL;
+
++ if (!virtual_dir)
++ virtual_dir = kobject_add_dir(&devices_subsys.kset.kobj, "virtual");
++ dev->class->virtual_dir = kobject_add_dir(virtual_dir, dev->class->name);
++ }
++
++ dev->kobj.parent = dev->class->virtual_dir;
++ return 0;
++}
+
+ int __init classes_init(void)
+ {
+--- linux-2.6.18.orig/drivers/base/core.c
++++ linux-2.6.18/drivers/base/core.c
+@@ -374,6 +374,13 @@ int device_add(struct device *dev)
+ if (!dev || !strlen(dev->bus_id))
+ goto Error;
+
++ /* if this is a class device, and has no parent, create one */
++ if ((dev->class) && (dev->parent == NULL)) {
++ error = virtual_device_parent(dev);
++ if (error)
++ goto Error;
++ }
++
+ parent = get_device(dev->parent);
+
+ pr_debug("DEV: registering device: ID = '%s'\n", dev->bus_id);
+--- linux-2.6.18.orig/include/linux/device.h
++++ linux-2.6.18/include/linux/device.h
+@@ -146,6 +146,8 @@ struct class {
+ struct list_head interfaces;
+ struct semaphore sem; /* locks both the children and interfaces lists */
+
++ struct kobject *virtual_dir;
++
+ struct class_attribute * class_attrs;
+ struct class_device_attribute * class_dev_attrs;
+ struct device_attribute * dev_attrs;
+@@ -285,7 +287,6 @@ extern struct class_device *class_device
+ __attribute__((format(printf,5,6)));
+ extern void class_device_destroy(struct class *cls, dev_t devt);
+
+-
+ /* interface for exporting device attributes */
+ struct device_attribute {
+ struct attribute attr;
+@@ -394,6 +395,8 @@ extern struct device *device_create(stru
+ __attribute__((format(printf,4,5)));
+ extern void device_destroy(struct class *cls, dev_t devt);
+
++extern int virtual_device_parent(struct device *dev);
++
+ /*
+ * Platform "fixup" functions - allow the platform to have their say
+ * about devices and actions that the general device layer doesn't
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.suse/device_bin_file.patch new/patches.suse/device_bin_file.patch
--- old/patches.suse/device_bin_file.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.suse/device_bin_file.patch 2006-09-27 23:20:22.000000000 +0200
@@ -0,0 +1,66 @@
+From foo@baz Tue Apr 9 12:12:43 2002
+Date: Tue, 19 Sep 2006 09:39:19 -0700
+To: Greg KH <greg(a)kroah.com>
+From: Greg Kroah-Hartman <gregkh(a)suse.de>
+Subject: Driver core: add ability for devices to create and remove bin files
+Patch-mainline: 2.6.19
+
+Makes it easier for devices to create and remove binary attribute files
+so they don't have to call directly into sysfs. This is needed to help
+with the conversion from struct class_device to struct device.
+
+Signed-off-by: Greg Kroah-Hartman <gregkh(a)suse.de>
+
+---
+ drivers/base/core.c | 26 ++++++++++++++++++++++++++
+ include/linux/device.h | 4 ++++
+ 2 files changed, 30 insertions(+)
+
+--- linux-2.6.18.orig/drivers/base/core.c
++++ linux-2.6.18/drivers/base/core.c
+@@ -315,6 +315,32 @@ void device_remove_file(struct device *
+ }
+ }
+
++/**
++ * device_create_bin_file - create sysfs binary attribute file for device.
++ * @dev: device.
++ * @attr: device binary attribute descriptor.
++ */
++int device_create_bin_file(struct device *dev, struct bin_attribute *attr)
++{
++ int error = -EINVAL;
++ if (dev)
++ error = sysfs_create_bin_file(&dev->kobj, attr);
++ return error;
++}
++EXPORT_SYMBOL_GPL(device_create_bin_file);
++
++/**
++ * device_remove_bin_file - remove sysfs binary attribute file
++ * @dev: device.
++ * @attr: device binary attribute descriptor.
++ */
++void device_remove_bin_file(struct device *dev, struct bin_attribute *attr)
++{
++ if (dev)
++ sysfs_remove_bin_file(&dev->kobj, attr);
++}
++EXPORT_SYMBOL_GPL(device_remove_bin_file);
++
+ static void klist_children_get(struct klist_node *n)
+ {
+ struct device *dev = container_of(n, struct device, knode_parent);
+--- linux-2.6.18.orig/include/linux/device.h
++++ linux-2.6.18/include/linux/device.h
+@@ -303,6 +303,10 @@ struct device_attribute dev_attr_##_name
+
+ extern int device_create_file(struct device *device, struct device_attribute * entry);
+ extern void device_remove_file(struct device * dev, struct device_attribute * attr);
++extern int __must_check device_create_bin_file(struct device *dev,
++ struct bin_attribute *attr);
++extern void device_remove_bin_file(struct device *dev,
++ struct bin_attribute *attr);
+ struct device {
+ struct klist klist_children;
+ struct klist_node knode_parent; /* node in sibling list */
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.suse/device_rename.patch new/patches.suse/device_rename.patch
--- old/patches.suse/device_rename.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.suse/device_rename.patch 2006-09-27 23:20:22.000000000 +0200
@@ -0,0 +1,88 @@
+From foo@baz Tue Apr 9 12:12:43 2002
+Date: Mon, 3 Jul 2006 14:31:12 -0700
+To: Greg KH <greg(a)kroah.com>
+From: Greg Kroah-Hartman <gregkh(a)suse.de>
+Subject: Driver core: add device_rename function
+Patch-mainline: 2.6.19
+
+The network layer needs this to convert to using struct device instead
+of a struct class_device.
+
+Signed-off-by: Greg Kroah-Hartman <gregkh(a)suse.de>
+
+---
+ drivers/base/core.c | 55 +++++++++++++++++++++++++++++++++++++++++++++++++
+ include/linux/device.h | 1
+ 2 files changed, 56 insertions(+)
+
+--- linux-2.6.18.orig/drivers/base/core.c
++++ linux-2.6.18/drivers/base/core.c
+@@ -732,3 +732,58 @@ void device_destroy(struct class *class,
+ device_unregister(dev);
+ }
+ EXPORT_SYMBOL_GPL(device_destroy);
++
++/**
++ * device_rename - renames a device
++ * @dev: the pointer to the struct device to be renamed
++ * @new_name: the new name of the device
++ */
++int device_rename(struct device *dev, char *new_name)
++{
++ char *old_class_name = NULL;
++ char *new_class_name = NULL;
++ char *old_symlink_name = NULL;
++ int error;
++
++ dev = get_device(dev);
++ if (!dev)
++ return -EINVAL;
++
++ pr_debug("DEVICE: renaming '%s' to '%s'\n", dev->bus_id, new_name);
++
++ if ((dev->class) && (dev->parent))
++ old_class_name = make_class_name(dev->class->name, &dev->kobj);
++
++ if (dev->class) {
++ old_symlink_name = kmalloc(BUS_ID_SIZE, GFP_KERNEL);
++ if (!old_symlink_name)
++ return -ENOMEM;
++ strlcpy(old_symlink_name, dev->bus_id, BUS_ID_SIZE);
++ }
++
++ strlcpy(dev->bus_id, new_name, BUS_ID_SIZE);
++
++ error = kobject_rename(&dev->kobj, new_name);
++
++ if (old_class_name) {
++ new_class_name = make_class_name(dev->class->name, &dev->kobj);
++ if (new_class_name) {
++ sysfs_create_link(&dev->parent->kobj, &dev->kobj,
++ new_class_name);
++ sysfs_remove_link(&dev->parent->kobj, old_class_name);
++ }
++ }
++ if (dev->class) {
++ sysfs_remove_link(&dev->class->subsys.kset.kobj,
++ old_symlink_name);
++ sysfs_create_link(&dev->class->subsys.kset.kobj, &dev->kobj,
++ dev->bus_id);
++ }
++ put_device(dev);
++
++ kfree(old_class_name);
++ kfree(new_class_name);
++ kfree(old_symlink_name);
++
++ return error;
++}
+--- linux-2.6.18.orig/include/linux/device.h
++++ linux-2.6.18/include/linux/device.h
+@@ -374,6 +374,7 @@ extern int device_add(struct device * de
+ extern void device_del(struct device * dev);
+ extern int device_for_each_child(struct device *, void *,
+ int (*fn)(struct device *, void *));
++extern int device_rename(struct device *dev, char *new_name);
+
+ /*
+ * Manual binding of a device to driver. See drivers/base/bus.c
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.suse/driver-multithread.patch new/patches.suse/driver-multithread.patch
--- old/patches.suse/driver-multithread.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.suse/driver-multithread.patch 2006-09-27 23:40:30.000000000 +0200
@@ -0,0 +1,222 @@
+From foo@baz Tue Apr 9 12:12:43 2002
+Date: Tue, 18 Jul 2006 10:59:59 -0700
+To: Greg KH <greg(a)kroah.com>
+From: Greg Kroah-Hartman <gregkh(a)suse.de>
+Subject: Driver Core: add ability for drivers to do a threaded probe
+Patch-mainline: 2.6.19
+
+This adds the infrastructure for drivers to do a threaded probe, and
+waits at init time for all currently outstanding probes to complete.
+
+A new kernel thread will be created when the probe() function for the
+driver is called, if the multithread_probe bit is set in the driver
+saying it can support this kind of operation.
+
+I have tested this with USB and PCI, and it works, and shaves off a lot
+of time in the boot process, but there are issues with finding root boot
+disks, and some USB drivers assume that this can never happen, so it is
+currently not enabled for any bus type. Individual drivers can enable
+this right now if they wish, and bus authors can selectivly turn it on
+as well, once they determine that their subsystem will work properly
+with it.
+
+Signed-off-by: Greg Kroah-Hartman <gregkh(a)suse.de>
+
+---
+ drivers/base/dd.c | 108 ++++++++++++++++++++++++++++++++++++-------------
+ include/linux/device.h | 3 +
+ init/do_mounts.c | 5 ++
+ 3 files changed, 89 insertions(+), 27 deletions(-)
+
+--- linux-2.6.18.orig/drivers/base/dd.c
++++ linux-2.6.18/drivers/base/dd.c
+@@ -17,6 +17,7 @@
+
+ #include <linux/device.h>
+ #include <linux/module.h>
++#include <linux/kthread.h>
+
+ #include "base.h"
+ #include "power/power.h"
+@@ -51,53 +52,44 @@ void device_bind_driver(struct device *
+ sysfs_create_link(&dev->kobj, &dev->driver->kobj, "driver");
+ }
+
+-/**
+- * driver_probe_device - attempt to bind device & driver.
+- * @drv: driver.
+- * @dev: device.
+- *
+- * First, we call the bus's match function, if one present, which
+- * should compare the device IDs the driver supports with the
+- * device IDs of the device. Note we don't do this ourselves
+- * because we don't know the format of the ID structures, nor what
+- * is to be considered a match and what is not.
+- *
+- * This function returns 1 if a match is found, an error if one
+- * occurs (that is not -ENODEV or -ENXIO), and 0 otherwise.
+- *
+- * This function must be called with @dev->sem held. When called
+- * for a USB interface, @dev->parent->sem must be held as well.
+- */
+-int driver_probe_device(struct device_driver * drv, struct device * dev)
++struct stupid_thread_structure {
++ struct device_driver *drv;
++ struct device *dev;
++};
++
++static atomic_t probe_count = ATOMIC_INIT(0);
++static int really_probe(void *void_data)
+ {
++ struct stupid_thread_structure *data = void_data;
++ struct device_driver *drv = data->drv;
++ struct device *dev = data->dev;
+ int ret = 0;
+
+- if (drv->bus->match && !drv->bus->match(dev, drv))
+- goto Done;
++ atomic_inc(&probe_count);
++ pr_debug("%s: Probing driver %s with device %s\n",
++ drv->bus->name, drv->name, dev->bus_id);
+
+- pr_debug("%s: Matched Device %s with Driver %s\n",
+- drv->bus->name, dev->bus_id, drv->name);
+ dev->driver = drv;
+ if (dev->bus->probe) {
+ ret = dev->bus->probe(dev);
+ if (ret) {
+ dev->driver = NULL;
+- goto ProbeFailed;
++ goto probe_failed;
+ }
+ } else if (drv->probe) {
+ ret = drv->probe(dev);
+ if (ret) {
+ dev->driver = NULL;
+- goto ProbeFailed;
++ goto probe_failed;
+ }
+ }
+ device_bind_driver(dev);
+ ret = 1;
+ pr_debug("%s: Bound Device %s to Driver %s\n",
+ drv->bus->name, dev->bus_id, drv->name);
+- goto Done;
++ goto done;
+
+- ProbeFailed:
++probe_failed:
+ if (ret == -ENODEV || ret == -ENXIO) {
+ /* Driver matched, but didn't support device
+ * or device not found.
+@@ -110,7 +102,69 @@ int driver_probe_device(struct device_dr
+ "%s: probe of %s failed with error %d\n",
+ drv->name, dev->bus_id, ret);
+ }
+- Done:
++done:
++ kfree(data);
++ atomic_dec(&probe_count);
++ return ret;
++}
++
++/**
++ * driver_probe_done
++ * Determine if the probe sequence is finished or not.
++ *
++ * Should somehow figure out how to use a semaphore, not an atomic variable...
++ */
++int driver_probe_done(void)
++{
++ pr_debug("%s: probe_count = %d\n", __FUNCTION__,
++ atomic_read(&probe_count));
++ if (atomic_read(&probe_count))
++ return -EBUSY;
++ return 0;
++}
++
++/**
++ * driver_probe_device - attempt to bind device & driver together
++ * @drv: driver to bind a device to
++ * @dev: device to try to bind to the driver
++ *
++ * First, we call the bus's match function, if one present, which should
++ * compare the device IDs the driver supports with the device IDs of the
++ * device. Note we don't do this ourselves because we don't know the
++ * format of the ID structures, nor what is to be considered a match and
++ * what is not.
++ *
++ * This function returns 1 if a match is found, an error if one occurs
++ * (that is not -ENODEV or -ENXIO), and 0 otherwise.
++ *
++ * This function must be called with @dev->sem held. When called for a
++ * USB interface, @dev->parent->sem must be held as well.
++ */
++int driver_probe_device(struct device_driver * drv, struct device * dev)
++{
++ struct stupid_thread_structure *data;
++ struct task_struct *probe_task;
++ int ret = 0;
++
++ if (drv->bus->match && !drv->bus->match(dev, drv))
++ goto done;
++
++ pr_debug("%s: Matched Device %s with Driver %s\n",
++ drv->bus->name, dev->bus_id, drv->name);
++
++ data = kmalloc(sizeof(*data), GFP_KERNEL);
++ data->drv = drv;
++ data->dev = dev;
++
++ if (drv->multithread_probe) {
++ probe_task = kthread_run(really_probe, data,
++ "probe-%s", dev->bus_id);
++ if (IS_ERR(probe_task))
++ ret = PTR_ERR(probe_task);
++ } else
++ ret = really_probe(data);
++
++done:
+ return ret;
+ }
+
+--- linux-2.6.18.orig/include/linux/device.h
++++ linux-2.6.18/include/linux/device.h
+@@ -101,6 +101,8 @@ struct device_driver {
+ void (*shutdown) (struct device * dev);
+ int (*suspend) (struct device * dev, pm_message_t state);
+ int (*resume) (struct device * dev);
++
++ unsigned int multithread_probe:1;
+ };
+
+
+@@ -110,6 +112,7 @@ extern void driver_unregister(struct dev
+ extern struct device_driver * get_driver(struct device_driver * drv);
+ extern void put_driver(struct device_driver * drv);
+ extern struct device_driver *driver_find(const char *name, struct bus_type *bus);
++extern int driver_probe_done(void);
+
+
+ /* driverfs interface for exporting driver attributes */
+--- linux-2.6.18.orig/init/do_mounts.c
++++ linux-2.6.18/init/do_mounts.c
+@@ -8,6 +8,7 @@
+ #include <linux/security.h>
+ #include <linux/delay.h>
+ #include <linux/mount.h>
++#include <linux/device.h>
+
+ #include <linux/nfs_fs.h>
+ #include <linux/nfs_fs_sb.h>
+@@ -403,6 +404,10 @@ void __init prepare_namespace(void)
+ ssleep(root_delay);
+ }
+
++ /* wait for the known devices to complete their probing */
++ while (driver_probe_done() != 0)
++ msleep(100);
++
+ md_run_setup();
+
+ if (saved_root_name[0]) {
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.suse/pci-multithreaded-probe.patch new/patches.suse/pci-multithreaded-probe.patch
--- old/patches.suse/pci-multithreaded-probe.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.suse/pci-multithreaded-probe.patch 2006-09-27 23:40:30.000000000 +0200
@@ -0,0 +1,54 @@
+From foo@baz Tue Apr 9 12:12:43 2002
+Date: Tue, 18 Jul 2006 10:59:59 -0700
+To: Greg KH <greg(a)kroah.com>
+From: Greg Kroah-Hartman <gregkh(a)suse.de>
+Subject: PCI: enable driver multi-threaded probe
+Patch-mainline: 2.6.19
+
+This provides a build and run-time option to turn on multhreaded probe
+for all PCI drivers. It can cause bad problems on multi-processor
+machines that take a while to find their root disks, and play havoc on
+machines that don't use persistant device names for block or network
+devices.
+
+But it can cause speedups on some machines, my tiny laptop's boot goes
+up by 0.4 seconds, and my desktop boots up several seconds faster.
+
+Use at your own risk!!!
+
+Note, this is slightly different from what is in mainline, there is no
+config option, you must use the kernel boot line to enable this.
+
+Signed-off-by: Greg Kroah-Hartman <gregkh(a)suse.de>
+
+---
+ drivers/pci/pci-driver.c | 11 +++++++++++
+ 1 files changed, 11 insertions(+)
+
+--- linux-2.6.18.orig/drivers/pci/pci-driver.c
++++ linux-2.6.18/drivers/pci/pci-driver.c
+@@ -17,6 +17,16 @@
+ * Registration of PCI drivers and handling of hot-pluggable devices.
+ */
+
++/* multithreaded probe logic */
++static int pci_multithread_probe =
++#ifdef CONFIG_PCI_MULTITHREAD_PROBE
++ 1;
++#else
++ 0;
++#endif
++__module_param_call("", pci_multithread_probe, param_set_bool, param_get_bool, &pci_multithread_probe, 0644);
++
++
+ /*
+ * Dynamic device IDs are disabled for !CONFIG_HOTPLUG
+ */
+@@ -385,6 +395,7 @@ int __pci_register_driver(struct pci_dri
+ drv->driver.bus = &pci_bus_type;
+ drv->driver.owner = owner;
+ drv->driver.kobj.ktype = &pci_driver_kobj_type;
++ drv->driver.multithread_probe = pci_multithread_probe;
+
+ spin_lock_init(&drv->dynids.lock);
+ INIT_LIST_HEAD(&drv->dynids.list);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.suse/usb-storage-disable-delay.patch new/patches.suse/usb-storage-disable-delay.patch
--- old/patches.suse/usb-storage-disable-delay.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.suse/usb-storage-disable-delay.patch 2006-09-28 01:10:02.000000000 +0200
@@ -0,0 +1,29 @@
+From: Greg Kroah-Hartman <gregkh(a)suse.de>
+Subject: USB: change default delay time for usb-storage devices
+Patch-mainline: no
+
+This reduces the amount of time someone has to wait for a usb-storage
+device to be usable from 5 seconds to 1 second. Some very old and buggy
+devices might still need the longer timeout, so they can change this
+with the sysfs option.
+
+Change made at the request of the desktop developers who were tired of
+us taking longer than Windows for no good reason.
+
+Signed-off-by: Greg Kroah-Hartman <gregkh(a)suse.de>
+
+---
+ drivers/usb/storage/usb.c | 2 +-
+ 1 files changed, 1 insertion(+), 1 deletion(-)
+
+--- linux-2.6.18.orig/drivers/usb/storage/usb.c
++++ linux-2.6.18/drivers/usb/storage/usb.c
+@@ -104,7 +104,7 @@ MODULE_AUTHOR("Matthew Dharm <mdharm-usb
+ MODULE_DESCRIPTION("USB Mass Storage driver for Linux");
+ MODULE_LICENSE("GPL");
+
+-static unsigned int delay_use = 5;
++static unsigned int delay_use = 1;
+ module_param(delay_use, uint, S_IRUGO | S_IWUSR);
+ MODULE_PARM_DESC(delay_use, "seconds to delay before using a new device");
+
++++++ patches.uml.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.uml/uml-kconfig new/patches.uml/uml-kconfig
--- old/patches.uml/uml-kconfig 2006-09-20 20:45:18.000000000 +0200
+++ new/patches.uml/uml-kconfig 2006-09-28 01:29:17.000000000 +0200
@@ -74,7 +74,7 @@
---help---
Say Y here if you have any non-standard serial boards -- boards
which aren't supported using the standard "dumb" serial driver.
-@@ -717,7 +718,7 @@ config NVRAM
+@@ -727,7 +728,7 @@ config NVRAM
config RTC
tristate "Enhanced Real Time Clock Support"
@@ -83,7 +83,7 @@
---help---
If you say Y here and create a character special file /dev/rtc with
major number 10 and minor number 135 using mknod ("man mknod"), you
-@@ -765,7 +766,7 @@ config SGI_IP27_RTC
+@@ -775,7 +776,7 @@ config SGI_IP27_RTC
config GEN_RTC
tristate "Generic /dev/rtc emulation"
@@ -92,7 +92,7 @@
---help---
If you say Y here and create a character special file /dev/rtc with
major number 10 and minor number 135 using mknod ("man mknod"), you
-@@ -818,6 +819,7 @@ config COBALT_LCD
+@@ -828,6 +829,7 @@ config COBALT_LCD
config DTLK
tristate "Double Talk PC internal speech card support"
++++++ series.conf ++++++
--- kernel-source/series.conf 2006-09-25 19:38:21.000000000 +0200
+++ /mounts/work_src_done/STABLE/kernel-source/series.conf 2006-09-28 01:32:16.000000000 +0200
@@ -264,11 +264,26 @@
# make debugging easier
patches.drivers/sysfs-crash-debugging.patch
+ # sysfs class_device -> device prep work for the patches below
+ # (these are all in mainline)
+ patches.suse/device-groups.patch
+ patches.suse/device-class-parent.patch
+ patches.suse/device-class-attr.patch
+ patches.suse/device_rename.patch
+ patches.suse/device-virtual.patch
+ patches.suse/class_device_interface.patch
+ patches.suse/device_bin_file.patch
+
+ # PCI multi-threaded device probe (must be enabled on the command line)
+ patches.suse/driver-multithread.patch
+ patches.suse/pci-multithreaded-probe.patch
+
########################################################
# USB
########################################################
# make debugging easier
patches.drivers/always-announce-new-usb-devices.patch
+ patches.suse/usb-storage-disable-delay.patch
########################################################
# I2C
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package goffice
checked in at Thu Sep 28 01:15:37 CEST 2006.
--------
--- GNOME/goffice/goffice.changes 2006-08-31 01:52:54.000000000 +0200
+++ /mounts/work_src_done/STABLE/goffice/goffice.changes 2006-09-28 00:23:16.000000000 +0200
@@ -1,0 +2,8 @@
+Wed Sep 27 18:45:52 CEST 2006 - jhargadon(a)suse.de
+
+- update to version 0.2.1
+- Back port some fixes for free memory reads that were causing
+ problems on freebsd
+- Fixed a sign in equation [#328236]
+
+-------------------------------------------------------------------
Old:
----
goffice-0.1.2.tar.bz2
New:
----
goffice-0.2.1.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ goffice.spec ++++++
--- /var/tmp/diff_new_pack.UYQlzf/_old 2006-09-28 01:15:30.000000000 +0200
+++ /var/tmp/diff_new_pack.UYQlzf/_new 2006-09-28 01:15:30.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package goffice (Version 0.1.2)
+# spec file for package goffice (Version 0.2.1)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -12,8 +12,8 @@
Name: goffice
BuildRequires: gnutls-devel libglade2-devel libgnomeprintui-devel libgnomeui-devel libgsf-devel libwnck-devel mDNSResponder-devel perl-XML-Parser update-desktop-files
-Version: 0.1.2
-Release: 17
+Version: 0.2.1
+Release: 1
URL: http://www.gnumeric.org/
Group: System/GUI/GNOME
License: GPL
@@ -115,6 +115,11 @@
/opt/gnome/include/*
%changelog -n goffice
+* Wed Sep 27 2006 - jhargadon(a)suse.de
+- update to version 0.2.1
+- Back port some fixes for free memory reads that were causing
+ problems on freebsd
+- Fixed a sign in equation [#328236]
* Thu Aug 31 2006 - ro(a)suse.de
- make it build (undef GTK_DISABLE_DEPRECATED in go-combo-box.c)
* Wed Jan 25 2006 - mls(a)suse.de
++++++ goffice-0.1.2.tar.bz2 -> goffice-0.2.1.tar.bz2 ++++++
++++ 11940 lines of diff (skipped)
++++ retrying with extended exclude list
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/goffice-0.1.2/ChangeLog new/goffice-0.2.1/ChangeLog
--- old/goffice-0.1.2/ChangeLog 2005-11-14 06:21:56.000000000 +0100
+++ new/goffice-0.2.1/ChangeLog 2006-03-22 05:37:19.000000000 +0100
@@ -1,3 +1,57 @@
+2006-03-21 Jody Goldberg <jody(a)gnome.org>
+
+ * Release 0.2.1
+
+2006-03-20 Jody Goldberg <jody(a)gnome.org>
+
+ * goffice/cut-n-paste/foocanvas/foo-canvas.c (}) : back port some
+ fixes for free memory reads that were causing problems on freebsd.
+
+2006-03-19 Jean Brefort <jean.brefort(a)normalesup.org>
+
+ * plugins/reg_linear/gog-polynom-reg.c:
+ (gog_polynom_reg_curve_get_equation): fixed a sign in equation [#328236].
+
+2006-03-01 Jean Brefort <jean.brefort(a)normalesup.org>
+
+ * goffice/graph/gog-reg-curve.c: (gog_reg_curve_view_render): don't render
+ segments outside the bounding box [#332990].
+
+2006-01-30 Jody Goldberg <jody(a)gnome.org>
+
+ * configure.in : post release bump
+
+2006-01-30 Jody Goldberg <jody(a)gnome.org>
+
+ * Release 0.2.0
+
+2006-01-23 Jean Brefort <jean.brefort(a)normalesup.org>
+
+ * goffice/gtk/go-action-combo-color.c: (make_icon),
+ (go_action_combo_color_connect_proxy): fixed warnings when using a
+ combo action in a menu.
+ * goffice/gtk/go-action-combo-pixmaps.c: (make_icon),
+ (go_action_combo_pixmaps_connect_proxy): ditto.
+
+2006-01-05 Jean Brefort <jean.brefort(a)normalesup.org>
+
+ * goffice/utils/go-libxml-extras.c:
+ (e_xml_get_child_by_name_by_lang): fix an internaitonalization bug.
+
+2006-01-01 Jean Brefort <jean.brefort(a)normalesup.org>
+
+ * plugins/plot_barcol/gog-minmax.c: fixed a marker display problem.
+
+2005-11-17 Emmanuel Pacaud <emanuel.pacaud(a)univ-poitiers.fr>
+
+ * pixmap/chart_dropbar_1_[12].[svg,png]: fix rendering and bitmap.
+ [#321675]
+
+2005-11-14 Jody Goldberg <jody(a)gnome.org>
+
+ * configure.in : post release bump
+ and disable the deprecated flags.
+
2005-11-14 Jody Goldberg <jody(a)gnome.org>
* Release 0.1.2
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/goffice-0.1.2/NEWS new/goffice-0.2.1/NEWS
--- old/goffice-0.1.2/NEWS 2005-11-14 04:57:27.000000000 +0100
+++ new/goffice-0.2.1/NEWS 2006-03-20 18:26:20.000000000 +0100
@@ -1,3 +1,13 @@
+goffice 0.2.1:
+
+Jean Brefort:
+ * Fixed a sign in equation [#328236].
+
+Morten:
+ * Back port some fixes for free memory reads that were causing
+ problems on freebsd.
+
+--------------------------------------------------------------------------
goffice 0.1.2:
Morten:
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/goffice-0.1.2/configure.in new/goffice-0.2.1/configure.in
--- old/goffice-0.1.2/configure.in 2005-11-07 06:04:43.000000000 +0100
+++ new/goffice-0.2.1/configure.in 2006-01-30 08:13:06.000000000 +0100
@@ -4,8 +4,8 @@
AC_PREREQ(2.54)
m4_define([goffice_version_epoch], [0])
-m4_define([goffice_version_major], [1])
-m4_define([goffice_version_minor], [2])
+m4_define([goffice_version_major], [2])
+m4_define([goffice_version_minor], [1])
m4_define([goffice_version_extra], [])
m4_define([goffice_full_version],
[goffice_version_epoch.goffice_version_major.goffice_version_minor[]goffice_version_extra])
@@ -201,20 +201,20 @@
AC_SUBST(GOFFICE_PLUGIN_LIBADD)
dnl disable for in stable release, re-enable for development series
-CFLAGS="$CFLAGS -DG_DISABLE_DEPRECATED"
-CFLAGS="$CFLAGS -DPANGO_DISABLE_DEPRECATED"
-if test "x$goffice_with_gtk" = "xtrue"; then
- CFLAGS="$CFLAGS -DGDK_PIXBUF_DISABLE_DEPRECATED"
- CFLAGS="$CFLAGS -DGDK_DISABLE_DEPRECATED"
- CFLAGS="$CFLAGS -DGDK_MULTIHEAD_SAFE"
- CFLAGS="$CFLAGS -DGTK_DISABLE_DEPRECATED"
- CFLAGS="$CFLAGS -DLIBGLADE_DISABLE_DEPRECATED"
-fi
-if test "x$goffice_with_gnome" = "xtrue"; then
- CFLAGS="$CFLAGS -DGNOME_DISABLE_DEPRECATED"
- CFLAGS="$CFLAGS -DBONOBO_DISABLE_DEPRECATED"
- CFLAGS="$CFLAGS -DBONOBO_UI_DISABLE_DEPRECATED"
-fi
+dnl CFLAGS="$CFLAGS -DG_DISABLE_DEPRECATED"
+dnl CFLAGS="$CFLAGS -DPANGO_DISABLE_DEPRECATED"
+dnl if test "x$goffice_with_gtk" = "xtrue"; then
+dnl CFLAGS="$CFLAGS -DGDK_PIXBUF_DISABLE_DEPRECATED"
+dnl CFLAGS="$CFLAGS -DGDK_DISABLE_DEPRECATED"
+dnl CFLAGS="$CFLAGS -DGDK_MULTIHEAD_SAFE"
+dnl CFLAGS="$CFLAGS -DGTK_DISABLE_DEPRECATED"
+dnl CFLAGS="$CFLAGS -DLIBGLADE_DISABLE_DEPRECATED"
+dnl fi
+dnl if test "x$goffice_with_gnome" = "xtrue"; then
+dnl CFLAGS="$CFLAGS -DGNOME_DISABLE_DEPRECATED"
+dnl CFLAGS="$CFLAGS -DBONOBO_DISABLE_DEPRECATED"
+dnl CFLAGS="$CFLAGS -DBONOBO_UI_DISABLE_DEPRECATED"
+dnl fi
dnl ****************************
dnl prep the pixmap generator
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/goffice-0.1.2/goffice/app/module-plugin-defs.h new/goffice-0.2.1/goffice/app/module-plugin-defs.h
--- old/goffice-0.1.2/goffice/app/module-plugin-defs.h 2005-03-28 18:58:14.000000000 +0200
+++ new/goffice-0.2.1/goffice/app/module-plugin-defs.h 2006-03-22 05:52:29.000000000 +0100
@@ -7,9 +7,6 @@
G_BEGIN_DECLS
-void go_plugin_init (GOPlugin *p, GOCmdContext *cc); /* optional, called after dlopen */
-void go_plugin_shutdown (GOPlugin *p, GOCmdContext *cc); /* optional, called before close */
-
typedef struct {
char const * const key; /* object being versioned */
char const * const version; /* version id (strict equality is required) */
@@ -34,6 +31,12 @@
G_MODULE_EXPORT GOPluginModuleHeader const go_plugin_header = \
{ GOFFICE_MODULE_PLUGIN_MAGIC_NUMBER, G_N_ELEMENTS (go_plugin_depends) }
+/* the folowwing two functions ar declared here, but are not
+ * implemented in libgoffice. Each plugin must implement one
+ * instance of both. */
+void go_plugin_init (GOPlugin *plugin, GOCmdContext *cc);
+void go_plugin_shutdown (GOPlugin *plugin, GOCmdContext *cc);
+
G_END_DECLS
#endif /* GOFFICE_MODULE_PLUGIN_DEFS_H */
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/goffice-0.1.2/goffice/cut-n-paste/foocanvas/foo-canvas-widget.c new/goffice-0.2.1/goffice/cut-n-paste/foocanvas/foo-canvas-widget.c
--- old/goffice-0.1.2/goffice/cut-n-paste/foocanvas/foo-canvas-widget.c 2005-08-08 18:14:42.000000000 +0200
+++ new/goffice-0.2.1/goffice/cut-n-paste/foocanvas/foo-canvas-widget.c 2006-03-20 18:23:28.000000000 +0100
@@ -197,7 +197,7 @@
witem = FOO_CANVAS_WIDGET (object);
if (witem->widget && !witem->in_destroy) {
- gtk_signal_disconnect (GTK_OBJECT (witem->widget), witem->destroy_id);
+ g_signal_handler_disconnect (G_OBJECT (witem->widget), witem->destroy_id);
gtk_widget_destroy (witem->widget);
witem->widget = NULL;
}
@@ -319,17 +319,15 @@
switch (param_id) {
case PROP_WIDGET:
if (witem->widget) {
- gtk_signal_disconnect (GTK_OBJECT (witem->widget), witem->destroy_id);
+ g_signal_handler_disconnect (G_OBJECT (witem->widget), witem->destroy_id);
gtk_container_remove (GTK_CONTAINER (item->canvas), witem->widget);
}
obj = g_value_get_object (value);
if (obj) {
witem->widget = GTK_WIDGET (obj);
- witem->destroy_id = gtk_signal_connect (GTK_OBJECT (obj),
- "destroy",
- (GtkSignalFunc) do_destroy,
- witem);
+ witem->destroy_id = g_signal_connect (G_OBJECT (obj),
+ "destroy", G_CALLBACK (do_destroy), witem);
gtk_layout_put (GTK_LAYOUT (item->canvas), witem->widget,
witem->cx + item->canvas->zoom_xofs,
witem->cy + item->canvas->zoom_yofs);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/goffice-0.1.2/goffice/cut-n-paste/foocanvas/foo-canvas.c new/goffice-0.2.1/goffice/cut-n-paste/foocanvas/foo-canvas.c
--- old/goffice-0.1.2/goffice/cut-n-paste/foocanvas/foo-canvas.c 2005-08-08 18:14:42.000000000 +0200
+++ new/goffice-0.2.1/goffice/cut-n-paste/foocanvas/foo-canvas.c 2006-03-22 05:29:05.000000000 +0100
@@ -200,10 +200,6 @@
static void
item_post_create_setup (FooCanvasItem *item)
{
- GtkObject *obj;
-
- obj = GTK_OBJECT (item);
-
group_add (FOO_CANVAS_GROUP (item->parent), item);
redraw_and_repick_if_mapped (item);
@@ -299,10 +295,9 @@
}
}
-
-/* Standard object dispose function for canvas items */
+/* Destroy handler for canvas items */
static void
-foo_canvas_item_dispose (GObject *object)
+foo_canvas_item_destroy (GtkObject *object)
{
FooCanvasItem *item;
@@ -310,43 +305,48 @@
item = FOO_CANVAS_ITEM (object);
- foo_canvas_item_request_redraw (item);
+ if (item->canvas) {
+ foo_canvas_item_request_redraw (item);
- /* Make the canvas forget about us */
+ /* Make the canvas forget about us */
- if (item == item->canvas->current_item) {
- item->canvas->current_item = NULL;
- item->canvas->need_repick = TRUE;
- }
+ if (item == item->canvas->current_item) {
+ item->canvas->current_item = NULL;
+ item->canvas->need_repick = TRUE;
+ }
- if (item == item->canvas->new_current_item) {
- item->canvas->new_current_item = NULL;
- item->canvas->need_repick = TRUE;
- }
+ if (item == item->canvas->new_current_item) {
+ item->canvas->new_current_item = NULL;
+ item->canvas->need_repick = TRUE;
+ }
- if (item == item->canvas->grabbed_item) {
- GdkDisplay *display = gtk_widget_get_display (GTK_WIDGET (item->canvas));
- item->canvas->grabbed_item = NULL;
- gdk_display_pointer_ungrab (display, GDK_CURRENT_TIME);
- }
+ if (item == item->canvas->grabbed_item) {
+ GdkDisplay *display = gtk_widget_get_display (GTK_WIDGET (item->canvas));
+ item->canvas->grabbed_item = NULL;
+ gdk_display_pointer_ungrab (display, GDK_CURRENT_TIME);
+ }
- if (item == item->canvas->focused_item)
- item->canvas->focused_item = NULL;
+ if (item == item->canvas->focused_item)
+ item->canvas->focused_item = NULL;
- /* Normal destroy stuff */
+ /* Normal destroy stuff */
- if (item->object.flags & FOO_CANVAS_ITEM_MAPPED)
- (* FOO_CANVAS_ITEM_GET_CLASS (item)->unmap) (item);
+ if (item->object.flags & FOO_CANVAS_ITEM_MAPPED)
+ (* FOO_CANVAS_ITEM_GET_CLASS (item)->unmap) (item);
- if (item->object.flags & FOO_CANVAS_ITEM_REALIZED)
- (* FOO_CANVAS_ITEM_GET_CLASS (item)->unrealize) (item);
+ if (item->object.flags & FOO_CANVAS_ITEM_REALIZED)
+ (* FOO_CANVAS_ITEM_GET_CLASS (item)->unrealize) (item);
- if (item->parent)
- group_remove (FOO_CANVAS_GROUP (item->parent), item);
+ if (item->parent)
+ group_remove (FOO_CANVAS_GROUP (item->parent), item);
- G_OBJECT_CLASS (item_parent_class)->dispose (object);
+ item->canvas = NULL;
+ }
+
+ GTK_OBJECT_CLASS (item_parent_class)->destroy (object);
}
+
/* Realize handler for canvas items */
static void
foo_canvas_item_realize (FooCanvasItem *item)
@@ -985,19 +985,20 @@
/* Everything is ok, now actually reparent the item */
- g_object_ref (GTK_OBJECT (item)); /* protect it from the unref in group_remove */
+ g_object_ref (G_OBJECT (item)); /* protect it from the unref in group_remove */
foo_canvas_item_request_redraw (item);
group_remove (FOO_CANVAS_GROUP (item->parent), item);
item->parent = FOO_CANVAS_ITEM (new_group);
+ /* item->canvas is unchanged. */
group_add (new_group, item);
/* Redraw and repick */
redraw_and_repick_if_mapped (item);
- g_object_unref (GTK_OBJECT (item));
+ g_object_unref (G_OBJECT (item));
}
/**
@@ -1643,8 +1644,12 @@
static void
group_add (FooCanvasGroup *group, FooCanvasItem *item)
{
- g_object_ref (GTK_OBJECT (item));
+#if GLIB_CHECK_VERSION(2,9,1)
+ g_object_ref_sink (item);
+#else
+ g_object_ref (item);
gtk_object_sink (GTK_OBJECT (item));
+#endif
if (!group->item_list) {
group->item_list = g_list_append (group->item_list, item);
@@ -1682,7 +1687,8 @@
/* Unparent the child */
item->parent = NULL;
- g_object_unref (GTK_OBJECT (item));
+ item->canvas = NULL;
+ g_object_unref (G_OBJECT (item));
/* Remove it from the list */
@@ -2092,12 +2098,15 @@
canvas->root = FOO_CANVAS_ITEM (g_object_new (foo_canvas_group_get_type (), NULL));
canvas->root->canvas = canvas;
- g_object_ref (GTK_OBJECT (canvas->root));
+#if GLIB_CHECK_VERSION(2,9,1)
+ g_object_ref_sink (canvas->root);
+#else
+ g_object_ref (canvas->root);
gtk_object_sink (GTK_OBJECT (canvas->root));
+#endif
- canvas->root_destroy_id = g_signal_connect (GTK_OBJECT (canvas->root), "destroy",
- (GtkSignalFunc) panic_root_destroyed,
- canvas);
+ canvas->root_destroy_id = g_signal_connect (G_OBJECT (canvas->root),
+ "destroy", G_CALLBACK (panic_root_destroyed), canvas);
canvas->need_repick = TRUE;
canvas->doing_update = FALSE;
@@ -2149,12 +2158,14 @@
canvas = FOO_CANVAS (object);
if (canvas->root_destroy_id) {
- g_signal_handler_disconnect (GTK_OBJECT (canvas->root), canvas->root_destroy_id);
+ g_signal_handler_disconnect (G_OBJECT (canvas->root), canvas->root_destroy_id);
canvas->root_destroy_id = 0;
}
if (canvas->root) {
- g_object_unref (GTK_OBJECT (canvas->root));
+ FooCanvasItem *root = canvas->root;
canvas->root = NULL;
+ gtk_object_destroy (GTK_OBJECT (root));
+ g_object_unref (root);
}
shutdown_transients (canvas);
@@ -2366,9 +2377,9 @@
/* Signal GtkLayout that it should do a redraw. */
if (redraw) {
if (changed_x)
- g_signal_emit_by_name (GTK_OBJECT (canvas->layout.hadjustment), "value_changed");
+ g_signal_emit_by_name (G_OBJECT (canvas->layout.hadjustment), "value_changed");
if (changed_y)
- g_signal_emit_by_name (GTK_OBJECT (canvas->layout.vadjustment), "value_changed");
+ g_signal_emit_by_name (G_OBJECT (canvas->layout.vadjustment), "value_changed");
}
}
@@ -2398,8 +2409,8 @@
canvas->layout.hadjustment->value,
canvas->layout.vadjustment->value, TRUE);
- g_signal_emit_by_name (GTK_OBJECT (canvas->layout.hadjustment), "changed");
- g_signal_emit_by_name (GTK_OBJECT (canvas->layout.vadjustment), "changed");
+ g_signal_emit_by_name (G_OBJECT (canvas->layout.hadjustment), "changed");
+ g_signal_emit_by_name (G_OBJECT (canvas->layout.vadjustment), "changed");
}
/* Emits an event for an item in the canvas, be it the current item, grabbed
@@ -2525,14 +2536,14 @@
finished = FALSE;
while (item && !finished) {
- g_object_ref (GTK_OBJECT (item));
+ g_object_ref (G_OBJECT (item));
g_signal_emit (
- GTK_OBJECT (item), item_signals[ITEM_EVENT], 0,
+ G_OBJECT (item), item_signals[ITEM_EVENT], 0,
&ev, &finished);
parent = item->parent;
- g_object_unref (GTK_OBJECT (item));
+ g_object_unref (G_OBJECT (item));
item = parent;
}
@@ -3950,8 +3961,10 @@
foo_canvas_item_class_init (FooCanvasItemClass *class)
{
GObjectClass *gobject_class;
+ GtkObjectClass *object_class;
gobject_class = (GObjectClass *) class;
+ object_class = (GtkObjectClass *) class;
item_parent_class = gtk_type_class (gtk_object_get_type ());
@@ -3980,7 +3993,7 @@
G_TYPE_BOOLEAN, 1,
GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
- gobject_class->dispose = foo_canvas_item_dispose;
+ object_class->destroy = foo_canvas_item_destroy;
class->realize = foo_canvas_item_realize;
class->unrealize = foo_canvas_item_unrealize;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/goffice-0.1.2/goffice/data/go-data-simple.c new/goffice-0.2.1/goffice/data/go-data-simple.c
--- old/goffice-0.1.2/goffice/data/go-data-simple.c 2005-11-04 19:43:40.000000000 +0100
+++ new/goffice-0.2.1/goffice/data/go-data-simple.c 2006-03-22 05:53:39.000000000 +0100
@@ -733,7 +733,7 @@
/**
* go_data_vector_str_set_translate_func:
- * @vec: a #GODataVectorStr
+ * @vector: a #GODataVectorStr
* @func: a #GOTranslateFunc
* @data: data to be passed to @func and @notify
* @notify: a #GODestroyNotify function to be called when @vec is
@@ -766,7 +766,7 @@
/**
* go_data_vector_str_set_translation_domain:
- * @action_group: a #GtkActionGroup
+ * @vector: a #GODataVectorStr
* @domain: the translation domain to use for dgettext() calls
*
* Sets the translation domain and uses dgettext() for translating the
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/goffice-0.1.2/goffice/data/go-data-simple.h new/goffice-0.2.1/goffice/data/go-data-simple.h
--- old/goffice-0.1.2/goffice/data/go-data-simple.h 2005-08-08 18:14:42.000000000 +0200
+++ new/goffice-0.2.1/goffice/data/go-data-simple.h 2006-03-22 05:53:39.000000000 +0100
@@ -63,7 +63,7 @@
GOTranslateFunc func,
gpointer data,
GDestroyNotify notify);
-void go_data_vector_str_set_translation_domain (GODataVectorStr *vec,
+void go_data_vector_str_set_translation_domain (GODataVectorStr *vector,
char const *domain);
#define GO_DATA_MATRIX_VAL_TYPE (go_data_matrix_val_get_type ())
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/goffice-0.1.2/goffice/data/go-data.h new/goffice-0.2.1/goffice/data/go-data.h
--- old/goffice-0.1.2/goffice/data/go-data.h 2005-08-08 18:14:42.000000000 +0200
+++ new/goffice-0.2.1/goffice/data/go-data.h 2006-03-22 05:53:39.000000000 +0100
@@ -32,7 +32,6 @@
#define IS_GO_DATA(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GO_DATA_TYPE))
GType go_data_get_type (void);
-gboolean go_data_needs_recalc (GOData const *dat);
GOData *go_data_dup (GOData const *src);
gboolean go_data_eq (GOData const *a, GOData const *b);
GOFormat *go_data_preferred_fmt (GOData const *dat);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/goffice-0.1.2/goffice/goffice-features.h new/goffice-0.2.1/goffice/goffice-features.h
--- old/goffice-0.1.2/goffice/goffice-features.h 2005-11-07 16:08:24.000000000 +0100
+++ new/goffice-0.2.1/goffice/goffice-features.h 2006-03-22 05:30:51.000000000 +0100
@@ -35,16 +35,16 @@
#define GOFFICE_SUPPLIED_STRTOLD 1
/* The version number of this release, possibly with additional suffix */
-#define GOFFICE_VERSION "0.1.2"
+#define GOFFICE_VERSION "0.2.1"
/* The Epoch of this release */
#define GO_VERSION_EPOCH 0
/* The Major version number of this release */
-#define GO_VERSION_MAJOR 1
+#define GO_VERSION_MAJOR 2
/* The Minor version number of this release */
-#define GO_VERSION_MINOR 2
+#define GO_VERSION_MINOR 1
/* Extra, possibly empty tag for this release */
#define GO_VERSION_EXTRA ""
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/goffice-0.1.2/goffice/goffice-paths.h new/goffice-0.2.1/goffice/goffice-paths.h
--- old/goffice-0.1.2/goffice/goffice-paths.h 2005-11-07 16:08:27.000000000 +0100
+++ new/goffice-0.2.1/goffice/goffice-paths.h 2006-03-22 05:30:53.000000000 +0100
@@ -3,8 +3,8 @@
#ifndef GOFFICE_PATHS_H
#define GOFFICE_PATHS_H
-#define GOFFICE_DATADIR "/local/gnome/head/test/share/goffice/0.1.2"
-#define GOFFICE_LIBDIR "/local/gnome/head/test/lib/goffice/0.1.2"
+#define GOFFICE_DATADIR "/local/gnome/head/test/share/goffice/0.2.1"
+#define GOFFICE_LIBDIR "/local/gnome/head/test/lib/goffice/0.2.1"
#define GOFFICE_ICONDIR "/local/gnome/head/test/share/pixmaps/goffice"
#define GOFFICE_LOCALEDIR "/local/gnome/head/test/share/locale"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/goffice-0.1.2/goffice/graph/gog-data-allocator.c new/goffice-0.2.1/goffice/graph/gog-data-allocator.c
--- old/goffice-0.1.2/goffice/graph/gog-data-allocator.c 2005-08-08 18:14:43.000000000 +0200
+++ new/goffice-0.2.1/goffice/graph/gog-data-allocator.c 2006-03-22 05:55:51.000000000 +0100
@@ -44,6 +44,13 @@
return gog_data_allocator_type;
}
+/**
+ * gog_data_allocator_allocate:
+ * @dalloc: a #GogDataAllocator
+ * @plot: a #GogPlot
+ *
+ **/
+
void
gog_data_allocator_allocate (GogDataAllocator *dalloc, GogPlot *plot)
{
@@ -51,6 +58,16 @@
GOG_DATA_ALLOCATOR_GET_CLASS (dalloc)->allocate (dalloc, plot);
}
+/**
+ * gog_data_allocator_editor:
+ * @dalloc: a #GogDataAllocator
+ * @set:
+ * @dim_i:
+ * @data_type:
+ *
+ * returns: a #GtkWidget.
+ **/
+
gpointer
gog_data_allocator_editor (GogDataAllocator *dalloc, GogDataset *set,
int dim_i, GogDataType data_type)
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/goffice-0.1.2/goffice/graph/gog-data-allocator.h new/goffice-0.2.1/goffice/graph/gog-data-allocator.h
--- old/goffice-0.1.2/goffice/graph/gog-data-allocator.h 2005-08-08 18:14:43.000000000 +0200
+++ new/goffice-0.2.1/goffice/graph/gog-data-allocator.h 2006-03-22 05:55:51.000000000 +0100
@@ -44,7 +44,7 @@
GType gog_data_allocator_get_type (void);
-void gog_data_allocator_allocate (GogDataAllocator *a, GogPlot *plot);
+void gog_data_allocator_allocate (GogDataAllocator *dalloc, GogPlot *plot);
gpointer gog_data_allocator_editor (GogDataAllocator *dalloc, GogDataset *set,
int dim_i, GogDataType data_type);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/goffice-0.1.2/goffice/graph/gog-data-set.c new/goffice-0.2.1/goffice/graph/gog-data-set.c
--- old/goffice-0.1.2/goffice/graph/gog-data-set.c 2005-09-30 16:56:24.000000000 +0200
+++ new/goffice-0.2.1/goffice/graph/gog-data-set.c 2006-03-22 05:56:09.000000000 +0100
@@ -52,7 +52,7 @@
* @first : inclusive
* @last : _inclusive_
*
- * Returns the first and last valid indicises to get/set dim.
+ * FIXME: Returns the first and last valid indicises to get/set dim.
**/
void
gog_dataset_dims (GogDataset const *set, int *first, int *last)
@@ -82,7 +82,7 @@
/**
* gog_dataset_set_dim :
- * @series : #GogSeries
+ * @set: #GogDataset
* @dim_i : < 0 gets the name
* @val : #GOData
* @err : #GError
@@ -94,7 +94,7 @@
{
GogDatasetClass *klass;
- g_return_if_fail (val == NULL || GO_DATA (val) != NULL);
+ g_return_if_fail (val == NULL || IS_GO_DATA (val));
if (set == NULL || !IS_GOG_DATASET (set)) {
g_warning ("gog_dataset_set_dim called with invalid GogDataset");
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/goffice-0.1.2/goffice/graph/gog-data-set.h new/goffice-0.2.1/goffice/graph/gog-data-set.h
--- old/goffice-0.1.2/goffice/graph/gog-data-set.h 2005-08-08 18:14:43.000000000 +0200
+++ new/goffice-0.2.1/goffice/graph/gog-data-set.h 2006-03-22 05:56:09.000000000 +0100
@@ -34,6 +34,7 @@
int dim_i;
gulong handler;
} GogDatasetElement;
+
typedef struct {
GTypeInterface base;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/goffice-0.1.2/goffice/graph/gog-error-bar.c new/goffice-0.2.1/goffice/graph/gog-error-bar.c
--- old/goffice-0.1.2/goffice/graph/gog-error-bar.c 2005-11-06 16:15:09.000000000 +0100
+++ new/goffice-0.2.1/goffice/graph/gog-error-bar.c 2006-03-22 05:56:28.000000000 +0100
@@ -492,7 +492,7 @@
With a 0 value, it might be, because of rounding errors */
*min = *max = -1.;
- g_return_val_if_fail (GOG_ERROR_BAR (bar) != NULL, FALSE);
+ g_return_val_if_fail (IS_GOG_ERROR_BAR (bar), FALSE);
if (!gog_series_is_valid (bar->series))
return FALSE;
value = go_data_vector_get_value (GO_DATA_VECTOR (bar->series->values[bar->dim_i].data), index);
@@ -546,7 +546,7 @@
int i, imax;
double tmp_min, tmp_max, plus, minus;
- g_return_if_fail (GOG_ERROR_BAR (bar) != NULL);
+ g_return_if_fail (IS_GOG_ERROR_BAR (bar));
if (!gog_series_is_valid (bar->series)) {
*min = DBL_MAX;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/goffice-0.1.2/goffice/graph/gog-grid-line.c new/goffice-0.2.1/goffice/graph/gog-grid-line.c
--- old/goffice-0.1.2/goffice/graph/gog-grid-line.c 2005-10-05 18:33:59.000000000 +0200
+++ new/goffice-0.2.1/goffice/graph/gog-grid-line.c 2006-03-22 06:17:34.000000000 +0100
@@ -61,7 +61,7 @@
gboolean
gog_grid_line_is_minor (GogGridLine *ggl)
{
- g_return_val_if_fail (GOG_GRID_LINE (ggl) != NULL, FALSE);
+ g_return_val_if_fail (IS_GOG_GRID_LINE (ggl), FALSE);
return ggl->is_minor;
}
@@ -322,14 +322,6 @@
gog_renderer_pop_style (view->renderer);
}
-static gboolean
-gog_grid_line_info_at_point (GogView *view, double x, double y,
- GogObject const *cur_selection,
- GogObject **obj, char **name)
-{
- return FALSE;
-}
-
static void
gog_grid_line_view_class_init (GogGridLineViewClass *gview_klass)
{
@@ -337,7 +329,6 @@
gview_parent_klass = g_type_class_peek_parent (gview_klass);
view_klass->render = gog_grid_line_view_render;
- view_klass->info_at_point = gog_grid_line_info_at_point;
}
static GSF_CLASS (GogGridLineView, gog_grid_line_view,
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/goffice-0.1.2/goffice/graph/gog-label.c new/goffice-0.2.1/goffice/graph/gog-label.c
--- old/goffice-0.1.2/goffice/graph/gog-label.c 2005-10-11 16:52:02.000000000 +0200
+++ new/goffice-0.2.1/goffice/graph/gog-label.c 2006-03-22 06:01:31.000000000 +0100
@@ -156,7 +156,7 @@
{
GogTextClass *klass;
- g_return_val_if_fail (GOG_TEXT (text) != NULL, NULL);
+ g_return_val_if_fail (IS_GOG_TEXT (text), NULL);
klass = GOG_TEXT_GET_CLASS (text);
@@ -212,7 +212,7 @@
{
GogLabel *label = GOG_LABEL (text);
- g_return_val_if_fail (GOG_LABEL (label) != NULL, NULL);
+ g_return_val_if_fail (IS_GOG_LABEL (label), NULL);
if (label->text.data != NULL)
return g_strdup (go_data_scalar_get_str (GO_DATA_SCALAR (label->text.data)));
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/goffice-0.1.2/goffice/graph/gog-object-xml.c new/goffice-0.2.1/goffice/graph/gog-object-xml.c
--- old/goffice-0.1.2/goffice/graph/gog-object-xml.c 2005-11-06 16:15:09.000000000 +0100
+++ new/goffice-0.2.1/goffice/graph/gog-object-xml.c 2006-03-22 06:02:20.000000000 +0100
@@ -270,6 +270,8 @@
GParamSpec **props;
GSList *ptr;
+ g_return_if_fail (IS_GOG_OBJECT (obj));
+
gsf_xml_out_start_element (output, "GogObject");
/* Primary details */
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/goffice-0.1.2/goffice/graph/gog-outlined-object.c new/goffice-0.2.1/goffice/graph/gog-outlined-object.c
--- old/goffice-0.1.2/goffice/graph/gog-outlined-object.c 2005-10-05 18:33:59.000000000 +0200
+++ new/goffice-0.2.1/goffice/graph/gog-outlined-object.c 2006-03-22 06:02:20.000000000 +0100
@@ -94,7 +94,7 @@
double
gog_outlined_object_get_pad (GogOutlinedObject const *goo)
{
- g_return_val_if_fail (GOG_OUTLINED_OBJECT (goo) != NULL, 0.);
+ g_return_val_if_fail (IS_GOG_OUTLINED_OBJECT (goo), 0.);
return goo->padding_pts;
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/goffice-0.1.2/goffice/graph/gog-reg-curve.c new/goffice-0.2.1/goffice/graph/gog-reg-curve.c
--- old/goffice-0.1.2/goffice/graph/gog-reg-curve.c 2005-10-05 18:33:59.000000000 +0200
+++ new/goffice-0.2.1/goffice/graph/gog-reg-curve.c 2006-03-20 05:30:58.000000000 +0100
@@ -300,16 +300,16 @@
GogSeries *series = GOG_SERIES ((GOG_OBJECT (rc))->parent);
GogPlot *plot = series->plot;
GogAxisMap *x_map, *y_map;
- double buf, *x, *y;
+ double buf, *x, *y, ymax;
GogStyle *style;
ArtBpath *path;
- int i;
+ int i, invalids;
GSList *ptr;
x_map = gog_axis_map_new (plot->axis[0],
view->residual.x , view->residual.w);
- y_map = gog_axis_map_new (plot->axis[1],
- view->residual.y + view->residual.h,
+ ymax = view->residual.y + view->residual.h;
+ y_map = gog_axis_map_new (plot->axis[1], ymax,
-view->residual.h);
if (!(gog_axis_map_is_valid (x_map) &&
@@ -331,9 +331,19 @@
for (i = 1; i <= rc->ninterp; i++)
x[i] = x[0] + i * buf;
- for (i = 0; i <= rc->ninterp + 1; i++)
+ invalids = 0;
+ for (i = 0; i <= rc->ninterp + 1; i++) {
y[i] = gog_axis_map_to_view (y_map,
gog_reg_curve_get_value_at (rc, gog_axis_map_from_view (x_map, x[i])));
+ if (y[i] < view->residual.y || y[i] > ymax) {
+ invalids++;
+ /* if two or more points are outisde the interval,
+ we keep only the first and last ones */
+ if (invalids > 2)
+ y[i - 1] = go_nan;
+ } else
+ invalids = 0;
+ }
path = go_line_build_bpath (x, y, rc->ninterp + 2);
style = GOG_STYLED_OBJECT (rc)->style;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/goffice-0.1.2/goffice/graph/gog-renderer-gnome-print.c new/goffice-0.2.1/goffice/graph/gog-renderer-gnome-print.c
--- old/goffice-0.1.2/goffice/graph/gog-renderer-gnome-print.c 2005-08-22 18:12:51.000000000 +0200
+++ new/goffice-0.2.1/goffice/graph/gog-renderer-gnome-print.c 2006-03-22 06:14:14.000000000 +0100
@@ -540,7 +540,7 @@
gnome_print_gsave (prend->gp_context);
- half_size = gog_renderer_line_size (renderer, marker->size) / 2.0;
+ half_size = gog_renderer_line_size (renderer, go_marker_get_size (marker)) / 2.0;
art_affine_scale (scaling, half_size, half_size);
art_affine_translate (translation, x, y);
art_affine_multiply (affine, scaling, translation);
@@ -549,12 +549,12 @@
fill_path = art_vpath_affine_transform (fill_path_raw, affine);
gnome_print_setlinecap (prend->gp_context, ART_PATH_STROKE_CAP_ROUND);
- set_color (prend, marker->fill_color);
+ set_color (prend, go_marker_get_fill_color (marker));
draw_path (prend, fill_path);
gnome_print_closepath (prend->gp_context);
gnome_print_fill (prend->gp_context);
- set_color (prend, marker->outline_color);
+ set_color (prend, go_marker_get_outline_color (marker));
gnome_print_setlinewidth (prend->gp_context,
gog_renderer_line_size (renderer,
go_marker_get_outline_width (marker)));
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/goffice-0.1.2/goffice/graph/gog-style.c new/goffice-0.2.1/goffice/graph/gog-style.c
--- old/goffice-0.1.2/goffice/graph/gog-style.c 2005-11-07 04:10:39.000000000 +0100
+++ new/goffice-0.2.1/goffice/graph/gog-style.c 2006-03-22 06:15:27.000000000 +0100
@@ -59,13 +59,14 @@
static GObjectClass *parent_klass;
-/**
+/*
* I would have liked to do this differently and have a tighter binding between theme element and style
* eg gog_style_new (theme_element)
* However that will not work easily in the context of xls import where we do
* not know what the type is destined for until later. This structure melds
* smoothly with both approaches at the expense of a bit of power.
- **/
+ */
+
/*************************************************************************/
typedef struct {
@@ -1063,15 +1064,18 @@
/**
* gog_style_dup :
- * @src : #GogStyle
+ * @style : a source #GogStyle
+ *
+ * Duplicates @style.
*
+ * return value: a new #GogStyle
**/
GogStyle *
gog_style_dup (GogStyle const *src)
{
GogStyle *dst;
- g_return_val_if_fail (GOG_STYLE (src) != NULL, NULL);
+ g_return_val_if_fail (IS_GOG_STYLE (src), NULL);
dst = gog_style_new ();
gog_style_assign (dst, src);
@@ -1084,8 +1088,8 @@
if (src == dst)
return;
- g_return_if_fail (GOG_STYLE (src) != NULL);
- g_return_if_fail (GOG_STYLE (dst) != NULL);
+ g_return_if_fail (IS_GOG_STYLE (src));
+ g_return_if_fail (IS_GOG_STYLE (dst));
if (GOG_FILL_STYLE_IMAGE == src->fill.type &&
src->fill.image.image != NULL)
@@ -1134,8 +1138,8 @@
if (src == dst)
return;
- g_return_if_fail (GOG_STYLE (src) != NULL);
- g_return_if_fail (GOG_STYLE (dst) != NULL);
+ g_return_if_fail (IS_GOG_STYLE (src));
+ g_return_if_fail (IS_GOG_STYLE (dst));
if (dst->outline.auto_dash)
dst->outline.dash_type = src->outline.dash_type;
@@ -1843,8 +1847,8 @@
void
gog_style_set_marker (GogStyle *style, GOMarker *marker)
{
- g_return_if_fail (GOG_STYLE (style) != NULL);
- g_return_if_fail (GO_MARKER (marker) != NULL);
+ g_return_if_fail (IS_GOG_STYLE (style));
+ g_return_if_fail (IS_GO_MARKER (marker));
if (style->marker.mark != marker) {
if (style->marker.mark != NULL)
@@ -1853,12 +1857,28 @@
}
}
+/**
+ * gog_style_get_marker :
+ * @style : #GogStyle
+ *
+ * Accessor for @style::marker, without referencing it.
+ *
+ * return value: the style #GOMarker.
+ **/
+GOMarker const *
+gog_style_get_marker (GogStyle *style)
+{
+ g_return_val_if_fail (IS_GOG_STYLE (style), NULL);
+
+ return style->marker.mark;
+}
+
void
gog_style_set_font_desc (GogStyle *style, PangoFontDescription *desc)
{
GOFont const *font;
- g_return_if_fail (GOG_STYLE (style) != NULL);
+ g_return_if_fail (IS_GOG_STYLE (style));
font = go_font_new_by_desc (desc);
if (font != NULL) {
@@ -1870,7 +1890,7 @@
void
gog_style_set_font (GogStyle *style, GOFont const *font)
{
- g_return_if_fail (GOG_STYLE (style) != NULL);
+ g_return_if_fail (IS_GOG_STYLE (style));
if (font != NULL) {
go_font_unref (style->font.font);
@@ -1881,7 +1901,7 @@
void
gog_style_set_fill_brightness (GogStyle *style, float brightness)
{
- g_return_if_fail (GOG_STYLE (style) != NULL);
+ g_return_if_fail (IS_GOG_STYLE (style));
g_return_if_fail (style->fill.type == GOG_FILL_STYLE_GRADIENT);
style->fill.gradient.brightness = brightness;
@@ -1900,7 +1920,7 @@
void
gog_style_set_fill_image_filename (GogStyle *style, char *filename)
{
- g_return_if_fail (GOG_STYLE (style) != NULL);
+ g_return_if_fail (IS_GOG_STYLE (style));
if (style->fill.type == GOG_FILL_STYLE_IMAGE) {
if (style->fill.image.image != NULL)
@@ -1926,7 +1946,7 @@
void
gog_style_set_text_angle (GogStyle *style, double angle)
{
- g_return_if_fail (GOG_STYLE (style) != NULL);
+ g_return_if_fail (IS_GOG_STYLE (style));
style->text_layout.angle = CLAMP (angle, -180.0, 180.0);
style->text_layout.auto_angle = FALSE;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/goffice-0.1.2/goffice/graph/gog-style.h new/goffice-0.2.1/goffice/graph/gog-style.h
--- old/goffice-0.1.2/goffice/graph/gog-style.h 2005-08-08 18:14:43.000000000 +0200
+++ new/goffice-0.2.1/goffice/graph/gog-style.h 2006-03-22 06:16:09.000000000 +0100
@@ -122,7 +122,9 @@
void gog_style_assign (GogStyle *dst, GogStyle const *src);
void gog_style_apply_theme (GogStyle *dst, GogStyle const *src);
+GOMarker const *gog_style_get_marker (GogStyle *style);
void gog_style_set_marker (GogStyle *style, GOMarker *marker);
+
void gog_style_set_font_desc (GogStyle *style,
PangoFontDescription *desc);
void gog_style_set_font (GogStyle *style, GOFont const *font);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/goffice-0.1.2/goffice/graph/gog-styled-object.c new/goffice-0.2.1/goffice/graph/gog-styled-object.c
--- old/goffice-0.1.2/goffice/graph/gog-styled-object.c 2005-10-05 18:34:00.000000000 +0200
+++ new/goffice-0.2.1/goffice/graph/gog-styled-object.c 2006-03-22 06:16:44.000000000 +0100
@@ -37,16 +37,12 @@
STYLE_CHANGED,
LAST_SIGNAL
};
+
+void gog_styled_object_style_changed (GogStyledObject *obj);
+
static gulong gog_styled_object_signals [LAST_SIGNAL] = { 0, };
static GObjectClass *parent_klass;
-void
-gog_styled_object_style_changed (GogStyledObject *obj)
-{
- g_signal_emit (G_OBJECT (obj),
- gog_styled_object_signals [STYLE_CHANGED], 0, obj->style);
-}
-
static void
gog_styled_object_set_property (GObject *obj, guint param_id,
GValue const *value, GParamSpec *pspec)
@@ -176,13 +172,24 @@
gog_styled_object_class_init, gog_styled_object_init,
GOG_OBJECT_TYPE)
+/**
+ * gog_styled_object_set_style:
+ * @gso: a #GogStyledObject
+ * @style: a #GogStyle
+ *
+ * Sets a new style for @gso, and emits "style-changed" signal. This function
+ * does not take ownership of @style.
+ *
+ * return value: %TRUE if new style may lead to change of object size, which
+ * happens when changing font size for example.
+ **/
gboolean
gog_styled_object_set_style (GogStyledObject *gso,
GogStyle *style)
{
gboolean resize;
- g_return_val_if_fail (GOG_STYLED_OBJECT (gso) != NULL, FALSE);
+ g_return_val_if_fail (IS_GOG_STYLED_OBJECT (gso), FALSE);
if (gso->style == style)
return FALSE;
@@ -201,23 +208,27 @@
/**
* gog_styled_object_get_style :
- * @gso : #GogStyledObject
+ * @gso: a #GogStyledObject
+ *
+ * Simply an accessor function that returns @gso->style, without referencing it.
*
- * Returns a pointer to @gso's style but does not reference it.
+ * return value: the styled object's #GogStyle
**/
GogStyle *
gog_styled_object_get_style (GogStyledObject *gso)
{
- g_return_val_if_fail (GOG_STYLED_OBJECT (gso) != NULL, NULL);
+ g_return_val_if_fail (IS_GOG_STYLED_OBJECT (gso), NULL);
return gso->style;
}
/**
* gog_styled_object_get_auto_style :
- * @gso : #GogStyledObject
+ * @gso: a #GogStyledObject
*
- * Returns a new style that is initialized with the auto values for @gso.
+ * This function returns a new style that is initialized with the auto values for @gso.
* Caller is responsible for the result.
+ *
+ * return value: a new #GogStyle
**/
GogStyle *
gog_styled_object_get_auto_style (GogStyledObject *gso)
@@ -228,6 +239,15 @@
return res;
}
+/**
+ * gog_styled_object_apply_theme:
+ * @gso: a #GogStyledObject
+ * @style: a #GogStyle that will be themed
+ *
+ * Apply theme of @gso's parent graph to @style, i.e. properties with
+ * auto flag set to %TRUE are changed to default theme value.
+ *
+ **/
void
gog_styled_object_apply_theme (GogStyledObject *gso, GogStyle *style)
{
@@ -237,3 +257,17 @@
(klass->init_style) (gso, style);
}
}
+
+/**
+ * gog_styled_object_style_changed:
+ * @gso: a #GogStyledObject
+ *
+ * Emits the "style-changed" signal.
+ *
+ **/
+void
+gog_styled_object_style_changed (GogStyledObject *gso)
+{
+ g_signal_emit (G_OBJECT (gso),
+ gog_styled_object_signals [STYLE_CHANGED], 0, gso->style);
+}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/goffice-0.1.2/goffice/graph/gog-theme.c new/goffice-0.2.1/goffice/graph/gog-theme.c
--- old/goffice-0.1.2/goffice/graph/gog-theme.c 2005-10-05 18:34:00.000000000 +0200
+++ new/goffice-0.2.1/goffice/graph/gog-theme.c 2006-03-22 06:16:59.000000000 +0100
@@ -139,7 +139,7 @@
gog_theme_find_element (GogTheme *theme, GogObject *obj)
{
GogThemeElement *elem = NULL;
- GObjectClass *klass;
+ GObjectClass *klass = NULL; /* make gcc happy */
char const *name;
if (theme == NULL)
@@ -244,7 +244,7 @@
void
gog_theme_register (GogTheme *theme, gboolean is_default)
{
- g_return_if_fail (GOG_THEME (theme) != NULL);
+ g_return_if_fail (IS_GOG_THEME (theme));
if (is_default) {
g_object_ref (theme);
@@ -329,7 +329,7 @@
char const *
gog_theme_get_name (GogTheme const *theme)
{
- g_return_val_if_fail (GOG_THEME (theme) != NULL, "");
+ g_return_val_if_fail (IS_GOG_THEME (theme), "");
return theme->name;
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/goffice-0.1.2/goffice/gtk/go-action-combo-color.c new/goffice-0.2.1/goffice/gtk/go-action-combo-color.c
--- old/goffice-0.1.2/goffice/gtk/go-action-combo-color.c 2005-10-05 18:34:00.000000000 +0200
+++ new/goffice-0.2.1/goffice/gtk/go-action-combo-color.c 2006-01-23 08:45:22.000000000 +0100
@@ -73,15 +73,20 @@
GtkSettings *settings = gtk_widget_get_settings (tool);
GdkScreen *screen = gtk_widget_get_screen (tool);
- if (tool->parent)
- size = gtk_toolbar_get_icon_size (GTK_TOOLBAR (tool->parent));
- else
- g_object_get (settings,
- "gtk-toolbar-icon-size", &size,
- NULL);
- gtk_icon_size_lookup_for_settings (settings, size,
- &pixels, NULL);
g_object_get (a, "stock-id", &stock_id, NULL);
+ if (stock_id == NULL)
+ return NULL;
+ if (IS_GO_TOOL_COMBO_COLOR (tool)) {
+ if (tool->parent)
+ size = gtk_toolbar_get_icon_size (GTK_TOOLBAR (tool->parent));
+ else
+ g_object_get (settings,
+ "gtk-toolbar-icon-size", &size,
+ NULL);
+ gtk_icon_size_lookup_for_settings (settings, size,
+ &pixels, NULL);
+ } else
+ size = GTK_ICON_SIZE_MENU;
icon = gtk_icon_theme_load_icon
(gtk_icon_theme_get_for_screen (screen),
stock_id, pixels, 0, NULL);
@@ -123,12 +128,14 @@
if (GTK_IS_IMAGE_MENU_ITEM (proxy)) { /* set the icon */
GdkPixbuf *icon = make_icon (a, proxy);
- GtkWidget *image = gtk_image_new_from_pixbuf (icon);
- g_object_unref (icon);
-
- gtk_widget_show (image);
- gtk_image_menu_item_set_image (
- GTK_IMAGE_MENU_ITEM (proxy), image);
+ if (icon) {
+ GtkWidget *image = gtk_image_new_from_pixbuf (icon);
+ g_object_unref (icon);
+
+ gtk_widget_show (image);
+ gtk_image_menu_item_set_image (
+ GTK_IMAGE_MENU_ITEM (proxy), image);
+ }
}
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/goffice-0.1.2/goffice/gtk/go-action-combo-pixmaps.c new/goffice-0.2.1/goffice/gtk/go-action-combo-pixmaps.c
--- old/goffice-0.1.2/goffice/gtk/go-action-combo-pixmaps.c 2005-10-08 04:09:53.000000000 +0200
+++ new/goffice-0.2.1/goffice/gtk/go-action-combo-pixmaps.c 2006-01-23 08:45:22.000000000 +0100
@@ -81,12 +81,17 @@
{
GtkIconSize size;
- if (tool->parent)
- size = gtk_toolbar_get_icon_size (GTK_TOOLBAR (tool->parent));
- else {
- GtkSettings *settings = gtk_widget_get_settings (tool);
- g_object_get (settings, "gtk-toolbar-icon-size", &size, NULL);
- }
+ if (stock_id == NULL)
+ return NULL;
+ if (IS_GO_TOOL_COMBO_PIXMAPS (tool)) {
+ if (tool->parent)
+ size = gtk_toolbar_get_icon_size (GTK_TOOLBAR (tool->parent));
+ else {
+ GtkSettings *settings = gtk_widget_get_settings (tool);
+ g_object_get (settings, "gtk-toolbar-icon-size", &size, NULL);
+ }
+ } else
+ size = GTK_ICON_SIZE_MENU;
return gtk_widget_render_icon (tool, stock_id, size,
"GOActionComboPixmaps");
@@ -103,11 +108,13 @@
GOActionComboPixmaps *paction = (GOActionComboPixmaps *)a;
const char *stock_id = paction->elements[0].stock_id;
GdkPixbuf *icon = make_icon (a, stock_id, proxy);
- GtkWidget *image = gtk_image_new_from_pixbuf (icon);
- g_object_unref (icon);
- gtk_widget_show (image);
- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (proxy),
- image);
+ if (icon) {
+ GtkWidget *image = gtk_image_new_from_pixbuf (icon);
+ g_object_unref (icon);
+ gtk_widget_show (image);
+ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (proxy),
+ image);
+ }
}
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/goffice-0.1.2/goffice/utils/go-libxml-extras.c new/goffice-0.2.1/goffice/utils/go-libxml-extras.c
--- old/goffice-0.1.2/goffice/utils/go-libxml-extras.c 2005-08-30 15:15:49.000000000 +0200
+++ new/goffice-0.2.1/goffice/utils/go-libxml-extras.c 2006-01-05 11:39:43.000000000 +0100
@@ -279,7 +279,7 @@
if (node->name == NULL || strcmp (CXML2C (node->name), name) != 0)
continue;
- lang = xmlGetProp (node, CC2XML ("xml:lang"));
+ lang = xmlGetProp (node, CC2XML ("lang"));
if (lang != NULL) {
gint i;
@@ -289,10 +289,10 @@
best_lang_score = i;
}
}
+ xmlFree (lang);
} else if (best_node == NULL)
best_node = node;
- xmlFree (lang);
if (best_lang_score == 0)
return best_node;
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/goffice-0.1.2/intltool-extract.in new/goffice-0.2.1/intltool-extract.in
--- old/goffice-0.1.2/intltool-extract.in 2005-11-07 16:07:32.000000000 +0100
+++ new/goffice-0.2.1/intltool-extract.in 2006-03-22 05:29:59.000000000 +0100
@@ -32,7 +32,7 @@
## Release information
my $PROGRAM = "intltool-extract";
my $PACKAGE = "intltool";
-my $VERSION = "0.34.1";
+my $VERSION = "0.34.2";
## Loaded modules
use strict;
@@ -485,10 +485,12 @@
sub intltool_tree_comment
{
my $expat = shift;
- my $data = shift;
+ my $data = $expat->original_string();
my $clist = $expat->{Curlist};
my $pos = $#$clist;
+ $data =~ s/^<!--//s;
+ $data =~ s/-->$//s;
push @$clist, 1 => $data;
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/goffice-0.1.2/intltool-merge.in new/goffice-0.2.1/intltool-merge.in
--- old/goffice-0.1.2/intltool-merge.in 2005-11-07 16:07:32.000000000 +0100
+++ new/goffice-0.2.1/intltool-merge.in 2006-03-22 05:29:59.000000000 +0100
@@ -35,7 +35,7 @@
## Release information
my $PROGRAM = "intltool-merge";
my $PACKAGE = "intltool";
-my $VERSION = "0.34.1";
+my $VERSION = "0.34.2";
## Loaded modules
use strict;
@@ -91,7 +91,7 @@
my %po_files_by_lang = ();
my %translations = ();
-my $iconv = $ENV{"ICONV"} || $ENV{"INTLTOOL_ICONV"} || "/usr/bin/iconv";
+my $iconv = $ENV{"ICONV"} || $ENV{"INTLTOOL_ICONV"} || "@INTLTOOL_ICONV@";
my $devnull = ($^O eq 'MSWin32' ? 'NUL:' : '/dev/null');
# Use this instead of \w for XML files to handle more possible characters.
@@ -257,7 +257,7 @@
sub get_local_charset
{
my ($encoding) = @_;
- my $alias_file = $ENV{"G_CHARSET_ALIAS"} || "/local/gnome/head/test/lib/charset.alias";
+ my $alias_file = $ENV{"G_CHARSET_ALIAS"} || "@INTLTOOL_LIBDIR@/charset.alias";
# seek character encoding aliases in charset.alias (glib)
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/goffice-0.1.2/intltool-update.in new/goffice-0.2.1/intltool-update.in
--- old/goffice-0.1.2/intltool-update.in 2005-11-07 16:07:32.000000000 +0100
+++ new/goffice-0.2.1/intltool-update.in 2006-03-22 05:29:59.000000000 +0100
@@ -30,7 +30,7 @@
## Release information
my $PROGRAM = "intltool-update";
-my $VERSION = "0.34.1";
+my $VERSION = "0.34.2";
my $PACKAGE = "intltool";
## Loaded modules
@@ -80,7 +80,8 @@
"directory(?:\\.in)+|". # http://www.freedesktop.org/Standards/menu-spec
"soundlist(?:\\.in)+|". # GNOME specific
"keys(?:\\.in)+|". # GNOME Mime database specific
-"theme(?:\\.in)+"; # http://www.freedesktop.org/Standards/icon-theme-spec
+"theme(?:\\.in)+|". # http://www.freedesktop.org/Standards/icon-theme-spec
+"service(?:\\.in)+"; # DBus specific
my $buildin_gettext_support =
"c|y|cs|cc|cpp|c\\+\\+|h|hh|gob|py";
@@ -124,7 +125,7 @@
&Console_Write_IntltoolHelp if $arg_count > 1;
# --version and --help don't require a module name
-my $MODULE = $GETTEXT_PACKAGE || &FindPackageName;
+my $MODULE = $GETTEXT_PACKAGE || &FindPackageName || "unknown";
if ($POT_ARG)
{
@@ -610,7 +611,7 @@
#
sub GeneratePOTemplate
{
- my $XGETTEXT = $ENV{"XGETTEXT"} || "/usr/bin/xgettext";
+ my $XGETTEXT = $ENV{"XGETTEXT"} || "@INTLTOOL_XGETTEXT@";
my $XGETTEXT_ARGS = $ENV{"XGETTEXT_ARGS"} || '';
chomp $XGETTEXT;
@@ -781,7 +782,7 @@
{
-f "$MODULE.pot" or die "$PROGRAM: $MODULE.pot does not exist.\n";
- my $MSGMERGE = $ENV{"MSGMERGE"} || "/usr/bin/msgmerge";
+ my $MSGMERGE = $ENV{"MSGMERGE"} || "@INTLTOOL_MSGMERGE@";
my ($lang, $outfile) = @_;
print "Merging $SRCDIR/$lang.po with $MODULE.pot..." if $VERBOSE;
@@ -824,7 +825,7 @@
sub Console_Write_TranslationStatus
{
my ($lang, $output_file) = @_;
- my $MSGFMT = $ENV{"MSGFMT"} || "/usr/bin/msgfmt";
+ my $MSGFMT = $ENV{"MSGFMT"} || "@INTLTOOL_MSGFMT@";
$output_file = "$SRCDIR/$lang.po" if ($output_file eq "");
@@ -833,7 +834,7 @@
sub Console_Write_CoverageReport
{
- my $MSGFMT = $ENV{"MSGFMT"} || "/usr/bin/msgfmt";
+ my $MSGFMT = $ENV{"MSGFMT"} || "@INTLTOOL_MSGFMT@";
&GatherPOFiles;
@@ -873,8 +874,10 @@
{
my $rest = $3;
my $untouched = $1;
- my $sub = $varhash{$2};
-
+ my $sub = "";
+ # Ignore recursive definitions of variables
+ $sub = $varhash{$2} if defined $varhash{$2} and $varhash{$2} !~ /\${?$2}?/;
+
return SubstituteVariable ("$untouched$sub$rest");
}
@@ -991,10 +994,10 @@
($name, $version) = ($1, $2);
$name =~ s/[\[\]\s]//g;
$version =~ s/[\[\]\s]//g;
- $varhash{"PACKAGE_NAME"} = $name;
- $varhash{"PACKAGE"} = $name;
- $varhash{"PACKAGE_VERSION"} = $version;
- $varhash{"VERSION"} = $version;
+ $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\${?AC_PACKAGE_NAME}?/);
+ $varhash{"PACKAGE"} = $name if (not $name =~ /\${?PACKAGE}?/);
+ $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\${?AC_PACKAGE_VERSION}?/);
+ $varhash{"VERSION"} = $version if (not $name =~ /\${?VERSION}?/);
}
if ($conf_source =~ /^AC_INIT\(([^,\)]+),([^,\)]+)/m)
@@ -1002,10 +1005,10 @@
($name, $version) = ($1, $2);
$name =~ s/[\[\]\s]//g;
$version =~ s/[\[\]\s]//g;
- $varhash{"PACKAGE_NAME"} = $name;
- $varhash{"PACKAGE"} = $name;
- $varhash{"PACKAGE_VERSION"} = $version;
- $varhash{"VERSION"} = $version;
+ $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\${?AC_PACKAGE_NAME}?/);
+ $varhash{"PACKAGE"} = $name if (not $name =~ /\${?PACKAGE}?/);
+ $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\${?AC_PACKAGE_VERSION}?/);
+ $varhash{"VERSION"} = $version if (not $name =~ /\${?VERSION}?/);
}
# \s makes this not work, why?
Binary files old/goffice-0.1.2/pixmaps/chart_dropbar_1_1.png and new/goffice-0.2.1/pixmaps/chart_dropbar_1_1.png differ
Binary files old/goffice-0.1.2/pixmaps/chart_dropbar_1_2.png and new/goffice-0.2.1/pixmaps/chart_dropbar_1_2.png differ
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/goffice-0.1.2/plugins/plot_barcol/gog-minmax.c new/goffice-0.2.1/plugins/plot_barcol/gog-minmax.c
--- old/goffice-0.1.2/plugins/plot_barcol/gog-minmax.c 2005-10-05 18:34:00.000000000 +0200
+++ new/goffice-0.2.1/plugins/plot_barcol/gog-minmax.c 2006-01-04 10:25:05.000000000 +0100
@@ -285,6 +285,7 @@
ArtVpath path[3], *Mpath, *mpath;
GogObjectRole const *role = NULL;
GogSeriesLines *lines;
+ GogStyle * style;
if (num_elements <= 0 || num_series <= 0)
return;
@@ -311,6 +312,7 @@
series = ptr->data;
if (!gog_series_is_valid (GOG_SERIES (series)))
continue;
+ style = gog_styled_object_get_style (GOG_STYLED_OBJECT (series));
x = offset;
min_vals = go_data_vector_get_values (
GO_DATA_VECTOR (series->base.values[1].data));
@@ -324,7 +326,7 @@
n = tmp;
Mpath = g_new (ArtVpath, n + 1);
mpath = g_new (ArtVpath, n + 1);
- gog_renderer_push_style (view->renderer, GOG_STYLED_OBJECT (series)->style);
+ gog_renderer_push_style (view->renderer, style);
for (i = 0; i < n; i++) {
@@ -356,7 +358,7 @@
gog_series_lines_render (lines, view->renderer, bbox, Mpath, FALSE);
gog_renderer_pop_style (view->renderer);
}
- if (model->default_style_has_markers)
+ if (gog_style_is_marker_visible (style))
for (i = 0; i < n; i++) {
gog_renderer_draw_marker (view->renderer, mpath[i].x, mpath[i].y);
gog_renderer_draw_marker (view->renderer, Mpath[i].x, Mpath[i].y);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/goffice-0.1.2/plugins/reg_linear/gog-polynom-reg.c new/goffice-0.2.1/plugins/reg_linear/gog-polynom-reg.c
--- old/goffice-0.1.2/plugins/reg_linear/gog-polynom-reg.c 2005-10-05 18:34:00.000000000 +0200
+++ new/goffice-0.2.1/plugins/reg_linear/gog-polynom-reg.c 2006-03-20 05:31:01.000000000 +0100
@@ -101,7 +101,7 @@
GString *str = g_string_new ("");
int i;
if (lin->affine) {
- if (curve->a[0] > 0.)
+ if (curve->a[1] > 0.)
g_string_printf(str, "y = %g + %g x", curve->a[0], curve->a[1]);
else
g_string_printf(str, "y = %g - %g x", curve->a[0], -curve->a[1]);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/goffice-0.1.2/po/ChangeLog new/goffice-0.2.1/po/ChangeLog
--- old/goffice-0.1.2/po/ChangeLog 2005-11-14 06:21:56.000000000 +0100
+++ new/goffice-0.2.1/po/ChangeLog 2006-03-22 05:37:19.000000000 +0100
@@ -1,3 +1,11 @@
+2006-03-21 Jody Goldberg <jody(a)gnome.org>
+
+ * Release 0.2.1
+
+2006-01-30 Jody Goldberg <jody(a)gnome.org>
+
+ * Release 0.2.0
+
2005-11-14 Jody Goldberg <jody(a)gnome.org>
* Release 0.1.2
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/goffice-0.1.2/po/Makefile.in.in new/goffice-0.2.1/po/Makefile.in.in
--- old/goffice-0.1.2/po/Makefile.in.in 2005-11-07 16:07:32.000000000 +0100
+++ new/goffice-0.2.1/po/Makefile.in.in 2006-03-22 05:29:59.000000000 +0100
@@ -39,7 +39,9 @@
gettextsrcdir = $(datadir)/glib-2.0/gettext/po
subdir = po
install_sh = @install_sh@
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+# Automake >= 1.8 provides @mkdir_p@.
+# Until it can be supposed, use the safe fallback:
+mkdir_p = $(install_sh) -d
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
@@ -69,6 +71,7 @@
EXTRA_DISTFILES = POTFILES.skip Makevars LINGUAS
POTFILES = \
+#This Gets Replace for some reason
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
@@ -108,11 +111,7 @@
install-data: install-data-@USE_NLS@
install-data-no: all
install-data-yes: all
- if test -n "$(MKINSTALLDIRS)"; then \
- $(MKINSTALLDIRS) $(DESTDIR)$(datadir); \
- else \
- $(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(datadir); \
- fi
+ $(mkdir_p) $(DESTDIR)$(datadir)
@catalogs='$(CATALOGS)'; \
for cat in $$catalogs; do \
cat=`basename $$cat`; \
@@ -122,11 +121,7 @@
esac; \
lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
dir=$(DESTDIR)$$destdir/$$lang/LC_MESSAGES; \
- if test -n "$(MKINSTALLDIRS)"; then \
- $(MKINSTALLDIRS) $$dir; \
- else \
- $(SHELL) $(top_srcdir)/mkinstalldirs $$dir; \
- fi; \
+ $(mkdir_p) $$dir; \
if test -r $$cat; then \
$(INSTALL_DATA) $$cat $$dir/$(GETTEXT_PACKAGE).mo; \
echo "installing $$cat as $$dir/$(GETTEXT_PACKAGE).mo"; \
@@ -150,11 +145,7 @@
fi; \
done
if test "$(PACKAGE)" = "glib"; then \
- if test -n "$(MKINSTALLDIRS)"; then \
- $(MKINSTALLDIRS) $(DESTDIR)$(gettextsrcdir); \
- else \
- $(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(gettextsrcdir); \
- fi; \
+ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \
$(INSTALL_DATA) $(srcdir)/Makefile.in.in \
$(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \
else \
@@ -190,8 +181,8 @@
clean: mostlyclean
distclean: clean
- rm -f Makefile Makefile.in POTFILES
- rm -f *.mo *.msg *.cat *.cat.m $(GMOFILES)
+ rm -f Makefile Makefile.in POTFILES stamp-it
+ rm -f *.mo *.msg *.cat *.cat.m *.gmo
maintainer-clean: distclean
@echo "This command is intended for maintainers to use;"
@@ -203,11 +194,12 @@
dists="$(DISTFILES)"; \
extra_dists="$(EXTRA_DISTFILES)"; \
for file in $$extra_dists; do \
- test -f $$file && dists="$$dists $$file"; \
+ test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \
done; \
for file in $$dists; do \
- ln $(srcdir)/$$file $(distdir) 2> /dev/null \
- || cp -p $(srcdir)/$$file $(distdir); \
+ test -f $$file || file="$(srcdir)/$$file"; \
+ ln $$file $(distdir) 2> /dev/null \
+ || cp -p $$file $(distdir); \
done
update-po: Makefile
@@ -237,23 +229,15 @@
fi; \
done
-# POTFILES is created from POTFILES.in by stripping comments, empty lines
-# and Intltool tags (enclosed in square brackets), and appending a full
-# relative path to them
-POTFILES: POTFILES.in
- ( posrcprefix='$(top_srcdir)/'; \
- rm -f $@-t $@ \
- && (sed -e '/^#/d' \
- -e 's/^[[].*] *//' \
- -e '/^[ ]*$$/d' \
- -e "s@^@ $$posrcprefix@" $(srcdir)/$@.in \
- | sed -e '$$!s/$$/ \\/') > $@-t \
- && chmod a-w $@-t \
- && mv $@-t $@ )
+Makefile POTFILES: stamp-it
+ @if test ! -f $@; then \
+ rm -f stamp-it; \
+ $(MAKE) stamp-it; \
+ fi
-Makefile: Makefile.in.in ../config.status POTFILES
+stamp-it: Makefile.in.in ../config.status POTFILES.in
cd .. \
- && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
+ && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \
$(SHELL) ./config.status
# Tell versions [3.59,3.63) of GNU make not to export all variables.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package gnumeric
checked in at Thu Sep 28 01:15:24 CEST 2006.
--------
--- GNOME/gnumeric/gnumeric.changes 2006-08-31 18:36:26.000000000 +0200
+++ /mounts/work_src_done/STABLE/gnumeric/gnumeric.changes 2006-09-27 22:53:23.000000000 +0200
@@ -1,0 +2,11 @@
+Wed Sep 27 22:51:44 CEST 2006 - jhargadon(a)suse.de
+
+- update to version 1.6.3
+- Fix exporting of scaled axes. [#332012]
+- Backport duping sheet props when sheet is duped
+- Adding an autofilter dirties the sheet
+- Fix xls import of pie outlines
+- Implement xml and xls saving/loading of "protected" attribute
+- many bug fixes
+
+-------------------------------------------------------------------
Old:
----
gnumeric-1.6.1.tar.bz2
New:
----
gnumeric-1.6.3.tar.bz2
gnumeric-autobuild-error.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gnumeric.spec ++++++
--- /var/tmp/diff_new_pack.9NVIKe/_old 2006-09-28 01:15:17.000000000 +0200
+++ /var/tmp/diff_new_pack.9NVIKe/_new 2006-09-28 01:15:17.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package gnumeric (Version 1.6.1)
+# spec file for package gnumeric (Version 1.6.3)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -20,13 +20,14 @@
Provides: gnumeric2
Obsoletes: gnumeric2
Summary: Spreadsheet Application
-Version: 1.6.1
-Release: 23
+Version: 1.6.3
+Release: 1
Source: ftp://ftp.gnome.org/pub/gnome/sources/gnumeric/1.6/gnumeric-%{version}.tar.…
URL: http://www.gnumeric.org/
Patch: gnumeric-pro-fonts.patch
Patch1: %name-desktop.patch
Patch4: gnumeric-doc.patch
+Patch5: gnumeric-autobuild-error.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: gconf2 shared-mime-info
@@ -92,6 +93,7 @@
%patch -p1
%patch1
%patch4 -p1
+%patch5
%build
rm po/no.*
@@ -176,6 +178,14 @@
/usr/share/mime/packages/*.xml
%changelog -n gnumeric
+* Wed Sep 27 2006 - jhargadon(a)suse.de
+- update to version 1.6.3
+- Fix exporting of scaled axes. [#332012]
+- Backport duping sheet props when sheet is duped
+- Adding an autofilter dirties the sheet
+- Fix xls import of pie outlines
+- Implement xml and xls saving/loading of "protected" attribute
+- many bug fixes
* Thu Aug 31 2006 - gekker(a)suse.de
- Remove unnecessary gal2-devel from BuildRequires
* Wed Aug 16 2006 - cthiel(a)suse.de
++++++ gnumeric-1.6.1.tar.bz2 -> gnumeric-1.6.3.tar.bz2 ++++++
GNOME/gnumeric/gnumeric-1.6.1.tar.bz2 /mounts/work_src_done/STABLE/gnumeric/gnumeric-1.6.3.tar.bz2 differ: char 11, line 1
++++++ gnumeric-autobuild-error.patch ++++++
--- src/collect.c
+++ src/collect.c
@@ -9,6 +9,7 @@
#include <gnumeric-config.h>
#include "gnumeric.h"
#include "collect.h"
+#include "number-match.h"
#include "func.h"
#include "value.h"
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package java-1_4_2-gcj-compat
checked in at Thu Sep 28 01:11:48 CEST 2006.
--------
--- java-1_4_2-gcj-compat/java-1_4_2-gcj-compat.changes 2006-09-19 16:24:14.000000000 +0200
+++ /mounts/work_users/ro/STABLE/java-1_4_2-gcj-compat/java-1_4_2-gcj-compat.changes 2006-09-28 01:11:32.000000000 +0200
@@ -1,0 +2,5 @@
+Thu Sep 28 01:11:23 CEST 2006 - ro(a)suse.de
+
+- added gcc-gij to BuildRequires
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ java-1_4_2-gcj-compat.spec ++++++
--- /var/tmp/diff_new_pack.a7Nnk0/_old 2006-09-28 01:11:41.000000000 +0200
+++ /var/tmp/diff_new_pack.a7Nnk0/_new 2006-09-28 01:11:41.000000000 +0200
@@ -11,7 +11,7 @@
# norootforbuild
Name: java-1_4_2-gcj-compat
-BuildRequires: classpath ecj-bootstrap fastjar gcc-java gjdoc python-devel
+BuildRequires: classpath ecj-bootstrap fastjar gcc-gij gcc-java gjdoc python-devel
#BuildRequires: fastjar
%if %{?!suse_version:1}0
%if %{?!mandriva_release:1}0
@@ -27,7 +27,7 @@
%define _jvmjardir %{_libdir}/jvm-exports
%endif
Version: 1.4.2.0
-Release: 38
+Release: 40
%define section free
%define gccsuffix %{nil}
%define origin gcj%{gccsuffix}
@@ -328,6 +328,8 @@
#%ghost %{_jvmdir}/%{cname}-%{version}/include/jni.h
%changelog -n java-1_4_2-gcj-compat
+* Thu Sep 28 2006 - ro(a)suse.de
+- added gcc-gij to BuildRequires
* Tue Sep 19 2006 - dbornkessel(a)suse.de
- update to version 1.0.61
* Wed Jun 07 2006 - dbornkessel(a)suse.de
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package classpath
checked in at Thu Sep 28 01:10:22 CEST 2006.
--------
--- classpath/classpath.changes 2006-09-18 20:41:44.000000000 +0200
+++ /mounts/work_users/ro/STABLE/classpath/classpath.changes 2006-09-28 01:01:20.000000000 +0200
@@ -1,0 +2,5 @@
+Thu Sep 28 01:01:12 CEST 2006 - ro(a)suse.de
+
+- added gcc-gij to BuildRequires
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ classpath.spec ++++++
--- /var/tmp/diff_new_pack.z71X2V/_old 2006-09-28 01:10:13.000000000 +0200
+++ /var/tmp/diff_new_pack.z71X2V/_new 2006-09-28 01:10:13.000000000 +0200
@@ -11,7 +11,7 @@
# norootforbuild
Name: classpath
-BuildRequires: antlr-bootstrap ecj-bootstrap gcc-c++ gcc-java gjdoc gtk2-devel jpackage-utils libgcj-devel zip
+BuildRequires: antlr-bootstrap ecj-bootstrap gcc-c++ gcc-gij gcc-java gjdoc gtk2-devel jpackage-utils libgcj-devel zip
%if %{?!suse_version:1}0
%if %{?!mandriva_release:1}0
BuildRequires: GConf2-devel libXtst-devel mozilla-devel xorg-x11-devel
@@ -25,7 +25,7 @@
Group: Development/Libraries/Java
Autoreqprov: on
Version: 0.92
-Release: 1
+Release: 4
Summary: GNU implementation of the essential libraries for Java
URL: http://www.gnu.org/software/classpath/
Source: %{name}-%{version}.tar.bz2
@@ -454,5 +454,7 @@
%{_libdir}/%{name}/libgcjwebplugin.la
%changelog -n classpath
+* Thu Sep 28 2006 - ro(a)suse.de
+- added gcc-gij to BuildRequires
* Mon Sep 18 2006 - dbornkessel(a)suse.de
- first spec (0.92)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0