[gcc-python-plugin] Initial import from package review (0.3-1)
dmalcolm
dmalcolm at fedoraproject.org
Tue Jul 26 16:01:32 UTC 2011
commit 0c8191f4f62f3736da8b1f8e27aabec1a6354968
Author: David Malcolm <dmalcolm at redhat.com>
Date: Tue Jul 26 11:54:54 2011 -0400
Initial import from package review (0.3-1)
.gitignore | 1 +
gcc-python-plugin.spec | 301 ++++++++++++++++++++++++++++++++++++++++++++++++
sources | 1 +
3 files changed, 303 insertions(+), 0 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index e69de29..891907f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/gcc-python-plugin-0.3.tar.gz
diff --git a/gcc-python-plugin.spec b/gcc-python-plugin.spec
new file mode 100644
index 0000000..43ea7bc
--- /dev/null
+++ b/gcc-python-plugin.spec
@@ -0,0 +1,301 @@
+Name: gcc-python-plugin
+Version: 0.3
+Release: 1%{?dist}
+Summary: GCC plugin that embeds Python
+
+Group: Development/Languages
+License: GPLv3+
+URL: https://fedorahosted.org/gcc-python-plugin/
+Source0: https://fedorahosted.org/releases/g/c/gcc-python-plugin/gcc-python-plugin-%{version}.tar.gz
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+
+BuildRequires: gcc-plugin-devel
+
+# gcc 4.6.1's plugin/include/double-int.h includes "gmp.h", but on Fedora,
+# gmp-devel isn't yet listed in the requirements of gcc-plugin-devel
+# For now, explicitly require it:
+BuildRequires: gmp-devel
+# Filed as https://bugzilla.redhat.com/show_bug.cgi?id=725569
+
+
+# Various python runtimes to build the plugin against:
+BuildRequires: python-devel
+BuildRequires: python-debug
+BuildRequires: python3-devel
+BuildRequires: python3-debug
+
+# "six" is used at buildtime:
+BuildRequires: python-six
+BuildRequires: python3-six
+
+# sphinx is used for building documentation:
+BuildRequires: python-sphinx
+
+%global gcc_plugins_dir %(gcc --print-file-name=plugin)
+
+%description
+Plugins for embedding various versions of Python within GCC
+
+%package -n gcc-python2-plugin
+Summary: GCC plugin embedding Python 2
+Group: Development/Languages
+Requires: python-six
+
+%description -n gcc-python2-plugin
+GCC plugin embedding Python 2
+
+%package -n gcc-python3-plugin
+Summary: GCC plugin embedding Python 3
+Group: Development/Languages
+Requires: python3-six
+
+%description -n gcc-python3-plugin
+GCC plugin embedding Python 3
+
+%package -n gcc-python2-debug-plugin
+Summary: GCC plugin embedding Python 2 debug build
+Group: Development/Languages
+Requires: python-six
+
+%description -n gcc-python2-debug-plugin
+GCC plugin embedding debug build of Python 2
+
+%package -n gcc-python3-debug-plugin
+Summary: GCC plugin embedding Python 3 debug build
+Group: Development/Languages
+Requires: python3-six
+
+%description -n gcc-python3-debug-plugin
+GCC plugin embedding debug build of Python 3
+
+%package docs
+Summary: API documentation for the GCC Python plugin
+Group: Development/Languages
+
+%description docs
+This package contains API documentation for the GCC Python plugin
+
+
+
+%prep
+%setup -q
+
+
+%build
+
+BuildPlugin() {
+ PythonExe=$1
+ PythonConfig=$2
+ PluginDso=$3
+ PluginName=$4
+
+ # "make clean" would remove the .so files from the previous build
+ rm -f *.o
+ make \
+ %{?_smp_mflags} \
+ PYTHON=$PythonExe \
+ PYTHON_CONFIG=$PythonConfig \
+ PLUGIN_PYTHONPATH=%{gcc_plugins_dir}/$PluginName \
+ plugin
+ mv python.so $PluginDso
+}
+
+BuildPlugin \
+ python \
+ python-config \
+ python2.so \
+ python2
+
+BuildPlugin \
+ python-debug \
+ python-debug-config \
+ python2-debug.so \
+ python2-debug
+
+BuildPlugin \
+ python3 \
+ python3-config \
+ python3.so \
+ python3
+
+BuildPlugin \
+ python3-debug \
+ python3.2dmu-config \
+ python3-debug.so \
+ python3-debug
+
+# Documentation:
+cd docs
+make html
+# Avoid having a hidden file in the payload:
+rm _build/html/.buildinfo
+
+make man
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+mkdir -p $RPM_BUILD_ROOT/%{gcc_plugins_dir}
+mkdir -p $RPM_BUILD_ROOT/%{_bindir}
+mkdir -p $RPM_BUILD_ROOT/%{_mandir}/man1
+
+InstallPlugin() {
+ PythonExe=$1
+ PythonConfig=$2
+ PluginDso=$3
+ PluginName=$4
+
+ cp $PluginDso $RPM_BUILD_ROOT/%{gcc_plugins_dir}
+
+ # Install support files into the correct location:
+ PluginDir=$PluginName
+ mkdir $RPM_BUILD_ROOT/%{gcc_plugins_dir}/$PluginDir
+ cp -a gccutils.py $RPM_BUILD_ROOT/%{gcc_plugins_dir}/$PluginDir
+ cp -a libcpychecker $RPM_BUILD_ROOT/%{gcc_plugins_dir}/$PluginDir
+
+ # Create "gcc-with-" support script:
+ install -m 755 gcc-with-python $RPM_BUILD_ROOT/%{_bindir}/gcc-with-$PluginName
+ # Fixup the reference to the plugin in that script, from being expressed as
+ # a DSO filename with a path (for a working copy) to a name of an installed
+ # plugin within GCC's search directory:
+ sed \
+ -i \
+ -e"s|-fplugin=[^ ]*|-fplugin=$PluginName|" \
+ $RPM_BUILD_ROOT/%{_bindir}/gcc-with-$PluginName
+
+ # Fixup the plugin name within -fplugin-arg-PLUGIN_NAME-script to match the
+ # name for this specific build:
+ sed \
+ -i \
+ -e"s|-fplugin-arg-python-script|-fplugin-arg-$PluginName-script|" \
+ $RPM_BUILD_ROOT/%{_bindir}/gcc-with-$PluginName
+
+ # Fixup the generic manpage for this build:
+ cp docs/_build/man/gcc-with-python.1 gcc-with-$PluginName.1
+ sed \
+ -i \
+ -e"s|gcc-with-python|gcc-with-$PluginName|g" \
+ gcc-with-$PluginName.1
+ UpperPluginName=$(python -c"print('$PluginName'.upper())")
+ sed \
+ -i \
+ -e"s|GCC-WITH-PYTHON|GCC-WITH-$UpperPluginName|g" \
+ gcc-with-$PluginName.1
+ gzip gcc-with-$PluginName.1
+ cp gcc-with-$PluginName.1.gz $RPM_BUILD_ROOT/%{_mandir}/man1
+}
+
+InstallPlugin \
+ python \
+ python-config \
+ python2.so \
+ python2
+
+InstallPlugin \
+ python-debug \
+ python-debug-config \
+ python2-debug.so \
+ python2-debug
+
+InstallPlugin \
+ python3 \
+ python3-config \
+ python3.so \
+ python3
+
+InstallPlugin \
+ python3-debug \
+ python3.2dmu-config \
+ python3-debug.so \
+ python3-debug
+
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%check
+
+CheckPlugin() {
+ PythonExe=$1
+ PythonConfig=$2
+ PluginDso=$3
+
+ # Disabled for now; not all tests pass:
+ #make \
+ # PYTHON=$PythonExe \
+ # PYTHON_CONFIG=$PythonConfig \
+ # test-suite testcpychecker
+}
+
+CheckPlugin \
+ python \
+ python-config \
+ python2.so
+
+CheckPlugin \
+ python-debug \
+ python-debug-config \
+ python2-debug.so
+
+CheckPlugin \
+ python3 \
+ python3-config \
+ python3.so
+
+CheckPlugin \
+ python3-debug \
+ python3.2dmu-config \
+ python3-debug-debug.so
+
+
+%files -n gcc-python2-plugin
+%defattr(-,root,root,-)
+%doc COPYING README.rst
+%{_bindir}/gcc-with-python2
+%{gcc_plugins_dir}/python2.so
+%{gcc_plugins_dir}/python2
+%doc %{_mandir}/man1/gcc-with-python2.1.gz
+
+%files -n gcc-python3-plugin
+%defattr(-,root,root,-)
+%doc COPYING README.rst
+%{_bindir}/gcc-with-python3
+%{gcc_plugins_dir}/python3.so
+%{gcc_plugins_dir}/python3
+%doc %{_mandir}/man1/gcc-with-python3.1.gz
+
+%files -n gcc-python2-debug-plugin
+%defattr(-,root,root,-)
+%doc COPYING README.rst
+%{_bindir}/gcc-with-python2-debug
+%{gcc_plugins_dir}/python2-debug.so
+%{gcc_plugins_dir}/python2-debug
+%doc %{_mandir}/man1/gcc-with-python2-debug.1.gz
+
+%files -n gcc-python3-debug-plugin
+%defattr(-,root,root,-)
+%doc COPYING README.rst
+%{_bindir}/gcc-with-python3-debug
+%{gcc_plugins_dir}/python3-debug.so
+%{gcc_plugins_dir}/python3-debug
+%doc %{_mandir}/man1/gcc-with-python3-debug.1.gz
+
+%files docs
+%defattr(-,root,root,-)
+%doc COPYING
+%doc docs/_build/html
+# Example scripts:
+%doc show-ssa.py show-docs.py
+
+%changelog
+* Mon Jul 25 2011 David Malcolm <dmalcolm at redhat.com> - 0.3-1
+- add requirements on python-six and python3-six
+- add %%check section (empty for now)
+- set PYTHON and PLUGIN_PYTHONPATH during each build; install support files
+into build-specific directories below the gcc plugin dir
+- add helper gcc-with-python scripts, with man pages
+- package the license
+- add example scripts
+
+* Tue May 24 2011 David Malcolm <dmalcolm at redhat.com> - 0.1-1
+- initial packaging
diff --git a/sources b/sources
index e69de29..e06385b 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+bfe4341a2ce74f254c6064803711b058 gcc-python-plugin-0.3.tar.gz
More information about the scm-commits
mailing list