From 5040363854fc274ee750bac6cceefa8689dcc0d1 Mon Sep 17 00:00:00 2001 From: Alexander Bokovoy Date: Thu, 13 Jul 2017 14:52:01 +0300 Subject: [PATCH] Convert more rpc modules to python3 --- samba-4.7.0-py3-dcerpc-modules.patch | 344 +++++++++++++++++++++++++++ samba.spec | 6 +- 2 files changed, 349 insertions(+), 1 deletion(-) create mode 100644 samba-4.7.0-py3-dcerpc-modules.patch diff --git a/samba-4.7.0-py3-dcerpc-modules.patch b/samba-4.7.0-py3-dcerpc-modules.patch new file mode 100644 index 0000000..c2a573b --- /dev/null +++ b/samba-4.7.0-py3-dcerpc-modules.patch @@ -0,0 +1,344 @@ +From 6793948ff3224a23768c4e525867c3201365122e Mon Sep 17 00:00:00 2001 +From: Alexander Bokovoy +Date: Thu, 13 Jul 2017 15:37:47 +0300 +Subject: [PATCH 1/2] py3: Make sure to specify METH_VARARGS together with + METH_KEYWORDS + +A Python 3 bug https://bugs.python.org/issue15657 explains that one should +always use METH_VARARGS|METH_KEYWORDS when defining a function rather +than a lonely METH_KEYWORDS. We had only one definition like this in +Samba and it was the one that affects FreeIPA when running in Python 3 +mode. + +BUG: https://bugzilla.samba.org/show_bug.cgi?id=12905 + +Signed-off-by: Alexander Bokovoy +Reviewed-by: Andrew Bartlett +(cherry picked from commit 303a52d8d48e4f5754448a876fedc98d7829e2bb) +--- + source4/libnet/py_net.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/source4/libnet/py_net.c b/source4/libnet/py_net.c +index 78e60f6d6a6..7ddee2df92c 100644 +--- a/source4/libnet/py_net.c ++++ b/source4/libnet/py_net.c +@@ -745,7 +745,7 @@ static PyMethodDef net_obj_methods[] = { + {"replicate_init", (PyCFunction)py_net_replicate_init, METH_VARARGS|METH_KEYWORDS, py_net_replicate_init_doc}, + {"replicate_chunk", (PyCFunction)py_net_replicate_chunk, METH_VARARGS|METH_KEYWORDS, py_net_replicate_chunk_doc}, + {"replicate_decrypt", (PyCFunction)py_net_replicate_decrypt, METH_VARARGS|METH_KEYWORDS, py_net_replicate_decrypt_doc}, +- {"finddc", (PyCFunction)py_net_finddc, METH_KEYWORDS, py_net_finddc_doc}, ++ {"finddc", (PyCFunction)py_net_finddc, METH_VARARGS|METH_KEYWORDS, py_net_finddc_doc}, + { NULL } + }; + +-- +2.13.0 + + +From 02a40c970ccf3d6e9fb3a3c3b2052da93ff118a0 Mon Sep 17 00:00:00 2001 +From: Alexander Bokovoy +Date: Thu, 13 Jul 2017 14:49:12 +0300 +Subject: [PATCH 2/2] Build py3 versions of other rpc modules + +BUG: https://bugzilla.samba.org/show_bug.cgi?id=12905 + +Signed-off-by: Alexander Bokovoy +Reviewed-by: Andrew Bartlett + +Autobuild-User(master): Alexander Bokovoy +Autobuild-Date(master): Fri Jul 14 11:36:53 CEST 2017 on sn-devel-144 + +(cherry picked from commit 0ed918ef5276c459d46c9e77c9e9d84bc41d4b14) +--- + source4/librpc/wscript_build | 242 +++++++++++++++++++++---------------------- + 1 file changed, 121 insertions(+), 121 deletions(-) + +diff --git a/source4/librpc/wscript_build b/source4/librpc/wscript_build +index a14215bc5ac..e341432fa14 100644 +--- a/source4/librpc/wscript_build ++++ b/source4/librpc/wscript_build +@@ -252,159 +252,159 @@ for env in bld.gen_python_environments(): + realname='samba/dcerpc/ntlmssp.so' + ) + +-bld.SAMBA_PYTHON('python_srvsvc', +- source='../../librpc/gen_ndr/py_srvsvc.c', +- deps='RPC_NDR_SRVSVC pytalloc-util pyrpc_util', +- realname='samba/dcerpc/srvsvc.so' +- ) +- +-bld.SAMBA_PYTHON('python_echo', +- source='../../librpc/gen_ndr/py_echo.c', +- deps='RPC_NDR_ECHO pytalloc-util pyrpc_util', +- realname='samba/dcerpc/echo.so' +- ) ++ bld.SAMBA_PYTHON('python_srvsvc', ++ source='../../librpc/gen_ndr/py_srvsvc.c', ++ deps='RPC_NDR_SRVSVC pytalloc-util pyrpc_util', ++ realname='samba/dcerpc/srvsvc.so' ++ ) ++ ++ bld.SAMBA_PYTHON('python_echo', ++ source='../../librpc/gen_ndr/py_echo.c', ++ deps='RPC_NDR_ECHO pytalloc-util pyrpc_util', ++ realname='samba/dcerpc/echo.so' ++ ) + +-bld.SAMBA_PYTHON('python_dns', +- source='../../librpc/gen_ndr/py_dns.c', +- deps='NDR_DNS pytalloc-util pyrpc_util', +- realname='samba/dcerpc/dns.so' +- ) ++ bld.SAMBA_PYTHON('python_dns', ++ source='../../librpc/gen_ndr/py_dns.c', ++ deps='NDR_DNS pytalloc-util pyrpc_util', ++ realname='samba/dcerpc/dns.so' ++ ) + +-bld.SAMBA_PYTHON('python_winreg', +- source='../../librpc/gen_ndr/py_winreg.c', +- deps='RPC_NDR_WINREG pytalloc-util pyrpc_util', +- realname='samba/dcerpc/winreg.so' +- ) ++ bld.SAMBA_PYTHON('python_winreg', ++ source='../../librpc/gen_ndr/py_winreg.c', ++ deps='RPC_NDR_WINREG pytalloc-util pyrpc_util', ++ realname='samba/dcerpc/winreg.so' ++ ) + + +-bld.SAMBA_PYTHON('python_initshutdown', +- source='../../librpc/gen_ndr/py_initshutdown.c', +- deps='RPC_NDR_INITSHUTDOWN pytalloc-util pyrpc_util', +- realname='samba/dcerpc/initshutdown.so' +- ) ++ bld.SAMBA_PYTHON('python_initshutdown', ++ source='../../librpc/gen_ndr/py_initshutdown.c', ++ deps='RPC_NDR_INITSHUTDOWN pytalloc-util pyrpc_util', ++ realname='samba/dcerpc/initshutdown.so' ++ ) + + +-bld.SAMBA_PYTHON('python_epmapper', +- source='../../librpc/gen_ndr/py_epmapper.c', +- deps='dcerpc pytalloc-util pyrpc_util', +- realname='samba/dcerpc/epmapper.so' +- ) ++ bld.SAMBA_PYTHON('python_epmapper', ++ source='../../librpc/gen_ndr/py_epmapper.c', ++ deps='dcerpc pytalloc-util pyrpc_util', ++ realname='samba/dcerpc/epmapper.so' ++ ) + + +-bld.SAMBA_PYTHON('python_mgmt', +- source='../../librpc/gen_ndr/py_mgmt.c', +- deps='pytalloc-util dcerpc pyrpc_util', +- realname='samba/dcerpc/mgmt.so' +- ) ++ bld.SAMBA_PYTHON('python_mgmt', ++ source='../../librpc/gen_ndr/py_mgmt.c', ++ deps='pytalloc-util dcerpc pyrpc_util', ++ realname='samba/dcerpc/mgmt.so' ++ ) + + +-bld.SAMBA_PYTHON('python_atsvc', +- source='../../librpc/gen_ndr/py_atsvc.c', +- deps='RPC_NDR_ATSVC pytalloc-util pyrpc_util', +- realname='samba/dcerpc/atsvc.so' +- ) ++ bld.SAMBA_PYTHON('python_atsvc', ++ source='../../librpc/gen_ndr/py_atsvc.c', ++ deps='RPC_NDR_ATSVC pytalloc-util pyrpc_util', ++ realname='samba/dcerpc/atsvc.so' ++ ) + + +-bld.SAMBA_PYTHON('python_svcctl', +- source='../../librpc/gen_ndr/py_svcctl.c', +- deps='RPC_NDR_SVCCTL pytalloc-util pyrpc_util', +- realname='samba/dcerpc/svcctl.so' +- ) ++ bld.SAMBA_PYTHON('python_svcctl', ++ source='../../librpc/gen_ndr/py_svcctl.c', ++ deps='RPC_NDR_SVCCTL pytalloc-util pyrpc_util', ++ realname='samba/dcerpc/svcctl.so' ++ ) + + +-bld.SAMBA_PYTHON('python_wkssvc', +- source='../../librpc/gen_ndr/py_wkssvc.c', +- deps='RPC_NDR_WKSSVC pytalloc-util pyrpc_util', +- realname='samba/dcerpc/wkssvc.so' +- ) ++ bld.SAMBA_PYTHON('python_wkssvc', ++ source='../../librpc/gen_ndr/py_wkssvc.c', ++ deps='RPC_NDR_WKSSVC pytalloc-util pyrpc_util', ++ realname='samba/dcerpc/wkssvc.so' ++ ) + + +-bld.SAMBA_PYTHON('python_dfs', +- source='../../librpc/gen_ndr/py_dfs.c', +- deps='RPC_NDR_DFS pytalloc-util pyrpc_util', +- realname='samba/dcerpc/dfs.so' +- ) ++ bld.SAMBA_PYTHON('python_dfs', ++ source='../../librpc/gen_ndr/py_dfs.c', ++ deps='RPC_NDR_DFS pytalloc-util pyrpc_util', ++ realname='samba/dcerpc/dfs.so' ++ ) + +-bld.SAMBA_PYTHON('python_dcerpc_dcerpc', +- source='../../librpc/gen_ndr/py_dcerpc.c', +- deps='NDR_DCERPC pytalloc-util pyrpc_util', +- realname='samba/dcerpc/dcerpc.so' +- ) ++ bld.SAMBA_PYTHON('python_dcerpc_dcerpc', ++ source='../../librpc/gen_ndr/py_dcerpc.c', ++ deps='NDR_DCERPC pytalloc-util pyrpc_util', ++ realname='samba/dcerpc/dcerpc.so' ++ ) + +-bld.SAMBA_PYTHON('python_unixinfo', +- source='../../librpc/gen_ndr/py_unixinfo.c', +- deps='RPC_NDR_UNIXINFO pytalloc-util pyrpc_util', +- realname='samba/dcerpc/unixinfo.so' +- ) ++ bld.SAMBA_PYTHON('python_unixinfo', ++ source='../../librpc/gen_ndr/py_unixinfo.c', ++ deps='RPC_NDR_UNIXINFO pytalloc-util pyrpc_util', ++ realname='samba/dcerpc/unixinfo.so' ++ ) + + +-bld.SAMBA_PYTHON('python_irpc', +- source='gen_ndr/py_irpc.c', +- deps='RPC_NDR_IRPC pytalloc-util pyrpc_util', +- realname='samba/dcerpc/irpc.so' +- ) ++ bld.SAMBA_PYTHON('python_irpc', ++ source='gen_ndr/py_irpc.c', ++ deps='RPC_NDR_IRPC pytalloc-util pyrpc_util', ++ realname='samba/dcerpc/irpc.so' ++ ) + +-bld.SAMBA_PYTHON('python_server_id', +- source='../../librpc/gen_ndr/py_server_id.c', +- deps='RPC_NDR_SERVER_ID pytalloc-util pyrpc_util', +- realname='samba/dcerpc/server_id.so' +- ) ++ bld.SAMBA_PYTHON('python_server_id', ++ source='../../librpc/gen_ndr/py_server_id.c', ++ deps='RPC_NDR_SERVER_ID pytalloc-util pyrpc_util', ++ realname='samba/dcerpc/server_id.so' ++ ) + +-bld.SAMBA_PYTHON('python_winbind', +- source='../../librpc/gen_ndr/py_winbind.c', +- deps='RPC_NDR_WINBIND pytalloc-util pyrpc_util python_netlogon', +- realname='samba/dcerpc/winbind.so' +- ) ++ bld.SAMBA_PYTHON('python_winbind', ++ source='../../librpc/gen_ndr/py_winbind.c', ++ deps='RPC_NDR_WINBIND pytalloc-util pyrpc_util python_netlogon', ++ realname='samba/dcerpc/winbind.so' ++ ) + +-bld.SAMBA_PYTHON('python_idmap', +- source='../../librpc/gen_ndr/py_idmap.c', +- deps='NDR_IDMAP pytalloc-util pyrpc_util', +- realname='samba/dcerpc/idmap.so' +- ) ++ bld.SAMBA_PYTHON('python_idmap', ++ source='../../librpc/gen_ndr/py_idmap.c', ++ deps='NDR_IDMAP pytalloc-util pyrpc_util', ++ realname='samba/dcerpc/idmap.so' ++ ) + + +-bld.SAMBA_PYTHON('python_drsuapi', +- source='../../librpc/gen_ndr/py_drsuapi.c', +- deps='RPC_NDR_DRSUAPI pytalloc-util pyrpc_util', +- realname='samba/dcerpc/drsuapi.so' +- ) ++ bld.SAMBA_PYTHON('python_drsuapi', ++ source='../../librpc/gen_ndr/py_drsuapi.c', ++ deps='RPC_NDR_DRSUAPI pytalloc-util pyrpc_util', ++ realname='samba/dcerpc/drsuapi.so' ++ ) + +-bld.SAMBA_PYTHON('python_dcerpc_dnsp', +- source='../../librpc/gen_ndr/py_dnsp.c', +- deps='pytalloc-util pyrpc_util NDR_SECURITY NDR_DNSP', +- realname='samba/dcerpc/dnsp.so' +- ) ++ bld.SAMBA_PYTHON('python_dcerpc_dnsp', ++ source='../../librpc/gen_ndr/py_dnsp.c', ++ deps='pytalloc-util pyrpc_util NDR_SECURITY NDR_DNSP', ++ realname='samba/dcerpc/dnsp.so' ++ ) + + +-bld.SAMBA_PYTHON('python_dcerpc_xattr', +- source='../../librpc/gen_ndr/py_xattr.c', +- deps='pytalloc-util pyrpc_util RPC_NDR_XATTR', +- realname='samba/dcerpc/xattr.so' +- ) ++ bld.SAMBA_PYTHON('python_dcerpc_xattr', ++ source='../../librpc/gen_ndr/py_xattr.c', ++ deps='pytalloc-util pyrpc_util RPC_NDR_XATTR', ++ realname='samba/dcerpc/xattr.so' ++ ) + +-bld.SAMBA_PYTHON('python_dcerpc_idmap', +- source='../../librpc/gen_ndr/py_idmap.c', +- deps='pytalloc-util pyrpc_util RPC_NDR_XATTR', +- realname='samba/dcerpc/idmap.so' +- ) ++ bld.SAMBA_PYTHON('python_dcerpc_idmap', ++ source='../../librpc/gen_ndr/py_idmap.c', ++ deps='pytalloc-util pyrpc_util RPC_NDR_XATTR', ++ realname='samba/dcerpc/idmap.so' ++ ) + +-bld.SAMBA_PYTHON('python_dnsserver', +- source='../../librpc/gen_ndr/py_dnsserver.c', +- deps='RPC_NDR_DNSSERVER pytalloc-util pyrpc_util', +- realname='samba/dcerpc/dnsserver.so' +- ) ++ bld.SAMBA_PYTHON('python_dnsserver', ++ source='../../librpc/gen_ndr/py_dnsserver.c', ++ deps='RPC_NDR_DNSSERVER pytalloc-util pyrpc_util', ++ realname='samba/dcerpc/dnsserver.so' ++ ) + +-bld.SAMBA_PYTHON('python_dcerpc_smb_acl', +- source='../../librpc/gen_ndr/py_smb_acl.c', +- deps='pytalloc-util pyrpc_util', +- realname='samba/dcerpc/smb_acl.so' +- ) ++ bld.SAMBA_PYTHON('python_dcerpc_smb_acl', ++ source='../../librpc/gen_ndr/py_smb_acl.c', ++ deps='pytalloc-util pyrpc_util', ++ realname='samba/dcerpc/smb_acl.so' ++ ) + +-bld.SAMBA_PYTHON('dcerpc_python_messaging', +- source='../../librpc/gen_ndr/py_messaging.c', +- deps='pytalloc-util pyrpc_util', +- realname='samba/dcerpc/messaging.so' +- ) ++ bld.SAMBA_PYTHON('dcerpc_python_messaging', ++ source='../../librpc/gen_ndr/py_messaging.c', ++ deps='pytalloc-util pyrpc_util', ++ realname='samba/dcerpc/messaging.so' ++ ) + + if bld.PYTHON_BUILD_IS_ENABLED(): + bld.SAMBA_SCRIPT('python_dcerpc_init', +-- +2.13.0 + diff --git a/samba.spec b/samba.spec index fb9e45e..db054e3 100644 --- a/samba.spec +++ b/samba.spec @@ -6,7 +6,7 @@ # ctdb is enabled by default, you can disable it with: --without clustering %bcond_without clustering -%define main_release 4 +%define main_release 5 %define samba_version 4.7.0 %define talloc_version 2.1.9 @@ -120,6 +120,7 @@ Patch0: samba-4.7.0-unittests-Add-missing-stdint.h-include.patch Patch1: samba-4.7.0-waf-Only-build-unit-tests-with-selftest-enabled.patch Patch2: samba-4.7.0-unittests-Do-not-install-the-test_dummy-rpc-module.patch Patch3: samba-4.7.0-Do-not-install-_ldb_text.py-if-we-have-system-libldb.patch +Patch4: samba-4.7.0-py3-dcerpc-modules.patch Requires(pre): /usr/sbin/groupadd Requires(post): systemd @@ -2763,6 +2764,9 @@ rm -rf %{buildroot} %endif # with_clustering_support %changelog +* Tue Jul 18 2017 Alexander Bokovoy - 4.7.0-5.rc1 +- Convert more rpc modules to python3 + * Thu Jul 06 2017 Andreas Schneider - 4.7.0-4.rc1 - Add python3 support - Fix %posttrans for libwbclient-devel