Reported upstream https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2525

--- Modules/Core/Adapters/GdalAdapters/src/otbOGRFieldWrapper.cxx.orig	2025-03-24 10:29:03
+++ Modules/Core/Adapters/GdalAdapters/src/otbOGRFieldWrapper.cxx	2025-11-09 19:32:18
@@ -98,7 +98,7 @@
 /*=================================[ Field ]=================================*/
 /*===========================================================================*/
 
-otb::ogr::Field::Field(otb::ogr::Feature& feature, int index) : m_Definition(*feature.ogr().GetFieldDefnRef(index)), m_Feature(feature.sptr()), m_index(index)
+otb::ogr::Field::Field(otb::ogr::Feature& feature, int index) : m_Definition(const_cast <OGRFieldDefn &> (*feature.ogr().GetFieldDefnRef(index))), m_Feature(feature.sptr()), m_index(index)
 {
   CheckInvariants();
 }
 
--- Modules/Core/Adapters/GdalAdapters/src/otbOGRFeatureWrapper.cxx.orig	2025-03-24 10:29:03
+++ Modules/Core/Adapters/GdalAdapters/src/otbOGRFeatureWrapper.cxx	2025-11-09 19:59:03
@@ -132,7 +132,7 @@
 
 otb::ogr::FieldDefn otb::ogr::Feature::UncheckedGetFieldDefn(int index) const
 {
-  return FieldDefn(*m_Feature->GetFieldDefnRef(index));
+  return FieldDefn(const_cast <OGRFieldDefn &> (*m_Feature->GetFieldDefnRef(index)));
 }
 
 otb::ogr::FieldDefn otb::ogr::Feature::UncheckedGetFieldDefn(std::string const& name) const
@@ -174,7 +174,7 @@
 
 OGRFeatureDefn& otb::ogr::Feature::UncheckedGetDefn() const
 {
-  return *m_Feature->GetDefnRef();
+  return const_cast <OGRFeatureDefn &> (*m_Feature->GetDefnRef());
 }
 
 /*===========================================================================*/
--- Modules/Core/IO/IOGDAL/src/otbOGRIOHelper.cxx.orig	2025-03-24 10:29:03
+++ Modules/Core/IO/IOGDAL/src/otbOGRIOHelper.cxx	2025-11-10 09:14:33
@@ -213,7 +213,7 @@
     {
       if (ogr::IsFieldSetAndNotNull(feature, fieldNum))
       {
-        kwl.AddField(feature->GetFieldDefnRef(fieldNum), feature->GetRawFieldRef(fieldNum));
+        kwl.AddField(const_cast <OGRFieldDefn*> (feature->GetFieldDefnRef(fieldNum)), feature->GetRawFieldRef(fieldNum));
       }
     }
 
@@ -895,7 +895,7 @@
 
       ogrFeature = OGRFeature::CreateFeature(ogrCurrentLayer->GetLayerDefn());
       //      ogrFeature->SetField("Name", dataNode->GetNodeId());
-      ogrFeature->GetDefnRef()->SetGeomType(wkbMultiPoint);
+      const_cast<OGRFeatureDefn*>(ogrFeature->GetDefnRef())->SetGeomType(wkbMultiPoint);
       ogrFeature->SetGeometry(ogrMultiPoint);
 
       if (ogrCurrentLayer->CreateFeature(ogrFeature) != OGRERR_NONE)
@@ -916,7 +916,7 @@
 
       ogrFeature = OGRFeature::CreateFeature(ogrCurrentLayer->GetLayerDefn());
       //      ogrFeature->SetField("Name", dataNode->GetNodeId());
-      ogrFeature->GetDefnRef()->SetGeomType(wkbMultiLineString);
+      const_cast<OGRFeatureDefn*>(ogrFeature->GetDefnRef())->SetGeomType(wkbMultiLineString);
       ogrFeature->SetGeometry(ogrMultiLineString);
 
       if (ogrCurrentLayer->CreateFeature(ogrFeature) != OGRERR_NONE)
@@ -937,12 +937,12 @@
       ogrFeature = OGRFeature::CreateFeature(ogrCurrentLayer->GetLayerDefn());
       //      ogrFeature->SetField("Name", dataNode->GetNodeId());
       #if GDAL_VERSION_NUM >= GDAL_COMPUTE_VERSION(3,9,0)
-        ogrFeature->GetDefnRef()->Unseal(true);
+        const_cast<OGRFeatureDefn*>(ogrFeature->GetDefnRef())->Unseal(true);
       #endif
-      ogrFeature->GetDefnRef()->SetGeomType(wkbMultiPolygon);
+      const_cast<OGRFeatureDefn*>(ogrFeature->GetDefnRef())->SetGeomType(wkbMultiPolygon);
       ogrFeature->SetGeometry(ogrMultiPolygon);
       #if GDAL_VERSION_NUM >= GDAL_COMPUTE_VERSION(3,9,0)
