kstars: 3.4.3 -> 3.5.0

This commit is contained in:
Hunter Jones 2020-12-25 15:53:24 -06:00
parent 17646687c6
commit 7d42517d83
3 changed files with 70 additions and 57 deletions

View File

@ -9,20 +9,23 @@
eigen, zlib, eigen, zlib,
cfitsio, indilib, xplanet, libnova, libraw, gsl, wcslib cfitsio, indilib, xplanet, libnova, libraw, gsl, wcslib, stellarsolver
}: }:
mkDerivation rec { mkDerivation rec {
pname = "kstars"; pname = "kstars";
version = "3.4.3"; version = "3.5.0";
src = fetchurl { src = fetchurl {
url = "https://mirrors.mit.edu/kde/stable/kstars/kstars-${version}.tar.xz"; url = "mirror://kde/stable/kstars/kstars-${version}.tar.xz";
sha256 = "0j5yxg6ay6sic194skz6vjzg6yvrpb3gvypvs0frjrcjbsl1j4f8"; sha256 = "0fpkm75abn0hhdhfyvpfl6n0fr7gvw63xhb4hvwdrglhkf2nxam1";
}; };
patches = [ patches = [
./indi-fix.patch # Patches ksutils.cpp to use nix store prefixes to find program binaries of
# indilib and xplanet dependencies. Without the patch, Ekos is unable to spawn
# indi servers for local telescope/camera control.
./fs-fixes.patch
]; ];
nativeBuildInputs = [ extra-cmake-modules kdoctools ]; nativeBuildInputs = [ extra-cmake-modules kdoctools ];
@ -34,11 +37,12 @@ mkDerivation rec {
eigen zlib eigen zlib
cfitsio indilib xplanet libnova libraw gsl wcslib cfitsio indilib xplanet libnova libraw gsl wcslib stellarsolver
]; ];
cmakeFlags = [ cmakeFlags = [
"-DINDI_NIX_ROOT=${indilib}" "-DINDI_NIX_ROOT=${indilib}"
"-DXPLANET_NIX_ROOT=${xplanet}"
]; ];
meta = with lib; { meta = with lib; {
@ -51,6 +55,6 @@ mkDerivation rec {
''; '';
license = licenses.gpl2; license = licenses.gpl2;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = with maintainers; [ timput ]; maintainers = with maintainers; [ timput hjones2199 ];
}; };
} }

View File

@ -0,0 +1,59 @@
--- kstars-3.5.0/CMakeLists.txt.old 2020-11-24 12:36:37.967433937 -0600
+++ kstars-3.5.0/CMakeLists.txt 2020-11-24 13:36:56.275263691 -0600
@@ -5,6 +5,9 @@
set (KSTARS_BUILD_RELEASE "Stable")
set (CMAKE_CXX_STANDARD 11)
+add_definitions(-DINDI_NIX_ROOT=${INDI_NIX_ROOT})
+add_definitions(-DXPLANET_NIX_ROOT=${XPLANET_NIX_ROOT})
+
# Build KStars Lite with -DBUILD_KSTARS_LITE=ON
option(BUILD_KSTARS_LITE "Build KStars Lite" OFF)
--- kstars-3.5.0/kstars/auxiliary/ksutils.old.cpp 2020-11-24 12:22:14.397319680 -0600
+++ kstars-3.5.0/kstars/auxiliary/ksutils.cpp 2020-11-24 13:32:22.946477798 -0600
@@ -1081,6 +1081,10 @@
// We support running within Snaps, Flatpaks, and AppImage
// The path should accomodate the differences between the different
// packaging solutions
+ #define STR_EXPAND(x) #x
+ #define STR(x) STR_EXPAND(x)
+ QString indi_prefix = QString(STR(INDI_NIX_ROOT));
+ QString xplanet_prefix = QString(STR(XPLANET_NIX_ROOT));
QString snap = QProcessEnvironment::systemEnvironment().value("SNAP");
QString flat = QProcessEnvironment::systemEnvironment().value("FLATPAK_DEST");
QString appimg = QProcessEnvironment::systemEnvironment().value("APPDIR");
@@ -1110,21 +1114,21 @@
#if defined(Q_OS_OSX)
return "/usr/local/bin/indiserver";
#endif
- return prefix + "/bin/indiserver";
+ return indi_prefix + "/bin/indiserver";
}
else if (option == "INDIHubAgent")
{
#if defined(Q_OS_OSX)
return "/usr/local/bin/indihub-agent";
#endif
- return prefix + "/bin/indihub-agent";
+ return indi_prefix + "/bin/indihub-agent";
}
else if (option == "indiDriversDir")
{
#if defined(Q_OS_OSX)
return "/usr/local/share/indi";
#elif defined(Q_OS_LINUX)
- return prefix + "/share/indi";
+ return indi_prefix + "/share/indi";
#else
return QStandardPaths::locate(QStandardPaths::GenericDataLocation, "indi", QStandardPaths::LocateDirectory);
#endif
@@ -1181,7 +1185,7 @@
#if defined(Q_OS_OSX)
return "/usr/local/bin/xplanet";
#endif
- return prefix + "/bin/xplanet";
+ return xplanet_prefix + "/bin/xplanet";
}
else if (option == "ASTAP")
{

View File

@ -1,50 +0,0 @@
--- CMakeLists.txt 2020-11-02 13:58:06.119743710 -0600
+++ kstars-3.4.3/CMakeLists.txt 2020-11-02 14:05:01.707799274 -0600
@@ -4,5 +4,7 @@
set (KStars_VERSION_REVISION 3)
set (CMAKE_CXX_STANDARD 11)
+add_definitions(-DINDI_NIX_ROOT=${INDI_NIX_ROOT})
+
# Build KStars Lite with -DBUILD_KSTARS_LITE=ON
option(BUILD_KSTARS_LITE "Build KStars Lite" OFF)
--- ksutils.cpp 2020-11-02 13:47:44.883596916 -0600
+++ kstars-3.4.3/kstars/auxiliary/ksutils.cpp 2020-11-02 17:41:44.961937090 -0600
@@ -1076,6 +1076,9 @@
{
QString snap = QProcessEnvironment::systemEnvironment().value("SNAP");
QString flat = QProcessEnvironment::systemEnvironment().value("FLATPAK_DEST");
+#define STR_EXPAND(x) #x
+#define STR(x) STR_EXPAND(x)
+ QString nix = QString(STR(INDI_NIX_ROOT));
if (option == "fitsDir")
{
@@ -1089,7 +1091,7 @@
if (flat.isEmpty() == false)
return flat + "/bin/indiserver";
else
- return snap + "/usr/bin/indiserver";
+ return nix + "/bin/indiserver";
}
else if (option == "INDIHubAgent")
{
@@ -1099,7 +1101,7 @@
if (flat.isEmpty() == false)
return flat + "/bin/indihub-agent";
else
- return snap + "/usr/bin/indihub-agent";
+ return nix + "/bin/indihub-agent";
}
else if (option == "indiDriversDir")
{
@@ -1109,7 +1111,7 @@
if (flat.isEmpty() == false)
return flat + "/share/indi";
else
- return snap + "/usr/share/indi";
+ return nix + "/share/indi";
#else
return QStandardPaths::locate(QStandardPaths::GenericDataLocation, "indi", QStandardPaths::LocateDirectory);
#endif