Compare commits

..

No commits in common. "rawhide" and "f27" have entirely different histories.

13 changed files with 329 additions and 599 deletions

30
.gitignore vendored
View file

@ -15,33 +15,3 @@
/giac-1.4.9.43.tar.gz
/giac-1.4.9.45.tar.gz
/giac-1.4.9.59.tar.gz
/giac-1.5.0.3.tar.gz
/giac-1.5.0.35.tar.gz
/giac-1.5.0.53.tar.gz
/giac-1.5.0.63.tar.gz
/giac-1.5.0.75.tar.gz
/giac-1.5.0.85.tar.gz
/giac-1.6.0.7.tar.gz
/giac-1.6.0.25.tar.gz
/giac-1.7.0.1.tar.gz
/giac-1.7.0.13.tar.gz
/giac-1.7.0.29.tar.gz
/giac-1.9.0.19.tar.gz
/giac-1.9.0.29.tar.gz
/giac-1.9.0.35.tar.gz
/giac-1.9.0.37.tar.gz
/giac-1.9.0.57.tar.gz
/giac-1.9.0.59.tar.gz
/giac-1.9.0.61.tar.gz
/giac-1.9.0.63.tar.gz
/giac-1.9.0.69.tar.gz
/giac-1.9.0.73.tar.gz
/giac-1.9.0.91.tar.gz
/giac-1.9.0.97.tar.gz
/giac-1.9.0.99.tar.gz
/giac-1.9.0.992.tar.gz
/giac-1.9.0.993.tar.gz
/giac-1.9.0.998.tar.gz
/giac-1.9.0.999.tar.gz
/giac-2.0.0.17.tar.gz
/giac-2.0.0.18.tar.gz

View file

@ -1,84 +0,0 @@
--- micropython-1.12/ports/unix/Makefile.orig 2020-10-21 13:52:17.066827941 +0200
+++ micropython-1.12/ports/unix/Makefile 2020-10-21 13:55:01.614107239 +0200
@@ -27,14 +27,14 @@
# compiler settings
CWARN = -Wall -Werror
CWARN += -Wpointer-arith -Wuninitialized
-CFLAGS = $(INC) $(CWARN) -std=gnu99 -DUNIX $(CFLAGS_MOD) $(COPT) $(CFLAGS_EXTRA)
+CFLAGS = $(INC) $(CWARN) -DUNIX $(CFLAGS_MOD) $(COPT) $(CFLAGS_EXTRA) ${CFLAGS_FEDORA} -std=gnu99
# Debugging/Optimization
ifdef DEBUG
CFLAGS += -g
COPT = -O0
else
-COPT = -Os -fdata-sections -ffunction-sections -DNDEBUG
+COPT = -fdata-sections -ffunction-sections -DNDEBUG
# _FORTIFY_SOURCE is a feature in gcc/glibc which is intended to provide extra
# security for detecting buffer overflows. Some distros (Ubuntu at the very least)
# have it enabled by default.
--- micropython-1.12/xcas/Makefile.orig 2020-10-21 15:27:04.025499976 +0200
+++ micropython-1.12/xcas/Makefile 2020-10-21 15:30:30.579300358 +0200
@@ -32,16 +32,16 @@
ifdef DEBUG
COPT = -g
else
-COPT = -g #-fomit-frame-pointer -flto
+COPT = -g
endif
# compiler settings
-CWARN = -Wall #-Werror -Wno-error=cpp -Wno-error=format
-CFLAGS = -fPIC -DMICROPY_LIB $(INC) $(CWARN) -ansi -std=gnu99 $(CFLAGS_MOD) $(COPT) $(CFLAGS_EXTRA)
+CWARN = -Wall
+CFLAGS = -fPIC -DMICROPY_LIB $(INC) $(CWARN) ${CFLAGS_FEDORA} -std=gnu99 $(CFLAGS_MOD) $(COPT) $(CFLAGS_EXTRA)
-LDFLAGS = $(LDFLAGS_MOD) -lm $(LDFLAGS_EXTRA)
+LDFLAGS = ${LDFLAGS_FEDORA} $(LDFLAGS_MOD) -lm $(LDFLAGS_EXTRA)
# source files
SRC_C = $(shell find . -name \*.c)
--- micropython-1.12/nspire/Makefile.orig 2020-04-30 09:52:40.000000000 +0200
+++ micropython-1.12/nspire/Makefile 2020-10-21 14:02:09.081234972 +0200
@@ -31,14 +31,14 @@
ifdef DEBUG
COPT = -O0 -g
else
-COPT = -Os -g #-fomit-frame-pointer -flto
+COPT = -g
endif
# compiler settings
CWARN = -Wall -Werror -Wno-error=cpp -Wno-error=format -Wno-error=implicit-function-declaration
-CFLAGS = -DMICROPY_LIB -mthumb-interwork $(INC) $(CWARN) -ansi -std=gnu99 $(CFLAGS_MOD) $(COPT) $(CFLAGS_EXTRA)
+CFLAGS = -DMICROPY_LIB -mthumb-interwork $(INC) $(CWARN) $(CFLAGS_FEDORA) -std=gnu99 $(CFLAGS_MOD) $(COPT) $(CFLAGS_EXTRA)
-LDFLAGS = $(LDFLAGS_MOD) -lm $(LDFLAGS_EXTRA) -Wl,--nspireio
+LDFLAGS = $(LDFLAGS_FEDORA) $(LDFLAGS_MOD) -lm $(LDFLAGS_EXTRA) -Wl,--nspireio
# source files
SRC_C = $(shell find . -name \*.c)
--- micropython-1.12/numworks/Makefile.orig 2020-04-30 09:52:40.000000000 +0200
+++ micropython-1.12/numworks/Makefile 2020-10-21 14:04:15.408648069 +0200
@@ -31,16 +31,16 @@
ifdef DEBUG
COPT = -O0 -g
else
-COPT = -Ofast -g #-fomit-frame-pointer -flto
+COPT = -g
endif
# compiler settings
CWARN = -Wall -Werror -Wno-error=cpp -Wno-error=format
-CFLAGS = -DNUMWORKS -DMICROPY_LIB $(INC) $(CWARN) -ansi -std=gnu99 $(CFLAGS_MOD) $(COPT) $(CFLAGS_EXTRA)
+CFLAGS = -DNUMWORKS -DMICROPY_LIB $(INC) $(CWARN) $(CFLAGS_MOD) $(COPT) $(CFLAGS_EXTRA) $(CFLAGS_FEDORA) -std=gnu99
CFLAGS += -mthumb -march=armv7e-m -mfloat-abi=hard -mcpu=cortex-m7 -mfpu=fpv5-sp-d16 -fdata-sections -ffunction-sections -fno-strict-aliasing -fno-exceptions # -fpermissive
-LDFLAGS = $(LDFLAGS_MOD) -lm $(LDFLAGS_EXTRA)
+LDFLAGS = ${LDFLAGS_FEDORA} $(LDFLAGS_MOD) -lm $(LDFLAGS_EXTRA)
# source files
SRC_C = $(shell find . -name \*.c)

View file

@ -1,163 +0,0 @@
--- configure.ac.orig 2020-04-30 01:52:40.000000000 -0600
+++ configure.ac 2020-10-27 17:05:31.732729921 -0600
@@ -272,7 +272,7 @@ AC_ARG_ENABLE([cocoa],
[if test "$enableval" = "no"; then CONFIG_COCOA="no"; fi], [])
if test "$CONFIG_COCOA" = "yes"; then
- AC_CHECK_HEADER(CoCoA/io.H, [], [CONFIG_COCOA="no"])
+ AC_CHECK_HEADER(CoCoA/BigInt.H, [], [CONFIG_COCOA="no"])
fi
if test "$CONFIG_COCOA" = "yes"; then
save_LIBS="$LIBS"
--- configure.orig 2020-04-30 01:52:40.000000000 -0600
+++ configure 2020-10-27 17:06:22.817658796 -0600
@@ -16662,8 +16662,8 @@ fi
if test "$CONFIG_COCOA" = "yes"; then
- ac_fn_cxx_check_header_mongrel "$LINENO" "CoCoA/io.H" "ac_cv_header_CoCoA_io_H" "$ac_includes_default"
-if test "x$ac_cv_header_CoCoA_io_H" = xyes; then :
+ ac_fn_cxx_check_header_mongrel "$LINENO" "CoCoA/BigInt.H" "ac_cv_header_CoCoA_BigInt_H" "$ac_includes_default"
+if test "x$ac_cv_header_CoCoA_BigInt_H" = xyes; then :
else
CONFIG_COCOA="no"
--- src/TmpFGLM.C.orig 2019-11-03 11:23:52.000000000 -0700
+++ src/TmpFGLM.C 2020-11-06 09:58:43.358885872 -0700
@@ -109,14 +109,14 @@ namespace CoCoADortmund
void FGLMBasisConversion(vector<RingElem>& NewGB, const vector<RingElem>& OldGB, const PPOrdering& NewOrdering)
{
if (OldGB.empty())
- CoCoA_ERROR(ERR::nonstandard, "FGLMBasisConversion: empty Groebner Basis vector");
+ CoCoA_THROW_ERROR(ERR::nonstandard, "FGLMBasisConversion: empty Groebner Basis vector");
// Check if generated ideal is zero-dimensional
// const ideal I(AsSparsePolyRing(owner(OldGB.front())), OldGB);
const ideal I(SparsePolyRing(static_cast<const SparsePolyRingBase*>
(owner(OldGB.front()).myRawPtr())), OldGB);
if (!IsZeroDim(I))
- CoCoA_ERROR(ERR::nonstandard, "FGLMBasisConversion: ideal must be 0-dimensional");
+ CoCoA_THROW_ERROR(ERR::nonstandard, "FGLMBasisConversion: ideal must be 0-dimensional");
// Initialization of objects needed for computation
// const SparsePolyRing Kx = AsSparsePolyRing(owner(OldGB.front()));
--- src/TmpLESystemSolver.C.orig 2019-11-03 11:20:03.000000000 -0700
+++ src/TmpLESystemSolver.C 2020-11-06 09:38:58.349024036 -0700
@@ -29,6 +29,7 @@
#include "CoCoA/matrix.H"
#include "CoCoA/ring.H"
#include "CoCoA/error.H"
+#include "CoCoA/MachineInt.H"
// #include <vector> // Included by DenseMatrix.H
using std::vector;
@@ -50,7 +51,11 @@ namespace CoCoADortmund
for (size_t row = 0; row < NumRowsMSource; ++row)
for (size_t col = 0; col < NumColsMSource; ++col)
- SetEntry(MTarget, row, col, MSource(row, col));
+ {
+ const MachineInt rowInt(static_cast<unsigned long>(row));
+ const MachineInt colInt(static_cast<unsigned long>(col));
+ SetEntry(MTarget, row, col, MSource(rowInt, colInt));
+ }
}
// Solve the linear system M*x = b by using Gauss' algorithm
@@ -60,22 +65,23 @@ namespace CoCoADortmund
const size_t NumColsM = NumCols(M);
const size_t NumRowsb = NumRows(b);
const size_t NumColsb = NumCols(b);
+ const MachineInt zInt(0);
// Dimension check
if (NumRowsM != NumRowsb)
- CoCoA_ERROR(ERR::BadMatrixSize, "mySolve: M and b must have same number of rows.");
+ CoCoA_THROW_ERROR(ERR::BadMatrixSize, "mySolve: M and b must have same number of rows.");
if (NumColsM != NumRows(x0))
- CoCoA_ERROR(ERR::BadMatrixSize, "mySolve: M and x0 must have same number of columns.");
+ CoCoA_THROW_ERROR(ERR::BadMatrixSize, "mySolve: M and x0 must have same number of columns.");
if (NumCols(x0) != 1)
- CoCoA_ERROR(ERR::BadMatrixSize, "mySolve: NumCols(x0) > 1.");
+ CoCoA_THROW_ERROR(ERR::BadMatrixSize, "mySolve: NumCols(x0) > 1.");
if (NumColsb != 1)
- CoCoA_ERROR(ERR::BadMatrixSize, "mySolve: NumCols(b) > 1.");
+ CoCoA_THROW_ERROR(ERR::BadMatrixSize, "mySolve: NumCols(b) > 1.");
// Field check; should we also check if BaseRing(M) = BaseRing(b) = BaseRing(x0)?
// ring K(BaseRing(M));
ring K(RingOf(M));
if (!IsField(K))
- CoCoA_ERROR(ERR::NotField, "mySolve: Gauss' algorithm over non-fields not yet implemented.");
+ CoCoA_THROW_ERROR(ERR::NotField, "mySolve: Gauss' algorithm over non-fields not yet implemented.");
// Create working copies of M and b
matrix MCopy(NewDenseMat(K, NumRowsM, NumColsM));
@@ -91,13 +97,17 @@ namespace CoCoADortmund
size_t row = 0;
for (size_t col = 0; col < NumColsM && row < NumRowsM; ++col)
{
+ const MachineInt rowInt(static_cast<unsigned long>(row));
+ const MachineInt colInt(static_cast<unsigned long>(col));
+
// Check if current column contains an element != 0
- if (IsZero(MCopy(row, col)))
+ if (IsZero(MCopy(rowInt, colInt)))
{
size_t i = row+1;
for ( ; i < NumRowsM; ++i)
{
- if (!IsZero(MCopy(i, col)))
+ const MachineInt iInt(static_cast<unsigned long>(i));
+ if (!IsZero(MCopy(iInt, colInt)))
{
// Switch MCopy and bCopy rows
MCopy->mySwapRows(i, row);
@@ -113,13 +123,14 @@ namespace CoCoADortmund
positions.push_back(make_pair(row, col));
// Found an element != 0 in current column; apply elemination
- c = MCopy(row, col);
+ c = MCopy(rowInt, colInt);
for (size_t i = row+1; i < NumRowsM; ++i)
{
// Transform MCopy and bCopy
- bCopy->myAddRowMul(i, row, -MCopy(i, col)/c);
- MCopy->myAddRowMul(i, row, -MCopy(i, col)/c);
+ const MachineInt iInt(static_cast<unsigned long>(i));
+ bCopy->myAddRowMul(i, row, -MCopy(iInt, colInt)/c);
+ MCopy->myAddRowMul(i, row, -MCopy(iInt, colInt)/c);
}
++row;
@@ -128,7 +139,8 @@ namespace CoCoADortmund
// row = rank(MCopy); check if a solution for the equation system exists
for (size_t i = row; i < NumRowsb; ++i)
{
- if (!IsZero(bCopy(i, 0)))
+ const MachineInt iInt(static_cast<unsigned long>(i));
+ if (!IsZero(bCopy(iInt, zInt)))
return false;
}
@@ -138,13 +150,16 @@ namespace CoCoADortmund
while (!positions.empty())
{
const size_t i = positions.back().first, j = positions.back().second;
+ const MachineInt iInt(static_cast<unsigned long>(i));
+ const MachineInt jInt(static_cast<unsigned long>(j));
- RingElem x(bCopy(i, 0));
+ RingElem x(bCopy(iInt, zInt));
for (size_t k = j + 1; k < NumColsM; ++k)
{
- x -= MCopy(i, k) * x0Tmp(k, 0);
+ const MachineInt kInt(static_cast<unsigned long>(k));
+ x -= MCopy(iInt, kInt) * x0Tmp(kInt, zInt);
}
- SetEntry(x0Tmp, j, 0, x/MCopy(i, j));
+ SetEntry(x0Tmp, j, 0, x/MCopy(iInt, jInt));
positions.pop_back();
}

View file

@ -1,19 +0,0 @@
diff --git a/m4/intdiv0.m4 b/m4/intdiv0.m4
index b8d7817..23fdc1d 100644
--- a/m4/intdiv0.m4
+++ b/m4/intdiv0.m4
@@ -29,10 +29,10 @@ sigfpe_handler (sig) int sig;
exit (sig != SIGFPE);
}
-int x = 1;
-int y = 0;
-int z;
-int nan;
+volatile int x = 1;
+volatile int y = 0;
+volatile int z;
+volatile int nan;
int main ()
{

View file

@ -1,22 +0,0 @@
--- a/src/Makefile.orig.am 2024-05-13 08:25:27.000000000 +0200
+++ b/src/Makefile.am 2024-07-16 21:37:38.681076855 +0200
@@ -71,7 +71,7 @@
./mkjs
mkjs: mkjs.cc
- g++ mkjs.cc -o mkjs
+ g++ mkjs.cc -o mkjs.fake
AM_CPPFLAGS = -DIN_GIAC -I$(srcdir) -I$(top_srcdir) -I$(builddir) \
-I$(top_builddir) $(GMP_CFLAGS) $(NTL_CFLAGS) \
--- a/src/Makefile.orig.in 2024-05-23 17:09:52.000000000 +0200
+++ b/src/Makefile.in 2024-07-16 21:36:49.122491632 +0200
@@ -1470,7 +1470,7 @@
./mkjs
mkjs: mkjs.cc
- g++ mkjs.cc -o mkjs
+ g++ mkjs.cc -o mkjs.fake
install-exec-hook:
rm -f $(DESTDIR)$(bindir)/cas_help

View file

@ -1,11 +0,0 @@
--- a/src/graphe.orig.cc 2021-09-06 21:27:18.514049316 +0200
+++ b/src/graphe.cc 2021-09-06 21:27:17.150072679 +0200
@@ -15757,7 +15757,7 @@
continue;
std::sort(d.begin(),d.end());
if (d==d0) {
- G.make_haar_graph(n);
+ G.make_haar_graph(int(n));
if (is_isomorphic(G,isom,false)) {
vecteur v(k);
for (int i=0;i<k;++i) {

View file

@ -1,5 +1,5 @@
--- a/src/vecteur.h.orig 2016-05-30 05:53:13.000000000 -0600
+++ b/src/vecteur.h 2016-10-20 12:06:16.321062870 -0600
--- src/vecteur.h.orig 2016-05-30 05:53:13.000000000 -0600
+++ src/vecteur.h 2016-10-20 12:06:16.321062870 -0600
@@ -27,6 +27,8 @@
#include <gsl/gsl_permutation.h>
#endif // HAVE_LIBGSL

View file

@ -4,8 +4,8 @@
# package maintainer.
#
VERSION="2.0.0"
VERSIONREV="18"
VERSION="1.4.9"
VERSIONREV="59"
# The upstream tarball name is: giac"$SOURCEORIG".tar.gz
SOURCEORIG=_"$VERSION"-"$VERSIONREV"
@ -20,11 +20,13 @@ if [ -f "$OUTPUTFILEBASENAME".tar.gz -o -f "$OUTPUTFILEBASENAME".tar.bz2 ] ; the
fi
echo >&2 "Build a temporary working dir"
mkdir -p giac-src
cd giac-src
TARGET=$(mkdir -p "giac-src")
ORIGDIR=`pwd`
cd "$TARGET"
echo >&2 "Downloading upstream source ..."
wget "https://www-fourier.univ-grenoble-alpes.fr/~parisse/debian/dists/stable/main/source/giac$SOURCEORIG.tar.gz"
wget "http://www-fourier.ujf-grenoble.fr/~parisse/debian/dists/stable/main/source/giac$SOURCEORIG.tar.gz"
echo >&2 "Untar upstream source ..."
tar -xzf giac"$SOURCEORIG".tar.gz
@ -58,10 +60,11 @@ touch html_vall
echo >&2 "Building giac source tarball ..."
cd ../../../
tar -cz giac-"$VERSION" -f "$OUTPUTFILEBASENAME".tar.gz
mv "giac"$OUTPUTFILEBASENAME".tar.gz" ../
cd ../
echo >&2 "Cleaning extracted dir ..."
rm -rf giac-src
rm -f "giac$SOURCEORIG.tar.gz"
rm -rf giac-"$VERSION"
echo >&2 "Finished."

View file

@ -1,30 +0,0 @@
--- giac-1.9.0/src/pari.cc.orig 2022-03-16 05:38:05.000000000 -0600
+++ giac-1.9.0/src/pari.cc 2022-09-20 09:23:12.304717931 -0600
@@ -749,7 +749,7 @@ namespace giac {
RET_INT=2,
RET_LONG=3
};
- typedef GEN (*PFGEN)(ANYARG);
+ typedef GEN (*PFGEN)(...);
extern const unary_function_ptr * const at_pari;
static gen in_pari(const gen & args,GIAC_CONTEXT){
@@ -884,15 +884,15 @@ namespace giac {
break;
case RET_INT:
- m = (long)((int (*)(ANYARG))call)(_ARGS_);
+ m = (long)((int (*)(...))call)(_ARGS_);
res = stoi(m); break;
case RET_LONG:
- m = ((long (*)(ANYARG))call)(_ARGS_);
+ m = ((long (*)(...))call)(_ARGS_);
res = stoi(m); break;
case RET_VOID:
- ((void (*)(ANYARG))call)(_ARGS_);
+ ((void (*)(...))call)(_ARGS_);
res = gnil; break;
}

View file

@ -1,37 +0,0 @@
--- a/src/first.orig.h 2023-05-24 09:52:40.000000000 +0200
+++ b/src/first.h 2024-02-10 19:37:26.376884368 +0100
@@ -27,12 +27,7 @@
#endif
// register is deprecated in c++17
-#define register
-
-
-#ifdef _GLIBCXX_ASSERTIONS
-#undef _GLIBCXX_ASSERTIONS
-#endif
+#define register
#if defined NUMWORKS && !defined SDL_KHICAS
#define KHICAS 1
--- a/src/vecteur.orig.cc 2024-06-04 08:13:22.000000000 +0200
+++ b/src/vecteur.cc 2024-11-01 17:58:56.061073533 +0100
@@ -8498,15 +8498,15 @@
}
else {
int C=col+1;
- longlong * ptr= &buffer[C],*ptrend=&buffer[0]+cmax-4;
- const int *ptrN=&Nline[C];
+ longlong * ptr= &buffer[0]+C,*ptrend=&buffer[0]+cmax-4;
+ const int *ptrN=&Nline[0]+C;
for (;ptr<ptrend;ptrN+=4,ptr+=4){
*ptr -= coeff*(*ptrN);
ptr[1] -= coeff*(ptrN[1]);
ptr[2] -= coeff*(ptrN[2]);
ptr[3] -= coeff*(ptrN[3]);
}
- C += ptr-&buffer[C];
+ C += ptr-(&buffer[0]+C);
for (;C<cmax;++C){
buffer[C] -= coeff*Nline[C];
}

452
giac.spec
View file

@ -1,110 +1,50 @@
# Tests excluded
# See https://xcas.univ-grenoble-alpes.fr/forum/viewtopic.php?f=19&t=1733
%ifarch s390x
# See http://pcm1.e.ujf-grenoble.fr/forum/viewtopic.php?f=19&t=1733&sid=3257f5085f4ae208dc36665f2873252f
%bcond_with check
%else
%bcond_with check
%endif
%bcond_without flexiblas
%global _lto_cflags %{nil}
%global subversion .18
%global subversion .59
Name: giac
Summary: Computer Algebra System, Symbolic calculus, Geometry
Version: 2.0.0%{subversion}
Release: %autorelease
# GPL-3.0-or-later: the project as a whole
# GPL-3.0-only: src/TmpFGLM.*, src/TmpLESystemSolver.*
# GPL-2.0-or-later: pariinl.h
# GPL-1.0-or-later OR Artistic-1.0-Perl: src/pgiac
# LGPL-3.0-or-later: src/Fl_GDK_Printer.cxx, Flv_List.cc, Flv_Table.cc
# LGPL-2.0-or-later: intl/, src/Flv_Data_Source.H, src/Flv_List.H,
# src/Flv_Table.H, src/Flve_Check_Button.H, src/Flve_Combo.H, src/Flve_Input.H
# MIT: micropython-1.12/, src/cutils.*, src/js.c, src/libbf.*, src/libregexp*,
# src/libunicode.*, src/list.h, src/qjs*, src/quickjs*
License: GPL-3.0-or-later AND GPL-3.0-only AND GPL-2.0-or-later AND (GPL-1.0-or-later OR Artistic-1.0-Perl) AND LGPL-3.0-or-later AND LGPL-2.0-or-later AND MIT
URL: https://www-fourier.univ-grenoble-alpes.fr/~parisse/giac.html
Version: 1.4.9%{subversion}
Release: 1%{?dist}
# LGPLv3+: src/Fl_GDI_Printer.cxx, src/Flv_List.cc, src/Flv_Table.cc
# BSD: src/tinymt32*
License: GPLv3+
URL: http://www-fourier.ujf-grenoble.fr/~parisse/giac.html
## Source package is downloaded from
## https://www-fourier.univ-grenoble-alpes.fr/~parisse/debian/dists/stable/main/source
## http://www-fourier.ujf-grenoble.fr/~parisse/debian/dists/stable/main/source/
## and re-packed without non-free FR documentation by giac-makesrc script.
Source0: %{name}-%{version}.tar.gz
Source1: %{name}-makesrc.sh
Source2: xcas.appdata.xml
# Recent math.h adds an iszero macro, but giac has an iszero function
Patch0: %{name}-iszero.patch
# Deal with LTO compromised configure test
Patch1: %{name}-config.patch
# Use Fedora compiler flags
Patch2: %{name}-1.9.0-fix_micropy_compiler_flags.patch
# Adapt to cocoalib 0.99700
Patch3: %{name}-cocoalib.patch
# https://xcas.univ-grenoble-alpes.fr/forum/viewtopic.php?f=3&t=2724
Patch4: %{name}-fix_graphe_file.patch
# Adapt to pari 2.15.0
Patch5: %{name}-pari2.15.patch
# https://xcas.univ-grenoble-alpes.fr/forum/viewtopic.php?f=3&t=2895
Patch6: %{name}-undefine_GLIBCXX_ASSERTIONS.patch
# 'mkjs' is not correctly compiled
# https://xcas.univ-grenoble-alpes.fr/forum/viewtopic.php?f=4&t=2930
Patch7: %{name}-faking_mkjs.patch
# See https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
ExcludeArch: %{ix86}
BuildRequires: autoconf, libtool
BuildRequires: python3-devel
BuildRequires: readline-devel
BuildRequires: gettext
BuildRequires: gettext-devel
BuildRequires: gcc-c++
BuildRequires: make
BuildRequires: cliquer-devel
BuildRequires: fdupes
%ifnarch %{ix86}
BuildRequires: cocoalib-devel
%endif
BuildRequires: glpk-devel
BuildRequires: gmp-devel
BuildRequires: gmp-ecm-devel
BuildRequires: gsl-devel
BuildRequires: libnauty-devel
BuildRequires: mpfr-devel
BuildRequires: gmp-devel
BuildRequires: gsl-devel
BuildRequires: ntl-devel
BuildRequires: pari-devel
%if %{with flexiblas}
BuildRequires: flexiblas-devel
%else
BuildRequires: blas-devel, lapack-devel
%endif
BuildRequires: lapack-devel
BuildRequires: mpfi-devel
BuildRequires: mesa-libGL-devel
BuildRequires: libao-devel
BuildRequires: libcurl-devel
BuildRequires: libpng-devel
BuildRequires: libjpeg-devel
BuildRequires: libsamplerate-devel
BuildRequires: fltk-devel
BuildRequires: libXinerama-devel
BuildRequires: desktop-file-utils
BuildRequires: libappstream-glib
BuildRequires: tex(latex), texinfo, texinfo-tex
Requires(post): info
Requires(preun): info
Provides: bundled(tinymt32)
# The micropython inside is a custom port with
# addtional built-in modules that are linked to giac.
Provides: libmicropython-static = 1.12
Provides: libgiac-static = 1.9.0
Provides: libxcas-static = 1.9.0
%global majver %(cut -d. -f1-3 <<< %{version})
%description
@ -137,22 +77,17 @@ Development files for libgiac.
####################
%package doc
Summary: Detailed HTML documentation for Giac/Xcas
Summary: Detailed html documentation for Giac/Xcas
BuildArch: noarch
%ifnarch %{ix86}
BuildRequires: hevea
%endif
BuildRequires: tex(latex), texinfo, texinfo-tex, texlive-stmaryrd
Requires: %{name} = %{version}-%{release}
Obsoletes: giac-doc < 0:2.0.0.18-8
# Javascript provided
Provides: bundled(CodeMirror)
Provides: bundled(FileSaver.js)
License: GPL-3.0-or-later AND GFDL-1.1-or-later
License: GPLv3+ and GFDL
%description doc
The detailed documentation and examples for giac and xcas. It is directly
The detailled html documentation and examples for giac and xcas. It is directly
accessible from xcas in many ways (browser, context search, thematic indexes).
It is strongly recommended for xcas usage. Note that the french part has been
removed from the original source due to non free Licence.
@ -162,7 +97,7 @@ removed from the original source due to non free Licence.
# The name Xcas is better known than the name giac itself,
# so many users will search for the name xcas instead of giac or giac-gui.
Summary: GUI application for Giac
Provides: xcas%{?_isa} = %{version}-%{release}
Provides: xcas = %{version}-%{release}
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: hicolor-icon-theme
@ -170,7 +105,7 @@ Requires: hicolor-icon-theme
Xcas is the Fltk graphic user interface to the computer algebra system giac.
It supports formal computations, interactive 2D geometry, 3D plotting,
spreadsheets with formal calculus and a Logo mode. There is also a programming
editor, and many ways to consult the HTML help.
editor, and many ways to consult the html help.
####################
%package -n pgiac
@ -181,24 +116,21 @@ BuildRequires: perl-generators
Requires: %{name} = %{version}-%{release}
%description -n pgiac
The pgiac command is a Perl script to mix Latex documents
The pgiac command is a perl script to mix Latex documents
with Giac computations.
%prep
%autosetup -n %{name}-%{majver} -N
%patch -P 0 -p1 -b .backup
%patch -P 1 -p1 -b .backup
%patch -P 2 -p0 -b .backup
%patch -P 3 -p0 -b .backup
%patch -P 4 -p1 -b .backup
%patch -P 5 -p1 -b .backup
%patch -P 6 -p1 -b .backup
%patch -P 7 -p1 -b .backup
%setup -q -n %{name}-%{majver}
%patch0
# Remove local intl (already bundled in fedora)
rm -rf intl/*.h
rm -rf intl/*.cc
# NB: Problem with autoreconf: missing config/test-driver . If needed the
# following worked
# aclocal
# autoconf
# automake --add-missing
# Remove unecessary files and force the rebuild of info.
rm -f doc/pari/gphtml
@ -216,57 +148,29 @@ chmod -x examples/lewisw/fermat*
find doc -name *~ -delete
# Unbundle texinfo file
sed -i 's|config/texinfo.tex|%{_texmf_main}/tex/texinfo/texinfo.tex|g' Makefile.in
sed -i 's|config/texinfo.tex|%{_datadir}/texmf/tex/texinfo/texinfo.tex|g' Makefile.in
rm -f config/texinfo.tex
# Remove hidden files
rm -f examples/Exemples/demo/._*
rm -f examples/Exemples/analyse/._*
%if %{with flexiblas}
sed -e 's|LIB(blas|LIB(flexiblas|g' -e 's|LIB(lapack|LIB(flexiblas|g' \
-e 's|-lgslcblas|-lflexiblas|' -i configure.ac
%endif
# Prepare Micropython lib's License
cp -p micropython-1.12/LICENSE micropython-1.12/micropython-LICENSE
# Update configure.ac obsolete macros
autoupdate -vf
# Re-configuration
autoreconf -ivf
%build
# https://xcas.univ-grenoble-alpes.fr/forum/viewtopic.php?f=4&t=2817
OPT_FLAGS=$(echo "%build_cxxflags" | %{__sed} -e 's/-Werror=format-security/-Wno-error=format-security/')
export CXXFLAGS="$OPT_FLAGS -fpermissive -std=gnu++17"
export CFLAGS_FEDORA="$OPT_FLAGS -std=gnu17"
%configure --enable-static=yes --with-included-gettext=no --enable-nls=no \
export LDFLAGS="%{__global_ldflags} -Wl,--as-needed"
%configure --enable-static=no --with-included-gettext=no --enable-nls=yes \
--enable-tommath=no --enable-debug=no --enable-gc=no --enable-sscl=no \
--enable-dl=yes --enable-gsl=yes --enable-lapack=yes --enable-pari=yes \
--enable-ntl=yes --enable-gmpxx=yes --enable-cocoa=autodetect \
--enable-gui=yes --disable-rpath \
%ifarch %{power64}
--disable-micropy
%endif
--enable-gui=yes --disable-rpath
# The --disable-rpath option of configure was not enough to get rid of the hardcoded libdir
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
# Compile 'mkjs' executable
# See patch7's comment
export OPT_FLAGS=$(echo "%build_cxxflags" | %{__sed} -e 's/-Werror=format-security/-Wno-error=format-security/')
g++ $OPT_FLAGS -fpermissive -std=gnu++17 src/mkjs.cc -o src/mkjs
#
# Fix unused-direct-shlib-dependency with libgslcblas.so.0 and libgfortran.so.3
sed -i -e 's! -shared ! -Wl,--as-needed\0!g' libtool
# https://xcas.univ-grenoble-alpes.fr/forum/viewtopic.php?f=4&t=2817
OPT_FLAGS=$(echo "%build_cflags" | %{__sed} -e 's/-Werror=format-security/-Wno-error=format-security/')
export CXXFLAGS="$OPT_FLAGS -fpermissive -std=gnu++17"
export CFLAGS_FEDORA="$OPT_FLAGS -std=gnu17"
export LDFLAGS_FEDORA="$OPT_FLAGS"
%make_build
%make_build V=1
# Rebuild giac_*.info and Convert info file to utf-8
(cd doc ; make)
@ -280,43 +184,30 @@ done
%install
%make_install
# Install libmicropython.a library
%ifnarch %{power64}
install -pm 644 libmicropython.a %{buildroot}%{_libdir}/
%endif
# Install libxcas.a library
install -pm 644 src/.libs/libxcas.a %{buildroot}%{_libdir}/
install -pm 644 src/.libs/libgiac.a %{buildroot}%{_libdir}/
cp -p src/tinymt32_license.h LICENSE.tinymt32
# Remove unwanted files.
rm -f %{buildroot}%{_infodir}/dir
rm -rf %{buildroot}%{_datadir}/application-registry
# The .la is still built despite the built of libgiac.a has been disabled
rm -f %{buildroot}%{_libdir}/libgiac.la
# I have tried to remove the empty files in the setup stage, it was not a good idea
# because make install will then require hevea as an extra (and big) dependancy and I guess
# that it will recreate those empty files, so it's better to delete them here.
find %{buildroot} -size 0 -delete
find %{buildroot} -name *~ -delete
# Obsolete symbolic link
rm -f %{buildroot}%{_bindir}/xcasnew
#
# Remove wasm file (??) with Bad Magic Number
rm -f %{buildroot}%{_docdir}/giacwasm.wasm
# Mime package was not installed.
install -pm 644 -D debian/giac.sharedmimeinfo \
%{buildroot}%{_datadir}/mime/packages/giac.xml
#
# Check appdata file
appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.metainfo.xml
# Install/check appdata file.
install -pm 644 -D %{SOURCE2} \
%{buildroot}%{_datadir}/metainfo/xcas.appdata.xml
appstream-util validate-relax --nonet %{buildroot}%{_datadir}/metainfo/*.appdata.xml
#
# Add extra pdf docs. (NB: make dvi gives only the same doc in dvi format)
@ -325,8 +216,6 @@ install -pm 644 -t %{buildroot}%{_datadir}/giac/doc/en doc/en/*.pdf
install -pm 644 -t %{buildroot}%{_datadir}/giac/doc/el doc/el/*.pdf
install -pm 644 -t %{buildroot}%{_datadir}/giac/doc/es doc/es/*.pdf
find %{buildroot}%{_datadir}/giac -name 'Makefile*' -exec rm {} \;
# Symlinks used by QCAS and giacpy
mkdir -p %{buildroot}%{_datadir}/giac/doc/fr
ln -sf -T %{_datadir}/giac/doc/aide_cas %{buildroot}%{_datadir}/giac/doc/fr/aide_cas
@ -343,17 +232,14 @@ install -pm 644 debian/giac.1 %{buildroot}%{_mandir}/man1
install -pm 644 debian/cas_help.1 %{buildroot}%{_mandir}/man1
install -pm 644 debian/pgiac.1 %{buildroot}%{_mandir}/man1
# khicas.nwa is an arch-dependent executable file (ELF 32-bit LSB relocatable, ARM, EABI5 version 1)
# I moving it from noarch giac-doc to giac package
mkdir -p %{buildroot}%{_libexecdir}/giac
cp -p %{buildroot}%{_datadir}/giac/doc/khicas.nwa %{buildroot}%{_libexecdir}/giac/
ln -sfv %{_libexecdir}/giac/khicas.nwa %{buildroot}%{_datadir}/giac/doc/khicas.nwa
# Add a link for FR env users to have the english help instead of a page
# not found.
mkdir -p %{buildroot}%{_datadir}/giac/doc/fr
(cd %{buildroot}%{_datadir}/giac/doc/fr ; ln -s ../en/cascmd_en cascmd_fr )
#find_lang %%{name}
desktop-file-install --vendor="" --remove-key=Encoding \
--set-key=Version --set-value=1.0 \
--dir=%{buildroot}%{_datadir}/applications/ \
%{buildroot}%{_datadir}/applications/xcas.desktop
%find_lang %{name}
desktop-file-install --vendor="" --remove-key=Encoding --dir=%{buildroot}%{_datadir}/applications/\
%{buildroot}%{_datadir}/applications/xcas.desktop
# Create a list of files non required at runtime by icas nor xcas
# that are under %%{_datadir}/giac/doc for packaging in giac-doc
@ -387,39 +273,32 @@ find %{buildroot}%{_datadir}/giac/doc -maxdepth 2 -type l| \
grep -v -E "%{_datadir}/giac/doc/aide_cas$" | \
sed -e "s:%{buildroot}::" >>giacdoclist
# Change permissions to following files
chmod a+x %{buildroot}%{_datadir}/giac/doc/send18
chmod a+x %{buildroot}%{_datadir}/giac/doc/send19
%post
%{?ldconfig}
/sbin/install-info %{_infodir}/%{name}_us.info %{_infodir}/dir || :
/sbin/install-info %{_infodir}/%{name}_es.info %{_infodir}/dir || :
# Symlink duplicated files
%fdupes -s %{buildroot}%{_datadir}
%ldconfig_postun
%preun
if [ $1 = 0 ] ; then
/sbin/install-info --delete %{_infodir}/%{name}_us.info %{_infodir}/dir || :
/sbin/install-info --delete %{_infodir}/%{name}_es.info %{_infodir}/dir || :
fi
%if %{with check}
%check
export LD_LIBRARY_PATH=%{buildroot}%{_libdir}
export LD_LIBRARY_PATH=../src/.libs
make -C check check
# This is for debugging purpose only
#make -j1 -C check check
#cat check/test-suite.log
%endif
%files
%license COPYING micropython-1.12/micropython-LICENSE
%files -f %{name}.lang
%license COPYING
%license LICENSE.tinymt32
%{_bindir}/icas
%{_bindir}/giac
%{_bindir}/hevea2mml
%{_bindir}/*_help
%{_libdir}/libgiac.so.0.0.0
%{_libdir}/libgiac.so.0
%{_libdir}/libxcas.so.0.0.0
%{_libdir}/libxcas.so.0
%{_libdir}/libgiac.a
%{_libexecdir}/giac/khicas.nwa
%ifnarch %{power64}
%{_libdir}/libmicropython.a
%endif
%{_libdir}/libxcas.a
%{_libdir}/libgiac.so.*
# The following files are required at runtime by icas AND xcas.
# (Ex: if LANG is fr, alea(5) should give an INT)
# Moreover, without aide_cas the keywords files are not found in icas
@ -439,14 +318,13 @@ make -C check check
%dir %{_datadir}/giac/doc/pt
%dir %{_datadir}/giac/doc/zh
#
%{_infodir}/giac_*.info.*
%{_infodir}/giac_*.info.gz
%{_mandir}/man1/giac*
%{_mandir}/man1/*_help*
# The gui files
%files xcas
%{_bindir}/xcas
%{_datadir}/giac/xcas.html
# The dirs shared
%dir %{_datadir}/giac
%dir %{_datadir}/giac/doc
@ -465,7 +343,7 @@ make -C check check
# Files under dirs shared with other packages
%{_datadir}/applications/xcas.desktop
%{_metainfodir}/xcas.metainfo.xml
%{_datadir}/metainfo/xcas.appdata.xml
%{_datadir}/mime/packages/giac.xml
%{_datadir}/pixmaps/xcas.xpm
%{_datadir}/icons/hicolor/*/apps/xcas.png
@ -478,7 +356,6 @@ make -C check check
%files devel
%{_includedir}/giac/
%{_libdir}/libgiac.so
%{_libdir}/libxcas.so
# DOC Files
%files doc -f giacdoclist
@ -494,9 +371,9 @@ make -C check check
# character encoding.
# - The .cas and .cxx files are giac code and function. They are text files
#
# NB: _docdir/giac is in the -filsystem package
# NB: %%{_docdir}/giac is in the -filsystem package
%{_docdir}/giac/*
# Add all the files that are in _datadir/giac but not giac/aide_cas
# Add all the files that are in %%{_datadir}/giac but not giac/aide_cas
# and not those in giac/doc/
%dir %{_datadir}/giac
%dir %{_docdir}/giac
@ -514,4 +391,193 @@ make -C check check
%{_datadir}/giac/examples/
%changelog
%autochangelog
* Fri May 18 2018 Antonio Trande <sagitter@fedoraproject.org> 1.4.9.59-1
- Update to 1.4.9 sub-59
- Tests still disabled (some of them fail again)
* Wed Mar 28 2018 Peter Robinson <pbrobinson@fedoraproject.org> 1.4.9.45-5
- Build on all arches (tests now pass)
* Fri Feb 16 2018 Antonio Trande <sagitter@fedoraproject.org> - 1.4.9.45-4
- Use %%ldconfig_scriptlets
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.4.9.45-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Sat Feb 03 2018 Antonio Trande <sagitterATfedoraproject.org> 1.4.9.45-2
- Re-set previous ldconfig scripts
* Sat Feb 03 2018 Antonio Trande <sagitterATfedoraproject.org> 1.4.9.45-1
- Update to 1.4.9 sub-45
- Use %%ldconfig_scriptlets
* Thu Jan 11 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 1.4.9.43-2
- Remove obsolete scriptlets
* Sun Dec 24 2017 Antonio Trande <sagitterATfedoraproject.org> 1.4.9.43-1
- Update to 1.4.9 sub-43
* Thu Dec 21 2017 Antonio Trande <sagitterATfedoraproject.org> 1.4.9.41-3
- Symlink restored
* Thu Dec 21 2017 Antonio Trande <sagitterATfedoraproject.org> 1.4.9.41-2
- Undo latest symlink changes
* Sun Dec 17 2017 Antonio Trande <sagitterATfedoraproject.org> 1.4.9.41-1
- Update to 1.4.9 sub-41
- Appdata file moved into metainfo shared data directory
* Sat Dec 02 2017 Antonio Trande <sagitterATfedoraproject.org> 1.4.9.33-1
- Update to 1.4.9 sub-33
- Fix symlinks
* Fri Dec 01 2017 Antonio Trande <sagitterATfedoraproject.org> 1.4.9.29-2
- Make symlinks used by QCAS
* Thu Nov 30 2017 Antonio Trande <sagitterATfedoraproject.org> 1.4.9.29-1
- Update to 1.4.9 sub-29
* Thu Sep 28 2017 Jerry James <loganjerry@gmail.com> - 1.2.3.57-1
- Rebuild for ntl 10.5.0
- Fix versioning scheme
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.3-9.57
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Thu Jul 27 2017 Antonio Trande <sagitterATfedoraproject.org> 1.2.3-8.57
- Update to 1.2.3 sub-57
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.3-7.49
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Thu Jul 13 2017 Petr Pisar <ppisar@redhat.com> - 1.2.3-6.49
- perl dependency renamed to perl-interpreter <https://fedoraproject.org/wiki/Changes/perl_Package_to_Install_Core_Modules>
* Sun Jun 11 2017 Antonio Trande <sagitterATfedoraproject.org> 1.2.3-5.49
- Update to 1.2.3 sub-49
* Sun May 14 2017 Peter Robinson <pbrobinson@fedoraproject.org> 1.2.3-4.43
- Bump Release so upgrade path works
* Fri May 12 2017 Antonio Trande <sagitterATfedoraproject.org> 1.2.3-1.43
- Update to 1.2.3 sub-43
* Wed Apr 05 2017 Jerry James <loganjerry@gmail.com> - 1.2.3-3.25
- Rebuild for ntl 10.3.0
- Make EVR greater than 1.2.3-3.13
* Sun Feb 19 2017 Antonio Trande <sagitterATfedoraproject.org> 1.2.3-1.25
- Update to 1.2.3 sub-25
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.3-3.13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Sat Jan 21 2017 Peter Robinson <pbrobinson@fedoraproject.org> 1.2.3-2.13
- Adjust release so it's newer than the previous rev
* Wed Jan 18 2017 Antonio Trande <sagitterATfedoraproject.org> 1.2.3-1.13
- Update to 1.2.3 sub-13
* Thu Jan 12 2017 Igor Gnatenko <ignatenko@redhat.com> - 1.2.3-2.9
- Rebuild for readline 7.x
* Thu Jan 05 2017 Antonio Trande <sagitterATfedoraproject.org> 1.2.3-1.9
- Update to 1.2.3 sub-9
- Conformed to new rules for scriptlets
* Sun Dec 25 2016 Antonio Trande <sagitterATfedoraproject.org> 1.2.2-14.105
- Update to subversion 105
* Fri Dec 02 2016 Paul Howarth <paul@city-fan.org> 1.2.2-13.103
- Rebuild for pari 2.9.0
* Tue Nov 15 2016 Antonio Trande <sagitterATfedoraproject.org> 1.2.2-12.103
- Update to subversion 103
* Thu Oct 20 2016 Jerry James <loganjerry@gmail.com> 1.2.2-11.85
- Rebuild for ntl 10.1.0
- Add -iszero patch to fix breakage with recent glibc versions
* Tue Sep 27 2016 Antonio Trande <sagitterATfedoraproject.org> 1.2.2-10.85
- Update to subversion 85
* Mon Sep 05 2016 Jerry James <loganjerry@gmail.com> 1.2.2-9.75
- Rebuild for ntl 9.11.0
* Mon Jul 25 2016 Jerry James <loganjerry@gmail.com> 1.2.2-8.75
- Rebuild for ntl 9.10.0
* Fri Jul 15 2016 Antonio Trande <sagitterATfedoraproject.org> 1.2.2-7.75
- Update to subversion 75
* Thu Jul 07 2016 Antonio Trande <sagitterATfedoraproject.org> 1.2.2-6.63
- Exclude s390x
* Sat Jul 02 2016 Antonio Trande <sagitterATfedoraproject.org> 1.2.2-5.63
- Fix directories ownership
- Exclude PPC and aarch64
* Thu Jun 30 2016 Antonio Trande <sagitterATfedoraproject.org> 1.2.2-4.63
- Update to subversion 63
- Add libXinerama BR
- Fix co-owning of documentation sub-directories
- Fix appdata file
- Add Provides tags
* Thu May 19 2016 Antonio Trande <sagitterATfedoraproject.org> 1.2.2-3.45
- Source tarball repacked without non-free docs
- Licenses combined in GPLv3+ only
* Fri May 13 2016 Antonio Trande <sagitterATfedoraproject.org> 1.2.2-2
- Fix required package of pgiac
* Fri May 13 2016 Antonio Trande <sagitterATfedoraproject.org> 1.2.2-1
- Update to 1.2.2
- pgiac script packaged separately
- Fix cSolveorder check
- Update scriptlets
- Add appdata file
- Excluded PPC and aarch64
- Drop the filesystem sub-package
* Sun Jul 6 2014 Frederic Han <han@math.jussieu.fr> 1.1.1-1
- Update to current stable upstream version. Remove obsolete patches.
- Add mpfi-devel dependency. (New feature in 1.1.1)
- Add requires of hicolor-icon-theme instead of owning dirs.
* Sun Apr 27 2014 Frederic Han <han@math.jussieu.fr> 1.1.0-1
- Let the doc package be independent of the binary packages. So create
a filesystem package containing the shared directories
* Wed Apr 16 2014 Frederic Han <han@math.jussieu.fr> 1.1.0-1
- Dont delete intl/Makefile to avoid Makefile and configure modif/rebuilt
- Create a file list: giacdocfile for giac/doc files that are not needed
at runtime
- Remove %%dir %%{_datadir}/mime and %%dir %%{_datadir}/mime/packages from
giac-xcas package list
* Mon Apr 14 2014 Frederic Han <han@math.jussieu.fr> 1.1.0-1
- Add tinymt32 License in %%doc, and LGPLv2+ tag
- Add gettext-devel in BR and disable included intl
- removed doc/*/texinfo.tex, add BR texinfo, and rebuild *.info with
the system texinfo.tex file for License clarity, also convert them to utf-8
- Add missing %%dir in %%files xcas and %%files
- Fix unused-direct-shlib-dependency for libgiac
- Remove x perms in examples, clean backup files
- Move the mime and desktop updates to %%post xcas and %%postun xcas
- Add a warning to *not* try to convert .xws files to UTF-8
* Fri Apr 11 2014 Frederic Han <han@math.jussieu.fr> 1.1.0-1
- Initial version
- Found GPLv3 and v2 files in 1.1.0 sources. So package the GPLv3 LICENSE.
- Put GPLv3+ tag on the -doc package according to 1.1.1.
- Rename the package giac-gui to giac-xcas.
- Add a check patch and make check.
- Some files of %%{_datadir}/giac are need at runtime. So,
add them in the main or -xcas package filelist.
- Move all the %%{_docdir}/giac files except LICENSE to the -doc package
- Add extra pdf doc found in source archive.
- Untabify spec file.
- remove the README patch to keep the original 1.1.0 unchanged. add a README.fedora
to explain the License evolution of giac non FR doc.
- Improve giac.1 manpage.

View file

@ -1 +1 @@
SHA512 (giac-2.0.0.18.tar.gz) = 9b92320c21a94c758e4c18d5393c91f5cd2e2eb66c13ad4aeeb66c70bb53181fb8f82e5288a1c18bf4ae870f132baf6af0ffa5940819d40187b045de24503edc
SHA512 (giac-1.4.9.59.tar.gz) = 027610f0aea165bef945166508a7e6325cbedcac21809ca315be99d95541f88efe77749f62c4512cd714a8ace9368e99b43795a30cf4fd267b4be370c56adb7b

57
xcas.appdata.xml Normal file
View file

@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop">
<id>xcas.desktop</id>
<metadata_license>CC0-1.0</metadata_license>
<summary>Computer Algebra System, Symbolic calculus, Geometry</summary>
<name>xcas</name>
<project_license>GPL-3.0+</project_license>
<categories>
<category>Education</category>
<category>Math</category>
</categories>
<description>
<p>
Giac is a Computer Algebra System made by Bernard Parisse. It provides
features from the C/C++ libraries PARI, NTL (arithmetic), GSL (numerics),
GMP (big integers), MPFR (bigfloats) and also:</p>
<ul>
<li>Efficient algorithms for multivariate polynomial operations
(product, GCD, factorization, groebner bases)</li>
<li>Symbolic computations: solver, simplifications, limits/series,
integration</li>
<li>Linear algebra with numerical or symbolic coefficients</li>
<li>Partial Maple and TI compatibility</li>
<li>It has interfaces in texmacs and sagemath</li>
</ul>
<p>It consists of:</p>
<ul>
<li>A C++ library (libgiac)</li>
<li>A command line interpreter (icas/giac)</li>
<li>An FLTK-based GUI (xcas) with interactive geometry and formal
spreadsheets</li>
</ul>
</description>
<translation type="gettext">giac</translation>
<url type="homepage">http://www-fourier.ujf-grenoble.fr/~parisse/giac.html</url>
<url type="help">http://xcas.e.ujf-grenoble.fr/XCAS/</url>
<screenshots>
<screenshot type="default">
<image>https://sagitter.fedorapeople.org/giac-screenshots/xcas1.png</image>
<caption>Newton's method</caption>
</screenshot>
<screenshot>
<image>https://sagitter.fedorapeople.org/giac-screenshots/xcas2.png</image>
<caption>Hexagon animation</caption>
</screenshot>
<screenshot>
<image>https://sagitter.fedorapeople.org/giac-screenshots/xcas3.png</image>
<caption>Animated cube</caption>
</screenshot>
<screenshot>
<image>https://sagitter.fedorapeople.org/giac-screenshots/xcas4.png</image>
<caption>Spreadsheet showing Newton's method</caption>
</screenshot>
</screenshots>
<update_contact>sagitter_at_fedoraproject.org</update_contact>
<developer_name>Bernard Parisse</developer_name>
</component>