forked from pool/protobuf
Accepting request 568223 from openSUSE:Factory:Staging:O:DVD
- Conditionalize python2 and python3 in order to be able to build without python2 present in distribution * Use singlespec macros to simplify the logic - Run fdupes on python modules to avoid duplicates - Remove shebangs from import-only code OBS-URL: https://build.opensuse.org/request/show/568223 OBS-URL: https://build.opensuse.org/package/show/devel:tools:building/protobuf?expand=0&rev=58
This commit is contained in:
parent
ebfb94fbcf
commit
c782c2c29c
@ -1,3 +1,12 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon Jan 22 16:50:28 UTC 2018 - tchvatal@suse.com
|
||||
|
||||
- Conditionalize python2 and python3 in order to be able to build
|
||||
without python2 present in distribution
|
||||
* Use singlespec macros to simplify the logic
|
||||
- Run fdupes on python modules to avoid duplicates
|
||||
- Remove shebangs from import-only code
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Dec 11 23:42:45 UTC 2017 - jengelh@inai.de
|
||||
|
||||
|
158
protobuf.spec
158
protobuf.spec
@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file for package protobuf
|
||||
#
|
||||
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@ -16,23 +16,14 @@
|
||||
#
|
||||
|
||||
|
||||
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
|
||||
%define sover 15
|
||||
%define tarname protobuf
|
||||
# requires gmock, which is not yet in the distribution
|
||||
%bcond_with check
|
||||
%bcond_without protobuf_java
|
||||
%bcond_without protobuf_python
|
||||
|
||||
%if %{with protobuf_python}
|
||||
%if 0%{?suse_version} > 1320
|
||||
%define protobuf_python3 1
|
||||
%define python2_prefix python2
|
||||
%else
|
||||
%define protobuf_python3 0
|
||||
%define python2_prefix python
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%bcond_without java
|
||||
%bcond_without python2
|
||||
%bcond_without python3
|
||||
Name: protobuf
|
||||
Version: 3.5.0
|
||||
Release: 0
|
||||
@ -43,34 +34,25 @@ Url: https://github.com/google/protobuf/
|
||||
Source0: https://github.com/google/protobuf/archive/v%{version}.tar.gz#/%{tarname}-%{version}.tar.gz
|
||||
Source1: manifest.txt.in
|
||||
Source2: baselibs.conf
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
BuildRequires: %{python_module devel}
|
||||
BuildRequires: %{python_module python-dateutil}
|
||||
BuildRequires: %{python_module python-gflags}
|
||||
BuildRequires: %{python_module pytz}
|
||||
BuildRequires: %{python_module setuptools}
|
||||
BuildRequires: autoconf
|
||||
BuildRequires: automake
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: libtool
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: python-rpm-macros
|
||||
BuildRequires: zlib-devel
|
||||
%if %{with check}
|
||||
BuildRequires: libgmock-devel >= 1.7.0
|
||||
%endif
|
||||
BuildRequires: libtool
|
||||
BuildRequires: pkg-config
|
||||
%if %{with protobuf_java}
|
||||
%if %{with java}
|
||||
BuildRequires: java-devel >= 1.6.0
|
||||
%endif
|
||||
%if %{with protobuf_python}
|
||||
BuildRequires: %{python2_prefix}-devel
|
||||
BuildRequires: %{python2_prefix}-python-dateutil
|
||||
BuildRequires: %{python2_prefix}-python-gflags
|
||||
BuildRequires: %{python2_prefix}-pytz
|
||||
BuildRequires: %{python2_prefix}-setuptools
|
||||
%if %{protobuf_python3}
|
||||
BuildRequires: python3-devel
|
||||
BuildRequires: python3-python-dateutil
|
||||
BuildRequires: python3-python-gflags
|
||||
BuildRequires: python3-pytz
|
||||
BuildRequires: python3-setuptools
|
||||
%endif
|
||||
BuildRequires: zlib-devel
|
||||
%endif
|
||||
|
||||
%description
|
||||
Protocol Buffers are a way of encoding structured data in an efficient yet
|
||||
@ -111,15 +93,14 @@ Requires: gcc-c++
|
||||
Requires: libprotobuf%{sover} = %{version}
|
||||
Requires: libprotobuf-lite%{sover}
|
||||
Requires: zlib-devel
|
||||
Provides: libprotobuf-devel = %{version}
|
||||
Conflicts: protobuf2-devel
|
||||
Provides: libprotobuf-devel = %{version}
|
||||
|
||||
%description devel
|
||||
Protocol Buffers are a way of encoding structured data in an efficient yet
|
||||
extensible format. Google uses Protocol Buffers for almost all of its internal
|
||||
RPC protocols and file formats.
|
||||
|
||||
%if %{with protobuf_java}
|
||||
%package -n %{name}-java
|
||||
Summary: Java Bindings for Google Protocol Buffers
|
||||
Group: Development/Libraries/Java
|
||||
@ -127,61 +108,45 @@ Requires: java >= 1.6.0
|
||||
|
||||
%description -n %{name}-java
|
||||
This package contains the Java bindings for Google Protocol Buffers.
|
||||
%endif
|
||||
|
||||
%if %{with protobuf_python}
|
||||
%package -n %{python2_prefix}-%{name}
|
||||
%package -n python2-%{name}
|
||||
Summary: Python2 Bindings for Google Protocol Buffers
|
||||
Group: Development/Libraries/Python
|
||||
%if 0%{?protobuf_python3}
|
||||
Provides: python-%{name} = %{version}
|
||||
Obsoletes: python-%{name} < %{version}
|
||||
%endif
|
||||
%if 0%{?suse_version}
|
||||
%py_requires
|
||||
%else
|
||||
Requires: python
|
||||
%endif
|
||||
|
||||
%description -n %{python2_prefix}-%{name}
|
||||
%description -n python2-%{name}
|
||||
This package contains the Python bindings for Google Protocol Buffers.
|
||||
|
||||
%if 0%{?protobuf_python3}
|
||||
%package -n python3-%{name}
|
||||
Summary: Python3 Bindings for Google Protocol Buffers
|
||||
Group: Development/Libraries/Python
|
||||
Requires: python3
|
||||
|
||||
%description -n python3-%{name}
|
||||
This package contains the Python bindings for Google Protocol Buffers.
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%prep
|
||||
|
||||
%setup -q -n %{tarname}-%{version}
|
||||
mkdir gmock
|
||||
|
||||
%if %{with protobuf_python}
|
||||
%if %{with python2} || %{with python3}
|
||||
# only needed for test suite which we don't call anyways.
|
||||
# googleapis is broken on sle12
|
||||
sed -i '/apputils/d' python/setup.py
|
||||
sed -i '/google_test_dir/d' python/setup.py
|
||||
%endif
|
||||
# kill shebang that we do not really want
|
||||
sed -i -e '/env python/d' python/google/protobuf/internal/*.py
|
||||
|
||||
%build
|
||||
%if 0%{?mandriva_version}
|
||||
#XXX something wents wrong with detecting this
|
||||
export PTHREAD_LIBS=-lpthread
|
||||
%endif
|
||||
|
||||
autoreconf -fi
|
||||
autoreconf -fvi
|
||||
%configure \
|
||||
--disable-static
|
||||
|
||||
make %{?_smp_mflags}
|
||||
|
||||
%if %{with protobuf_java}
|
||||
%if %{with java}
|
||||
pushd java
|
||||
../src/protoc --java_out=core/src/main/java -I../src ../src/google/protobuf/descriptor.proto
|
||||
mkdir classes
|
||||
@ -191,36 +156,22 @@ jar cfm %{name}-java-%{version}.jar manifest.txt -C classes com
|
||||
popd
|
||||
%endif
|
||||
|
||||
%if %{with protobuf_python}
|
||||
cp -Ra python python2
|
||||
pushd python2
|
||||
python2 setup.py build
|
||||
# setup.py seems to be broken, some files are only installed on the second invocation
|
||||
python2 setup.py build
|
||||
pushd python
|
||||
%python_build
|
||||
popd
|
||||
|
||||
%if 0%{?protobuf_python3}
|
||||
cp -Ra python python3
|
||||
pushd python3
|
||||
python3 setup.py build
|
||||
# setup.py seems to be broken, some files are only installed on the second invocation
|
||||
python3 setup.py build
|
||||
popd
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%if %{with check}
|
||||
%check
|
||||
make %{?_smp_mflags} check
|
||||
%endif
|
||||
|
||||
%install
|
||||
make DESTDIR=%{buildroot} install %{?_smp_mflags}
|
||||
%make_install
|
||||
install -Dm 0644 editors/proto.vim %{buildroot}%{_datadir}/vim/site/syntax/proto.vim
|
||||
# no need for that
|
||||
find %{buildroot} -type f -name "*.la" -delete -print
|
||||
|
||||
%if %{with protobuf_java}
|
||||
%if %{with java}
|
||||
pushd java
|
||||
install -D -m 0644 %{name}-java-%{version}.jar %{buildroot}%{_javadir}/%{name}-java-%{version}.jar
|
||||
ln -s %{name}-java-%{version}.jar %{buildroot}%{_javadir}/%{name}-java.jar
|
||||
@ -228,57 +179,29 @@ ln -s %{name}-java-%{version}.jar %{buildroot}%{_javadir}/%{name}.jar
|
||||
popd
|
||||
%endif
|
||||
|
||||
%if %{with protobuf_python}
|
||||
pushd python2
|
||||
python2 setup.py install --skip-build \
|
||||
--prefix=%{_prefix} \
|
||||
--root %{buildroot} \
|
||||
--install-lib=%{python_sitearch} \
|
||||
--install-data=%{_datadir} \
|
||||
--record-rpm=INSTALLED_FILES
|
||||
pushd python
|
||||
%python_install
|
||||
popd
|
||||
%fdupes -s %{buildroot}%{python_sitearch}
|
||||
|
||||
%if 0%{?protobuf_python3}
|
||||
pushd python3
|
||||
python3 setup.py install --skip-build \
|
||||
--prefix=%{_prefix} \
|
||||
--root %{buildroot} \
|
||||
--install-lib=%{python3_sitearch} \
|
||||
--install-data=%{_datadir} \
|
||||
--record-rpm=INSTALLED_FILES
|
||||
popd
|
||||
%fdupes -s %{buildroot}%{python3_sitearch}
|
||||
%endif
|
||||
%endif
|
||||
%python_expand %fdupes %{buildroot}%{$python_sitelib}
|
||||
|
||||
%post -n libprotobuf%{sover} -p /sbin/ldconfig
|
||||
|
||||
%postun -n libprotobuf%{sover} -p /sbin/ldconfig
|
||||
|
||||
%post -n libprotoc%{sover} -p /sbin/ldconfig
|
||||
|
||||
%postun -n libprotoc%{sover} -p /sbin/ldconfig
|
||||
|
||||
%post -n libprotobuf-lite%{sover} -p /sbin/ldconfig
|
||||
|
||||
%postun -n libprotobuf-lite%{sover} -p /sbin/ldconfig
|
||||
|
||||
%files -n libprotobuf%{sover}
|
||||
%defattr(-, root, root)
|
||||
%doc LICENSE
|
||||
%license LICENSE
|
||||
%{_libdir}/libprotobuf.so.%{sover}*
|
||||
|
||||
%files -n libprotoc%{sover}
|
||||
%defattr(-, root, root)
|
||||
%{_libdir}/libprotoc.so.%{sover}*
|
||||
|
||||
%files -n libprotobuf-lite%{sover}
|
||||
%defattr(-, root, root)
|
||||
%{_libdir}/libprotobuf-lite.so.%{sover}*
|
||||
|
||||
%files devel
|
||||
%defattr(-,root,root)
|
||||
%doc CHANGES.txt CONTRIBUTORS.txt README.md
|
||||
%{_bindir}/protoc
|
||||
%{_includedir}/google
|
||||
@ -286,20 +209,21 @@ popd
|
||||
%{_libdir}/pkgconfig/*
|
||||
%{_datadir}/vim
|
||||
|
||||
%if %{with protobuf_java}
|
||||
%if %{with java}
|
||||
%files -n %{name}-java
|
||||
%defattr(-,root,root)
|
||||
%{_javadir}/protobuf*
|
||||
%endif
|
||||
|
||||
%if %{with protobuf_python}
|
||||
%files -n %{python2_prefix}-%{name} -f python2/INSTALLED_FILES
|
||||
%defattr(-,root,root)
|
||||
|
||||
%if 0%{?protobuf_python3}
|
||||
%files -n python3-%{name} -f python3/INSTALLED_FILES
|
||||
%defattr(-,root,root)
|
||||
%if %{with python2}
|
||||
%files -n python2-%{name}
|
||||
%license LICENSE
|
||||
%{python2_sitelib}/*
|
||||
%endif
|
||||
|
||||
%if %{with python3}
|
||||
%files -n python3-%{name}
|
||||
%license LICENSE
|
||||
%{python3_sitelib}/*
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
|
Loading…
x
Reference in New Issue
Block a user