diff --git a/README.md b/README.md index b708912..57958fa 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,6 @@ # scilab +Scilab is a scientific software package for numerical computations providing a powerful open computing environment for engineering and scientific applications. +Scilab includes hundreds of mathematical functions with the possibility to add interactively programs from various languages (C, Fortran...). It has sophisticated data structures (including lists, polynomials, rational functions, linear systems...), an interpreter and a high level programming language. +Scilab has been designed to be an open system where the user can define new data types and operations on these data types by using overloading. + diff --git a/scilab-5.3.0-core-getmodules.patch b/scilab-5.3.0-core-getmodules.patch new file mode 100644 index 0000000..c0ed499 --- /dev/null +++ b/scilab-5.3.0-core-getmodules.patch @@ -0,0 +1,403 @@ +--- modules/core/src/c/getmodules.c 2010-12-15 08:13:13.000000000 +0100 ++++ modules/core/src/c/getmodules_new-d613ebf3b0679abd199bb02be44cc964753783db.c 2011-02-08 14:58:38.000000000 +0100 +@@ -37,208 +37,215 @@ + /*--------------------------------------------------------------------------*/ + struct MODULESLIST *getmodules(void) + { +- if (ScilabModules==NULL) +- { +- ScilabModules=(struct MODULESLIST *)MALLOC(sizeof(struct MODULESLIST)); +- ReadModulesFile(); +- } +- return ScilabModules; ++ if (ScilabModules==NULL) ++ { ++ ScilabModules=(struct MODULESLIST *)MALLOC(sizeof(struct MODULESLIST)); ++ ReadModulesFile(); ++ } ++ return ScilabModules; + } + /*--------------------------------------------------------------------------*/ + BOOL DisposeModulesInfo(void) + { +- BOOL bOK=FALSE; +- if (ScilabModules) +- { +- int i=0; +- for (i=0;inumberofModules;i++) +- { +- if (ScilabModules->ModuleList[i]) +- { +- FREE(ScilabModules->ModuleList[i]); +- ScilabModules->ModuleList[i]=NULL; +- } +- } +- if (ScilabModules->ModuleList) +- { +- FREE(ScilabModules->ModuleList); +- ScilabModules->ModuleList=NULL; +- } +- ScilabModules->numberofModules=0; +- FREE(ScilabModules); +- ScilabModules=NULL; +- } ++ BOOL bOK=FALSE; ++ if (ScilabModules) ++ { ++ int i=0; ++ for (i=0;inumberofModules;i++) ++ { ++ if (ScilabModules->ModuleList[i]) ++ { ++ FREE(ScilabModules->ModuleList[i]); ++ ScilabModules->ModuleList[i]=NULL; ++ } ++ } ++ if (ScilabModules->ModuleList) ++ { ++ FREE(ScilabModules->ModuleList); ++ ScilabModules->ModuleList=NULL; ++ } ++ ScilabModules->numberofModules=0; ++ FREE(ScilabModules); ++ ScilabModules=NULL; ++ } + +- return bOK; ++ return bOK; + } + /*--------------------------------------------------------------------------*/ + static BOOL ReadModulesFile(void) + { +- BOOL bOK=FALSE; +- char *ModulesFilename=NULL; +- char *SciPath=NULL; +- +- SciPath=getSCIpath(); +- if (SciPath==NULL) +- { +- sciprint(_("The SCI environment variable is not set.\n")); +- return FALSE; +- } +- +- ModulesFilename=(char*)MALLOC((strlen(SciPath)+strlen("/")+strlen(basenamemodulesfile)+1)*sizeof(char)); +- sprintf(ModulesFilename,"%s/%s",SciPath,basenamemodulesfile); +- FREE(SciPath); +- SciPath=NULL; +- +- if (FileExist(ModulesFilename)) +- { +- AppendModules(ModulesFilename); +- FREE(ModulesFilename); +- ModulesFilename=NULL; +- } +- else +- { +- sciprint(_("Cannot load the module declaration file: %s.\n"),ModulesFilename); +- FREE(ModulesFilename); +- ModulesFilename=NULL; +- return FALSE; +- } +- return bOK; ++ BOOL bOK=FALSE; ++ char *ModulesFilename=NULL; ++ char *SciPath=NULL; ++ ++ SciPath=getSCIpath(); ++ if (SciPath==NULL) ++ { ++ sciprint(_("The SCI environment variable is not set.\n")); ++ return FALSE; ++ } ++ ++ ModulesFilename=(char*)MALLOC((strlen(SciPath)+strlen("/")+strlen(basenamemodulesfile)+1)*sizeof(char)); ++ sprintf(ModulesFilename,"%s/%s",SciPath,basenamemodulesfile); ++ FREE(SciPath); ++ SciPath=NULL; ++ ++ if (FileExist(ModulesFilename)) ++ { ++ AppendModules(ModulesFilename); ++ FREE(ModulesFilename); ++ ModulesFilename=NULL; ++ } ++ else ++ { ++ sciprint(_("Cannot load the module declaration file: %s.\n"),ModulesFilename); ++ FREE(ModulesFilename); ++ ModulesFilename=NULL; ++ return FALSE; ++ } ++ return bOK; + } + /*--------------------------------------------------------------------------*/ + static BOOL VerifyModule(char *ModuleName) + { +- BOOL bOK=FALSE; +- char *SciPath=NULL; +- char *FullPathModuleName=NULL; +- +- +- SciPath=getSCIpath(); +- if (SciPath==NULL) +- { +- sciprint(_("The SCI environment variable is not set.\n")); +- return FALSE; +- } +- +- FullPathModuleName=(char*)MALLOC((strlen(SciPath)+strlen("%s/modules/%s/etc/%s.start")+(strlen(ModuleName)*2)+1)*sizeof(char)); +- sprintf(FullPathModuleName,"%s/modules/%s/etc/%s.start",SciPath,ModuleName,ModuleName); +- FREE(SciPath); +- SciPath=NULL; +- +- /* ajouter d'autres tests d'existences */ +- +- if (FileExist(FullPathModuleName)) +- { +- bOK=TRUE; +- } +- FREE(FullPathModuleName); +- FullPathModuleName=NULL; ++ BOOL bOK=TRUE; ++ char *SciPath=NULL; ++ char *FullPathModuleName=NULL; ++ ++ ++ SciPath=getSCIpath(); ++ if (SciPath==NULL) ++ { ++ sciprint(_("The SCI environment variable is not set.\n")); ++ return FALSE; ++ } ++ ++ FullPathModuleName=(char*)MALLOC((strlen(SciPath)+strlen("%s/modules/%s/etc/%s.start")+(strlen(ModuleName)*2)+1)*sizeof(char)); ++ sprintf(FullPathModuleName,"%s/modules/%s/etc/%s.start",SciPath,ModuleName,ModuleName); ++ FREE(SciPath); ++ SciPath=NULL; ++ ++ /* @TODO add more checks (missing files for example) */ ++ ++ if (!FileExist(FullPathModuleName)) ++ { ++ fprintf(stderr,_("Warning: Could not find %s\n"),FullPathModuleName); ++ bOK=FALSE; ++ } ++ FREE(FullPathModuleName); ++ FullPathModuleName=NULL; + +- return bOK; ++ return bOK; + } + /*--------------------------------------------------------------------------*/ + static BOOL AppendModules(char *xmlfilename) + { +- BOOL bOK = FALSE; +- if ( FileExist(xmlfilename) ) +- { +- char *encoding = GetXmlFileEncoding(xmlfilename); +- +- /* Don't care about line return / empty line */ +- xmlKeepBlanksDefault(0); +- /* check if the XML file has been encoded with utf8 (unicode) or not */ +- if (stricmp("utf-8", encoding)==0) +- { +- xmlDocPtr doc = NULL; +- xmlXPathContextPtr xpathCtxt = NULL; +- xmlXPathObjectPtr xpathObj = NULL; +- char *name=NULL; +- int activate=0; +- +- int indice=0; +- BOOL bConvert = FALSE; +- char *shortxmlfilename = getshortpathname(xmlfilename,&bConvert); +- +- if (shortxmlfilename) +- { +- doc = xmlParseFile (shortxmlfilename); +- FREE(shortxmlfilename); +- shortxmlfilename = NULL; +- } +- +- if (doc == NULL) +- { +- printf(_("Error: Could not parse file %s.\n"), xmlfilename); +- if (encoding) {FREE(encoding);encoding=NULL;} +- return bOK; +- } +- +- xpathCtxt = xmlXPathNewContext(doc); +- xpathObj = xmlXPathEval((const xmlChar*)"//modules/module", xpathCtxt); +- +- if(xpathObj && xpathObj->nodesetval->nodeMax) +- { +- /* the Xpath has been understood and there are node */ +- int i; +- for(i = 0; i < xpathObj->nodesetval->nodeNr; i++) +- { +- +- xmlAttrPtr attrib=xpathObj->nodesetval->nodeTab[i]->properties; +- /* Get the properties of */ +- while (attrib != NULL) +- { +- /* loop until when have read all the attributes */ +- if (xmlStrEqual (attrib->name, (const xmlChar*) "name")) +- { +- /* we found the tag name */ +- const char *str=(const char*)attrib->children->content; +- name = strdup(str); +- } +- else if (xmlStrEqual (attrib->name, (const xmlChar*) "activate")) +- { +- /* we found the tag activate */ +- const char *str=(const char*)attrib->children->content; +- if (stricmp(str,"yes")==0 || strcmp(str,"1")==0) { +- activate=1; +- } +- } +- attrib = attrib->next; +- } +- +- if ( (name) && (strlen(name) > 0) && (activate) ) +- { +- if ( VerifyModule(name) ) +- { +- if (indice==0) ScilabModules->ModuleList=(char**)MALLOC(sizeof(char*)*(indice+1)); +- else ScilabModules->ModuleList=(char**)REALLOC(ScilabModules->ModuleList,sizeof(char*)*(indice+1)); +- +- ScilabModules->numberofModules=indice+1; +- +- ScilabModules->ModuleList[indice]= strdup(name); +- indice++; +- } +- else +- { +- sciprint(_("%s module not found.\n"),name); +- } +- } +- if (name) {FREE(name);name = NULL;} +- activate = 0; +- } +- bOK = TRUE; +- } +- +- if(xpathObj) xmlXPathFreeObject(xpathObj); +- if(xpathCtxt) xmlXPathFreeContext(xpathCtxt); +- xmlFreeDoc (doc); +- +- } +- else +- { +- printf(_("Error: Not a valid module file %s (encoding not '%s') Encoding '%s' found.\n"), xmlfilename, "utf-8", encoding); +- } +- if (encoding) {FREE(encoding);encoding=NULL;} +- } +- return bOK; ++ BOOL bOK = FALSE; ++ if ( FileExist(xmlfilename) ) ++ { ++ char *encoding = GetXmlFileEncoding(xmlfilename); ++ ++ /* Don't care about line return / empty line */ ++ xmlKeepBlanksDefault(0); ++ /* check if the XML file has been encoded with utf8 (unicode) or not */ ++ if (stricmp("utf-8", encoding)==0) ++ { ++ xmlDocPtr doc = NULL; ++ xmlXPathContextPtr xpathCtxt = NULL; ++ xmlXPathObjectPtr xpathObj = NULL; ++ char *name=NULL; ++ int activate=0; ++ ++ int indice=0; ++ BOOL bConvert = FALSE; ++ char *shortxmlfilename = getshortpathname(xmlfilename,&bConvert); ++ ++ if (shortxmlfilename) ++ { ++ doc = xmlParseFile (shortxmlfilename); ++ FREE(shortxmlfilename); ++ shortxmlfilename = NULL; ++ } ++ ++ if (doc == NULL) ++ { ++ printf(_("Error: Could not parse file %s.\n"), xmlfilename); ++ if (encoding) {FREE(encoding);encoding=NULL;} ++ return bOK; ++ } ++ ++ xpathCtxt = xmlXPathNewContext(doc); ++ xpathObj = xmlXPathEval((const xmlChar*)"//modules/module", xpathCtxt); ++ ++ if(xpathObj && xpathObj->nodesetval->nodeMax) ++ { ++ /* the Xpath has been understood and there are node */ ++ int i; ++ for(i = 0; i < xpathObj->nodesetval->nodeNr; i++) ++ { ++ ++ xmlAttrPtr attrib=xpathObj->nodesetval->nodeTab[i]->properties; ++ /* Get the properties of */ ++ while (attrib != NULL) ++ { ++ /* loop until when have read all the attributes */ ++ if (xmlStrEqual (attrib->name, (const xmlChar*) "name")) ++ { ++ /* we found the tag name */ ++ const char *str=(const char*)attrib->children->content; ++ name = strdup(str); ++ } ++ else if (xmlStrEqual (attrib->name, (const xmlChar*) "activate")) ++ { ++ /* we found the tag activate */ ++ const char *str=(const char*)attrib->children->content; ++ if (stricmp(str,"yes")==0 || strcmp(str,"1")==0) { ++ activate=1; ++ } ++ } ++ attrib = attrib->next; ++ } ++ ++ if ( (name) && (strlen(name) > 0) && (activate) ) ++ { ++ if ( VerifyModule(name) ) ++ { ++ if (indice==0) ++ { ++ ScilabModules->ModuleList=(char**)MALLOC(sizeof(char*)*(indice+1)); ++ } ++ else ++ { ++ ScilabModules->ModuleList=(char**)REALLOC(ScilabModules->ModuleList,sizeof(char*)*(indice+1)); ++ } ++ ++ ScilabModules->numberofModules=indice+1; ++ ++ ScilabModules->ModuleList[indice]= strdup(name); ++ indice++; ++ } ++ else ++ { ++ sciprint(_("%s module not found.\n"),name); ++ } ++ } ++ if (name) {FREE(name);name = NULL;} ++ activate = 0; ++ } ++ bOK = TRUE; ++ } ++ ++ if(xpathObj) xmlXPathFreeObject(xpathObj); ++ if(xpathCtxt) xmlXPathFreeContext(xpathCtxt); ++ xmlFreeDoc (doc); ++ ++ } ++ else ++ { ++ printf(_("Error: Not a valid module file %s (encoding not '%s') Encoding '%s' found.\n"), xmlfilename, "utf-8", encoding); ++ } ++ if (encoding) {FREE(encoding);encoding=NULL;} ++ } ++ return bOK; + } + /*--------------------------------------------------------------------------*/ diff --git a/scilab-5.3.0-disable-gui.patch b/scilab-5.3.0-disable-gui.patch new file mode 100644 index 0000000..56b7b35 --- /dev/null +++ b/scilab-5.3.0-disable-gui.patch @@ -0,0 +1,11 @@ +--- configure.ac 2011-02-08 09:03:22.000000000 +0100 ++++ configure.ac-gil 2011-02-08 09:07:03.000000000 +0100 +@@ -170,6 +170,8 @@ + ##################################################### + PKG_PROG_PKG_CONFIG + ++with_gui="no" ++ + ##################################################### + ## check if options are correct (or not) + ##################################################### diff --git a/scilab-5.3.0-disable-hdf5.patch b/scilab-5.3.0-disable-hdf5.patch new file mode 100644 index 0000000..1fa59cf --- /dev/null +++ b/scilab-5.3.0-disable-hdf5.patch @@ -0,0 +1,20 @@ +--- configure.ac 2011-02-05 11:40:17.000000000 +0100 ++++ configure.ac-gil 2011-02-05 11:41:06.000000000 +0100 +@@ -655,11 +655,12 @@ + + HDF5_ENABLE=no + +-if test "$with_hdf5" != no; then +- AC_HDF5() +-# TODO: check if the JNI JHDF5 library are available +- HDF5_ENABLE=yes +-fi ++with_hdf5=no ++#if test "$with_hdf5" != no; then ++# AC_HDF5() ++## TODO: check if the JNI JHDF5 library are available ++# HDF5_ENABLE=yes ++#fi + + AC_SUBST(HDF5_ENABLE) + AM_CONDITIONAL(HDF5, test "$with_hdf5" != no) diff --git a/scilab-5.3.0-disable-rpath.patch b/scilab-5.3.0-disable-rpath.patch new file mode 100644 index 0000000..8820135 --- /dev/null +++ b/scilab-5.3.0-disable-rpath.patch @@ -0,0 +1,29 @@ +--- configure.ac 2010-12-15 08:13:09.000000000 +0100 ++++ configure.ac-gil 2011-02-05 11:36:52.000000000 +0100 +@@ -1786,16 +1786,16 @@ + # http://directory.fsf.org/project/chrpath/ + # to remove it before the make install + +-#case ${host} in +-# *-pc-linux-gnu) +-# AC_MSG_RESULT([Fixing libtool for -rpath problems.]) +-# sed < libtool > libtool-2 \ +-# 's/^hardcode_libdir_flag_spec.*$/hardcode_libdir_flag_spec=" -D__LIBTOOL_IS_A_FOOL__ "/' +-# mv libtool-2 libtool +-# chmod 755 libtool +-# ;; +-#esac +-# ++case ${host} in ++ *-pc-linux-gnu) ++ AC_MSG_RESULT([Fixing libtool for -rpath problems.]) ++ sed < libtool > libtool-2 \ ++ 's/^hardcode_libdir_flag_spec.*$/hardcode_libdir_flag_spec=" -D__LIBTOOL_IS_A_FOOL__ "/' ++ mv libtool-2 libtool ++ chmod 755 libtool ++ ;; ++esac ++ + + echo "" + diff --git a/scilab-5.3.0-jarnames.patch b/scilab-5.3.0-jarnames.patch new file mode 100644 index 0000000..795be37 --- /dev/null +++ b/scilab-5.3.0-jarnames.patch @@ -0,0 +1,29 @@ +--- configure.ac 2011-02-05 12:09:09.000000000 +0100 ++++ configure.ac-gil 2011-02-05 12:10:20.000000000 +0100 +@@ -839,7 +839,7 @@ + AC_SUBST(XMLGRAPHICS_COMMONS) + + # Avalon Framework (PDF) +- AC_JAVA_CHECK_PACKAGE([avalon-framework],[org.apache.avalon.framework.configuration.ConfigurationException],[Common framework for Java server application]) ++ AC_JAVA_CHECK_PACKAGE([excalibur/avalon-framework],[org.apache.avalon.framework.configuration.ConfigurationException],[Common framework for Java server application]) + AVALON_FRAMEWORK=$PACKAGE_JAR_FILE + AC_SUBST(AVALON_FRAMEWORK) + +@@ -889,7 +889,7 @@ + AC_SUBST(ANTLR) + + # Test NG (java unitary test) +- AC_JAVA_CHECK_PACKAGE([testng],[org.testng.TestNG],[TestNG - Unit tests],"yes") ++ AC_JAVA_CHECK_PACKAGE([testng-jdk15],[org.testng.TestNG],[TestNG - Unit tests],"yes") + TESTNG=$PACKAGE_JAR_FILE + AC_SUBST(TESTNG) + +@@ -899,7 +899,7 @@ + AC_SUBST(QDOX) + + # bsh (Java scripting environment) - dependency of TestNG +- AC_JAVA_CHECK_PACKAGE([bsh],[bsh.Console],[Java scripting environment],"yes") ++ AC_JAVA_CHECK_PACKAGE([bsh2/bsh],[bsh.Console],[Java scripting environment],"yes") + BSH=$PACKAGE_JAR_FILE + AC_SUBST(BSH) + diff --git a/scilab-5.3.0-javadefaultdir.patch b/scilab-5.3.0-javadefaultdir.patch new file mode 100644 index 0000000..1a57323 --- /dev/null +++ b/scilab-5.3.0-javadefaultdir.patch @@ -0,0 +1,11 @@ +--- m4/java.m4 2010-12-15 08:13:10.000000000 +0100 ++++ m4/java.m4-gil 2011-02-05 11:33:03.000000000 +0100 +@@ -832,7 +832,7 @@ + PACKAGE_JAR_FILE= + found_jar=no + saved_ac_java_classpath=$ac_java_classpath +- DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java $(ls -d /usr/share/java/*/ 2>/dev/null) $(ls -d /usr/lib64/*/ 2>/dev/null) $(ls -d /usr/lib/*/ 2>/dev/null) $(ls -d /usr/share/*/lib/ 2>/dev/null)" ++ DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java /usr/lib/jni $(ls -d /usr/share/java/*/ 2>/dev/null) $(ls -d /usr/lib64/*/ 2>/dev/null) $(ls -d /usr/lib/*/ 2>/dev/null) $(ls -d /usr/share/*/lib/ 2>/dev/null)" + for jardir in "`pwd`/thirdparty" "`pwd`/jar" $DEFAULT_JAR_DIR "$_user_libdir"; do + for jar in "$jardir/$1.jar" "$jardir/lib$1.jar" "$jardir/lib$1-java.jar" "$jardir/$1*.jar"; do + # jar=`echo $jar|sed -e 's/ /\\ /'` diff --git a/scilab-5.3.0-javasci-Scilab.patch b/scilab-5.3.0-javasci-Scilab.patch new file mode 100644 index 0000000..53697b1 --- /dev/null +++ b/scilab-5.3.0-javasci-Scilab.patch @@ -0,0 +1,10 @@ +--- modules/javasci/src/java/javasci/Scilab.java 2010-12-15 08:13:26.000000000 +0100 ++++ modules/javasci/src/java/javasci/Scilab.java-gil 2011-02-08 18:07:03.000000000 +0100 +@@ -110,6 +110,7 @@ + static + { + try { ++ System.setProperty("java.library.path", System.getProperty("java.library.path") + ":/usr/lib/java/"); + System.loadLibrary("javasci"); + Scilab.Initialize(); + } catch (SecurityException e) { diff --git a/scilab-5.3.0-jogl-jnidir.patch b/scilab-5.3.0-jogl-jnidir.patch new file mode 100644 index 0000000..71cda49 --- /dev/null +++ b/scilab-5.3.0-jogl-jnidir.patch @@ -0,0 +1,20 @@ +--- configure.ac 2011-02-08 09:17:35.000000000 +0100 ++++ configure.ac-gil 2011-02-08 09:17:51.000000000 +0100 +@@ -747,7 +747,7 @@ + else + LDFLAGS_save=$LDFLAGS + # Provide known paths where distribs/OS can store JNI libs +- LDFLAGS="-L/usr/lib/jni -L/usr/lib64/jni/ -L$SCI_SRCDIR/thirdparty/ -L$SCI_SRCDIR/bin/" ++ LDFLAGS="-L/usr/lib/java -L/usr/lib64/java/ -L$SCI_SRCDIR/thirdparty/ -L$SCI_SRCDIR/bin/" + AC_CHECK_LIB([jogl], [glTexParameterf], [JOGL_LIBS="-ljogl"],[AC_MSG_WARN([Could not link against -ljogl. Will try against -ljogl -lGL])]) + if test -z "$JOGL_LIBS"; then # The previous test failed add more options to the LDFLAGS + # the space after "jogl" in the following line is on +@@ -775,7 +775,7 @@ + else + LDFLAGS_save=$LDFLAGS + # Provide known paths where distribs/OS can store JNI libs +- LDFLAGS="-L/usr/lib/jni -L/usr/lib64/jni/ -ldl -L$SCI_SRCDIR/thirdparty/ -L$SCI_SRCDIR/bin/" ++ LDFLAGS="-L/usr/lib/java -L/usr/lib64/java/ -ldl -L$SCI_SRCDIR/thirdparty/ -L$SCI_SRCDIR/bin/" + symbol="Java_com_sun_gluegen_runtime_UnixDynamicLinkerImpl_dlclose__J" + AC_CHECK_LIB([gluegen-rt], [$symbol], [GLUEGEN_RT_LIBS="-lgluegen-rt"], + [AC_MSG_ERROR([libgluegen-rt: Library missing (Cannot find symbol glTexParameterf). Check if libgluegen-rt - C/Java (JNI) interface for GLUEGEN - is installed and if the version is correct. Note that you might have to update etc/librarypath.xml to provide the actual path the the JNI libraries.])], diff --git a/scilab.desktop b/scilab.desktop new file mode 100644 index 0000000..c4552f9 --- /dev/null +++ b/scilab.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=Scilab +GenericName=Scilab: Scientific Software Package +Comment=High-level language for numerical computations +TryExec=scilab +Exec=scilab +Icon=scilab +StartupNotify=false +Terminal=false +Type=Application +Categories=Education;Science;Math; \ No newline at end of file diff --git a/scilab.spec b/scilab.spec new file mode 100644 index 0000000..0ea00df --- /dev/null +++ b/scilab.spec @@ -0,0 +1,465 @@ +%define javahome %{_jvmdir}/jdk +%define with_hdf5 1 +%define with_giws 1 +%define with_swig 1 +%define with_gui 1 +Name: scilab +Version: 5.3.0 +Release: 5mamba +Summary: A scientific software package for numerical computations +Group: Graphical Desktop/Applications/Scientific +Vendor: openmamba +Distribution: openmamba +Packager: Silvan Calarco +URL: http://www.scilab.org/ +Source0: http://www.scilab.org/download/%{version}/scilab-%{version}-src.tar.gz +Source1: scilab.desktop +Source2: scilab_256x256x32.png +Patch0: scilab-5.3.0-javadefaultdir.patch +Patch1: scilab-5.3.0-disable-rpath.patch +# disable hdf5, as we do not have jhdf5 +Patch2: scilab-5.3.0-disable-hdf5.patch +Patch3: scilab-5.3.0-jarnames.patch + +# disable the GUI. require jogl/gluegen == 1.1.1 +Patch5: scilab-5.3.0-disable-gui.patch + +Patch6: scilab-5.3.0-jogl-jnidir.patch + +Patch7: scilab-5.3.0-core-getmodules.patch +# from debian http://patch-tracker.debian.org/patch/series/view/scilab/5.3.0-beta-4-2 +Patch8: scilab-5.3.0-javasci-Scilab.patch + +License: CeCILL, GPL +## AUTOBUILDREQ-BEGIN +BuildRequires: gcc-fortran +BuildRequires: glibc-devel +BuildRequires: libatlas-devel +BuildRequires: libblas-devel +BuildRequires: libfftw-devel +BuildRequires: libgcc +BuildRequires: libgomp-devel +BuildRequires: libhdf5-devel +BuildRequires: liblzma-devel +BuildRequires: libmatio-devel +BuildRequires: libncurses-devel +BuildRequires: libpcre-devel +BuildRequires: libquadmath-devel +BuildRequires: libstdc++6-devel +BuildRequires: libsuitesparse-devel +BuildRequires: libtcl-devel +BuildRequires: libtk-devel +BuildRequires: libxml2-devel +BuildRequires: libz-devel +BuildRequires: pvm +## AUTOBUILDREQ-END +BuildRequires: desktop-file-utils +BuildRequires: ImageMagick +# java stuff +BuildRequires: antlr +BuildRequires: apache-ant +BuildRequires: apache-batik +BuildRequires: apache-fop == 0.95 +BuildRequires: jakarta-commons-beanutils == 1.7.0 +BuildRequires: jakarta-commons-io == 1.4 +BuildRequires: jakarta-commons-logging == 1.1.1 +BuildRequires: java-bsh2 +BuildRequires: java-checkstyle +BuildRequires: java-excalibur-avalon-framework +BuildRequires: java-flexdock +BuildRequires: java-graphx +BuildRequires: java-jeuclid +BuildRequires: java-jlatexmath +BuildRequires: java-junit3 +BuildRequires: java-openjdk +BuildRequires: java-qdox +BuildRequires: java-rosetta +BuildRequires: java-saxon6 +BuildRequires: java-skinlf +BuildRequires: java-testng +BuildRequires: javahelp2 +BuildRequires: jgoodies-looks +BuildRequires: xml-commons-apis +BuildRequires: jpackage-utils +BuildRequires: xmlgraphics-commons == 1.3.1 +%if %with_gui +BuildRequires: java-gluegen1 == 1.1.1 +BuildRequires: java-jogl1 == 1.1.1 +%endif +%if %with_hdf5 +BuildRequires: java-hdf5 +BuildRequires: libhdf5-devel +%endif +BuildRequires: libmpi-devel +BuildRequires: libsablotron-devel +BuildRequires: libXaw3d-devel +BuildRequires: ocaml +BuildRequires: perl-devel + +Requires: docbook-dtds-5-schemas +Requires: antlr +Requires: apache-batik +Requires: apache-fop == 0.95 +Requires: jakarta-commons-beanutils == 1.7.0 +Requires: jakarta-commons-io == 1.4 +Requires: jakarta-commons-logging == 1.1.1 +Requires: java-bsh2 +Requires: java-checkstyle +Requires: java-excalibur-avalon-framework +Requires: java-flexdock +Requires: java-graphx +Requires: java-jeuclid +%if %with_hdf5 +Requires: java-hdf5 +%endif +%if %with_gui +Requires: java-gluegen1 == 1.1.1 +Requires: java-jogl1 == 1.1.1 +%endif +%if %with_swig +BuildRequires: swig +%endif +%if %with_giws +BuildRequires: giws +%endif +BuildRequires: libsuitesparse-devel +Requires: java-jlatexmath +Requires: java-junit3 +Requires: java-openjdk +Requires: java-qdox +Requires: java-rosetta +Requires: java-saxon6 +Requires: java-skinlf +Requires: java-testng +Requires: javahelp2 +Requires: jgoodies-looks +Requires: libatlas +Requires: ocaml +Requires: xml-commons-apis +#Requires: ElectricFence +#Requires: kdbg +#Requires: libtool +#Requires: valgrind +BuildRoot: %{_tmppath}/%{name}-%{version}-root + +%description +Scilab is a scientific software package for numerical computations providing a powerful open computing environment for engineering and scientific applications. +Scilab includes hundreds of mathematical functions with the possibility to add interactively programs from various languages (C, Fortran...). It has sophisticated data structures (including lists, polynomials, rational functions, linear systems...), an interpreter and a high level programming language. +Scilab has been designed to be an open system where the user can define new data types and operations on these data types by using overloading. + +%package devel +Group: Development/Libraries +Summary: Development files for Scilab +Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} + +%description devel +Scilab - A scientific software package for numerical computations. + +This package contains development files for with Scilab. + +%prep +%setup -q +#-D -T +#:<< _EOF + +%patch0 -p0 +%patch1 -p0 +%if ! %with_hdf5 +%patch2 -p0 +%endif +%patch3 -p0 +%if ! %with_gui +%patch5 -p0 +%else +%patch6 -p0 +%endif +%patch7 -p0 +%patch8 -p0 + +sed -i "s|%{_libdir}/jni|%{_jnidir}|" etc/librarypath.xml + +for j in $(find . -name "*.jar"); do + mv $j $j.no +done + +for c in $(find . -name "*.class"); do + rm -rf $c +done + +for o in $(find . -name "*.so"); do + rm -rf $o +done + +for e in $(find . -name "*.exe"); do + rm -rf $e +done + +for d in $(find . -name "*.dll"); do + rm -rf $d +done + +%build +#:<< _EOF +autoreconf +%if %with_hdf5 +export JHDF5=%{_jnidir}/jhdf5.jar JHDF5_LIBS=%{_jnidir} +%endif +%if %with_gui +export JOGL=%{_javadir}/jogl.jar GLUEGEN_RT=%{_javadir}/gluegen-rt.jar +%endif +# build without -rpath +SCILAB_LIB_RPATH=$PWD/libs/blas/.libs:$PWD/libs/doublylinkedlist/.libs:$PWD/libs/dynamiclibrary/.libs:$PWD/libs/hashtable/.libs:$PWD/libs/lapack/.libs:$PWD/libs/libst/.libs:$PWD/libs/MALLOC/.libs:$PWD/modules/action_binding/.libs:$PWD/modules/api_scilab/.libs:$PWD/modules/arnoldi/.libs:$PWD/modules/boolean/.libs:$PWD/modules/cacsd/.libs:$PWD/modules/call_scilab/.libs:$PWD/modules/commons/.libs:$PWD/modules/completion/.libs:$PWD/modules/console/.libs:$PWD/modules/core/.libs:$PWD/modules/data_structures/.libs:$PWD/modules/differential_equations/.libs:$PWD/modules/double/.libs:$PWD/modules/dynamic_link/.libs:$PWD/modules/elementary_functions/.libs:$PWD/modules/fftw/.libs:$PWD/modules/fileio/.libs:$PWD/modules/functions/.libs:$PWD/modules/graph/.libs:$PWD/modules/graphic_export/.libs:$PWD/modules/graphics/.libs:$PWD/modules/gui/.libs:$PWD/modules/helptools/.libs:$PWD/modules/history_browser/.libs:$PWD/modules/history_manager/.libs:$PWD/modules/integer/.libs:$PWD/modules/interpolation/.libs:$PWD/modules/intersci/.libs:$PWD/modules/io/.libs:$PWD/modules/javasci/.libs:$PWD/modules/jvm/.libs:$PWD/modules/.libs:$PWD/modules/linear_algebra/.libs:$PWD/modules/localization/.libs:$PWD/modules/matio/.libs:$PWD/modules/mexlib/.libs:$PWD/modules/optimization/.libs:$PWD/modules/output_stream/.libs:$PWD/modules/parallel/.libs:$PWD/modules/parameters/.libs:$PWD/modules/polynomials/.libs:$PWD/modules/pvm/.libs:$PWD/modules/randlib/.libs:$PWD/modules/renderer/.libs:$PWD/modules/scicos_blocks/.libs:$PWD/modules/scicos/.libs:$PWD/modules/scinotes/.libs:$PWD/modules/shell/.libs:$PWD/modules/signal_processing/.libs:$PWD/modules/sound/.libs:$PWD/modules/sparse/.libs:$PWD/modules/special_functions/.libs:$PWD/modules/spreadsheet/.libs:$PWD/modules/statistics/.libs:$PWD/modules/string/.libs:$PWD/modules/symbolic/.libs:$PWD/modules/tclsci/.libs:$PWD/modules/time/.libs:$PWD/modules/types/.libs:$PWD/modules/ui_data/.libs:$PWD/modules/umfpack/.libs:$PWD/modules/windows_tools/.libs:file:$PWD/modules/xcos/.libs: +%if %with_hdf5 +SCILAB_LIB_RPATH=$SCILAB_LIB_RPATH:$PWD/modules/hdf5/.libs: +%endif + +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$SCILAB_LIB_RPATH +%configure \ + --with-jdk=%javahome \ + --with-ant=$ANT_HOME \ + LDFLAGS="-L/usr/lib/atlas -lgfortran" \ +%if %with_giws + --enable-build-giws \ +%endif +%if %with_swig + --enable-build-swig \ +%endif + --enable-build-help \ + --with-fftw \ + --with-matio \ + --with-pvm \ + --disable-static \ + --enable-shared \ +%if ! %with_gui + --without-gui\ +%endif + --without-scicos \ +%if ! %with_hdf5 + --without-hdf5 +%endif + +%make all + +# --without-scicos Disable Scicos http://www.scicoslab.org/ + +%install +[ "%{buildroot}" != / ] && rm -rf "%{buildroot}" +make install DESTDIR=%{buildroot} + +rm -rf %{buildroot}%{_libdir}/scilab/*.la + +chmod 755 %{buildroot}%{_datadir}/scilab/modules/helptools/bin/manrev2sci +chmod 755 %{buildroot}%{_datadir}/scilab/modules/helptools/bin/man2sci +chmod 755 %{buildroot}%{_datadir}/scilab/modules/helptools/bin/scivalid + +mkdir -p %{buildroot}%{_datadir}/applications +desktop-file-install --mode=644 --dir=%{buildroot}%{_datadir}/applications %{SOURCE1} + +for png in 16 22 24 32 48 64 128; do + mkdir -p %{buildroot}%{_datadir}/icons/hicolor/${png}x${png}/apps/ + convert -resize ${png}x${png} %{SOURCE2} \ + %{buildroot}%{_datadir}/icons/hicolor/${png}x${png}/apps/scilab.png +done + +mkdir -p %{buildroot}%{_datadir}/pixmaps +convert -resize 32x32 %{SOURCE2} \ + %{buildroot}%{_datadir}/pixmaps/scilab.png + +rm -rf %{buildroot}%{_datadir}/.directory +rm -rf %{buildroot}%{_datadir}/scilab/.directory + +%find_lang scilab + +%clean +[ "%{buildroot}" != / ] && rm -rf "%{buildroot}" + +%post +/sbin/ldconfig +touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : + +%postun +/sbin/ldconfig +if [ $1 -eq 0 ] ; then + touch --no-create %{_datadir}/icons/hicolor &>/dev/null + gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : +fi + +%posttrans +gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : + +%files -f scilab.lang +%defattr(-,root,root) +%{_bindir}/intersci +%{_bindir}/scilab +%{_bindir}/scilab-adv-cli +%{_bindir}/scilab-bin +%{_bindir}/scilab-cli +%{_bindir}/scilab-cli-bin +%dir %{_libdir}/scilab +%{_libdir}/scilab/libjavasci.so.* +%{_libdir}/scilab/libjavasci2.so.* +%{_libdir}/scilab/libmat.so.* +%{_libdir}/scilab/libmex.so.* +%{_libdir}/scilab/libmx.so.* +%{_libdir}/scilab/libsci*.so.* +%{_libdir}/scilab/*.so +%dir %{_datadir}/scilab +%{_datadir}/scilab/ACKNOWLEDGEMENTS +%{_datadir}/scilab/CHANGES_* +%{_datadir}/scilab/COPYING* +%{_datadir}/scilab/README_* +%{_datadir}/scilab/RELEASE_NOTES_* +%{_datadir}/scilab/Readme_Visual.txt +%{_datadir}/scilab/contrib +%{_datadir}/scilab/etc +%{_datadir}/scilab/icons +%{_datadir}/scilab/tools +%dir %{_datadir}/scilab/modules +%{_datadir}/scilab/modules/action_binding +%{_datadir}/scilab/modules/api_scilab +%{_datadir}/scilab/modules/arnoldi +%{_datadir}/scilab/modules/atoms +%{_datadir}/scilab/modules/boolean +%{_datadir}/scilab/modules/cacsd +%{_datadir}/scilab/modules/call_scilab +%dir %{_datadir}/scilab/modules/commons +%{_datadir}/scilab/modules/commons/*.txt +%{_datadir}/scilab/modules/commons/version.xml +%{_datadir}/scilab/modules/commons/etc +%{_datadir}/scilab/modules/commons/jar +%{_datadir}/scilab/modules/commons/macros +#%dir %{_datadir}/scilab/modules/commons/sci_gateway +%{_datadir}/scilab/modules/compatibility_functions +%{_datadir}/scilab/modules/completion +%{_datadir}/scilab/modules/console +%{_datadir}/scilab/modules/core +%{_datadir}/scilab/modules/data_structures +%{_datadir}/scilab/modules/demo_tools +%{_datadir}/scilab/modules/development_tools +%{_datadir}/scilab/modules/differential_equations +%{_datadir}/scilab/modules/double +%dir %{_datadir}/scilab/modules/doublylinkedlist +%dir %{_datadir}/scilab/modules/doublylinkedlist/macros +%{_datadir}/scilab/modules/dynamic_link +%dir %{_datadir}/scilab/modules/dynamiclibrary +%dir %{_datadir}/scilab/modules/dynamiclibrary/macros +%{_datadir}/scilab/modules/elementary_functions +%{_datadir}/scilab/modules/fftw +%{_datadir}/scilab/modules/fileio +%{_datadir}/scilab/modules/functions +%{_datadir}/scilab/modules/genetic_algorithms +%dir %{_datadir}/scilab/modules/graph +%{_datadir}/scilab/modules/graph/*.txt +%{_datadir}/scilab/modules/graph/version.xml +%{_datadir}/scilab/modules/graph/etc +%{_datadir}/scilab/modules/graph/jar +%{_datadir}/scilab/modules/graph/macros +%{_datadir}/scilab/modules/graph/tests +#%dir %{_datadir}/scilab/modules/graph/sci_gateway +%{_datadir}/scilab/modules/graphic_export +%{_datadir}/scilab/modules/graphics +%{_datadir}/scilab/modules/gui +%dir %{_datadir}/scilab/modules/hashtable +%dir %{_datadir}/scilab/modules/hashtable/macros +%{_datadir}/scilab/modules/hdf5 +%{_datadir}/scilab/modules/helptools +%dir %{_datadir}/scilab/modules/history_browser +%{_datadir}/scilab/modules/history_browser/*.txt +%{_datadir}/scilab/modules/history_browser/*.xml +%{_datadir}/scilab/modules/history_browser/etc +%{_datadir}/scilab/modules/history_browser/jar +%{_datadir}/scilab/modules/history_browser/macros +%{_datadir}/scilab/modules/history_browser/tests +#%dir %{_datadir}/scilab/modules/history_browser/sci_gateway +%{_datadir}/scilab/modules/history_manager +%{_datadir}/scilab/modules/integer +%{_datadir}/scilab/modules/interpolation +%{_datadir}/scilab/modules/intersci +%{_datadir}/scilab/modules/io +%{_datadir}/scilab/modules/javasci +%{_datadir}/scilab/modules/jvm +%dir %{_datadir}/scilab/modules/libst +%dir %{_datadir}/scilab/modules/libst/macros +%{_datadir}/scilab/modules/linear_algebra +%{_datadir}/scilab/modules/localization +%{_datadir}/scilab/modules/m2sci +%dir %{_datadir}/scilab/modules/malloc +%dir %{_datadir}/scilab/modules/malloc/macros +%{_datadir}/scilab/modules/maple2scilab +%{_datadir}/scilab/modules/matio +%{_datadir}/scilab/modules/mexlib +%{_datadir}/scilab/modules/modules_manager +%{_datadir}/scilab/modules/optimization +%{_datadir}/scilab/modules/output_stream +%{_datadir}/scilab/modules/overloading +%{_datadir}/scilab/modules/parallel +%{_datadir}/scilab/modules/parameters +%{_datadir}/scilab/modules/polynomials +%{_datadir}/scilab/modules/pvm +%{_datadir}/scilab/modules/randlib +%{_datadir}/scilab/modules/renderer +%{_datadir}/scilab/modules/scicos +%{_datadir}/scilab/modules/scinotes +%{_datadir}/scilab/modules/shell +%{_datadir}/scilab/modules/signal_processing +%{_datadir}/scilab/modules/simulated_annealing +%{_datadir}/scilab/modules/sound +%{_datadir}/scilab/modules/sparse +%{_datadir}/scilab/modules/special_functions +%{_datadir}/scilab/modules/spreadsheet +%{_datadir}/scilab/modules/statistics +%{_datadir}/scilab/modules/string +%{_datadir}/scilab/modules/symbolic +%{_datadir}/scilab/modules/tclsci +%{_datadir}/scilab/modules/texmacs +%{_datadir}/scilab/modules/time +%dir %{_datadir}/scilab/modules/types +%{_datadir}/scilab/modules/types/*.txt +%{_datadir}/scilab/modules/types/*.xml +%{_datadir}/scilab/modules/types/etc +%{_datadir}/scilab/modules/types/jar +%{_datadir}/scilab/modules/types/macros +#%dir %{_datadir}/scilab/modules/types/sci_gateway +%{_datadir}/scilab/modules/types/tests +%{_datadir}/scilab/modules/ui_data +%{_datadir}/scilab/modules/umfpack +%{_datadir}/scilab/modules/windows_tools +%{_datadir}/scilab/modules/xcos +%{_datadir}/applications/scilab.desktop +%{_datadir}/icons/hicolor/*x*/apps/scilab.png +%{_datadir}/pixmaps/scilab.png +%doc license.txt + +%files devel +%defattr(-,root,root) +%dir %{_includedir}/scilab +%{_includedir}/scilab/*.h +%{_exec_prefix}/lib/pkgconfig/scilab.pc + +%changelog +* Sat Aug 03 2013 Silvan Calarco 5.3.0-5mamba +- rebuilt with libhdf5 1.8.10 + +* Tue Mar 06 2012 Silvan Calarco 5.3.0-4mamba +- rebuilt with libsuitesparse + +* Tue Feb 08 2011 gil 5.3.0-3mamba +- add getmodules.patch + +* Tue Feb 08 2011 gil 5.3.0-2mamba +- edit configure options add libatlas support + +* Fri Feb 04 2011 gil 5.3.0-1mamba +- update to 5.3.0 + +* Wed Jul 30 2008 gil 4.1.2-1mamba +- update to 4.1.2 + +* Wed Jul 13 2005 Silvan Calarco 3.1.1-3qilnx +- added automatic creation of user configuration for rtai patch + +* Wed Jul 13 2005 Silvan Calarco 3.1.1-2qilnx +- added RTAI patch + +* Mon Jul 11 2005 Silvan Calarco 3.1.1-1qilnx +- package created by autospec \ No newline at end of file diff --git a/scilab_256x256x32.png b/scilab_256x256x32.png new file mode 100644 index 0000000..ae46a87 Binary files /dev/null and b/scilab_256x256x32.png differ