You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by dr...@apache.org on 2008/06/11 03:19:12 UTC

svn commit: r666501 - /incubator/thrift/trunk/contrib/thrift.spec

Author: dreiss
Date: Tue Jun 10 18:19:12 2008
New Revision: 666501

URL: http://svn.apache.org/viewvc?rev=666501&view=rev
Log:
Add a working RPM .spec file to contrib.

Added:
    incubator/thrift/trunk/contrib/thrift.spec

Added: incubator/thrift/trunk/contrib/thrift.spec
URL: http://svn.apache.org/viewvc/incubator/thrift/trunk/contrib/thrift.spec?rev=666501&view=auto
==============================================================================
--- incubator/thrift/trunk/contrib/thrift.spec (added)
+++ incubator/thrift/trunk/contrib/thrift.spec Tue Jun 10 18:19:12 2008
@@ -0,0 +1,188 @@
+# TODO(dreiss): Have a Python build with and without the extension.
+%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
+%{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
+# TODO(dreiss): Where is this supposed to go?
+%{!?thrift_erlang_root: %define thrift_erlang_root /opt/thrift-erl}
+
+Name:           thrift
+License:        Thrift Software License
+Group:          Development
+Summary:        RPC and serialization framework
+Version:        20080529svn
+Epoch:          1
+Release:        1
+URL:            http://developers.facebook.com/thrift
+Packager:       David Reiss <dr...@facebook.com>
+Source0:        %{name}-%{version}.tar.gz
+
+BuildRequires:  gcc >= 3.4.6
+BuildRequires:  gcc-c++
+
+# TODO(dreiss): Can these be moved into the individual packages?
+%if %{!?without_java: 1}
+BuildRequires:  java-devel >= 0:1.5.0
+BuildRequires:  ant >= 0:1.6.5
+%endif
+
+%if %{!?without_python: 1}
+BuildRequires:  python-devel
+%endif
+
+%if %{!?without_erlang: 1}
+BuildRequires:  erlang
+%endif
+
+BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+
+%description
+Thrift is a software framework for scalable cross-language services
+development. It combines a powerful software stack with a code generation
+engine to build services that work efficiently and seamlessly between C++,
+Java, C#, Python, Ruby, Perl, PHP, Objective C/Cocoa, Smalltalk, Erlang,
+Objective Caml, and Haskell.
+
+%files
+%defattr(-,root,root)
+%{_bindir}/thrift
+%{_datadir}/thrift/if/reflection_limited.thrift
+
+
+%package lib-cpp
+Summary: Thrift C++ library
+Group:   Libraries
+
+%description lib-cpp
+C++ libraries for Thrift.
+
+%files lib-cpp
+%defattr(-,root,root)
+%{_libdir}/libthrift*.so.*
+
+
+%package lib-cpp-devel
+Summary:   Thrift C++ library development files
+Group:     Libraries
+Requires:  %{name} = %{version}-%{release}
+Requires:  boost-devel
+%if %{!?without_libevent: 1}
+Requires:  libevent-devel >= 1.2
+%endif
+%if %{!?without_zlib: 1}
+Requires:  zlib-devel
+%endif
+
+%description lib-cpp-devel
+C++ static libraries and headers for Thrift.
+
+%files lib-cpp-devel
+%defattr(-,root,root)
+%{_includedir}/thrift/
+%{_libdir}/libthrift*.*a
+%{_libdir}/libthrift*.so
+%{_libdir}/pkgconfig/thrift*.pc
+
+
+%if %{!?without_java: 1}
+%package lib-java
+Summary:   Thrift Java library
+Group:     Libraries
+Requires:  java >= 0:1.5.0
+
+%description lib-java
+Java libraries for Thrift.
+
+%files lib-java
+%defattr(-,root,root)
+%{_javadir}/*
+%endif
+
+
+%if %{!?without_python: 1}
+%package lib-python
+Summary: Thrift Python library
+Group:   Libraries
+
+%description lib-python
+Python libraries for Thrift.
+
+%files lib-python
+%defattr(-,root,root)
+%{python_sitearch}/*
+%endif
+
+
+%if %{!?without_erlang: 1}
+%package lib-erlang
+Summary:  Thrift Python library
+Group:    Libraries
+Requires: erlang
+
+%description lib-erlang
+Erlang libraries for Thrift.
+
+%files lib-erlang
+%defattr(-,root,root)
+%{thrift_erlang_root}
+%endif
+
+
+%prep
+%setup -q
+
+%build
+# TODO(dreiss): Implement a single --without-build-kludges.
+%configure \
+  %{?without_libevent: --without-libevent } \
+  %{?without_zlib:     --without-zlib     } \
+  --without-java \
+  --without-csharp \
+  --without-py \
+  --without-erlang \
+
+make
+
+%if %{!?without_java: 1}
+cd lib/java
+%ant
+cd ../..
+%endif
+
+%if %{!?without_python: 1}
+cd lib/py
+CFLAGS="%{optflags}" %{__python} setup.py build
+cd ../..
+%endif
+
+%if %{!?without_erlang: 1}
+cd lib/erl
+make
+cd ../..
+%endif
+
+%install
+%makeinstall
+
+%if %{!?without_java: 1}
+mkdir -p $RPM_BUILD_ROOT%{_javadir}
+cp -p lib/java/*.jar $RPM_BUILD_ROOT%{_javadir}
+%endif
+
+%if %{!?without_python: 1}
+cd lib/py
+%{__python} setup.py install -O1 --skip-build --root $RPM_BUILD_ROOT
+cd ../..
+%endif
+
+%if %{!?without_erlang: 1}
+mkdir -p ${RPM_BUILD_ROOT}%{thrift_erlang_root}
+cp -r lib/erl/ebin ${RPM_BUILD_ROOT}%{thrift_erlang_root}
+%endif
+
+
+%clean
+rm -rf ${RPM_BUILD_ROOT}
+
+
+%changelog
+* Wed May 28 2008 David Reiss <dr...@facebook.com> - 20080529svn
+- Initial build, based on the work of Kevin Smith and Ben Maurer.