public inbox for linux-nfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Calum Mackay <calum.mackay@oracle.com>
To: Jeff Layton <jlayton@kernel.org>
Cc: Calum Mackay <calum.mackay@oracle.com>, linux-nfs@vger.kernel.org
Subject: Re: [PATCH pynfs] Move to xdrlib3
Date: Thu, 23 Jan 2025 21:17:51 +0000	[thread overview]
Message-ID: <5bcfaa2a-95e3-449e-9633-e167e662f1cb@oracle.com> (raw)
In-Reply-To: <d409eae2976c25f0121b1011bb2d1aff181aa4fa.camel@kernel.org>

On 23/01/2025 8:50 pm, Jeff Layton wrote:
> On Thu, 2025-01-23 at 19:36 +0000, Calum Mackay wrote:
>> On 22/01/2025 5:13 pm, Jeff Layton wrote:
>>> As of python 3.13, the xdrlib module is no longer included. Fortunately
>>> there is an xdrlib3 module, which is a fork of the bundled module:
>>>
>>>       https://pypi.org/project/xdrlib3/
>>>
>>> Change pynfs to use that instead and revise the documentation to include
>>> a step to install that module.
>>>
>>> Signed-off-by: Jeff Layton <jlayton@kernel.org>
>>> ---
>>>    README                                | 8 +++++++-
>>>    nfs4.0/lib/rpc/rpc.py                 | 2 +-
>>>    nfs4.0/lib/rpc/rpcsec/sec_auth_sys.py | 2 +-
>>>    nfs4.0/nfs4lib.py                     | 2 +-
>>>    nfs4.0/nfs4server.py                  | 2 +-
>>>    rpc/security.py                       | 2 +-
>>>    xdr/xdrgen.py                         | 4 ++--
>>>    7 files changed, 14 insertions(+), 8 deletions(-)
>>>
>>> diff --git a/README b/README
>>> index b8b4e775f7766086f870f2dda4a60b3e9f9bac6f..efdc23807e8107b8fcd575e8a4c80b9c73e3cd07 100644
>>> --- a/README
>>> +++ b/README
>>> @@ -14,8 +14,14 @@ Install dependent modules:
>>>    * openSUSE
>>>    	zypper install krb5-devel python3-devel swig python3-gssapi python3-ply
>>>    
>>> -You can prepare both for use with
>>> +Install the xdrlib3 module:
>>> +
>>> +	pip install xdrlib3
>>
>> Thanks Jeff,
>>
>> I see that Debian's unstable & testing suites have a pkg
>> (python3-standard-xdrlib) to provide this post-removal from standard
>> Python. Of course, that's not in general release, yet, but then neither
>> is 3.13 itself. Not sure if we should mention it?
>>
>> e.g: your distro may provide xdrlib3 via a pkg (details…), or you may
>> install it via pip…
>> or similar?
>>
>> cheers,
>> c.
>>
>>
> 
> Sure, I'm fine with phrasing it that way. Mind fixing it up when you
> merge it?

Yes, of course! Thanks again,

cheers,
c.


