summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--academic/orsa/README8
-rw-r--r--academic/orsa/orsa.SlackBuild75
-rw-r--r--academic/orsa/orsa.info8
-rw-r--r--academic/orsa/orsa.patch285
-rw-r--r--academic/orsa/slack-desc19
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: