Rework build to remove buildroot references

This commit is contained in:
pcpa 2015-04-04 13:43:41 -03:00
parent baae9bd2a8
commit 7531f3c2df
2 changed files with 47 additions and 19 deletions

View file

@ -1,19 +1,22 @@
%global __provides_exclude_from .*/site-packages/.*\\.so
# for faster full rpm test builds
%bcond_without docs
# not functional due to missing jar dependencies
%global with_sage3d 0
%bcond_with sage3d
# use an workaround to match upstream sagemath patched sphinx
%global with_sphinx_hack 1
%bcond_without sphinx_hack
%ifarch x86_64
%global have_fes 1
%bcond_without fes
%else
%global have_fes 0
%bcond_with fes
%endif
# set to run sage -testall in %%install
%global with_check 0
%bcond_with check
%global SAGE_TIMEOUT 60
%global SAGE_TIMEOUT_LONG 180
@ -158,7 +161,7 @@ BuildRequires: dvipng
BuildRequires: ecl
BuildRequires: eclib-devel
BuildRequires: factory-devel
%if %{have_fes}
%if %{with fes}
BuildRequires: fes-devel
%endif
BuildRequires: flint-devel >= 2.3
@ -393,6 +396,7 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
This package contains the header files and development documentation
for %{name}.
%if %{with docs}
#------------------------------------------------------------------------
%package doc
Summary: Documentation infrastructure files for %{name}
@ -491,6 +495,8 @@ BuildArch: noarch
%description doc-tr
This package contains the Turkish %{name} documentation.
# with docs
%endif
#------------------------------------------------------------------------
%package notebook
@ -627,7 +633,7 @@ popd
%patch18
%patch19
%if %{have_fes}
%if %{with fes}
%patch20
%endif
@ -725,6 +731,14 @@ pushd build/pkgs/rubiks/src
make %{?_smp_mflags} CC="gcc -fPIC" CXX="g++ -fPIC" CFLAGS="%{optflags}" CXXFLAGS="%{optflags}"
popd
# Remove buildroot reference from cython comments
perl -pi -e 's|%{buildroot}||g;' `find src/build/cythonized -type f`
# Try hard to remove buildroot from binaries
rm -f `grep -lr "%{buildroot}" src/build/lib.linux-*/`
pushd src
python ./setup.py build
popd
# last build command
rm -fr $DOT_SAGE
@ -762,9 +776,11 @@ pushd src
python setup.py install --root=%{buildroot}
cp -fa c_lib/libcsage.so.0 %{buildroot}%{_libdir}
ln -sf libcsage.so.0 %{buildroot}%{_libdir}/libcsage.so
%if %{with docs}
# install documentation sources
rm -fr $SAGE_DOC/{common,en,fr}
cp -far doc/{common,ca,de,en,fr,hu,it,pt,ru,tr} $SAGE_DOC
%endif
popd
#------------------------------------------------------------------------
@ -775,7 +791,7 @@ pushd build/pkgs/sagenb/src/%{sagenb_pkg}
ln -sf %{_jsdir}/jsmol $SAGE_SHARE/jsmol
# sage3d
rm -f %{buildroot}%{_bindir}/sage3d
%if %{with_sage3d}
%if %{with sage3d}
ln -sf %{SAGE_LOCAL}/bin/sage3d %{buildroot}%{python_sitearch}/sagenb/data/sage3d/sage3d
%endif
ln -sf %{python_sitearch}/sagenb %{buildroot}%{SAGE_SRC}/sagenb
@ -956,7 +972,7 @@ EOF
chmod +x %{buildroot}%{_bindir}/sage
#------------------------------------------------------------------------
%if %{with_sage3d}
%if %{with sage3d}
cat > %{buildroot}%{SAGE_LOCAL}/bin/sage3d << EOF
#!/bin/sh
@ -981,6 +997,7 @@ pushd src
touch %{buildroot}%{python_sitearch}/sage/libs/gmp/__init__.py
popd
%if %{with docs}
#------------------------------------------------------------------------
cp -f $SAGE_PYTHONPATH/{ANSI,FSM,pexpect,pxssh,screen}.py %{buildroot}%{python_sitearch}
@ -993,7 +1010,7 @@ pushd src/doc
export LD_LIBRARY_PATH=%{buildroot}%{_libdir}:%{_libdir}/atlas:$LD_LIBRARY_PATH
export PYTHONPATH=%{buildroot}%{python_sitearch}:$SAGE_PYTHONPATH:$SAGE_DOC
%if %{with_sphinx_hack}
%if %{with sphinx_hack}
cp -far %{python_sitelib}/sphinx %{buildroot}%{python_sitearch}
sed -i "s|\(source.startswith('>>>')\)|\1 or source.startswith('sage: ')|" \
%{buildroot}%{python_sitearch}/sphinx/highlighting.py
@ -1009,7 +1026,7 @@ pushd src/doc
rm -fr $SAGE_DOC/output/doctrees
popd
%if %{with_check}
%if %{with check}
export SAGE_TIMEOUT=%{SAGE_TIMEOUT}
export SAGE_TIMEOUT_LONG=%{SAGE_TIMEOUT_LONG}
sage -testall --verbose || :
@ -1020,17 +1037,19 @@ sed -i 's|%{buildroot}||g' $SAGE_DOC/test.log
rm -f %{buildroot}%{python_sitearch}/{ANSI,FSM,pexpect,pxssh,screen}.py{,c}
%if %{with_sphinx_hack}
%if %{with sphinx_hack}
rm -fr %{buildroot}%{python_sitearch}/sphinx
%endif
# Script was used to build documentation
perl -pi -e 's|%{buildroot}||g;s|^##||g;' %{buildroot}%{_bindir}/sage
# More wrong buildroot references
perl -pi -e 's|%{buildroot}||g;' \
-e "s|$PWD/src/doc|%{SAGE_DOC}|g;" \
%{buildroot}%{SAGE_DOC}/output/html/en/reference/todolist.html
# with docs
%endif
# Script was used to build documentation
perl -pi -e 's|%{buildroot}||g;s|^##||g;' %{buildroot}%{_bindir}/sage
#------------------------------------------------------------------------
# Fix links
@ -1072,12 +1091,15 @@ for file in `find %{buildroot} -name \*.py`; do
chmod +x $file
fi
done
%if %{with doc}
chmod -x %{buildroot}%{SAGE_DOC}/en/prep/media/Rplot001.png
# Documentation is not rebuilt (also corrects rpmlint warning of hidden file)
find %{buildroot}%{SAGE_DOC} -name .buildinfo -exec rm {} \;
rm -fr %{buildroot}%{SAGE_DOC}/output/inventory
find %{buildroot}%{SAGE_DOC} -type d -name _sources | xargs rm -fr
%endif
# remove bundles fonts
rm -r %{buildroot}%{python_sitearch}/sagenb/data/mathjax/fonts
@ -1085,7 +1107,7 @@ rm -r %{buildroot}%{python_sitearch}/sagenb/data/mathjax/fonts
# remove .po files
rm %{buildroot}%{python_sitearch}/sagenb/translations/*/LC_MESSAGES/*.po
%if !%{with_sage3d}
%if %{without sage3d}
rm -r %{buildroot}%{python_sitearch}/sagenb/data/sage3d
%endif
@ -1193,6 +1215,7 @@ exit 0
%{_includedir}/csage
%{_libdir}/libcsage.so
%if %{with docs}
#------------------------------------------------------------------------
%files doc
# GPLv2+
@ -1254,6 +1277,8 @@ exit 0
# GPLv2+
%{SAGE_DOC}/tr
%{SAGE_DOC}/output/html/tr
# with docs
%endif
#------------------------------------------------------------------------
%files notebook
@ -1285,7 +1310,7 @@ exit 0
%{python_sitearch}/sagenb/data/openid-realselector
# GPLv2+
%{python_sitearch}/sagenb/data/sage
%if %{with_sage3d}
%if %{with sage3d}
# GPLv2+
%{python_sitearch}/sagenb/data/sage3d
%endif
@ -1346,6 +1371,9 @@ exit 0
- Update to sagemath 6.5
- Add new Catalan and Hungarian doc subpackages
- Add customizations to not need a patched pari
- Add "with docs" test build option
- Convert build conditionals to use bcond
- Correct deprecated warning when loading sagenb
* Sat Feb 7 2015 pcpa <paulo.cesar.pereira.de.andrade@gmail.com> - 6.4.1-4
- Rebuild with a functional jsmol interface (#1190356)