Message ID | 20211028183519.160772-10-Anna.Schumaker@Netapp.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add a tool for using the new sysfs files | expand |
Hello, On 10/28/21 14:35, schumaker.anna@gmail.com wrote: > From: Anna Schumaker <Anna.Schumaker@Netapp.com> > > And create a shell script that launches the python program from the > $(libdir) > > Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com> > --- > configure.ac | 1 + > tools/Makefile.am | 2 +- > tools/rpcctl/Makefile.am | 20 ++++++++++++++++++++ > tools/rpcctl/rpcctl | 5 +++++ > 4 files changed, 27 insertions(+), 1 deletion(-) > create mode 100644 tools/rpcctl/Makefile.am > create mode 100644 tools/rpcctl/rpcctl > > diff --git a/configure.ac b/configure.ac > index 93626d62be40..dcd3be0c8a8b 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -737,6 +737,7 @@ AC_CONFIG_FILES([ > tools/rpcgen/Makefile > tools/mountstats/Makefile > tools/nfs-iostat/Makefile > + tools/rpcctl/Makefile > tools/nfsdclnts/Makefile > tools/nfsconf/Makefile > tools/nfsdclddb/Makefile > diff --git a/tools/Makefile.am b/tools/Makefile.am > index 9b4b0803db39..c3feabbec681 100644 > --- a/tools/Makefile.am > +++ b/tools/Makefile.am > @@ -12,6 +12,6 @@ if CONFIG_NFSDCLD > OPTDIRS += nfsdclddb > endif > > -SUBDIRS = locktest rpcdebug nlmtest mountstats nfs-iostat nfsdclnts $(OPTDIRS) > +SUBDIRS = locktest rpcdebug nlmtest mountstats nfs-iostat rpcctl nfsdclnts $(OPTDIRS) > > MAINTAINERCLEANFILES = Makefile.in > diff --git a/tools/rpcctl/Makefile.am b/tools/rpcctl/Makefile.am > new file mode 100644 > index 000000000000..f4237dbc89e5 > --- /dev/null > +++ b/tools/rpcctl/Makefile.am > @@ -0,0 +1,20 @@ > +## Process this file with automake to produce Makefile.in > +PYTHON_FILES = rpcctl.py client.py switch.py sysfs.py xprt.py > +tooldir = $(DESTDIR)$(libdir)/rpcctl > + > +man8_MANS = rpcctl.man > + > +all-local: $(PYTHON_FILES) > + > +install-data-hook: > + mkdir -p $(tooldir) > + for f in $(PYTHON_FILES) ; do \ > + $(INSTALL) -m 644 $$f $(tooldir)/$$f ; \ > + done > + chmod +x $(tooldir)/rpcctl.py > + $(INSTALL) -m 755 rpcctl $(DESTDIR)$(sbindir)/rpcctl > + sed -i "s|LIBDIR=.|LIBDIR=$(tooldir)|" $(DESTDIR)$(sbindir)/rpcctl A couple issues here.... * Changing a file after installed breaks rpm process since it changes the checksum of the file so the process thinks it is an undeclared file. * Why is the $(sbindir)/rpcctl wrapper even needed? Why not simply put the code that is in $(tooldir)/rpcctl.py in the /usr/sbin/rpcctl? * It appears the proper place to put .py modules is under /usr/lib/python-<ver>/rpcctl not /usr/lib64/rpcctl Finally when I manually set LIBDIR=/usr/lib64/rpcctl in the /usr/sbin/rpcctl wrapper all I got was # rpcctl --help ERROR: sysfs is not mounted So I know it was seeing sys.py module but not seeing /sys/kernel/sunrpc/ which does exist. # ls /sys/kernel/sunrpc/ ./ ../ rpc-clients/ xprt-switches/ So my suggestion is get rid of that wrapper and look under /usr/lib/python-<ver>/rpcctl for the .py modules. steved. > + > + > + > +MAINTAINERCLEANFILES=Makefile.in > diff --git a/tools/rpcctl/rpcctl b/tools/rpcctl/rpcctl > new file mode 100644 > index 000000000000..4cc35e1ea3f9 > --- /dev/null > +++ b/tools/rpcctl/rpcctl > @@ -0,0 +1,5 @@ > +#!/bin/bash > +LIBDIR=. > +PYTHON3=/usr/bin/python > + > +exec $PYTHON3 $LIBDIR/rpcctl.py $* >
On 11/8/21 12:15, Steve Dickson wrote: > Hello, > > On 10/28/21 14:35, schumaker.anna@gmail.com wrote: >> From: Anna Schumaker <Anna.Schumaker@Netapp.com> >> >> And create a shell script that launches the python program from the >> $(libdir) >> >> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com> >> --- >> configure.ac | 1 + >> tools/Makefile.am | 2 +- >> tools/rpcctl/Makefile.am | 20 ++++++++++++++++++++ >> tools/rpcctl/rpcctl | 5 +++++ >> 4 files changed, 27 insertions(+), 1 deletion(-) >> create mode 100644 tools/rpcctl/Makefile.am >> create mode 100644 tools/rpcctl/rpcctl >> >> diff --git a/configure.ac b/configure.ac >> index 93626d62be40..dcd3be0c8a8b 100644 >> --- a/configure.ac >> +++ b/configure.ac >> @@ -737,6 +737,7 @@ AC_CONFIG_FILES([ >> tools/rpcgen/Makefile >> tools/mountstats/Makefile >> tools/nfs-iostat/Makefile >> + tools/rpcctl/Makefile >> tools/nfsdclnts/Makefile >> tools/nfsconf/Makefile >> tools/nfsdclddb/Makefile >> diff --git a/tools/Makefile.am b/tools/Makefile.am >> index 9b4b0803db39..c3feabbec681 100644 >> --- a/tools/Makefile.am >> +++ b/tools/Makefile.am >> @@ -12,6 +12,6 @@ if CONFIG_NFSDCLD >> OPTDIRS += nfsdclddb >> endif >> -SUBDIRS = locktest rpcdebug nlmtest mountstats nfs-iostat nfsdclnts >> $(OPTDIRS) >> +SUBDIRS = locktest rpcdebug nlmtest mountstats nfs-iostat rpcctl >> nfsdclnts $(OPTDIRS) >> MAINTAINERCLEANFILES = Makefile.in >> diff --git a/tools/rpcctl/Makefile.am b/tools/rpcctl/Makefile.am >> new file mode 100644 >> index 000000000000..f4237dbc89e5 >> --- /dev/null >> +++ b/tools/rpcctl/Makefile.am >> @@ -0,0 +1,20 @@ >> +## Process this file with automake to produce Makefile.in >> +PYTHON_FILES = rpcctl.py client.py switch.py sysfs.py xprt.py >> +tooldir = $(DESTDIR)$(libdir)/rpcctl >> + >> +man8_MANS = rpcctl.man >> + >> +all-local: $(PYTHON_FILES) >> + >> +install-data-hook: >> + mkdir -p $(tooldir) >> + for f in $(PYTHON_FILES) ; do \ >> + $(INSTALL) -m 644 $$f $(tooldir)/$$f ; \ >> + done >> + chmod +x $(tooldir)/rpcctl.py >> + $(INSTALL) -m 755 rpcctl $(DESTDIR)$(sbindir)/rpcctl >> + sed -i "s|LIBDIR=.|LIBDIR=$(tooldir)|" $(DESTDIR)$(sbindir)/rpcctl > A couple issues here.... > > * Changing a file after installed breaks rpm process since it > changes the checksum of the file so the process thinks it is > an undeclared file. > > * Why is the $(sbindir)/rpcctl wrapper even needed? > Why not simply put the code that is in $(tooldir)/rpcctl.py > in the /usr/sbin/rpcctl? > > * It appears the proper place to put .py modules is > under /usr/lib/python-<ver>/rpcctl not /usr/lib64/rpcctl Correction: under /usr/lib/python-<ver>/site-packages/ > > Finally when I manually set LIBDIR=/usr/lib64/rpcctl in > the /usr/sbin/rpcctl wrapper all I got was > # rpcctl --help > ERROR: sysfs is not mounted > > So I know it was seeing sys.py module but not seeing > /sys/kernel/sunrpc/ which does exist. > > # ls /sys/kernel/sunrpc/ > ./ ../ rpc-clients/ xprt-switches/ > > So my suggestion is get rid of that wrapper > and look under /usr/lib/python-<ver>/rpcctl The same correction here... under /usr/lib/python-<ver>/site-packages/rpcctl steved. > for the .py modules. > > steved. > >> + >> + >> + >> +MAINTAINERCLEANFILES=Makefile.in >> diff --git a/tools/rpcctl/rpcctl b/tools/rpcctl/rpcctl >> new file mode 100644 >> index 000000000000..4cc35e1ea3f9 >> --- /dev/null >> +++ b/tools/rpcctl/rpcctl >> @@ -0,0 +1,5 @@ >> +#!/bin/bash >> +LIBDIR=. >> +PYTHON3=/usr/bin/python >> + >> +exec $PYTHON3 $LIBDIR/rpcctl.py $* >>
On Mon, Nov 8, 2021 at 12:19 PM Steve Dickson <steved@redhat.com> wrote: > > > > On 11/8/21 12:15, Steve Dickson wrote: > > Hello, > > > > On 10/28/21 14:35, schumaker.anna@gmail.com wrote: > >> From: Anna Schumaker <Anna.Schumaker@Netapp.com> > >> > >> And create a shell script that launches the python program from the > >> $(libdir) > >> > >> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com> > >> --- > >> configure.ac | 1 + > >> tools/Makefile.am | 2 +- > >> tools/rpcctl/Makefile.am | 20 ++++++++++++++++++++ > >> tools/rpcctl/rpcctl | 5 +++++ > >> 4 files changed, 27 insertions(+), 1 deletion(-) > >> create mode 100644 tools/rpcctl/Makefile.am > >> create mode 100644 tools/rpcctl/rpcctl > >> > >> diff --git a/configure.ac b/configure.ac > >> index 93626d62be40..dcd3be0c8a8b 100644 > >> --- a/configure.ac > >> +++ b/configure.ac > >> @@ -737,6 +737,7 @@ AC_CONFIG_FILES([ > >> tools/rpcgen/Makefile > >> tools/mountstats/Makefile > >> tools/nfs-iostat/Makefile > >> + tools/rpcctl/Makefile > >> tools/nfsdclnts/Makefile > >> tools/nfsconf/Makefile > >> tools/nfsdclddb/Makefile > >> diff --git a/tools/Makefile.am b/tools/Makefile.am > >> index 9b4b0803db39..c3feabbec681 100644 > >> --- a/tools/Makefile.am > >> +++ b/tools/Makefile.am > >> @@ -12,6 +12,6 @@ if CONFIG_NFSDCLD > >> OPTDIRS += nfsdclddb > >> endif > >> -SUBDIRS = locktest rpcdebug nlmtest mountstats nfs-iostat nfsdclnts > >> $(OPTDIRS) > >> +SUBDIRS = locktest rpcdebug nlmtest mountstats nfs-iostat rpcctl > >> nfsdclnts $(OPTDIRS) > >> MAINTAINERCLEANFILES = Makefile.in > >> diff --git a/tools/rpcctl/Makefile.am b/tools/rpcctl/Makefile.am > >> new file mode 100644 > >> index 000000000000..f4237dbc89e5 > >> --- /dev/null > >> +++ b/tools/rpcctl/Makefile.am > >> @@ -0,0 +1,20 @@ > >> +## Process this file with automake to produce Makefile.in > >> +PYTHON_FILES = rpcctl.py client.py switch.py sysfs.py xprt.py > >> +tooldir = $(DESTDIR)$(libdir)/rpcctl > >> + > >> +man8_MANS = rpcctl.man > >> + > >> +all-local: $(PYTHON_FILES) > >> + > >> +install-data-hook: > >> + mkdir -p $(tooldir) > >> + for f in $(PYTHON_FILES) ; do \ > >> + $(INSTALL) -m 644 $$f $(tooldir)/$$f ; \ > >> + done > >> + chmod +x $(tooldir)/rpcctl.py > >> + $(INSTALL) -m 755 rpcctl $(DESTDIR)$(sbindir)/rpcctl > >> + sed -i "s|LIBDIR=.|LIBDIR=$(tooldir)|" $(DESTDIR)$(sbindir)/rpcctl > > A couple issues here.... > > > > * Changing a file after installed breaks rpm process since it > > changes the checksum of the file so the process thinks it is > > an undeclared file. > > > > * Why is the $(sbindir)/rpcctl wrapper even needed? > > Why not simply put the code that is in $(tooldir)/rpcctl.py > > in the /usr/sbin/rpcctl? > > > > * It appears the proper place to put .py modules is > > under /usr/lib/python-<ver>/rpcctl not /usr/lib64/rpcctl > Correction: under /usr/lib/python-<ver>/site-packages/ Sure > > > > Finally when I manually set LIBDIR=/usr/lib64/rpcctl in > > the /usr/sbin/rpcctl wrapper all I got was > > # rpcctl --help > > ERROR: sysfs is not mounted > > > > So I know it was seeing sys.py module but not seeing > > /sys/kernel/sunrpc/ which does exist. > > > > # ls /sys/kernel/sunrpc/ > > ./ ../ rpc-clients/ xprt-switches/ > > > > So my suggestion is get rid of that wrapper > > and look under /usr/lib/python-<ver>/rpcctl > The same correction here... under > /usr/lib/python-<ver>/site-packages/rpcctl Okay, I will try all that. Thanks for looking it over! Anna > > steved. > > for the .py modules. > > > > steved. > > > >> + > >> + > >> + > >> +MAINTAINERCLEANFILES=Makefile.in > >> diff --git a/tools/rpcctl/rpcctl b/tools/rpcctl/rpcctl > >> new file mode 100644 > >> index 000000000000..4cc35e1ea3f9 > >> --- /dev/null > >> +++ b/tools/rpcctl/rpcctl > >> @@ -0,0 +1,5 @@ > >> +#!/bin/bash > >> +LIBDIR=. > >> +PYTHON3=/usr/bin/python > >> + > >> +exec $PYTHON3 $LIBDIR/rpcctl.py $* > >> >
diff --git a/configure.ac b/configure.ac index 93626d62be40..dcd3be0c8a8b 100644 --- a/configure.ac +++ b/configure.ac @@ -737,6 +737,7 @@ AC_CONFIG_FILES([ tools/rpcgen/Makefile tools/mountstats/Makefile tools/nfs-iostat/Makefile + tools/rpcctl/Makefile tools/nfsdclnts/Makefile tools/nfsconf/Makefile tools/nfsdclddb/Makefile diff --git a/tools/Makefile.am b/tools/Makefile.am index 9b4b0803db39..c3feabbec681 100644 --- a/tools/Makefile.am +++ b/tools/Makefile.am @@ -12,6 +12,6 @@ if CONFIG_NFSDCLD OPTDIRS += nfsdclddb endif -SUBDIRS = locktest rpcdebug nlmtest mountstats nfs-iostat nfsdclnts $(OPTDIRS) +SUBDIRS = locktest rpcdebug nlmtest mountstats nfs-iostat rpcctl nfsdclnts $(OPTDIRS) MAINTAINERCLEANFILES = Makefile.in diff --git a/tools/rpcctl/Makefile.am b/tools/rpcctl/Makefile.am new file mode 100644 index 000000000000..f4237dbc89e5 --- /dev/null +++ b/tools/rpcctl/Makefile.am @@ -0,0 +1,20 @@ +## Process this file with automake to produce Makefile.in +PYTHON_FILES = rpcctl.py client.py switch.py sysfs.py xprt.py +tooldir = $(DESTDIR)$(libdir)/rpcctl + +man8_MANS = rpcctl.man + +all-local: $(PYTHON_FILES) + +install-data-hook: + mkdir -p $(tooldir) + for f in $(PYTHON_FILES) ; do \ + $(INSTALL) -m 644 $$f $(tooldir)/$$f ; \ + done + chmod +x $(tooldir)/rpcctl.py + $(INSTALL) -m 755 rpcctl $(DESTDIR)$(sbindir)/rpcctl + sed -i "s|LIBDIR=.|LIBDIR=$(tooldir)|" $(DESTDIR)$(sbindir)/rpcctl + + + +MAINTAINERCLEANFILES=Makefile.in diff --git a/tools/rpcctl/rpcctl b/tools/rpcctl/rpcctl new file mode 100644 index 000000000000..4cc35e1ea3f9 --- /dev/null +++ b/tools/rpcctl/rpcctl @@ -0,0 +1,5 @@ +#!/bin/bash +LIBDIR=. +PYTHON3=/usr/bin/python + +exec $PYTHON3 $LIBDIR/rpcctl.py $*