-        ogrFeature->GetDefnRef()->Seal(true);
+        const_cast<OGRFeatureDefn*>(ogrFeature->GetDefnRef())->Seal(true);
       #endif
       if (ogrCurrentLayer->CreateFeature(ogrFeature) != OGRERR_NONE)
       {
@@ -962,7 +962,7 @@
 
       ogrFeature = OGRFeature::CreateFeature(ogrCurrentLayer->GetLayerDefn());
       //      ogrFeature->SetField("Name", dataNode->GetNodeId());
-      ogrFeature->GetDefnRef()->SetGeomType(wkbGeometryCollection);
+      const_cast<OGRFeatureDefn*>(ogrFeature->GetDefnRef())->SetGeomType(wkbGeometryCollection);
       ogrFeature->SetGeometry(ogrCollectionGeometry);
 
       if (ogrCurrentLayer->CreateFeature(ogrFeature) != OGRERR_NONE)
@@ -1226,7 +1226,7 @@
       OGRFeature*    ogrFeature;
 
       ogrFeature = OGRFeature::CreateFeature(ogrCurrentLayer->GetLayerDefn());
-      ogrFeature->GetDefnRef()->SetGeomType(wkbMultiPoint);
+      const_cast<OGRFeatureDefn*>(ogrFeature->GetDefnRef())->SetGeomType(wkbMultiPoint);
       ogrFeature->SetGeometry(ogrMultiPoint);
 
       if (ogrCurrentLayer->CreateFeature(ogrFeature) != OGRERR_NONE)
@@ -1244,7 +1244,7 @@
       OGRFeature* ogrFeature;
 
       ogrFeature = OGRFeature::CreateFeature(ogrCurrentLayer->GetLayerDefn());
-      ogrFeature->GetDefnRef()->SetGeomType(wkbMultiLineString);
+      const_cast<OGRFeatureDefn*>(ogrFeature->GetDefnRef())->SetGeomType(wkbMultiLineString);
       ogrFeature->SetGeometry(ogrMultiLineString);
 
       if (ogrCurrentLayer->CreateFeature(ogrFeature) != OGRERR_NONE)
@@ -1261,7 +1261,7 @@
       OGRFeature*      ogrFeature;
 
       ogrFeature = OGRFeature::CreateFeature(ogrCurrentLayer->GetLayerDefn());
-      ogrFeature->GetDefnRef()->SetGeomType(wkbMultiPolygon);
+      const_cast<OGRFeatureDefn*>(ogrFeature->GetDefnRef())->SetGeomType(wkbMultiPolygon);
       ogrFeature->SetGeometry(ogrMultiPolygon);
 
       if (ogrCurrentLayer->CreateFeature(ogrFeature) != OGRERR_NONE)
@@ -1278,7 +1278,7 @@
       OGRFeature* ogrFeature;
 
       ogrFeature = OGRFeature::CreateFeature(ogrCurrentLayer->GetLayerDefn());
-      ogrFeature->GetDefnRef()->SetGeomType(wkbGeometryCollection);
+      const_cast<OGRFeatureDefn*>(ogrFeature->GetDefnRef())->SetGeomType(wkbGeometryCollection);
       ogrFeature->SetGeometry(ogrCollectionGeometry);
 
       if (ogrCurrentLayer->CreateFeature(ogrFeature) != OGRERR_NONE)
--- Modules/Core/IO/IOGDAL/src/otbOGRVectorDataIO.cxx.orig	2025-03-24 10:29:03
+++ Modules/Core/IO/IOGDAL/src/otbOGRVectorDataIO.cxx	2025-11-10 09:24:13
@@ -102,7 +102,7 @@
   DataTreePointerType tree = data->GetDataTree();
   DataNodePointerType root = tree->GetRoot()->Get();
 
-  OGRSpatialReference* oSRS = nullptr;
+  const OGRSpatialReference* oSRS = nullptr;
   // We take the assumption that the spatial reference is common to all layers
   oSRS = m_DataSource->GetLayer(0)->GetSpatialRef();
 
--- Modules/Core/IO/TestKernel/src/otbTestHelper.cxx.orig	2025-03-24 10:29:03
+++ Modules/Core/IO/TestKernel/src/otbTestHelper.cxx	2025-11-10 09:26:36
@@ -2002,7 +2002,7 @@
   {
     for (int iField = 0; iField < feature->GetFieldCount(); iField++)
     {
-      OGRFieldDefn* poFDefn = feature->GetDefnRef()->GetFieldDefn(iField);
+      OGRFieldDefn* poFDefn = const_cast<OGRFieldDefn*>(feature->GetDefnRef()->GetFieldDefn(iField));
 
       fprintf(fpOut, "  %s (%s) = ", poFDefn->GetNameRef(), OGRFieldDefn::GetFieldTypeName(poFDefn->GetType()));
 
