Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libindi for openSUSE:Factory checked 
in at 2022-08-24 15:11:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libindi (Old)
 and      /work/SRC/openSUSE:Factory/.libindi.new.2083 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libindi"

Wed Aug 24 15:11:31 2022 rev:55 rq:998962 version:1.9.7

Changes:
--------
--- /work/SRC/openSUSE:Factory/libindi/libindi.changes  2022-08-11 
18:32:49.678242935 +0200
+++ /work/SRC/openSUSE:Factory/.libindi.new.2083/libindi.changes        
2022-08-24 15:11:53.608546802 +0200
@@ -1,0 +2,12 @@
+Wed Aug 17 06:07:40 UTC 2022 - Paolo Stivanin <i...@paolostivanin.com>
+
+- Add fix-cfitsio.patch: FITS files produced by INDI are invalid because there 
is extra data at the end of the file.
+  Many software only read the first HDU are not affected, but other reject the 
file.
+- Add fix-pegasus.patch: Corrections for Pegasus Falcon Rotator.
+
+-------------------------------------------------------------------
+Sun Aug 14 15:42:23 UTC 2022 - Paolo Stivanin <i...@paolostivanin.com>
+
+- Add add-hem27.patch: add support for iOptron HEM27 mount.
+
+-------------------------------------------------------------------

New:
----
  add-hem27.patch
  fix-cfitsio.patch
  fix-pegasus.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libindi.spec ++++++
--- /var/tmp/diff_new_pack.Sx3opo/_old  2022-08-24 15:11:54.164547338 +0200
+++ /var/tmp/diff_new_pack.Sx3opo/_new  2022-08-24 15:11:54.172547346 +0200
@@ -30,6 +30,12 @@
 Patch0:         fix-ioptron-timeout.patch
 # PATCH-FIX-UPSTREAM 
https://github.com/indilib/indi/commit/b717412dc649dfb2505d08931bd9efbfc04b8ff9
 Patch1:         fix-ioptron-meridian.patch
+# PATCH-FIX-UPSTREAM 
https://github.com/indilib/indi/commit/31176693ca947fe620bf1fb5a11180d70268c301
+Patch2:         add-hem27.patch
+# PATCH-FIX-UPSTREAM 
https://github.com/indilib/indi/commit/aabf47cf79bb603cc30a0b1ce3ae4bac81fff4cc
+Patch3:         fix-cfitsio.patch
+# PATCH-FIX-UPSTREAM 
https://github.com/indilib/indi/commit/4ed6ad8ef3c5e2bb97ba6c16c0d368d476b4862d
+Patch4:         fix-pegasus.patch
 BuildRequires:  cmake
 BuildRequires:  gcc-c++
 BuildRequires:  libboost_system-devel

++++++ add-hem27.patch ++++++
>From 31176693ca947fe620bf1fb5a11180d70268c301 Mon Sep 17 00:00:00 2001
From: Jasem Mutlaq <mutla...@ikarustech.com>
Date: Fri, 12 Aug 2022 05:31:57 +0300
Subject: [PATCH] Add HEM27 alias

---
 drivers.xml | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers.xml b/drivers.xml
index b6a71503e..e5f6da62f 100644
--- a/drivers.xml
+++ b/drivers.xml
@@ -169,6 +169,10 @@
             <driver name="iOptronV3">indi_ioptronv3_telescope</driver>
             <version>1.6</version>
         </device>
+        <device label="iOptron HEM27" manufacturer="iOptron">
+            <driver name="iOptronV3">indi_ioptronv3_telescope</driver>
+            <version>1.6</version>
+        </device>
         <device label="iOptron CEM40" manufacturer="iOptron">
             <driver name="iOptronV3">indi_ioptronv3_telescope</driver>
             <version>1.6</version>


++++++ fix-cfitsio.patch ++++++
>From 0fbc934a362f77a4d89f7147a04cb97671dae57f Mon Sep 17 00:00:00 2001
From: Ludovic P <plu...@nnx.com>
Date: Mon, 15 Aug 2022 00:41:05 +0200
Subject: [PATCH 1/2] Don't tell cfitsio about preallocated buffers

---
 libs/indibase/indiccdchip.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libs/indibase/indiccdchip.cpp b/libs/indibase/indiccdchip.cpp
index 6c001a6d8f..03e9b9aa0a 100644
--- a/libs/indibase/indiccdchip.cpp
+++ b/libs/indibase/indiccdchip.cpp
@@ -39,8 +39,8 @@ CCDChip::~CCDChip()
 
 bool CCDChip::openFITSFile(uint32_t size, int &status)
 {
-    m_FITSMemorySize = size;
-    m_FITSMemoryBlock = IDSharedBlobAlloc(m_FITSMemorySize);
+    m_FITSMemorySize = size > 2880 ? 2880 : size;
+    m_FITSMemoryBlock = IDSharedBlobAlloc(size);
     if (m_FITSMemoryBlock == nullptr)
     {
         IDLog("Failed to allocate memory for FITS file.");

>From 7dcac52aa5a5c27fcfb001ee8ab162a2506e703e Mon Sep 17 00:00:00 2001
From: Ludovic P <plu...@nnx.com>
Date: Mon, 15 Aug 2022 01:27:01 +0200
Subject: [PATCH 2/2] Workaround for cfitsio doing realloc memory after
 flush...

---
 libs/indibase/indiccd.cpp     |  3 +--
 libs/indibase/indiccdchip.cpp | 20 ++++++++++++++++----
 libs/indibase/indiccdchip.h   | 10 ++++++++--
 3 files changed, 25 insertions(+), 8 deletions(-)

diff --git a/libs/indibase/indiccd.cpp b/libs/indibase/indiccd.cpp
index 06c26cd86d..39c82b9575 100644
--- a/libs/indibase/indiccd.cpp
+++ b/libs/indibase/indiccd.cpp
@@ -2282,8 +2282,7 @@ bool CCD::ExposureCompletePrivate(CCDChip * targetChip)
             addFITSKeywords(targetChip);
 
             fits_write_img(fptr, byte_type, 1, nelements, 
targetChip->getFrameBuffer(), &status);
-            fits_flush_file(fptr, &status);
-
+            targetChip->finishFITSFile(status);
             if (status)
             {
                 fits_report_error(stderr, status); /* print out any error 
messages */
diff --git a/libs/indibase/indiccdchip.cpp b/libs/indibase/indiccdchip.cpp
index 03e9b9aa0a..fd90926cfb 100644
--- a/libs/indibase/indiccdchip.cpp
+++ b/libs/indibase/indiccdchip.cpp
@@ -58,14 +58,26 @@ bool CCDChip::openFITSFile(uint32_t size, int &status)
     return (status == 0);
 }
 
-bool CCDChip::closeFITSFile()
+bool CCDChip::finishFITSFile(int &status)
 {
-    int status = 0;
+    fits_flush_file(m_FITSFilePointer, &status);
     fits_close_file(m_FITSFilePointer, &status);
-    m_FITSFilePointer = nullptr;
+    if (status == 0) {
+        m_FITSFilePointer = nullptr;
+    }
+    return (status == 0);
+}
+
+void CCDChip::closeFITSFile()
+{
+    if (m_FITSFilePointer != nullptr) {
+        int status = 0;
+        // Discard error here, the caller can't expect a valid file anymore at 
that point
+        fits_close_file(m_FITSFilePointer, &status);
+        m_FITSFilePointer = nullptr;
+    }
     IDSharedBlobFree(m_FITSMemoryBlock);
     m_FITSMemoryBlock = nullptr;
-    return (status == 0);
 }
 
 void CCDChip::setFrameType(CCD_FRAME type)
diff --git a/libs/indibase/indiccdchip.h b/libs/indibase/indiccdchip.h
index f4a79fe974..8a39e5753d 100644
--- a/libs/indibase/indiccdchip.h
+++ b/libs/indibase/indiccdchip.h
@@ -57,11 +57,17 @@ class CCDChip
          */
         bool openFITSFile(uint32_t size, int &status);
 
+
         /**
-         * @brief closeFITSFile Close the in-memory FITS File.
+         * @brief Finish any pending write to fits file.
          * @return True if successful, false otherwise.
          */
-        bool closeFITSFile();
+        bool finishFITSFile(int &status);
+
+        /**
+         * @brief closeFITSFile Close the in-memory FITS File.
+         */
+        void closeFITSFile();
 
         /**
          * @brief getXRes Get the horizontal resolution in pixels of the CCD 
Chip.

++++++ fix-pegasus.patch ++++++
>From 4ed6ad8ef3c5e2bb97ba6c16c0d368d476b4862d Mon Sep 17 00:00:00 2001
From: escribana <escri...@bluewin.ch>
Date: Mon, 15 Aug 2022 17:42:00 +0200
Subject: [PATCH] Corrections for Pegasus Falcon Rotator: (#1721)

---
 drivers/rotator/pegasus_falcon.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/rotator/pegasus_falcon.cpp 
b/drivers/rotator/pegasus_falcon.cpp
index c78f0e8fdf..4bb787f60c 100644
--- a/drivers/rotator/pegasus_falcon.cpp
+++ b/drivers/rotator/pegasus_falcon.cpp
@@ -191,15 +191,15 @@ bool PegasusFalcon::AbortRotator()
 }
 
 //////////////////////////////////////////////////////////////////////
-///
+/// Command for reverse action ("FN:0" disabled, "FN:1" enabled)
 //////////////////////////////////////////////////////////////////////
 bool PegasusFalcon::ReverseRotator(bool enabled)
 {
     char cmd[DRIVER_LEN] = {0}, res[DRIVER_LEN] = {0};
-    snprintf(cmd, DRIVER_LEN, "FR:%d", enabled ? 1 : 0);
+    snprintf(cmd, DRIVER_LEN, "FN:%d", enabled ? 1 : 0);
     if (sendCommand(cmd, res))
     {
-        return (!strcmp(res, cmd));
+        return (!strncmp(res, cmd, 4)); //Restrict length to 4 chars!
     }
 
     return false;

Reply via email to