rpms/python3/devel macros.pybytecompile, NONE, 1.1 python3.spec, 1.8, 1.9

dmalcolm dmalcolm at fedoraproject.org
Thu Jan 28 19:09:18 UTC 2010


Author: dmalcolm

Update of /cvs/pkgs/rpms/python3/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv16290

Modified Files:
	python3.spec 
Added Files:
	macros.pybytecompile 
Log Message:
* Mon Jan 25 2010 David Malcolm <dmalcolm at redhat.com> - 3.1.1-21
- introduce %%{dynload_dir} macro
- explicitly list all lib-dynload files, rather than dynamically gathering the
payload into a temporary text file, so that we can be sure what we are
shipping
- introduce a macros.pybytecompile source file, to help with packaging python3
modules (Source3; written by Toshio)
- rename "2to3-3" to "python3-2to3" to better reflect python 3 module packaging
plans



--- NEW FILE macros.pybytecompile ---
# Note that the path could itself be a python file, or a directory

# Python's compile_all module only works on directories, and requires a max
# recursion depth

%py_byte_compile()\
python_binary="%1"\
bytecode_compilation_path="%2"\
find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("$RPM_BUILD_ROOT")[2]) for f in sys.argv[1:]]' || :\
\
find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("$RPM_BUILD_ROOT")[2]) for f in sys.argv[1:]]' || :\
%{nil}


Index: python3.spec
===================================================================
RCS file: /cvs/pkgs/rpms/python3/devel/python3.spec,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -p -r1.8 -r1.9
--- python3.spec	25 Jan 2010 18:44:42 -0000	1.8
+++ python3.spec	28 Jan 2010 19:09:18 -0000	1.9
@@ -1,5 +1,6 @@
 %global pybasever 3.1
 %global pylibdir %{_libdir}/python%{pybasever}
+%global dynload_dir %{pylibdir}/lib-dynload
 
 # We want to byte-compile the .py files within the packages using the new
 # python3 binary.
@@ -24,7 +25,7 @@
 Summary: Version 3 of the Python programming language aka Python 3000
 Name: python3
 Version: %{pybasever}.1
-Release: 20%{?dist}
+Release: 21%{?dist}
 License: Python
 Group: Development/Languages
 Source: http://python.org/ftp/python/%{version}/Python-%{version}.tar.bz2
@@ -39,6 +40,11 @@ Source1: find-provides-without-python-so
 #  __python3, python3_sitelib, python3_sitearch
 Source2: macros.python3
 
+# Supply an RPM macro "py_byte_compile" for the python3-devel subpackage
+# to enable specfiles to selectively byte-compile individual files and paths
+# with different Python runtimes as necessary:
+Source3: macros.pybytecompile
+
 Patch0: python-3.1.1-config.patch
 
 
@@ -208,7 +214,7 @@ make install DESTDIR=$RPM_BUILD_ROOT
 
 mkdir -p ${RPM_BUILD_ROOT}%{pylibdir}/site-packages
 
-mv ${RPM_BUILD_ROOT}%{_bindir}/2to3 ${RPM_BUILD_ROOT}%{_bindir}/2to3-3
+mv ${RPM_BUILD_ROOT}%{_bindir}/2to3 ${RPM_BUILD_ROOT}%{_bindir}/python3-2to3
 
 # Development tools
 install -m755 -d ${RPM_BUILD_ROOT}%{pylibdir}/Tools
