File pari.spec of Package pari

#
# spec file for package pari
#
# Copyright (c) 2024 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/
#


# See
# http://pari.math.u-bordeaux.fr/archives/pari-dev-1211/msg00006.html
# for details on the SO versioning.
%global sover 9
%global lname   libpari-gmp-tls%sover
Name:           pari
Version:        2.17.0
Release:        0
Summary:        Computer Algebra System for computations in Number Theory
License:        GPL-2.0-only
Group:          Productivity/Scientific/Math
URL:            https://pari.math.u-bordeaux.fr
#Git-Clone:     https://pari.math.u-bordeaux.fr/git/pari.git
#Git-Web:       https://pari.math.u-bordeaux.fr/cgi-bin/gitweb.cgi
Source0:        %url/pub/pari/unix/pari-%version.tar.gz
Source1:        %url/pub/pari/unix/pari-%version.tar.gz.asc
Source2:        pari.keyring
BuildRequires:  fltk-devel
BuildRequires:  gmp-devel
BuildRequires:  pkg-config
BuildRequires:  readline-devel
BuildRequires:  texlive-latex
BuildRequires:  texlive-luatex
BuildRequires:  texlive-luatex-bin
BuildRequires:  texlive-luatexbase
BuildRequires:  texlive-tex-bin
BuildRequires:  xorg-x11-proto-devel
BuildRequires:  pkgconfig(x11)
BuildRequires:  tex(amsmath.sty)

%description
PARI/GP is a computer algebra system designed for computations
in number theory (factorizations, algebraic number theory, elliptic
curves) and other entities like matrices, polynomials,
power series, algebraic numbers, and transcendental functions.

%package gp
Summary:        Frontend to the PARI Computer Algebra System
Group:          Productivity/Scientific/Math

%description gp
PARI/GP is a computer algebra system designed for computations
in number theory (factorizations, algebraic number theory, elliptic
curves) and other entities like matrices, polynomials,
power series, algebraic numbers, and transcendental functions.

%package doc
Summary:        Documentation for the PARI Computer Algebra System
Group:          Documentation/Other
BuildArch:      noarch

%description doc
This package contains the documentation and examples for the PARI
Computer Algebra System.

%package -n %lname
Summary:        Shared library for the PARI Computer Algebra System
Group:          System/Libraries
# This is used by the data packages to avoid having a too-old version of libpari:
Provides:       libpari-gmp = %version

%description -n %lname
PARI/GP is a computer algebra system designed for computations
in number theory.
This package contains shared library for the PARI CAS.

%package devel
Summary:        Headers for the PARI Computer Algebra System
Group:          Development/Libraries/C and C++
Requires:       %lname = %version

%description devel
PARI/GP is a computer algebra system designed for computations
in number theory.
This package contains C API headers for the PARI CAS.

%prep
%autosetup
# Kill __DATE__ from source, it’s pointless and can cause rebuilds.
sed -i -e 's/__DATE__/"today"/' src/language/paricfg.c
# Set proprer page dimensions
sed -i -e '27 i \\\else\\\pagewidth=11.69in\\\pageheight=8.26in' doc/refmacro.tex
# Don’t build DVI docs
sed -i -e 's/^\(doc all:\) .*/\1/' config/DOC_Make.SH

%build
./Configure \
	--prefix="%_prefix" \
	--bindir="%_bindir" \
	--includedir="%_includedir" \
	--libdir="%_libdir" \
	--sysdatadir="%_libdir" \
	--datadir="%_datadir/%name" \
	--mt=pthread
%make_build \
	CFLAGS="%optflags -fno-strict-aliasing" \
	STRIP=true \
	all
%make_build \
	PDFTEX=luatex \
	PDFLATEX=lualatex \
	docpdf

%install
%make_install
install -dm0755 %buildroot%_sysconfdir
install -m0644 misc/gprc.dft %buildroot%_sysconfdir/gprc

install -dm0755 %buildroot%_defaultdocdir/%name
install -Dm0644 doc/*.pdf %buildroot%_defaultdocdir/%name
rm -rf %buildroot%_datadir/%name/doc
mv %buildroot%_datadir/%name/examples %buildroot%_defaultdocdir/%name

%ldconfig_scriptlets -n %lname

%files gp
%doc AUTHORS CHANGES* README* NEW
%config %_sysconfdir/gprc
%_bindir/*
%_datadir/%name
%_libdir/%name.cfg
%_mandir/*/*.1%{?ext_man}

%files doc
%_defaultdocdir/%name/

%files -n %lname
%license COPYING
%_libdir/libpari-gmp-tls.so.%version
%_libdir/libpari-gmp-tls.so.%sover

%files devel
%_includedir/%name/
%_libdir/libpari.so

%changelog
openSUSE Build Service is sponsored by