From def93857521b35f068797efcb6552491103ec145c0ca1db8982849669a071109 Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Mon, 18 Dec 2006 23:15:43 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/diffutils?expand=0&rev=1 --- cmp-eof-dev-null.diff | 164 ++++++++++++++++++++++++++ diffutils-2.8.1-i18n-0.2.patch.gz | 3 + diffutils-2.8.7.tar.gz | 3 + diffutils-3.5.tar.xz | 3 - diffutils-3.5.tar.xz.sig | 16 --- diffutils.changes | 189 ------------------------------ diffutils.keyring | Bin 35277 -> 0 bytes diffutils.spec | 169 +++++++++++++++++--------- ready | 0 9 files changed, 285 insertions(+), 262 deletions(-) create mode 100644 cmp-eof-dev-null.diff create mode 100644 diffutils-2.8.1-i18n-0.2.patch.gz create mode 100644 diffutils-2.8.7.tar.gz delete mode 100644 diffutils-3.5.tar.xz delete mode 100644 diffutils-3.5.tar.xz.sig delete mode 100644 diffutils.keyring create mode 100644 ready diff --git a/cmp-eof-dev-null.diff b/cmp-eof-dev-null.diff new file mode 100644 index 0000000..aa2e6ad --- /dev/null +++ b/cmp-eof-dev-null.diff @@ -0,0 +1,164 @@ +2006-05-09 Paul Eggert + + * src/cmp.c (cmp): The previous fix wasn't quite right either, as + it mishandled 'cmp A B >/dev/null' when A is shorter than B and + differs before A's end-of-file, by outputting a bogus EOF message. + Also, it was inefficient if A and B were large. + +2006-05-07 Jim Meyering (tiny change) + + Fix bug introduced in 2006-03-09 change: + cmp always exits successfully, when stdout is redirected to /dev/null. + * src/cmp.c (cmp): When there's a difference, arrange to return nonzero + also when comparison_type is the new (from 2006-03-09) type_no_stdout. + +2006-03-09 Paul Eggert + + * src/cmp.c (type_no_stdout): New constant. + (main): Use it to avoid bug when the "EOF on foo" message is + generated and stdout is /dev/null. + Problem reported by Vincent Lefevre (Debian bug 356083). + +Index: cmp.c +=================================================================== +RCS file: /sources/diffutils/diffutils/src/cmp.c,v +retrieving revision 1.39 +retrieving revision 1.40 +diff -u -a -p -u -p -a -r1.39 -r1.40 +--- cmp.c 5 Jan 2006 07:23:55 -0000 1.39 ++++ cmp.c 9 Mar 2006 20:38:11 -0000 1.40 +@@ -78,6 +78,7 @@ static enum comparison_type + { + type_first_diff, /* Print the first difference. */ + type_all_diffs, /* Print all differences. */ ++ type_no_stdout, /* Do not output to stdout; only stderr. */ + type_status /* Exit status only. */ + } comparison_type; + +@@ -317,7 +318,12 @@ main (int argc, char **argv) + if (fstat (STDOUT_FILENO, &outstat) == 0 + && stat (NULL_DEVICE, &nullstat) == 0 + && 0 < same_file (&outstat, &nullstat)) +- comparison_type = type_status; ++ comparison_type = ++ ((fstat (STDERR_FILENO, &outstat) == 0 ++ ? 0 < same_file (&outstat, &nullstat) ++ : errno == EBADF) ++ ? type_status ++ : type_no_stdout); + } + + /* If only a return code is needed, +@@ -356,7 +362,7 @@ main (int argc, char **argv) + for (f = 0; f < 2; f++) + if (close (file_desc[f]) != 0) + error (EXIT_TROUBLE, errno, "%s", file[f]); +- if (exit_status != 0 && comparison_type != type_status) ++ if (exit_status != EXIT_SUCCESS && comparison_type < type_no_stdout) + check_stdout (); + exit (exit_status); + return exit_status; +@@ -536,6 +542,9 @@ cmp (void) + while (first_diff < smaller); + ret = EXIT_FAILURE; + break; ++ ++ case type_no_stdout: ++ break; + } + } + +Index: cmp.c +=================================================================== +RCS file: /sources/diffutils/diffutils/src/cmp.c,v +retrieving revision 1.40 +retrieving revision 1.41 +diff -u -a -p -u -p -a -r1.40 -r1.41 +--- cmp.c 9 Mar 2006 20:38:11 -0000 1.40 ++++ cmp.c 9 Mar 2006 20:54:39 -0000 1.41 +@@ -318,12 +318,7 @@ main (int argc, char **argv) + if (fstat (STDOUT_FILENO, &outstat) == 0 + && stat (NULL_DEVICE, &nullstat) == 0 + && 0 < same_file (&outstat, &nullstat)) +- comparison_type = +- ((fstat (STDERR_FILENO, &outstat) == 0 +- ? 0 < same_file (&outstat, &nullstat) +- : errno == EBADF) +- ? type_status +- : type_no_stdout); ++ comparison_type = type_no_stdout; + } + + /* If only a return code is needed, +Index: cmp.c +=================================================================== +RCS file: /sources/diffutils/diffutils/src/cmp.c,v +retrieving revision 1.43 +retrieving revision 1.44 +diff -u -a -p -u -p -a -r1.43 -r1.44 +--- cmp.c 13 Mar 2006 19:11:17 -0000 1.43 ++++ cmp.c 8 May 2006 01:41:04 -0000 1.44 +@@ -536,10 +536,10 @@ cmp (void) + first_diff++; + } + while (first_diff < smaller); +- ret = EXIT_FAILURE; +- break; + ++ /* Fall through. */ + case type_no_stdout: ++ ret = EXIT_FAILURE; + break; + } + } +Index: cmp.c +=================================================================== +RCS file: /sources/diffutils/diffutils/src/cmp.c,v +retrieving revision 1.44 +retrieving revision 1.45 +diff -u -a -p -u -p -a -r1.44 -r1.45 +--- cmp.c 8 May 2006 01:41:04 -0000 1.44 ++++ cmp.c 9 May 2006 22:57:20 -0000 1.45 +@@ -382,7 +382,7 @@ cmp (void) + word *buffer1 = buffer[1]; + char *buf0 = (char *) buffer0; + char *buf1 = (char *) buffer1; +- int ret = EXIT_SUCCESS; ++ int differing = 0; + int f; + int offset_width IF_LINT (= 0); + +@@ -536,17 +536,18 @@ cmp (void) + first_diff++; + } + while (first_diff < smaller); ++ differing = -1; ++ break; + +- /* Fall through. */ + case type_no_stdout: +- ret = EXIT_FAILURE; ++ differing = 1; + break; + } + } + + if (read0 != read1) + { +- if (comparison_type != type_status) ++ if (differing <= 0 && comparison_type != type_status) + { + /* See POSIX 1003.1-2001 for this format. */ + fprintf (stderr, _("cmp: EOF on %s\n"), file[read1 < read0]); +@@ -555,9 +556,9 @@ cmp (void) + return EXIT_FAILURE; + } + } +- while (read0 == buf_size); ++ while (differing <= 0 && read0 == buf_size); + +- return ret; ++ return differing == 0 ? EXIT_SUCCESS : EXIT_FAILURE; + } + + /* Compare two blocks of memory P0 and P1 until they differ, diff --git a/diffutils-2.8.1-i18n-0.2.patch.gz b/diffutils-2.8.1-i18n-0.2.patch.gz new file mode 100644 index 0000000..744c38b --- /dev/null +++ b/diffutils-2.8.1-i18n-0.2.patch.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9289be62b118f41757d3ac267c6fbe4678717dfb26240edfdd85a5b5ddff4029 +size 4450 diff --git a/diffutils-2.8.7.tar.gz b/diffutils-2.8.7.tar.gz new file mode 100644 index 0000000..8242c96 --- /dev/null +++ b/diffutils-2.8.7.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:53d9c10830ac322c00dfcccf60d961014e767da86d2c802ccc5cbad7e7aea07c +size 1057977 diff --git a/diffutils-3.5.tar.xz b/diffutils-3.5.tar.xz deleted file mode 100644 index 84acae2..0000000 --- a/diffutils-3.5.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dad398ccd5b9faca6b0ab219a036453f62a602a56203ac659b43e889bec35533 -size 1360996 diff --git a/diffutils-3.5.tar.xz.sig b/diffutils-3.5.tar.xz.sig deleted file mode 100644 index 19ff48d..0000000 --- a/diffutils-3.5.tar.xz.sig +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iQIcBAABCgAGBQJXuT2mAAoJEH/Z/MsAC+7uECsP/0wVZOh74XKI0Y4XPxqhgKou -L/uFMgqpq2P9Uwr8jnJCr3xsKWCHYSYXOjmzbQ21wkqDWynT+NbLRcH4HLvO6vU3 -EWtoBor7UG0weTDanNfRBFjVLWsHsDWJj7VGMja9OAkXjpqo0f+iYHHIbJ+oKlIY -gzNqUdjGg8RpsvNapz4XuTsoUNDrTtVOy/k9xHUZCw/h1cZBVpaAU8MEE3MReab6 -pOn660BlVqT50vMd09FKRuTLktJ2LBFZ6x+xdPBJm5LFdUFqClbiNaNv+idhlvfB -GC8qjBr4WhuCtGpJKLFADTOZ8UOxcmx2sNz0ypiQrLT1UkTUtY3B0ADnzWuMEcwx -eaPNzdJhPExY64i7MA2vc2MxlRb7omj8kI+n0rBpiFKLMI3x3ZWf6Papg/acYbJg -0NHQkqdc82gH3vsp5DX/wNn+3TNwks9ziVt7Jervk7uQqWaDLrah3waBN3q5UWsk -HLAlkhb94Ahi+cNMk1oiNKqT+en3AhZ/7O6imKzTM8bTk27Ek7q3ThLfBeUKcp2O -j1aaPbaDGEL9pZZDCeuZCSdRZDGMY+spGNYRC4pmYCL9C2LsH5jtX5ob9gQsPHt3 -XFsi5l83i5N3amwzb2OdSTEwM0xgPX8TmcN435409gvz/VVmeSmx5jhHb9m8SLSk -SrDXEuf5yKX8J8HXVMgt -=e0eV ------END PGP SIGNATURE----- diff --git a/diffutils.changes b/diffutils.changes index 474f356..335a465 100644 --- a/diffutils.changes +++ b/diffutils.changes @@ -1,192 +1,3 @@ -------------------------------------------------------------------- -Mon Aug 22 20:34:19 UTC 2016 - astieger@suse.com - -- Diffutils 3.5: - * diff3 no longer malfunctions due to use-after-free - [bug introduced in 3.4] - * diff --color no longer colorizes when TERM=dumb - -------------------------------------------------------------------- -Tue Aug 9 09:03:53 UTC 2016 - mpluskal@suse.com - -- Update to version 3.4 - * diff accepts two new options --color and --palette to generate - and configure colored output. --color takes an optional - argument specifying when to colorize a line: --color=always, - --color=auto, --color=never. --palette is used to configure - which colors are used. - * many bugfixes -- New -lang subpackage -- Drop no longer needed gnulib-perl522.patch - -------------------------------------------------------------------- -Thu Feb 4 09:29:27 UTC 2016 - mpluskal@suse.com - -- Make building more verbose -- Move info page removal to preun -- Cleanup spec file with spec-cleaner -- Update provides/obsoletes - -------------------------------------------------------------------- -Mon Jul 6 10:13:58 UTC 2015 - coolo@suse.com - -- add gnulib-perl522.patch from gnulib upstream - -------------------------------------------------------------------- -Sat Jan 3 15:25:32 UTC 2015 - meissner@suse.com - -- build with PIE - -------------------------------------------------------------------- -Fri Dec 6 13:28:07 CET 2013 - pth@suse.de - -- Diffutils has a testsuite so run it. - -------------------------------------------------------------------- -Fri Jun 21 07:22:47 UTC 2013 - meissner@suse.com - -- disable gpg key checking to avoid build cycles. will be - done by source service - -------------------------------------------------------------------- -Fri Apr 5 11:22:33 UTC 2013 - meissner@suse.com - -- add gpg key checking, keyring from savannah - -------------------------------------------------------------------- -Fri Apr 5 08:01:12 UTC 2013 - jslaby@suse.com - -- Update to 3.3: - * add --no-dereference - * -N works with - (stdin) as input - * many fixes - * many cleanups (in docco too) -- remove: config-guess-sub-update.patch -- remove: diffutils-stdio.in.patch - -------------------------------------------------------------------- -Mon Mar 25 14:33:40 UTC 2013 - mmeister@suse.com - -- Added url as source. - Please see http://en.opensuse.org/SourceUrls - -------------------------------------------------------------------- -Sat Feb 2 20:34:31 UTC 2013 - schwab@suse.de - -- Update config.guess/sub for aarch64 - -------------------------------------------------------------------- -Tue Jul 17 19:04:29 UTC 2012 - aj@suse.de - -- Fix build with missing gets declaration (glibc 2.16) - -------------------------------------------------------------------- -Mon Feb 27 16:22:01 CET 2012 - jslaby@suse.de - -- Update to 3.2: - * diff: --ignore-file-name-case now applies at top level too - * diff, sdiff: new option --ignore-trailing-space - * maint: avoid new "make sytnax-check" failure - -------------------------------------------------------------------- -Sun Sep 18 17:17:12 UTC 2011 - jengelh@medozas.de - -- Remove redundant tags/sections from specfile - (cf. packaging guidelines) - -------------------------------------------------------------------- -Sat Aug 13 03:10:31 CEST 2011 - pth@suse.de - -- Update to 3.1: - + Bug fixes - - diff no longer reports spurious differences merely because two - entries in the same directory have names that compare equal in - the current locale, or compare equal because --ignore-file-name-case - was given. - -------------------------------------------------------------------- -Sun Sep 19 10:02:52 CEST 2010 - vuntz@opensuse.org - -- Update to version 3.0: - + Bug fixes - - diff once again prints the required "\ No newline at end of - file" line when at least one input lacks a newline-at-EOF and - the final hunk plus context-length aligns exactly with the end - of the newline-lacking file. - [bug introduced between 2.8.7 and 2.9] - + Changes in behavior - - In context-style diffs, diff prints a portion of a preceding - "function" line for each hunk, with --show-function-line=RE - (-F) or --show-c-function (-p). Now, it trims leading blanks - from such lines before extracting a prefix. This is useful - especially when a function line is so far indented that the - name itself would be truncated or not included in the - limited-width substring that diff appends. - - diff once again reports a difference with the diagnostic - "Binary files A and B differ" when at least one of the files - appears to be binary. From 2.8.4 through diffutils-2.9, it - printed "Files A and B differ". -- Changes from version 2.9: - + New features - - New diff option --suppress-blank-empty. - - Bring back support for `diff -NUM', where NUM is a number, - even when conforming to POSIX 1003.1-2001. This change - reverts to the behavior of GNU diff 2.7 and earlier. This is - a change only when conforming to POSIX 1003.1-2001; there is - no effect when conforming to older POSIX versions. - - sdiff now understands '1' and '2' as synonyms for 'l' and - 'r'. - + Changes in behavior - - sdiff and diff3 now invoke diff, not $(bindir)/diff - + Administrivia - - updated gnulib support -- Drop diffutils-no_binary_mode.patch: fixed upstream. -- Drop diffutils-2.8.1-i18n-0.2.patch: this doesn't apply anymore, - the only reference I can guess about it goes back to 2004, and - commit 8983b8d9 upstream is about handling multibyte characters - in side-by-side format. So I'm assuming it's fixed. This also - means we can drop the call to autoreconf. -- Drop diffutils-2.8.7-autoconf.patch: this is not needed anymore. -- Remove AutoReqProv: it's default now. -- Stop touching the main pages in %build. -- Use %configure and %makeinstall macros. - -------------------------------------------------------------------- -Fri Aug 20 10:15:36 UTC 2010 - pth@novell.com - -- Only do freopen if O_BINARY is true. - -------------------------------------------------------------------- -Mon Jun 28 06:38:35 UTC 2010 - jengelh@medozas.de - -- use %_smp_mflags - -------------------------------------------------------------------- -Sat Feb 13 15:06:26 CET 2010 - rguenther@suse.de - -- fix stack limit autoconf check - -------------------------------------------------------------------- -Mon Dec 7 23:11:11 CET 2009 - jengelh@medozas.de - -- enable parallel building - -------------------------------------------------------------------- -Thu Jan 10 17:36:12 CET 2008 - schwab@suse.de - -- Update to head of trunk. - * New diff option --suppress-blank-empty. - * Bring back support for `diff -NUM', where NUM is a number, - even when conforming to POSIX 1003.1-2001. This change reverts to - the behavior of GNU diff 2.7 and earlier. This is a change only - when conforming to POSIX 1003.1-2001; there is no effect when - conforming to older POSIX versions. - This change is in response to decisions taken in the January 2005 - Austin Group standardization meeting. For more details, please see - "Utility Syntax Guidelines" in the Minutes of the January 2005 - Meeting . - * sdiff now understands '1' and '2' as synonyms for 'l' and 'r'. - ------------------------------------------------------------------- Mon Nov 27 17:15:34 CET 2006 - rguenther@suse.de diff --git a/diffutils.keyring b/diffutils.keyring deleted file mode 100644 index fbe58db51beea9cdb1ec361136eb241cf1c46e90f5712a40eb72f450e341601c..0000000000000000000000000000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35277 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 Sj&(cyX44VW&Y(>K_J06@VgvsG diff --git a/diffutils.spec b/diffutils.spec index 09ca69f..fddf31d 100644 --- a/diffutils.spec +++ b/diffutils.spec @@ -1,82 +1,143 @@ # -# spec file for package diffutils +# spec file for package diffutils (Version 2.8.7) # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany. +# This file and all modifications and additions to the pristine +# package are under the same license as the package itself. # -# All modifications and additions to the file contributed by third parties -# remain the property of their copyright owners, unless otherwise agreed -# upon. The license for this file, and modifications and additions to the -# file, is the same license as for the pristine package itself (unless the -# license for the pristine package is not an Open Source License, in which -# case the license is the MIT License). An "Open Source License" is a -# license that conforms to the Open Source Definition (Version 1.9) -# published by the Open Source Initiative. - # Please submit bugfixes or comments via http://bugs.opensuse.org/ # +# norootforbuild Name: diffutils -Version: 3.5 -Release: 0 -Summary: GNU diff Utilities -License: GFDL-1.2 and GPL-3.0+ +URL: http://www.gnu.org/software/diffutils/ +License: GNU General Public License (GPL) Group: Productivity/Text/Utilities -Url: https://www.gnu.org/software/diffutils/ -Source0: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz -Source1: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz.sig -# http://savannah.gnu.org/project/memberlist-gpgkeys.php?group=diffutils -Source2: %{name}.keyring -BuildRequires: xz -Requires(pre): %{install_info_prereq} -Requires(preun): %{install_info_prereq} -Recommends: %{name}-lang = %{version} -Provides: diff = %{version} -Obsoletes: diff < %{version} +Provides: diff +Obsoletes: diff +Autoreqprov: on +PreReq: %{install_info_prereq} +Version: 2.8.7 +Release: 38 +Summary: GNU diff Utilities +Source: diffutils-%{version}.tar.gz +Patch1: diffutils-2.8.1-i18n-0.2.patch.gz +Patch2: cmp-eof-dev-null.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build %description The GNU diff utilities find differences between files. diff is used to make source code patches, for instance. -%lang_package + + +Authors: +-------- + Paul Eggert + David J. MacKenzie + Richard Stallman + Roland McGrath %prep -%setup -q +%setup +%patch1 -p1 +cd src +%patch2 %build -export CFLAGS="%{optflags} -fPIE" -export LDFLAGS="-pie" -%configure -make %{?_smp_mflags} V=1 - -%check -make %{?_smp_mflags} check +autoreconf -fi +touch man/*.1 +./configure CFLAGS="$RPM_OPT_FLAGS" \ + --prefix=/usr --infodir=%{_infodir} --mandir=%{_mandir} +make %install -%make_install -%find_lang %{name} +make install DESTDIR="$RPM_BUILD_ROOT" +%find_lang %name %post -%install_info --info-dir=%{_infodir} %{_infodir}/%{name}.info%{ext_info} +%install_info --info-dir=%{_infodir} %{_infodir}/diff.info.gz -%preun -%install_info_delete --info-dir=%{_infodir} %{_infodir}/%{name}.info%{ext_info} +%postun +%install_info_delete --info-dir=%{_infodir} %{_infodir}/diff.info.gz -%files +%clean +rm -rf $RPM_BUILD_ROOT + +%files -f %name.lang %defattr(-,root,root) %doc AUTHORS COPYING NEWS README THANKS -%{_bindir}/cmp -%{_bindir}/diff -%{_bindir}/diff3 -%{_bindir}/sdiff -%{_infodir}/diffutils.info%{ext_info} -%{_mandir}/man1/cmp.1%{ext_man} -%{_mandir}/man1/diff.1%{ext_man} -%{_mandir}/man1/diff3.1%{ext_man} -%{_mandir}/man1/sdiff.1%{ext_man} +/usr/bin/cmp +/usr/bin/diff +/usr/bin/diff3 +/usr/bin/sdiff +%doc %{_infodir}/diff.info*.gz +%doc %{_mandir}/man1/*.gz -%files lang -f %{name}.lang -%defattr(-,root,root,-) - -%changelog +%changelog -n diffutils +* Mon Nov 27 2006 - rguenther@suse.de +- removed help2man BuildRequires again. Instead prevent patches + from invalidating the shipped manpages. +* Thu Oct 05 2006 - mjancar@suse.cz +- readd help2man to BuildRequires (needed to build manpages) +* Fri Aug 11 2006 - schwab@suse.de +- Update cmp patch [#198332]. +* Mon Jul 24 2006 - rguenther@suse.de +- diffutils does not need help2man. +* Fri Mar 10 2006 - schwab@suse.de +- Fix output of EOF message when stdout is redirected to /dev/null. +* Wed Jan 25 2006 - mls@suse.de +- converted neededforbuild to BuildRequires +* Wed Sep 15 2004 - schwab@suse.de +- Readd mbrtowc check [#45308]. +* Tue May 04 2004 - schwab@suse.de +- Update to diffutils 2.8.7. +* Tue Apr 13 2004 - schwab@suse.de +- Update to diffutils 2.8.6. +* Sat Jan 10 2004 - adrian@suse.de +- build as user +* Wed Oct 15 2003 - schwab@suse.de +- Update to diffutils 2.8.4. +* Mon May 12 2003 - schwab@suse.de +- Add %%defattr. +* Thu Apr 24 2003 - ro@suse.de +- fix install_info --delete call and move from preun to postun +* Mon Apr 07 2003 - schwab@suse.de +- Only delete info entries when removing last version. +* Thu Feb 06 2003 - schwab@suse.de +- Use %%install_info. +* Thu Sep 05 2002 - schwab@suse.de +- Avoid rebuilding manpage [#18930]. +* Tue Aug 20 2002 - schwab@suse.de +- Add i18n patches. +* Mon Apr 08 2002 - schwab@suse.de +- Update to diffutils 2.8.1. + * Documentation fixes. +* Thu Mar 28 2002 - schwab@suse.de +- Update to diffutils 2.8. +* Fri Oct 05 2001 - schwab@suse.de +- Update to diffutils 2.7.2. +* Sat Jan 13 2001 - schwab@suse.de +- Fix last change to close resource leaks. +* Sat Jan 13 2001 - draht@suse.de +- tmpfile security problem fixed using mkstemp(). +* Sun Dec 03 2000 - schwab@suse.de +- diff: Fix a corner case in handling of directories. +- sdiff: Fix reading of split lines. +* Tue Oct 24 2000 - schwab@suse.de +- Renamed from diff. +* Fri Sep 08 2000 - schwab@suse.de +- Switch to BuildRoot. +- Add group tag. +- Use %%{_infodir}. +* Tue Jan 18 2000 - schwab@suse.de +- /usr/info -> /usr/share/info +* Mon Sep 13 1999 - bs@suse.de +- ran old prepare_spec on spec file to switch to new prepare_spec. +* Wed Sep 08 1999 - schwab@suse.de +- specfile cleanup +* Fri Dec 18 1998 - ro@suse.de +- dont use m486 on alpha :-) +* Thu Jan 02 1997 - florian@suse.de + bug-fix for sdiff diff --git a/ready b/ready new file mode 100644 index 0000000..473a0f4