> 
> I'm on Fedora 41 which ships with python 3.13, so I think it is in
> general release now. Fedora doesn't have xdrlib3 packaged however, so I
> just used pip.
> 
>>
>>> +
>>> +You can prepare both versions for use with
>>> +
>>>    	./setup.py build
>>> +
>>>    which will create auto-generated files and compile any shared libraries
>>>    in place.
>>>    
>>> diff --git a/nfs4.0/lib/rpc/rpc.py b/nfs4.0/lib/rpc/rpc.py
>>> index 243ef9e31aa83eb6be18800065b63cf78d99f833..475179042530a8d602a51e7bad1af7958ff5dd56 100644
>>> --- a/nfs4.0/lib/rpc/rpc.py
>>> +++ b/nfs4.0/lib/rpc/rpc.py
>>> @@ -9,7 +9,7 @@
>>>    
>>>    from __future__ import absolute_import
>>>    import struct
>>> -import xdrlib
>>> +import xdrlib3 as xdrlib
>>>    import socket
>>>    import select
>>>    import threading
>>> diff --git a/nfs4.0/lib/rpc/rpcsec/sec_auth_sys.py b/nfs4.0/lib/rpc/rpcsec/sec_auth_sys.py
>>> index 1e990a369e6588f24dff75e9569c104d775ff710..2581a1e1dca22f637dc32144a05c88c66c57665e 100644
>>> --- a/nfs4.0/lib/rpc/rpcsec/sec_auth_sys.py
>>> +++ b/nfs4.0/lib/rpc/rpcsec/sec_auth_sys.py
>>> @@ -1,7 +1,7 @@
>>>    from .base import SecFlavor, SecError
>>>    from rpc.rpc_const import AUTH_SYS
>>>    from rpc.rpc_type import opaque_auth
>>> -from xdrlib import Packer, Error
>>> +from xdrlib3 import Packer, Error
>>>    
>>>    class SecAuthSys(SecFlavor):
>>>        # XXX need better defaults
>>> diff --git a/nfs4.0/nfs4lib.py b/nfs4.0/nfs4lib.py
>>> index eddcd862bc2fe2061414fb4de61e52aed93495ae..2337d8cd190de90e4d158b3ef9e3dfd6a61027c5 100644
>>> --- a/nfs4.0/nfs4lib.py
>>> +++ b/nfs4.0/nfs4lib.py
>>> @@ -41,7 +41,7 @@ import xdrdef.nfs4_const as nfs4_const
>>>    from  xdrdef.nfs4_const import *
>>>    import xdrdef.nfs4_type as nfs4_type
>>>    from xdrdef.nfs4_type import *
>>> -from xdrlib import Error as XDRError
>>> +from xdrlib3 import Error as XDRError
>>>    import xdrdef.nfs4_pack as nfs4_pack
>>>    
>>>    import nfs_ops
>>> diff --git a/nfs4.0/nfs4server.py b/nfs4.0/nfs4server.py
>>> index 2dbad3046709ea57c1503a36649d85c25e6301a8..10bf28ee5794684912fa8e6d19406e06bf88b742 100755
>>> --- a/nfs4.0/nfs4server.py
>>> +++ b/nfs4.0/nfs4server.py
>>> @@ -34,7 +34,7 @@ import time, StringIO, random, traceback, codecs
>>>    import StringIO
>>>    import nfs4state
>>>    from nfs4state import NFS4Error, printverf
>>> -from xdrlib import Error as XDRError
>>> +from xdrlib3 import Error as XDRError
>>>    
>>>    unacceptable_names = [ "", ".", ".." ]
>>>    unacceptable_characters = [ "/", "~", "#", ]
>>> diff --git a/rpc/security.py b/rpc/security.py
>>> index 0682f438cd6237334c59e7cb280c8b192e7c8a76..789280c5d7328a928b2f6c1af95397d17180eff9 100644
>>> --- a/rpc/security.py
>>> +++ b/rpc/security.py
>>> @@ -3,7 +3,7 @@ from .rpc_const import AUTH_NONE, AUTH_SYS, RPCSEC_GSS, SUCCESS, CALL, \
>>>    from .rpc_type import opaque_auth, authsys_parms
>>>    from .rpc_pack import RPCPacker, RPCUnpacker
>>>    from .gss_pack import GSSPacker, GSSUnpacker
>>> -from xdrlib import Packer, Unpacker
>>> +from xdrlib3 import Packer, Unpacker
>>>    from . import rpclib
>>>    from .gss_const import *
>>>    from . import gss_type
>>> diff --git a/xdr/xdrgen.py b/xdr/xdrgen.py
>>> index b472e50676799915ea3b6a14f6686a5973484fb2..f802ba80045e79716a71fa7a64d72f1b8831128d 100755
>>> --- a/xdr/xdrgen.py
>>> +++ b/xdr/xdrgen.py
>>> @@ -1357,8 +1357,8 @@ pack_header = """\
>>>    import sys,os
>>>    from . import %s as const
>>>    from . import %s as types
>>> -import xdrlib
>>> -from xdrlib import Error as XDRError
>>> +import xdrlib3 as xdrlib
>>> +from xdrlib3 import Error as XDRError
>>>    
>>>    class nullclass(object):
>>>        pass
>>>
>>> ---
>>> base-commit: d042a1f6421985b7c9d17edf8eb0d59bcf7f5908
>>> change-id: 20250122-master-68414e8f6d5f
>>>
>>> Best regards,
>>
>>
> 



  reply	other threads:[~2025-01-23 21:17 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-01-22 17:13 [PATCH pynfs] Move to xdrlib3 Jeff Layton
2025-01-23 19:36 ` Calum Mackay
2025-01-23 20:50   ` Jeff Layton
2025-01-23 21:17     ` Calum Mackay [this message]
2025-02-10 22:38     ` Calum Mackay

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5bcfaa2a-95e3-449e-9633-e167e662f1cb@oracle.com \
    --to=calum.mackay@oracle.com \
    --cc=jlayton@kernel.org \
    --cc=linux-nfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox