From 43905f8ce791ee4762d02258c384b77a62543e32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnther=20Deschner?= Date: Thu, 29 Aug 2019 13:26:24 +0200 Subject: [PATCH] re-add pidl resolves: #1746014 Guenther --- pidl.patch | 119 +++++++++++++++++++++++++++++++++++++++++++++++++++++ samba.spec | 60 ++++++++++++++++++++++++++- 2 files changed, 178 insertions(+), 1 deletion(-) create mode 100644 pidl.patch diff --git a/pidl.patch b/pidl.patch new file mode 100644 index 0000000..d61ca6a --- /dev/null +++ b/pidl.patch @@ -0,0 +1,119 @@ +From 838457ac4f9f3f6c1bb5936738566210a62cbdc5 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?G=C3=BCnther=20Deschner?= +Date: Tue, 27 Aug 2019 15:25:13 +0200 +Subject: [PATCH] Revert "waf: install: Remove installation of PIDL and + manpages." + +This reverts commit e24e344d0da58013fd5fa404529fe1d25ef403bf. + +BUG: https://bugzilla.samba.org/show_bug.cgi?id=14103 + +Guenther + +Signed-off-by: Guenther Deschner +--- + pidl/lib/wscript_build | 37 +++++++++++++++++++++++++++++++++++++ + pidl/wscript | 38 ++++++++++++++++++++++++++++++++++++++ + 2 files changed, 75 insertions(+) + create mode 100644 pidl/lib/wscript_build + +diff --git a/pidl/lib/wscript_build b/pidl/lib/wscript_build +new file mode 100644 +index 00000000000..54b3170c4e2 +--- /dev/null ++++ b/pidl/lib/wscript_build +@@ -0,0 +1,37 @@ ++#!/usr/bin/env python ++ ++# install the pidl modules ++bld.INSTALL_FILES(bld.env.PERL_LIB_INSTALL_DIR, ++ ''' ++ Parse/Pidl.pm ++ Parse/Pidl/Samba4.pm ++ Parse/Pidl/CUtil.pm ++ Parse/Pidl/Expr.pm ++ Parse/Pidl/Wireshark/Conformance.pm ++ Parse/Pidl/Wireshark/NDR.pm ++ Parse/Pidl/ODL.pm ++ Parse/Pidl/Dump.pm ++ Parse/Pidl/Util.pm ++ Parse/Pidl/Samba4/Header.pm ++ Parse/Pidl/Samba4/COM/Header.pm ++ Parse/Pidl/Samba4/COM/Proxy.pm ++ Parse/Pidl/Samba4/COM/Stub.pm ++ Parse/Pidl/Samba4/TDR.pm ++ Parse/Pidl/Samba4/NDR/Server.pm ++ Parse/Pidl/Samba4/NDR/Client.pm ++ Parse/Pidl/Samba4/NDR/Parser.pm ++ Parse/Pidl/Samba4/Python.pm ++ Parse/Pidl/Samba4/Template.pm ++ Parse/Pidl/IDL.pm ++ Parse/Pidl/Typelist.pm ++ Parse/Pidl/Samba3/ClientNDR.pm ++ Parse/Pidl/Samba3/ServerNDR.pm ++ Parse/Pidl/Compat.pm ++ Parse/Pidl/NDR.pm ++ ''', ++ flat=False) ++ ++if not bld.CONFIG_SET('USING_SYSTEM_PARSE_YAPP_DRIVER'): ++ bld.INSTALL_FILES(bld.env.PERL_LIB_INSTALL_DIR, ++ 'Parse/Yapp/Driver.pm', ++ flat=False) +diff --git a/pidl/wscript b/pidl/wscript +index 01b71bd8b27..a2a15d36851 100644 +--- a/pidl/wscript ++++ b/pidl/wscript +@@ -32,11 +32,49 @@ def configure(conf): + # Check if perl(Parse::Yapp::Driver) is available. + check_system_perl_module(conf, "Parse::Yapp::Driver", 1.05) + ++ # we need a recent version of MakeMaker to get the right man page names ++ if conf.CHECK_PERL_MANPAGE(): ++ conf.env.PERLMAN1EXT = conf.CHECK_PERL_MANPAGE(section='1') ++ conf.env.PERLMAN3EXT = conf.CHECK_PERL_MANPAGE(section='3') ++ conf.DEFINE('HAVE_PERL_MAKEMAKER', 1) ++ + # yapp is used for building the parser + conf.find_program('yapp', var='YAPP') + conf.find_program('pod2man', var='POD2MAN') + + def build(bld): ++ bld.INSTALL_FILES('${BINDIR}', 'pidl', chmod=MODE_755, perl_fixup=True) ++ ++ bld.RECURSE('lib') ++ ++ if not bld.CONFIG_SET('HAVE_PERL_MAKEMAKER'): ++ return ++ ++ pidl_manpages = { ++ 'pidl': 'man1/pidl.${PERLMAN1EXT}', ++ 'lib/Parse/Pidl/NDR.pm': 'man3/Parse::Pidl::NDR.${PERLMAN3EXT}', ++ 'lib/Parse/Pidl/Wireshark/Conformance.pm': 'man3/Parse::Pidl::Wireshark::Conformance.${PERLMAN3EXT}', ++ 'lib/Parse/Pidl/Dump.pm': 'man3/Parse::Pidl::Dump.${PERLMAN3EXT}', ++ 'lib/Parse/Pidl/Util.pm': 'man3/Parse::Pidl::Util.${PERLMAN3EXT}', ++ 'lib/Parse/Pidl/Wireshark/NDR.pm': 'man3/Parse::Pidl::Wireshark::NDR.${PERLMAN3EXT}' ++ } ++ ++ for k in pidl_manpages.keys(): ++ pidl_manpages[k] = bld.EXPAND_VARIABLES(pidl_manpages[k]) ++ ++ # use perl to build the manpages ++ bld.env.pidl_srcdir = os.path.join(bld.srcnode.abspath(), 'pidl') ++ ++ bld.SET_BUILD_GROUP('final') ++ if 'POD2MAN' in bld.env and bld.env['POD2MAN'] != '': ++ for src in pidl_manpages.keys(): ++ manpage = pidl_manpages[src] ++ section = manpage.rsplit( ".", 1)[1] ++ bld(rule='${POD2MAN} -c "Samba Documentation" -s %s ${SRC} ${TGT}' % section, ++ shell=True, ++ source=src, ++ install_path=os.path.dirname(bld.EXPAND_VARIABLES('${MANDIR}/'+manpage)), ++ target=os.path.basename(manpage)) + + # we want to prefer the git version of the parsers if we can. + # Only if the source has changed do we want to re-run yapp +-- +2.21.0 + diff --git a/samba.spec b/samba.spec index 5264998..8424826 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 1 +%define main_release 2 %define samba_version 4.11.0 %define talloc_version 2.2.0 @@ -118,6 +118,8 @@ Source14: samba.pamd Source201: README.downgrade +Patch0: pidl.patch + Requires(pre): /usr/sbin/groupadd Requires(post): systemd Requires(preun): systemd @@ -572,6 +574,21 @@ The python3-%{name}-dc package contains the Python libraries needed by programs to manage Samba AD. %endif +### PIDL +%package pidl +Summary: Perl IDL compiler +Requires: perl-interpreter +Requires: perl(Parse::Yapp) +Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) +BuildArch: noarch + +Provides: samba4-pidl = %{samba_depver} +Obsoletes: samba4-pidl < %{samba_depver} + +%description pidl +The %{name}-pidl package contains the Perl IDL compiler used by Samba +and Wireshark to parse IDL and similar protocols + ### TEST %package test Summary: Testing tools for Samba servers and clients @@ -1816,6 +1833,44 @@ fi %{_libdir}/pkgconfig/wbclient.pc %endif # with_libwbclient +### PIDL +%files pidl +%attr(755,root,root) %{_bindir}/pidl +%dir %{perl_vendorlib}/Parse +%{perl_vendorlib}/Parse/Pidl.pm +%dir %{perl_vendorlib}/Parse/Pidl +%{perl_vendorlib}/Parse/Pidl/CUtil.pm +%{perl_vendorlib}/Parse/Pidl/Samba4.pm +%{perl_vendorlib}/Parse/Pidl/Expr.pm +%{perl_vendorlib}/Parse/Pidl/ODL.pm +%{perl_vendorlib}/Parse/Pidl/Typelist.pm +%{perl_vendorlib}/Parse/Pidl/IDL.pm +%{perl_vendorlib}/Parse/Pidl/Compat.pm +%dir %{perl_vendorlib}/Parse/Pidl/Wireshark +%{perl_vendorlib}/Parse/Pidl/Wireshark/Conformance.pm +%{perl_vendorlib}/Parse/Pidl/Wireshark/NDR.pm +%{perl_vendorlib}/Parse/Pidl/Dump.pm +%dir %{perl_vendorlib}/Parse/Pidl/Samba3 +%{perl_vendorlib}/Parse/Pidl/Samba3/ServerNDR.pm +%{perl_vendorlib}/Parse/Pidl/Samba3/ClientNDR.pm +%dir %{perl_vendorlib}/Parse/Pidl/Samba4 +%{perl_vendorlib}/Parse/Pidl/Samba4/Header.pm +%dir %{perl_vendorlib}/Parse/Pidl/Samba4/COM +%{perl_vendorlib}/Parse/Pidl/Samba4/COM/Header.pm +%{perl_vendorlib}/Parse/Pidl/Samba4/COM/Proxy.pm +%{perl_vendorlib}/Parse/Pidl/Samba4/COM/Stub.pm +%{perl_vendorlib}/Parse/Pidl/Samba4/Python.pm +%{perl_vendorlib}/Parse/Pidl/Samba4/Template.pm +%dir %{perl_vendorlib}/Parse/Pidl/Samba4/NDR +%{perl_vendorlib}/Parse/Pidl/Samba4/NDR/Server.pm +%{perl_vendorlib}/Parse/Pidl/Samba4/NDR/Client.pm +%{perl_vendorlib}/Parse/Pidl/Samba4/NDR/Parser.pm +%{perl_vendorlib}/Parse/Pidl/Samba4/TDR.pm +%{perl_vendorlib}/Parse/Pidl/NDR.pm +%{perl_vendorlib}/Parse/Pidl/Util.pm +%{_mandir}/man1/pidl* +%{_mandir}/man3/Parse::Pidl* + ### PYTHON3 %files -n python3-%{name} %dir %{python3_sitearch}/samba/ @@ -3407,6 +3462,9 @@ fi %endif # with_clustering_support %changelog +* Tue Aug 27 2019 Guenther Deschner - 4.11.0rc2-2 +- resolves: #1746014 - re-add pidl + * Mon Aug 26 2019 Lubomir Rintel - 2:4.11.0-0.1.rc2 - Move the NetworkManager dispatcher script out of /etc