--- 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 #include #include #include --- orsa-0.7.0.orig/src/liborsa/orsa_units.h +++ orsa-0.7.0/src/liborsa/orsa_units.h @@ -28,6 +28,7 @@ #include #include #include +#include #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 +#include #include #include --- 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 +#include #include 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 +#include #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;