Install pytalloc-util for python3 as well
This commit is contained in:
parent
f284a27d9a
commit
e86e01dbe1
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
Name: libtalloc
|
Name: libtalloc
|
||||||
Version: 2.1.9
|
Version: 2.1.9
|
||||||
Release: 1%{?dist}
|
Release: 2%{?dist}
|
||||||
Group: System Environment/Daemons
|
Group: System Environment/Daemons
|
||||||
Summary: The talloc library
|
Summary: The talloc library
|
||||||
License: LGPLv3+
|
License: LGPLv3+
|
||||||
@ -24,6 +24,7 @@ BuildRequires: doxygen
|
|||||||
Provides: bundled(libreplace)
|
Provides: bundled(libreplace)
|
||||||
|
|
||||||
# Patches
|
# Patches
|
||||||
|
Patch0: talloc-2.1.10-use-the-system-pytalloc-util-for-python3-as-w.patch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
A library that implements a hierarchical allocator with destructors.
|
A library that implements a hierarchical allocator with destructors.
|
||||||
@ -81,7 +82,7 @@ Development libraries for python3-talloc
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n talloc-%{version}
|
%autosetup -n talloc-%{version} -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
|
||||||
@ -136,6 +137,7 @@ cp -a doc/man/* $RPM_BUILD_ROOT/%{_mandir}
|
|||||||
%defattr(-,root,root,-)
|
%defattr(-,root,root,-)
|
||||||
%{_includedir}/pytalloc.h
|
%{_includedir}/pytalloc.h
|
||||||
%{_libdir}/pkgconfig/pytalloc-util.pc
|
%{_libdir}/pkgconfig/pytalloc-util.pc
|
||||||
|
%{_libdir}/pkgconfig/pytalloc-util.cpython-*.pc
|
||||||
%{_libdir}/libpytalloc-util.so
|
%{_libdir}/libpytalloc-util.so
|
||||||
|
|
||||||
%if 0%{?with_python3}
|
%if 0%{?with_python3}
|
||||||
@ -164,6 +166,9 @@ cp -a doc/man/* $RPM_BUILD_ROOT/%{_mandir}
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Jul 06 2017 Andreas Schneider <asn@redhat.com> - 2.1.9-2
|
||||||
|
- Install pytalloc-util for python3 as well
|
||||||
|
|
||||||
* Tue Feb 28 2017 Lukas Slebodnik <lslebodn@redhat.com> - 2.1.9-1
|
* Tue Feb 28 2017 Lukas Slebodnik <lslebodn@redhat.com> - 2.1.9-1
|
||||||
- rhbz#1427352 New upstream release - 2.1.9
|
- rhbz#1427352 New upstream release - 2.1.9
|
||||||
- rhbz#1401225 - Rename python packages to match packaging guidelines
|
- rhbz#1401225 - Rename python packages to match packaging guidelines
|
||||||
|
|||||||
@ -0,0 +1,205 @@
|
|||||||
|
From f5cafee0c7a96396798d2b229ff3f9dced1d74f3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Andrew Bartlett <abartlet@samba.org>
|
||||||
|
Date: Mon, 6 Mar 2017 19:25:13 +1300
|
||||||
|
Subject: [PATCH] talloc: use the system pytalloc-util for python3 as well
|
||||||
|
|
||||||
|
This involves installing a .pc file for the python3 library as well
|
||||||
|
|
||||||
|
To get the .pc file generated and installed is quite a mission, we
|
||||||
|
have to rework the talloc build system to ensure that the second 'env'
|
||||||
|
created for EXTRA_PYTHON has everything set up on it, the
|
||||||
|
TALLOC_VERSION in particular.
|
||||||
|
|
||||||
|
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
|
||||||
|
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
|
||||||
|
|
||||||
|
Incorportaing fixes by Petr Viktorin <pviktori@redhat.com>
|
||||||
|
|
||||||
|
Signed-off-by: Petr Viktorin <pviktori@redhat.com>
|
||||||
|
---
|
||||||
|
buildtools/wafsamba/pkgconfig.py | 12 ++++++----
|
||||||
|
buildtools/wafsamba/samba_python.py | 2 ++
|
||||||
|
buildtools/wafsamba/wafsamba.py | 9 +++++---
|
||||||
|
lib/talloc/pytalloc-util.pc.in | 4 ++--
|
||||||
|
lib/talloc/wscript | 44 +++++++++++++++++++++++++------------
|
||||||
|
5 files changed, 48 insertions(+), 23 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/buildtools/wafsamba/pkgconfig.py b/buildtools/wafsamba/pkgconfig.py
|
||||||
|
index 25cec78..999bad4 100644
|
||||||
|
--- a/buildtools/wafsamba/pkgconfig.py
|
||||||
|
+++ b/buildtools/wafsamba/pkgconfig.py
|
||||||
|
@@ -38,16 +38,20 @@ def subst_at_vars(task):
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
-def PKG_CONFIG_FILES(bld, pc_files, vnum=None):
|
||||||
|
+def PKG_CONFIG_FILES(bld, pc_files, vnum=None, extra_name=None):
|
||||||
|
'''install some pkg_config pc files'''
|
||||||
|
dest = '${PKGCONFIGDIR}'
|
||||||
|
dest = bld.EXPAND_VARIABLES(dest)
|
||||||
|
for f in TO_LIST(pc_files):
|
||||||
|
- base=os.path.basename(f)
|
||||||
|
+ if extra_name:
|
||||||
|
+ target = f.split('.pc')[0] + extra_name + ".pc"
|
||||||
|
+ else:
|
||||||
|
+ target = f
|
||||||
|
+ base=os.path.basename(target)
|
||||||
|
t = bld.SAMBA_GENERATOR('PKGCONFIG_%s' % base,
|
||||||
|
rule=subst_at_vars,
|
||||||
|
source=f+'.in',
|
||||||
|
- target=f)
|
||||||
|
+ target=target)
|
||||||
|
bld.add_manual_dependency(bld.path.find_or_declare(f), bld.env['PREFIX'])
|
||||||
|
t.vars = []
|
||||||
|
if t.env.RPATH_ON_INSTALL:
|
||||||
|
@@ -58,7 +62,7 @@ def PKG_CONFIG_FILES(bld, pc_files, vnum=None):
|
||||||
|
t.env.PACKAGE_VERSION = vnum
|
||||||
|
for v in [ 'PREFIX', 'EXEC_PREFIX', 'LIB_RPATH' ]:
|
||||||
|
t.vars.append(t.env[v])
|
||||||
|
- bld.INSTALL_FILES(dest, f, flat=True, destname=base)
|
||||||
|
+ bld.INSTALL_FILES(dest, target, flat=True, destname=base)
|
||||||
|
Build.BuildContext.PKG_CONFIG_FILES = PKG_CONFIG_FILES
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/buildtools/wafsamba/samba_python.py b/buildtools/wafsamba/samba_python.py
|
||||||
|
index 057a017..bba059e 100644
|
||||||
|
--- a/buildtools/wafsamba/samba_python.py
|
||||||
|
+++ b/buildtools/wafsamba/samba_python.py
|
||||||
|
@@ -75,6 +75,8 @@ def _check_python_headers(conf, mandatory):
|
||||||
|
conf.env['PYTHON_SO_ABI_FLAG'] = abi_pattern % ''
|
||||||
|
else:
|
||||||
|
conf.env['PYTHON_SO_ABI_FLAG'] = ''
|
||||||
|
+ conf.env['PYTHON_LIBNAME_SO_ABI_FLAG'] = (
|
||||||
|
+ conf.env['PYTHON_SO_ABI_FLAG'].replace('_', '-'))
|
||||||
|
|
||||||
|
|
||||||
|
def SAMBA_PYTHON(bld, name,
|
||||||
|
diff --git a/buildtools/wafsamba/wafsamba.py b/buildtools/wafsamba/wafsamba.py
|
||||||
|
index 4a47dbf..137cb0e 100644
|
||||||
|
--- a/buildtools/wafsamba/wafsamba.py
|
||||||
|
+++ b/buildtools/wafsamba/wafsamba.py
|
||||||
|
@@ -144,7 +144,7 @@ def SAMBA_LIBRARY(bld, libname, source,
|
||||||
|
'''define a Samba library'''
|
||||||
|
|
||||||
|
if pyembed and bld.env['IS_EXTRA_PYTHON']:
|
||||||
|
- public_headers = pc_files = None
|
||||||
|
+ public_headers = None
|
||||||
|
|
||||||
|
if private_library and public_headers:
|
||||||
|
raise Utils.WafError("private library '%s' must not have public header files" %
|
||||||
|
@@ -225,7 +225,7 @@ def SAMBA_LIBRARY(bld, libname, source,
|
||||||
|
if vnum is None and soname is None:
|
||||||
|
raise Utils.WafError("public library '%s' must have a vnum" %
|
||||||
|
libname)
|
||||||
|
- if pc_files is None and not bld.env['IS_EXTRA_PYTHON']:
|
||||||
|
+ if pc_files is None:
|
||||||
|
raise Utils.WafError("public library '%s' must have pkg-config file" %
|
||||||
|
libname)
|
||||||
|
if public_headers is None and not bld.env['IS_EXTRA_PYTHON']:
|
||||||
|
@@ -328,7 +328,10 @@ def SAMBA_LIBRARY(bld, libname, source,
|
||||||
|
t.link_name = link_name
|
||||||
|
|
||||||
|
if pc_files is not None and not private_library:
|
||||||
|
- bld.PKG_CONFIG_FILES(pc_files, vnum=vnum)
|
||||||
|
+ if pyembed and bld.env['IS_EXTRA_PYTHON']:
|
||||||
|
+ bld.PKG_CONFIG_FILES(pc_files, vnum=vnum, extra_name=bld.env['PYTHON_SO_ABI_FLAG'])
|
||||||
|
+ else:
|
||||||
|
+ bld.PKG_CONFIG_FILES(pc_files, vnum=vnum)
|
||||||
|
|
||||||
|
if (manpages is not None and 'XSLTPROC_MANPAGES' in bld.env and
|
||||||
|
bld.env['XSLTPROC_MANPAGES']):
|
||||||
|
diff --git a/lib/talloc/pytalloc-util.pc.in b/lib/talloc/pytalloc-util.pc.in
|
||||||
|
index b87c94e..06f83e2 100644
|
||||||
|
--- a/pytalloc-util.pc.in
|
||||||
|
+++ b/pytalloc-util.pc.in
|
||||||
|
@@ -3,9 +3,9 @@ exec_prefix=@exec_prefix@
|
||||||
|
libdir=@libdir@
|
||||||
|
includedir=@includedir@
|
||||||
|
|
||||||
|
-Name: pytalloc-util
|
||||||
|
+Name: pytalloc-util@PYTHON_SO_ABI_FLAG@
|
||||||
|
Description: Utility functions for using talloc objects with Python
|
||||||
|
Version: @TALLOC_VERSION@
|
||||||
|
-Libs: @LIB_RPATH@ -L${libdir} -lpytalloc-util@PYTHON_SO_ABI_FLAG@
|
||||||
|
+Libs: @LIB_RPATH@ -L${libdir} -lpytalloc-util@PYTHON_LIBNAME_SO_ABI_FLAG@
|
||||||
|
Cflags: -I${includedir}
|
||||||
|
URL: http://talloc.samba.org/
|
||||||
|
diff --git a/lib/talloc/wscript b/lib/talloc/wscript
|
||||||
|
index 7f9bad7..af93910 100644
|
||||||
|
--- a/wscript
|
||||||
|
+++ b/wscript
|
||||||
|
@@ -48,20 +48,24 @@ def configure(conf):
|
||||||
|
|
||||||
|
conf.env.disable_python = getattr(Options.options, 'disable_python', False)
|
||||||
|
|
||||||
|
- if not conf.env.standalone_talloc:
|
||||||
|
- if conf.CHECK_BUNDLED_SYSTEM_PKG('talloc', minversion=VERSION,
|
||||||
|
- implied_deps='replace'):
|
||||||
|
- conf.define('USING_SYSTEM_TALLOC', 1)
|
||||||
|
- if conf.CHECK_BUNDLED_SYSTEM_PKG('pytalloc-util', minversion=VERSION,
|
||||||
|
- implied_deps='talloc replace'):
|
||||||
|
- conf.define('USING_SYSTEM_PYTALLOC_UTIL', 1)
|
||||||
|
-
|
||||||
|
conf.env.TALLOC_COMPAT1 = False
|
||||||
|
if conf.env.standalone_talloc:
|
||||||
|
conf.env.TALLOC_COMPAT1 = Options.options.TALLOC_COMPAT1
|
||||||
|
+ conf.env.PKGCONFIGDIR = '${LIBDIR}/pkgconfig'
|
||||||
|
+ conf.env.TALLOC_VERSION = VERSION
|
||||||
|
|
||||||
|
conf.CHECK_XSLTPROC_MANPAGES()
|
||||||
|
|
||||||
|
+ conf.CHECK_HEADERS('sys/auxv.h')
|
||||||
|
+ conf.CHECK_FUNCS('getauxval')
|
||||||
|
+
|
||||||
|
+ conf.SAMBA_CONFIG_H()
|
||||||
|
+
|
||||||
|
+ conf.SAMBA_CHECK_UNDEFINED_SYMBOL_FLAGS()
|
||||||
|
+
|
||||||
|
+ # We need to set everything non-python up before here, because
|
||||||
|
+ # SAMBA_CHECK_PYTHON makes a copy of conf and we need it set up correctly
|
||||||
|
+
|
||||||
|
if not conf.env.disable_python:
|
||||||
|
# also disable if we don't have the python libs installed
|
||||||
|
conf.SAMBA_CHECK_PYTHON(mandatory=False, version=(2,4,2))
|
||||||
|
@@ -70,20 +74,32 @@ def configure(conf):
|
||||||
|
Logs.warn('Disabling pytalloc-util as python devel libs not found')
|
||||||
|
conf.env.disable_python = True
|
||||||
|
|
||||||
|
- conf.CHECK_HEADERS('sys/auxv.h')
|
||||||
|
- conf.CHECK_FUNCS('getauxval')
|
||||||
|
+ if not conf.env.standalone_talloc:
|
||||||
|
+ if conf.CHECK_BUNDLED_SYSTEM_PKG('talloc', minversion=VERSION,
|
||||||
|
+ implied_deps='replace'):
|
||||||
|
+ conf.define('USING_SYSTEM_TALLOC', 1)
|
||||||
|
|
||||||
|
- conf.SAMBA_CONFIG_H()
|
||||||
|
+ using_system_pytalloc_util = True
|
||||||
|
+ if not conf.CHECK_BUNDLED_SYSTEM_PKG('pytalloc-util', minversion=VERSION,
|
||||||
|
+ implied_deps='talloc replace'):
|
||||||
|
+ using_system_pytalloc_util = False
|
||||||
|
|
||||||
|
- conf.SAMBA_CHECK_UNDEFINED_SYMBOL_FLAGS()
|
||||||
|
+ # We need to get a pytalloc-util for all the python versions
|
||||||
|
+ # we are building for
|
||||||
|
+ if conf.env['EXTRA_PYTHON']:
|
||||||
|
+ name = 'pytalloc-util' + conf.all_envs['extrapython']['PYTHON_SO_ABI_FLAG']
|
||||||
|
+ if not conf.CHECK_BUNDLED_SYSTEM_PKG(name, minversion=VERSION,
|
||||||
|
+ implied_deps='talloc replace'):
|
||||||
|
+ using_system_pytalloc_util = False
|
||||||
|
+
|
||||||
|
+ if using_system_pytalloc_util:
|
||||||
|
+ conf.define('USING_SYSTEM_PYTALLOC_UTIL', 1)
|
||||||
|
|
||||||
|
|
||||||
|
def build(bld):
|
||||||
|
bld.RECURSE('lib/replace')
|
||||||
|
|
||||||
|
if bld.env.standalone_talloc:
|
||||||
|
- bld.env.PKGCONFIGDIR = '${LIBDIR}/pkgconfig'
|
||||||
|
- bld.env.TALLOC_VERSION = VERSION
|
||||||
|
private_library = False
|
||||||
|
|
||||||
|
# should we also install the symlink to libtalloc1.so here?
|
||||||
|
--
|
||||||
|
2.9.3
|
||||||
|
|
||||||
Loading…
Reference in New Issue
Block a user