diff mbox series

[v5,9/9] rpcctl: Add installation to the Makefile

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

Commit Message

Anna Schumaker Oct. 28, 2021, 6:35 p.m. UTC
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

Comments

Steve Dickson Nov. 8, 2021, 5:15 p.m. UTC | #1
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 $*
>
Steve Dickson Nov. 8, 2021, 5:19 p.m. UTC | #2
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 $*
>>
Anna Schumaker Nov. 8, 2021, 6:15 p.m. UTC | #3
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 mbox series

Patch

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 $*