re-add pidl

resolves: #1746014

Guenther
This commit is contained in:
Günther Deschner 2019-08-29 13:26:24 +02:00
parent 03200dff29
commit 43905f8ce7
2 changed files with 178 additions and 1 deletions

119
pidl.patch Normal file
View File

@ -0,0 +1,119 @@
From 838457ac4f9f3f6c1bb5936738566210a62cbdc5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?G=C3=BCnther=20Deschner?= <gd@samba.org>
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 <gd@samba.org>
---
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

View File

@ -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 <gdeschner@redhat.com> - 4.11.0rc2-2
- resolves: #1746014 - re-add pidl
* Mon Aug 26 2019 Lubomir Rintel <lkundrak@v3.sk> - 2:4.11.0-0.1.rc2
- Move the NetworkManager dispatcher script out of /etc