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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 11/8/21 12:15, Steve Dickson wrote:
Hello,

On 10/28/21 14:35, schumaker.anna@xxxxxxxxx wrote:
From: Anna Schumaker <Anna.Schumaker@xxxxxxxxxx>

And create a shell script that launches the python program from the
$(libdir)

Signed-off-by: Anna Schumaker <Anna.Schumaker@xxxxxxxxxx>
---
  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 $*





[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux