diff options
-rw-r--r-- | academic/orsa/README | 8 | ||||
-rw-r--r-- | academic/orsa/orsa.SlackBuild | 75 | ||||
-rw-r--r-- | academic/orsa/orsa.info | 8 | ||||
-rw-r--r-- | academic/orsa/orsa.patch | 285 | ||||
-rw-r--r-- | academic/orsa/slack-desc | 19 |
5 files changed, 395 insertions, 0 deletions
diff --git a/academic/orsa/README b/academic/orsa/README new file mode 100644 index 0000000000..eeb23562a7 --- /dev/null +++ b/academic/orsa/README @@ -0,0 +1,8 @@ +ORSA (Orbit Reconstruction, Simulation and Analysis) + +ORSA is an interactive tool for scientific grade Celestial Mechanics +computations. Asteroids, comets, artificial satellites, Solar and +extra-Solar planetary systems can be accurately reproduced, simulated, +and analyzed. This does not support Close approaches tool. + +This requires gsl, cln, ginac, and openmpi. diff --git a/academic/orsa/orsa.SlackBuild b/academic/orsa/orsa.SlackBuild new file mode 100644 index 0000000000..4c7bd220f2 --- /dev/null +++ b/academic/orsa/orsa.SlackBuild @@ -0,0 +1,75 @@ +#!/bin/sh + +# Slackware build script for orsa + +# Written by Marco Cecchetti <mrc.ildp@gmail.com> + +PRGNAM=${PRGNAM:-orsa} +VERSION=${VERSION:-0.7.0} +ARCH=${ARCH:-i486} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} + +CWD=$(pwd) +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.gz +cd $PRGNAM-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +patch -p1 < $CWD/orsa.patch + +./autogen.sh + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --disable-static \ + --enable-shared \ + --with-mpi \ + --build=$ARCH-slackware-linux + + make + make install DESTDIR=$PKG +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null || true + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS ChangeLog COPYING COPYRIGHT DEVELOPERS NEWS README TODO THANKS \ + $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz diff --git a/academic/orsa/orsa.info b/academic/orsa/orsa.info new file mode 100644 index 0000000000..6a459e1130 --- /dev/null +++ b/academic/orsa/orsa.info @@ -0,0 +1,8 @@ +PRGNAM="orsa" +VERSION="0.7.0" +HOMEPAGE="http://orsa.sourceforge.net/" +DOWNLOAD="http://prdownloads.sourceforge.net/orsa/orsa-0.7.0.tar.gz" +MD5SUM="16c86f3aa73920631f9768d8c70cce70" +MAINTAINER="Marco Cecchetti" +EMAIL="mrc.ildp@gmail.com" +APPROVED="rworkman" diff --git a/academic/orsa/orsa.patch b/academic/orsa/orsa.patch new file mode 100644 index 0000000000..488f15b2d5 --- /dev/null +++ b/academic/orsa/orsa.patch @@ -0,0 +1,285 @@ + +--- orsa-0.7.0.orig/configure.in ++++ orsa-0.7.0/configure.in +@@ -27,6 +27,7 @@ + AC_PROG_INSTALL + AC_PROG_MAKE_SET + AC_PROG_AWK ++PKG_PROG_PKG_CONFIG + + dnl select the language for the test programs + AC_LANG(C++) +@@ -35,10 +36,24 @@ + AM_PATH_GSL([1.5]) + + dnl checks for the cln library +-AC_PATH_CLN([1.1.6], ac_cv_have_cln=yes, ac_cv_have_cln=no) ++PKG_CHECK_MODULES(CLN, cln >= 1.1.6, ac_cv_have_cln=yes, ac_cv_have_cln=no) ++ ++if test "x$ac_cv_have_cln" = "xyes"; then ++ CLN_CPPFLAGS=`pkg-config --cflags cln` ++ CLN_LIBS=`pkg-config --libs cln` ++ AC_SUBST(CLN_CPPFLAGS) ++ AC_SUBST(CLN_LIBS) ++fi + + dnl checks for the ginac library +-AM_PATH_GINAC([1.2.0], ac_cv_have_ginac=yes, ac_cv_have_ginac=no) ++PKG_CHECK_MODULES(GiNaC, ginac >= 1.2.0, ac_cv_have_ginac=yes, ac_cv_have_ginac=no) ++ ++if test "x$ac_cv_have_ginac" = "xyes"; then ++ GINACLIB_CPPFLAGS=`pkg-config --cflags ginac` ++ GINACLIB_LIBS=`pkg-config --libs ginac` ++ AC_SUBST(GINACLIB_CPPFLAGS) ++ AC_SUBST(GINACLIB_LIBS) ++fi + + dnl QT libs + AC_PATH_QT +--- orsa-0.7.0.orig/src/liborsa/orsa_interaction_tree.cc ++++ orsa-0.7.0/src/liborsa/orsa_interaction_tree.cc +@@ -26,6 +26,7 @@ + #include "orsa_secure_math.h" + #include "orsa_universe.h" + ++#include <cstring> + #include <iostream> + #include <list> + #include <stack> +--- orsa-0.7.0.orig/src/liborsa/orsa_units.h ++++ orsa-0.7.0/src/liborsa/orsa_units.h +@@ -28,6 +28,7 @@ + #include <cmath> + #include <string> + #include <cstdio> ++#include <cstdlib> + + #include "orsa_secure_math.h" + #include "orsa_coord.h" +--- orsa-0.7.0.orig/src/liborsa/orsa_file.cc ++++ orsa-0.7.0/src/liborsa/orsa_file.cc +@@ -24,6 +24,8 @@ + + #include "orsa_file.h" + ++#include <algorithm> ++#include <cstring> + #include <iostream> + + #include <ctype.h> +--- orsa-0.7.0.orig/src/liborsa/orsa_coord.cc ++++ orsa-0.7.0/src/liborsa/orsa_coord.cc +@@ -25,6 +25,7 @@ + #include "orsa_coord.h" + + #include <cmath> ++#include <cstdlib> + #include <iostream> + + using namespace std; +--- orsa-0.7.0.orig/src/liborsa/orsa_body.h ++++ orsa-0.7.0/src/liborsa/orsa_body.h +@@ -183,7 +183,7 @@ + inline void SetVelocity(const double x, const double y, const double z) { Vector v(x,y,z); SetVelocity(v); } + + // b position - this position +- inline Vector Body::distanceVector(const Body & b) const { return b.position()-position(); } ++ inline Vector distanceVector(const Body & b) const { return b.position()-position(); } + inline double distance(const Body & b) const { return distanceVector(b).Length(); } + + // alias +--- orsa-0.7.0.orig/src/liborsa/orsa_file_jpl.cc ++++ orsa-0.7.0/src/liborsa/orsa_file_jpl.cc +@@ -27,6 +27,7 @@ + #include "orsa_secure_math.h" + + #include <cstdio> ++#include <cstring> + + #include "sdncal.h" + #include "jpleph.h" +--- orsa-0.7.0.orig/src/orsa/xorsa.h ++++ orsa-0.7.0/src/orsa/xorsa.h +@@ -62,7 +62,7 @@ + ObjectItem(QListView *parent, QString label1, QString label2 = QString::null, QString label3 = QString::null, QString label4 = QString::null, QString label5 = QString::null, QString label6 = QString::null, QString label7 = QString::null, QString label8 = QString::null); + + public: +- int ObjectItem::compare(QListViewItem * i, int col, bool ascending) const; ++ int compare(QListViewItem * i, int col, bool ascending) const; + + }; + +--- orsa-0.7.0.orig/src/orsa/xorsa.cc ++++ orsa-0.7.0/src/orsa/xorsa.cc +@@ -580,25 +580,25 @@ + MPC_UNUSUALS)); + */ + +- items.push_back(XOrsaDownloadItem("http://www.astro.cz/mpcorb/MPCORB.ZIP", ++ items.push_back(XOrsaDownloadItem("", + MPC_MPCORB)); + +- items.push_back(XOrsaDownloadItem("http://www.astro.cz/mpcorb/NEA.DAT", ++ items.push_back(XOrsaDownloadItem("", + MPC_NEA)); + +- items.push_back(XOrsaDownloadItem("http://www.astro.cz/mpcorb/DAILY.DAT", ++ items.push_back(XOrsaDownloadItem("", + MPC_DAILY)); + +- items.push_back(XOrsaDownloadItem("http://www.astro.cz/mpcorb/DistantObjects.DAT", ++ items.push_back(XOrsaDownloadItem("", + MPC_DISTANT)); + +- items.push_back(XOrsaDownloadItem("http://www.astro.cz/mpcorb/PHA.DAT", ++ items.push_back(XOrsaDownloadItem("", + MPC_PHA)); + +- items.push_back(XOrsaDownloadItem("http://www.astro.cz/mpcorb/Unusuals.DAT", ++ items.push_back(XOrsaDownloadItem("", + MPC_UNUSUALS)); + +- items.push_back(XOrsaDownloadItem("http://www.astro.cz/mpcorb/COMET.DAT", ++ items.push_back(XOrsaDownloadItem("", + MPC_COMET)); + + /* +@@ -627,22 +627,22 @@ + items.push_back(XOrsaDownloadItem("http://www.amsat.org/amsat/ftp/keps/current/nasa.all", + TLE_NASA)); + +- items.push_back(XOrsaDownloadItem("ftp://alphalma.cnrs-mrs.fr/pub/astro/geo.tle", ++ items.push_back(XOrsaDownloadItem("", + TLE_GEO)); + + items.push_back(XOrsaDownloadItem("http://www.celestrak.com/NORAD/elements/gps-ops.txt", + TLE_GPS)); + +- items.push_back(XOrsaDownloadItem("ftp://alphalma.cnrs-mrs.fr/pub/astro/iss.tle", ++ items.push_back(XOrsaDownloadItem("", + TLE_ISS)); + +- items.push_back(XOrsaDownloadItem("http://www.orbitessera.com/data/orbital/kepele.txt", ++ items.push_back(XOrsaDownloadItem("", + TLE_KEPELE)); + +- items.push_back(XOrsaDownloadItem("ftp://alphalma.cnrs-mrs.fr/pub/astro/visual.tle", ++ items.push_back(XOrsaDownloadItem("", + TLE_VISUAL)); + +- items.push_back(XOrsaDownloadItem("ftp://alphalma.cnrs-mrs.fr/pub/astro/weather.tle", ++ items.push_back(XOrsaDownloadItem("", + TLE_WEATHER)); + + // textures +--- orsa-0.7.0.orig/src/libxorsa/xorsa_object_selector.cc ++++ orsa-0.7.0/src/libxorsa/xorsa_object_selector.cc +@@ -40,7 +40,7 @@ + XOrsaObjectItem(QListView *parent, QString label1, QString label2 = QString::null, QString label3 = QString::null, QString label4 = QString::null, QString label5 = QString::null, QString label6 = QString::null, QString label7 = QString::null, QString label8 = QString::null); + + public: +- int XOrsaObjectItem::compare(QListViewItem * i, int col, bool ascending) const; ++ int compare(QListViewItem * i, int col, bool ascending) const; + + }; + +--- orsa-0.7.0.orig/src/libxorsa/xorsa_wrapper.cc ++++ orsa-0.7.0/src/libxorsa/xorsa_wrapper.cc +@@ -148,9 +148,9 @@ + { + if (doDefaultOutput) inherited::vtrace(fmt, ap); + char str[1024]; +- std::vsnprintf(str, sizeof(str) - 1, fmt, ap); ++ vsnprintf(str, sizeof(str) - 1, fmt, ap); + char msg[1024]; +- std::snprintf(msg, sizeof(msg) - 1, "[%s][%s:%i] %s %s\n", ++ snprintf(msg, sizeof(msg) - 1, "[%s][%s:%i] %s %s\n", + QTime::currentTime(Qt::LocalTime).toString("hh:mm:ss").latin1(),d->file,d->line, d->msg.c_str(), str); + QString s = msg; + XOrsaDebugEvent *de = new XOrsaDebugEvent(s); +--- orsa-0.7.0.orig/src/libxorsa/xorsa_download.cc ++++ orsa-0.7.0/src/libxorsa/xorsa_download.cc +@@ -221,6 +221,21 @@ + + } + ++void XOrsaDownloadEntry::secure_download(const QUrlInfo &urlInfo) ++{ ++ QUrl proto_url(le->text()); ++ // download file if it appears in the file listing ++ if (proto_url.fileName() == urlInfo.name()) { ++ // abort the current QFtp::List and QFtp::Close commands ++ ftp->abort(); ++ ++ if (urlInfo.isFile() && urlInfo.isReadable()) ++ ftp->get(proto_url.fileName(),file); ++ ++ ftp->close(); ++ } ++} ++ + void XOrsaDownloadEntry::download() { + QUrl proto_url(le->text()); + ftp = 0; +@@ -235,7 +250,7 @@ + ftp->login("anonymous","orsa_user@orsa.sf.net"); + ftp->cd(proto_url.dirPath()); + // +- ftp->get(proto_url.fileName(),file); ++ ftp->list(); + // WARNING: don't close the file HERE!! + // + ftp->close(); +@@ -246,6 +261,8 @@ + + connect(ftp,SIGNAL(done(bool)),this,SLOT(post_download(bool))); + ++ connect(ftp,SIGNAL(listInfo(const QUrlInfo &)),this,SLOT(secure_download(const QUrlInfo &))); ++ + } else if (proto_url.protocol() == "http") { + + http = new QHttp; +--- orsa-0.7.0.orig/src/libxorsa/xorsa_plot_area.h ++++ orsa-0.7.0/src/libxorsa/xorsa_plot_area.h +@@ -57,7 +57,7 @@ + } + } + +-extern char *MonthNameShort[13]; // sdncal.h ++extern "C" char *MonthNameShort[13]; // sdncal.h + + void FineDate(QString & label, const orsa::UniverseTypeAwareTime & t, bool=true); + void FineDate_HMS(QString & label, const orsa::UniverseTypeAwareTime & t); +--- orsa-0.7.0.orig/src/libxorsa/xorsa_download.h ++++ orsa-0.7.0/src/libxorsa/xorsa_download.h +@@ -91,6 +91,7 @@ + void pb_clicked(); + void post_download(bool); + void download(); ++ void secure_download(const QUrlInfo &); + }; + + +--- orsa-0.7.0.orig/src/libxorsa/xorsa_analysis.h ++++ orsa-0.7.0/src/libxorsa/xorsa_analysis.h +@@ -129,7 +129,7 @@ + XOrsaPeaksListItem(QListView *parent, QString label1, QString label2 = QString::null, QString label3 = QString::null, QString label4 = QString::null, QString label5 = QString::null, QString label6 = QString::null, QString label7 = QString::null, QString label8 = QString::null); + + public: +- int XOrsaPeaksListItem::compare(QListViewItem * i, int col, bool ascending) const; ++ int compare(QListViewItem * i, int col, bool ascending) const; + + }; + +--- orsa-0.7.0.orig/src/libxorsa/xorsa_import_astorb_objects.h ++++ orsa-0.7.0/src/libxorsa/xorsa_import_astorb_objects.h +@@ -600,7 +600,7 @@ + inline XOrsaAstorbObjectItem(QListView *parent, QString label1, QString label2 = QString::null, QString label3 = QString::null, QString label4 = QString::null, QString label5 = QString::null, QString label6 = QString::null, QString label7 = QString::null, QString label8 = QString::null) : QListViewItem(parent, label1, label2, label3, label4, label5, label6, label7, label8) { }; + + public: +- inline int XOrsaAstorbObjectItem::compare(QListViewItem *i, int col, bool ascending) const { ++ inline int compare(QListViewItem *i, int col, bool ascending) const { + + using std::atof; + + diff --git a/academic/orsa/slack-desc b/academic/orsa/slack-desc new file mode 100644 index 0000000000..55f7bd09a6 --- /dev/null +++ b/academic/orsa/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler-------------------------------------------------------| +orsa: ORSA (Orbit Reconstruction, Simulation and Analysis) +orsa: +orsa: ORSA is an interactive tool for scientific grade Celestial +orsa: Mechanics computations. Asteroids, comets, artificial satellites, +orsa: Solar and extra-Solar planetary systems can be accurately +orsa: reproduced, simulated, and analyzed. +orsa: +orsa: HomePage: http://orsa.sourceforge.net +orsa: +orsa: +orsa: |