diff --git a/.gitignore b/.gitignore index 863218e..f785c3b 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,6 @@ -lsof_4.78C-rh.tar.bz2 +/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 diff --git a/README.maintainer b/README.maintainer deleted file mode 100644 index 405bb94..0000000 --- a/README.maintainer +++ /dev/null @@ -1,23 +0,0 @@ - -Please, remove non-linux dialects from upstream source package before release. -There is problem with copyrights for some UN*Xes ... also .. you can merge all -to the one normal tarball (instead two level tarball that uses upstream) and -rename it to lsof_X.XX-rh. - - -tar zxvf lsof_X.XX_src.tar - -mv lsof_X.XX_src lsof_X.XX-rh - -mv README* 00* lsof_X.XX-rh/ - -cd lsof_X.XX-rh/dialects/ - -rm -rf - -cd ../../ - -tar jcvf lsof_X.XX-rh.tar.bz2 lsof_X.XX-rh - -lsof_X.XX-rh.tar.bz2 <-- use in the lsof.spec file - diff --git a/f42-ftbfs.patch b/f42-ftbfs.patch new file mode 100644 index 0000000..626bfab --- /dev/null +++ b/f42-ftbfs.patch @@ -0,0 +1,31 @@ +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]. diff --git a/lsof-man-page-section.patch b/lsof-man-page-section.patch new file mode 100644 index 0000000..47da375 --- /dev/null +++ b/lsof-man-page-section.patch @@ -0,0 +1,10 @@ +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 \{\ diff --git a/lsof-tirpc.patch b/lsof-tirpc.patch new file mode 100644 index 0000000..efe343e --- /dev/null +++ b/lsof-tirpc.patch @@ -0,0 +1,11 @@ +--- 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 . + +- 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 # } diff --git a/lsof.spec b/lsof.spec index 7339638..04379d5 100644 --- a/lsof.spec +++ b/lsof.spec @@ -1,49 +1,273 @@ Summary: A utility which lists open files on a Linux/UNIX system Name: lsof -Version: 4.78 -Release: 5%{?dist} -License: Distributable -Group: Development/Debuggers -%define lsofrh lsof_4.78C-rh -Source0: %{lsofrh}.tar.bz2 -URL: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +Version: 4.98.0 +Release: 8%{?dist} +License: lsof +URL: https://github.com/lsof-org/lsof +# 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 + +%global lsofrh lsof-%{version}-rh +Source0: %{lsofrh}.tar.xz +Source1: upstream2downstream.sh + +# BZ#1260300 - move lsof man page to section 1 +Patch0: lsof-man-page-section.patch +Patch1: f42-ftbfs.patch + +BuildRequires: gcc BuildRequires: libselinux-devel - -Patch1: lsof_4.78C-threads.patch +BuildRequires: libtirpc-devel +BuildRequires: groff-base +BuildRequires: make +BuildRequires: automake +BuildRequires: autoconf +BuildRequires: git %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 -%setup -q -n %{lsofrh} -%patch1 -p1 +%autosetup -n %{lsofrh} -S git %build -LSOF_VSTR=2.6.16 LINUX_BASE=/proc ./Configure -n linux - -make DEBUG="$RPM_OPT_FLAGS" %{?_smp_mflags} +%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 %install -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} +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 %files -%defattr(644,root,root,755) -%doc 00* -%attr(0755,root,root) %{_sbindir}/lsof +%doc 00README 00CREDITS 00FAQ 00LSOF-L 00QUICKSTART +%{_bindir}/lsof %{_mandir}/man*/* %changelog +* Thu Jul 24 2025 Fedora Release Engineering - 4.98.0-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Fri Jan 24 2025 Jan Rybar - 4.98.0-7 +- FTBFS: stricter check, incompatible types + +* Fri Jan 17 2025 Fedora Release Engineering - 4.98.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Thu Jul 18 2024 Fedora Release Engineering - 4.98.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Thu Jan 25 2024 Fedora Release Engineering - 4.98.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Fedora Release Engineering - 4.98.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Oct 23 2023 Jan Rybar - 4.98.0-2 +- version bump due to licence fix + +* Fri Oct 20 2023 Jan Rybar - 4.98.0-1 +- rebase to lsof-4.98 + +* Thu Jul 20 2023 Fedora Release Engineering - 4.96.3-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu Jan 19 2023 Fedora Release Engineering - 4.96.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Mon Nov 21 2022 Florian Weimer - 4.96.3-2 +- Fix C89isms in Configure + +* Tue Sep 20 2022 Jan Rybar - 4.96.3-1 +- rebase to 4.96.3 + +* Fri Sep 02 2022 Jan Rybar - 4.95.0-1 +- rebase to 4.95.0 + +* Thu Jul 21 2022 Fedora Release Engineering - 4.94.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Thu Jan 20 2022 Fedora Release Engineering - 4.94.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Thu Jul 22 2021 Fedora Release Engineering - 4.94.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Thu Jan 28 2021 Jan Rybar - 4.94.0-1 +- Rebase to 4.94.0 + +* Tue Jan 26 2021 Fedora Release Engineering - 4.93.2-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Tue Jul 28 2020 Fedora Release Engineering - 4.93.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jan 29 2020 Fedora Release Engineering - 4.93.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Jul 25 2019 Fedora Release Engineering - 4.93.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Tue May 28 2019 Jan Rybar - 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 - 4.91-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Fri Jul 13 2018 Fedora Release Engineering - 4.91-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue May 22 2018 Peter Schiffer - 4.91-1 +- resolves: #1560993 + updated to 4.91 +- resolves: #1574669 + use tirpc library for rpc + +* Fri Apr 13 2018 Rafael dos Santos - 4.90-2 +- Use standard Fedora build flags (bug #1548552) + +* Wed Feb 21 2018 Peter Schiffer - 4.90-1 +- resolves: #1545963 + updated to 4.90 + +* Thu Feb 08 2018 Fedora Release Engineering - 4.89-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Aug 03 2017 Fedora Release Engineering - 4.89-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 4.89-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Feb 10 2017 Fedora Release Engineering - 4.89-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Sat Mar 5 2016 Peter Robinson 4.89-4 +- Only ship end user useful docs, don't ship bits for building + +* Thu Feb 04 2016 Fedora Release Engineering - 4.89-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Mon Nov 30 2015 Peter Schiffer - 4.89-2 +- resolves #1260300 + moved lsof to /usr/bin, it's not sysadmin only utility + +* Wed Jul 29 2015 Peter Schiffer - 4.89-1 +- updated to 4.89 + +* Wed Jun 17 2015 Fedora Release Engineering - 4.88-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Tue Jan 6 2015 Peter Schiffer - 4.88-2 +- added upstream patch fixing unwanted pipe file output +- cleaned .spec file + +* Wed Oct 15 2014 Peter Schiffer - 4.88-1 +- updated to 4.88 + +* Sun Aug 17 2014 Fedora Release Engineering - 4.87-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sat Jun 07 2014 Fedora Release Engineering - 4.87-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Sat Aug 03 2013 Fedora Release Engineering - 4.87-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* 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 @@ -109,104 +333,3 @@ rm -rf ${RPM_BUILD_ROOT} - 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 diff --git a/lsof_4.78C-threads.patch b/lsof_4.78C-threads.patch deleted file mode 100644 index 6f28078..0000000 --- a/lsof_4.78C-threads.patch +++ /dev/null @@ -1,128 +0,0 @@ ---- lsof_4.78C-rh/dialects/linux/dproc.c.kzak 2006-06-12 19:10:05.000000000 +0200 -+++ lsof_4.78C-rh/dialects/linux/dproc.c 2006-08-10 00:14:23.000000000 +0200 -@@ -69,7 +69,8 @@ - _PROTOTYPE(static int read_proc_stat,(char *p, int pid, char **cmd, 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)); -@@ -148,6 +149,7 @@ - static char *path = (char *)NULL; - static int pathl = 0; - int pgid, pid, ppid; -+ char *tid = NULL; - static char *pidpath = (char *)NULL; - static MALLOC_S pidpathl = 0; - static MALLOC_S pidx = 0; -@@ -253,6 +255,13 @@ - } - if (f) - continue; -+ -+ tid = NULL; -+ if (get_other_thread(pid, &tid) < 0) -+ continue; -+ if (tid) -+ n += sizeof("task/") + strlen(tid); -+ - /* - * Build path to PID's directory. - */ -@@ -266,7 +275,14 @@ - Exit(1); - } - } -- (void) snpf(pidpath + pidx, pidpathl - pidx, "%s/", dp->d_name); -+ if (tid) { -+ /* /proc/ is useless (zombie), we have to use /proc//task/ -+ * 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. -@@ -897,6 +913,64 @@ - (void) fclose(ms); - } - -+/* 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//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//task//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; -+} - - /* - * read_proc_stat() - read process status -@@ -931,12 +1005,6 @@ - if ((nf = get_fields(buf, (char *)NULL, &fp, (int *)NULL, 0)) < 5) - return(1); - /* -- * Convert the first field to an integer; its conversion must match the -- * PID argument. -- */ -- if (atoi(fp[0]) != pid) -- 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. diff --git a/sources b/sources index 4658793..339a190 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -6a604dacc4544486634d5421f7d6d31b lsof_4.78C-rh.tar.bz2 +SHA512 (lsof-4.98.0-rh.tar.xz) = a0938c4c431d2aed7ce7e09560b45acefb5c2730c707817b3013f564defa381391ee113e7989fc21eec4703f4ac112104ec0edd9d51a024797116416a4717683 diff --git a/upstream2downstream.sh b/upstream2downstream.sh new file mode 100755 index 0000000..0dd7b87 --- /dev/null +++ b/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.gz) +MYPWD=$(pwd) +TMP=$(mktemp -d) + +echo +echo -n "Extracting upstream code..." +tar -xf $UPSTREAM -C $TMP +cd $TMP/$NAME +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 +echo " done." + +echo -n "Creating final downstream tarball..." +cd .. +mv $NAME $NAME-rh +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 +