diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1b89c6a --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/lsof_4.87-rh.tar.xz diff --git a/.lsof.metadata b/.lsof.metadata new file mode 100644 index 0000000..080e740 --- /dev/null +++ b/.lsof.metadata @@ -0,0 +1 @@ +61c5162a224f6d1f1d1546f761568249aea21a59 SOURCES/lsof_4.87-rh.tar.xz diff --git a/SOURCES/lsof-4.87-LTsock-test-fail-on-ppc64le.patch b/SOURCES/lsof-4.87-LTsock-test-fail-on-ppc64le.patch new file mode 100644 index 0000000..a3bae78 --- /dev/null +++ b/SOURCES/lsof-4.87-LTsock-test-fail-on-ppc64le.patch @@ -0,0 +1,45 @@ +diff -up ./dialects/linux/dproc.c.ori ./dialects/linux/dproc.c +--- ./dialects/linux/dproc.c.ori 2017-09-05 09:39:00.602482719 +0200 ++++ ./dialects/linux/dproc.c 2017-09-05 09:49:43.079902156 +0200 +@@ -829,10 +829,10 @@ process_id(idp, idpl, cmd, uid, pid, ppi + /* + * Process the ID's current working directory info. + */ ++ efs = 0; + if (!Ckscko) { + (void) make_proc_path(idp, idpl, &path, &pathl, "cwd"); + alloc_lfile(CWD, -1); +- efs = 0; + if (getlinksrc(path, pbuf, sizeof(pbuf), (char **)NULL) < 1) { + if (!Fwarn) { + (void) memset((void *)&sb, 0, sizeof(sb)); +@@ -878,13 +878,13 @@ process_id(idp, idpl, cmd, uid, pid, ppi + /* + * Process the ID's root directory info. + */ ++ lnk = ss = 0; + if (!Ckscko) { + (void) make_proc_path(idp, idpl, &path, &pathl, "root"); + alloc_lfile(RTD, -1); + if (getlinksrc(path, pbuf, sizeof(pbuf), (char **)NULL) < 1) { + if (!Fwarn) { + (void) memset((void *)&sb, 0, sizeof(sb)); +- lnk = ss = 0; + (void) snpf(nmabuf, sizeof(nmabuf), "(readlink: %s)", + strerror(errno)); + nmabuf[sizeof(nmabuf) - 1] = '\0'; +@@ -925,13 +925,12 @@ process_id(idp, idpl, cmd, uid, pid, ppi + /* + * Process the ID's execution info. + */ ++ lnk = ss = txts = 0; + if (!Ckscko) { +- txts = 0; + (void) make_proc_path(idp, idpl, &path, &pathl, "exe"); + alloc_lfile("txt", -1); + if (getlinksrc(path, pbuf, sizeof(pbuf), (char **)NULL) < 1) { + (void) memset((void *)&sb, 0, sizeof(sb)); +- lnk = ss = 0; + if (!Fwarn) { + if ((errno != ENOENT) || uid) { + (void) snpf(nmabuf, sizeof(nmabuf), "(readlink: %s)", diff --git a/SOURCES/lsof-4.87-ignore-tasks-option.patch b/SOURCES/lsof-4.87-ignore-tasks-option.patch new file mode 100644 index 0000000..fcbdad2 --- /dev/null +++ b/SOURCES/lsof-4.87-ignore-tasks-option.patch @@ -0,0 +1,227 @@ +diff -up ./lsof.8.ori ./lsof.8 +--- ./lsof.8.ori 2018-02-20 16:45:18.347856323 +0100 ++++ ./lsof.8 2018-02-20 16:45:26.204823914 +0100 +@@ -6,7 +6,7 @@ lsof \- list open files + .SH SYNOPSIS + .B lsof + [ +-.B \-?abChKlnNOPRtUvVX ++.B \-?abChlnNOPRtUvVX + ] [ + .BI -A " A" + ] [ +@@ -30,6 +30,8 @@ lsof \- list open files + ] [ + .BI \-k " k" + ] [ ++.BI \-K " k" ++] [ + .BI +|\-L " [l]" + ] [ + .BI +|\-m " m" +@@ -963,7 +965,7 @@ Here are some sample addresses: + :time \- either TCP, UDP or UDPLITE time service port + .fi + .TP \w'names'u+4 +-.B \-K ++.BI \-K " k" + selects the listing of tasks (threads) of processes, on dialects + where task (thread) reporting is supported. + (If help output \- i.e., the output of the +@@ -973,6 +975,15 @@ or + options \- shows this option, then task (thread) reporting is + supported by the dialect.) + .IP ++If ++.B \-K ++is followed by a value, ++.IR k , ++it must be ``i''. That causes ++.I lsof ++to ignore tasks, particularly in the default, list\-everything case ++when no other options are specified. ++.IP + When + .B \-K + and +diff -up ./lsof.h.ori ./lsof.h +--- ./lsof.h.ori 2018-02-19 17:41:00.082833606 +0100 ++++ ./lsof.h 2018-02-19 18:39:40.336086710 +0100 +@@ -491,6 +491,8 @@ struct afsnode { /* AFS pseudo-node st + }; + # endif /* defined(HAS_AFS) */ + ++extern int AllProc; ++ + # if defined(HAS_STD_CLONE) + struct clone { + int dx; /* index of device entry in Devtp[] */ +@@ -672,6 +674,7 @@ extern struct fieldsel FieldSel[]; + extern int Hdr; + + enum IDType {PGID, PID}; ++extern int IgnTasks; + extern char *InodeFmt_d; + extern char *InodeFmt_x; + extern int LastPid; +@@ -938,8 +941,9 @@ extern int Procsrch; + extern int PrPass; + extern int RptTm; + extern struct l_dev **Sdev; +-extern int Selall; ++extern int SelAll; + extern int Selflags; ++extern int SelProc; + extern int Setgid; + extern int Selinet; + extern int Setuidroot; +diff -up ./main.c.ori ./main.c +--- ./main.c.ori 2018-02-19 17:20:33.058670928 +0100 ++++ ./main.c 2018-02-19 18:26:41.245793075 +0100 +@@ -181,7 +181,7 @@ main(argc, argv) + #endif /* defined(HASKOPT) */ + + #if defined(HASTASKS) +- "K", ++ "K:", + #else /* !defined(HASTASKS) */ + "", + #endif /* defined(HASTASKS) */ +@@ -575,10 +575,27 @@ main(argc, argv) + #endif /* defined(HASKOPT) */ + + #if defined(HASTASKS) +- case 'K': ++ case 'K': ++ if (!GOv || *GOv == '-' || *GOv == '+') { + Ftask = 1; ++ IgnTasks = 0; + Selflags |= SELTASK; +- break; ++ if (GOv) { ++ GOx1 = GObk[0]; ++ GOx2 = GObk[1]; ++ } ++ } else { ++ if (!strcasecmp(GOv, "i")) { ++ Ftask = 0; ++ IgnTasks = 1; ++ Selflags &= ~SELTASK; ++ } else { ++ (void) fprintf(stderr, ++ "%s: -K not followed by i (but by %s)\n", Pn, GOv); ++ err = 1; ++ } ++ } ++ break; + #endif /* defined(HASTASKS) */ + + case 'l': +@@ -966,6 +983,11 @@ main(argc, argv) + } + } + /* ++ * If IgnTasks is set, remove SELTASK from SelAll and SelProc. ++ */ ++ SelAll = IgnTasks ? (SELALL & ~SELTASK) : SELALL; ++ SelProc = IgnTasks ? (SELPROC & ~SELTASK) : SELPROC; ++/* + * Check for argument consistency. + */ + if (Cmdnx && Cmdni) { +@@ -1143,12 +1165,12 @@ main(argc, argv) + "%s: no select options to AND via -a\n", Pn); + usage(1, 0, 0); + } +- Selflags = SELALL; ++ Selflags = SelAll; + } else { + if (GOx1 >= argc && (Selflags & (SELNA|SELNET)) != 0 + && (Selflags & ~(SELNA|SELNET)) == 0) + Selinet = 1; +- Selall = 0; ++ AllProc = 0; + } + /* + * Get the device for DEVDEV_PATH. +diff -up ./proc.c.ori ./proc.c +--- ./proc.c.ori 2018-02-19 18:39:57.188006540 +0100 ++++ ./proc.c 2018-02-19 18:44:33.993689693 +0100 +@@ -498,7 +498,7 @@ examine_lproc() + * o listing is selected by an ANDed option set (not all options) + * that includes a single PID selection -- this one. + */ +- if ((Lp->sf & SELPID) && !Selall) { ++ if ((Lp->sf & SELPID) && !AllProc) { + if ((Selflags == SELPID) + || (Fand && (Selflags & SELPID))) { + sbp = 1; +@@ -648,7 +648,7 @@ is_file_sel(lp, lf) + } + #endif /* defined(HASSECURITY) && defined(HASNOSOCKSECURITY) */ + +- if (Selall) ++ if (AllProc) + return(1); + if (Fand && ((lf->sf & Selflags) != Selflags)) + return(0); +@@ -742,13 +742,13 @@ is_proc_excl(pid, pgid, uid, pss, sf) + * network selections from the file flags, so that the tests in is_file_sel() + * work as expected. + */ +- if (Selall) { ++ if (AllProc) { + *pss = PS_PRI; + + #if defined(HASSECURITY) && defined(HASNOSOCKSECURITY) +- *sf = SELALL & ~(SELNA | SELNET); ++ *sf = SelAll & ~(SELNA | SELNET); + #else /* !defined(HASSECURITY) || !defined(HASNOSOCKSECURITY) */ +- *sf = SELALL; ++ *sf = SelAll; + #endif /* defined(HASSECURITY) && defined(HASNOSOCKSECURITY) */ + + return(0); +diff -up ./store.c.ori ./store.c +--- ./store.c.ori 2018-02-19 18:39:50.532038205 +0100 ++++ ./store.c 2018-02-19 18:42:57.828147181 +0100 +@@ -43,6 +43,8 @@ static char *rcsid = "$Id: store.c,v 1.4 + * Global storage definitions + */ + ++int AllProc = 1; /* all processes are selected (default) */ ++ + #if defined(HASBLKDEV) + struct l_dev *BDevtp = (struct l_dev *)NULL; + /* block device table pointer */ +@@ -236,6 +238,7 @@ struct fieldsel FieldSel[] = { + }; + + int Hdr = 0; /* header print status */ ++int IgnTasks = 0; /* ignore tasks when non-zero */ + char *InodeFmt_d = (char *) NULL; + /* INODETYPE decimal printf specification */ + char *InodeFmt_x = (char *) NULL; +@@ -320,8 +323,9 @@ int RptTm = 0; /* repeat time -- set b + struct l_dev **Sdev = (struct l_dev **)NULL; + /* pointer to Devtp[] pointers, sorted + * by device */ +-int Selall = 1; /* all processes are selected (default) */ ++int SelAll = 0; /* SELALL flags, modified by IgnTasks */ + int Selflags = 0; /* selection flags -- see SEL* in lsof.h */ ++int SelProc = 0; /* SELPROC flags, modified by IgnTasks */ + int Setgid = 0; /* setgid state */ + int Selinet = 0; /* select only Internet socket files */ + int Setuidroot = 0; /* setuid-root state */ +diff -up ./dialects/linux/dproc.c.ori ./dialects/linux/dproc.c +--- ./dialects/linux/dproc.c.ori 2018-02-21 14:32:56.779061847 +0100 ++++ ./dialects/linux/dproc.c 2018-02-21 16:10:53.896590180 +0100 +@@ -228,7 +228,7 @@ gather_proc_info() + * If only ORed process selection options have been specified, + * enable conditional file skipping and socket file only checking. + */ +- if ((Selflags & SELFILE) || !(Selflags & SELPROC)) ++ if ((Selflags & SELFILE) || !(Selflags & SelProc)) + Cckreg = Ckscko = 0; + else + Cckreg = Ckscko = 1; diff --git a/SOURCES/upstream2downstream.sh b/SOURCES/upstream2downstream.sh new file mode 100755 index 0000000..33c7f65 --- /dev/null +++ b/SOURCES/upstream2downstream.sh @@ -0,0 +1,45 @@ +#!/bin/bash +# +# This script removes non-linux dialects from upstream source package before +# release. There is a problem with copyrights for some UN*Xes ... also .. this +# script merges all to the one normal tarball and rename all to lsof_X.XX-rh. +# +# Usage: ./upstream2downstream +# +# This code is in the public domain; do with it what you wish. +# +# Copyright (C) 2007 Karel Zak +# + +UPSTREAM="$1" +NAME=$(basename $UPSTREAM .tar.bz2) +MYPWD=$(pwd) +TMP=$(mktemp -d) + +echo +echo -n "Extracting upstream code..." +tar -jxf $UPSTREAM -C $TMP +cd $TMP/$NAME +tar xf "$NAME"_src.tar +echo " done." + +echo -n "Moving files to downstream directory..." +mv "$NAME"_src/ "$NAME"-rh +mv README* 00* "$NAME"-rh +echo " done." + +echo -n "Removing non-Linux dialects..." +rm -rf "$NAME"-rh/dialects/{aix,darwin,du,freebsd,hpux,n+obsd,n+os,osr,sun,uw} +echo " done." + +echo -n "Creating final downstream tarball..." +tar Jcf $MYPWD/"$NAME"-rh.tar.xz "$NAME"-rh +echo " done." + +rm -rf $TMP +cd $MYPWD + +echo +echo "Linux-only tarball: $MYPWD/"$NAME"-rh.tar.xz" +echo + diff --git a/SPECS/lsof.spec b/SPECS/lsof.spec new file mode 100644 index 0000000..dd3dda6 --- /dev/null +++ b/SPECS/lsof.spec @@ -0,0 +1,316 @@ +Summary: A utility which lists open files on a Linux/UNIX system +Name: lsof +Version: 4.87 +Release: 6%{?dist} +# Sendmail .. lib/snpf.c +# LGPLv2+ .. lib/regex.c, regex.h +License: zlib and Sendmail and LGPLv2+ +Group: Development/Debuggers + +# lsof contains licensed code that we cannot ship. Therefore we use +# upstream2downstream.sh script to remove the code before shipping it. +# +# The script you can found in SCM or download from: +# http://pkgs.fedoraproject.org/gitweb/?p=lsof.git;a=blob_plain;f=upstream2downstream.sh + +%global lsofrh lsof_%{version}-rh +URL: http://people.freebsd.org/~abe/ +Source0: %{lsofrh}.tar.xz +Source1: upstream2downstream.sh + +Patch0: lsof-4.87-LTsock-test-fail-on-ppc64le.patch +Patch1: lsof-4.87-ignore-tasks-option.patch + +BuildRequires: libselinux-devel + +%description +Lsof stands for LiSt Open Files, and it does just that: it lists +information about files that are open by the processes running on a +UNIX system. + +%prep +%setup -q -n %{lsofrh} + +%patch0 -p1 +%patch1 -p1 + +%build +./Configure -n linux +make DEBUG="$RPM_OPT_FLAGS" %{?_smp_mflags} + +%install +mkdir -p ${RPM_BUILD_ROOT}%{_sbindir} +install -p -m 0755 lsof ${RPM_BUILD_ROOT}%{_sbindir} +mkdir -p ${RPM_BUILD_ROOT}%{_mandir}/man8 +install -p -m 0644 lsof.8 ${RPM_BUILD_ROOT}%{_mandir}/man8 + +%files +%doc 00* README.lsof_* +%{_sbindir}/lsof +%{_mandir}/man*/* + +%changelog +* Tue Feb 20 2018 Jan Rybar - 4.87-6 +- Option -Ki now ignores process threads +- Resolves: rhbz#1437014 + +* Tue Sep 05 2017 Jan Rybar - 4.87-5 +- LTsock test failure on ppc64le +- Resolves: rhbz#1459256 + +* Fri Jan 24 2014 Daniel Mach - 4.87-4 +- Mass rebuild 2014-01-24 + +* Fri Dec 27 2013 Daniel Mach - 4.87-3 +- Mass rebuild 2013-12-27 + +* Thu Feb 14 2013 Fedora Release Engineering - 4.87-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Thu Jan 3 2013 Peter Schiffer - 4.87-1 +- resolves: #891508 + updated to 4.87 + +* Tue Aug 28 2012 Peter Schiffer - 4.86-4 +- .spec file cleanup + +* Thu Jul 19 2012 Fedora Release Engineering - 4.86-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Mon Jun 04 2012 Peter Schiffer - 4.86-2 +- added support for files on anon_inodefs + +* Fri Apr 20 2012 Peter Schiffer - 4.86-1 +- resolves: #811520 + update to 4.86 + +* Fri Jan 13 2012 Fedora Release Engineering - 4.85-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Fri Sep 30 2011 Peter Schiffer - 4.85-1 +- resolves: #741882 + update to 4.85 + +* Tue Feb 08 2011 Fedora Release Engineering - 4.84-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Thu Jan 13 2011 Ville Skyttä - 4.84-3 +- Fix man page permissions. + +* Wed Sep 29 2010 jkeating - 4.84-2 +- Rebuilt for gcc bug 634757 + +* Wed Sep 15 2010 Karel Zak 4.84-1 +- upgrade to 4.84 +- remove lsof_4.81-threads.patch, "lsof -K" provides basic support for tasks now + +* Fri Feb 19 2010 Karel Zak 4.83-2 +- minor changes in spec file (#226108 - Merge Review) + +* Thu Feb 11 2010 Karel Zak 4.83-1 +- upgrade to 4.83 (see the 00DIST file for list of changes) +- remove lsof_4.83A-selinux-typo.patch (fixed upstream) + +* Mon Jul 27 2009 Karel Zak 4.82-1 +- upgrade to 4.82 (see the 00DIST file for list of changes) +- backport an upstream patch from 4.83A-linux +- remove lsof_4.81-man.patch (fixed upstream) + +* Sat Jul 25 2009 Fedora Release Engineering - 4.81-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Wed Feb 25 2009 Fedora Release Engineering - 4.81-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Fri Jan 30 2009 Karel Zak 4.81-2 +- fix #480694 - lsof manpage mismarked and formats badly + +* Tue Dec 2 2008 Karel Zak 4.81-1 +- upgrade to 4.81 + - lsof_4.80-threads.patch - rebased + +* Thu Aug 7 2008 Tom "spot" Callaway 4.80-2 +- fix license tag + +* Tue May 20 2008 Karel Zak 4.80-1 +- upgrade to 4.80 + - lsof_4.78C-inode.patch - merged upstream + - lsof_4.78C-selinux.patch - merged upstream + - lsof_4.78C-threads.patch - rebased + +* Tue Feb 19 2008 Fedora Release Engineering - 4.78-8 +- Autorebuild for GCC 4.3 + +* Wed Oct 3 2007 Karel Zak 4.78-7 +- update selinux and inode patches (new versions are based on upstream) + +* Tue Oct 2 2007 Karel Zak 4.78-6 +- fix #280651 - lsof prints entries in multiple lines when SElinux is disabled +- fix #243976 - mmap'd files with large inode numbers confuse lsof + +* Thu Mar 1 2007 Karel Zak 4.78-5 +- fix License + +* Thu Mar 1 2007 Karel Zak 4.78-4 +- fix #226108 - Merge Review: lsof + +* Thu Aug 10 2006 Karel Zak 4.78-3 +- minor changes to thread patch + +* Wed Aug 9 2006 Karel Zak 4.78-2 +- fix #184338 - allow lsof access nptl threads + +* Wed Jul 19 2006 Karel Zak 4.78-1 +- rebuild + +* Wed Jul 12 2006 Jesse Keating - 4.78-06122006devel.1.1 +- rebuild + +* Mon Jun 12 2006 Karel Zak 4.78-06122006devel.1 +- upgrade to 4.78C (last bugfix accepted by upstream) + +* Mon Jun 12 2006 Karel Zak 4.78-06052006devel.2 +- added BuildRequires libselinux-devel +- fix #194864 - lsof segfaults on starting + +* Wed May 24 2006 Karel Zak 4.78-06052006devel.1 +- upgrade to 4.78B (upstream devel version with selinux patch) + +* Wed Feb 15 2006 Karel Zak 4.76-2 +- fix #175568 - lsof prints 'unknown inode type' for epoll + +* Fri Feb 10 2006 Jesse Keating - 4.76-1.2.1 +- bump again for double-long bug on ppc(64) + +* Tue Feb 07 2006 Jesse Keating - 4.76-1.2 +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Fri Dec 09 2005 Jesse Keating +- rebuilt + +* Mon Sep 19 2005 Karel Zak 4.76-1 +- new upstream version + +* Tue May 10 2005 Karel Zak 4.74-7 +- fix debuginfo + +* Wed Mar 23 2005 Karel Zak 4.74-6 +- fix "lsof -b" hangs if a process is stuck in disk-wait/NFS (#131712) + +* Mon Mar 14 2005 Karel Zak 4.74-5 +- src.rpm cleanup + +* Sat Mar 5 2005 Karel Zak 4.74-3 +- rebuilt + +* Tue Feb 8 2005 Karel Zak 4.74-2 +- replace 'Copyright' with 'License' in .spec + +* Tue Feb 8 2005 Karel Zak 4.74-1 +- sync with upstream 4.74 + +* Mon Dec 13 2004 Karel Zak 4.73-1 +- update to 4.73 +- remove lsof_4.72-sock.patch, already in the upstream code + +* Fri Jul 30 2004 Jakub Jelinek 4.72-1 +- update to 4.72 +- use st_dev/st_ino comparison for sockets by name if possible + (#126419) + +* Fri Jul 18 2003 Jakub Jelinek 4.68-1 +- update to 4.68 (#99064) + +* Wed Jun 04 2003 Elliot Lee +- rebuilt + +* Wed Jan 22 2003 Tim Powers +- rebuilt + +* Thu Dec 12 2002 Tim Powers 4.63-3 +- rebuild on all arches + +* Fri Jun 21 2002 Tim Powers +- automated rebuild + +* Fri Jun 21 2002 Jakub Jelinek 4.63-1 +- update to 4.63 (#66333). + +* Thu May 23 2002 Tim Powers +- automated rebuild + +* Wed Jan 09 2002 Tim Powers +- automated rebuild + +* Sun Jun 24 2001 Elliot Lee +- Bump release + rebuild. + +* Thu Sep 7 2000 Jeff Johnson +- update to 4.51. + +* Wed Jul 12 2000 Prospector +- automatic rebuild + +* Wed Jun 14 2000 Jeff Johnson +- FHS packaging. + +* Sun Mar 26 2000 Florian La Roche +- change to root:root perms + +* Wed Feb 02 2000 Cristian Gafton +- fix description +- man pages are compressed + +* Wed Dec 22 1999 Jeff Johnson +- update to 4.47. + +* Tue Aug 3 1999 Jeff Johnson +- update to 4.45. + +* Fri Jun 25 1999 Jeff Johnson +- update to 4.44. + +* Fri May 14 1999 Jeff Johnson +- upgrade to 4.43 with sparc64 tweak (#2803) + +* Thu Apr 08 1999 Preston Brown +- upgrade to 4.42 (security fix) + +* Sun Mar 21 1999 Cristian Gafton +- auto rebuild in the new build environment (release 5) + +* Fri Mar 19 1999 Jeff Johnson +- turn off setgid kmem "just in case". + +* Thu Feb 18 1999 Jeff Johnson +- buffer overflow patch. +- upgrade to 4.40. + +* Wed Dec 30 1998 Jeff Johnson +- update to "official" 4.39 release. + +* Wed Dec 16 1998 Jeff Johnson +- update to 4.39B (linux) with internal kernel src. + +* Tue Dec 15 1998 Jeff Johnson +- update to 4.39A (linux) + +* Sat Sep 19 1998 Jeff Johnson +- update to 4.37 + +* Thu Sep 10 1998 Jeff Johnson +- update to 4.36 + +* Thu Jul 23 1998 Jeff Johnson +- upgrade to 4.35. +- rewrap for RH 5.2. + +* Mon Jun 29 1998 Maciej Lesniewski + [4.34-1] +- New version +- Spec rewriten to use %%{name} and %%{version} macros +- Removed old log enteries + +* Tue Apr 28 1998 Maciej Lesniewski +- Built under RH5 +- install macro was changed