openSUSE Commits
Threads by month
- ----- 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
May 2006
- 1 participants
- 1219 discussions
Hello community,
here is the log from the commit of package kernel-source
checked in at Wed May 31 11:43:09 CEST 2006.
--------
--- kernel-source/kernel-bigsmp.changes 2006-05-24 18:54:22.000000000 +0200
+++ kernel-source/kernel-bigsmp.changes 2006-05-31 09:17:19.000000000 +0200
@@ -1,0 +2,71 @@
+Wed May 31 08:48:05 CEST 2006 - hare(a)suse.de
+
+- patches.drivers/open-iscsi-svn.diff:
+ Fix kernel hang on target reset (#176151)
+
+-------------------------------------------------------------------
+Mon May 29 16:16:57 CEST 2006 - ak(a)suse.de
+
+- patches.arch/x86_64-compat-stack-rnd: Fix stack/mmap
+ randomization for compat tasks (177108).
+
+-------------------------------------------------------------------
+Mon May 29 13:09:54 CEST 2006 - perex(a)suse.de
+
+- patches.suse/bonding-sysfs: Delete. (157936)
+
+-------------------------------------------------------------------
+Mon May 29 11:17:24 CEST 2006 - perex(a)suse.de
+
+- patches.suse/bonding-sysfs: Allow loading of bonding module
+ with max_bonds=0 (157936).
+- patches.suse/netfilter-ipt_LOG-mac: LTC23987-iptables LOG
+ output shows too long MAC info (176921).
+
+-------------------------------------------------------------------
+Mon May 29 11:07:58 CEST 2006 - olh(a)suse.de
+
+- add patches.drivers/ibmveth-flexbuf.patch
+ change buffer pools dynamically (169074 - LTC23397)
+
+-------------------------------------------------------------------
+Mon May 29 10:59:03 CEST 2006 - olh(a)suse.de
+
+- add patches.arch/ppc-kdump-soft-reset-64bit-mode.patch
+ force 64bit mode in system_reset_fwnmi for POWER4 (159713 - LTC22581)
+
+-------------------------------------------------------------------
+Mon May 29 10:05:24 CEST 2006 - hare(a)suse.de
+
+- add patches.fixes/dm-suspend-resume-events
+ Send online/offline events for dm devices (175972)
+
+-------------------------------------------------------------------
+Fri May 26 21:14:30 CEST 2006 - olh(a)suse.de
+
+- add patches.drivers/s2io-udp_rr.patch
+ fix netperf UDP_RR hangs (176892 - LTC23863)
+
+-------------------------------------------------------------------
+Fri May 26 09:47:40 CEST 2006 - jbeulich(a)novell.com
+
+- patches.xen/xen-x86_64-halt.patch: Use halt() instead of raw
+ inline assembly. (177511).
+
+-------------------------------------------------------------------
+Fri May 26 09:09:05 CEST 2006 - neilb(a)suse.de
+
+- patches.fixes/nfsd-dmapi-aware: Make NFSD DMAPI aware (74107, 173874).
+
+-------------------------------------------------------------------
+Sat May 27 04:34:05 CEST 2006 - jack(a)suse.cz
+
+- patches.fixes/jfs-releasepage.patch: JFS: Fix multiple errors
+ in metapage_releasepage (177890).
+
+-------------------------------------------------------------------
+Thu May 25 14:17:11 CEST 2006 - garloff(a)suse.de
+
+- Update kabi to SLE10RC2 and enable change tracking.
+
+-------------------------------------------------------------------
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-smp.changes: same change
kernel-source.changes: same change
kernel-syms.changes: same change
kernel-um.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.QE3L0q/_old 2006-05-31 11:39:51.000000000 +0200
+++ /var/tmp/diff_new_pack.QE3L0q/_new 2006-05-31 11:39:51.000000000 +0200
@@ -21,7 +21,7 @@
BuildRequires: python
%endif
Version: 2.6.16.18
-Release: 1
+Release: 2
Summary: Kernel with Multiprocessor Support and PAE
License: GPL
Group: System/Kernel
@@ -100,7 +100,7 @@
%define tolerate_unknown_new_config_options 0
# kABI change tolerance (default in maintenance should be 4, 8 or 15;
# see scripts/kabi-checks)
-%define tolerate_kabi_changes 31
+%define tolerate_kabi_changes 4
%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,make-symsets,find-types,kabi-checks,install-configs})
@@ -111,7 +111,7 @@
-Source Timestamp: 2006/05/24 16:52:45 UTC
+Source Timestamp: 2006/05/31 06:52:41 UTC
%prep
if ! [ -e %_sourcedir/linux-2.6.16.tar.bz2 ]; then
@@ -446,6 +446,41 @@
%files -f kernel.files
%changelog -n kernel-bigsmp
+* Wed May 31 2006 - hare(a)suse.de
+- patches.drivers/open-iscsi-svn.diff:
+ Fix kernel hang on target reset (#176151)
+* Mon May 29 2006 - ak(a)suse.de
+- patches.arch/x86_64-compat-stack-rnd: Fix stack/mmap
+ randomization for compat tasks (177108).
+* Mon May 29 2006 - perex(a)suse.de
+- patches.suse/bonding-sysfs: Delete. (157936)
+* Mon May 29 2006 - perex(a)suse.de
+- patches.suse/bonding-sysfs: Allow loading of bonding module
+ with max_bonds=0 (157936).
+- patches.suse/netfilter-ipt_LOG-mac: LTC23987-iptables LOG
+ output shows too long MAC info (176921).
+* Mon May 29 2006 - olh(a)suse.de
+- add patches.drivers/ibmveth-flexbuf.patch
+ change buffer pools dynamically (169074 - LTC23397)
+* Mon May 29 2006 - olh(a)suse.de
+- add patches.arch/ppc-kdump-soft-reset-64bit-mode.patch
+ force 64bit mode in system_reset_fwnmi for POWER4 (159713 - LTC22581)
+* Mon May 29 2006 - hare(a)suse.de
+- add patches.fixes/dm-suspend-resume-events
+ Send online/offline events for dm devices (175972)
+* Sat May 27 2006 - jack(a)suse.cz
+- patches.fixes/jfs-releasepage.patch: JFS: Fix multiple errors
+ in metapage_releasepage (177890).
+* Fri May 26 2006 - olh(a)suse.de
+- add patches.drivers/s2io-udp_rr.patch
+ fix netperf UDP_RR hangs (176892 - LTC23863)
+* Fri May 26 2006 - jbeulich(a)novell.com
+- patches.xen/xen-x86_64-halt.patch: Use halt() instead of raw
+ inline assembly. (177511).
+* Fri May 26 2006 - neilb(a)suse.de
+- patches.fixes/nfsd-dmapi-aware: Make NFSD DMAPI aware (74107, 173874).
+* Thu May 25 2006 - garloff(a)suse.de
+- Update kabi to SLE10RC2 and enable change tracking.
* Wed May 24 2006 - agruen(a)suse.de
- Fix the logic that detects when to build a debug package so that
it works in the OpenSUSE build service.
kernel-debug.spec: same change
kernel-default.spec: same change
++++++ kernel-dummy.spec ++++++
--- /var/tmp/diff_new_pack.QE3L0q/_old 2006-05-31 11:39:51.000000000 +0200
+++ /var/tmp/diff_new_pack.QE3L0q/_new 2006-05-31 11:39:51.000000000 +0200
@@ -17,7 +17,7 @@
Summary: Internal dummy package for synchronizing release numbers
Group: System/Kernel
Version: 2.6.16.18
-Release: 1
+Release: 2
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@@ -27,7 +27,7 @@
--------
Andreas Gruenbacher <agruen(a)suse.de>
-Source Timestamp: 2006/05/24 16:52:45 UTC
+Source Timestamp: 2006/05/31 06:52:41 UTC
%install
@@ -40,6 +40,41 @@
/etc/dummy
%changelog -n kernel-dummy
+* Wed May 31 2006 - hare(a)suse.de
+- patches.drivers/open-iscsi-svn.diff:
+ Fix kernel hang on target reset (#176151)
+* Mon May 29 2006 - ak(a)suse.de
+- patches.arch/x86_64-compat-stack-rnd: Fix stack/mmap
+ randomization for compat tasks (177108).
+* Mon May 29 2006 - perex(a)suse.de
+- patches.suse/bonding-sysfs: Delete. (157936)
+* Mon May 29 2006 - perex(a)suse.de
+- patches.suse/bonding-sysfs: Allow loading of bonding module
+ with max_bonds=0 (157936).
+- patches.suse/netfilter-ipt_LOG-mac: LTC23987-iptables LOG
+ output shows too long MAC info (176921).
+* Mon May 29 2006 - olh(a)suse.de
+- add patches.drivers/ibmveth-flexbuf.patch
+ change buffer pools dynamically (169074 - LTC23397)
+* Mon May 29 2006 - olh(a)suse.de
+- add patches.arch/ppc-kdump-soft-reset-64bit-mode.patch
+ force 64bit mode in system_reset_fwnmi for POWER4 (159713 - LTC22581)
+* Mon May 29 2006 - hare(a)suse.de
+- add patches.fixes/dm-suspend-resume-events
+ Send online/offline events for dm devices (175972)
+* Sat May 27 2006 - jack(a)suse.cz
+- patches.fixes/jfs-releasepage.patch: JFS: Fix multiple errors
+ in metapage_releasepage (177890).
+* Fri May 26 2006 - olh(a)suse.de
+- add patches.drivers/s2io-udp_rr.patch
+ fix netperf UDP_RR hangs (176892 - LTC23863)
+* Fri May 26 2006 - jbeulich(a)novell.com
+- patches.xen/xen-x86_64-halt.patch: Use halt() instead of raw
+ inline assembly. (177511).
+* Fri May 26 2006 - neilb(a)suse.de
+- patches.fixes/nfsd-dmapi-aware: Make NFSD DMAPI aware (74107, 173874).
+* Thu May 25 2006 - garloff(a)suse.de
+- Update kabi to SLE10RC2 and enable change tracking.
* Wed May 24 2006 - agruen(a)suse.de
- Fix the logic that detects when to build a debug package so that
it works in the OpenSUSE build service.
++++++ kernel-iseries64.spec ++++++
--- /var/tmp/diff_new_pack.QE3L0q/_old 2006-05-31 11:39:51.000000000 +0200
+++ /var/tmp/diff_new_pack.QE3L0q/_new 2006-05-31 11:39:51.000000000 +0200
@@ -21,7 +21,7 @@
BuildRequires: python
%endif
Version: 2.6.16.18
-Release: 1
+Release: 2
Summary: 64-Bit Kernel for iSeries
License: GPL
Group: System/Kernel
@@ -103,7 +103,7 @@
%define tolerate_unknown_new_config_options 0
# kABI change tolerance (default in maintenance should be 4, 8 or 15;
# see scripts/kabi-checks)
-%define tolerate_kabi_changes 31
+%define tolerate_kabi_changes 4
%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,make-symsets,find-types,kabi-checks,install-configs})
@@ -112,7 +112,7 @@
-Source Timestamp: 2006/05/24 16:52:45 UTC
+Source Timestamp: 2006/05/31 06:52:41 UTC
%prep
if ! [ -e %_sourcedir/linux-2.6.16.tar.bz2 ]; then
@@ -447,6 +447,41 @@
%files -f kernel.files
%changelog -n kernel-iseries64
+* Wed May 31 2006 - hare(a)suse.de
+- patches.drivers/open-iscsi-svn.diff:
+ Fix kernel hang on target reset (#176151)
+* Mon May 29 2006 - ak(a)suse.de
+- patches.arch/x86_64-compat-stack-rnd: Fix stack/mmap
+ randomization for compat tasks (177108).
+* Mon May 29 2006 - perex(a)suse.de
+- patches.suse/bonding-sysfs: Delete. (157936)
+* Mon May 29 2006 - perex(a)suse.de
+- patches.suse/bonding-sysfs: Allow loading of bonding module
+ with max_bonds=0 (157936).
+- patches.suse/netfilter-ipt_LOG-mac: LTC23987-iptables LOG
+ output shows too long MAC info (176921).
+* Mon May 29 2006 - olh(a)suse.de
+- add patches.drivers/ibmveth-flexbuf.patch
+ change buffer pools dynamically (169074 - LTC23397)
+* Mon May 29 2006 - olh(a)suse.de
+- add patches.arch/ppc-kdump-soft-reset-64bit-mode.patch
+ force 64bit mode in system_reset_fwnmi for POWER4 (159713 - LTC22581)
+* Mon May 29 2006 - hare(a)suse.de
+- add patches.fixes/dm-suspend-resume-events
+ Send online/offline events for dm devices (175972)
+* Sat May 27 2006 - jack(a)suse.cz
+- patches.fixes/jfs-releasepage.patch: JFS: Fix multiple errors
+ in metapage_releasepage (177890).
+* Fri May 26 2006 - olh(a)suse.de
+- add patches.drivers/s2io-udp_rr.patch
+ fix netperf UDP_RR hangs (176892 - LTC23863)
+* Fri May 26 2006 - jbeulich(a)novell.com
+- patches.xen/xen-x86_64-halt.patch: Use halt() instead of raw
+ inline assembly. (177511).
+* Fri May 26 2006 - neilb(a)suse.de
+- patches.fixes/nfsd-dmapi-aware: Make NFSD DMAPI aware (74107, 173874).
+* Thu May 25 2006 - garloff(a)suse.de
+- Update kabi to SLE10RC2 and enable change tracking.
* Wed May 24 2006 - agruen(a)suse.de
- Fix the logic that detects when to build a debug package so that
it works in the OpenSUSE build service.
kernel-kdump.spec: same change
++++++ kernel-ppc64.spec ++++++
--- /var/tmp/diff_new_pack.QE3L0q/_old 2006-05-31 11:39:51.000000000 +0200
+++ /var/tmp/diff_new_pack.QE3L0q/_new 2006-05-31 11:39:51.000000000 +0200
@@ -20,7 +20,7 @@
BuildRequires: python
%endif
Version: 2.6.16.18
-Release: 1
+Release: 2
Summary: Kernel for ppc64 Systems
License: GPL, LGPL
Group: System/Kernel
@@ -104,7 +104,7 @@
%define tolerate_unknown_new_config_options 0
# kABI change tolerance (default in maintenance should be 4, 8 or 15;
# see scripts/kabi-checks)
-%define tolerate_kabi_changes 31
+%define tolerate_kabi_changes 4
%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,make-symsets,find-types,kabi-checks,install-configs})
@@ -126,7 +126,7 @@
Tom Gall <tom_gall(a)vnet.ibm.com>
see /usr/src/linux-pmac-benh/CREDITS for more details.
-Source Timestamp: 2006/05/24 16:52:45 UTC
+Source Timestamp: 2006/05/31 06:52:41 UTC
%prep
if ! [ -e %_sourcedir/linux-2.6.16.tar.bz2 ]; then
@@ -461,6 +461,41 @@
%files -f kernel.files
%changelog -n kernel-ppc64
+* Wed May 31 2006 - hare(a)suse.de
+- patches.drivers/open-iscsi-svn.diff:
+ Fix kernel hang on target reset (#176151)
+* Mon May 29 2006 - ak(a)suse.de
+- patches.arch/x86_64-compat-stack-rnd: Fix stack/mmap
+ randomization for compat tasks (177108).
+* Mon May 29 2006 - perex(a)suse.de
+- patches.suse/bonding-sysfs: Delete. (157936)
+* Mon May 29 2006 - perex(a)suse.de
+- patches.suse/bonding-sysfs: Allow loading of bonding module
+ with max_bonds=0 (157936).
+- patches.suse/netfilter-ipt_LOG-mac: LTC23987-iptables LOG
+ output shows too long MAC info (176921).
+* Mon May 29 2006 - olh(a)suse.de
+- add patches.drivers/ibmveth-flexbuf.patch
+ change buffer pools dynamically (169074 - LTC23397)
+* Mon May 29 2006 - olh(a)suse.de
+- add patches.arch/ppc-kdump-soft-reset-64bit-mode.patch
+ force 64bit mode in system_reset_fwnmi for POWER4 (159713 - LTC22581)
+* Mon May 29 2006 - hare(a)suse.de
+- add patches.fixes/dm-suspend-resume-events
+ Send online/offline events for dm devices (175972)
+* Sat May 27 2006 - jack(a)suse.cz
+- patches.fixes/jfs-releasepage.patch: JFS: Fix multiple errors
+ in metapage_releasepage (177890).
+* Fri May 26 2006 - olh(a)suse.de
+- add patches.drivers/s2io-udp_rr.patch
+ fix netperf UDP_RR hangs (176892 - LTC23863)
+* Fri May 26 2006 - jbeulich(a)novell.com
+- patches.xen/xen-x86_64-halt.patch: Use halt() instead of raw
+ inline assembly. (177511).
+* Fri May 26 2006 - neilb(a)suse.de
+- patches.fixes/nfsd-dmapi-aware: Make NFSD DMAPI aware (74107, 173874).
+* Thu May 25 2006 - garloff(a)suse.de
+- Update kabi to SLE10RC2 and enable change tracking.
* Wed May 24 2006 - agruen(a)suse.de
- Fix the logic that detects when to build a debug package so that
it works in the OpenSUSE build service.
++++++ kernel-s390.spec ++++++
--- /var/tmp/diff_new_pack.QE3L0q/_old 2006-05-31 11:39:51.000000000 +0200
+++ /var/tmp/diff_new_pack.QE3L0q/_new 2006-05-31 11:39:51.000000000 +0200
@@ -21,7 +21,7 @@
BuildRequires: python
%endif
Version: 2.6.16.18
-Release: 1
+Release: 2
Summary: The Standard Kernel
License: GPL
Group: System/Kernel
@@ -100,7 +100,7 @@
%define tolerate_unknown_new_config_options 0
# kABI change tolerance (default in maintenance should be 4, 8 or 15;
# see scripts/kabi-checks)
-%define tolerate_kabi_changes 31
+%define tolerate_kabi_changes 4
%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,make-symsets,find-types,kabi-checks,install-configs})
@@ -109,7 +109,7 @@
-Source Timestamp: 2006/05/24 16:52:45 UTC
+Source Timestamp: 2006/05/31 06:52:41 UTC
%prep
if ! [ -e %_sourcedir/linux-2.6.16.tar.bz2 ]; then
@@ -444,6 +444,41 @@
%files -f kernel.files
%changelog -n kernel-s390
+* Wed May 31 2006 - hare(a)suse.de
+- patches.drivers/open-iscsi-svn.diff:
+ Fix kernel hang on target reset (#176151)
+* Mon May 29 2006 - ak(a)suse.de
+- patches.arch/x86_64-compat-stack-rnd: Fix stack/mmap
+ randomization for compat tasks (177108).
+* Mon May 29 2006 - perex(a)suse.de
+- patches.suse/bonding-sysfs: Delete. (157936)
+* Mon May 29 2006 - perex(a)suse.de
+- patches.suse/bonding-sysfs: Allow loading of bonding module
+ with max_bonds=0 (157936).
+- patches.suse/netfilter-ipt_LOG-mac: LTC23987-iptables LOG
+ output shows too long MAC info (176921).
+* Mon May 29 2006 - olh(a)suse.de
+- add patches.drivers/ibmveth-flexbuf.patch
+ change buffer pools dynamically (169074 - LTC23397)
+* Mon May 29 2006 - olh(a)suse.de
+- add patches.arch/ppc-kdump-soft-reset-64bit-mode.patch
+ force 64bit mode in system_reset_fwnmi for POWER4 (159713 - LTC22581)
+* Mon May 29 2006 - hare(a)suse.de
+- add patches.fixes/dm-suspend-resume-events
+ Send online/offline events for dm devices (175972)
+* Sat May 27 2006 - jack(a)suse.cz
+- patches.fixes/jfs-releasepage.patch: JFS: Fix multiple errors
+ in metapage_releasepage (177890).
+* Fri May 26 2006 - olh(a)suse.de
+- add patches.drivers/s2io-udp_rr.patch
+ fix netperf UDP_RR hangs (176892 - LTC23863)
+* Fri May 26 2006 - jbeulich(a)novell.com
+- patches.xen/xen-x86_64-halt.patch: Use halt() instead of raw
+ inline assembly. (177511).
+* Fri May 26 2006 - neilb(a)suse.de
+- patches.fixes/nfsd-dmapi-aware: Make NFSD DMAPI aware (74107, 173874).
+* Thu May 25 2006 - garloff(a)suse.de
+- Update kabi to SLE10RC2 and enable change tracking.
* Wed May 24 2006 - agruen(a)suse.de
- Fix the logic that detects when to build a debug package so that
it works in the OpenSUSE build service.
kernel-smp.spec: same change
++++++ kernel-source.spec ++++++
--- /var/tmp/diff_new_pack.QE3L0q/_old 2006-05-31 11:39:51.000000000 +0200
+++ /var/tmp/diff_new_pack.QE3L0q/_new 2006-05-31 11:39:51.000000000 +0200
@@ -25,7 +25,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.16.18
-Release: 1
+Release: 2
Source0: http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.16.tar.bz2
Source1: functions.sh
Source2: source-post.sh
@@ -93,7 +93,7 @@
see /usr/src/linux/CREDITS for more details.
-Source Timestamp: 2006/05/24 16:52:45 UTC
+Source Timestamp: 2006/05/31 06:52:41 UTC
%prep
if ! [ -e %_sourcedir/linux-2.6.16.tar.bz2 ]; then
@@ -274,6 +274,41 @@
%files -f kernel-source.files
%changelog -n kernel-source
+* Wed May 31 2006 - hare(a)suse.de
+- patches.drivers/open-iscsi-svn.diff:
+ Fix kernel hang on target reset (#176151)
+* Mon May 29 2006 - ak(a)suse.de
+- patches.arch/x86_64-compat-stack-rnd: Fix stack/mmap
+ randomization for compat tasks (177108).
+* Mon May 29 2006 - perex(a)suse.de
+- patches.suse/bonding-sysfs: Delete. (157936)
+* Mon May 29 2006 - perex(a)suse.de
+- patches.suse/bonding-sysfs: Allow loading of bonding module
+ with max_bonds=0 (157936).
+- patches.suse/netfilter-ipt_LOG-mac: LTC23987-iptables LOG
+ output shows too long MAC info (176921).
+* Mon May 29 2006 - olh(a)suse.de
+- add patches.drivers/ibmveth-flexbuf.patch
+ change buffer pools dynamically (169074 - LTC23397)
+* Mon May 29 2006 - olh(a)suse.de
+- add patches.arch/ppc-kdump-soft-reset-64bit-mode.patch
+ force 64bit mode in system_reset_fwnmi for POWER4 (159713 - LTC22581)
+* Mon May 29 2006 - hare(a)suse.de
+- add patches.fixes/dm-suspend-resume-events
+ Send online/offline events for dm devices (175972)
+* Sat May 27 2006 - jack(a)suse.cz
+- patches.fixes/jfs-releasepage.patch: JFS: Fix multiple errors
+ in metapage_releasepage (177890).
+* Fri May 26 2006 - olh(a)suse.de
+- add patches.drivers/s2io-udp_rr.patch
+ fix netperf UDP_RR hangs (176892 - LTC23863)
+* Fri May 26 2006 - jbeulich(a)novell.com
+- patches.xen/xen-x86_64-halt.patch: Use halt() instead of raw
+ inline assembly. (177511).
+* Fri May 26 2006 - neilb(a)suse.de
+- patches.fixes/nfsd-dmapi-aware: Make NFSD DMAPI aware (74107, 173874).
+* Thu May 25 2006 - garloff(a)suse.de
+- Update kabi to SLE10RC2 and enable change tracking.
* Wed May 24 2006 - agruen(a)suse.de
- Fix the logic that detects when to build a debug package so that
it works in the OpenSUSE build service.
++++++ kernel-syms.spec ++++++
--- /var/tmp/diff_new_pack.QE3L0q/_old 2006-05-31 11:39:51.000000000 +0200
+++ /var/tmp/diff_new_pack.QE3L0q/_new 2006-05-31 11:39:51.000000000 +0200
@@ -49,7 +49,7 @@
Summary: Kernel Symbol Versions (modversions)
Group: Development/Sources
Version: 2.6.16.18
-Release: 1
+Release: 2
Requires: linux
Requires: kernel-source = 2.6.16.18-%release
Source11: arch-symbols
@@ -84,7 +84,7 @@
see /usr/src/linux/CREDITS for more details.
-Source Timestamp: 2006/05/24 16:52:45 UTC
+Source Timestamp: 2006/05/31 06:52:41 UTC
%install
@@ -127,6 +127,41 @@
/boot/symsets-*-*.tar.gz
%changelog -n kernel-syms
+* Wed May 31 2006 - hare(a)suse.de
+- patches.drivers/open-iscsi-svn.diff:
+ Fix kernel hang on target reset (#176151)
+* Mon May 29 2006 - ak(a)suse.de
+- patches.arch/x86_64-compat-stack-rnd: Fix stack/mmap
+ randomization for compat tasks (177108).
+* Mon May 29 2006 - perex(a)suse.de
+- patches.suse/bonding-sysfs: Delete. (157936)
+* Mon May 29 2006 - perex(a)suse.de
+- patches.suse/bonding-sysfs: Allow loading of bonding module
+ with max_bonds=0 (157936).
+- patches.suse/netfilter-ipt_LOG-mac: LTC23987-iptables LOG
+ output shows too long MAC info (176921).
+* Mon May 29 2006 - olh(a)suse.de
+- add patches.drivers/ibmveth-flexbuf.patch
+ change buffer pools dynamically (169074 - LTC23397)
+* Mon May 29 2006 - olh(a)suse.de
+- add patches.arch/ppc-kdump-soft-reset-64bit-mode.patch
+ force 64bit mode in system_reset_fwnmi for POWER4 (159713 - LTC22581)
+* Mon May 29 2006 - hare(a)suse.de
+- add patches.fixes/dm-suspend-resume-events
+ Send online/offline events for dm devices (175972)
+* Sat May 27 2006 - jack(a)suse.cz
+- patches.fixes/jfs-releasepage.patch: JFS: Fix multiple errors
+ in metapage_releasepage (177890).
+* Fri May 26 2006 - olh(a)suse.de
+- add patches.drivers/s2io-udp_rr.patch
+ fix netperf UDP_RR hangs (176892 - LTC23863)
+* Fri May 26 2006 - jbeulich(a)novell.com
+- patches.xen/xen-x86_64-halt.patch: Use halt() instead of raw
+ inline assembly. (177511).
+* Fri May 26 2006 - neilb(a)suse.de
+- patches.fixes/nfsd-dmapi-aware: Make NFSD DMAPI aware (74107, 173874).
+* Thu May 25 2006 - garloff(a)suse.de
+- Update kabi to SLE10RC2 and enable change tracking.
* Wed May 24 2006 - agruen(a)suse.de
- Fix the logic that detects when to build a debug package so that
it works in the OpenSUSE build service.
++++++ kernel-um.spec ++++++
--- /var/tmp/diff_new_pack.QE3L0q/_old 2006-05-31 11:39:51.000000000 +0200
+++ /var/tmp/diff_new_pack.QE3L0q/_new 2006-05-31 11:39:51.000000000 +0200
@@ -21,7 +21,7 @@
BuildRequires: python
%endif
Version: 2.6.16.18
-Release: 1
+Release: 2
Summary: The User Mode Linux kernel.
License: GPL
Group: System/Kernel
@@ -100,7 +100,7 @@
%define tolerate_unknown_new_config_options 0
# kABI change tolerance (default in maintenance should be 4, 8 or 15;
# see scripts/kabi-checks)
-%define tolerate_kabi_changes 31
+%define tolerate_kabi_changes 4
%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,make-symsets,find-types,kabi-checks,install-configs})
@@ -112,7 +112,7 @@
-Source Timestamp: 2006/05/24 16:52:45 UTC
+Source Timestamp: 2006/05/31 06:52:41 UTC
%prep
if ! [ -e %_sourcedir/linux-2.6.16.tar.bz2 ]; then
@@ -447,6 +447,41 @@
%files -f kernel.files
%changelog -n kernel-um
+* Wed May 31 2006 - hare(a)suse.de
+- patches.drivers/open-iscsi-svn.diff:
+ Fix kernel hang on target reset (#176151)
+* Mon May 29 2006 - ak(a)suse.de
+- patches.arch/x86_64-compat-stack-rnd: Fix stack/mmap
+ randomization for compat tasks (177108).
+* Mon May 29 2006 - perex(a)suse.de
+- patches.suse/bonding-sysfs: Delete. (157936)
+* Mon May 29 2006 - perex(a)suse.de
+- patches.suse/bonding-sysfs: Allow loading of bonding module
+ with max_bonds=0 (157936).
+- patches.suse/netfilter-ipt_LOG-mac: LTC23987-iptables LOG
+ output shows too long MAC info (176921).
+* Mon May 29 2006 - olh(a)suse.de
+- add patches.drivers/ibmveth-flexbuf.patch
+ change buffer pools dynamically (169074 - LTC23397)
+* Mon May 29 2006 - olh(a)suse.de
+- add patches.arch/ppc-kdump-soft-reset-64bit-mode.patch
+ force 64bit mode in system_reset_fwnmi for POWER4 (159713 - LTC22581)
+* Mon May 29 2006 - hare(a)suse.de
+- add patches.fixes/dm-suspend-resume-events
+ Send online/offline events for dm devices (175972)
+* Sat May 27 2006 - jack(a)suse.cz
+- patches.fixes/jfs-releasepage.patch: JFS: Fix multiple errors
+ in metapage_releasepage (177890).
+* Fri May 26 2006 - olh(a)suse.de
+- add patches.drivers/s2io-udp_rr.patch
+ fix netperf UDP_RR hangs (176892 - LTC23863)
+* Fri May 26 2006 - jbeulich(a)novell.com
+- patches.xen/xen-x86_64-halt.patch: Use halt() instead of raw
+ inline assembly. (177511).
+* Fri May 26 2006 - neilb(a)suse.de
+- patches.fixes/nfsd-dmapi-aware: Make NFSD DMAPI aware (74107, 173874).
+* Thu May 25 2006 - garloff(a)suse.de
+- Update kabi to SLE10RC2 and enable change tracking.
* Wed May 24 2006 - agruen(a)suse.de
- Fix the logic that detects when to build a debug package so that
it works in the OpenSUSE build service.
kernel-xen.spec: same change
kernel-xenpae.spec: same change
++++++ build-source-timestamp ++++++
--- kernel-source/build-source-timestamp 2006-05-24 18:53:42.000000000 +0200
+++ kernel-source/build-source-timestamp 2006-05-31 09:16:59.000000000 +0200
@@ -1 +1 @@
-2006/05/24 16:52:45 UTC
+2006/05/31 06:52:41 UTC
++++++ config.tar.bz2 ++++++
++++++ kabi.tar.bz2 ++++++
++++ 118782 lines of diff (skipped)
++++++ minmem ++++++
--- kernel-source/minmem 2006-05-25 01:17:45.000000000 +0200
+++ kernel-source/minmem 2006-05-31 09:17:46.000000000 +0200
@@ -1 +1 @@
-514000
+1048576
++++++ novell-kmp.tar.bz2 ++++++
++++++ patches.arch.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.arch/ppc-kdump-soft-reset-64bit-mode.patch new/patches.arch/ppc-kdump-soft-reset-64bit-mode.patch
--- old/patches.arch/ppc-kdump-soft-reset-64bit-mode.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.arch/ppc-kdump-soft-reset-64bit-mode.patch 2006-05-29 10:59:41.000000000 +0200
@@ -0,0 +1,66 @@
+Subject: force 64bit mode in system_reset_fwnmi for broken POWER4 firmware
+From: Olaf Hering <olh(a)suse.de>
+References: 159713 - LTC22581
+
+http://ozlabs.org/pipermail/linuxppc-dev/2006-May/023133.html
+
+A softreset via HMC will not enable 64bit mode on the cpu if the
+cpu happens to be in 32bit mode at the time of the exception.
+The stackpointer points to userspace, EXCEPTION_PROLOG_COMMON
+will get into 'bad_stack'. The cpu remains in 32bit mode, but the code
+cant deal with it.
+This happens on JS20 and POWER4, but not on JS21 and POWER5.
+
+Signed-off-by: Olaf Hering <olh(a)suse.de>
+
+Index: linux-2.6/arch/powerpc/kernel/head_64.S
+===================================================================
+--- linux-2.6.orig/arch/powerpc/kernel/head_64.S
++++ linux-2.6/arch/powerpc/kernel/head_64.S
+@@ -211,6 +211,29 @@ exception_marker:
+ ori reg,reg,(label)@l; /* virt addr of handler ... */
+ #endif
+
++#define EXCEPTION_PROLOG_PSERIES_BROKEN_POWER4_FIRMWARE(area, label) \
++ mfspr r13,SPRN_SPRG3; /* get paca address into r13 */ \
++ std r9,area+EX_R9(r13); /* save r9 - r12 */ \
++ std r10,area+EX_R10(r13); \
++ std r11,area+EX_R11(r13); \
++ std r12,area+EX_R12(r13); \
++ mfspr r9,SPRN_SPRG1; \
++ std r9,area+EX_R13(r13); \
++ mfcr r9; \
++ clrrdi r12,r13,32; /* get high part of &label */ \
++ mfmsr r10; \
++ li r11,5; /* MSR_SF_LG|MSR_ISF_LG */ \
++ rldicr r11,r11,61,2; /* (5 << 61) */ \
++ or r10,r10,r11; \
++ mfspr r11,SPRN_SRR0; /* save SRR0 */ \
++ LOAD_HANDLER(r12,label) \
++ ori r10,r10,MSR_IR|MSR_DR|MSR_RI; \
++ mtspr SPRN_SRR0,r12; \
++ mfspr r12,SPRN_SRR1; /* and SRR1 */ \
++ mtspr SPRN_SRR1,r10; \
++ rfid; \
++ b . /* prevent speculative execution */
++
+ #define EXCEPTION_PROLOG_PSERIES(area, label) \
+ mfspr r13,SPRN_SPRG3; /* get paca address into r13 */ \
+ std r9,area+EX_R9(r13); /* save r9 - r12 */ \
+@@ -600,14 +623,14 @@ slb_miss_user_pseries:
+ system_reset_fwnmi:
+ HMT_MEDIUM
+ mtspr SPRN_SPRG1,r13 /* save r13 */
+- EXCEPTION_PROLOG_PSERIES(PACA_EXGEN, system_reset_common)
++ EXCEPTION_PROLOG_PSERIES_BROKEN_POWER4_FIRMWARE(PACA_EXGEN, system_reset_common)
+
+ .globl machine_check_fwnmi
+ .align 7
+ machine_check_fwnmi:
+ HMT_MEDIUM
+ mtspr SPRN_SPRG1,r13 /* save r13 */
+- EXCEPTION_PROLOG_PSERIES(PACA_EXMC, machine_check_common)
++ EXCEPTION_PROLOG_PSERIES_BROKEN_POWER4_FIRMWARE(PACA_EXMC, machine_check_common)
+
+ #ifdef CONFIG_PPC_ISERIES
+ /*** ISeries-LPAR interrupt handlers ***/
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.arch/x86_64-compat-stack-rnd new/patches.arch/x86_64-compat-stack-rnd
--- old/patches.arch/x86_64-compat-stack-rnd 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.arch/x86_64-compat-stack-rnd 2006-05-29 16:17:10.000000000 +0200
@@ -0,0 +1,45 @@
+Subject: Fix stack/mmap randomization for compat tasks
+From: ak(a)suse.de
+References: 177108
+Patch-mainline: 2.6.17
+
+ia32_setup_arg_pages would ignore the passed in random stack top
+and use its own static value.
+
+Now it uses the 8bit of randomness native i386 would use too.
+
+This indirectly fixes mmap randomization for 32bit processes too,
+which depends on the stack randomization.
+
+Should also give slightly better virtual cache colouring and
+possibly better performance with HyperThreading.
+
+Signed-off-by: Andi Kleen <ak(a)suse.de>
+
+---
+ arch/x86_64/ia32/ia32_binfmt.c | 4 ++--
+ include/asm-x86_64/elf.h | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+Index: linux/arch/x86_64/ia32/ia32_binfmt.c
+===================================================================
+--- linux.orig/arch/x86_64/ia32/ia32_binfmt.c
++++ linux/arch/x86_64/ia32/ia32_binfmt.c
+@@ -339,7 +339,7 @@ int ia32_setup_arg_pages(struct linux_bi
+ struct mm_struct *mm = current->mm;
+ int i, ret;
+
+- stack_base = IA32_STACK_TOP - MAX_ARG_PAGES * PAGE_SIZE;
++ stack_base = stack_top - MAX_ARG_PAGES * PAGE_SIZE;
+ mm->arg_start = bprm->p + stack_base;
+
+ bprm->p += stack_base;
+@@ -357,7 +357,7 @@ int ia32_setup_arg_pages(struct linux_bi
+ {
+ mpnt->vm_mm = mm;
+ mpnt->vm_start = PAGE_MASK & (unsigned long) bprm->p;
+- mpnt->vm_end = IA32_STACK_TOP;
++ mpnt->vm_end = stack_top;
+ if (executable_stack == EXSTACK_ENABLE_X)
+ mpnt->vm_flags = VM_STACK_FLAGS | VM_EXEC;
+ else if (executable_stack == EXSTACK_DISABLE_X)
++++++ patches.drivers.tar.bz2 ++++++
++++ 1716 lines of diff (skipped)
++++++ patches.fixes.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.fixes/dm-suspend-resume-events new/patches.fixes/dm-suspend-resume-events
--- old/patches.fixes/dm-suspend-resume-events 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.fixes/dm-suspend-resume-events 2006-05-29 10:32:26.000000000 +0200
@@ -0,0 +1,18 @@
+--- linux-2.6.16/drivers/md/dm.c.orig 2006-05-23 12:18:09.000000000 +0200
++++ linux-2.6.16/drivers/md/dm.c 2006-05-26 14:09:16.000000000 +0200
+@@ -1201,6 +1201,7 @@ int dm_suspend(struct mapped_device *md,
+ dm_table_postsuspend_targets(map);
+
+ set_bit(DMF_SUSPENDED, &md->flags);
++ kobject_uevent(&md->disk->kobj, KOBJ_OFFLINE);
+
+ r = 0;
+
+@@ -1247,6 +1248,7 @@ int dm_resume(struct mapped_device *md)
+
+ dm_table_unplug_all(map);
+
++ kobject_uevent(&md->disk->kobj, KOBJ_ONLINE);
+ r = 0;
+
+ out:
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.fixes/jfs-releasepage.patch new/patches.fixes/jfs-releasepage.patch
--- old/patches.fixes/jfs-releasepage.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.fixes/jfs-releasepage.patch 2006-05-26 06:32:00.000000000 +0200
@@ -0,0 +1,64 @@
+From: Dave Kleikamp <shaggy(a)austin.ibm.com>
+Subject: JFS: Fix multiple errors in metapage_releasepage
+Patch-mainline: 2.6.17-rc5
+References: 177890
+
+It looks like metapage_releasepage was making in invalid assumption that
+the releasepage method would not be called on a dirty page. Instead of
+issuing a warning and releasing the metapage, it should return 0, indicating
+that the private data for the page cannot be released.
+
+I also realized that metapage_releasepage had the return code all wrong. If
+it is successful in releasing the private data, it should return 1, otherwise
+it needs to return 0.
+
+Signed-off-by: Dave Kleikamp <shaggy(a)austin.ibm.com>
+Acked-by: Jan Kara <jack(a)suse.cz>
+
+diff -urp linux-2.6.16/fs/jfs/jfs_metapage.c linux/fs/jfs/jfs_metapage.c
+--- linux-2.6.16/fs/jfs/jfs_metapage.c 2006-03-19 23:53:29.000000000 -0600
++++ linux/fs/jfs/jfs_metapage.c 2006-05-22 10:43:05.000000000 -0500
+@@ -543,7 +543,7 @@ add_failed:
+ static int metapage_releasepage(struct page *page, gfp_t gfp_mask)
+ {
+ struct metapage *mp;
+- int busy = 0;
++ int ret = 1;
+ unsigned int offset;
+
+ for (offset = 0; offset < PAGE_CACHE_SIZE; offset += PSIZE) {
+@@ -553,30 +553,20 @@ static int metapage_releasepage(struct p
+ continue;
+
+ jfs_info("metapage_releasepage: mp = 0x%p", mp);
+- if (mp->count || mp->nohomeok) {
++ if (mp->count || mp->nohomeok ||
++ test_bit(META_dirty, &mp->flag)) {
+ jfs_info("count = %ld, nohomeok = %d", mp->count,
+ mp->nohomeok);
+- busy = 1;
++ ret = 0;
+ continue;
+ }
+- wait_on_page_writeback(page);
+- //WARN_ON(test_bit(META_dirty, &mp->flag));
+- if (test_bit(META_dirty, &mp->flag)) {
+- dump_mem("dirty mp in metapage_releasepage", mp,
+- sizeof(struct metapage));
+- dump_mem("page", page, sizeof(struct page));
+- dump_stack();
+- }
+ if (mp->lsn)
+ remove_from_logsync(mp);
+ remove_metapage(page, mp);
+ INCREMENT(mpStat.pagefree);
+ free_metapage(mp);
+ }
+- if (busy)
+- return -1;
+-
+- return 0;
++ return ret;
+ }
+
+ static int metapage_invalidatepage(struct page *page, unsigned long offset)
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.fixes/nfsd-dmapi-aware new/patches.fixes/nfsd-dmapi-aware
--- old/patches.fixes/nfsd-dmapi-aware 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.fixes/nfsd-dmapi-aware 2006-05-31 09:03:25.000000000 +0200
@@ -0,0 +1,169 @@
+From: Greg Banks
+Subject: Make NFSD DMAPI aware
+References: 74107, 173874
+Patch-mainline: obstruction...
+
+G'day,
+
+The NFSv3 protocol specifies an error, NFS3ERR_JUKEBOX, which a server
+should return when an I/O operation will take a very long time.
+This causes a different pattern of retries in clients, and avoids
+a number of serious problems associated with I/Os which take longer
+than an RPC timeout. The Linux knfsd server has code to generate the
+jukebox error and many NFS clients are known to have working code to
+handle it.
+
+One scenario in which a server should emit the JUKEBOX error is when
+a file data which the client is attempting to access is managed by
+an HSM (Hierarchical Storage Manager) and is not present on the disk
+and needs to be brought in from tape. Due to the nature of tapes this
+operation can take minutes rather than the milliseconds normally seen
+for local file data.
+
+Currently the Linux knfsd handles this situation poorly. A READ NFS
+call will cause the nfsd thread handling it to block until the file
+is available, without sending a reply to the NFS client. After a
+few seconds the client retries, and this second READ call causes
+another nfsd to block behind the first one. A few seconds later and
+the client's retries have blocked *all* the nfsd threads, and all NFS
+service from the server stops until the original file arrives on disk.
+
+WRITEs and SETATTRs which truncate the file are marginally better, in
+that the knfsd dupcache will catch the retries and drop them without
+blocking an nfsd (the dupcache *will* catch the retries because the
+cache entry remains in RC_INPROG state and is not reused until the
+first call finishes). However the first call still blocks, so given
+WRITEs to enough offline files the server can still be locked up.
+
+There are also client-side implications, depending on the client
+implementation. For example, on a Linux client an RPC retry loop uses
+an RPC request slot, so reads from enough separate offline files can
+lock up a mountpoint.
+
+This patch seeks to remedy the interaction between knfsd and HSMs by
+providing mechanisms to allow knfsd to tell an underlying filesystem
+(which supports HSMs) not to block for reads, writes and truncates
+of offline files. It's a port of a Linux 2.4 patch used in SGI's
+ProPack distro for the last 12 months. The patch:
+
+* provides a new ATTR_NO_BLOCK flag which the kernel can
+ use to tell a filesystem's inode_ops->setattr() operation not
+ to block when truncating an offline file. XFS already obeys
+ this flag (inside a #ifdef)
+
+* changes knfsd to provide ATTR_NO_BLOCK when it does the VFS
+ calls to implement the SETATTR NFS call.
+
+* changes knfsd to supply the O_NONBLOCK flag in the temporary
+ struct file it uses for VFS reads and writes, in order to ask
+ the filesystem not to block when reading or writing an offline
+ file. XFS already obeys this new semantic for O_NONBLOCK
+ (and in SLES9 so does JFS).
+
+* adds code to translate the -EAGAIN the filesystem returns when
+ it would have blocked, to the -ETIMEDOUT that knfsd expects.
+
+
+Signed-off-by: Greg Banks <gnb(a)melbourne.sgi.com>
+(SLES9 patch Acked-by: okir(a)suse.de)
+Signed-off-by: NeilBrown <neilb(a)suse.de>
+
+ fs/nfsd/vfs.c | 33 +++++++++++++++++++++++++++++++--
+ include/linux/fs.h | 1 +
+ 2 files changed, 32 insertions(+), 2 deletions(-)
+
+Acked-by:
+
+Index: linux/fs/nfsd/vfs.c
+===================================================================
+--- linux.orig/fs/nfsd/vfs.c 2006-05-03 21:52:16.680687646 +1000
++++ linux/fs/nfsd/vfs.c 2006-05-03 22:03:36.850613571 +1000
+@@ -327,6 +327,16 @@ nfsd_setattr(struct svc_rqst *rqstp, str
+ goto out_nfserr;
+ }
+ DQUOT_INIT(inode);
++
++
++ /*
++ * Tell a Hierarchical Storage Manager (e.g. via DMAPI) to
++ * return EAGAIN when an action would take minutes instead of
++ * milliseconds so that NFS can reply to the client with
++ * NFSERR_JUKEBOX instead of blocking an nfsd thread.
++ */
++ if (rqstp->rq_vers >= 3)
++ iap->ia_valid |= ATTR_NO_BLOCK;
+ }
+
+ imode = inode->i_mode;
+@@ -349,6 +359,9 @@ nfsd_setattr(struct svc_rqst *rqstp, str
+ if (!check_guard || guardtime == inode->i_ctime.tv_sec) {
+ fh_lock(fhp);
+ err = notify_change(dentry, iap);
++ /* to get NFSERR_JUKEBOX on the wire, need -ETIMEDOUT */
++ if (err == -EAGAIN)
++ err = -ETIMEDOUT;
+ err = nfserrno(err);
+ fh_unlock(fhp);
+ }
+@@ -834,6 +847,10 @@ nfsd_vfs_read(struct svc_rqst *rqstp, st
+ if (ra && ra->p_set)
+ file->f_ra = ra->p_ra;
+
++ /* Support HSMs -- see comment in nfsd_setattr() */
++ if (rqstp->rq_vers >= 3)
++ file->f_flags |= O_NONBLOCK;
++
+ if (file->f_op->sendfile) {
+ svc_pushback_unused_pages(rqstp);
+ err = file->f_op->sendfile(file, &offset, *count,
+@@ -859,8 +876,12 @@ nfsd_vfs_read(struct svc_rqst *rqstp, st
+ *count = err;
+ err = 0;
+ fsnotify_access(file->f_dentry);
+- } else
++ } else {
++ /* to get NFSERR_JUKEBOX on the wire, need -ETIMEDOUT */
++ if (err == -EAGAIN)
++ err = -ETIMEDOUT;
+ err = nfserrno(err);
++ }
+ out:
+ return err;
+ }
+@@ -918,6 +939,10 @@ nfsd_vfs_write(struct svc_rqst *rqstp, s
+ if (stable && !EX_WGATHER(exp))
+ file->f_flags |= O_SYNC;
+
++ /* Support HSMs -- see comment in nfsd_setattr() */
++ if (rqstp->rq_vers >= 3)
++ file->f_flags |= O_NONBLOCK;
++
+ /* Write the data. */
+ oldfs = get_fs(); set_fs(KERNEL_DS);
+ err = vfs_writev(file, (struct iovec __user *)vec, vlen, &offset);
+@@ -970,8 +995,12 @@ nfsd_vfs_write(struct svc_rqst *rqstp, s
+ dprintk("nfsd: write complete err=%d\n", err);
+ if (err >= 0)
+ err = 0;
+- else
++ else {
++ /* to get NFSERR_JUKEBOX on the wire, need -ETIMEDOUT */
++ if (err == -EAGAIN)
++ err = -ETIMEDOUT;
+ err = nfserrno(err);
++ }
+ out:
+ return err;
+ }
+Index: linux/include/linux/fs.h
+===================================================================
+--- linux.orig/include/linux/fs.h 2006-05-03 21:52:36.509039333 +1000
++++ linux/include/linux/fs.h 2006-05-03 22:03:36.851590000 +1000
+@@ -265,6 +265,7 @@ typedef void (dio_iodone_t)(struct kiocb
+ #define ATTR_KILL_SUID 2048
+ #define ATTR_KILL_SGID 4096
+ #define ATTR_FILE 8192
++#define ATTR_NO_BLOCK 32768 /* Return EAGAIN and don't block on long truncates */
+
+ /*
+ * This is the Inode Attributes structure, used for notify_change(). It
++++++ patches.kernel.org.tar.bz2 ++++++
++++++ patches.rpmify.tar.bz2 ++++++
++++++ patches.suse.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.suse/netfilter-ipt_LOG-mac new/patches.suse/netfilter-ipt_LOG-mac
--- old/patches.suse/netfilter-ipt_LOG-mac 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.suse/netfilter-ipt_LOG-mac 2006-05-29 11:17:40.000000000 +0200
@@ -0,0 +1,28 @@
+From: Jaroslav Kysela <perex(a)suse.cz>
+Subject: LTC23987-iptables LOG output shows too long MAC info
+References: 176921
+
+LTC23987-iptables LOG output shows too long MAC info for qeth VLAN interface
+
+Signed-off-by: Jaroslav Kysela <perex(a)suse.cz>
+
+--- linux-2.6.16.orig/net/ipv4/netfilter/ipt_LOG.c 2006-03-20 06:53:29.000000000 +0100
++++ linux-2.6.16/net/ipv4/netfilter/ipt_LOG.c 2006-05-26 12:05:08.000000000 +0200
+@@ -395,12 +395,12 @@ ipt_log_packet(unsigned int pf,
+ printk("MAC=");
+ if (skb->dev && skb->dev->hard_header_len
+ && skb->mac.raw != (void*)skb->nh.iph) {
+- int i;
++ int i, len;
+ unsigned char *p = skb->mac.raw;
+- for (i = 0; i < skb->dev->hard_header_len; i++,p++)
+- printk("%02x%c", *p,
+- i==skb->dev->hard_header_len - 1
+- ? ' ':':');
++ len = (int)((unsigned char *)skb->nh.iph - p);
++ len = min((int)skb->dev->hard_header_len, len);
++ for (i = 0; i < len; i++,p++)
++ printk("%02x%c", *p, i==len - 1 ? ' ':':');
+ } else
+ printk(" ");
+ }
++++++ patches.uml.tar.bz2 ++++++
++++++ patches.xen.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.xen/xen-x86_64-halt.patch new/patches.xen/xen-x86_64-halt.patch
--- old/patches.xen/xen-x86_64-halt.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.xen/xen-x86_64-halt.patch 2006-05-26 09:47:08.000000000 +0200
@@ -0,0 +1,17 @@
+From: jbeulich(a)novell.com
+Subject: Use halt() instead of raw inline assembly.
+References: 177511
+
+Index: head-2006-05-19/arch/x86_64/kernel/smp-xen.c
+===================================================================
+--- head-2006-05-19.orig/arch/x86_64/kernel/smp-xen.c 2006-05-19 10:26:04.000000000 +0200
++++ head-2006-05-19/arch/x86_64/kernel/smp-xen.c 2006-05-23 14:44:13.000000000 +0200
+@@ -488,7 +488,7 @@ static void smp_really_stop_cpu(void *du
+ {
+ smp_stop_cpu();
+ for (;;)
+- asm("hlt");
++ halt();
+ }
+
+ void smp_send_stop(void)
++++++ series.conf ++++++
--- kernel-source/series.conf 2006-05-24 18:53:59.000000000 +0200
+++ kernel-source/series.conf 2006-05-31 09:17:26.000000000 +0200
@@ -118,6 +118,7 @@
patches.arch/x86_64-hotadd-fixes
patches.arch/x86_64-empty-node0
patches.arch/x86_64-bad-addr-boundary
+ patches.arch/x86_64-compat-stack-rnd
# for i386/x86-64
patches.arch/tune-generic
@@ -176,6 +177,7 @@
patches.arch/ppc-kdump-iommu-init-fix.patch
patches.arch/ppc-kdump-incorrect_might_sleep_in__get_user-put_user.patch
patches.arch/ppc-kdump-disable-eeh-and-numa.patch
+ patches.arch/ppc-kdump-soft-reset-64bit-mode.patch
patches.arch/ppc-poison_percpu.patch
@@ -418,6 +420,7 @@
patches.suse/netfilter-ipv4options
patches.suse/netfilter-conntrack-sinzero
+ patches.suse/netfilter-ipt_LOG-mac
########################################################
#
@@ -487,6 +490,9 @@
patches.drivers/e100-pci-err-recovery.patch
+ patches.drivers/s2io-udp_rr.patch
+ patches.drivers/ibmveth-flexbuf.patch
+
# Latest net/ieee80211 patches submitted upstream
patches.drivers/ieee802.11-2
patches.drivers/ieee802.11-4
@@ -809,11 +815,15 @@
+andrea patches.fixes/anon_vma_lock
patches.suse/security-cap-def
+# These do not apply cleanly at the moment...
+garloff patches.suse/security-reorder-stubs
+garloff patches.suse/security-clean-stubs
+garloff patches.suse/security-avoid-indir-call
+garloff patches.suse/security-likely-cap
+garloff patches.suse/security-se-enabled
+# ... so rather than fixing the above I'm using this one,
+# which does roughly the same, and was reviewed. --okir
+- patches.suse/security-disabled-optimize-cap-default
+sles patches.fixes/bigsmp-floppy-apic
@@ -1184,6 +1194,12 @@
# bug #176697
patches.fixes/iosapic-move-irq
+ # bug 177890
+ patches.fixes/jfs-releasepage.patch
+
+ patches.fixes/nfsd-dmapi-aware
+ patches.fixes/dm-suspend-resume-events
+
# PLEASE KEEP THESE PATCHES AT THE END OF series.conf
# (as all other arch specific patches should be kept at the end
# for obvious reasons.)
@@ -1269,6 +1285,7 @@
patches.xen/xen-xenbus_be-gpl.patch
patches.xen/xen-blkfront-getgeo.patch
patches.xen/xen-blkback-missing-media.patch
+ patches.xen/xen-x86_64-halt.patch
# enhancements
patches.xen/xen-i386-panic-no-reboot
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
1
0
Hello community,
here is the log from the commit of package kdebluetooth
checked in at Wed May 31 11:37:17 CEST 2006.
--------
--- KDE/kdebluetooth/kdebluetooth.changes 2006-05-17 14:41:12.000000000 +0200
+++ kdebluetooth/kdebluetooth.changes 2006-05-31 10:11:42.000000000 +0200
@@ -1,0 +2,5 @@
+Tue May 30 07:34:55 CEST 2006 - adrian(a)suse.de
+
+- fix build for < 10.1
+
+-------------------------------------------------------------------
@@ -4 +9 @@
-- fix build against openobex 1.2
+- fix build against openobex 1.2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kdebluetooth.spec ++++++
--- /var/tmp/diff_new_pack.O4EGCb/_old 2006-05-31 11:36:56.000000000 +0200
+++ /var/tmp/diff_new_pack.O4EGCb/_new 2006-05-31 11:36:56.000000000 +0200
@@ -12,12 +12,15 @@
Name: kdebluetooth
BuildRequires: bluez-libs gtk-devel kdebase3 kdelibs3-devel kdepim3-devel openobex-devel
+%if %suse_version < 1010
+BuildRequires: kdepim3-sync
+%endif
URL: http://kde-bluetooth.sourceforge.net
License: GPL
Group: Hardware/Other
Summary: Bluetooth Support for KDE
Version: 0.0.svn20060413
-Release: 8
+Release: 9
BuildRoot: %{_tmppath}/%{name}-%{version}-build
# createPackage.sh -ab trunk/extragear/pim -a kdebluetooth -is extragear-pim -av 0.0.svn20061413 --package bzip2 --pofiles kbluelock kbluepin kbluetoothdcm kbluetoothd kbthandsfree kbtobexclient kbtsearch kbtserialchat khciconfig kioclient libkbluetooth
Source0: %name-%version.tar.bz2
@@ -76,7 +79,11 @@
%suse_update_desktop_file kcm_kbluetoothd
%suse_update_desktop_file kcm_btpaired
%suse_update_desktop_file -r kbluetoothd System Applet
+%if %suse_version < 1010
+%suse_update_desktop_file -r kbtobexclient Utility Telephony
+%else
%suse_update_desktop_file -G "OBEX File Transfer" -N "KBluetooth Client" -r kbtobexclient Utility Telephony
+%endif
%if 0
%suse_update_desktop_file kbtserialchat TerminalEmulator
%endif
@@ -113,6 +120,8 @@
/opt/kde3/share/locale
%changelog -n kdebluetooth
+* Tue May 30 2006 - adrian(a)suse.de
+- fix build for < 10.1
* Wed May 17 2006 - dmueller(a)suse.de
- fix build against openobex 1.2
* Thu Apr 13 2006 - stbinner(a)suse.de
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
1
0
Hello community,
here is the log from the commit of package ifolder3
checked in at Wed May 31 11:36:27 CEST 2006.
--------
--- ifolder3/ifolder3.changes 2006-05-22 16:26:04.000000000 +0200
+++ ifolder3/ifolder3.changes 2006-05-31 11:34:13.000000000 +0200
@@ -1,0 +2,5 @@
+Wed May 31 11:33:55 CEST 2006 - ro(a)suse.de
+
+- remove bogus "obsoletes" line in specfile
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ifolder3.spec ++++++
--- /var/tmp/diff_new_pack.8qLqQO/_old 2006-05-31 11:36:17.000000000 +0200
+++ /var/tmp/diff_new_pack.8qLqQO/_new 2006-05-31 11:36:17.000000000 +0200
@@ -24,9 +24,8 @@
Requires: eel
Requires: gconf-sharp2
Requires: gnome-sharp2
-Obsoletes: %{name} < %{version}
Version: 3.4.6142.1
-Release: 1
+Release: 2
Summary: File Sharing and Collaboration Tool
Source: ifolder3-3.4.%{buildnum}.1.tar.gz
Patch0: ifolder3-fixes.patch
@@ -109,6 +108,8 @@
/usr/share/applications/ifolder.desktop
%changelog -n ifolder3
+* Wed May 31 2006 - ro(a)suse.de
+- remove bogus "obsoletes" line in specfile
* Mon May 22 2006 - jhargadon(a)novell.com
- fix for invalid/updated certificate problem
- Added latest help files
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
1
0
Hello community,
here is the log from the commit of package zmd
checked in at Wed May 31 03:07:19 CEST 2006.
--------
--- zmd/zmd.changes 2006-05-25 19:40:50.000000000 +0200
+++ zmd/zmd.changes 2006-05-31 02:46:57.000000000 +0200
@@ -1,0 +2,38 @@
+Wed May 31 02:41:18 CEST 2006 - maw(a)suse.de
+
+- New source drop (r29403) which:
+- Adds new exceptions for key and digest errors
+- Supports FTP service autodetection (#178832)
+- Detects FTP errors correctly if the requested file size request
+ fails
+- Detects if a helper process exited due to a signal
+- Blocks sbutdowns while helpers are running (#178144)
+- Before restarting, nukes the pid file so when we start up we
+ don't think another zmd is running (partial fix for #178218)
+- Implements a key whitelist, exposed over remoting, to control
+ zmd's behavior when the helpers raise a security error/event.
+- Changes the key/digest related parsing functions to use the new
+ exception types and place them in the progress objects for the
+ clients to handle. Also, sets KEYRING_CALLBACK for a few of the
+ zypp helpers to turn on key/digest checking
+- Throws ResolvableNotFoundException if ResolvableInfo ->
+ Resolvable conversion fails. This should happen very rarely
+ and only if a service is removed after a resolvable from the
+ service is sent to the client and after client responds
+ with it. Or, while the service is refreshing. (partial fix
+ for #176640)
+- Corrects the CanMount url; the NU service was automatically
+ selected for YUM services as well
+- Parses key/digest status from the backend helpers
+- Adds database schema version. When opening the database and
+ there is either a schema version mismatch or the database is
+ corrupted, delete the database and create it again. (#165819
+ and #175592)
+
+-------------------------------------------------------------------
+Thu May 25 20:01:03 CEST 2006 - maw(a)suse.de
+
+- New source drop (r29091) which:
+- Further fixes restart on update. #178218
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ zmd.spec ++++++
--- /var/tmp/diff_new_pack.d8IKOp/_old 2006-05-31 03:06:43.000000000 +0200
+++ /var/tmp/diff_new_pack.d8IKOp/_new 2006-05-31 03:06:43.000000000 +0200
@@ -14,7 +14,7 @@
BuildRequires: dbus-1-mono log4net mono-basic mono-data-sqlite mono-devel perl-XML-Parser rpm-devel sqlite-devel
URL: http://www.novell.com
Version: 7.1.1.0
-Release: 44
+Release: 45
License: LGPL
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source0: %{name}-%{version}.tar.bz2
@@ -159,6 +159,38 @@
# %{_libdir}/monodoc/sources/*
%changelog -n zmd
+* Wed May 31 2006 - maw(a)suse.de
+- New source drop (r29403) which:
+- Adds new exceptions for key and digest errors
+- Supports FTP service autodetection (#178832)
+- Detects FTP errors correctly if the requested file size request
+ fails
+- Detects if a helper process exited due to a signal
+- Blocks sbutdowns while helpers are running (#178144)
+- Before restarting, nukes the pid file so when we start up we
+ don't think another zmd is running (partial fix for #178218)
+- Implements a key whitelist, exposed over remoting, to control
+ zmd's behavior when the helpers raise a security error/event.
+- Changes the key/digest related parsing functions to use the new
+ exception types and place them in the progress objects for the
+ clients to handle. Also, sets KEYRING_CALLBACK for a few of the
+ zypp helpers to turn on key/digest checking
+- Throws ResolvableNotFoundException if ResolvableInfo ->
+ Resolvable conversion fails. This should happen very rarely
+ and only if a service is removed after a resolvable from the
+ service is sent to the client and after client responds
+ with it. Or, while the service is refreshing. (partial fix
+ for #176640)
+- Corrects the CanMount url; the NU service was automatically
+ selected for YUM services as well
+- Parses key/digest status from the backend helpers
+- Adds database schema version. When opening the database and
+ there is either a schema version mismatch or the database is
+ corrupted, delete the database and create it again. (#165819
+ and #175592)
+* Thu May 25 2006 - maw(a)suse.de
+- New source drop (r29091) which:
+- Further fixes restart on update. #178218
* Thu May 25 2006 - maw(a)suse.de
- Added a patch (sleep-interval.patch) to make zmd go to sleep
after 30 minutes of inactivity instead of 5.
++++++ zmd-7.1.1.0.tar.bz2 ++++++
++++ 2548 lines of diff (skipped)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
1
0
Hello community,
here is the log from the commit of package zen-updater
checked in at Wed May 31 03:06:35 CEST 2006.
--------
--- zen-updater/zen-updater.changes 2006-05-22 23:34:22.000000000 +0200
+++ zen-updater/zen-updater.changes 2006-05-31 02:53:27.000000000 +0200
@@ -1,0 +2,12 @@
+Wed May 31 02:51:46 CEST 2006 - maw(a)suse.de
+
+- New source drop (r29404) which:
+- Fixes a few dialog spacing issues
+- Re-factors resolution/transaction stuff so all resolvables
+ are resolved/transacted together
+- Implements ITransactionEventHandler and adds links for filtering
+ available types shown (#174736, #177903, and #178015)
+- Fixes #177609, #179500, and #175109
+- Adds support for handling key/digest related errors.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ zen-updater.spec ++++++
--- /var/tmp/diff_new_pack.pNernJ/_old 2006-05-31 03:06:27.000000000 +0200
+++ /var/tmp/diff_new_pack.pNernJ/_new 2006-05-31 03:06:27.000000000 +0200
@@ -14,7 +14,7 @@
BuildRequires: glib-sharp2 gtk-sharp2 gtk2-devel log4net mono-basic mono-data-sqlite mono-devel perl-XML-Parser update-desktop-files zmd-devel
URL: http://novell.com/
Version: 7.1.0
-Release: 53
+Release: 54
License: LGPL
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source0: %name-%version.tar.bz2
@@ -70,6 +70,15 @@
%{_mandir}/*/*
%changelog -n zen-updater
+* Wed May 31 2006 - maw(a)suse.de
+- New source drop (r29404) which:
+- Fixes a few dialog spacing issues
+- Re-factors resolution/transaction stuff so all resolvables
+ are resolved/transacted together
+- Implements ITransactionEventHandler and adds links for filtering
+ available types shown (#174736, #177903, and #178015)
+- Fixes #177609, #179500, and #175109
+- Adds support for handling key/digest related errors.
* Mon May 22 2006 - maw(a)suse.de
- New source drop (r28694) which:
- Accepts pkg catalog:pkg or pkg.rpm on the command line for
++++++ zen-updater-7.1.0.tar.bz2 ++++++
++++ 40067 lines of diff (skipped)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
1
0
Hello community,
here is the log from the commit of package rug
checked in at Wed May 31 03:06:20 CEST 2006.
--------
--- rug/rug.changes 2006-05-22 23:22:01.000000000 +0200
+++ rug/rug.changes 2006-05-31 02:50:11.000000000 +0200
@@ -1,0 +2,9 @@
+Wed May 31 02:49:20 CEST 2006 - maw(a)suse.de
+
+- New source drop (r29084) which:
+- Removes some debug spew that was inadvertently left in a
+ previous commit
+- Handles catalogs with empty 'DisplayName's (#178646)
+- Adds key commands kl, ka, and kd.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rug.spec ++++++
--- /var/tmp/diff_new_pack.m3nfdP/_old 2006-05-31 03:05:55.000000000 +0200
+++ /var/tmp/diff_new_pack.m3nfdP/_new 2006-05-31 03:05:55.000000000 +0200
@@ -14,7 +14,7 @@
BuildRequires: gtkdoc mono-basic mono-data-sqlite mono-devel zmd-devel
URL: http://www.novell.com
Version: 7.1.1.0
-Release: 19
+Release: 20
License: GPL
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Summary: Command Line Client for zmd
@@ -78,6 +78,12 @@
%_mandir/*/*/*.gz
%changelog -n rug
+* Wed May 31 2006 - maw(a)suse.de
+- New source drop (r29084) which:
+- Removes some debug spew that was inadvertently left in a
+ previous commit
+- Handles catalogs with empty 'DisplayName's (#178646)
+- Adds key commands kl, ka, and kd.
* Mon May 22 2006 - maw(a)suse.de
- New source drop (r28766) which:
- Eats "permission denied" exception if the argument isn't a
++++++ rug-7.1.1.0.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/rug-7.1.1.0/src/Catalogs.cs new/rug-7.1.1.0/src/Catalogs.cs
--- old/rug-7.1.1.0/src/Catalogs.cs 2006-05-15 17:16:15.000000000 +0200
+++ new/rug-7.1.1.0/src/Catalogs.cs 2006-05-26 17:32:34.000000000 +0200
@@ -80,11 +80,6 @@
string displayNameInitials = GetInitials (displayName, true);
string displayNameInitialsAlt = GetInitials (displayName, false);
- Console.WriteLine ("'{0}' '{1}' '{2}' '{3}' '{4}' '{5}'",
- name, displayName,
- nameInitials, nameInitialsAlt,
- displayNameInitials, displayNameInitialsAlt);
-
if (info.Name == catalog || info.DisplayName == catalog ||
name == catalogLower || displayName == catalogLower ||
nameInitials == catalogLower || nameInitialsAlt == catalogLower ||
@@ -110,6 +105,9 @@
}
private static string GetInitials (string c, bool replaceDots) {
+ if (c == null || c == String.Empty)
+ return null;
+
if (replaceDots)
c = c.Replace ('.', ' ');
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/rug-7.1.1.0/src/ChangeLog new/rug-7.1.1.0/src/ChangeLog
--- old/rug-7.1.1.0/src/ChangeLog 2006-05-22 17:18:46.000000000 +0200
+++ new/rug-7.1.1.0/src/ChangeLog 2006-05-26 17:32:34.000000000 +0200
@@ -1,3 +1,16 @@
+2006-05-25 Tambet Ingo <tambet(a)ximian.com>
+
+ * Catalogs.cs: Remove some debug spew I forgot to take out from the
+ previous commit. Handle catalogs with empty DisplayName.
+ Fixes #178646.
+
+2006-05-23 Dan Mills <thunder(a)ximian.com>
+
+ * Makefile.am: Add KeyCommands.cs.
+
+ * KeyCommands.cs: Adds key-list (kl), key-add (ka), and key-delete
+ (kd) to manage trusted keys.
+
2006-05-22 Tambet Ingo <tambet(a)ximian.com>
* PackageCommands.cs (FindLocalPackage): Eat "permission denied"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/rug-7.1.1.0/src/KeyCommands.cs new/rug-7.1.1.0/src/KeyCommands.cs
--- old/rug-7.1.1.0/src/KeyCommands.cs 1970-01-01 01:00:00.000000000 +0100
+++ new/rug-7.1.1.0/src/KeyCommands.cs 2006-05-23 20:46:17.000000000 +0200
@@ -0,0 +1,174 @@
+/*
+ * Copyright (c) 2005 Novell, Inc. All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2 of the GNU General Public License
+ * as published by the Free Software Foundation.
+ *
+ * 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, contact Novell, Inc.
+ *
+ * To contact Novell about this file by physical or electronic mail,
+ * you may find current contact information at www.novell.com.
+ *
+ */
+
+using System;
+using System.Collections;
+using Novell.Zenworks.Zmd.Public;
+using Novell.Zenworks.Zmd.Packaging.Public;
+using Novell.Zenworks.Utility;
+
+namespace Novell.Zenworks.Rug {
+
+ class KeyWhitelistCommand : Command {
+
+ private IKeyManager keyManager = null;
+
+ protected IKeyManager KeyManager {
+ get {
+ if (keyManager == null)
+ keyManager = (IKeyManager) Activate ("IKeyManager", typeof (IKeyManager));
+ return keyManager;
+ }
+ }
+ }
+
+ class KeyListCommand : KeyWhitelistCommand {
+
+ public override string Name {
+ get { return "key-list"; }
+ }
+
+ public override string Description {
+ get { return GetString ("Display whitelisted keys for a service"); }
+ }
+
+ public override string Category {
+ get { return GetString ("Security"); }
+ }
+
+ public override string[] Aliases {
+ get { return new string[] { "kl" }; }
+ }
+
+ public override void Execute () {
+ IPreferenceManager prefs = (IPreferenceManager) Activate ("IPreferenceManager",
+ typeof (IPreferenceManager));
+ string level = (string) prefs.GetValue ("security-level");
+ if (level != "signature") {
+ Error (GetString ("Signature verification is not enabled."));
+ }
+
+ IKey[] keys = KeyManager.Keys;
+
+ if (keys.Length == 0) {
+ Error (GetString ("No whitelisted keys found."));
+ return;
+ }
+
+ Formatter formatter = new Formatter (GetString ("Name"), GetString ("ID"), GetString ("Fingerprint"));
+ foreach (IKey key in keys) {
+ formatter.AddRow (key.Name, key.Id, key.Fingerprint);
+ }
+
+ Console.WriteLine (formatter);
+ }
+ }
+
+ class KeyAddCommand : KeyWhitelistCommand {
+
+ public override string Name {
+ get { return "key-add"; }
+ }
+
+ public override string Description {
+ get { return GetString ("Add to the list of whitelisted keys for a service"); }
+ }
+
+ public override string Category {
+ get { return GetString ("Security"); }
+ }
+
+ public override string[] Aliases {
+ get { return new string[] { "ka" }; }
+ }
+
+ public override string Arguments {
+ get { return "<keyname> <keyid>"; }
+ }
+
+ public override void Execute () {
+ if (this.RemainingArguments.Length < 3) {
+ Error (GetString ("A name, id, and fingerprint are required. You may use blank values (\"\") for some if desired."));
+ return;
+ }
+ if (this.RemainingArguments.Length > 3) {
+ Error (GetString ("Too many arguments."));
+ return;
+ }
+
+ KeyManager.Add (RemainingArguments[0], RemainingArguments[1], RemainingArguments[2]);
+
+ Console.WriteLine (GetString ("Key added."));
+ }
+ }
+
+ class KeyDeleteCommand : KeyWhitelistCommand {
+
+ public override string Name {
+ get { return "key-delete"; }
+ }
+
+ public override string Description {
+ get { return GetString ("Remove from the list of whitelisted keys for a service"); }
+ }
+
+ public override string Category {
+ get { return GetString ("Security"); }
+ }
+
+ public override string[] Aliases {
+ get { return new string[] { "kd" }; }
+ }
+
+ public override string Arguments {
+ get { return "<keyid>"; }
+ }
+
+ public override void Execute () {
+ if (this.RemainingArguments.Length < 1) {
+ Error (GetString ("No key was specified."));
+ return;
+ }
+ if (this.RemainingArguments.Length == 2) {
+ Error (GetString ("Must specify either one argument (matches anything with that string), or three (matches one key exactly)."));
+ return;
+ }
+ if (this.RemainingArguments.Length > 3) {
+ Error (GetString ("Too many arguments."));
+ return;
+ }
+
+ IKey k;
+ if (this.RemainingArguments.Length == 1) {
+ k = KeyManager.LookupKey (RemainingArguments[0]);
+ } else {
+ k = KeyManager.LookupKey (RemainingArguments[0], RemainingArguments[1], RemainingArguments[2]);
+ }
+
+ if (k == null) {
+ Error (GetString ("Could not find key."));
+ return;
+ }
+
+ KeyManager.Remove (k);
+ Console.WriteLine (GetString ("Key removed."));
+ }
+ }
+}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/rug-7.1.1.0/src/Makefile.am new/rug-7.1.1.0/src/Makefile.am
--- old/rug-7.1.1.0/src/Makefile.am 2006-04-10 14:42:58.000000000 +0200
+++ new/rug-7.1.1.0/src/Makefile.am 2006-05-23 20:46:17.000000000 +0200
@@ -16,6 +16,7 @@
Command.cs \
DaemonHelper.cs \
Formatter.cs \
+ KeyCommands.cs \
LogCommands.cs \
PackageCommands.cs \
CommandLineParser.cs \
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/rug-7.1.1.0/src/Makefile.in new/rug-7.1.1.0/src/Makefile.in
--- old/rug-7.1.1.0/src/Makefile.in 2006-05-16 00:07:04.000000000 +0200
+++ new/rug-7.1.1.0/src/Makefile.in 2006-05-26 17:32:56.000000000 +0200
@@ -198,6 +198,7 @@
Command.cs \
DaemonHelper.cs \
Formatter.cs \
+ KeyCommands.cs \
LogCommands.cs \
PackageCommands.cs \
CommandLineParser.cs \
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
1
0
Hello community,
here is the log from the commit of package ctags
checked in at Wed May 31 03:05:48 CEST 2006.
--------
--- ctags/ctags.changes 2006-03-07 23:20:08.000000000 +0100
+++ ctags/ctags.changes 2006-05-31 03:05:04.000000000 +0200
@@ -1,0 +2,24 @@
+Tue May 30 15:10:42 CEST 2006 - schwab(a)suse.de
+
+- Update to ctags 5.6
+ * Reformatted code for independence of tab stop setting.
+ * Changed default configuration to disable installation of etags links.
+ * Changed --langmap to first unmap each supplied extension from other languages.
+ * Added support for ASP constants [ASP, Patch #961842].
+ * Added support for GNU make extensions [Make].
+ * Added .mk as extension recognized as a make language file [Make].
+ * Added missing help for list-maps options [Bug #1201826].
+ * Added new extension field "typeref" [thanks to Bram Moolenaar].
+ * Extended functionality of Ruby parser with patch from Elliot Hughes [Ruby].
+ * Fixed creation of TAGS file with etags-include but no files [Bug #941233].
+ * Fixed problem reading last line of list file (-L) without final newline.
+ * Fixed infinite loop that could occur on files without final newline [C, Java].
+ * Fixed incorrect tag for first field of table [SQL].
+ * Fixed missing tags for functions beginning with underscore [Sh].
+ * Fixed missing tags for functions with variable arg list [C, Bug #1201689].
+ * Fixed parsing problem with parentheses in argument list [C, Bug #1085585].
+ * Fixed problem in preprocessor directive handling [C, Bug #1086609].
+- Update etags to 17.17.
+ * added allow-duplicates
+
+-------------------------------------------------------------------
Old:
----
ctags-5.5.4-ycp-parser.diff
ctags-5.5.4.diff
ctags-5.5.4.tar.gz
etags-17.14-gnuctags-allow-duplicates.diff
etags-17.14.diff
etags-17.14.tar.gz
New:
----
ctags-5.6.diff
ctags-5.6.tar.gz
ctags-ycp-parser.diff
etags-17.17.diff
etags-17.17.tar.gz
etags-gnuctags-allow-duplicates.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ctags.spec ++++++
--- /var/tmp/diff_new_pack.I92QMx/_old 2006-05-31 03:05:41.000000000 +0200
+++ /var/tmp/diff_new_pack.I92QMx/_new 2006-05-31 03:05:41.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package ctags (Version 2006.3.7)
+# spec file for package ctags (Version 2006.5.31)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -14,19 +14,19 @@
License: GPL
Group: Development/Tools/Navigators
Autoreqprov: on
-%define exuberant_ver 5.5.4
-%define emacs_ver 17.14
-Version: 2006.3.7
+%define exuberant_ver 5.6
+%define emacs_ver 17.17
+Version: 2006.5.31
Release: 1
Summary: A Program to Generate Tag Files for Use with vi and Other Editors
-URL: http://ctags.sourceforge.net
+URL: http://ctags.sourceforge.net/
Source0: ftp://ftp.sourceforge.net/pub/sourceforge/ctags/ctags-%{exuberant_ver}.tar.…
Source1: etags-%{emacs_ver}.tar.gz
Source2: README.SuSE
Patch0: ctags-%{exuberant_ver}.diff
-Patch1: ctags-%{exuberant_ver}-ycp-parser.diff
+Patch1: ctags-ycp-parser.diff
Patch2: etags-%{emacs_ver}.diff
-Patch3: etags-%{emacs_ver}-gnuctags-allow-duplicates.diff
+Patch3: etags-gnuctags-allow-duplicates.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@@ -58,10 +58,7 @@
CC=gcc
CFLAGS="$RPM_OPT_FLAGS -Wall"
export CFLAGS CC
- ./configure ${RPM_ARCH}-suse-linux \
- --prefix=/usr \
- --mandir='%{_mandir}' \
- --disable-etags
+./configure --prefix=/usr --mandir=%{_mandir} --disable-etags
make
cd ../etags-%{emacs_ver}
CFLAGS="$CFLAGS -I../ctags-%{exuberant_ver}"
@@ -71,12 +68,11 @@
%install
make install prefix=$RPM_BUILD_ROOT/usr mandir=$RPM_BUILD_ROOT%{_mandir}
-mkdir -p $RPM_BUILD_ROOT%{_defaultdocdir}/ctags/Exuberant_Ctags
-install -m 644 COPYING EXTENDING.html FAQ README $RPM_BUILD_ROOT%{_defaultdocdir}/ctags/Exuberant_Ctags
-install -m 644 %{S:2} $RPM_BUILD_ROOT%{_defaultdocdir}/ctags
+mkdir -p $RPM_BUILD_ROOT%{_docdir}/ctags/Exuberant_Ctags
+install -m 644 COPYING EXTENDING.html FAQ README $RPM_BUILD_ROOT%{_docdir}/ctags/Exuberant_Ctags
+install -m 644 %{S:2} $RPM_BUILD_ROOT%{_docdir}/ctags
cd ../etags-%{emacs_ver}
-install -m 0755 etags gnuctags $RPM_BUILD_ROOT/usr/bin
-rm -f $RPM_BUILD_ROOT%{_mandir}/man1/etags.1*
+install -m 755 etags gnuctags $RPM_BUILD_ROOT/usr/bin
install -m 644 etags.1 $RPM_BUILD_ROOT%{_mandir}/man1
ln -sf etags.1.gz $RPM_BUILD_ROOT%{_mandir}/man1/gnuctags.1.gz
@@ -88,20 +84,33 @@
/usr/bin/ctags
/usr/bin/gnuctags
/usr/bin/etags
-%doc %{_mandir}/man1/ctags.1.gz
-%doc %{_mandir}/man1/gnuctags.1.gz
-%doc %{_mandir}/man1/etags.1.gz
-%dir %{_defaultdocdir}/ctags
-%docdir %{_defaultdocdir}/ctags
-%dir %{_defaultdocdir}/ctags/Exuberant_Ctags
-%docdir %{_defaultdocdir}/ctags/Exuberant_Ctags
-%doc %{_defaultdocdir}/ctags/Exuberant_Ctags/COPYING
-%doc %{_defaultdocdir}/ctags/Exuberant_Ctags/EXTENDING.html
-%doc %{_defaultdocdir}/ctags/Exuberant_Ctags/FAQ
-%doc %{_defaultdocdir}/ctags/Exuberant_Ctags/README
-%doc %{_defaultdocdir}/ctags/README.SuSE
+%{_mandir}/man1/ctags.1.gz
+%{_mandir}/man1/gnuctags.1.gz
+%{_mandir}/man1/etags.1.gz
+%{_docdir}/ctags
%changelog -n ctags
+* Tue May 30 2006 - schwab(a)suse.de
+- Update to ctags 5.6
+ * Reformatted code for independence of tab stop setting.
+ * Changed default configuration to disable installation of etags links.
+ * Changed --langmap to first unmap each supplied extension from other languages.
+ * Added support for ASP constants [ASP, Patch #961842].
+ * Added support for GNU make extensions [Make].
+ * Added .mk as extension recognized as a make language file [Make].
+ * Added missing help for list-maps options [Bug #1201826].
+ * Added new extension field "typeref" [thanks to Bram Moolenaar].
+ * Extended functionality of Ruby parser with patch from Elliot Hughes [Ruby].
+ * Fixed creation of TAGS file with etags-include but no files [Bug #941233].
+ * Fixed problem reading last line of list file (-L) without final newline.
+ * Fixed infinite loop that could occur on files without final newline [C, Java].
+ * Fixed incorrect tag for first field of table [SQL].
+ * Fixed missing tags for functions beginning with underscore [Sh].
+ * Fixed missing tags for functions with variable arg list [C, Bug #1201689].
+ * Fixed parsing problem with parentheses in argument list [C, Bug #1085585].
+ * Fixed problem in preprocessor directive handling [C, Bug #1086609].
+- Update etags to 17.17.
+ * added allow-duplicates
* Tue Mar 07 2006 - od(a)suse.de
- wrote and added a YCP parser based on the C code parser
(ctags-5.5.4-ycp-parser.diff)
++++++ README.SuSE ++++++
--- ctags/README.SuSE 2006-03-07 23:20:08.000000000 +0100
+++ ctags/README.SuSE 2006-05-30 16:21:17.000000000 +0200
@@ -10,7 +10,6 @@
ctags -e etags from Darren Hiebert, supports e.g. Eiffel
gnuctags ctags from Emacs sources, supports e.g. Lisp
etags etags from Emacs sources, supports e.g. Lisp
- gctags ctags included in package global, supports e.g. Yacc
The version of Darren Hiebert is also called the Exuberant Ctags.
++++++ ctags-5.5.4-ycp-parser.diff -> ctags-5.6.diff ++++++
--- ctags/ctags-5.5.4-ycp-parser.diff 2006-03-07 23:20:08.000000000 +0100
+++ ctags/ctags-5.6.diff 2001-12-14 15:41:50.000000000 +0100
@@ -1,483 +1,61 @@
- c.c | 317 ++++++++++++++++++++++++++++++++++++++------------------------
- parsers.h | 3
- 2 files changed, 200 insertions(+), 120 deletions(-)
-
-Index: c.c
-===================================================================
---- c.c.orig 2004-02-28 16:37:52.000000000 +0100
-+++ c.c 2006-03-03 19:50:51.000000000 +0100
-@@ -61,35 +61,36 @@ typedef enum eException {
- */
- typedef enum eKeywordId {
- KEYWORD_NONE = -1,
-- KEYWORD_ATTRIBUTE, KEYWORD_ABSTRACT,
-- KEYWORD_BOOLEAN, KEYWORD_BYTE, KEYWORD_BAD_STATE, KEYWORD_BAD_TRANS,
-- KEYWORD_BIND, KEYWORD_BIND_VAR, KEYWORD_BIT,
-+ KEYWORD_ATTRIBUTE, KEYWORD_ABSTRACT, KEYWORD_ANY,
-+ KEYWORD_BOOLEAN, KEYWORD_BYTE, KEYWORD_BYTEBLOCK, KEYWORD_BAD_STATE,
-+ KEYWORD_BAD_TRANS,
-+ KEYWORD_BIND, KEYWORD_BIND_VAR, KEYWORD_BIT, KEYWORD_BLOCK,
- KEYWORD_CASE, KEYWORD_CATCH, KEYWORD_CHAR, KEYWORD_CLASS, KEYWORD_CONST,
- KEYWORD_CONSTRAINT, KEYWORD_COVERAGE_BLOCK, KEYWORD_COVERAGE_DEF,
-- KEYWORD_DEFAULT, KEYWORD_DELEGATE, KEYWORD_DO, KEYWORD_DOUBLE,
-- KEYWORD_ELSE, KEYWORD_ENUM, KEYWORD_EXPLICIT, KEYWORD_EXTERN,
-+ KEYWORD_DEFAULT, KEYWORD_DECLARATION, KEYWORD_DELEGATE, KEYWORD_DO, KEYWORD_DOUBLE,
-+ KEYWORD_ELSE, KEYWORD_ENUM, KEYWORD_EXPLICIT, KEYWORD_EXPRESSION, KEYWORD_EXTERN,
- KEYWORD_EXTENDS, KEYWORD_EVENT,
- KEYWORD_FINAL, KEYWORD_FLOAT, KEYWORD_FOR, KEYWORD_FRIEND, KEYWORD_FUNCTION,
- KEYWORD_GOTO,
- KEYWORD_IF, KEYWORD_IMPLEMENTS, KEYWORD_IMPORT, KEYWORD_INLINE, KEYWORD_INT,
- KEYWORD_INOUT, KEYWORD_INPUT, KEYWORD_INTEGER, KEYWORD_INTERFACE,
-- KEYWORD_INTERNAL,
-- KEYWORD_LOCAL, KEYWORD_LONG,
-+ KEYWORD_INTERNAL, KEYWORD_LIST,
-+ KEYWORD_LOCAL, KEYWORD_LOCALE, KEYWORD_LONG, KEYWORD_MAP,
- KEYWORD_M_BAD_STATE, KEYWORD_M_BAD_TRANS, KEYWORD_M_STATE, KEYWORD_M_TRANS,
- KEYWORD_MUTABLE,
- KEYWORD_NAMESPACE, KEYWORD_NEW, KEYWORD_NEWCOV, KEYWORD_NATIVE,
- KEYWORD_OPERATOR, KEYWORD_OUTPUT, KEYWORD_OVERLOAD, KEYWORD_OVERRIDE,
-- KEYWORD_PACKED, KEYWORD_PORT, KEYWORD_PACKAGE, KEYWORD_PRIVATE,
-- KEYWORD_PROGRAM, KEYWORD_PROTECTED, KEYWORD_PUBLIC,
-+ KEYWORD_PACKED, KEYWORD_PATH, KEYWORD_PORT, KEYWORD_PACKAGE, KEYWORD_PRIVATE,
-+ KEYWORD_PROGRAM, KEYWORD_PROTECTED, KEYWORD_PUBLIC, KEYWORD_REPEAT,
- KEYWORD_REGISTER, KEYWORD_RETURN,
- KEYWORD_SHADOW, KEYWORD_STATE,
- KEYWORD_SHORT, KEYWORD_SIGNED, KEYWORD_STATIC, KEYWORD_STRING,
-- KEYWORD_STRUCT, KEYWORD_SWITCH, KEYWORD_SYNCHRONIZED,
-- KEYWORD_TASK, KEYWORD_TEMPLATE, KEYWORD_THIS, KEYWORD_THROW,
-+ KEYWORD_STRUCT, KEYWORD_SWITCH, KEYWORD_SYNCHRONIZED, KEYWORD_SYMBOL,
-+ KEYWORD_TASK, KEYWORD_TEMPLATE, KEYWORD_TERM, KEYWORD_THIS, KEYWORD_THROW,
- KEYWORD_THROWS, KEYWORD_TRANSIENT, KEYWORD_TRANS, KEYWORD_TRANSITION,
- KEYWORD_TRY, KEYWORD_TYPEDEF, KEYWORD_TYPENAME,
-- KEYWORD_UINT, KEYWORD_ULONG, KEYWORD_UNION, KEYWORD_UNSIGNED, KEYWORD_USHORT,
-- KEYWORD_USING,
-+ KEYWORD_UINT, KEYWORD_ULONG, KEYWORD_UNION, KEYWORD_UNSIGNED, KEYWORD_UNTIL,
-+ KEYWORD_USHORT, KEYWORD_USING,
- KEYWORD_VIRTUAL, KEYWORD_VOID, KEYWORD_VOLATILE,
- KEYWORD_WCHAR_T, KEYWORD_WHILE
- } keywordId;
-@@ -100,7 +101,7 @@ typedef enum eKeywordId {
- typedef struct sKeywordDesc {
- const char *name;
- keywordId id;
-- short isValid [5]; /* indicates languages for which kw is valid */
-+ short isValid [6]; /* indicates languages for which kw is valid */
- } keywordDesc;
-
- /* Used for reporting the type of object parsed by nextToken ().
-@@ -135,6 +136,7 @@ typedef enum eTagScope {
-
- typedef enum eDeclaration {
- DECL_NONE,
-+ DECL_BLOCK, /* YCP unnamed block */
- DECL_BASE, /* base type (default) */
- DECL_CLASS,
- DECL_ENUM,
-@@ -257,6 +259,7 @@ static langType Lang_cpp;
- static langType Lang_csharp;
- static langType Lang_java;
- static langType Lang_vera;
-+static langType Lang_ycp;
- static vString *Signature;
- static boolean CollectingSignature;
-
-@@ -350,109 +353,137 @@ static kindOption VeraKinds [] = {
- { FALSE, 'x', "externvar", "external variable declarations"}
- };
-
-+/* Used to index into the YCPKinds table. */
-+typedef enum {
-+ YK_UNDEFINED = -1,
-+ YK_FUNCTION, YK_PROTOTYPE,
-+ YK_LOCAL,
-+ YK_VARIABLE
-+} ycpKind;
-+
-+static kindOption YCPKinds [] = {
-+ { TRUE, 'f', "function", "function definitions"},
-+ { FALSE, 'p', "prototype", "function prototypes"},
-+ { FALSE, 'l', "local", "local variables"},
-+ { TRUE, 'v', "variable", "variable definitions"},
-+};
-+
- static const keywordDesc KeywordTable [] = {
-- /* C++ */
-- /* ANSI C | C# Java */
-- /* | | | | Vera */
-- /* keyword keyword ID | | | | | */
-- { "__attribute__", KEYWORD_ATTRIBUTE, { 1, 1, 1, 0, 0 } },
-- { "abstract", KEYWORD_ABSTRACT, { 0, 0, 1, 1, 0 } },
-- { "bad_state", KEYWORD_BAD_STATE, { 0, 0, 0, 0, 1 } },
-- { "bad_trans", KEYWORD_BAD_TRANS, { 0, 0, 0, 0, 1 } },
-- { "bind", KEYWORD_BIND, { 0, 0, 0, 0, 1 } },
-- { "bind_var", KEYWORD_BIND_VAR, { 0, 0, 0, 0, 1 } },
-- { "bit", KEYWORD_BIT, { 0, 0, 0, 0, 1 } },
-- { "boolean", KEYWORD_BOOLEAN, { 0, 0, 0, 1, 0 } },
-- { "byte", KEYWORD_BYTE, { 0, 0, 0, 1, 0 } },
-- { "case", KEYWORD_CASE, { 1, 1, 1, 1, 0 } },
-- { "catch", KEYWORD_CATCH, { 0, 1, 1, 0, 0 } },
-- { "char", KEYWORD_CHAR, { 1, 1, 1, 1, 0 } },
-- { "class", KEYWORD_CLASS, { 0, 1, 1, 1, 1 } },
-- { "const", KEYWORD_CONST, { 1, 1, 1, 1, 0 } },
-- { "constraint", KEYWORD_CONSTRAINT, { 0, 0, 0, 0, 1 } },
-- { "coverage_block", KEYWORD_COVERAGE_BLOCK, { 0, 0, 0, 0, 1 } },
-- { "coverage_def", KEYWORD_COVERAGE_DEF, { 0, 0, 0, 0, 1 } },
-- { "do", KEYWORD_DO, { 1, 1, 1, 1, 0 } },
-- { "default", KEYWORD_DEFAULT, { 1, 1, 1, 1, 0 } },
-- { "delegate", KEYWORD_DELEGATE, { 0, 0, 1, 0, 0 } },
-- { "double", KEYWORD_DOUBLE, { 1, 1, 1, 1, 0 } },
-- { "else", KEYWORD_ELSE, { 1, 1, 0, 1, 0 } },
-- { "enum", KEYWORD_ENUM, { 1, 1, 1, 0, 1 } },
-- { "event", KEYWORD_EVENT, { 0, 0, 1, 0, 1 } },
-- { "explicit", KEYWORD_EXPLICIT, { 0, 1, 1, 0, 0 } },
-- { "extends", KEYWORD_EXTENDS, { 0, 0, 0, 1, 1 } },
-- { "extern", KEYWORD_EXTERN, { 1, 1, 1, 0, 1 } },
-- { "final", KEYWORD_FINAL, { 0, 0, 0, 1, 0 } },
-- { "float", KEYWORD_FLOAT, { 1, 1, 1, 1, 0 } },
-- { "for", KEYWORD_FOR, { 1, 1, 1, 1, 0 } },
-- { "friend", KEYWORD_FRIEND, { 0, 1, 0, 0, 0 } },
-- { "function", KEYWORD_FUNCTION, { 0, 0, 0, 0, 1 } },
-- { "goto", KEYWORD_GOTO, { 1, 1, 1, 1, 0 } },
-- { "if", KEYWORD_IF, { 1, 1, 1, 1, 0 } },
-- { "implements", KEYWORD_IMPLEMENTS, { 0, 0, 0, 1, 0 } },
-- { "import", KEYWORD_IMPORT, { 0, 0, 0, 1, 0 } },
-- { "inline", KEYWORD_INLINE, { 0, 1, 0, 0, 0 } },
-- { "inout", KEYWORD_INOUT, { 0, 0, 0, 0, 1 } },
-- { "input", KEYWORD_INPUT, { 0, 0, 0, 0, 1 } },
-- { "int", KEYWORD_INT, { 1, 1, 1, 1, 0 } },
-- { "integer", KEYWORD_INTEGER, { 0, 0, 0, 0, 1 } },
-- { "interface", KEYWORD_INTERFACE, { 0, 0, 1, 1, 1 } },
-- { "internal", KEYWORD_INTERNAL, { 0, 0, 1, 0, 0 } },
-- { "local", KEYWORD_LOCAL, { 0, 0, 0, 0, 1 } },
-- { "long", KEYWORD_LONG, { 1, 1, 1, 1, 0 } },
-- { "m_bad_state", KEYWORD_M_BAD_STATE, { 0, 0, 0, 0, 1 } },
-- { "m_bad_trans", KEYWORD_M_BAD_TRANS, { 0, 0, 0, 0, 1 } },
-- { "m_state", KEYWORD_M_STATE, { 0, 0, 0, 0, 1 } },
-- { "m_trans", KEYWORD_M_TRANS, { 0, 0, 0, 0, 1 } },
-- { "mutable", KEYWORD_MUTABLE, { 0, 1, 0, 0, 0 } },
-- { "namespace", KEYWORD_NAMESPACE, { 0, 1, 1, 0, 0 } },
-- { "native", KEYWORD_NATIVE, { 0, 0, 0, 1, 0 } },
-- { "new", KEYWORD_NEW, { 0, 1, 1, 1, 0 } },
-- { "newcov", KEYWORD_NEWCOV, { 0, 0, 0, 0, 1 } },
-- { "operator", KEYWORD_OPERATOR, { 0, 1, 1, 0, 0 } },
-- { "output", KEYWORD_OUTPUT, { 0, 0, 0, 0, 1 } },
-- { "overload", KEYWORD_OVERLOAD, { 0, 1, 0, 0, 0 } },
-- { "override", KEYWORD_OVERRIDE, { 0, 0, 1, 0, 0 } },
-- { "package", KEYWORD_PACKAGE, { 0, 0, 0, 1, 0 } },
-- { "packed", KEYWORD_PACKED, { 0, 0, 0, 0, 1 } },
-- { "port", KEYWORD_PORT, { 0, 0, 0, 0, 1 } },
-- { "private", KEYWORD_PRIVATE, { 0, 1, 1, 1, 0 } },
-- { "program", KEYWORD_PROGRAM, { 0, 0, 0, 0, 1 } },
-- { "protected", KEYWORD_PROTECTED, { 0, 1, 1, 1, 1 } },
-- { "public", KEYWORD_PUBLIC, { 0, 1, 1, 1, 1 } },
-- { "register", KEYWORD_REGISTER, { 1, 1, 0, 0, 0 } },
-- { "return", KEYWORD_RETURN, { 1, 1, 1, 1, 0 } },
-- { "shadow", KEYWORD_SHADOW, { 0, 0, 0, 0, 1 } },
-- { "short", KEYWORD_SHORT, { 1, 1, 1, 1, 0 } },
-- { "signed", KEYWORD_SIGNED, { 1, 1, 0, 0, 0 } },
-- { "state", KEYWORD_STATE, { 0, 0, 0, 0, 1 } },
-- { "static", KEYWORD_STATIC, { 1, 1, 1, 1, 1 } },
-- { "string", KEYWORD_STRING, { 0, 0, 1, 0, 1 } },
-- { "struct", KEYWORD_STRUCT, { 1, 1, 1, 0, 0 } },
-- { "switch", KEYWORD_SWITCH, { 1, 1, 1, 1, 0 } },
-- { "synchronized", KEYWORD_SYNCHRONIZED, { 0, 0, 0, 1, 0 } },
-- { "task", KEYWORD_TASK, { 0, 0, 0, 0, 1 } },
-- { "template", KEYWORD_TEMPLATE, { 0, 1, 0, 0, 0 } },
-- { "this", KEYWORD_THIS, { 0, 1, 1, 1, 0 } },
-- { "throw", KEYWORD_THROW, { 0, 1, 1, 1, 0 } },
-- { "throws", KEYWORD_THROWS, { 0, 0, 0, 1, 0 } },
-- { "trans", KEYWORD_TRANS, { 0, 0, 0, 0, 1 } },
-- { "transition", KEYWORD_TRANSITION, { 0, 0, 0, 0, 1 } },
-- { "transient", KEYWORD_TRANSIENT, { 0, 0, 0, 1, 0 } },
-- { "try", KEYWORD_TRY, { 0, 1, 1, 0, 0 } },
-- { "typedef", KEYWORD_TYPEDEF, { 1, 1, 1, 0, 1 } },
-- { "typename", KEYWORD_TYPENAME, { 0, 1, 0, 0, 0 } },
-- { "uint", KEYWORD_UINT, { 0, 0, 1, 0, 0 } },
-- { "ulong", KEYWORD_ULONG, { 0, 0, 1, 0, 0 } },
-- { "union", KEYWORD_UNION, { 1, 1, 0, 0, 0 } },
-- { "unsigned", KEYWORD_UNSIGNED, { 1, 1, 1, 0, 0 } },
-- { "ushort", KEYWORD_USHORT, { 0, 0, 1, 0, 0 } },
-- { "using", KEYWORD_USING, { 0, 1, 1, 0, 0 } },
-- { "virtual", KEYWORD_VIRTUAL, { 0, 1, 1, 0, 1 } },
-- { "void", KEYWORD_VOID, { 1, 1, 1, 1, 1 } },
-- { "volatile", KEYWORD_VOLATILE, { 1, 1, 1, 1, 0 } },
-- { "wchar_t", KEYWORD_WCHAR_T, { 1, 1, 1, 0, 0 } },
-- { "while", KEYWORD_WHILE, { 1, 1, 1, 1, 0 } }
-+ /* C++ YCP */
-+ /* ANSI C | C# Java | */
-+ /* | | | | Vera */
-+ /* keyword keyword ID | | | | | | */
-+ { "__attribute__", KEYWORD_ATTRIBUTE, { 1, 1, 1, 0, 0, 0 } },
-+ { "abstract", KEYWORD_ABSTRACT, { 0, 0, 1, 1, 0, 0 } },
-+ { "any", KEYWORD_ANY, { 0, 0, 0, 0, 0, 1 } },
-+ { "bad_state", KEYWORD_BAD_STATE, { 0, 0, 0, 0, 1, 0 } },
-+ { "bad_trans", KEYWORD_BAD_TRANS, { 0, 0, 0, 0, 1, 0 } },
-+ { "bind", KEYWORD_BIND, { 0, 0, 0, 0, 1, 0 } },
-+ { "bind_var", KEYWORD_BIND_VAR, { 0, 0, 0, 0, 1, 0 } },
-+ { "bit", KEYWORD_BIT, { 0, 0, 0, 0, 1, 0 } },
-+ { "block", KEYWORD_BLOCK, { 0, 0, 0, 0, 0, 1 } },
-+ { "boolean", KEYWORD_BOOLEAN, { 0, 0, 0, 1, 0, 1 } },
-+ { "byte", KEYWORD_BYTE, { 0, 0, 0, 1, 0, 0 } },
-+ { "byteblock", KEYWORD_BYTEBLOCK, { 0, 0, 0, 0, 0, 1 } },
-+ { "case", KEYWORD_CASE, { 1, 1, 1, 1, 0, 0 } },
-+ { "catch", KEYWORD_CATCH, { 0, 1, 1, 0, 0, 0 } },
-+ { "char", KEYWORD_CHAR, { 1, 1, 1, 1, 0, 0 } },
-+ { "class", KEYWORD_CLASS, { 0, 1, 1, 1, 1, 0 } },
-+ { "const", KEYWORD_CONST, { 1, 1, 1, 1, 0, 0 } },
-+ { "constraint", KEYWORD_CONSTRAINT, { 0, 0, 0, 0, 1, 0 } },
-+ { "coverage_block", KEYWORD_COVERAGE_BLOCK, { 0, 0, 0, 0, 1, 0 } },
-+ { "coverage_def", KEYWORD_COVERAGE_DEF, { 0, 0, 0, 0, 1, 0 } },
-+ { "declaration", KEYWORD_DECLARATION, { 0, 0, 0, 0, 0, 1 } },
-+ { "do", KEYWORD_DO, { 1, 1, 1, 1, 0, 1 } },
-+ { "default", KEYWORD_DEFAULT, { 1, 1, 1, 1, 0, 0 } },
-+ { "delegate", KEYWORD_DELEGATE, { 0, 0, 1, 0, 0, 0 } },
-+ { "double", KEYWORD_DOUBLE, { 1, 1, 1, 1, 0, 0 } },
-+ { "else", KEYWORD_ELSE, { 1, 1, 0, 1, 0, 1 } },
-+ { "enum", KEYWORD_ENUM, { 1, 1, 1, 0, 1, 1 } },
-+ { "event", KEYWORD_EVENT, { 0, 0, 1, 0, 1, 0 } },
-+ { "explicit", KEYWORD_EXPLICIT, { 0, 1, 1, 0, 0, 0 } },
-+ { "expression", KEYWORD_EXPRESSION, { 0, 0, 0, 0, 0, 1 } },
-+ { "extends", KEYWORD_EXTENDS, { 0, 0, 0, 1, 1, 0 } },
-+ { "extern", KEYWORD_EXTERN, { 1, 1, 1, 0, 1, 0 } },
-+ { "final", KEYWORD_FINAL, { 0, 0, 0, 1, 0, 1 } },
-+ { "float", KEYWORD_FLOAT, { 1, 1, 1, 1, 0, 1 } },
-+ { "for", KEYWORD_FOR, { 1, 1, 1, 1, 0, 0 } },
-+ { "friend", KEYWORD_FRIEND, { 0, 1, 0, 0, 0, 0 } },
-+ { "function", KEYWORD_FUNCTION, { 0, 0, 0, 0, 1, 0 } },
-+ { "goto", KEYWORD_GOTO, { 1, 1, 1, 1, 0, 0 } },
-+ { "if", KEYWORD_IF, { 1, 1, 1, 1, 0, 1 } },
-+ { "implements", KEYWORD_IMPLEMENTS, { 0, 0, 0, 1, 0, 0 } },
-+ { "import", KEYWORD_IMPORT, { 0, 0, 0, 1, 0, 1 } },
-+ { "inline", KEYWORD_INLINE, { 0, 1, 0, 0, 0, 0 } },
-+ { "inout", KEYWORD_INOUT, { 0, 0, 0, 0, 1, 0 } },
-+ { "input", KEYWORD_INPUT, { 0, 0, 0, 0, 1, 0 } },
-+ { "int", KEYWORD_INT, { 1, 1, 1, 1, 0, 0 } },
-+ { "integer", KEYWORD_INTEGER, { 0, 0, 0, 0, 1, 1 } },
-+ { "interface", KEYWORD_INTERFACE, { 0, 0, 1, 1, 1, 0 } },
-+ { "internal", KEYWORD_INTERNAL, { 0, 0, 1, 0, 0, 0 } },
-+ { "list", KEYWORD_LIST, { 0, 0, 0, 0, 0, 1 } },
-+ { "local", KEYWORD_LOCAL, { 0, 0, 0, 0, 1, 0 } },
-+ { "locale", KEYWORD_LOCALE, { 0, 0, 0, 0, 0, 1 } },
-+ { "long", KEYWORD_LONG, { 1, 1, 1, 1, 0, 0 } },
-+ { "map", KEYWORD_MAP, { 0, 0, 0, 0, 0, 1 } },
-+ { "m_bad_state", KEYWORD_M_BAD_STATE, { 0, 0, 0, 0, 1, 0 } },
-+ { "m_bad_trans", KEYWORD_M_BAD_TRANS, { 0, 0, 0, 0, 1, 0 } },
-+ { "m_state", KEYWORD_M_STATE, { 0, 0, 0, 0, 1, 0 } },
-+ { "m_trans", KEYWORD_M_TRANS, { 0, 0, 0, 0, 1, 0 } },
-+ { "mutable", KEYWORD_MUTABLE, { 0, 1, 0, 0, 0, 0 } },
-+ { "namespace", KEYWORD_NAMESPACE, { 0, 1, 1, 0, 0, 0 } },
-+ { "native", KEYWORD_NATIVE, { 0, 0, 0, 1, 0, 0 } },
-+ { "new", KEYWORD_NEW, { 0, 1, 1, 1, 0, 0 } },
-+ { "newcov", KEYWORD_NEWCOV, { 0, 0, 0, 0, 1, 0 } },
-+ { "operator", KEYWORD_OPERATOR, { 0, 1, 1, 0, 0, 0 } },
-+ { "output", KEYWORD_OUTPUT, { 0, 0, 0, 0, 1, 0 } },
-+ { "overload", KEYWORD_OVERLOAD, { 0, 1, 0, 0, 0, 0 } },
-+ { "override", KEYWORD_OVERRIDE, { 0, 0, 1, 0, 0, 0 } },
-+ { "package", KEYWORD_PACKAGE, { 0, 0, 0, 1, 0, 0 } },
-+ { "packed", KEYWORD_PACKED, { 0, 0, 0, 0, 1, 0 } },
-+ { "path", KEYWORD_PATH, { 0, 0, 0, 0, 0, 1 } },
-+ { "port", KEYWORD_PORT, { 0, 0, 0, 0, 1, 0 } },
-+ { "private", KEYWORD_PRIVATE, { 0, 1, 1, 1, 0, 0 } },
-+ { "program", KEYWORD_PROGRAM, { 0, 0, 0, 0, 1, 0 } },
-+ { "protected", KEYWORD_PROTECTED, { 0, 1, 1, 1, 1, 0 } },
-+ { "public", KEYWORD_PUBLIC, { 0, 1, 1, 1, 1, 0 } },
-+ { "repeat", KEYWORD_REPEAT, { 0, 0, 0, 0, 0, 1 } },
-+ { "register", KEYWORD_REGISTER, { 1, 1, 0, 0, 0, 0 } },
-+ { "return", KEYWORD_RETURN, { 1, 1, 1, 1, 0, 1 } },
-+ { "shadow", KEYWORD_SHADOW, { 0, 0, 0, 0, 1, 0 } },
-+ { "short", KEYWORD_SHORT, { 1, 1, 1, 1, 0, 0 } },
-+ { "signed", KEYWORD_SIGNED, { 1, 1, 0, 0, 0, 0 } },
-+ { "state", KEYWORD_STATE, { 0, 0, 0, 0, 1, 0 } },
-+ { "static", KEYWORD_STATIC, { 1, 1, 1, 1, 1, 0 } },
-+ { "string", KEYWORD_STRING, { 0, 0, 1, 0, 1, 1 } },
-+ { "struct", KEYWORD_STRUCT, { 1, 1, 1, 0, 0, 0 } },
-+ { "switch", KEYWORD_SWITCH, { 1, 1, 1, 1, 0, 0 } },
-+ { "synchronized", KEYWORD_SYNCHRONIZED, { 0, 0, 0, 1, 0, 0 } },
-+ { "symbol", KEYWORD_SYMBOL, { 0, 0, 0, 0, 0, 1 } },
-+ { "task", KEYWORD_TASK, { 0, 0, 0, 0, 1, 0 } },
-+ { "template", KEYWORD_TEMPLATE, { 0, 1, 0, 0, 0, 0 } },
-+ { "term", KEYWORD_TERM, { 0, 0, 0, 0, 0, 1 } },
-+ { "this", KEYWORD_THIS, { 0, 1, 1, 1, 0, 0 } },
-+ { "throw", KEYWORD_THROW, { 0, 1, 1, 1, 0, 0 } },
-+ { "throws", KEYWORD_THROWS, { 0, 0, 0, 1, 0, 0 } },
-+ { "trans", KEYWORD_TRANS, { 0, 0, 0, 0, 1, 0 } },
-+ { "transition", KEYWORD_TRANSITION, { 0, 0, 0, 0, 1, 0 } },
-+ { "transient", KEYWORD_TRANSIENT, { 0, 0, 0, 1, 0, 0 } },
-+ { "try", KEYWORD_TRY, { 0, 1, 1, 0, 0, 0 } },
-+ { "typedef", KEYWORD_TYPEDEF, { 1, 1, 1, 0, 1, 0 } },
-+ { "typename", KEYWORD_TYPENAME, { 0, 1, 0, 0, 0, 0 } },
-+ { "uint", KEYWORD_UINT, { 0, 0, 1, 0, 0, 0 } },
-+ { "ulong", KEYWORD_ULONG, { 0, 0, 1, 0, 0, 0 } },
-+ { "union", KEYWORD_UNION, { 1, 1, 0, 0, 0, 0 } },
-+ { "unsigned", KEYWORD_UNSIGNED, { 1, 1, 1, 0, 0, 0 } },
-+ { "until", KEYWORD_UNTIL, { 0, 0, 0, 0, 0, 1 } },
-+ { "ushort", KEYWORD_USHORT, { 0, 0, 1, 0, 0, 0 } },
-+ { "using", KEYWORD_USING, { 0, 1, 1, 0, 0, 0 } },
-+ { "virtual", KEYWORD_VIRTUAL, { 0, 1, 1, 0, 1, 0 } },
-+ { "void", KEYWORD_VOID, { 1, 1, 1, 1, 1, 1 } },
-+ { "volatile", KEYWORD_VOLATILE, { 1, 1, 1, 1, 0, 0 } },
-+ { "wchar_t", KEYWORD_WCHAR_T, { 1, 1, 1, 0, 0, 0 } },
-+ { "while", KEYWORD_WHILE, { 1, 1, 1, 1, 0, 1 } }
- };
-
- /*
-@@ -867,6 +898,20 @@ static veraKind veraTagKind (const tagTy
- return result;
- }
-
-+static ycpKind ycpTagKind (const tagType type) {
-+ ycpKind result = YK_UNDEFINED;
-+ switch (type)
-+ {
-+ case TAG_FUNCTION: result = YK_FUNCTION; break;
-+ case TAG_PROTOTYPE: result = YK_PROTOTYPE; break;
-+ case TAG_LOCAL: result = YK_LOCAL; break;
-+ case TAG_VARIABLE: result = YK_VARIABLE; break;
-+
-+ default: Assert ("Bad YCP tag type" == NULL); break;
-+ }
-+ return result;
-+}
+--- ctags.1
++++ ctags.1 2001/12/14 14:41:12
+@@ -9,12 +9,29 @@
+ .TP 6
+ \fBctags\fP [\fBoptions\fP] [\fIfile(s)\fP]
+ .TP 6
+-\fBetags\fP [\fBoptions\fP] [\fIfile(s)\fP]
++\fBctags\fP \fB-e\fP [\fBoptions\fP] [\fIfile(s)\fP]
+
++.SH NOTE
++There are three different versions of the
++\fBctags\fP program on SuSE Linux.
++Besides this one you might want to use either
++.BR gnuctags (1),
++supporting wide variety of programming languages
++and originaly distributed with emacs, or
++.BR gctags (1),
++which comes with
++.BR global (1)
++and supports for example Yacc.
++
++For use with
++.BR emacs (1)
++the best choice is perhaps
++.BR etags (1),
++but it's also possible to use \fBctags\ \-e\fP,
++as described herein, since it supports for example Eiffel.
+
+ .SH "DESCRIPTION"
+-The \fBctags\fP and \fBetags\fP programs (hereinafter collectively referred to
+-as \fBctags\fP, except where distinguished) generate an index (or "tag") file
++The \fBctags\fP program generates an index (or "tag") file
+ for a variety of language objects found in \fIfile(s)\fP.
+ This tag file allows these items to be quickly and easily located by a text
+ editor or other utility. A "tag" signifies a language object for which an
+@@ -1484,7 +1501,7 @@
+ .TP 8
+ .B ETAGS
+ Similar to the \fBCTAGS\fP variable above, this variable, if found, will be
+-read when \fBetags\fP starts. If this variable is not found, \fBetags\fP will
++read when \fBctags\ \-e\fP starts. If this variable is not found, \fBctags\ \-e\fP will
+ try to use \fBCTAGS\fP instead.
+
+ .TP 8
+@@ -1535,9 +1552,15 @@
+ The default tag file created by \fBctags\fP.
+ .TP
+ .I TAGS
+-The default tag file created by \fBetags\fP.
++The default tag file created by \fBctags -e\fP.
+
+ .SH "SEE ALSO"
++.BR etags (1),
++.BR gctags (1),
++.BR global (1),
++.BR gnuctags (1).
+
- static const char *tagName (const tagType type)
- {
- const char* result;
-@@ -906,6 +951,8 @@ static boolean includeTag (const tagType
- result = JavaKinds [javaTagKind (type)].enabled;
- else if (isLanguage (Lang_vera))
- result = VeraKinds [veraTagKind (type)].enabled;
-+ else if (isLanguage (Lang_ycp))
-+ result = YCPKinds [ycpTagKind (type)].enabled;
- else
- result = CKinds [cTagKind (type)].enabled;
- return result;
-@@ -1005,7 +1052,7 @@ static void addOtherFields (tagEntryInfo
-
- static void addContextSeparator (vString *const scope)
- {
-- if (isLanguage (Lang_c) || isLanguage (Lang_cpp))
-+ if (isLanguage (Lang_c) || isLanguage (Lang_cpp) || isLanguage (Lang_ycp))
- vStringCatS (scope, "::");
- else if (isLanguage (Lang_java) || isLanguage (Lang_csharp))
- vStringCatS (scope, ".");
-@@ -1658,9 +1705,11 @@ static void processToken (tokenInfo *con
-
- case KEYWORD_NONE: processName (st); break;
- case KEYWORD_ABSTRACT: st->implementation = IMP_ABSTRACT; break;
-+ case KEYWORD_ANY: st->declaration = DECL_BASE; break;
- case KEYWORD_ATTRIBUTE: skipParens (); initToken (token); break;
- case KEYWORD_BIND: st->declaration = DECL_BASE; break;
- case KEYWORD_BIT: st->declaration = DECL_BASE; break;
-+ case KEYWORD_BYTEBLOCK: st->declaration = DECL_BASE; break;
- case KEYWORD_CATCH: skipParens (); skipBraces (); break;
- case KEYWORD_CHAR: st->declaration = DECL_BASE; break;
- case KEYWORD_CLASS: st->declaration = DECL_CLASS; break;
-@@ -1679,11 +1728,15 @@ static void processToken (tokenInfo *con
- case KEYWORD_INT: st->declaration = DECL_BASE; break;
- case KEYWORD_INTEGER: st->declaration = DECL_BASE; break;
- case KEYWORD_INTERFACE: st->declaration = DECL_INTERFACE; break;
-+ case KEYWORD_LIST: st->declaration = DECL_BASE; break;
- case KEYWORD_LOCAL: setAccess (st, ACCESS_LOCAL); break;
-+ case KEYWORD_LOCALE: st->declaration = DECL_BASE; break;
- case KEYWORD_LONG: st->declaration = DECL_BASE; break;
-+ case KEYWORD_MAP: st->declaration = DECL_BASE; break;
- case KEYWORD_NAMESPACE: st->declaration = DECL_NAMESPACE; break;
- case KEYWORD_OPERATOR: readOperator (st); break;
- case KEYWORD_PACKAGE: readPackage (st); break;
-+ case KEYWORD_PATH: st->declaration = DECL_BASE; break;
- case KEYWORD_PRIVATE: setAccess (st, ACCESS_PRIVATE); break;
- case KEYWORD_PROGRAM: st->declaration = DECL_PROGRAM; break;
- case KEYWORD_PROTECTED: setAccess (st, ACCESS_PROTECTED); break;
-@@ -1693,7 +1746,9 @@ static void processToken (tokenInfo *con
- case KEYWORD_SIGNED: st->declaration = DECL_BASE; break;
- case KEYWORD_STRING: st->declaration = DECL_BASE; break;
- case KEYWORD_STRUCT: st->declaration = DECL_STRUCT; break;
-+ case KEYWORD_SYMBOL: st->declaration = DECL_BASE; break;
- case KEYWORD_TASK: st->declaration = DECL_TASK; break;
-+ case KEYWORD_TERM: st->declaration = DECL_BASE; break;
- case KEYWORD_THROWS: discardTypeList (token); break;
- case KEYWORD_UNION: st->declaration = DECL_UNION; break;
- case KEYWORD_UNSIGNED: st->declaration = DECL_BASE; break;
-@@ -1732,7 +1787,9 @@ static void processToken (tokenInfo *con
-
- case KEYWORD_FOR:
- case KEYWORD_IF:
-+ case KEYWORD_REPEAT:
- case KEYWORD_SWITCH:
-+ case KEYWORD_UNTIL:
- case KEYWORD_WHILE:
- {
- int c = skipToNonWhite ();
-@@ -2204,7 +2261,7 @@ static void addContext (statementInfo *c
- {
- if (vStringLength (st->context->name) > 0)
- {
-- if (isLanguage (Lang_c) || isLanguage (Lang_cpp))
-+ if (isLanguage (Lang_c) || isLanguage (Lang_cpp) || isLanguage (Lang_ycp))
- vStringCatS (st->context->name, "::");
- else if (isLanguage (Lang_java) || isLanguage (Lang_csharp))
- vStringCatS (st->context->name, ".");
-@@ -2520,7 +2577,10 @@ static void nest (statementInfo *const s
- st->inFunction = TRUE;
- /* fall through */
- default:
-- if (includeTag (TAG_LOCAL, FALSE))
-+ if (isLanguage (Lang_ycp) && ! st->haveQualifyingName) {
-+ st->declaration = DECL_BLOCK;
-+ createTags (nestLevel, st);
-+ } else if (includeTag (TAG_LOCAL, FALSE))
- createTags (nestLevel, st);
- else
- skipToMatch ("{}");
-@@ -2561,6 +2621,7 @@ static void tagCheck (statementInfo *con
- }
- }
- else if (isContextualStatement (st) ||
-+ st->declaration == DECL_BLOCK ||
- st->declaration == DECL_NAMESPACE ||
- st->declaration == DECL_PROGRAM)
- {
-@@ -2709,6 +2770,12 @@ static void initializeVeraParser (const
- buildKeywordHash (language, 4);
- }
-
-+static void initializeYcpParser (const langType language)
-+{
-+ Lang_ycp = language;
-+ buildKeywordHash (language, 5);
-+}
-+
- extern parserDefinition* CParser (void)
- {
- static const char *const extensions [] = { "c", NULL };
-@@ -2775,4 +2842,16 @@ extern parserDefinition* VeraParser (voi
- return def;
- }
-
-+extern parserDefinition* YcpParser (void)
-+{
-+ static const char *const extensions [] = { "ycp", NULL };
-+ parserDefinition* def = parserNew ("YCP");
-+ def->kinds = YCPKinds;
-+ def->kindCount = KIND_COUNT (YCPKinds);
-+ def->extensions = extensions;
-+ def->parser2 = findCTags;
-+ def->initialize = initializeYcpParser;
-+ return def;
-+}
-+
- /* vi:set tabstop=8 shiftwidth=4 noexpandtab: */
-Index: parsers.h
-===================================================================
---- parsers.h.orig 2006-02-17 13:33:10.000000000 +0100
-+++ parsers.h 2006-02-17 13:35:18.000000000 +0100
-@@ -48,7 +48,8 @@
- VeraParser, \
- VerilogParser, \
- VimParser, \
-- YaccParser
-+ YaccParser, \
-+ YcpParser
-
- #endif /* _PARSERS_H */
++.PP
+ The official Exuberant Ctags web site at:
+ .RS
++++++ ctags-5.5.4.tar.gz -> ctags-5.6.tar.gz ++++++
++++ 37772 lines of diff (skipped)
++++++ ctags-ycp-parser.diff ++++++
--- c.c
+++ c.c
@@ -61,35 +61,39 @@
*/
typedef enum eKeywordId {
KEYWORD_NONE = -1,
- KEYWORD_ATTRIBUTE, KEYWORD_ABSTRACT,
- KEYWORD_BOOLEAN, KEYWORD_BYTE, KEYWORD_BAD_STATE, KEYWORD_BAD_TRANS,
- KEYWORD_BIND, KEYWORD_BIND_VAR, KEYWORD_BIT,
+ KEYWORD_ATTRIBUTE, KEYWORD_ABSTRACT, KEYWORD_ANY,
+ KEYWORD_BOOLEAN, KEYWORD_BYTE, KEYWORD_BYTEBLOCK, KEYWORD_BAD_STATE,
+ KEYWORD_BAD_TRANS,
+ KEYWORD_BIND, KEYWORD_BIND_VAR, KEYWORD_BIT, KEYWORD_BLOCK,
KEYWORD_CASE, KEYWORD_CATCH, KEYWORD_CHAR, KEYWORD_CLASS, KEYWORD_CONST,
KEYWORD_CONSTRAINT, KEYWORD_COVERAGE_BLOCK, KEYWORD_COVERAGE_DEF,
- KEYWORD_DEFAULT, KEYWORD_DELEGATE, KEYWORD_DELETE, KEYWORD_DO,
+ KEYWORD_DEFAULT, KEYWORD_DECLARATION, KEYWORD_DELEGATE, KEYWORD_DELETE,
+ KEYWORD_DO,
KEYWORD_DOUBLE,
- KEYWORD_ELSE, KEYWORD_ENUM, KEYWORD_EXPLICIT, KEYWORD_EXTERN,
+ KEYWORD_ELSE, KEYWORD_ENUM, KEYWORD_EXPLICIT, KEYWORD_EXPRESSION,
+ KEYWORD_EXTERN,
KEYWORD_EXTENDS, KEYWORD_EVENT,
KEYWORD_FINAL, KEYWORD_FLOAT, KEYWORD_FOR, KEYWORD_FRIEND, KEYWORD_FUNCTION,
KEYWORD_GOTO,
KEYWORD_IF, KEYWORD_IMPLEMENTS, KEYWORD_IMPORT, KEYWORD_INLINE, KEYWORD_INT,
KEYWORD_INOUT, KEYWORD_INPUT, KEYWORD_INTEGER, KEYWORD_INTERFACE,
KEYWORD_INTERNAL,
- KEYWORD_LOCAL, KEYWORD_LONG,
+ KEYWORD_LIST, KEYWORD_LOCAL, KEYWORD_LOCALE, KEYWORD_LONG,
KEYWORD_M_BAD_STATE, KEYWORD_M_BAD_TRANS, KEYWORD_M_STATE, KEYWORD_M_TRANS,
- KEYWORD_MUTABLE,
+ KEYWORD_MAP, KEYWORD_MUTABLE,
KEYWORD_NAMESPACE, KEYWORD_NEW, KEYWORD_NEWCOV, KEYWORD_NATIVE,
KEYWORD_OPERATOR, KEYWORD_OUTPUT, KEYWORD_OVERLOAD, KEYWORD_OVERRIDE,
- KEYWORD_PACKED, KEYWORD_PORT, KEYWORD_PACKAGE, KEYWORD_PRIVATE,
- KEYWORD_PROGRAM, KEYWORD_PROTECTED, KEYWORD_PUBLIC,
+ KEYWORD_PACKED, KEYWORD_PATH, KEYWORD_PORT, KEYWORD_PACKAGE,
+ KEYWORD_PRIVATE,
+ KEYWORD_PROGRAM, KEYWORD_PROTECTED, KEYWORD_PUBLIC, KEYWORD_REPEAT,
KEYWORD_REGISTER, KEYWORD_RETURN,
KEYWORD_SHADOW, KEYWORD_STATE,
KEYWORD_SHORT, KEYWORD_SIGNED, KEYWORD_STATIC, KEYWORD_STRING,
- KEYWORD_STRUCT, KEYWORD_SWITCH, KEYWORD_SYNCHRONIZED,
- KEYWORD_TASK, KEYWORD_TEMPLATE, KEYWORD_THIS, KEYWORD_THROW,
+ KEYWORD_STRUCT, KEYWORD_SWITCH, KEYWORD_SYNCHRONIZED, KEYWORD_SYMBOL,
+ KEYWORD_TASK, KEYWORD_TEMPLATE, KEYWORD_TERM, KEYWORD_THIS, KEYWORD_THROW,
KEYWORD_THROWS, KEYWORD_TRANSIENT, KEYWORD_TRANS, KEYWORD_TRANSITION,
KEYWORD_TRY, KEYWORD_TYPEDEF, KEYWORD_TYPENAME,
- KEYWORD_UINT, KEYWORD_ULONG, KEYWORD_UNION, KEYWORD_UNSIGNED, KEYWORD_USHORT,
+ KEYWORD_UINT, KEYWORD_ULONG, KEYWORD_UNION, KEYWORD_UNSIGNED, KEYWORD_UNTIL, KEYWORD_USHORT,
KEYWORD_USING,
KEYWORD_VIRTUAL, KEYWORD_VOID, KEYWORD_VOLATILE,
KEYWORD_WCHAR_T, KEYWORD_WHILE
@@ -101,7 +105,7 @@
typedef struct sKeywordDesc {
const char *name;
keywordId id;
- short isValid [5]; /* indicates languages for which kw is valid */
+ short isValid [6]; /* indicates languages for which kw is valid */
} keywordDesc;
/* Used for reporting the type of object parsed by nextToken ().
@@ -137,6 +141,7 @@
typedef enum eDeclaration {
DECL_NONE,
DECL_BASE, /* base type (default) */
+ DECL_BLOCK, /* YCP unnamed block */
DECL_CLASS,
DECL_ENUM,
DECL_EVENT,
@@ -258,6 +263,7 @@
static langType Lang_csharp;
static langType Lang_java;
static langType Lang_vera;
+static langType Lang_ycp;
static vString *Signature;
static boolean CollectingSignature;
@@ -354,110 +360,138 @@
{ FALSE, 'x', "externvar", "external variable declarations"}
};
+/* Used to index into the YCPKinds table. */
+typedef enum {
+ YK_UNDEFINED = -1,
+ YK_FUNCTION, YK_PROTOTYPE,
+ YK_LOCAL,
+ YK_VARIABLE
+} ycpKind;
+
+static kindOption YCPKinds [] = {
+ { TRUE, 'f', "function", "function definitions"},
+ { FALSE, 'p', "prototype", "function prototypes"},
+ { FALSE, 'l', "local", "local variables"},
+ { TRUE, 'v', "variable", "variable definitions"},
+};
+
static const keywordDesc KeywordTable [] = {
- /* C++ */
- /* ANSI C | C# Java */
- /* | | | | Vera */
- /* keyword keyword ID | | | | | */
- { "__attribute__", KEYWORD_ATTRIBUTE, { 1, 1, 1, 0, 0 } },
- { "abstract", KEYWORD_ABSTRACT, { 0, 0, 1, 1, 0 } },
- { "bad_state", KEYWORD_BAD_STATE, { 0, 0, 0, 0, 1 } },
- { "bad_trans", KEYWORD_BAD_TRANS, { 0, 0, 0, 0, 1 } },
- { "bind", KEYWORD_BIND, { 0, 0, 0, 0, 1 } },
- { "bind_var", KEYWORD_BIND_VAR, { 0, 0, 0, 0, 1 } },
- { "bit", KEYWORD_BIT, { 0, 0, 0, 0, 1 } },
- { "boolean", KEYWORD_BOOLEAN, { 0, 0, 0, 1, 0 } },
- { "byte", KEYWORD_BYTE, { 0, 0, 0, 1, 0 } },
- { "case", KEYWORD_CASE, { 1, 1, 1, 1, 0 } },
- { "catch", KEYWORD_CATCH, { 0, 1, 1, 0, 0 } },
- { "char", KEYWORD_CHAR, { 1, 1, 1, 1, 0 } },
- { "class", KEYWORD_CLASS, { 0, 1, 1, 1, 1 } },
- { "const", KEYWORD_CONST, { 1, 1, 1, 1, 0 } },
- { "constraint", KEYWORD_CONSTRAINT, { 0, 0, 0, 0, 1 } },
- { "coverage_block", KEYWORD_COVERAGE_BLOCK, { 0, 0, 0, 0, 1 } },
- { "coverage_def", KEYWORD_COVERAGE_DEF, { 0, 0, 0, 0, 1 } },
- { "do", KEYWORD_DO, { 1, 1, 1, 1, 0 } },
- { "default", KEYWORD_DEFAULT, { 1, 1, 1, 1, 0 } },
- { "delegate", KEYWORD_DELEGATE, { 0, 0, 1, 0, 0 } },
- { "delete", KEYWORD_DELETE, { 0, 1, 0, 0, 0 } },
- { "double", KEYWORD_DOUBLE, { 1, 1, 1, 1, 0 } },
- { "else", KEYWORD_ELSE, { 1, 1, 0, 1, 0 } },
- { "enum", KEYWORD_ENUM, { 1, 1, 1, 0, 1 } },
- { "event", KEYWORD_EVENT, { 0, 0, 1, 0, 1 } },
- { "explicit", KEYWORD_EXPLICIT, { 0, 1, 1, 0, 0 } },
- { "extends", KEYWORD_EXTENDS, { 0, 0, 0, 1, 1 } },
- { "extern", KEYWORD_EXTERN, { 1, 1, 1, 0, 1 } },
- { "final", KEYWORD_FINAL, { 0, 0, 0, 1, 0 } },
- { "float", KEYWORD_FLOAT, { 1, 1, 1, 1, 0 } },
- { "for", KEYWORD_FOR, { 1, 1, 1, 1, 0 } },
- { "friend", KEYWORD_FRIEND, { 0, 1, 0, 0, 0 } },
- { "function", KEYWORD_FUNCTION, { 0, 0, 0, 0, 1 } },
- { "goto", KEYWORD_GOTO, { 1, 1, 1, 1, 0 } },
- { "if", KEYWORD_IF, { 1, 1, 1, 1, 0 } },
- { "implements", KEYWORD_IMPLEMENTS, { 0, 0, 0, 1, 0 } },
- { "import", KEYWORD_IMPORT, { 0, 0, 0, 1, 0 } },
- { "inline", KEYWORD_INLINE, { 0, 1, 0, 0, 0 } },
- { "inout", KEYWORD_INOUT, { 0, 0, 0, 0, 1 } },
- { "input", KEYWORD_INPUT, { 0, 0, 0, 0, 1 } },
- { "int", KEYWORD_INT, { 1, 1, 1, 1, 0 } },
- { "integer", KEYWORD_INTEGER, { 0, 0, 0, 0, 1 } },
- { "interface", KEYWORD_INTERFACE, { 0, 0, 1, 1, 1 } },
- { "internal", KEYWORD_INTERNAL, { 0, 0, 1, 0, 0 } },
- { "local", KEYWORD_LOCAL, { 0, 0, 0, 0, 1 } },
- { "long", KEYWORD_LONG, { 1, 1, 1, 1, 0 } },
- { "m_bad_state", KEYWORD_M_BAD_STATE, { 0, 0, 0, 0, 1 } },
- { "m_bad_trans", KEYWORD_M_BAD_TRANS, { 0, 0, 0, 0, 1 } },
- { "m_state", KEYWORD_M_STATE, { 0, 0, 0, 0, 1 } },
- { "m_trans", KEYWORD_M_TRANS, { 0, 0, 0, 0, 1 } },
- { "mutable", KEYWORD_MUTABLE, { 0, 1, 0, 0, 0 } },
- { "namespace", KEYWORD_NAMESPACE, { 0, 1, 1, 0, 0 } },
- { "native", KEYWORD_NATIVE, { 0, 0, 0, 1, 0 } },
- { "new", KEYWORD_NEW, { 0, 1, 1, 1, 0 } },
- { "newcov", KEYWORD_NEWCOV, { 0, 0, 0, 0, 1 } },
- { "operator", KEYWORD_OPERATOR, { 0, 1, 1, 0, 0 } },
- { "output", KEYWORD_OUTPUT, { 0, 0, 0, 0, 1 } },
- { "overload", KEYWORD_OVERLOAD, { 0, 1, 0, 0, 0 } },
- { "override", KEYWORD_OVERRIDE, { 0, 0, 1, 0, 0 } },
- { "package", KEYWORD_PACKAGE, { 0, 0, 0, 1, 0 } },
- { "packed", KEYWORD_PACKED, { 0, 0, 0, 0, 1 } },
- { "port", KEYWORD_PORT, { 0, 0, 0, 0, 1 } },
- { "private", KEYWORD_PRIVATE, { 0, 1, 1, 1, 0 } },
- { "program", KEYWORD_PROGRAM, { 0, 0, 0, 0, 1 } },
- { "protected", KEYWORD_PROTECTED, { 0, 1, 1, 1, 1 } },
- { "public", KEYWORD_PUBLIC, { 0, 1, 1, 1, 1 } },
- { "register", KEYWORD_REGISTER, { 1, 1, 0, 0, 0 } },
- { "return", KEYWORD_RETURN, { 1, 1, 1, 1, 0 } },
- { "shadow", KEYWORD_SHADOW, { 0, 0, 0, 0, 1 } },
- { "short", KEYWORD_SHORT, { 1, 1, 1, 1, 0 } },
- { "signed", KEYWORD_SIGNED, { 1, 1, 0, 0, 0 } },
- { "state", KEYWORD_STATE, { 0, 0, 0, 0, 1 } },
- { "static", KEYWORD_STATIC, { 1, 1, 1, 1, 1 } },
- { "string", KEYWORD_STRING, { 0, 0, 1, 0, 1 } },
- { "struct", KEYWORD_STRUCT, { 1, 1, 1, 0, 0 } },
- { "switch", KEYWORD_SWITCH, { 1, 1, 1, 1, 0 } },
- { "synchronized", KEYWORD_SYNCHRONIZED, { 0, 0, 0, 1, 0 } },
- { "task", KEYWORD_TASK, { 0, 0, 0, 0, 1 } },
- { "template", KEYWORD_TEMPLATE, { 0, 1, 0, 0, 0 } },
- { "this", KEYWORD_THIS, { 0, 1, 1, 1, 0 } },
- { "throw", KEYWORD_THROW, { 0, 1, 1, 1, 0 } },
- { "throws", KEYWORD_THROWS, { 0, 0, 0, 1, 0 } },
- { "trans", KEYWORD_TRANS, { 0, 0, 0, 0, 1 } },
- { "transition", KEYWORD_TRANSITION, { 0, 0, 0, 0, 1 } },
- { "transient", KEYWORD_TRANSIENT, { 0, 0, 0, 1, 0 } },
- { "try", KEYWORD_TRY, { 0, 1, 1, 0, 0 } },
- { "typedef", KEYWORD_TYPEDEF, { 1, 1, 1, 0, 1 } },
- { "typename", KEYWORD_TYPENAME, { 0, 1, 0, 0, 0 } },
- { "uint", KEYWORD_UINT, { 0, 0, 1, 0, 0 } },
- { "ulong", KEYWORD_ULONG, { 0, 0, 1, 0, 0 } },
- { "union", KEYWORD_UNION, { 1, 1, 0, 0, 0 } },
- { "unsigned", KEYWORD_UNSIGNED, { 1, 1, 1, 0, 0 } },
- { "ushort", KEYWORD_USHORT, { 0, 0, 1, 0, 0 } },
- { "using", KEYWORD_USING, { 0, 1, 1, 0, 0 } },
- { "virtual", KEYWORD_VIRTUAL, { 0, 1, 1, 0, 1 } },
- { "void", KEYWORD_VOID, { 1, 1, 1, 1, 1 } },
- { "volatile", KEYWORD_VOLATILE, { 1, 1, 1, 1, 0 } },
- { "wchar_t", KEYWORD_WCHAR_T, { 1, 1, 1, 0, 0 } },
- { "while", KEYWORD_WHILE, { 1, 1, 1, 1, 0 } }
+ /* C++ YCP */
+ /* ANSI C | C# Java | */
+ /* | | | | Vera */
+ /* keyword keyword ID | | | | | | */
+ { "__attribute__", KEYWORD_ATTRIBUTE, { 1, 1, 1, 0, 0, 0 } },
+ { "abstract", KEYWORD_ABSTRACT, { 0, 0, 1, 1, 0, 0 } },
+ { "any", KEYWORD_ANY, { 0, 0, 0, 0, 0, 1 } },
+ { "bad_state", KEYWORD_BAD_STATE, { 0, 0, 0, 0, 1, 0 } },
+ { "bad_trans", KEYWORD_BAD_TRANS, { 0, 0, 0, 0, 1, 0 } },
+ { "bind", KEYWORD_BIND, { 0, 0, 0, 0, 1, 0 } },
+ { "bind_var", KEYWORD_BIND_VAR, { 0, 0, 0, 0, 1, 0 } },
+ { "bit", KEYWORD_BIT, { 0, 0, 0, 0, 1, 0 } },
+ { "block", KEYWORD_BLOCK, { 0, 0, 0, 0, 0, 1 } },
+ { "boolean", KEYWORD_BOOLEAN, { 0, 0, 0, 1, 0, 1 } },
+ { "byte", KEYWORD_BYTE, { 0, 0, 0, 1, 0, 0 } },
+ { "byteblock", KEYWORD_BYTEBLOCK, { 0, 0, 0, 0, 0, 1 } },
+ { "case", KEYWORD_CASE, { 1, 1, 1, 1, 0, 0 } },
+ { "catch", KEYWORD_CATCH, { 0, 1, 1, 0, 0, 0 } },
+ { "char", KEYWORD_CHAR, { 1, 1, 1, 1, 0, 0 } },
+ { "class", KEYWORD_CLASS, { 0, 1, 1, 1, 1, 0 } },
+ { "const", KEYWORD_CONST, { 1, 1, 1, 1, 0, 0 } },
+ { "constraint", KEYWORD_CONSTRAINT, { 0, 0, 0, 0, 1, 0 } },
+ { "coverage_block", KEYWORD_COVERAGE_BLOCK, { 0, 0, 0, 0, 1, 0 } },
+ { "coverage_def", KEYWORD_COVERAGE_DEF, { 0, 0, 0, 0, 1, 0 } },
+ { "declaration", KEYWORD_DECLARATION, { 0, 0, 0, 0, 0, 1 } },
+ { "do", KEYWORD_DO, { 1, 1, 1, 1, 0, 1 } },
+ { "default", KEYWORD_DEFAULT, { 1, 1, 1, 1, 0, 0 } },
+ { "delegate", KEYWORD_DELEGATE, { 0, 0, 1, 0, 0, 0 } },
+ { "delete", KEYWORD_DELETE, { 0, 1, 0, 0, 0, 0 } },
+ { "double", KEYWORD_DOUBLE, { 1, 1, 1, 1, 0, 0 } },
+ { "else", KEYWORD_ELSE, { 1, 1, 0, 1, 0, 1 } },
+ { "enum", KEYWORD_ENUM, { 1, 1, 1, 0, 1, 1 } },
+ { "event", KEYWORD_EVENT, { 0, 0, 1, 0, 1, 0 } },
+ { "explicit", KEYWORD_EXPLICIT, { 0, 1, 1, 0, 0, 0 } },
+ { "expression", KEYWORD_EXPRESSION, { 0, 0, 0, 0, 0, 1 } },
+ { "extends", KEYWORD_EXTENDS, { 0, 0, 0, 1, 1, 0 } },
+ { "extern", KEYWORD_EXTERN, { 1, 1, 1, 0, 1, 0 } },
+ { "final", KEYWORD_FINAL, { 0, 0, 0, 1, 0, 1 } },
+ { "float", KEYWORD_FLOAT, { 1, 1, 1, 1, 0, 1 } },
+ { "for", KEYWORD_FOR, { 1, 1, 1, 1, 0, 0 } },
+ { "friend", KEYWORD_FRIEND, { 0, 1, 0, 0, 0, 0 } },
+ { "function", KEYWORD_FUNCTION, { 0, 0, 0, 0, 1, 0 } },
+ { "goto", KEYWORD_GOTO, { 1, 1, 1, 1, 0, 0 } },
+ { "if", KEYWORD_IF, { 1, 1, 1, 1, 0, 1 } },
+ { "implements", KEYWORD_IMPLEMENTS, { 0, 0, 0, 1, 0, 0 } },
+ { "import", KEYWORD_IMPORT, { 0, 0, 0, 1, 0, 1 } },
+ { "inline", KEYWORD_INLINE, { 0, 1, 0, 0, 0, 0 } },
+ { "inout", KEYWORD_INOUT, { 0, 0, 0, 0, 1, 0 } },
+ { "input", KEYWORD_INPUT, { 0, 0, 0, 0, 1, 0 } },
+ { "int", KEYWORD_INT, { 1, 1, 1, 1, 0, 0 } },
+ { "integer", KEYWORD_INTEGER, { 0, 0, 0, 0, 1, 1 } },
+ { "interface", KEYWORD_INTERFACE, { 0, 0, 1, 1, 1, 0 } },
+ { "internal", KEYWORD_INTERNAL, { 0, 0, 1, 0, 0, 0 } },
+ { "list", KEYWORD_LIST, { 0, 0, 0, 0, 0, 1 } },
+ { "local", KEYWORD_LOCAL, { 0, 0, 0, 0, 1, 0 } },
+ { "locale", KEYWORD_LOCALE, { 0, 0, 0, 0, 0, 1 } },
+ { "long", KEYWORD_LONG, { 1, 1, 1, 1, 0, 0 } },
+ { "m_bad_state", KEYWORD_M_BAD_STATE, { 0, 0, 0, 0, 1, 0 } },
+ { "m_bad_trans", KEYWORD_M_BAD_TRANS, { 0, 0, 0, 0, 1, 0 } },
+ { "m_state", KEYWORD_M_STATE, { 0, 0, 0, 0, 1, 0 } },
+ { "m_trans", KEYWORD_M_TRANS, { 0, 0, 0, 0, 1, 0 } },
+ { "map", KEYWORD_MAP, { 0, 0, 0, 0, 0, 1 } },
+ { "mutable", KEYWORD_MUTABLE, { 0, 1, 0, 0, 0, 0 } },
+ { "namespace", KEYWORD_NAMESPACE, { 0, 1, 1, 0, 0, 0 } },
+ { "native", KEYWORD_NATIVE, { 0, 0, 0, 1, 0, 0 } },
+ { "new", KEYWORD_NEW, { 0, 1, 1, 1, 0, 0 } },
+ { "newcov", KEYWORD_NEWCOV, { 0, 0, 0, 0, 1, 0 } },
+ { "operator", KEYWORD_OPERATOR, { 0, 1, 1, 0, 0, 0 } },
+ { "output", KEYWORD_OUTPUT, { 0, 0, 0, 0, 1, 0 } },
+ { "overload", KEYWORD_OVERLOAD, { 0, 1, 0, 0, 0, 0 } },
+ { "override", KEYWORD_OVERRIDE, { 0, 0, 1, 0, 0, 0 } },
+ { "package", KEYWORD_PACKAGE, { 0, 0, 0, 1, 0, 0 } },
+ { "packed", KEYWORD_PACKED, { 0, 0, 0, 0, 1, 0 } },
+ { "path", KEYWORD_PATH, { 0, 0, 0, 0, 0, 1 } },
+ { "port", KEYWORD_PORT, { 0, 0, 0, 0, 1, 0 } },
+ { "private", KEYWORD_PRIVATE, { 0, 1, 1, 1, 0, 0 } },
+ { "program", KEYWORD_PROGRAM, { 0, 0, 0, 0, 1, 0 } },
+ { "protected", KEYWORD_PROTECTED, { 0, 1, 1, 1, 1, 0 } },
+ { "public", KEYWORD_PUBLIC, { 0, 1, 1, 1, 1, 0 } },
+ { "repeat", KEYWORD_REPEAT, { 0, 0, 0, 0, 0, 1 } },
+ { "register", KEYWORD_REGISTER, { 1, 1, 0, 0, 0, 0 } },
+ { "return", KEYWORD_RETURN, { 1, 1, 1, 1, 0, 1 } },
+ { "shadow", KEYWORD_SHADOW, { 0, 0, 0, 0, 1, 0 } },
+ { "short", KEYWORD_SHORT, { 1, 1, 1, 1, 0, 0 } },
+ { "signed", KEYWORD_SIGNED, { 1, 1, 0, 0, 0, 0 } },
+ { "state", KEYWORD_STATE, { 0, 0, 0, 0, 1, 0 } },
+ { "static", KEYWORD_STATIC, { 1, 1, 1, 1, 1, 0 } },
+ { "string", KEYWORD_STRING, { 0, 0, 1, 0, 1, 1 } },
+ { "struct", KEYWORD_STRUCT, { 1, 1, 1, 0, 0, 0 } },
+ { "switch", KEYWORD_SWITCH, { 1, 1, 1, 1, 0, 0 } },
+ { "synchronized", KEYWORD_SYNCHRONIZED, { 0, 0, 0, 1, 0, 0 } },
+ { "symbol", KEYWORD_SYMBOL, { 0, 0, 0, 0, 0, 1 } },
+ { "task", KEYWORD_TASK, { 0, 0, 0, 0, 1, 0 } },
+ { "template", KEYWORD_TEMPLATE, { 0, 1, 0, 0, 0, 0 } },
+ { "term", KEYWORD_TERM, { 0, 0, 0, 0, 0, 1 } },
+ { "this", KEYWORD_THIS, { 0, 1, 1, 1, 0, 0 } },
+ { "throw", KEYWORD_THROW, { 0, 1, 1, 1, 0, 0 } },
+ { "throws", KEYWORD_THROWS, { 0, 0, 0, 1, 0, 0 } },
+ { "trans", KEYWORD_TRANS, { 0, 0, 0, 0, 1, 0 } },
+ { "transition", KEYWORD_TRANSITION, { 0, 0, 0, 0, 1, 0 } },
+ { "transient", KEYWORD_TRANSIENT, { 0, 0, 0, 1, 0, 0 } },
+ { "try", KEYWORD_TRY, { 0, 1, 1, 0, 0, 0 } },
+ { "typedef", KEYWORD_TYPEDEF, { 1, 1, 1, 0, 1, 0 } },
+ { "typename", KEYWORD_TYPENAME, { 0, 1, 0, 0, 0, 0 } },
+ { "uint", KEYWORD_UINT, { 0, 0, 1, 0, 0, 0 } },
+ { "ulong", KEYWORD_ULONG, { 0, 0, 1, 0, 0, 0 } },
+ { "union", KEYWORD_UNION, { 1, 1, 0, 0, 0, 0 } },
+ { "unsigned", KEYWORD_UNSIGNED, { 1, 1, 1, 0, 0, 0 } },
+ { "until", KEYWORD_UNTIL, { 0, 0, 0, 0, 0, 1 } },
+ { "ushort", KEYWORD_USHORT, { 0, 0, 1, 0, 0, 0 } },
+ { "using", KEYWORD_USING, { 0, 1, 1, 0, 0, 0 } },
+ { "virtual", KEYWORD_VIRTUAL, { 0, 1, 1, 0, 1, 0 } },
+ { "void", KEYWORD_VOID, { 1, 1, 1, 1, 1, 1 } },
+ { "volatile", KEYWORD_VOLATILE, { 1, 1, 1, 1, 0, 0 } },
+ { "wchar_t", KEYWORD_WCHAR_T, { 1, 1, 1, 0, 0, 0 } },
+ { "while", KEYWORD_WHILE, { 1, 1, 1, 1, 0, 1 } }
};
/*
@@ -877,6 +911,21 @@
return result;
}
+static ycpKind ycpTagKind (const tagType type)
+{
+ ycpKind result = YK_UNDEFINED;
+ switch (type)
+ {
+ case TAG_FUNCTION: result = YK_FUNCTION; break;
+ case TAG_PROTOTYPE: result = YK_PROTOTYPE; break;
+ case TAG_LOCAL: result = YK_LOCAL; break;
+ case TAG_VARIABLE: result = YK_VARIABLE; break;
+
+ default: Assert ("Bad YCP tag type" == NULL); break;
+ }
+ return result;
+}
+
static const char *tagName (const tagType type)
{
const char* result;
@@ -886,6 +935,8 @@
result = JavaKinds [javaTagKind (type)].name;
else if (isLanguage (Lang_vera))
result = VeraKinds [veraTagKind (type)].name;
+ else if (isLanguage (Lang_ycp))
+ result = YCPKinds [ycpTagKind (type)].name;
else
result = CKinds [cTagKind (type)].name;
return result;
@@ -900,6 +951,8 @@
result = JavaKinds [javaTagKind (type)].letter;
else if (isLanguage (Lang_vera))
result = VeraKinds [veraTagKind (type)].letter;
+ else if (isLanguage (Lang_ycp))
+ result = YCPKinds [ycpTagKind (type)].letter;
else
result = CKinds [cTagKind (type)].letter;
return result;
@@ -955,7 +1008,8 @@
static void addContextSeparator (vString *const scope)
{
- if (isLanguage (Lang_c) || isLanguage (Lang_cpp))
+ if (isLanguage (Lang_c) || isLanguage (Lang_cpp) ||
+ isLanguage (Lang_ycp))
vStringCatS (scope, "::");
else if (isLanguage (Lang_java) || isLanguage (Lang_csharp))
vStringCatS (scope, ".");
@@ -1690,9 +1744,11 @@
case KEYWORD_NONE: processName (st); break;
case KEYWORD_ABSTRACT: st->implementation = IMP_ABSTRACT; break;
+ case KEYWORD_ANY: st->declaration = DECL_BASE; break;
case KEYWORD_ATTRIBUTE: skipParens (); initToken (token); break;
case KEYWORD_BIND: st->declaration = DECL_BASE; break;
case KEYWORD_BIT: st->declaration = DECL_BASE; break;
+ case KEYWORD_BYTEBLOCK: st->declaration = DECL_BASE; break;
case KEYWORD_CATCH: skipParens (); skipBraces (); break;
case KEYWORD_CHAR: st->declaration = DECL_BASE; break;
case KEYWORD_CLASS: st->declaration = DECL_CLASS; break;
@@ -1711,11 +1767,15 @@
case KEYWORD_INT: st->declaration = DECL_BASE; break;
case KEYWORD_INTEGER: st->declaration = DECL_BASE; break;
case KEYWORD_INTERFACE: st->declaration = DECL_INTERFACE; break;
+ case KEYWORD_LIST: st->declaration = DECL_BASE; break;
case KEYWORD_LOCAL: setAccess (st, ACCESS_LOCAL); break;
+ case KEYWORD_LOCALE: st->declaration = DECL_BASE; break;
case KEYWORD_LONG: st->declaration = DECL_BASE; break;
+ case KEYWORD_MAP: st->declaration = DECL_BASE; break;
case KEYWORD_NAMESPACE: st->declaration = DECL_NAMESPACE; break;
case KEYWORD_OPERATOR: readOperator (st); break;
case KEYWORD_PACKAGE: readPackage (st); break;
+ case KEYWORD_PATH: st->declaration = DECL_BASE; break;
case KEYWORD_PRIVATE: setAccess (st, ACCESS_PRIVATE); break;
case KEYWORD_PROGRAM: st->declaration = DECL_PROGRAM; break;
case KEYWORD_PROTECTED: setAccess (st, ACCESS_PROTECTED); break;
@@ -1725,7 +1785,9 @@
case KEYWORD_SIGNED: st->declaration = DECL_BASE; break;
case KEYWORD_STRING: st->declaration = DECL_BASE; break;
case KEYWORD_STRUCT: st->declaration = DECL_STRUCT; break;
+ case KEYWORD_SYMBOL: st->declaration = DECL_BASE; break;
case KEYWORD_TASK: st->declaration = DECL_TASK; break;
+ case KEYWORD_TERM: st->declaration = DECL_BASE; break;
case KEYWORD_THROWS: discardTypeList (token); break;
case KEYWORD_UNION: st->declaration = DECL_UNION; break;
case KEYWORD_UNSIGNED: st->declaration = DECL_BASE; break;
@@ -1764,7 +1826,9 @@
case KEYWORD_FOR:
case KEYWORD_IF:
+ case KEYWORD_REPEAT:
case KEYWORD_SWITCH:
+ case KEYWORD_UNTIL:
case KEYWORD_WHILE:
{
int c = skipToNonWhite ();
@@ -2253,7 +2317,8 @@
{
if (vStringLength (st->context->name) > 0)
{
- if (isLanguage (Lang_c) || isLanguage (Lang_cpp))
+ if (isLanguage (Lang_c) || isLanguage (Lang_cpp) ||
+ isLanguage (Lang_ycp))
vStringCatS (st->context->name, "::");
else if (isLanguage (Lang_java) || isLanguage (Lang_csharp))
vStringCatS (st->context->name, ".");
@@ -2569,7 +2634,12 @@
st->inFunction = TRUE;
/* fall through */
default:
- if (includeTag (TAG_LOCAL, FALSE))
+ if (isLanguage (Lang_ycp) && ! st->haveQualifyingName)
+ {
+ st->declaration = DECL_BLOCK;
+ createTags (nestLevel, st);
+ }
+ else if (includeTag (TAG_LOCAL, FALSE))
createTags (nestLevel, st);
else
skipToMatch ("{}");
@@ -2610,6 +2680,7 @@
}
}
else if (isContextualStatement (st) ||
+ st->declaration == DECL_BLOCK ||
st->declaration == DECL_NAMESPACE ||
st->declaration == DECL_PROGRAM)
{
@@ -2769,6 +2840,12 @@
buildKeywordHash (language, 4);
}
+static void initializeYcpParser (const langType language)
+{
+ Lang_ycp = language;
+ buildKeywordHash (language, 5);
+}
+
extern parserDefinition* CParser (void)
{
static const char *const extensions [] = { "c", NULL };
@@ -2835,4 +2912,16 @@
return def;
}
+extern parserDefinition* YcpParser (void)
+{
+ static const char *const extensions [] = { "ycp", NULL };
+ parserDefinition* def = parserNew ("YCP");
+ def->kinds = YCPKinds;
+ def->kindCount = KIND_COUNT (YCPKinds);
+ def->extensions = extensions;
+ def->parser2 = findCTags;
+ def->initialize = initializeYcpParser;
+ return def;
+}
+
/* vi:set tabstop=4 shiftwidth=4 noexpandtab: */
--- parsers.h
+++ parsers.h
@@ -48,7 +48,8 @@
VeraParser, \
VerilogParser, \
VimParser, \
- YaccParser
+ YaccParser, \
+ YcpParser
#endif /* _PARSERS_H */
++++++ etags-17.14-gnuctags-allow-duplicates.diff -> etags-17.17.diff ++++++
--- ctags/etags-17.14-gnuctags-allow-duplicates.diff 2006-03-07 23:20:08.000000000 +0100
+++ ctags/etags-17.17.diff 2005-10-18 14:29:41.000000000 +0200
@@ -1,98 +1,152 @@
- etags.1 | 10 ++++++++--
- etags.c | 15 +++++++++++++--
- 2 files changed, 21 insertions(+), 4 deletions(-)
-
-Index: etags.1
-===================================================================
---- etags.1.orig 2005-12-05 17:08:37.000000000 +0100
-+++ etags.1 2005-12-07 14:11:24.000000000 +0100
-@@ -26,12 +26,12 @@ etags, gnuctags \- generate tag file for
+--- etags.1
++++ etags.1
+@@ -9,7 +9,7 @@
+ ..
+
+ .SH NAME
+-etags, ctags \- generate tag file for Emacs, vi
++etags, gnuctags \- generate tag file for Emacs, vi
+ .SH SYNOPSIS
+ .hy 0
+ .na
+@@ -26,7 +26,7 @@
[\|\-\-help\|] [\|\-\-version\|]
\fIfile\fP .\|.\|.
--\fBgnuctags\fP [\|\-aCdgImRVh\|] [\|\-BtTuvwx\|] [\|\-l \fIlanguage\fP\|]
-+\fBgnuctags\fP [\|\-aCdgImRVh\|] [\|\-ABtTuvwx\|] [\|\-l \fIlanguage\fP\|]
+-\fBctags\fP [\|\-aCdgImRVh\|] [\|\-BtTuvwx\|] [\|\-l \fIlanguage\fP\|]
++\fBgnuctags\fP [\|\-aCdgImRVh\|] [\|\-BtTuvwx\|] [\|\-l \fIlanguage\fP\|]
.if n .br
[\|\-o \fItagfile\fP\|] [\|\-r \fIregexp\fP\|]
[\|\-\-parse\-stdin=\fIfile\fP\|]
- .br
--[\|\-\-append\|] [\|\-\-backward\-search\|]
-+[\|\-\-allow\-duplicates\|] [\|\-\-append\|] [\|\-\-backward\-search\|]
- [\|\-\-cxref\|] [\|\-\-defines\|] [\|\-\-forward\-search\|]
- [\|\-\-globals\|] [\|\-\-ignore\-indentation\|]
- [\|\-\-language=\fIlanguage\fP\|] [\|\-\-members\|]
-@@ -75,6 +75,12 @@ by gnuctags;
+@@ -46,7 +46,7 @@
+ The \|\fBetags\fP\| program is used to create a tag table file, in a format
+ understood by
+ .BR emacs ( 1 )\c
+-\&; the \|\fBctags\fP\| program is used to create a similar table in a
++\&; the \|\fBgnuctags\fP\| program is used to create a similar table in a
+ format understood by
+ .BR vi ( 1 )\c
+ \&. Both forms of the program understand
+@@ -56,7 +56,7 @@
+ most assembler\-like syntaxes.
+ Both forms read the files specified on the command line, and write a tag
+ table (defaults: \fBTAGS\fP for \fBetags\fP, \fBtags\fP for
+-\fBctags\fP) in the current working directory.
++\fBgnuctags\fP) in the current working directory.
+ Files specified with relative file names will be recorded in the tag
+ table with file names relative to the directory where the tag table
+ resides. If the tag table is in /dev, however, the file names are made
+@@ -71,7 +71,7 @@
+ language, overriding guesses based on filename extensions.
+ .SH OPTIONS
+ Some options make sense only for the \fBvi\fP style tag files produced
+-by ctags;
++by gnuctags;
\fBetags\fP does not recognize them.
The programs accept unambiguous abbreviations for long option names.
.TP
-+.B \-A, \-\-allow\-duplicates
-+Create entries for duplicate tags. Some editors accept tags files with
-+entries for duplicate tags.
+@@ -85,7 +85,7 @@
+ the delimiter `\|\fB?\fP\|', to search \fIbackwards\fP through files.
+ The default is to use the delimiter `\|\fB/\fP\|', to search \fIforwards\fP
+ through files.
+-Only \fBctags\fP accepts this option.
++Only \fBgnuctags\fP accepts this option.
+ .TP
+ .B \-\-declarations
+ In C and derived languages, create tags for function declarations,
+@@ -94,24 +94,24 @@
+ .B \-d, \-\-defines
+ Create tag entries for C preprocessor constant definitions
+ and enum constants, too. Since this is the default behavior of
+-\fBetags\fP, only \fBctags\fP accepts this option.
++\fBetags\fP, only \fBgnuctags\fP accepts this option.
+ .TP
+ .B \-D, \-\-no\-defines
+ Do not create tag entries for C preprocessor constant definitions
+ and enum constants.
+ This may make the tags file much smaller if many header files are tagged.
+-Since this is the default behavior of \fBctags\fP, only \fBetags\fP
++Since this is the default behavior of \fBgnuctags\fP, only \fBetags\fP
+ accepts this option.
+ .TP
+ .B \-\-globals
+ Create tag entries for global variables in C, C++, Objective C, Java,
+ and Perl.
+-Since this is the default behavior of \fBetags\fP, only \fBctags\fP
+Since this is the default behavior of \fBetags\fP, only \fBgnuctags\fP
-+accepts this option.
-+.TP
- .B \-a, \-\-append
- Append to existing tag file. (For \fBvi\fP-format tag files, see also
- \fB\-\-update\fP.)
-Index: etags.c
-===================================================================
---- etags.c.orig 2005-09-28 10:17:48.000000000 +0200
-+++ etags.c 2005-12-07 14:39:03.000000000 +0100
-@@ -457,6 +457,7 @@ static char
- *midtk = "ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz$0123456789";
-
- static bool append_to_tagfile; /* -a: append to tags */
-+static bool allow_duplicates; /* -A: allow duplicate tags */
- /* The next four default to TRUE for etags, but to FALSE for ctags. */
- static bool typedefs; /* -t: create tags for C and Ada typedefs */
- static bool typedefs_or_cplusplus; /* -T: create tags for C typedefs, level */
-@@ -511,6 +512,7 @@ static struct option longopts[] =
- { "version", no_argument, NULL, 'V' },
-
- #if CTAGS /* Ctags options */
-+ { "allow-duplicates", no_argument, NULL, 'A' },
- { "backward-search", no_argument, NULL, 'B' },
- { "cxref", no_argument, NULL, 'x' },
- { "defines", no_argument, NULL, 'd' },
-@@ -889,6 +891,12 @@ linked with GNU getopt.");
- Absolute names are stored in the output file as they are.\n\
- Relative ones are stored relative to the output file's directory.\n");
-
-+ if (CTAGS)
-+ {
-+ puts ("-A, --allow-duplicates\n\
-+ Allow duplicate tag entries.");
-+ }
-+
- puts ("-a, --append\n\
- Append tag entries to existing tags file.");
-
-@@ -1197,7 +1205,7 @@ main (argc, argv)
- optstring += 1; /* remove the initial '-' */
- optstring = concat (optstring,
- "aCf:Il:o:SVhH",
-- (CTAGS) ? "BxdtTuvw" : "Di:");
-+ (CTAGS) ? "ABxdtTuvw" : "Di:");
+ accepts this option.
+ .TP
+ .B \-\-no\-globals
+ Do not tag global variables. Typically this reduces the file size by
+-one fourth. Since this is the default behavior of \fBctags\fP, only
++one fourth. Since this is the default behavior of \fBgnuctags\fP, only
+ \fBetags\fP accepts this option.
+ .TP
+ \fB\-i\fP \fIfile\fP, \fB\-\-include=\fIfile\fP
+@@ -168,7 +168,7 @@
+ where \fItagregexp\fP is used to match the tag. It should not match
+ useless characters. If the match is such that more characters than
+ needed are unavoidably matched by \fItagregexp\fP, it may be useful to
+-add a \fInameregexp\fP, to narrow down the tag scope. \fBctags\fP
++add a \fInameregexp\fP, to narrow down the tag scope. \fBgnuctags\fP
+ ignores regexps without a \fInameregexp\fP. The syntax of regexps is
+ the same as in emacs. The following character escape sequences are
+ supported: \\a, \\b, \\d, \\e, \\f, \\n, \\r, \\t, \\v, which
+@@ -224,7 +224,7 @@
- while ((opt = getopt_long (argc, argv, optstring, longopts, NULL)) != EOF)
- switch (opt)
-@@ -1281,6 +1289,7 @@ main (argc, argv)
- case 'i': included_files[nincluded_files++] = optarg; break;
+ .br
+ A regexp can be preceded by {\fIlang\fP}, thus restricting it to match
+-lines of files of the specified language. Use \fBetags --help\fP to obtain
++lines of files of the specified language. Use \fBetags \-\-help\fP to obtain
+ a list of the recognised languages. This feature is particularly useful inside
+ \fBregex files\fP. A regex file contains one regex per line. Empty lines,
+ and those lines beginning with space or tab are ignored. Lines beginning
+@@ -243,12 +243,12 @@
+ .TP
+ .B \-t, \-\-typedefs
+ Record typedefs in C code as tags. Since this is the default behavior
+-of \fBetags\fP, only \fBctags\fP accepts this option.
++of \fBetags\fP, only \fBgnuctags\fP accepts this option.
+ .TP
+ .B \-T, \-\-typedefs\-and\-c++
+ Generate tag entries for typedefs, struct, enum, and union tags, and
+ C++ member functions. Since this is the default behavior
+-of \fBetags\fP, only \fBctags\fP accepts this option.
++of \fBetags\fP, only \fBgnuctags\fP accepts this option.
+ .TP
+ .B \-u, \-\-update
+ Update tag entries for \fIfiles\fP specified on command line, leaving
+@@ -256,11 +256,11 @@
+ by deleting the existing entries for the given files and then
+ rewriting the new entries at the end of the tags file. It is often
+ faster to simply rebuild the entire tag file than to use this.
+-Only \fBctags\fP accepts this option.
++Only \fBgnuctags\fP accepts this option.
+ .TP
+ .B \-v, \-\-vgrind
+ Instead of generating a tag file, write index (in \fBvgrind\fP format)
+-to standard output. Only \fBctags\fP accepts this option.
++to standard output. Only \fBgnuctags\fP accepts this option.
+ .TP
+ .B \-w, \-\-no\-warn
+ Suppress warning messages about duplicate entries. The \fBetags\fP
+@@ -269,7 +269,7 @@
+ .TP
+ .B \-x, \-\-cxref
+ Instead of generating a tag file, write a cross reference (in
+-\fBcxref\fP format) to standard output. Only \fBctags\fP accepts this option.
++\fBcxref\fP format) to standard output. Only \fBgnuctags\fP accepts this option.
+ .TP
+ .B \-h, \-H, \-\-help
+ Print usage information. Followed by one or more \-\-language=LANG
+@@ -283,8 +283,10 @@
+ `\|\fBemacs\fP\|' entry in \fBinfo\fP; \fIGNU Emacs Manual\fP, Richard
+ Stallman.
+ .br
++.BR ctags ( 1 ),
+ .BR cxref ( 1 ),
+ .BR emacs ( 1 ),
++.BR gnuctags ( 1 ),
+ .BR vgrind ( 1 ),
+ .BR vi ( 1 ).
- /* Ctags options. */
-+ case 'A': allow_duplicates = TRUE; break;
- case 'B': searchar = '?'; break;
- case 'd': constantypedefs = TRUE; break;
- case 't': typedefs = TRUE; break;
-@@ -2193,8 +2202,10 @@ add_node (np, cur_node_p)
- /*
- * If this tag name matches an existing one, then
- * do not add the node, but maybe print a warning.
-+ * If duplicates are allowed, continue looking for
-+ * a node with a branch where we can insert this node.
- */
-- if (!dif)
-+ if (!allow_duplicates && !dif)
- {
- if (np->fdp == cur_node->fdp)
- {
++++++ etags-17.14.tar.gz -> etags-17.17.tar.gz ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/etags-17.14/etags.1 new/etags-17.17/etags.1
--- old/etags-17.14/etags.1 2005-09-28 10:17:48.000000000 +0200
+++ new/etags-17.17/etags.1 2006-02-06 14:24:21.000000000 +0100
@@ -1,5 +1,5 @@
.\" Copyright (C) 1992, 2001, 2002, 2003, 2004,
-.\" 2005 Free Software Foundation, Inc.
+.\" 2005, 2006 Free Software Foundation, Inc.
.\" See section COPYING for conditions for redistribution
.TH etags 1 "23nov2001" "GNU Tools" "GNU Tools"
.de BP
@@ -292,7 +292,7 @@
Copyright
.if t \(co
.if n (c)
-1999, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+1999, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
.PP
Permission is granted to make and distribute verbatim copies of this
document provided the copyright notice and this permission notice are
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/etags-17.14/etags.c new/etags-17.17/etags.c
--- old/etags-17.14/etags.c 2005-09-28 10:17:48.000000000 +0200
+++ new/etags-17.17/etags.c 2006-05-03 10:23:10.000000000 +0200
@@ -1,7 +1,7 @@
/* Tags file maker to go with GNU Emacs -*- coding: latin-1 -*-
Copyright (C) 1984, 1987, 1988, 1989, 1993, 1994, 1995,
1998, 1999, 2000, 2001, 2002, 2003, 2004,
- 2005 Free Software Foundation, Inc. and Ken Arnold
+ 2005, 2006 Free Software Foundation, Inc. and Ken Arnold
This file is not considered part of GNU Emacs.
@@ -41,7 +41,7 @@
* configuration file containing regexp definitions for etags.
*/
-char pot_etags_version[] = "@(#) pot revision number is 17.14";
+char pot_etags_version[] = "@(#) pot revision number is 17.17";
#define TRUE 1
#define FALSE 0
@@ -477,6 +477,11 @@
static bool ignoreindent; /* -I: ignore indentation in C */
static bool packages_only; /* --packages-only: in Ada, only tag packages*/
+/* STDIN is defined in LynxOS system headers */
+#ifdef STDIN
+# undef STDIN
+#endif
+
#define STDIN 0x1001 /* returned by getopt_long on --parse-stdin */
static bool parsing_stdin; /* --parse-stdin used */
@@ -853,7 +858,7 @@
print_version ()
{
printf ("%s (%s %s)\n", (CTAGS) ? "ctags" : "etags", EMACS_NAME, VERSION);
- puts ("Copyright (C) 2002 Free Software Foundation, Inc. and Ken Arnold");
+ puts ("Copyright (C) 2006 Free Software Foundation, Inc. and Ken Arnold");
puts ("This program is distributed under the same terms as Emacs");
exit (EXIT_SUCCESS);
@@ -989,9 +994,9 @@
if (CTAGS)
{
puts ("-v, --vgrind\n\
- Generates an index of items intended for human consumption,\n\
- similar to the output of vgrind. The index is sorted, and\n\
- gives the page number of each item.");
+ Print on the standard output an index of items intended for\n\
+ human consumption, similar to the output of vgrind. The index\n\
+ is sorted, and gives the page number of each item.");
puts ("-w, --no-warn\n\
Suppress warning messages about entries defined in multiple\n\
files.");
@@ -1423,7 +1428,8 @@
if (!CTAGS || cxref_style)
{
- put_entries (nodehead); /* write the remaining tags (ETAGS) */
+ /* Write the remaining tags to tagf (ETAGS) or stdout (CXREF). */
+ put_entries (nodehead);
free_tree (nodehead);
nodehead = NULL;
if (!CTAGS)
@@ -1437,10 +1443,11 @@
while (nincluded_files-- > 0)
fprintf (tagf, "\f\n%s,include\n", *included_files++);
+
+ if (fclose (tagf) == EOF)
+ pfatal (tagfile);
}
- if (fclose (tagf) == EOF)
- pfatal (tagfile);
exit (EXIT_SUCCESS);
}
@@ -4536,6 +4543,7 @@
lb.buffer, cp - lb.buffer + 1, lineno, linecharno);
}
}
+ free (package);
}
@@ -5434,6 +5442,8 @@
last[len] = '\0';
}
}
+ if (last != NULL)
+ free (last);
}
@@ -5590,7 +5600,11 @@
else if (cp[0] == '-') /* attribute, e.g. "-define" */
{
erlang_attribute (cp);
- last = NULL;
+ if (last != NULL)
+ {
+ free (last);
+ last = NULL;
+ }
}
else if ((len = erlang_func (cp, last)) > 0)
{
@@ -5607,6 +5621,8 @@
last[len] = '\0';
}
}
+ if (last != NULL)
+ free (last);
}
@@ -6880,7 +6896,6 @@
/*
* Local Variables:
- * c-indentation-style: gnu
* indent-tabs-mode: t
* tab-width: 8
* fill-column: 79
++++++ etags-gnuctags-allow-duplicates.diff ++++++
etags.1 | 10 ++++++++--
etags.c | 15 +++++++++++++--
2 files changed, 21 insertions(+), 4 deletions(-)
Index: etags.1
===================================================================
--- etags.1.orig 2005-12-05 17:08:37.000000000 +0100
+++ etags.1 2005-12-07 14:11:24.000000000 +0100
@@ -26,12 +26,12 @@ etags, gnuctags \- generate tag file for
[\|\-\-help\|] [\|\-\-version\|]
\fIfile\fP .\|.\|.
-\fBgnuctags\fP [\|\-aCdgImRVh\|] [\|\-BtTuvwx\|] [\|\-l \fIlanguage\fP\|]
+\fBgnuctags\fP [\|\-aCdgImRVh\|] [\|\-ABtTuvwx\|] [\|\-l \fIlanguage\fP\|]
.if n .br
[\|\-o \fItagfile\fP\|] [\|\-r \fIregexp\fP\|]
[\|\-\-parse\-stdin=\fIfile\fP\|]
.br
-[\|\-\-append\|] [\|\-\-backward\-search\|]
+[\|\-\-allow\-duplicates\|] [\|\-\-append\|] [\|\-\-backward\-search\|]
[\|\-\-cxref\|] [\|\-\-defines\|] [\|\-\-forward\-search\|]
[\|\-\-globals\|] [\|\-\-ignore\-indentation\|]
[\|\-\-language=\fIlanguage\fP\|] [\|\-\-members\|]
@@ -75,6 +75,12 @@ by gnuctags;
\fBetags\fP does not recognize them.
The programs accept unambiguous abbreviations for long option names.
.TP
+.B \-A, \-\-allow\-duplicates
+Create entries for duplicate tags. Some editors accept tags files with
+entries for duplicate tags.
+Since this is the default behavior of \fBetags\fP, only \fBgnuctags\fP
+accepts this option.
+.TP
.B \-a, \-\-append
Append to existing tag file. (For \fBvi\fP-format tag files, see also
\fB\-\-update\fP.)
Index: etags.c
===================================================================
--- etags.c.orig 2005-09-28 10:17:48.000000000 +0200
+++ etags.c 2005-12-07 14:39:03.000000000 +0100
@@ -457,6 +457,7 @@ static char
*midtk = "ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz$0123456789";
static bool append_to_tagfile; /* -a: append to tags */
+static bool allow_duplicates; /* -A: allow duplicate tags */
/* The next four default to TRUE for etags, but to FALSE for ctags. */
static bool typedefs; /* -t: create tags for C and Ada typedefs */
static bool typedefs_or_cplusplus; /* -T: create tags for C typedefs, level */
@@ -511,6 +512,7 @@ static struct option longopts[] =
{ "version", no_argument, NULL, 'V' },
#if CTAGS /* Ctags options */
+ { "allow-duplicates", no_argument, NULL, 'A' },
{ "backward-search", no_argument, NULL, 'B' },
{ "cxref", no_argument, NULL, 'x' },
{ "defines", no_argument, NULL, 'd' },
@@ -889,6 +891,12 @@ linked with GNU getopt.");
Absolute names are stored in the output file as they are.\n\
Relative ones are stored relative to the output file's directory.\n");
+ if (CTAGS)
+ {
+ puts ("-A, --allow-duplicates\n\
+ Allow duplicate tag entries.");
+ }
+
puts ("-a, --append\n\
Append tag entries to existing tags file.");
@@ -1197,7 +1205,7 @@ main (argc, argv)
optstring += 1; /* remove the initial '-' */
optstring = concat (optstring,
"aCf:Il:o:SVhH",
- (CTAGS) ? "BxdtTuvw" : "Di:");
+ (CTAGS) ? "ABxdtTuvw" : "Di:");
while ((opt = getopt_long (argc, argv, optstring, longopts, NULL)) != EOF)
switch (opt)
@@ -1281,6 +1289,7 @@ main (argc, argv)
case 'i': included_files[nincluded_files++] = optarg; break;
/* Ctags options. */
+ case 'A': allow_duplicates = TRUE; break;
case 'B': searchar = '?'; break;
case 'd': constantypedefs = TRUE; break;
case 't': typedefs = TRUE; break;
@@ -2193,8 +2202,10 @@ add_node (np, cur_node_p)
/*
* If this tag name matches an existing one, then
* do not add the node, but maybe print a warning.
+ * If duplicates are allowed, continue looking for
+ * a node with a branch where we can insert this node.
*/
- if (!dif)
+ if (!allow_duplicates && !dif)
{
if (np->fdp == cur_node->fdp)
{
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
1
0
Hello community,
here is the log from the commit of package gstreamer010-plugins-good
checked in at Wed May 31 03:03:20 CEST 2006.
--------
--- GNOME/gstreamer010-plugins-good/gstreamer010-plugins-good.changes 2006-04-10 15:21:06.000000000 +0200
+++ gstreamer010-plugins-good/gstreamer010-plugins-good.changes 2006-05-31 02:57:52.000000000 +0200
@@ -1,0 +2,6 @@
+Wed May 31 02:56:30 CEST 2006 - hpj(a)suse.de
+
+- Added backported ID3v2 muxer element, required for Banshee
+ tagging. Fixes part of Novell bug #132801.
+
+-------------------------------------------------------------------
New:
----
gst-plugins-good-0.10.2-taglib-backport.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gstreamer010-plugins-good.spec ++++++
--- /var/tmp/diff_new_pack.zwKaZG/_old 2006-05-31 03:02:07.000000000 +0200
+++ /var/tmp/diff_new_pack.zwKaZG/_new 2006-05-31 03:02:07.000000000 +0200
@@ -12,7 +12,7 @@
Name: gstreamer010-plugins-good
#!BuildIgnore: gstreamer
-BuildRequires: aalib-devel cairo-devel esound-devel flac-devel gconf2-devel gstreamer010-plugins-base-devel gtkdoc ladspa libavc1394-devel libcaca libcaca-devel libcdio-devel libdv-devel libjpeg-devel liboil-devel libshout-devel libtheora-devel libvorbis-devel pyxml sgml-skel speex-devel
+BuildRequires: aalib-devel cairo-devel esound-devel flac-devel gcc-c++ gconf2-devel gstreamer010-plugins-base-devel gtkdoc ladspa libavc1394-devel libcaca libcaca-devel libcdio-devel libdv-devel libjpeg-devel liboil-devel libshout-devel libtheora-devel libvorbis-devel pyxml sgml-skel speex-devel taglib-devel
%ifarch %ix86 ppc x86_64
BuildRequires: valgrind
%endif
@@ -21,7 +21,7 @@
Group: System/GUI/GNOME
Autoreqprov: on
Version: 0.10.2
-Release: 9
+Release: 16
%define gst_branch 0.10
Source: %{_name}-%{version}.tar.bz2
URL: http://gstreamer.freedesktop.org/
@@ -33,6 +33,7 @@
%endif
PreReq: filesystem
Requires: gstreamer010 = %(rpm -q --queryformat '%{VERSION}' gstreamer010)
+Patch1: gst-plugins-good-0.10.2-taglib-backport.patch
%description
GStreamer is a streaming media framework, based on graphs of filters
@@ -158,6 +159,7 @@
%define _includedir %_prefix/include
%prep
%setup -n %{_name}-%{version}
+%patch1 -p1
%build
%{?suse_update_config:%{suse_update_config}}
@@ -224,6 +226,7 @@
%{_libdir}/gstreamer-%{gst_branch}/libgstpng.so
%{_libdir}/gstreamer-%{gst_branch}/libgstrtp.so
%{_libdir}/gstreamer-%{gst_branch}/libgstrtsp.so
+%{_libdir}/gstreamer-%{gst_branch}/libgsttaglib.so
%{_libdir}/gstreamer-%{gst_branch}/libgstudp.so
%{_libdir}/gstreamer-%{gst_branch}/libgstvideoflip.so
%{_libdir}/gstreamer-%{gst_branch}/libgstvideomixer.so
@@ -244,6 +247,9 @@
%{_libdir}/gstreamer-%{gst_branch}/libgstvideobox.so
%changelog -n gstreamer010-plugins-good
+* Wed May 31 2006 - hpj(a)suse.de
+- Added backported ID3v2 muxer element, required for Banshee
+ tagging. Fixes part of Novell bug #132801.
* Mon Apr 10 2006 - jpr(a)suse.de
- Move some more plugins to and extras package
* Fri Apr 07 2006 - jpr(a)suse.de
++++++ gst-plugins-good-0.10.2-taglib-backport.patch ++++++
++++ 969 lines (skipped)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
1
0
Hello community,
here is the log from the commit of package exim
checked in at Wed May 31 03:01:59 CEST 2006.
--------
--- exim/exim.changes 2006-03-08 17:17:42.000000000 +0100
+++ exim/exim.changes 2006-05-30 16:15:09.000000000 +0200
@@ -1,0 +2,34 @@
+Tue May 30 16:07:30 CEST 2006 - poeml(a)suse.de
+
+- upstream 4.62
+ . The ${readsocket expansion item now supports Internet domain sockets as well
+ as Unix domain sockets.
+ . If a redirect router sets up file or pipe deliveries for more than one
+ incoming address, and the relevant transport has batch_max set greater than
+ one, a batch delivery now occurs.
+ . The appendfile transport has a new option called maildirfolder_create_regex.
+ . An option called disable_ipv6, to disable the use of IPv6 completely.
+ . An increase in the number of ACL variables to 20 of each type.
+ . A change to use $auth1, $auth2, and $auth3 in authenticators instead of $1,
+ $2, $3, (though those are still set) because the numeric variables get used
+ for other things in complicated expansions.
+ . The default for rfc1413_query_timeout has been changed from 30s to 5s.
+ . It is possible to use setclassresources() on some BSD OS to control the
+ resources used in pipe deliveries.
+ . A new ACL modifier called add_header, which can be used with any verb.
+ . More errors are detectable in retry rules.
+ . Support for SQLite.
+ . Support for IGNOREQUOTA in LMTP.
+ . Extensions to the "submission mode" features.
+ . Support for Client SMTP Authorization (CSA).
+ . Support for ratelimiting hosts and users.
+ . New expansion items to help with the BATV "prvs" scheme.
+ . A "match_ip" condition, that matches an IP address against a list.
+ - numerous bug fixes and minor changes
+- add eximstats-html subpackage, which, if installed and enabled in
+ /etc/sysconfig/exim, puts HTML reports of the 'eximstats' log
+ analyzer into /srv/www/eximstats
+- try to adapt BuildRequires and suse specific rpm macros to build
+ on Fedora Core
+
+-------------------------------------------------------------------
Old:
----
exim-4.22-rfc1413_query_timeout.diff
exim-4.51-external-pcre.diff
exim-4.51.tar.bz2
New:
----
exim-4.60-external-pcre.diff
exim-4.62.tar.bz2
eximstats-html-update.py
eximstats.conf
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ exim.spec ++++++
--- /var/tmp/diff_new_pack.2lOt1S/_old 2006-05-31 02:59:51.000000000 +0200
+++ /var/tmp/diff_new_pack.2lOt1S/_new 2006-05-31 02:59:51.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package exim (Version 4.51)
+# spec file for package exim (Version 4.62)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -11,19 +11,24 @@
# norootforbuild
Name: exim
-BuildRequires: db-devel openldap2-devel pcre-devel tcpd-devel xorg-x11-devel
+BuildRequires: db-devel openldap2-devel pcre-devel
+%if %{?suse_version:1}%{?!suse_version:0}
+BuildRequires: tcpd-devel xorg-x11-devel
+%else
+BuildRequires: libXaw-devel libXext-devel libXt-devel openssl-devel tcp_wrappers xorg-x11-server-sdk
+%endif
URL: http://www.exim.org/
Conflicts: sendmail sendmail-tls postfix
License: GPL
Group: Productivity/Networking/Email/Servers
Autoreqprov: on
provides: smtp_daemon
-%if %suse_version > 800
+%if %{?suse_version:%suse_version}%{?!suse_version:0} > 800
Requires: logrotate
PreReq: %insserv_prereq %fillup_prereq /usr/sbin/useradd fileutils textutils
%endif
-Version: 4.51
-Release: 12
+Version: 4.62
+Release: 1
Summary: The Exim Mail Transfer Agent, a Replacement for sendmail
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source: exim-%{version}.tar.bz2
@@ -32,12 +37,17 @@
Source11: exim.rc
Source12: permissions.exim
Source20: http://www.logic.univie.ac.at/~ametzler/debian/exim4manpages/exim4-manpages…
+Source30: eximstats-html-update.py
+Source31: eximstats.conf
Patch: exim-4.12-tail.patch
-Patch1: exim-4.22-rfc1413_query_timeout.diff
-Patch2: exim-4.51-external-pcre.diff
+Patch2: exim-4.60-external-pcre.diff
%package -n eximon
Summary: Eximon, an graphical frontend to administer Exim's mail queue
Group: Productivity/Networking/Email/Servers
+%package -n eximstats-html
+Summary: Create HTML reports of exim logs
+Group: Productivity/Networking/Email/Servers
+Requires: perl-GD perl-GDGraph perl-GDTextUtil
%description
Exim is a mail transport agent (MTA) developed at the University of
@@ -67,12 +77,35 @@
--------
Philip Hazel <ph10(a)cus.cam.ac.uk>
+
+%description -n eximstats-html
+If this package is installed alongside the exim MTA, and you enable
+EXIM_REPORT_WEEKLY_HTML in /etc/sysconfig/exim, logrotate/cron will
+create HTML reports in /srv/www/eximstats.
+
+You can edit /etc/apache2/conf.d/eximstats.conf to configure your
+webserver for the reports.
+
+The script /usr/sbin/eximstats-html-update.py can create the reports
+for log files that were rotated in the past. (You would only run this
+once, if at all. The rest is done by logrotate / cron.)
+
+
+
+Authors:
+--------
+ Philip Hazel <ph10(a)cus.cam.ac.uk>
+
%prep
%setup -q
%patch
-%patch1 -p1
%patch2 -p1
bzcat %{S:30} | patch -p1
+# build with fPIE/pie on SUSE 10.0 or newer, or on any other platform
+%if %{?suse_version:%suse_version}%{?!suse_version:99999} > 930
+fPIE="-fPIE"
+pie="-pie"
+%endif
cat <<-EOF > Local/Makefile
# see src/EDITME for comments.
BIN_DIRECTORY=/usr/sbin
@@ -173,14 +206,14 @@
SUPPORT_MOVE_FROZEN_MESSAGES=yes
HAVE_IPV6=YES
- CFLAGS=$RPM_OPT_FLAGS -Wall -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DLDAP_DEPRECATED -fPIE
- EXTRALIBS=-ldl -L/usr/X11R6/%{_lib} -pie
+ CFLAGS=$RPM_OPT_FLAGS -Wall -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DLDAP_DEPRECATED $fPIE
+ EXTRALIBS=-ldl -L/usr/X11R6/%{_lib} $pie
EOF
touch Local/eximon.conf
rm -f doc/*.{orig,txt~}
%build
-%if %suse_version <= 800
+%if %{?suse_version:%suse_version}%{?!suse_version:99999} <= 800
/usr/sbin/useradd -o -g mail -u 8 -s /bin/false -c "Mailer daemon" -d /var/spool/clientmqueue mail 2> /dev/null || :
%endif
make
@@ -243,11 +276,17 @@
gzip -9 doc/*.txt
# since 10.0, the permissions file is packaged in the 'permissions' package
-%if %suse_version < 1000
-install -o root -g root -m 0755 -d $RPM_BUILD_ROOT/etc/permissions.d
-install -o root -g root -m 0644 $RPM_SOURCE_DIR/permissions.exim $RPM_BUILD_ROOT/etc/permissions.d/exim
+%if %{?suse_version:%suse_version}%{?!suse_version:99999} < 1000
+install -m 0755 -d $RPM_BUILD_ROOT/etc/permissions.d
+install -m 0644 $RPM_SOURCE_DIR/permissions.exim $RPM_BUILD_ROOT/etc/permissions.d/exim
%endif
-%if %suse_version <= 800
+# eximstats-html files
+mkdir -p $RPM_BUILD_ROOT/srv/www/eximstats
+mkdir -p $RPM_BUILD_ROOT/etc/apache2/conf.d/
+cp -p $RPM_SOURCE_DIR/eximstats.conf $RPM_BUILD_ROOT/etc/apache2/conf.d/
+install -m 0755 $RPM_SOURCE_DIR/eximstats-html-update.py $RPM_BUILD_ROOT/%{_sbindir}
+
+%if %{?suse_version:%suse_version}%{?!suse_version:99999} <= 800
%pre
/usr/sbin/useradd -o -g mail -u 8 -s /bin/false -c "Mailer daemon" -d /var/spool/clientmqueue mail 2> /dev/null || :
@@ -268,7 +307,7 @@
for i in var/log/exim/main.log var/log/exim/panic.log var/log/exim/reject.log; do
if ! test -e $i; then touch $i; chown mail:mail $i; chmod 640 $i ; fi
done
-%if %suse_version < 800
+%if %{?suse_version:%suse_version}%{?!suse_version:99999} < 800
echo "Updating /etc/rc.config..."
bin/cat > var/adm/fillup-templates/rc.config.exim <<-EOF
#
@@ -284,14 +323,14 @@
%{fillup_and_insserv exim}
%endif
exit 0
-%if %suse_version > 820
+%if %{?suse_version:%suse_version}%{?!suse_version:0} > 820
%preun
%stop_on_removal exim
%endif
%postun
-%if %suse_version > 820
+%if %{?suse_version:%suse_version}%{?!suse_version:0} > 820
%restart_on_update exim
%endif
%insserv_cleanup
@@ -322,7 +361,7 @@
%dir /etc/exim
%config /etc/init.d/exim
%config(noreplace) /etc/logrotate.d/exim
-%if %suse_version < 1000
+%if %{?suse_version:%suse_version}%{?!suse_version:99999} < 1000
%config(noreplace) /etc/permissions.d/exim
%endif
/usr/sbin/rcexim
@@ -340,7 +379,46 @@
/usr/X11R6/bin/eximon
/usr/X11R6/bin/eximon.bin
+%files -n eximstats-html
+%defattr(-,root,root)
+%attr(0750,root,www) /srv/www/eximstats
+/etc/apache2
+/etc/apache2/conf.d
+/etc/apache2/conf.d/eximstats.conf
+%{_sbindir}/eximstats-html-update.py
+
%changelog -n exim
+* Tue May 30 2006 - poeml(a)suse.de
+- upstream 4.62
+ . The ${readsocket expansion item now supports Internet domain sockets as well
+ as Unix domain sockets.
+ . If a redirect router sets up file or pipe deliveries for more than one
+ incoming address, and the relevant transport has batch_max set greater than
+ one, a batch delivery now occurs.
+ . The appendfile transport has a new option called maildirfolder_create_regex.
+ . An option called disable_ipv6, to disable the use of IPv6 completely.
+ . An increase in the number of ACL variables to 20 of each type.
+ . A change to use $auth1, $auth2, and $auth3 in authenticators instead of $1,
+ $2, $3, (though those are still set) because the numeric variables get used
+ for other things in complicated expansions.
+ . The default for rfc1413_query_timeout has been changed from 30s to 5s.
+ . It is possible to use setclassresources() on some BSD OS to control the
+ resources used in pipe deliveries.
+ . A new ACL modifier called add_header, which can be used with any verb.
+ . More errors are detectable in retry rules.
+ . Support for SQLite.
+ . Support for IGNOREQUOTA in LMTP.
+ . Extensions to the "submission mode" features.
+ . Support for Client SMTP Authorization (CSA).
+ . Support for ratelimiting hosts and users.
+ . New expansion items to help with the BATV "prvs" scheme.
+ . A "match_ip" condition, that matches an IP address against a list.
+- numerous bug fixes and minor changes
+- add eximstats-html subpackage, which, if installed and enabled in
+ /etc/sysconfig/exim, puts HTML reports of the 'eximstats' log
+ analyzer into /srv/www/eximstats
+- try to adapt BuildRequires and suse specific rpm macros to build
+ on Fedora Core
* Wed Mar 08 2006 - poeml(a)suse.de
- build as non-root user
* Wed Jan 25 2006 - mls(a)suse.de
++++++ exim-4.51-external-pcre.diff -> exim-4.60-external-pcre.diff ++++++
--- exim/exim-4.51-external-pcre.diff 2005-09-02 15:55:18.000000000 +0200
+++ exim/exim-4.60-external-pcre.diff 2006-04-28 17:20:04.000000000 +0200
@@ -1,12 +1,19 @@
-
-
-link exim against external pcre library
-
-
-diff -uNr exim-4.51.orig/OS/Makefile-Base exim-4.51/OS/Makefile-Base
---- exim-4.51.orig/OS/Makefile-Base 2005-05-04 13:35:39.000000000 +0200
-+++ exim-4.51/OS/Makefile-Base 2005-09-02 15:37:32.390490965 +0200
-@@ -96,7 +96,7 @@
+diff -uNr exim-4.60.orig/exim_monitor/em_hdr.h exim-4.60/exim_monitor/em_hdr.h
+--- exim-4.60.orig/exim_monitor/em_hdr.h 2005-11-28 11:57:32.000000000 +0100
++++ exim-4.60/exim_monitor/em_hdr.h 2006-03-24 08:30:25.497181713 +0100
+@@ -87,7 +87,7 @@
+
+ /* Regular expression include */
+
+-#include "pcre/pcre.h"
++#include <pcre.h>
+
+ /* Includes from the main source of Exim. We need to have MAXPACKET defined for
+ the benefit of structs.h. One of these days I should tidy up this interface so
+diff -uNr exim-4.60.orig/OS/Makefile-Base exim-4.60/OS/Makefile-Base
+--- exim-4.60.orig/OS/Makefile-Base 2005-11-28 11:57:32.000000000 +0100
++++ exim-4.60/OS/Makefile-Base 2006-03-24 08:31:33.352339217 +0100
+@@ -103,7 +103,7 @@
# This is the real default target for all the various exim binaries and
# scripts, once the configuring stuff is done.
@@ -15,7 +22,7 @@
exigrep eximstats exipick exiqgrep exiqsumm \
transport-filter.pl convert4r3 convert4r4 \
exim_checkaccess \
-@@ -306,7 +306,7 @@
+@@ -314,7 +314,7 @@
local_scan.o $(EXIM_PERL) $(OBJ_WITH_CONTENT_SCAN) \
$(OBJ_WITH_OLD_DEMIME) $(OBJ_EXPERIMENTAL)
@@ -24,46 +31,36 @@
routers/routers.a transports/transports.a \
$(OBJ_EXIM) version.c
@echo " "
-@@ -315,7 +315,7 @@
- $(CC) -c $(CFLAGS) $(INCLUDE) $(IPV6_INCLUDE) $(TLS_INCLUDE) version.c
+@@ -325,7 +325,7 @@
rm -f exim
- $(PURIFY) $(LNCC) -o exim $(LFLAGS) $(OBJ_EXIM) version.o \
+ @echo "$(LNCC) -o exim"
+ $(FE)$(PURIFY) $(LNCC) -o exim $(LFLAGS) $(OBJ_EXIM) version.o \
- pcre/libpcre.a \
-+ -lpcre \
++ -lpcre \
routers/routers.a transports/transports.a lookups/lookups.a \
auths/auths.a \
$(LIBRESOLV) $(LIBS) $(LIBS_EXIM) $(IPV6_LIBS) $(EXTRALIBS) \
-@@ -418,12 +418,12 @@
+@@ -429,14 +429,14 @@
OBJ_MONBIN = util-spool_in.o util-store.o util-string.o tod.o tree.o $(MONBIN)
-eximon.bin: $(EXIMON_EDITME) eximon $(OBJ_MONBIN) pcre/libpcre.a \
+eximon.bin: $(EXIMON_EDITME) eximon $(OBJ_MONBIN) \
../exim_monitor/em_version.c
- $(CC) -o em_version.o -c \
+ @echo "$(CC) exim_monitor/em_version.c"
+ $(FE)$(CC) -o em_version.o -c \
$(CFLAGS) $(XINCLUDE) -I. ../exim_monitor/em_version.c
- $(PURIFY) $(LNCC) -o eximon.bin em_version.o $(LFLAGS) $(XLFLAGS) \
+ @echo "$(LNCC) -o eximon.bin"
+ $(FE)$(PURIFY) $(LNCC) -o eximon.bin em_version.o $(LFLAGS) $(XLFLAGS) \
- $(OBJ_MONBIN) -lXaw -lXmu -lXt -lXext -lX11 pcre/libpcre.a \
+ $(OBJ_MONBIN) -lXaw -lXmu -lXt -lXext -lX11 -lpcre \
$(LIBS) $(LIBS_EXIMON) $(EXTRALIBS) $(EXTRALIBS_EXIMON) -lc
@if [ x"$(STRIP_COMMAND)" != x"" ]; then \
echo $(STRIP_COMMAND) eximon.bin; \
-diff -uNr exim-4.51.orig/exim_monitor/em_hdr.h exim-4.51/exim_monitor/em_hdr.h
---- exim-4.51.orig/exim_monitor/em_hdr.h 2005-05-04 13:35:40.000000000 +0200
-+++ exim-4.51/exim_monitor/em_hdr.h 2005-09-02 15:37:32.398489578 +0200
-@@ -87,7 +87,7 @@
-
- /* Regular expression include */
-
--#include "pcre/pcre.h"
-+#include <pcre.h>
-
- /* Includes from the main source of Exim. We need to have MAXPACKET defined for
- the benefit of structs.h. One of these days I should tidy up this interface so
-diff -uNr exim-4.51.orig/src/exim.h exim-4.51/src/exim.h
---- exim-4.51.orig/src/exim.h 2005-05-04 13:35:39.000000000 +0200
-+++ exim-4.51/src/exim.h 2005-09-02 15:37:32.408487843 +0200
-@@ -379,7 +379,7 @@
+diff -uNr exim-4.60.orig/src/exim.h exim-4.60/src/exim.h
+--- exim-4.60.orig/src/exim.h 2005-11-28 11:57:32.000000000 +0100
++++ exim-4.60/src/exim.h 2006-03-24 08:30:25.515178572 +0100
+@@ -414,7 +414,7 @@
/* The header from the PCRE regex package */
@@ -71,4 +68,4 @@
+#include <pcre.h>
/* Exim includes are in several files. Note that local_scan.h #includes
- mytypes.h and store.h, so we don't need to mention them explicitly. */
+ config.h, mytypes.h, and store.h, so we don't need to mention them explicitly.
++++++ exim-4.51.tar.bz2 -> exim-4.62.tar.bz2 ++++++
++++ 102677 lines of diff (skipped)
++++++ exim.logrotate ++++++
--- exim/exim.logrotate 2003-11-18 15:51:21.000000000 +0100
+++ exim/exim.logrotate 2006-04-28 17:20:07.000000000 +0200
@@ -11,9 +11,15 @@
cd /var/log/exim
test -f /etc/sysconfig/exim && source /etc/sysconfig/exim
if test "$EXIM_REPORT_WEEKLY" = yes; then
- report=weekly_report-`date +%Y%m%d`
+ day=`date +%Y%m%d`
+ report=weekly_report-$day
+ eximstatsdir=/srv/www/eximstats/$day
touch $report; chmod 640 $report; chown :mail $report
eximstats main.log > $report
+ if test "$EXIM_REPORT_WEEKLY_HTML" = yes; then
+ mkdir $eximstatsdir
+ eximstats -html -charts -chartdir $eximstatsdir main.log > $eximstatsdir/index.html
+ fi
if ! test -e no_report_mail -a "$EXIM_REPORT_WEEKLY_SEND" = yes; then mail -s "$(sed -n '2{p;q;}' < $report) ($(hostname))" postmaster < $report; fi
if test -f $report.gz; then old $report.gz; fi
gzip -f -9 $report
++++++ sysconfig.exim ++++++
--- exim/sysconfig.exim 2003-11-19 11:15:19.000000000 +0100
+++ exim/sysconfig.exim 2006-04-28 17:20:07.000000000 +0200
@@ -23,8 +23,16 @@
## Type: yesno
## Default: "no"
#
+# Create HTML reports (see the EXIM_REPORT_WEEKLY setting) in
+# /srv/www/eximstats?
+# needs the eximstats-html package to be installed
+#
+EXIM_REPORT_WEEKLY_HTML="no"
+
+## Type: yesno
+## Default: "no"
+#
# Send the reports (see the EXIM_REPORT_WEEKLY setting) via mail to
# postmaster?
#
EXIM_REPORT_WEEKLY_SEND="no"
-
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
1
0
Hello community,
here is the log from the commit of package aranym
checked in at Wed May 31 02:59:29 CEST 2006.
--------
--- aranym/aranym.changes 2006-05-15 17:48:41.000000000 +0200
+++ aranym/aranym.changes 2006-05-31 02:33:49.000000000 +0200
@@ -1,0 +2,5 @@
+Tue May 30 10:46:05 CEST 2006 - schwab(a)suse.de
+
+- Fix definition of fixed size integers.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ aranym.spec ++++++
--- /var/tmp/diff_new_pack.LCx22U/_old 2006-05-31 02:59:06.000000000 +0200
+++ /var/tmp/diff_new_pack.LCx22U/_new 2006-05-31 02:59:06.000000000 +0200
@@ -15,7 +15,7 @@
URL: http://aranym.atari.org/
Summary: ARAnyM (Atari Running on Any Machine)
Version: 0.9.3beta
-Release: 1
+Release: 2
Group: System/Emulators/Other
License: GPL, LGPL
Source: %{name}-%{version}.tar.gz
@@ -133,6 +133,8 @@
%{_datadir}/aranym
%changelog -n aranym
+* Tue May 30 2006 - schwab(a)suse.de
+- Fix definition of fixed size integers.
* Mon May 15 2006 - schwab(a)suse.de
- Update to aranym 0.9.3beta.
ARAnyM can now output via OpenGL and features TrueType fonts
++++++ aranym-0.9.3beta.diff ++++++
--- /var/tmp/diff_new_pack.LCx22U/_old 2006-05-31 02:59:07.000000000 +0200
+++ /var/tmp/diff_new_pack.LCx22U/_new 2006-05-31 02:59:07.000000000 +0200
@@ -49,6 +49,19 @@
// Return packet
send(0xfc);
+--- natfeat/atari_rootsec.h
++++ natfeat/atari_rootsec.h
+@@ -12,8 +12,8 @@
+ */
+
+ #define u8 unsigned char
+-#define u16 unsigned short
+-#define u32 unsigned long
++#define u16 uint16
++#define u32 uint32
+
+ struct partition_info
+ {
--- rtc.cpp
+++ rtc.cpp
@@ -161,7 +161,7 @@
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
1
0