Compare commits

..

3 commits

Author SHA1 Message Date
Fedora Release Engineering
293ab3d4a7 dist-git conversion 2010-07-29 02:36:32 +00:00
Bill Nottingham
604b494f0d Fix typo that causes a failure to update the common directory. (releng
#2781)
2009-11-26 01:58:23 +00:00
Jesse Keating
81e7e8ec43 Initialize branch F-12 for lsof 2009-09-29 05:26:15 +00:00
9 changed files with 295 additions and 283 deletions

7
.gitignore vendored
View file

@ -1,6 +1 @@
/lsof_4.91-rh.tar.xz
/lsof-4.93.2-rh.tar.xz
/lsof-4.94.0-rh.tar.xz
/lsof-4.95.0-rh.tar.xz
/lsof-4.96.3-rh.tar.xz
/lsof-4.98.0-rh.tar.xz
lsof_4.82-rh.tar.bz2

View file

@ -1,31 +0,0 @@
diff --git a/misc.c b/misc.c
index 9f443ea..a4bb3db 100644
--- a/misc.c
+++ b/misc.c
@@ -58,7 +58,7 @@ _PROTOTYPE(static void closePipes,(void));
_PROTOTYPE(static int dolstat,(char *path, char *buf, int len));
_PROTOTYPE(static int dostat,(char *path, char *buf, int len));
_PROTOTYPE(static int doreadlink,(char *path, char *buf, int len));
-_PROTOTYPE(static int doinchild,(int (*fn)(), char *fp, char *rbuf, int rbln));
+_PROTOTYPE(static int doinchild,(int (*fn)(char *, char *, int), char *fp, char *rbuf, int rbln));
#if defined(HASINTSIGNAL)
_PROTOTYPE(static int handleint,(int sig));
@@ -234,7 +234,7 @@ compdev(a1, a2)
static int
doinchild(fn, fp, rbuf, rbln)
- int (*fn)(); /* function to perform */
+ int (*fn)(char *, char *, int); /* function to perform */
char *fp; /* function parameter */
char *rbuf; /* response buffer */
int rbln; /* response buffer length */
@@ -296,7 +296,7 @@ doinchild(fn, fp, rbuf, rbln)
*/
struct stat _;
} r;
- int (*r_fn)();
+ int (*r_fn)(char *, char *, int);
/*
* Close sufficient open file descriptors except Pipes[0] and
* Pipes[3].

View file

@ -1,10 +0,0 @@
diff -up ./Lsof.8.ori ./Lsof.8
--- ./Lsof.8.ori 2022-09-20 19:46:03.560004892 +0200
+++ ./Lsof.8 2022-09-20 19:46:17.578086787 +0200
@@ -1,5 +1,5 @@
.so ./version
-.TH LSOF 8 Revision-\*(VN
+.TH LSOF 1 Revision-\*(VN
.\" Register )P is used neither by this file nor any groff macro. However,
.\" some versions of nroff require it.
.if !\n(.g \{\

View file

@ -1,11 +0,0 @@
--- lsof_4.91-rh/Configure.orig 2018-05-22 15:54:57.275682247 +0200
+++ lsof_4.91-rh/Configure 2018-05-22 15:55:22.314556548 +0200
@@ -2945,7 +2945,7 @@ return(0); }
# Test for <rpc/rpc.h>.
- if ! test -r ${LSOF_INCLUDE}/rpc/rpc.h # {
+ if ! test -r ${LSOF_INCLUDE}/tirpc/rpc/rpc.h # {
then
LSOF_CFGF="$LSOF_CFGF -DHASNORPC_H"
fi # }

348
lsof.spec
View file

@ -1,236 +1,61 @@
Summary: A utility which lists open files on a Linux/UNIX system
Name: lsof
Version: 4.98.0
Release: 8%{?dist}
License: lsof
URL: https://github.com/lsof-org/lsof
Version: 4.82
Release: 1%{?dist}
License: zlib
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 can be found in SCM or downloaded from:
# http://pkgs.fedoraproject.org/cgit/lsof.git/tree/upstream2downstream.sh
# The script you can found in CVS or download from:
# http://cvs.fedoraproject.org/viewcvs/rpms/lsof/devel/upstream2downstream.sh
#
%define lsofrh lsof_%{version}-rh
Source0: %{lsofrh}.tar.bz2
URL: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof
%global lsofrh lsof-%{version}-rh
Source0: %{lsofrh}.tar.xz
Source1: upstream2downstream.sh
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
# BZ#1260300 - move lsof man page to section 1
Patch0: lsof-man-page-section.patch
Patch1: f42-ftbfs.patch
BuildRequires: gcc
BuildRequires: libselinux-devel
BuildRequires: libtirpc-devel
BuildRequires: groff-base
BuildRequires: make
BuildRequires: automake
BuildRequires: autoconf
BuildRequires: git
# 184338 - allow lsof access nptl threads
Patch1: lsof_4.81-threads.patch
# Backport of upstream patch
Patch2: lsof_4.83A-selinux-typo.patch
%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.
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
%autosetup -n %{lsofrh} -S git
%setup -q -n %{lsofrh}
%patch1 -p1
%patch2 -p1
%build
%configure
%make_build DEBUG="%{build_cflags} -I/usr/include/tirpc" CFGL="%{build_ldflags} -L./lib -llsof -lselinux -ltirpc"
# rebase to 4.93 introduced change in Lsof.8 with unhandled .so inclusion
soelim -r Lsof.8 > lsof.1
LSOF_VSTR=2.6.16 LINUX_BASE=/proc ./Configure -n linux
make DEBUG="$RPM_OPT_FLAGS" %{?_smp_mflags}
%install
mkdir -p ${RPM_BUILD_ROOT}%{_bindir}
install -p -m 0755 lsof ${RPM_BUILD_ROOT}%{_bindir}
mkdir -p ${RPM_BUILD_ROOT}%{_mandir}/man1
install -p -m 0644 lsof.1 ${RPM_BUILD_ROOT}%{_mandir}/man1/lsof.1
rm -rf ${RPM_BUILD_ROOT}
mkdir -p ${RPM_BUILD_ROOT}%{_sbindir}
install -p -m 0755 lsof ${RPM_BUILD_ROOT}%{_prefix}/sbin
mkdir -p ${RPM_BUILD_ROOT}%{_mandir}/man8
install -p lsof.8 ${RPM_BUILD_ROOT}%{_mandir}/man8/
%clean
rm -rf ${RPM_BUILD_ROOT}
%files
%doc 00README 00CREDITS 00FAQ 00LSOF-L 00QUICKSTART
%{_bindir}/lsof
%defattr(644,root,root,755)
%doc 00*
%attr(0755,root,root) %{_sbindir}/lsof
%{_mandir}/man*/*
%changelog
* Thu Jul 24 2025 Fedora Release Engineering <releng@fedoraproject.org> - 4.98.0-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Fri Jan 24 2025 Jan Rybar <jrybar@redhat.com> - 4.98.0-7
- FTBFS: stricter check, incompatible types
* Fri Jan 17 2025 Fedora Release Engineering <releng@fedoraproject.org> - 4.98.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Thu Jul 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 4.98.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 4.98.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 4.98.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Mon Oct 23 2023 Jan Rybar <jrybar@redhat.com> - 4.98.0-2
- version bump due to licence fix
* Fri Oct 20 2023 Jan Rybar <jrybar@redhat.com> - 4.98.0-1
- rebase to lsof-4.98
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 4.96.3-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 4.96.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Mon Nov 21 2022 Florian Weimer <fweimer@redhat.com> - 4.96.3-2
- Fix C89isms in Configure
* Tue Sep 20 2022 Jan Rybar <jrybar@redhat.com> - 4.96.3-1
- rebase to 4.96.3
* Fri Sep 02 2022 Jan Rybar <jrybar@redhat.com> - 4.95.0-1
- rebase to 4.95.0
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 4.94.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 4.94.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4.94.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Thu Jan 28 2021 Jan Rybar <jrybar@redhat.com> - 4.94.0-1
- Rebase to 4.94.0
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4.93.2-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.93.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.93.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4.93.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Tue May 28 2019 Jan Rybar <jrybar@redhat.com> - 4.93.2-1
- Rebase to lsof-4.93.2
- Upstream moved to GitHub and tarball structure changed
- Manpage patch needed to reflect the tarball changes
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4.91-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 4.91-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Tue May 22 2018 Peter Schiffer <pschiffe@redhat.com> - 4.91-1
- resolves: #1560993
updated to 4.91
- resolves: #1574669
use tirpc library for rpc
* Fri Apr 13 2018 Rafael dos Santos <rdossant@redhat.com> - 4.90-2
- Use standard Fedora build flags (bug #1548552)
* Wed Feb 21 2018 Peter Schiffer <pschiffe@redhat.com> - 4.90-1
- resolves: #1545963
updated to 4.90
* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 4.89-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.89-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.89-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.89-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Sat Mar 5 2016 Peter Robinson <pbrobinson@fedoraproject.org> 4.89-4
- Only ship end user useful docs, don't ship bits for building
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 4.89-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Mon Nov 30 2015 Peter Schiffer <pschiffe@redhat.com> - 4.89-2
- resolves #1260300
moved lsof to /usr/bin, it's not sysadmin only utility
* Wed Jul 29 2015 Peter Schiffer <pschiffe@redhat.com> - 4.89-1
- updated to 4.89
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.88-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Tue Jan 6 2015 Peter Schiffer <pschiffe@redhat.com> - 4.88-2
- added upstream patch fixing unwanted pipe file output
- cleaned .spec file
* Wed Oct 15 2014 Peter Schiffer <pschiffe@redhat.com> - 4.88-1
- updated to 4.88
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.87-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.87-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.87-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.87-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Thu Jan 3 2013 Peter Schiffer <pschiffe@redhat.com> - 4.87-1
- resolves: #891508
updated to 4.87
* Tue Aug 28 2012 Peter Schiffer <pschiffe@redhat.com> - 4.86-4
- .spec file cleanup
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.86-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Mon Jun 04 2012 Peter Schiffer <pschiffe@redhat.com> - 4.86-2
- added support for files on anon_inodefs
* Fri Apr 20 2012 Peter Schiffer <pschiffe@redhat.com> - 4.86-1
- resolves: #811520
update to 4.86
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.85-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Fri Sep 30 2011 Peter Schiffer <pschiffe@redhat.com> - 4.85-1
- resolves: #741882
update to 4.85
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.84-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Thu Jan 13 2011 Ville Skyttä <ville.skytta@iki.fi> - 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 <kzak@redhat.com> 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 <kzak@redhat.com> 4.83-2
- minor changes in spec file (#226108 - Merge Review)
* Thu Feb 11 2010 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 4.82-1
- upgrade to 4.82 (see the 00DIST file for list of changes)
- backport an upstream patch from 4.83A-linux
@ -333,3 +158,104 @@ install -p -m 0644 lsof.1 ${RPM_BUILD_ROOT}%{_mandir}/man1/lsof.1
- update to 4.73
- remove lsof_4.72-sock.patch, already in the upstream code
* Fri Jul 30 2004 Jakub Jelinek <jakub@redhat.com> 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 <jakub@redhat.com> 4.68-1
- update to 4.68 (#99064)
* Wed Jun 04 2003 Elliot Lee <sopwith@redhat.com>
- rebuilt
* Wed Jan 22 2003 Tim Powers <timp@redhat.com>
- rebuilt
* Thu Dec 12 2002 Tim Powers <timp@redhat.com> 4.63-3
- rebuild on all arches
* Fri Jun 21 2002 Tim Powers <timp@redhat.com>
- automated rebuild
* Fri Jun 21 2002 Jakub Jelinek <jakub@redhat.com> 4.63-1
- update to 4.63 (#66333).
* Thu May 23 2002 Tim Powers <timp@redhat.com>
- automated rebuild
* Wed Jan 09 2002 Tim Powers <timp@redhat.com>
- automated rebuild
* Sun Jun 24 2001 Elliot Lee <sopwith@redhat.com>
- Bump release + rebuild.
* Thu Sep 7 2000 Jeff Johnson <jbj@redhat.com>
- update to 4.51.
* Wed Jul 12 2000 Prospector <bugzilla@redhat.com>
- automatic rebuild
* Wed Jun 14 2000 Jeff Johnson <jbj@redhat.com>
- FHS packaging.
* Sun Mar 26 2000 Florian La Roche <Florian.LaRoche@redhat.com>
- change to root:root perms
* Wed Feb 02 2000 Cristian Gafton <gafton@redhat.com>
- fix description
- man pages are compressed
* Wed Dec 22 1999 Jeff Johnson <jbj@redhat.com>
- update to 4.47.
* Tue Aug 3 1999 Jeff Johnson <jbj@redhat.com>
- update to 4.45.
* Fri Jun 25 1999 Jeff Johnson <jbj@redhat.com>
- update to 4.44.
* Fri May 14 1999 Jeff Johnson <jbj@redhat.com>
- upgrade to 4.43 with sparc64 tweak (#2803)
* Thu Apr 08 1999 Preston Brown <pbrown@redhat.com>
- upgrade to 4.42 (security fix)
* Sun Mar 21 1999 Cristian Gafton <gafton@redhat.com>
- auto rebuild in the new build environment (release 5)
* Fri Mar 19 1999 Jeff Johnson <jbj@redhat.com>
- turn off setgid kmem "just in case".
* Thu Feb 18 1999 Jeff Johnson <jbj@redhat.com>
- buffer overflow patch.
- upgrade to 4.40.
* Wed Dec 30 1998 Jeff Johnson <jbj@redhat.com>
- update to "official" 4.39 release.
* Wed Dec 16 1998 Jeff Johnson <jbj@redhat.com>
- update to 4.39B (linux) with internal kernel src.
* Tue Dec 15 1998 Jeff Johnson <jbj@redhat.com>
- update to 4.39A (linux)
* Sat Sep 19 1998 Jeff Johnson <jbj@redhat.com>
- update to 4.37
* Thu Sep 10 1998 Jeff Johnson <jbj@redhat.com>
- update to 4.36
* Thu Jul 23 1998 Jeff Johnson <jbj@redhat.com>
- upgrade to 4.35.
- rewrap for RH 5.2.
* Mon Jun 29 1998 Maciej Lesniewski <nimir@kis.p.lodz.pl>
[4.34-1]
- New version
- Spec rewriten to use %%{name} and %%{version} macros
- Removed old log enteries
* Tue Apr 28 1998 Maciej Lesniewski <nimir@kis.p.lodz.pl>
- Built under RH5
- install macro was changed

129
lsof_4.81-threads.patch Normal file
View file

@ -0,0 +1,129 @@
diff -up lsof_4.81-rh/dialects/linux/dproc.c.kzak lsof_4.81-rh/dialects/linux/dproc.c
--- lsof_4.81-rh/dialects/linux/dproc.c.kzak 2008-10-21 18:17:25.000000000 +0200
+++ lsof_4.81-rh/dialects/linux/dproc.c 2008-12-02 10:54:54.000000000 +0100
@@ -89,7 +89,8 @@ _PROTOTYPE(static void process_proc_map,
_PROTOTYPE(static int process_id,(char *idp, int idpl, char *cmd, UID_ARG uid,
int pid, int ppid, int pgid));
_PROTOTYPE(static int statEx,(char *p, struct stat *s, int *ss));
-
+_PROTOTYPE(static int get_other_thread,(int pid, char **tid));
+
#if defined(HASSELINUX)
_PROTOTYPE(static int cmp_cntx_eq,(char *pcntx, char *ucntx));
@@ -159,6 +160,7 @@ gather_proc_info()
struct dirent *dp;
struct stat sb;
int lwp, n, nl, pgid, pid, ppid, rv, tx;
+ char *tid = NULL;
static char *lwppath = (char *)NULL;
static int lwppathl = 0;
static char *path = (char *)NULL;
@@ -252,6 +254,13 @@ gather_proc_info()
while ((dp = readdir(ps))) {
if (nm2id(dp->d_name, &pid, &n))
continue;
+
+ tid = NULL;
+ if (get_other_thread(pid, &tid) < 0)
+ continue;
+ if (tid)
+ n += sizeof("task/") + strlen(tid);
+
/*
* Build path to PID's directory.
*/
@@ -265,7 +274,14 @@ gather_proc_info()
Exit(1);
}
}
- (void) snpf(pidpath + pidx, pidpathl - pidx, "%s/", dp->d_name);
+ if (tid) {
+ /* /proc/<pid> is useless (zombie), we have to use /proc/<pid>/task/<tid>
+ * where is still running thread
+ */
+ (void) snpf(pidpath + pidx, pidpathl - pidx, "%s/task/%s/", dp->d_name, tid);
+ free(tid);
+ } else
+ (void) snpf(pidpath + pidx, pidpathl - pidx, "%s/", dp->d_name);
n += (pidx + 1);
/*
* Process the PID's stat info.
@@ -1007,6 +1023,64 @@ process_id(idp, idpl, cmd, uid, pid, ppi
return(0);
}
+/* fill tid if the initial thread is zombie,
+ * but other thread still alive
+ *
+ * returns -1=error, 0=nothing, 1=ok
+ */
+static int
+get_other_thread(pid, tid)
+ int pid;
+ char **tid;
+{
+ char path[MAXPATHLEN];
+ DIR *tdp;
+ struct dirent *td;
+ char pstate;
+ FILE *f;
+ int _pid;
+ int re = 0, x;
+
+ snpf(path, sizeof(path), "%s/%d/stat", PROCFS, pid);
+ if (!(f = fopen(path, "r")))
+ return -1;
+ x = fscanf(f, "%d %*s %c", &_pid, &pstate);
+ fclose(f);
+ if (x!=2)
+ return -1;
+ if (_pid != pid)
+ return -1; /* corrupted /proc? */
+ if (pstate!='Z')
+ return 0; /* ignore normal proceses */
+
+ snpf(path, sizeof(path), "%s/%d/task", PROCFS, pid);
+
+ /* open /proc/<pid>/task */
+ if (!(tdp = opendir(path)))
+ return 0; /* kernel < 2.6.x */
+
+ /* look for first alive thread */
+ while ((td = readdir(tdp))) {
+ if (strcmp(td->d_name, ".")==0 || strcmp(td->d_name, "..")==0)
+ continue;
+
+ /* /proc/<pid>/task/<tid>/stat */
+ snpf(path, sizeof(path), "%s/%d/task/%s/stat", PROCFS, pid, td->d_name);
+ if (!(f = fopen(path, "r")))
+ continue;
+ x = fscanf(f, "%*d %*s %c", &pstate);
+ fclose(f);
+ if (x!=1)
+ continue;
+ if (pstate!='Z') {
+ re = 1;
+ *tid = strdup(td->d_name);
+ break;
+ }
+ }
+ closedir(tdp);
+ return re;
+}
/*
* process_proc_map() - process the memory map of a process
@@ -1250,12 +1324,6 @@ read_id_stat(ty, p, id, cmd, ppid, pgid)
return(1);
}
/*
- * Convert the first field to an integer; its conversion must match the
- * ID argument.
- */
- if (!fp[0] || (atoi(fp[0]) != id))
- return(1);
-/*
* Get the command name from the second field. Strip a starting '(' and
* an ending ')'. Allocate space to hold the result and return the space
* pointer.

View file

@ -0,0 +1,16 @@
Upstream patch, backported from 4.83A-linux.
-- kzak 27-Jul-2009
diff -up lsof_4.82-rh/Configure.kzak lsof_4.82-rh/Configure
--- lsof_4.82-rh/Configure.kzak 2009-07-27 09:50:15.000000000 +0200
+++ lsof_4.82-rh/Configure 2009-07-27 09:50:43.000000000 +0200
@@ -2700,7 +2700,7 @@ return(0); }
LSOF_TMP1=1
fi # }
else
- if test "X$LINUX_HASSELINUX" = "XY" -o "X$LINUX_HASSELINUX" = "xY" # {
+ if test "X$LINUX_HASSELINUX" = "XY" -o "X$LINUX_HASSELINUX" = "Xy" # {
then
LSOF_TMP1=1
fi # }

View file

@ -1 +1 @@
SHA512 (lsof-4.98.0-rh.tar.xz) = a0938c4c431d2aed7ce7e09560b45acefb5c2730c707817b3013f564defa381391ee113e7989fc21eec4703f4ac112104ec0edd9d51a024797116416a4717683
1361fa10f97f4c151aaec52815cd9d60 lsof_4.82-rh.tar.bz2

View file

@ -5,41 +5,39 @@
# script merges all to the one normal tarball and rename all to lsof_X.XX-rh.
#
# Usage: ./upstream2downstream <usptream-tarball>
#
# This code is in the public domain; do with it what you wish.
#
# Copyright (C) 2007 Karel Zak <kzak@redhat.com>
#
UPSTREAM="$1"
NAME=$(basename $UPSTREAM .tar.gz)
NAME=$(basename $UPSTREAM .tar.bz2)
MYPWD=$(pwd)
TMP=$(mktemp -d)
echo
echo -n "Extracting upstream code..."
tar -xf $UPSTREAM -C $TMP
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 ./dialects/{aix,darwin,du,freebsd,hpux,n+obsd,n+os,osr,sun,uw}
echo " done."
echo -n "Removing unused distribution scripts..."
rm -rf ./support
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..."
cd ..
mv $NAME $NAME-rh
tar Jcf $MYPWD/"$NAME"-rh.tar.xz "$NAME"-rh
tar jcf $MYPWD/"$NAME"-rh.tar.bz2 "$NAME"-rh
echo " done."
rm -rf $TMP
cd $MYPWD
echo
echo "Linux-only tarball: $MYPWD/"$NAME"-rh.tar.xz"
echo "Linux-only tarball: $MYPWD/"$NAME"-rh.tar.bz2"
echo