summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sci-astronomy/stellarium')
-rw-r--r--sci-astronomy/stellarium/files/stellarium-0.22.1-fix-conv.patch23
-rw-r--r--sci-astronomy/stellarium/files/stellarium-0.22.1-fix-test-x86.patch93
-rw-r--r--sci-astronomy/stellarium/stellarium-0.22.1-r1.ebuild148
3 files changed, 264 insertions, 0 deletions
diff --git a/sci-astronomy/stellarium/files/stellarium-0.22.1-fix-conv.patch b/sci-astronomy/stellarium/files/stellarium-0.22.1-fix-conv.patch
new file mode 100644
index 000000000000..5187837fbb61
--- /dev/null
+++ b/sci-astronomy/stellarium/files/stellarium-0.22.1-fix-conv.patch
@@ -0,0 +1,23 @@
+From dd65fdf5a332d62834ac1cfe9639e220ea635c55 Mon Sep 17 00:00:00 2001
+From: "Alexander V. Wolf" <alex.v.wolf@gmail.com>
+Date: Wed, 25 May 2022 20:55:15 +0700
+Subject: [PATCH] Fixed conversion tool radToHms(): avoiding possible negative
+ zero for value of seconds (see #2460)
+
+---
+ src/core/StelUtils.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/core/StelUtils.cpp b/src/core/StelUtils.cpp
+index 93a55ebb957..b03f55a68ec 100644
+--- a/src/core/StelUtils.cpp
++++ b/src/core/StelUtils.cpp
+@@ -140,7 +140,7 @@ void radToHms(double angle, unsigned int& h, unsigned int& m, double& s)
+
+ h = static_cast<unsigned int>(angle);
+ m = static_cast<unsigned int>((angle-h)*60);
+- s = (angle-h)*3600.-60.*m;
++ s = qAbs((angle-h)*3600.-60.*m);
+ }
+
+ /*************************************************************************
diff --git a/sci-astronomy/stellarium/files/stellarium-0.22.1-fix-test-x86.patch b/sci-astronomy/stellarium/files/stellarium-0.22.1-fix-test-x86.patch
new file mode 100644
index 000000000000..784b388b2534
--- /dev/null
+++ b/sci-astronomy/stellarium/files/stellarium-0.22.1-fix-test-x86.patch
@@ -0,0 +1,93 @@
+From 802065e025c8b435dc39b4fdd9262efdc1dcd2a8 Mon Sep 17 00:00:00 2001
+From: "Alexander V. Wolf" <alex.v.wolf@gmail.com>
+Date: Tue, 24 May 2022 14:47:50 +0700
+Subject: [PATCH] Fixed something strange in radToHMSStr and radToHMSStrAdapt
+ convertors
+
+probably ancient bug (?), maybe related to issue #2460
+---
+ src/core/StelUtils.cpp | 6 +++---
+ src/tests/testConversions.cpp | 16 ++++++----------
+ 2 files changed, 9 insertions(+), 13 deletions(-)
+
+diff --git a/src/core/StelUtils.cpp b/src/core/StelUtils.cpp
+index 521d538315e..93a55ebb957 100644
+--- a/src/core/StelUtils.cpp
++++ b/src/core/StelUtils.cpp
+@@ -225,9 +225,9 @@ QString radToHmsStr(const double angle, const bool decimal)
+ {
+ unsigned int h,m;
+ double s;
+- StelUtils::radToHms(angle+0.005*M_PI/12/(60*60), h, m, s);
++ StelUtils::radToHms(angle, h, m, s);
+ int width, precision;
+- QString carry, r;
++ QString carry;
+ if (decimal)
+ {
+ width=5;
+@@ -268,7 +268,7 @@ QString radToDmsStrAdapt(const double angle, const bool useD)
+ bool sign;
+ unsigned int d,m;
+ double s;
+- StelUtils::radToDms(angle+0.005*M_PI/180/(60*60)*(angle<0?-1.:1.), sign, d, m, s); // NOTE: WTF???
++ StelUtils::radToDms(angle, sign, d, m, s);
+ QString str;
+ QTextStream os(&str);
+
+diff --git a/src/tests/testConversions.cpp b/src/tests/testConversions.cpp
+index a37db14307c..6e8a4c6f04c 100644
+--- a/src/tests/testConversions.cpp
++++ b/src/tests/testConversions.cpp
+@@ -248,12 +248,12 @@ void TestConversions::testRadToDMSStrAdapt()
+ data << 61*M_PI/360 << "+30°30'" << false;
+ data << M_PI/648000 << "+0°0'1\"" << false;
+ data << 1213*M_PI/2400 << "+90°58'30\"" << false;
+- data << 39599*M_PI/648000 << "+10°59'59\"" << false;
++ data << 39599*M_PI/648000 << "+10°59'59.00\"" << false;
+ data << -M_PI/36 << "-5°" << false;
+ data << -7*M_PI/8 << "-157°30'" << false;
+ data << -2*M_PI/5 << "-72°" << false;
+ data << -M_PI << "-180°" << false;
+- data << -10*M_PI/648 << "-2°46'40\"" << false;
++ data << -10*M_PI/648 << "-2°46'40.00\"" << false;
+
+ data << 0. << "+0d" << true;
+ data << M_PI/6 << "+30d" << true;
+@@ -268,12 +268,12 @@ void TestConversions::testRadToDMSStrAdapt()
+ data << 61*M_PI/360 << "+30d30'" << true;
+ data << M_PI/648000 << "+0d0'1\"" << true;
+ data << 1213*M_PI/2400 << "+90d58'30\"" << true;
+- data << 39599*M_PI/648000 << "+10d59'59\"" << true;
++ data << 39599*M_PI/648000 << "+10d59'59.00\"" << true;
+ data << -M_PI/36 << "-5d" << true;
+ data << -7*M_PI/8 << "-157d30'" << true;
+ data << -2*M_PI/5 << "-72d" << true;
+ data << -M_PI << "-180d" << true;
+- data << -10*M_PI/648 << "-2d46'40\"" << true;
++ data << -10*M_PI/648 << "-2d46'40.00\"" << true;
+
+ while (data.count()>=3)
+ {
+@@ -282,9 +282,7 @@ void TestConversions::testRadToDMSStrAdapt()
+ bool flag = data.takeFirst().toBool();
+ QString rdms = StelUtils::radToDmsStrAdapt(rad, flag);
+ QVERIFY2(rdms==edms, qPrintable(QString("%1 radians = %2 (expected %3) [flag: %4]")
+- .arg(QString::number(rad, 'f', 5))
+- .arg(rdms)
+- .arg(edms)
++ .arg(QString::number(rad, 'f', 5), rdms, edms)
+ .arg(flag)));
+ }
+ }
+@@ -381,9 +379,7 @@ void TestConversions::testRadToDMSStr()
+ bool useDF = data.takeFirst().toBool();
+ QString rdms = StelUtils::radToDmsStr(rad, decimalF, useDF);
+ QVERIFY2(rdms==edms, qPrintable(QString("%1 radians = %2 (expected %3) [flags: %4, %5]")
+- .arg(QString::number(rad, 'f', 5))
+- .arg(rdms)
+- .arg(edms)
++ .arg(QString::number(rad, 'f', 5), rdms, edms)
+ .arg(decimalF)
+ .arg(useDF)));
+ }
diff --git a/sci-astronomy/stellarium/stellarium-0.22.1-r1.ebuild b/sci-astronomy/stellarium/stellarium-0.22.1-r1.ebuild
new file mode 100644
index 000000000000..1a50f8899404
--- /dev/null
+++ b/sci-astronomy/stellarium/stellarium-0.22.1-r1.ebuild
@@ -0,0 +1,148 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..10} )
+inherit cmake desktop flag-o-matic python-any-r1 xdg virtualx
+
+DESCRIPTION="3D photo-realistic skies in real time"
+HOMEPAGE="https://stellarium.org/"
+MY_DSO_VERSION="3.15"
+SRC_URI="
+ https://github.com/Stellarium/stellarium/releases/download/v${PV}/${P}.tar.gz
+ deep-sky? (
+ https://github.com/Stellarium/stellarium-data/releases/download/dso-${MY_DSO_VERSION}/catalog-${MY_DSO_VERSION}.dat -> ${PN}-dso-catalog-${MY_DSO_VERSION}.dat
+ )
+ doc? (
+ https://github.com/Stellarium/stellarium/releases/download/v${PV}/stellarium_user_guide-${PV}-1.pdf
+ )
+ stars? (
+ https://github.com/Stellarium/stellarium-data/releases/download/stars-2.0/stars_4_1v0_2.cat
+ https://github.com/Stellarium/stellarium-data/releases/download/stars-2.0/stars_5_2v0_1.cat
+ https://github.com/Stellarium/stellarium-data/releases/download/stars-2.0/stars_6_2v0_1.cat
+ https://github.com/Stellarium/stellarium-data/releases/download/stars-2.0/stars_7_2v0_1.cat
+ https://github.com/Stellarium/stellarium-data/releases/download/stars-2.0/stars_8_2v0_1.cat
+ )"
+
+LICENSE="GPL-2+ SGI-B-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~riscv ~x86"
+IUSE="debug deep-sky doc gps media nls stars telescope test webengine"
+
+# Python interpreter is used while building RemoteControl plugin
+BDEPEND="
+ ${PYTHON_DEPS}
+ doc? ( app-doc/doxygen[dot] )
+ nls? ( dev-qt/linguist-tools:5 )
+"
+RDEPEND="
+ dev-libs/qtcompress:=
+ dev-qt/qtcharts:5
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qtnetwork:5
+ dev-qt/qtopengl:5
+ dev-qt/qtprintsupport:5
+ dev-qt/qtscript:5
+ dev-qt/qtwidgets:5
+ media-fonts/dejavu
+ sys-libs/zlib
+ virtual/opengl
+ gps? (
+ dev-qt/qtpositioning:5
+ dev-qt/qtserialport:5
+ sci-geosciences/gpsd:=[cxx]
+ )
+ media? ( dev-qt/qtmultimedia:5[widgets] )
+ telescope? (
+ dev-qt/qtserialport:5
+ sci-libs/indilib:=
+ )
+ webengine? ( dev-qt/qtwebengine:5[widgets] )
+"
+DEPEND="${RDEPEND}
+ dev-qt/qtconcurrent:5
+ test? ( dev-qt/qttest:5 )
+"
+
+RESTRICT="!test? ( test )"
+
+PATCHES=(
+ "${FILESDIR}/stellarium-0.20.3-unbundle-indi.patch"
+ "${FILESDIR}/stellarium-0.20.3-unbundle-zlib.patch"
+ "${FILESDIR}/stellarium-0.22.1-fix-star-manager-segfault.patch"
+ "${FILESDIR}/stellarium-0.22.1-unbundle-qtcompress.patch"
+ "${FILESDIR}/stellarium-0.22.1-fix-test-x86.patch"
+ "${FILESDIR}/stellarium-0.22.1-fix-conv.patch"
+)
+
+src_prepare() {
+ cmake_src_prepare
+ use debug || append-cppflags -DQT_NO_DEBUG #415769
+
+ # Several libraries are bundled, remove them.
+ rm -r src/external/{libindi,qtcompress,zlib}/ || die
+
+ # qcustomplot can't be easily unbundled because it uses qcustomplot 1
+ # while we have qcustomplot 2 in tree which changed API a bit
+ # Also the license of the external qcustomplot is incompatible with stellarium
+
+ # for glues_stel aka libtess I couldn't find an upstream with the same API
+
+ # unbundling of qxlsx depends on https://github.com/QtExcel/QXlsx/pull/185
+
+ local remaining="$(cd src/external/ && echo */)"
+ if [[ "${remaining}" != "glues_stel/ qcustomplot/ qxlsx/" ]]; then
+ eqawarn "Need to unbundle more deps: ${remaining}"
+ fi
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DENABLE_GPS="$(usex gps)"
+ -DENABLE_MEDIA="$(usex media)"
+ -DENABLE_NLS="$(usex nls)"
+ -DENABLE_TESTING="$(usex test)"
+ -DUSE_PLUGIN_TELESCOPECONTROL="$(usex telescope)"
+ $(cmake_use_find_package webengine Qt5WebEngine)
+ $(cmake_use_find_package webengine Qt5WebEngineWidgets)
+ )
+ cmake_src_configure
+}
+
+src_test() {
+ virtx cmake_src_test
+}
+
+src_compile() {
+ cmake_src_compile
+
+ if use doc ; then
+ cmake_build apidoc
+ fi
+}
+
+src_install() {
+ if use doc ; then
+ local HTML_DOCS=( "${BUILD_DIR}/doc/html/." )
+ dodoc "${DISTDIR}/stellarium_user_guide-${PV}-1.pdf"
+ fi
+ cmake_src_install
+
+ # use the more up-to-date system fonts
+ rm "${ED}"/usr/share/stellarium/data/DejaVuSans{Mono,}.ttf || die
+ dosym ../../fonts/dejavu/DejaVuSans.ttf /usr/share/stellarium/data/DejaVuSans.ttf
+ dosym ../../fonts/dejavu/DejaVuSansMono.ttf /usr/share/stellarium/data/DejaVuSansMono.ttf
+
+ if use stars ; then
+ insinto /usr/share/${PN}/stars/default
+ doins "${DISTDIR}"/stars_4_1v0_2.cat
+ doins "${DISTDIR}"/stars_{5,6,7,8}_2v0_1.cat
+ fi
+ if use deep-sky ; then
+ insinto /usr/share/${PN}/nebulae/default
+ newins "${DISTDIR}/${PN}-dso-catalog-${MY_DSO_VERSION}.dat" catalog.dat
+ fi
+ newicon doc/images/stellarium-logo.png ${PN}.png
+}