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
|
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
|
# 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
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# 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 sover 15
|
||||||
%define tarname protobuf
|
%define tarname protobuf
|
||||||
# requires gmock, which is not yet in the distribution
|
# requires gmock, which is not yet in the distribution
|
||||||
%bcond_with check
|
%bcond_with check
|
||||||
%bcond_without protobuf_java
|
%bcond_without java
|
||||||
%bcond_without protobuf_python
|
%bcond_without python2
|
||||||
|
%bcond_without python3
|
||||||
%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
|
|
||||||
|
|
||||||
Name: protobuf
|
Name: protobuf
|
||||||
Version: 3.5.0
|
Version: 3.5.0
|
||||||
Release: 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
|
Source0: https://github.com/google/protobuf/archive/v%{version}.tar.gz#/%{tarname}-%{version}.tar.gz
|
||||||
Source1: manifest.txt.in
|
Source1: manifest.txt.in
|
||||||
Source2: baselibs.conf
|
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: autoconf
|
||||||
BuildRequires: automake
|
BuildRequires: automake
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
BuildRequires: gcc-c++
|
BuildRequires: gcc-c++
|
||||||
|
BuildRequires: libtool
|
||||||
|
BuildRequires: pkgconfig
|
||||||
|
BuildRequires: python-rpm-macros
|
||||||
|
BuildRequires: zlib-devel
|
||||||
%if %{with check}
|
%if %{with check}
|
||||||
BuildRequires: libgmock-devel >= 1.7.0
|
BuildRequires: libgmock-devel >= 1.7.0
|
||||||
%endif
|
%endif
|
||||||
BuildRequires: libtool
|
%if %{with java}
|
||||||
BuildRequires: pkg-config
|
|
||||||
%if %{with protobuf_java}
|
|
||||||
BuildRequires: java-devel >= 1.6.0
|
BuildRequires: java-devel >= 1.6.0
|
||||||
%endif
|
%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
|
%description
|
||||||
Protocol Buffers are a way of encoding structured data in an efficient yet
|
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%{sover} = %{version}
|
||||||
Requires: libprotobuf-lite%{sover}
|
Requires: libprotobuf-lite%{sover}
|
||||||
Requires: zlib-devel
|
Requires: zlib-devel
|
||||||
Provides: libprotobuf-devel = %{version}
|
|
||||||
Conflicts: protobuf2-devel
|
Conflicts: protobuf2-devel
|
||||||
|
Provides: libprotobuf-devel = %{version}
|
||||||
|
|
||||||
%description devel
|
%description devel
|
||||||
Protocol Buffers are a way of encoding structured data in an efficient yet
|
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
|
extensible format. Google uses Protocol Buffers for almost all of its internal
|
||||||
RPC protocols and file formats.
|
RPC protocols and file formats.
|
||||||
|
|
||||||
%if %{with protobuf_java}
|
|
||||||
%package -n %{name}-java
|
%package -n %{name}-java
|
||||||
Summary: Java Bindings for Google Protocol Buffers
|
Summary: Java Bindings for Google Protocol Buffers
|
||||||
Group: Development/Libraries/Java
|
Group: Development/Libraries/Java
|
||||||
@ -127,61 +108,45 @@ Requires: java >= 1.6.0
|
|||||||
|
|
||||||
%description -n %{name}-java
|
%description -n %{name}-java
|
||||||
This package contains the Java bindings for Google Protocol Buffers.
|
This package contains the Java bindings for Google Protocol Buffers.
|
||||||
%endif
|
|
||||||
|
|
||||||
%if %{with protobuf_python}
|
%package -n python2-%{name}
|
||||||
%package -n %{python2_prefix}-%{name}
|
|
||||||
Summary: Python2 Bindings for Google Protocol Buffers
|
Summary: Python2 Bindings for Google Protocol Buffers
|
||||||
Group: Development/Libraries/Python
|
Group: Development/Libraries/Python
|
||||||
%if 0%{?protobuf_python3}
|
|
||||||
Provides: python-%{name} = %{version}
|
Provides: python-%{name} = %{version}
|
||||||
Obsoletes: 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.
|
This package contains the Python bindings for Google Protocol Buffers.
|
||||||
|
|
||||||
%if 0%{?protobuf_python3}
|
|
||||||
%package -n python3-%{name}
|
%package -n python3-%{name}
|
||||||
Summary: Python3 Bindings for Google Protocol Buffers
|
Summary: Python3 Bindings for Google Protocol Buffers
|
||||||
Group: Development/Libraries/Python
|
Group: Development/Libraries/Python
|
||||||
Requires: python3
|
|
||||||
|
|
||||||
%description -n python3-%{name}
|
%description -n python3-%{name}
|
||||||
This package contains the Python bindings for Google Protocol Buffers.
|
This package contains the Python bindings for Google Protocol Buffers.
|
||||||
%endif
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
|
|
||||||
%setup -q -n %{tarname}-%{version}
|
%setup -q -n %{tarname}-%{version}
|
||||||
mkdir gmock
|
mkdir gmock
|
||||||
|
|
||||||
%if %{with protobuf_python}
|
%if %{with python2} || %{with python3}
|
||||||
# only needed for test suite which we don't call anyways.
|
# only needed for test suite which we don't call anyways.
|
||||||
# googleapis is broken on sle12
|
# googleapis is broken on sle12
|
||||||
sed -i '/apputils/d' python/setup.py
|
sed -i '/apputils/d' python/setup.py
|
||||||
sed -i '/google_test_dir/d' python/setup.py
|
sed -i '/google_test_dir/d' python/setup.py
|
||||||
%endif
|
%endif
|
||||||
|
# kill shebang that we do not really want
|
||||||
|
sed -i -e '/env python/d' python/google/protobuf/internal/*.py
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%if 0%{?mandriva_version}
|
autoreconf -fvi
|
||||||
#XXX something wents wrong with detecting this
|
|
||||||
export PTHREAD_LIBS=-lpthread
|
|
||||||
%endif
|
|
||||||
|
|
||||||
autoreconf -fi
|
|
||||||
%configure \
|
%configure \
|
||||||
--disable-static
|
--disable-static
|
||||||
|
|
||||||
make %{?_smp_mflags}
|
make %{?_smp_mflags}
|
||||||
|
|
||||||
%if %{with protobuf_java}
|
%if %{with java}
|
||||||
pushd java
|
pushd java
|
||||||
../src/protoc --java_out=core/src/main/java -I../src ../src/google/protobuf/descriptor.proto
|
../src/protoc --java_out=core/src/main/java -I../src ../src/google/protobuf/descriptor.proto
|
||||||
mkdir classes
|
mkdir classes
|
||||||
@ -191,36 +156,22 @@ jar cfm %{name}-java-%{version}.jar manifest.txt -C classes com
|
|||||||
popd
|
popd
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%if %{with protobuf_python}
|
pushd python
|
||||||
cp -Ra python python2
|
%python_build
|
||||||
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
|
|
||||||
popd
|
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}
|
%if %{with check}
|
||||||
%check
|
%check
|
||||||
make %{?_smp_mflags} check
|
make %{?_smp_mflags} check
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%install
|
%install
|
||||||
make DESTDIR=%{buildroot} install %{?_smp_mflags}
|
%make_install
|
||||||
install -Dm 0644 editors/proto.vim %{buildroot}%{_datadir}/vim/site/syntax/proto.vim
|
install -Dm 0644 editors/proto.vim %{buildroot}%{_datadir}/vim/site/syntax/proto.vim
|
||||||
# no need for that
|
# no need for that
|
||||||
find %{buildroot} -type f -name "*.la" -delete -print
|
find %{buildroot} -type f -name "*.la" -delete -print
|
||||||
|
|
||||||
%if %{with protobuf_java}
|
%if %{with java}
|
||||||
pushd java
|
pushd java
|
||||||
install -D -m 0644 %{name}-java-%{version}.jar %{buildroot}%{_javadir}/%{name}-java-%{version}.jar
|
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
|
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
|
popd
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%if %{with protobuf_python}
|
pushd python
|
||||||
pushd python2
|
%python_install
|
||||||
python2 setup.py install --skip-build \
|
|
||||||
--prefix=%{_prefix} \
|
|
||||||
--root %{buildroot} \
|
|
||||||
--install-lib=%{python_sitearch} \
|
|
||||||
--install-data=%{_datadir} \
|
|
||||||
--record-rpm=INSTALLED_FILES
|
|
||||||
popd
|
popd
|
||||||
%fdupes -s %{buildroot}%{python_sitearch}
|
%python_expand %fdupes %{buildroot}%{$python_sitelib}
|
||||||
|
|
||||||
%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
|
|
||||||
|
|
||||||
%post -n libprotobuf%{sover} -p /sbin/ldconfig
|
%post -n libprotobuf%{sover} -p /sbin/ldconfig
|
||||||
|
|
||||||
%postun -n libprotobuf%{sover} -p /sbin/ldconfig
|
%postun -n libprotobuf%{sover} -p /sbin/ldconfig
|
||||||
|
|
||||||
%post -n libprotoc%{sover} -p /sbin/ldconfig
|
%post -n libprotoc%{sover} -p /sbin/ldconfig
|
||||||
|
|
||||||
%postun -n libprotoc%{sover} -p /sbin/ldconfig
|
%postun -n libprotoc%{sover} -p /sbin/ldconfig
|
||||||
|
|
||||||
%post -n libprotobuf-lite%{sover} -p /sbin/ldconfig
|
%post -n libprotobuf-lite%{sover} -p /sbin/ldconfig
|
||||||
|
|
||||||
%postun -n libprotobuf-lite%{sover} -p /sbin/ldconfig
|
%postun -n libprotobuf-lite%{sover} -p /sbin/ldconfig
|
||||||
|
|
||||||
%files -n libprotobuf%{sover}
|
%files -n libprotobuf%{sover}
|
||||||
%defattr(-, root, root)
|
%license LICENSE
|
||||||
%doc LICENSE
|
|
||||||
%{_libdir}/libprotobuf.so.%{sover}*
|
%{_libdir}/libprotobuf.so.%{sover}*
|
||||||
|
|
||||||
%files -n libprotoc%{sover}
|
%files -n libprotoc%{sover}
|
||||||
%defattr(-, root, root)
|
|
||||||
%{_libdir}/libprotoc.so.%{sover}*
|
%{_libdir}/libprotoc.so.%{sover}*
|
||||||
|
|
||||||
%files -n libprotobuf-lite%{sover}
|
%files -n libprotobuf-lite%{sover}
|
||||||
%defattr(-, root, root)
|
|
||||||
%{_libdir}/libprotobuf-lite.so.%{sover}*
|
%{_libdir}/libprotobuf-lite.so.%{sover}*
|
||||||
|
|
||||||
%files devel
|
%files devel
|
||||||
%defattr(-,root,root)
|
|
||||||
%doc CHANGES.txt CONTRIBUTORS.txt README.md
|
%doc CHANGES.txt CONTRIBUTORS.txt README.md
|
||||||
%{_bindir}/protoc
|
%{_bindir}/protoc
|
||||||
%{_includedir}/google
|
%{_includedir}/google
|
||||||
@ -286,20 +209,21 @@ popd
|
|||||||
%{_libdir}/pkgconfig/*
|
%{_libdir}/pkgconfig/*
|
||||||
%{_datadir}/vim
|
%{_datadir}/vim
|
||||||
|
|
||||||
%if %{with protobuf_java}
|
%if %{with java}
|
||||||
%files -n %{name}-java
|
%files -n %{name}-java
|
||||||
%defattr(-,root,root)
|
|
||||||
%{_javadir}/protobuf*
|
%{_javadir}/protobuf*
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%if %{with protobuf_python}
|
%if %{with python2}
|
||||||
%files -n %{python2_prefix}-%{name} -f python2/INSTALLED_FILES
|
%files -n python2-%{name}
|
||||||
%defattr(-,root,root)
|
%license LICENSE
|
||||||
|
%{python2_sitelib}/*
|
||||||
%if 0%{?protobuf_python3}
|
|
||||||
%files -n python3-%{name} -f python3/INSTALLED_FILES
|
|
||||||
%defattr(-,root,root)
|
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%if %{with python3}
|
||||||
|
%files -n python3-%{name}
|
||||||
|
%license LICENSE
|
||||||
|
%{python3_sitelib}/*
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
Loading…
x
Reference in New Issue
Block a user