* [PATCH pynfs] Move to xdrlib3
@ 2025-01-22 17:13 Jeff Layton
2025-01-23 19:36 ` Calum Mackay
0 siblings, 1 reply; 5+ messages in thread
From: Jeff Layton @ 2025-01-22 17:13 UTC (permalink / raw)
To: calum.mackay; +Cc: linux-nfs, Jeff Layton
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
+
+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,
--
Jeff Layton <jlayton@kernel.org>
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH pynfs] Move to xdrlib3
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
0 siblings, 1 reply; 5+ messages in thread
From: Calum Mackay @ 2025-01-23 19:36 UTC (permalink / raw)
To: Jeff Layton; +Cc: Calum Mackay, linux-nfs
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.
> +
> +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,
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH pynfs] Move to xdrlib3
2025-01-23 19:36 ` Calum Mackay
@ 2025-01-23 20:50 ` Jeff Layton
2025-01-23 21:17 ` Calum Mackay
2025-02-10 22:38 ` Calum Mackay
0 siblings, 2 replies; 5+ messages in thread
From: Jeff Layton @ 2025-01-23 20:50 UTC (permalink / raw)
To: Calum Mackay; +Cc: linux-nfs
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?
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,
>
>
--
Jeff Layton <jlayton@kernel.org>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH pynfs] Move to xdrlib3
2025-01-23 20:50 ` Jeff Layton
@ 2025-01-23 21:17 ` Calum Mackay
2025-02-10 22:38 ` Calum Mackay
1 sibling, 0 replies; 5+ messages in thread
From: Calum Mackay @ 2025-01-23 21:17 UTC (permalink / raw)
To: Jeff Layton; +Cc: Calum Mackay, linux-nfs
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,
>>
>>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH pynfs] Move to xdrlib3
2025-01-23 20:50 ` Jeff Layton
2025-01-23 21:17 ` Calum Mackay
@ 2025-02-10 22:38 ` Calum Mackay
1 sibling, 0 replies; 5+ messages in thread
From: Calum Mackay @ 2025-02-10 22:38 UTC (permalink / raw)
To: Jeff Layton; +Cc: Calum Mackay, linux-nfs
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?
>
> 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.
Applied, with the fixed-up README.
thanks very much Jeff, apols for the delay.
cheers,
c.
>
>>
>>> +
>>> +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,
>>
>>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-02-10 22:39 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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
2025-02-10 22:38 ` Calum Mackay
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox