Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Backports:SLE-15-SP4:FactoryCandidates
ginac
ginac.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File ginac.spec of Package ginac
# # spec file # # Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # %global flavor @BUILD_FLAVOR@%{nil} %global srcname ginac %if "%{flavor}" == "doc" %bcond_without doc %define pkg_suffix -doc %endif %if "%{flavor}" == "" %bcond_with doc %endif # Latex fails on Leap/SLE 15.x %if 0%{?suse_version} < 1550 %bcond_with apiref_pdf %else %bcond_without apiref_pdf %endif %define library_version 11 Name: %{srcname}%{?pkg_suffix} Version: 1.8.7 Release: 0 Summary: C++ library for symbolic calculations License: GPL-2.0-only URL: https://www.ginac.de/ Source0: https://www.ginac.de/%{srcname}-%{version}.tar.bz2 # PATCH-FIX-UPSTREAM ginac-fix-makeindex.patch badshah400@gmail.com -- Fix input file path when running makeindex which does not like absolute paths Patch0: ginac-fix-makeindex.patch # PATCH-FIX-UPSTREAM ginac-cmake-install-doc.patch badshah400@gmail.com -- Install man and other documentation files when cmake is used for building Patch1: ginac-cmake-install-doc.patch BuildRequires: bison BuildRequires: cln-devel BuildRequires: cmake BuildRequires: fdupes BuildRequires: flex BuildRequires: gcc-c++ BuildRequires: gmp-devel BuildRequires: makeinfo BuildRequires: pkgconfig BuildRequires: python3-base BuildRequires: readline-devel # SECTION Requirements for building documentation %if %{with doc} #!BuildIgnore: texlive-tex4ht BuildRequires: doxygen BuildRequires: graphviz BuildRequires: graphviz-gnome BuildRequires: texinfo BuildRequires: texlive-dvips BuildRequires: texlive-latex BuildRequires: texlive-pdftex BuildRequires: transfig BuildRequires: tex(float.sty) BuildRequires: tex(newunicodechar.sty) BuildRequires: tex(xcolor.sty) %if %{with apiref_pdf} BuildRequires: texlive-courier BuildRequires: texlive-helvetic BuildRequires: texlive-wasy BuildRequires: tex(8r.enc) BuildRequires: tex(adjustbox.sty) BuildRequires: tex(alphalph.sty) BuildRequires: tex(caption.sty) BuildRequires: tex(changepage.sty) BuildRequires: tex(colortbl.sty) BuildRequires: tex(enumitem.sty) BuildRequires: tex(etoc.sty) BuildRequires: tex(fancyhdr.sty) BuildRequires: tex(fancyvrb.sty) BuildRequires: tex(hanging.sty) BuildRequires: tex(helvet.sty) BuildRequires: tex(multirow.sty) BuildRequires: tex(natbib.sty) BuildRequires: tex(sectsty.sty) BuildRequires: tex(stackengine.sty) BuildRequires: tex(tabu.sty) BuildRequires: tex(tocloft.sty) BuildRequires: tex(ulem.sty) BuildRequires: tex(wasysym.sty) %endif %endif # /SECTION %description GiNaC (which stands for "GiNaC is Not a CAS (Computer Algebra System)") is an open framework for symbolic computation within the C++ programming language. %package -n libginac%{library_version} Summary: C++ library for symbolic calculations %description -n libginac%{library_version} GiNaC (which stands for "GiNaC is Not a CAS (Computer Algebra System)") is an open framework for symbolic computation within the C++ programming language. %package devel Summary: GiNaC development libraries and header files Requires: cln-devel Requires: libginac%{library_version} = %{version} Provides: lib%{name}-devel = %{version} Obsoletes: lib%{name}-devel < %{version} %if 0%{?suse_version} < 1550 Requires(pre): %{install_info_prereq} Requires(preun):%{install_info_prereq} %endif Recommends: ginac-doc-tutorial %description devel GiNaC (which stands for "GiNaC is Not a CAS (Computer Algebra System)") is an open framework for symbolic computation within the C++ programming language. This package contains the libraries, include files and other resources you use to develop GiNaC applications. %if "%{flavor}" == "doc" %package pdf Summary: API documentation for GiNaC in PDF format BuildArch: noarch %description pdf GiNaC (which stands for "GiNaC is Not a CAS (Computer Algebra System)") is an open framework for symbolic computation within the C++ programming language. This package provides the API documentation for GiNaC in PDF format. %package html Summary: API documentation for GiNaC in HTML format BuildArch: noarch %description html GiNaC (which stands for "GiNaC is Not a CAS (Computer Algebra System)") is an open framework for symbolic computation within the C++ programming language. This package provides the API documentation for GiNaC in HTML format. %package tutorial Summary: The GiNaC tutorial in PDF format BuildArch: noarch %description tutorial GiNaC (which stands for "GiNaC is Not a CAS (Computer Algebra System)") is an open framework for symbolic computation within the C++ programming language. This package provides a tutorial file for GiNaC in PDF format. %endif %prep %autosetup -p1 -n %{srcname}-%{version} # Use dot to generate class diagrams. Otherwise, ghostscript is used # to convert EPS to PDF, which embeds the current time sed -i -e '/HAVE_DOT/ s/=.*NO/= YES/' doc/reference/DoxyfilePDF.in # PNG files rendered with cairo are nonreproducible depending on # CPU features and architecture sed -i -e '/DOT_IMAGE_FORMAT/ s/=.*png/= svg/' doc/reference/DoxyfileHTML.in %build export LDFLAGS="-Wl,--no-undefined" %cmake -DCMAKE_SKIP_RPATH:BOOL=ON \ -DCMAKE_INSTALL_LIBEXECDIR:PATH=%{_libexecdir} \ -DCMAKE_INSTALL_DOCDIR:PATH=%{_docdir}/%{name} %if "%{flavor}" == "doc" # Build just the reference doc for the "doc" flavour pushd doc/reference %if %{with apiref_pdf} %cmake_build pdf_dox %endif %cmake_build html_dox popd pushd doc/tutorial %cmake_build pdf_ginac_tutorial popd %else %cmake_build %endif %install %if "%{flavor}" == "doc" install -d -m 755 %{buildroot}%{_docdir}/%{name}/html cp -R -t %{buildroot}%{_docdir}/%{name}/html/ %{__builddir}/doc/reference/html_files/* %if %{with apiref_pdf} install -m 644 -t %{buildroot}%{_docdir}/%{name}/ %{__builddir}/doc/reference/pdflatex/reference.pdf %endif %else %cmake_install %endif find %{buildroot} -type f -name "*.la" -delete -print %fdupes %{buildroot}%{_docdir}/%{name}/html/ # SECTION Unflavoured Pkg %if "%{flavor}" == "" %check export LD_LIBRARY_PATH=%{buildroot}%{_libdir} %cmake_build check %post -n libginac%{library_version} -p /sbin/ldconfig %postun -n libginac%{library_version} -p /sbin/ldconfig %if 0%{?suse_version} < 1550 %post devel %install_info --info-dir=%{_infodir} %{_infodir}/ginac.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/ginac-examples.info.gz %preun devel %install_info_delete --info-dir=%{_infodir} %{_infodir}/ginac.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/ginac-examples.info.gz %endif %files -n libginac%{library_version} %{_libdir}/libginac.so.%{library_version}* %files devel %license COPYING %doc AUTHORS ChangeLog NEWS README %{_libdir}/*.so %{_libdir}/pkgconfig/ginac.pc %{_libdir}/cmake/ginac/ %{_includedir}/ginac/ %{_infodir}/*.info%{?ext_info} %files %{_bindir}/ginsh %{_bindir}/viewgar %{_libexecdir}/ginac-excompiler %{_mandir}/man1/ginsh.1%{?ext_man} %{_mandir}/man1/viewgar.1%{?ext_man} %endif # /SECTION # SECTION doc flavoured pkg %if "%{flavor}" == "doc" %if %{with apiref_pdf} %files pdf %dir %{_docdir}/%{name} %doc %{_docdir}/%{name}/reference.pdf %endif %files html %dir %{_docdir}/%{name} %doc %{_docdir}/%{name}/html/ %files tutorial %doc %__builddir/doc/tutorial/ginac.pdf %endif # /SECTION %changelog
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor