Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package tenmon for openSUSE:Factory checked 
in at 2026-10-28 17:48:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/tenmon (Old)
 and      /work/SRC/openSUSE:Factory/.tenmon.new.2252680 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "tenmon"

Wed Oct 28 17:48:55 2026 rev:16 rq:1393369 version:20261023

Changes:
--------
--- /work/SRC/openSUSE:Factory/tenmon/tenmon.changes    2026-10-05 
16:18:41.829450996 +0200
+++ /work/SRC/openSUSE:Factory/.tenmon.new.2252680/tenmon.changes       
2026-10-28 17:49:02.775336104 +0100
@@ -1,0 +2,13 @@
+Wed Oct 28 08:04:44 UTC 2026 - Paolo Stivanin <[email protected]>
+
+- Require libXISF >= 0.2.14+git1.fa35ae2 (XISFModify::removeProperty
+  is needed since 20261023)
+
+-------------------------------------------------------------------
+Wed Oct 28 07:32:44 UTC 2026 - Paolo Stivanin <[email protected]>
+
+- Update to 20261023:
+  * LibXISF fix to support files from upcoming PixInsight
+  * Support for XISF formalized AstrometricSolution
+
+-------------------------------------------------------------------

Old:
----
  tenmon-20260913.tar.gz

New:
----
  tenmon-20261023.tar.gz

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

Other differences:
------------------
++++++ tenmon.spec ++++++
--- /var/tmp/diff_new_pack.4vIpcW/_old  2026-10-28 17:49:03.492366101 +0100
+++ /var/tmp/diff_new_pack.4vIpcW/_new  2026-10-28 17:49:03.493366142 +0100
@@ -21,7 +21,7 @@
 %endif
 
 Name:           tenmon
-Version:        20260913
+Version:        20261023
 Release:        0
 Summary:        FITS and XISF image viewer, converter and indexer
 License:        GPL-3.0-or-later
@@ -32,7 +32,7 @@
 # PATCH-FIX-UPSTREAM
 Patch1:         fix-libxisf-include.patch
 BuildRequires:  gcc%{?force_gcc_version}-c++ >= 12
-BuildRequires:  libXISF-devel >= 0.2.13+git5.7b70b6a
+BuildRequires:  libXISF-devel >= 0.2.14+git1.fa35ae2
 BuildRequires:  libzstd-devel
 BuildRequires:  pkgconfig
 BuildRequires:  qt6-base-devel >= 6.2.0

++++++ tenmon-20260913.tar.gz -> tenmon-20261023.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tenmon/space.nouspiro.tenmon.metainfo.xml 
new/tenmon/space.nouspiro.tenmon.metainfo.xml
--- old/tenmon/space.nouspiro.tenmon.metainfo.xml       2026-09-13 
15:55:12.000000000 +0200
+++ new/tenmon/space.nouspiro.tenmon.metainfo.xml       2026-10-23 
20:01:12.000000000 +0200
@@ -60,6 +60,14 @@
     </screenshots>
     <content_rating type="oars-1.1"/>
     <releases>
+    <release version="20261023" date="2026-10-23">
+      <description>
+        <ul>
+          <li>LibXISF fix to support files from upcoming PixInsight</li>
+          <li>Support for XISF formalized AstrometricSolution</li>
+        </ul>
+      </description>
+    </release>
     <release version="20260913" date="2026-09-13">
       <description>
         <ul>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tenmon/src/loadimage.cpp new/tenmon/src/loadimage.cpp
--- old/tenmon/src/loadimage.cpp        2026-09-13 15:55:12.000000000 +0200
+++ new/tenmon/src/loadimage.cpp        2026-10-23 20:01:12.000000000 +0200
@@ -248,41 +248,44 @@
         for(auto prop : imageproperties)
         {
             info.fitsHeader.append(prop);
-            if(prop.id == 
"PCL:AstrometricSolution:ReferenceCelestialCoordinates" && prop.value.type() == 
LibXISF::Variant::Type::F64Vector)
+            if((prop.id == 
"PCL:AstrometricSolution:ReferenceCelestialCoordinates" || prop.id == 
"AstrometricSolution:ReferenceCelestialCoordinates")
+                && prop.value.type() == LibXISF::Variant::Type::F64Vector)
             {
                 auto val = prop.value.value<LibXISF::F64Vector>();
                 if(val.size() >= 2)
                 {
-                    xisfWCS.append({"CRVAL1", val[0], "value from 
PCL:AstrometricSolution"});
-                    xisfWCS.append({"CRVAL2", val[1], "value from 
PCL:AstrometricSolution"});
+                    xisfWCS.append({"CRVAL1", val[0], "value from 
AstrometricSolution"});
+                    xisfWCS.append({"CRVAL2", val[1], "value from 
AstrometricSolution"});
                 }
             }
-            else if(prop.id == 
"PCL:AstrometricSolution:ReferenceImageCoordinates" && prop.value.type() == 
LibXISF::Variant::Type::F64Vector)
+            else if((prop.id == 
"PCL:AstrometricSolution:ReferenceImageCoordinates" || prop.id == 
"AstrometricSolution:ReferenceImageCoordinates")
+                    && prop.value.type() == LibXISF::Variant::Type::F64Vector)
             {
                 auto val = prop.value.value<LibXISF::F64Vector>();
                 if(val.size() >= 2)
                 {
-                    xisfWCS.append({"CRPIX1", val[0], "value from 
PCL:AstrometricSolution"});
-                    xisfWCS.append({"CRPIX2", val[1], "value from 
PCL:AstrometricSolution"});
+                    xisfWCS.append({"CRPIX1", val[0], "value from 
AstrometricSolution"});
+                    xisfWCS.append({"CRPIX2", val[1], "value from 
AstrometricSolution"});
                 }
             }
-            else if(prop.id == 
"PCL:AstrometricSolution:LinearTransformationMatrix" && prop.value.type() == 
LibXISF::Variant::Type::F64Matrix)
+            else if((prop.id == 
"PCL:AstrometricSolution:LinearTransformationMatrix" || prop.id == 
"AstrometricSolution:LinearTransformationMatrix")
+                    && prop.value.type() == LibXISF::Variant::Type::F64Matrix)
             {
                 auto val = prop.value.value<LibXISF::F64Matrix>();
                 if(val.cols() >= 2 && val.rows() >= 2)
                 {
-                    xisfWCS.append({"CD1_1", val(0, 0), "value from 
PCL:AstrometricSolution"});
-                    xisfWCS.append({"CD1_2", val(0, 1), "value from 
PCL:AstrometricSolution"});
-                    xisfWCS.append({"CD2_1", val(1, 0), "value from 
PCL:AstrometricSolution"});
-                    xisfWCS.append({"CD2_2", val(1, 1), "value from 
PCL:AstrometricSolution"});
+                    xisfWCS.append({"CD1_1", val(0, 0), "value from 
AstrometricSolution"});
+                    xisfWCS.append({"CD1_2", val(0, 1), "value from 
AstrometricSolution"});
+                    xisfWCS.append({"CD2_1", val(1, 0), "value from 
AstrometricSolution"});
+                    xisfWCS.append({"CD2_2", val(1, 1), "value from 
AstrometricSolution"});
                 }
             }
-            else if(prop.id == "PCL:AstrometricSolution:ProjectionSystem")
+            else if(prop.id == "PCL:AstrometricSolution:ProjectionSystem" || 
prop.id == "AstrometricSolution:ProjectionSystem")
             {
                 if(prop.value.toString() == "Gnomonic")
                 {
-                    xisfWCS.append({"CTYPE1", "RA---TAN", "value from 
PCL:AstrometricSolution"});
-                    xisfWCS.append({"CTYPE", "DEC--TAN", "value from 
PCL:AstrometricSolution"});
+                    xisfWCS.append({"CTYPE1", "RA---TAN", "value from 
AstrometricSolution"});
+                    xisfWCS.append({"CTYPE2", "DEC--TAN", "value from 
AstrometricSolution"});
                 }
             }
         }
@@ -292,9 +295,13 @@
         info.info.append({QObject::tr("Width"), 
QString::number(xisfImage.width())});
         info.info.append({QObject::tr("Height"), 
QString::number(xisfImage.height())});
 
-        auto wcs = std::make_shared<WCSDataT>(xisfImage.width(), 
xisfImage.height(), info.fitsHeader);
-        if(!wcs->valid() && xisfWCS.size())wcs = 
std::make_shared<WCSDataT>(xisfImage.width(), xisfImage.height(), xisfWCS);
-        if(wcs->valid())info.wcs = wcs;
+        std::shared_ptr<WCSDataT> wcs;
+        if(xisfWCS.size())wcs = std::make_shared<WCSDataT>(xisfImage.width(), 
xisfImage.height(), xisfWCS);
+
+        if(!wcs || !wcs->valid())
+            wcs = std::make_shared<WCSDataT>(xisfImage.width(), 
xisfImage.height(), info.fitsHeader);
+
+        if(wcs && wcs->valid())info.wcs = wcs;
 
         RawImage::DataType type;
         switch(xisfImage.sampleFormat())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tenmon/src/scriptengine.cpp 
new/tenmon/src/scriptengine.cpp
--- old/tenmon/src/scriptengine.cpp     2026-09-13 15:55:12.000000000 +0200
+++ new/tenmon/src/scriptengine.cpp     2026-10-23 20:01:12.000000000 +0200
@@ -819,6 +819,9 @@
             for(auto &record : modify->_add)
                 modifyXISF.addFITSKeyword(modify->_imageIdx, 
{record.key.toStdString(), record.value.toString().toStdString(), 
record.comment.toStdString()});
 
+            for(auto &remove : modify->_propertyRemove)
+                modifyXISF.removeProperty(modify->_imageIdx, 
remove.toStdString());
+
             for(auto &property : modify->_property)
                 modifyXISF.updateProperty(modify->_imageIdx, property);
 
@@ -1004,6 +1007,11 @@
     _property.append(LibXISF::Property(id.toStdString(), value));
 }
 
+void FITSRecordModify::removeProperty(const QString &id)
+{
+    _propertyRemove.append(id);
+}
+
 uint32_t FITSRecordModify::imageIndex() const
 {
     return _imageIdx;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tenmon/src/scriptengine.h 
new/tenmon/src/scriptengine.h
--- old/tenmon/src/scriptengine.h       2026-09-13 15:55:12.000000000 +0200
+++ new/tenmon/src/scriptengine.h       2026-10-23 20:01:12.000000000 +0200
@@ -145,6 +145,7 @@
     QVector<FITSRecord> _update;
     QVector<FITSRecord> _add;
     QVector<LibXISF::Property> _property;
+    QVector<QString> _propertyRemove;
     uint32_t _imageIdx = 0;
 
     friend class File;
@@ -155,6 +156,7 @@
     Q_INVOKABLE void addKeyword(const QString &key, const QVariant &value, 
const QString &comment = QString());
     Q_PROPERTY(uint32_t imageIndex READ imageIndex WRITE setImageIndex);
     void updateProperty(const QString &id, const LibXISF::Variant &value);
+    void removeProperty(const QString &id);
     uint32_t imageIndex() const;
     void setImageIndex(uint32_t idx);
 };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tenmon/src/solver.cpp new/tenmon/src/solver.cpp
--- old/tenmon/src/solver.cpp   2026-09-13 15:55:12.000000000 +0200
+++ new/tenmon/src/solver.cpp   2026-10-23 20:01:12.000000000 +0200
@@ -193,11 +193,21 @@
     matrix(1, 0) = std::sin(rotationRad) * cdeltx;
     matrix(1, 1) = std::cos(rotationRad) * cdelty;
 
-    
modify.updateProperty("PCL:AstrometricSolution:ReferenceCelestialCoordinates", 
LibXISF::F64Vector({solution.ra, solution.dec}));
-    modify.updateProperty("PCL:AstrometricSolution:ReferenceImageCoordinates", 
LibXISF::F64Vector({_stats.width / 2.0, _stats.height / 2.0}));
-    
modify.updateProperty("PCL:AstrometricSolution:LinearTransformationMatrix", 
LibXISF::F64Matrix(matrix));
-    modify.updateProperty("PCL:AstrometricSolution:ProjectionSystem", 
LibXISF::String("Gnomonic"));
-    
modify.updateProperty("PCL:AstrometricSolution:ReferenceNativeCoordinates", 
LibXISF::F64Vector({0, 90}));
+    modify.updateProperty("AstrometricSolution:Version", 
LibXISF::String("1.0"));
+    modify.updateProperty("AstrometricSolution:ProjectionSystem", 
LibXISF::String("Gnomonic"));
+    modify.updateProperty("AstrometricSolution:ReferenceCelestialCoordinates", 
LibXISF::F64Vector({solution.ra, solution.dec}));
+    modify.updateProperty("AstrometricSolution:ReferenceImageCoordinates", 
LibXISF::F64Vector({_stats.width / 2.0, _stats.height / 2.0}));
+    modify.updateProperty("AstrometricSolution:LinearTransformationMatrix", 
LibXISF::F64Matrix(matrix));
+    modify.updateProperty("AstrometricSolution:ReferenceNativeCoordinates", 
LibXISF::F64Vector({0, 90}));
+
+    modify.removeProperty("PCL:AstrometricSolution:Version");
+    modify.removeProperty("PCL:AstrometricSolution:ProjectionSystem");
+    
modify.removeProperty("PCL:AstrometricSolution:ReferenceCelestialCoordinates");
+    modify.removeProperty("PCL:AstrometricSolution:ReferenceImageCoordinates");
+    
modify.removeProperty("PCL:AstrometricSolution:LinearTransformationMatrix");
+    
modify.removeProperty("PCL:AstrometricSolution:ReferenceNativeCoordinates");
+    
modify.removeProperty("PCL:AstrometricSolution:CelestialPoleNativeCoordinates");
+    modify.removeProperty("PCL:AstrometricSolution:CelestialReferenceSystem");
 
     bool ret = file.modifyFITSRecords(&modify);
     if(!ret)error = tr("Failed to update file header");

Reply via email to