@@ -226,13 +232,6 @@ cp -ar Doc/tools $RPM_BUILD_ROOT%{pylibd
 # Demo scripts
 cp -ar Demo $RPM_BUILD_ROOT%{pylibdir}/
 
-find $RPM_BUILD_ROOT%{pylibdir}/lib-dynload -type d | sed "s|$RPM_BUILD_ROOT|%dir |" > dynfiles
-find $RPM_BUILD_ROOT%{pylibdir}/lib-dynload -type f | \
-  grep -v "_tkinter.so$" | \
-  grep -v "_ctypes_test.so$" | \
-  grep -v "_testcapimodule.so$" | \
-  sed "s|$RPM_BUILD_ROOT||" >> dynfiles
-
 # Fix for bug #136654
 rm -f $RPM_BUILD_ROOT%{pylibdir}/email/test/data/audiotest.au $RPM_BUILD_ROOT%{pylibdir}/test/audiotest.au
 
@@ -325,10 +324,11 @@ find $RPM_BUILD_ROOT \
 
 mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/rpm
 install -m 644 %{SOURCE2} $RPM_BUILD_ROOT/%{_sysconfdir}/rpm
+install -m 644 %{SOURCE3} $RPM_BUILD_ROOT/%{_sysconfdir}/rpm
 
 # Ensure that the curses module was linked against libncursesw.so, rather than
 # libncurses.so (bug 539917)
-ldd $RPM_BUILD_ROOT/%{_libdir}/python%{pybasever}/lib-dynload/_curses*.so \
+ldd $RPM_BUILD_ROOT/%{dynload_dir}/_curses*.so \
     | grep curses \
     | grep libncurses.so && (echo "_curses.so linked against libncurses.so" ; exit 1)
 
@@ -392,7 +392,7 @@ rm -fr $RPM_BUILD_ROOT
 
 %postun libs -p /sbin/ldconfig
 
-%files -f dynfiles
+%files
 %defattr(-, root, root)
 %doc LICENSE README
 %{_bindir}/pydoc*
@@ -400,6 +400,68 @@ rm -fr $RPM_BUILD_ROOT
 %{_bindir}/python%{pybasever}
 %{_mandir}/*/*
 %dir %{pylibdir}
+%dir %{dynload_dir}
+%{dynload_dir}/Python-%{version}-py%{pybasever}.egg-info
+%{dynload_dir}/_bisectmodule.so
+%{dynload_dir}/_codecs_cn.so
+%{dynload_dir}/_codecs_hk.so
+%{dynload_dir}/_codecs_iso2022.so
+%{dynload_dir}/_codecs_jp.so
+%{dynload_dir}/_codecs_kr.so
+%{dynload_dir}/_codecs_tw.so
+%{dynload_dir}/_collectionsmodule.so
+%{dynload_dir}/_csv.so
+%{dynload_dir}/_ctypes.so
+%{dynload_dir}/_curses.so
+%{dynload_dir}/_curses_panel.so
+%{dynload_dir}/_dbm.so
+%{dynload_dir}/_elementtree.so
+%{dynload_dir}/_gdbmmodule.so
+%{dynload_dir}/_hashlib.so
+%{dynload_dir}/_heapqmodule.so
+%{dynload_dir}/_json.so
+%{dynload_dir}/_lsprof.so
+%{dynload_dir}/_multibytecodecmodule.so
+%{dynload_dir}/_multiprocessing.so
+%{dynload_dir}/_pickle.so
+%{dynload_dir}/_randommodule.so
+%{dynload_dir}/_sha1module.so
+%{dynload_dir}/_sha256module.so
+%{dynload_dir}/_sha512module.so
+%{dynload_dir}/_socketmodule.so
+%{dynload_dir}/_sqlite3.so
+%{dynload_dir}/_ssl.so
+%{dynload_dir}/_struct.so
+%{dynload_dir}/_weakref.so
+%{dynload_dir}/arraymodule.so
+%{dynload_dir}/atexitmodule.so
+%{dynload_dir}/audioop.so
+%{dynload_dir}/binascii.so
+%{dynload_dir}/bz2.so
+%{dynload_dir}/cmathmodule.so
+%{dynload_dir}/cryptmodule.so
+%{dynload_dir}/datetime.so
+%{dynload_dir}/fcntlmodule.so
+%{dynload_dir}/grpmodule.so
+%{dynload_dir}/itertoolsmodule.so
+%{dynload_dir}/mathmodule.so
+%{dynload_dir}/mmapmodule.so
+%{dynload_dir}/nismodule.so
+%{dynload_dir}/operator.so
+%{dynload_dir}/ossaudiodev.so
+%{dynload_dir}/parsermodule.so
+%{dynload_dir}/pyexpat.so
+%{dynload_dir}/readline.so
+%{dynload_dir}/resource.so
+%{dynload_dir}/selectmodule.so
+%{dynload_dir}/spwdmodule.so
+%{dynload_dir}/syslogmodule.so
+%{dynload_dir}/termios.so
+%{dynload_dir}/timemodule.so
+%{dynload_dir}/unicodedata.so
+%{dynload_dir}/xxsubtype.so
+%{dynload_dir}/zlibmodule.so
+
 %dir %{pylibdir}/site-packages
 %{pylibdir}/site-packages/README
 %{pylibdir}/*.py*
@@ -469,10 +531,11 @@ rm -fr $RPM_BUILD_ROOT
 %{_libdir}/libpython%{pybasever}.so
 %{_libdir}/pkgconfig/python*.pc
 %config(noreplace) %{_sysconfdir}/rpm/macros.python3
+%config(noreplace) %{_sysconfdir}/rpm/macros.pybytecompile
 
 %files tools
 %defattr(-,root,root,755)
-%{_bindir}/2to3*
+%{_bindir}/python3-2to3
 %{_bindir}/idle*
 %{pylibdir}/Tools
 %doc %{pylibdir}/Demo
@@ -484,7 +547,7 @@ rm -fr $RPM_BUILD_ROOT
 %defattr(-,root,root,755)
 %{pylibdir}/tkinter
 %exclude %{pylibdir}/tkinter/test
-%{pylibdir}/lib-dynload/_tkinter.so
+%{dynload_dir}/_tkinter.so
 
 %files test
 %defattr(-, root, root)
@@ -495,14 +558,24 @@ rm -fr $RPM_BUILD_ROOT
 %{pylibdir}/json/tests
 %{pylibdir}/sqlite3/test
 %{pylibdir}/test
-%{pylibdir}/lib-dynload/_ctypes_test.so
-%{pylibdir}/lib-dynload/_testcapimodule.so
+%{dynload_dir}/_ctypes_test.so
+%{dynload_dir}/_testcapimodule.so
 %{pylibdir}/lib2to3/tests
 %doc %{pylibdir}/Demo/distutils
 %doc %{pylibdir}/Demo/md5test
 %{pylibdir}/tkinter/test
 
 %changelog
+* Mon Jan 25 2010 David Malcolm <dmalcolm at redhat.com> - 3.1.1-21
+- introduce %%{dynload_dir} macro
+- explicitly list all lib-dynload files, rather than dynamically gathering the
+payload into a temporary text file, so that we can be sure what we are
+shipping
+- introduce a macros.pybytecompile source file, to help with packaging python3
+modules (Source3; written by Toshio)
+- rename "2to3-3" to "python3-2to3" to better reflect python 3 module packaging
+plans
+
 * Mon Jan 25 2010 David Malcolm <dmalcolm at redhat.com> - 3.1.1-20
 - change python-3.1.1-config.patch to remove our downstream change to curses
 configuration in Modules/Setup.dist, so that the curses modules are built using



More information about the scm-commits mailing list