Package init
This commit is contained in:
commit
4224df7c26
@ -0,0 +1,82 @@
|
|||||||
|
From 7360d80e08abf18dcce61fe033de548ac2378f06 Mon Sep 17 00:00:00 2001
|
||||||
|
From: kangenbo <kangenbo@huawei.com>
|
||||||
|
Date: Wed, 17 Apr 2019 12:20:39 -0400
|
||||||
|
Subject: [PATCH 50/83] endpoint(pipe),fix: list the same fd in a different process
|
||||||
|
|
||||||
|
Description: backport patch from github, see following in details:
|
||||||
|
https://github.com/lsof-org/lsof-linux/commit/28f96d5875086d92b5f1cb3f3473ac1184cf155e
|
||||||
|
---
|
||||||
|
dialects/linux/dnode.c | 7 +++++--
|
||||||
|
proc.c | 4 ++--
|
||||||
|
proto.h | 2 +-
|
||||||
|
3 files changed, 8 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/dialects/linux/dnode.c b/dialects/linux/dnode.c
|
||||||
|
index 58288d6..ddd99cf 100644
|
||||||
|
--- a/dialects/linux/dnode.c
|
||||||
|
+++ b/dialects/linux/dnode.c
|
||||||
|
@@ -383,13 +383,15 @@ is_pty_ptmx(dev)
|
||||||
|
*/
|
||||||
|
|
||||||
|
pxinfo_t *
|
||||||
|
-find_pepti(lf, pp)
|
||||||
|
+find_pepti(pid, lf, pp)
|
||||||
|
+ int pid; /* pid of the process owning lf */
|
||||||
|
struct lfile *lf; /* pipe's lfile */
|
||||||
|
pxinfo_t *pp; /* previous pipe info (NULL == none) */
|
||||||
|
{
|
||||||
|
struct lfile *ef; /* pipe end local file structure */
|
||||||
|
int h; /* hash result */
|
||||||
|
pxinfo_t *pi; /* pipe info pointer */
|
||||||
|
+ struct lproc *ep;
|
||||||
|
|
||||||
|
if (Pinfo) {
|
||||||
|
if (pp)
|
||||||
|
@@ -401,7 +403,8 @@ find_pepti(lf, pp)
|
||||||
|
while (pi) {
|
||||||
|
if (pi->ino == lf->inode) {
|
||||||
|
ef = pi->lf;
|
||||||
|
- if (strcmp(lf->fd, ef->fd))
|
||||||
|
+ ep = &Lproc[pi->lpx];
|
||||||
|
+ if ((strcmp(lf->fd, ef->fd)) || (pid != ep->pid))
|
||||||
|
return(pi);
|
||||||
|
}
|
||||||
|
pi = pi->next;
|
||||||
|
diff --git a/proc.c b/proc.c
|
||||||
|
index 34cb4b8..e4c3591 100644
|
||||||
|
--- a/proc.c
|
||||||
|
+++ b/proc.c
|
||||||
|
@@ -992,7 +992,7 @@ process_pinfo(f)
|
||||||
|
* its being a pipe. Look up the pipe's endpoints.
|
||||||
|
*/
|
||||||
|
do {
|
||||||
|
- if ((pp = find_pepti(Lf, pp))) {
|
||||||
|
+ if ((pp = find_pepti(Lp->pid, Lf, pp))) {
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This pipe endpoint is linked to the selected pipe
|
||||||
|
@@ -1033,7 +1033,7 @@ process_pinfo(f)
|
||||||
|
Lf->sf = Selflags;
|
||||||
|
Lp->pss |= PS_SEC;
|
||||||
|
do {
|
||||||
|
- if ((pp = find_pepti(Lf, pp))) {
|
||||||
|
+ if ((pp = find_pepti(Lp->pid, Lf, pp))) {
|
||||||
|
ep = &Lproc[pp->lpx];
|
||||||
|
ef = pp->lf;
|
||||||
|
for (i = 0; i < (FDLEN - 1); i++) {
|
||||||
|
diff --git a/proto.h b/proto.h
|
||||||
|
index 75c74a1..7f65d67 100644
|
||||||
|
--- a/proto.h
|
||||||
|
+++ b/proto.h
|
||||||
|
@@ -112,7 +112,7 @@ _PROTOTYPE(extern void find_ch_ino,(void));
|
||||||
|
|
||||||
|
# if defined(HASEPTOPTS)
|
||||||
|
_PROTOTYPE(extern void clear_pinfo,(void));
|
||||||
|
-_PROTOTYPE(extern pxinfo_t *find_pepti,(struct lfile *lf, pxinfo_t *pp));
|
||||||
|
+_PROTOTYPE(extern pxinfo_t *find_pepti,(int pid, struct lfile *lf, pxinfo_t *pp));
|
||||||
|
_PROTOTYPE(extern void process_pinfo,(int f));
|
||||||
|
# if defined(HASUXSOCKEPT)
|
||||||
|
_PROTOTYPE(extern void clear_uxsinfo,(void));
|
||||||
|
--
|
||||||
|
1.8.3.1
|
||||||
|
|
||||||
@ -0,0 +1,92 @@
|
|||||||
|
From f8ff9c832d45d44007e936ad3110c227241612d8 Mon Sep 17 00:00:00 2001
|
||||||
|
From: kangenbo <kangenbo@huawei.com>
|
||||||
|
Date: Mon, 15 Apr 2019 16:38:23 -0400
|
||||||
|
Subject: [PATCH 52/83] endpoint(pty),bug fix: list the same fd in a different process
|
||||||
|
|
||||||
|
Description: This change is simillar to 28f96d58 (endpoint(pipe),fix: list the same
|
||||||
|
fd in a different process). 28f96d58 is about pipe. This change is about pty.
|
||||||
|
|
||||||
|
Source: backport patch from github, see following in detail:
|
||||||
|
https://github.com/lsof-org/lsof-linux/commit/cea5e144ee6ac16fd0c82c0a7d25790d5f60b823
|
||||||
|
|
||||||
|
---
|
||||||
|
dialects/linux/dnode.c | 10 +++++-----
|
||||||
|
proc.c | 4 ++--
|
||||||
|
proto.h | 2 +-
|
||||||
|
3 files changed, 8 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/dialects/linux/dnode.c b/dialects/linux/dnode.c
|
||||||
|
index ddd99cf..ee12227 100644
|
||||||
|
--- a/dialects/linux/dnode.c
|
||||||
|
+++ b/dialects/linux/dnode.c
|
||||||
|
@@ -307,7 +307,8 @@ enter_ptmxi(mn)
|
||||||
|
*/
|
||||||
|
|
||||||
|
pxinfo_t *
|
||||||
|
-find_ptyepti(lf, m, pp)
|
||||||
|
+find_ptyepti(pid, lf, m, pp)
|
||||||
|
+ int pid;
|
||||||
|
struct lfile *lf; /* pseudoterminal's lfile */
|
||||||
|
int m; /* minor number type:
|
||||||
|
* 0 == use tty_index
|
||||||
|
@@ -319,6 +320,7 @@ find_ptyepti(lf, m, pp)
|
||||||
|
int h; /* hash result */
|
||||||
|
INODETYPE mn; /* minor number */
|
||||||
|
pxinfo_t *pi; /* pseudoterminal info pointer */
|
||||||
|
+ struct lproc *ep;
|
||||||
|
|
||||||
|
|
||||||
|
mn = m ? GET_MIN_DEV(lf->rdev) : lf->tty_index;
|
||||||
|
@@ -332,12 +334,10 @@ find_ptyepti(lf, m, pp)
|
||||||
|
while (pi) {
|
||||||
|
if (pi->ino == mn) {
|
||||||
|
ef = pi->lf;
|
||||||
|
- if (((m && is_pty_ptmx(ef->rdev))
|
||||||
|
+ ep = &Lproc[pi->lpx];
|
||||||
|
+ if ((m && is_pty_ptmx(ef->rdev))
|
||||||
|
|| ((!m) && is_pty_slave(GET_MAJ_DEV(ef->rdev))))
|
||||||
|
- && strcmp(lf->fd, ef->fd)
|
||||||
|
- ) {
|
||||||
|
return(pi);
|
||||||
|
- }
|
||||||
|
}
|
||||||
|
pi = pi->next;
|
||||||
|
}
|
||||||
|
diff --git a/proc.c b/proc.c
|
||||||
|
index e4c3591..7fe3998 100644
|
||||||
|
--- a/proc.c
|
||||||
|
+++ b/proc.c
|
||||||
|
@@ -1443,7 +1443,7 @@ process_ptyinfo(f)
|
||||||
|
*/
|
||||||
|
pc = 1;
|
||||||
|
do {
|
||||||
|
- if ((pp = find_ptyepti(Lf, !mos, pp))) {
|
||||||
|
+ if ((pp = find_ptyepti(Lp->pid, Lf, !mos, pp))) {
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This pseudoterminal endpoint is linked to the
|
||||||
|
@@ -1468,7 +1468,7 @@ process_ptyinfo(f)
|
||||||
|
Lp->pss |= PS_SEC;
|
||||||
|
pc = 1;
|
||||||
|
do {
|
||||||
|
- if ((pp = find_ptyepti(Lf, !mos, pp))) {
|
||||||
|
+ if ((pp = find_ptyepti(Lp->pid, Lf, !mos, pp))) {
|
||||||
|
prt_ptyinfo(pp, (mos && pc), 0);
|
||||||
|
pp = pp->next;
|
||||||
|
pc = 0;
|
||||||
|
diff --git a/proto.h b/proto.h
|
||||||
|
index 7f65d67..2df360a 100644
|
||||||
|
--- a/proto.h
|
||||||
|
+++ b/proto.h
|
||||||
|
@@ -122,7 +122,7 @@ _PROTOTYPE(extern void process_uxsinfo,(int f));
|
||||||
|
# if defined(HASPTYEPT)
|
||||||
|
_PROTOTYPE(extern void clear_ptyinfo,(void));
|
||||||
|
_PROTOTYPE(extern void enter_ptmxi,(int mn));
|
||||||
|
-_PROTOTYPE(extern pxinfo_t *find_ptyepti,(struct lfile *lf,int m,pxinfo_t *pp));
|
||||||
|
+_PROTOTYPE(extern pxinfo_t *find_ptyepti,(int pid, struct lfile *lf,int m,pxinfo_t *pp));
|
||||||
|
_PROTOTYPE(extern int is_pty_slave,(int sm));
|
||||||
|
_PROTOTYPE(extern int is_pty_ptmx,(dev_t dev));
|
||||||
|
_PROTOTYPE(extern void process_ptyinfo,(int f));
|
||||||
|
--
|
||||||
|
1.8.3.1
|
||||||
|
|
||||||
@ -0,0 +1,43 @@
|
|||||||
|
From abbcbb099008dfed895adbd54d60f10e4129c7aa Mon Sep 17 00:00:00 2001
|
||||||
|
From: Masatake YAMATO <yamato@redhat.com>
|
||||||
|
Date: Wed, 5 Dec 2018 00:12:06 +0900
|
||||||
|
Subject: [PATCH 60/83] endpoint(pseudoterminal),bug fix: fix wrong Unix98 PTY
|
||||||
|
slaves major number detection
|
||||||
|
|
||||||
|
A typo was in the code detecting Unix98 PTY slave device.
|
||||||
|
|
||||||
|
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
|
||||||
|
---
|
||||||
|
dialects/linux/dnode.c | 15 ++++++++++++++-
|
||||||
|
1 file changed, 14 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/dialects/linux/dnode.c b/dialects/linux/dnode.c
|
||||||
|
index 68b6a04..fa60557 100644
|
||||||
|
--- a/dialects/linux/dnode.c
|
||||||
|
+++ b/dialects/linux/dnode.c
|
||||||
|
@@ -354,8 +354,21 @@ int
|
||||||
|
is_pty_slave(sm)
|
||||||
|
int sm; /* slave major device number */
|
||||||
|
{
|
||||||
|
+ /* linux/Documentation/admin-guide/devices.txt
|
||||||
|
+ -------------------------------------------
|
||||||
|
+ 136-143 char Unix98 PTY slaves
|
||||||
|
+ 0 = /dev/pts/0 First Unix98 pseudo-TTY
|
||||||
|
+ 1 = /dev/pts/1 Second Unix98 pseudo-TTY
|
||||||
|
+ ...
|
||||||
|
+
|
||||||
|
+ These device nodes are automatically generated with
|
||||||
|
+ the proper permissions and modes by mounting the
|
||||||
|
+ devpts filesystem onto /dev/pts with the appropriate
|
||||||
|
+ mount options (distribution dependent, however, on
|
||||||
|
+ *most* distributions the appropriate options are
|
||||||
|
+ "mode=0620,gid=<gid of the "tty" group>".) */
|
||||||
|
if ((UNIX98_PTY_SLAVE_MAJOR <= sm)
|
||||||
|
- && (sm < (UNIX98_PTY_SLAVE_MAJOR + UNIX98_PTY_SLAVE_MAJOR))
|
||||||
|
+ && (sm < (UNIX98_PTY_SLAVE_MAJOR + UNIX98_PTY_MAJOR_COUNT))
|
||||||
|
) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
--
|
||||||
|
1.8.3.1
|
||||||
|
|
||||||
12
PATCH-FIX-OPENEULER-man-page-section.patch
Normal file
12
PATCH-FIX-OPENEULER-man-page-section.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
diff --git a/Lsof.8 b/Lsof.8
|
||||||
|
index 5ad6234..4453fb4 100644
|
||||||
|
--- a/Lsof.8
|
||||||
|
+++ b/Lsof.8
|
||||||
|
@@ -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 \{\
|
||||||
|
|
||||||
BIN
lsof-4.93.2.tar.gz
Normal file
BIN
lsof-4.93.2.tar.gz
Normal file
Binary file not shown.
11
lsof-tirpc.patch
Normal file
11
lsof-tirpc.patch
Normal file
@ -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 <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 # }
|
||||||
52
lsof.spec
Normal file
52
lsof.spec
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
Name: lsof
|
||||||
|
Version: 4.93.2
|
||||||
|
Release: 1
|
||||||
|
Summary: A tool for list open files
|
||||||
|
License: zlib and Sendmail and LGPLv2+
|
||||||
|
URL: https://people.freebsd.org/~abe/
|
||||||
|
Source0: https://github.com/lsof-org/%{name}/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
|
||||||
|
Source1: upstream2downstream.sh
|
||||||
|
Patch0: PATCH-FIX-OPENEULER-man-page-section.patch
|
||||||
|
Patch6002: 0050-endpoint-pipe-fix-list-the-same-fd-in-a-different-pr.patch
|
||||||
|
Patch6003: 0052-endpoint-pty-bug-fix-list-the-same-fd-in-a-different.patch
|
||||||
|
Patch6004: 0060-endpoint-pseudoterminal-bug-fix-fix-wrong-Unix98-PTY.patch
|
||||||
|
|
||||||
|
BuildRequires: gcc git libtirpc-devel libselinux-devel
|
||||||
|
|
||||||
|
%description
|
||||||
|
Lsof is a free, open-source, Unix administrative tool for displays information
|
||||||
|
about files open to Unix processes. It runs on many Unix dialects.
|
||||||
|
|
||||||
|
%package help
|
||||||
|
Summary: Doc files for %{name}
|
||||||
|
BuildArch: noarch
|
||||||
|
|
||||||
|
%description help
|
||||||
|
The %{name}-help package contains doc files for %{name}.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
ls
|
||||||
|
%autosetup -n %{name}-%{version} -p1 -S git
|
||||||
|
|
||||||
|
%build
|
||||||
|
./Configure -n linux
|
||||||
|
%make_build DEBUG="%{build_cflags} -I/usr/include/tirpc" CFGL="%{build_ldflags} -L./lib -llsof -lselinux -ltirpc"
|
||||||
|
#%make_build DEBUG="-I/usr/include/tirpc" CFGL="-L./lib -llsof -lselinux -ltirpc"
|
||||||
|
|
||||||
|
%install
|
||||||
|
mkdir -p %{buildroot}/%{_bindir}
|
||||||
|
install -p -m 0755 lsof %{buildroot}/%{_bindir}
|
||||||
|
mkdir -p %{buildroot}/%{_mandir}/man1
|
||||||
|
install -p -m 0644 Lsof.8 %{buildroot}/%{_mandir}/man1/lsof.1
|
||||||
|
|
||||||
|
%files
|
||||||
|
%doc 00CREDITS
|
||||||
|
%{_bindir}/%{name}
|
||||||
|
|
||||||
|
%files help
|
||||||
|
%doc 00README 00FAQ 00LSOF-L 00QUICKSTART
|
||||||
|
%{_mandir}/man*/*
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Tue Sep 3 2019 luhuaxin <luhuaxin@huawei.com> - 4.93.2-1
|
||||||
|
- Package init
|
||||||
45
upstream2downstream.sh
Executable file
45
upstream2downstream.sh
Executable file
@ -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 <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.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* RELEASE* "$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
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user