Bug#916971: gmsh: diff for NMU version 3.0.6+dfsg1-4.1

Gilles Filippini pini at debian.org
Sun Dec 30 11:15:11 GMT 2018


Control: tags 916971 + pending

Dear maintainer,

I've prepared an NMU for gmsh (versioned as 3.0.6+dfsg1-4.1) and
uploaded it to DELAYED/7. Please feel free to tell me if I
should delay it longer.

Regards,

_g.


diff -Nru gmsh-3.0.6+dfsg1/debian/changelog gmsh-3.0.6+dfsg1/debian/changelog
--- gmsh-3.0.6+dfsg1/debian/changelog	2018-12-03 01:47:52.000000000 +0100
+++ gmsh-3.0.6+dfsg1/debian/changelog	2018-12-30 10:09:26.000000000 +0100
@@ -1,3 +1,11 @@
+gmsh (3.0.6+dfsg1-4.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * New patch support-med-4.patch to fix FTBFS against med-fichier 4.0.0
+    (Closes: #916971)
+
+ -- Gilles Filippini <pini at debian.org>  Sun, 30 Dec 2018 10:09:26 +0100
+
 gmsh (3.0.6+dfsg1-4) unstable; urgency=medium
    [ Joost van Zwieten ]
diff -Nru gmsh-3.0.6+dfsg1/debian/patches/series gmsh-3.0.6+dfsg1/debian/patches/series
--- gmsh-3.0.6+dfsg1/debian/patches/series	2018-12-03 01:47:52.000000000 +0100
+++ gmsh-3.0.6+dfsg1/debian/patches/series	2018-12-24 09:28:43.000000000 +0100
@@ -3,3 +3,4 @@
 30_delete_gl2ps_from_source.patch
 40_gnuinstalldirs.patch
 140_drop_css.patch
+support-med-4.patch
diff -Nru gmsh-3.0.6+dfsg1/debian/patches/support-med-4.patch gmsh-3.0.6+dfsg1/debian/patches/support-med-4.patch
--- gmsh-3.0.6+dfsg1/debian/patches/support-med-4.patch	1970-01-01 01:00:00.000000000 +0100
+++ gmsh-3.0.6+dfsg1/debian/patches/support-med-4.patch	2018-12-24 09:28:43.000000000 +0100
@@ -0,0 +1,386 @@
+Index: gmsh-3.0.6+dfsg1/Geo/GModelIO_MED.cpp
+===================================================================
+--- gmsh-3.0.6+dfsg1.orig/Geo/GModelIO_MED.cpp
++++ gmsh-3.0.6+dfsg1/Geo/GModelIO_MED.cpp
+@@ -29,7 +29,7 @@ extern "C" {
+ #include <med.h>
+ }
+ +-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+ // To avoid too many ifdefs below we use defines for the bits of the
+ // API that did not change too much between MED2 and MED3. If we remove
+ // MED2 support at some point, please remove these defines and replace
+@@ -69,7 +69,7 @@ med_geometrie_element msh2medElementType
+   case MSH_HEX_20: return MED_HEXA20;
+   case MSH_PRI_15: return MED_PENTA15;
+   case MSH_PYR_13: return MED_PYRA13;
+-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+   case MSH_QUA_9: return MED_QUAD9;
+   case MSH_HEX_27: return MED_HEXA27;
+ #endif
+@@ -95,7 +95,7 @@ int med2mshElementType(med_geometrie_ele
+   case MED_HEXA20: return MSH_HEX_20;
+   case MED_PENTA15: return MSH_PRI_15;
+   case MED_PYRA13: return MSH_PYR_13;
+-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+   case MED_QUAD9: return MSH_QUA_9;
+   case MED_HEXA27: return MSH_HEX_27;
+ #endif
+@@ -113,7 +113,7 @@ int med2mshNodeIndex(med_geometrie_eleme
+   case MED_TRIA6:
+   case MED_QUAD4:
+   case MED_QUAD8:
+-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+   case MED_QUAD9:
+ #endif
+     return k; // same node numbering as in Gmsh
+@@ -133,7 +133,7 @@ int med2mshNodeIndex(med_geometrie_eleme
+     static const int map[20] = {0,1,3,2,4,5,6,7,8,9,10,11,16,17,18,19,12,13,14,15};
+     return map[k];
+   }
+-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+   case MED_HEXA27: {
+     static const int map[27] = {0,1,3,2,4,5,6,7,8,9,10,11,16,17,18,19,12,13,14,15,
+                                 20, 22, 21, 23, 24, 25, 26};
+@@ -185,7 +185,7 @@ int GModel::readMED(const std::string &n
+     char meshName[MED_TAILLE_NOM + 1], meshDesc[MED_TAILLE_DESC + 1];
+     med_int spaceDim;
+     med_maillage meshType;
+-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+     med_int meshDim, nStep;
+     char dtUnit[MED_SNAME_SIZE + 1];
+     char axisName[3 * MED_SNAME_SIZE + 1], axisUnit[3 * MED_SNAME_SIZE + 1];
+@@ -241,7 +241,7 @@ int GModel::readMED(const std::string &n
+   char meshName[MED_TAILLE_NOM + 1], meshDesc[MED_TAILLE_DESC + 1];
+   med_int spaceDim, nStep = 1;
+   med_maillage meshType;
+-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+   med_int meshDim;
+   char dtUnit[MED_SNAME_SIZE + 1];
+   char axisName[3 * MED_SNAME_SIZE + 1], axisUnit[3 * MED_SNAME_SIZE + 1];
+@@ -276,7 +276,7 @@ int GModel::readMED(const std::string &n
+   MEDversionLire(fid, &vf[0], &vf[1], &vf[2]);
+ +   // read nodes
+-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+   med_bool changeOfCoord, geoTransform;
+   med_int numNodes = MEDmeshnEntity(fid, meshName, MED_NO_DT, MED_NO_IT, MED_NODE,
+                                     MED_NO_GEOTYPE, MED_COORDINATE, MED_NO_CMODE,
+@@ -295,7 +295,7 @@ int GModel::readMED(const std::string &n
+   }
+   std::vector<MVertex*> verts(numNodes);
+   std::vector<med_float> coord(spaceDim * numNodes);
+-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+   if(MEDmeshNodeCoordinateRd(fid, meshName, MED_NO_DT, MED_NO_IT, MED_FULL_INTERLACE,
+                              &coord[0]) < 0){
+ #else
+@@ -310,7 +310,7 @@ int GModel::readMED(const std::string &n
+   }
+ +   std::vector<med_int> nodeTags(numNodes);
+-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+   if(MEDmeshEntityNumberRd(fid, meshName, MED_NO_DT, MED_NO_IT, MED_NODE,
+                            MED_NO_GEOTYPE, &nodeTags[0]) < 0)
+ #else
+@@ -328,7 +328,7 @@ int GModel::readMED(const std::string &n
+   for(int mshType = 0; mshType < MSH_NUM_TYPE; mshType++){
+     med_geometrie_element type = msh2medElementType(mshType);
+     if(type == MED_NONE) continue;
+-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+     med_bool changeOfCoord;
+     med_bool geoTransform;
+     med_int numEle = MEDmeshnEntity(fid, meshName, MED_NO_DT, MED_NO_IT, MED_CELL,
+@@ -340,7 +340,7 @@ int GModel::readMED(const std::string &n
+     if(numEle <= 0) continue;
+     int numNodPerEle = type % 100;
+     std::vector<med_int> conn(numEle * numNodPerEle);
+-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+     if(MEDmeshElementConnectivityRd(fid, meshName, MED_NO_DT, MED_NO_IT, MED_CELL,
+                                     type, MED_NODAL, MED_FULL_INTERLACE, &conn[0]) < 0){
+ #else
+@@ -351,7 +351,7 @@ int GModel::readMED(const std::string &n
+       return 0;
+     }
+     std::vector<med_int> fam(numEle, 0);
+-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+     if(MEDmeshEntityFamilyNumberRd(fid, meshName, MED_NO_DT, MED_NO_IT, MED_CELL,
+                                    type, &fam[0]) < 0){
+ #else
+@@ -360,7 +360,7 @@ int GModel::readMED(const std::string &n
+       Msg::Info("No family number for elements: using 0 as default family number");
+     }
+     std::vector<med_int> eleTags(numEle);
+-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+     if(MEDmeshEntityNumberRd(fid, meshName, MED_NO_DT, MED_NO_IT, MED_CELL,
+                              type, &eleTags[0]) < 0)
+ #else
+@@ -391,7 +391,7 @@ int GModel::readMED(const std::string &n
+     return 0;
+   }
+   for(int i = 0; i < numFamilies; i++){
+-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+     med_int numAttrib = (vf[0] == 2) ? MEDnFamily23Attribute(fid, meshName, i + 1) : 0;
+     med_int numGroups = MEDnFamilyGroup(fid, meshName, i + 1);
+ #else
+@@ -408,7 +408,7 @@ int GModel::readMED(const std::string &n
+     std::vector<char> groupNames(MED_TAILLE_LNOM * numGroups + 1);
+     char familyName[MED_TAILLE_NOM + 1];
+     med_int familyNum;
+-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+     if(vf[0] == 2){ // MED2 file
+       if(MEDfamily23Info(fid, meshName, i + 1, familyName, &attribId[0],
+                          &attribVal[0], &attribDes[0], &familyNum,
+@@ -459,7 +459,7 @@ int GModel::readMED(const std::string &n
+   }
+ +   // check if we need to read some post-processing data later
+-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+   bool postpro = (MEDnField(fid) > 0) ? true : false;
+ #else
+   bool postpro = (MEDnChamp(fid, 0) > 0) ? true : false;
+@@ -496,7 +496,7 @@ static void writeElementsMED(med_idt &fi
+                              std::vector<med_int> &fam, med_geometrie_element type)
+ {
+   if(fam.empty()) return;
+-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+   if(MEDmeshElementWr(fid, meshName, MED_NO_DT, MED_NO_IT, 0., MED_CELL, type,
+                       MED_NODAL, MED_FULL_INTERLACE, (med_int)fam.size(),
+                       &conn[0], MED_FALSE, 0, MED_FALSE, 0, MED_TRUE, &fam[0]) < 0)
+@@ -526,7 +526,7 @@ int GModel::writeMED(const std::string &
+   char *meshName = (char*)strMeshName.c_str();
+ +   // Gmsh always writes 3D unstructured meshes
+-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+   char dtUnit[MED_SNAME_SIZE + 1] = "";
+   char axisName[3 * MED_SNAME_SIZE + 1] = "";
+   char axisUnit[3 * MED_SNAME_SIZE + 1] = "";
+@@ -557,7 +557,7 @@ int GModel::writeMED(const std::string &
+   // write the families
+   {
+     // always create a "0" family, with no groups or attributes
+-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+     if(MEDfamilyCr(fid, meshName, "F_0", 0, 0, "") < 0)
+ #else
+     if(MEDfamCr(fid, meshName, (char*)"F_0", 0, 0, 0, 0, 0, 0, 0) < 0)
+@@ -586,7 +586,7 @@ int GModel::writeMED(const std::string &
+             groupName += tmp;
+           groupName.resize((j + 1) * MED_TAILLE_LNOM, ' ');
+         }
+-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+         if(MEDfamilyCr(fid, meshName, familyName.c_str(),
+                        (med_int)num, (med_int)entities[i]->physicals.size(),
+                        groupName.c_str()) < 0)
+@@ -619,7 +619,7 @@ int GModel::writeMED(const std::string &
+       Msg::Error("No nodes to write in MED mesh");
+       return 0;
+     }
+-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+     if(MEDmeshNodeWr(fid, meshName, MED_NO_DT, MED_NO_IT, 0., MED_FULL_INTERLACE,
+                      (med_int)fam.size(), &coord[0], MED_FALSE, "", MED_FALSE, 0,
+                      MED_TRUE, &fam[0]) < 0)
+Index: gmsh-3.0.6+dfsg1/Post/PViewDataGModelIO.cpp
+===================================================================
+--- gmsh-3.0.6+dfsg1.orig/Post/PViewDataGModelIO.cpp
++++ gmsh-3.0.6+dfsg1/Post/PViewDataGModelIO.cpp
+@@ -365,7 +365,7 @@ extern "C" {
+ #include <med.h>
+ }
+ +-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+ // To avoid too many ifdefs below we use defines for the bits of the
+ // API that did not change too much between MED2 and MED3. If we
+ // remove MED2 support at some point, please remove these defines and
+@@ -394,7 +394,7 @@ std::vector<std::string> medGetFieldName
+ {
+   std::vector<std::string> fieldNames;
+ +-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+   med_idt fid = MEDfileOpen(fileName.c_str(), MED_ACC_RDONLY);
+ #else
+   med_idt fid = MEDouvrir((char*)fileName.c_str(), MED_LECTURE);
+@@ -404,7 +404,7 @@ std::vector<std::string> medGetFieldName
+     return fieldNames;
+   }
+ +-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+   med_int numFields = MEDnField(fid);
+ #else
+   med_int numFields = MEDnChamp(fid, 0);
+@@ -424,7 +424,7 @@ std::vector<std::string> medGetFieldName
+     std::vector<char> compUnit(numComp * MED_TAILLE_PNOM + 1);
+     med_int numSteps = 0;
+     med_type_champ type;
+-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+     med_bool localMesh;
+     if(MEDfieldInfo(fid, index + 1, name, meshName, &localMesh, &type,
+                     &compName[0], &compUnit[0], dtUnit, &numSteps) < 0){
+@@ -438,7 +438,7 @@ std::vector<std::string> medGetFieldName
+     fieldNames.push_back(name);
+   }
+ +-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+   if(MEDfileClose(fid) < 0){
+ #else
+   if(MEDfermer(fid) < 0){
+@@ -468,7 +468,7 @@ bool PViewDataGModel::readMED(const std:
+   std::vector<char> compUnit(numComp * MED_TAILLE_PNOM + 1);
+   med_int numSteps = 0;
+   med_type_champ type;
+-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+   med_bool localMesh;
+   if(MEDfieldInfo(fid, fileIndex + 1, name, meshName, &localMesh, &type,
+                   &compName[0], &compUnit[0], dtUnit, &numSteps) < 0){
+@@ -498,7 +498,7 @@ bool PViewDataGModel::readMED(const std:
+   // with which we implicitly index them in GModel::readMED)
+   const med_entite_maillage entType[] =
+     {MED_NOEUD, MED_MAILLE, MED_NOEUD_MAILLE};
+-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+   const med_geometrie_element eleType[] =
+     {MED_NONE, MED_SEG2, MED_TRIA3, MED_QUAD4, MED_TETRA4, MED_HEXA8,
+      MED_PENTA6, MED_PYRA5, MED_SEG3, MED_TRIA6, MED_QUAD9, MED_TETRA10,
+@@ -518,7 +518,7 @@ bool PViewDataGModel::readMED(const std:
+   for(unsigned int i = 0; i < sizeof(entType) / sizeof(entType[0]); i++){
+     for(unsigned int j = 0; j < sizeof(eleType) / sizeof(eleType[0]); j++){
+       if((!i && !j) || j){
+-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+         med_int n = numSteps;
+ #else
+         med_int n = MEDnPasdetemps(fid, name, entType[i], eleType[j]);
+@@ -551,7 +551,7 @@ bool PViewDataGModel::readMED(const std:
+       med_geometrie_element ele = eleType[pairs[pair].second];
+       med_int numdt, numit, ngauss;
+       med_float dt;
+-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+       if(MEDfieldComputingStepInfo(fid, name, step + 1, &numdt, &numit, &dt) < 0){
+ #else
+       char dtunit[MED_TAILLE_PNOM + 1];
+@@ -584,7 +584,7 @@ bool PViewDataGModel::readMED(const std:
+       // get number of values in the field (numVal takes the number of
+       // Gauss points or the number of nodes per element into account,
+       // but not the number of components)
+-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+       med_int profileSize;
+       med_int numVal = MEDfieldnValueWithProfile(fid, name, numdt, numit, ent, ele,
+                                                  1, MED_COMPACT_STMODE, profileName,
+@@ -610,7 +610,7 @@ bool PViewDataGModel::readMED(const std:
+ +       // read field data
+       std::vector<double> val(numVal * numComp);
+-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+       if(MEDfieldValueWithProfileRd(fid, name, numdt, numit, ent, ele, MED_COMPACT_STMODE,
+                                     profileName, MED_FULL_INTERLACE, MED_ALL_CONSTITUENT,
+                                     (unsigned char*)&val[0]) < 0){
+@@ -641,7 +641,7 @@ bool PViewDataGModel::readMED(const std:
+           std::vector<med_float> refcoo((ele % 100) * dim);
+           std::vector<med_float> gscoo(ngauss * dim);
+           std::vector<med_float> wg(ngauss);
+-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+           if(MEDlocalizationRd(fid, locName, MED_FULL_INTERLACE, &refcoo[0],
+                                &gscoo[0], &wg[0]) < 0){
+ #else
+@@ -667,7 +667,7 @@ bool PViewDataGModel::readMED(const std:
+         if(n > 0){
+           Msg::Debug("MED has full profile");
+           profile.resize(n);
+-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+           if(MEDprofileRd(fid, profileName, &profile[0]) < 0){
+ #else
+           if(MEDprofilLire(fid, &profile[0], profileName) < 0){
+@@ -686,7 +686,7 @@ bool PViewDataGModel::readMED(const std:
+ +       // get size of full array and tags (if any) of entities
+       bool nodal = (ent == MED_NOEUD);
+-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+       med_bool changeOfCoord;
+       med_bool geoTransform;
+       med_int numEnt = MEDmeshnEntity(fid, meshName, MED_NO_DT, MED_NO_IT,
+@@ -702,7 +702,7 @@ bool PViewDataGModel::readMED(const std:
+                                   nodal ? (med_connectivite)0 : MED_NOD);
+ #endif
+       std::vector<med_int> tags(numEnt);
+-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+       if(MEDmeshEntityNumberRd(fid, meshName, MED_NO_DT, MED_NO_IT,
+                                nodal ? MED_NODE : MED_CELL,
+                                nodal ? MED_NO_GEOTYPE : ele, &tags[0]) < 0)
+@@ -723,7 +723,7 @@ bool PViewDataGModel::readMED(const std:
+         }
+         else{
+           for(int i = 1; i < pairs[pair].second; i++){
+-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+             med_int n = MEDmeshnEntity(fid, meshName, MED_NO_DT, MED_NO_IT,
+                                        MED_CELL, eleType[i], MED_CONNECTIVITY,
+                                        MED_NODAL, &changeOfCoord, &geoTransform);
+@@ -820,7 +820,7 @@ bool PViewDataGModel::writeMED(const std
+     return false;
+   }
+ +-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+   if(MEDprofileWr(fid, profileName, (med_int)profile.size(), &profile[0]) < 0){
+ #else
+   if(MEDprofilEcr(fid, &profile[0], (med_int)profile.size(), profileName) < 0){
+@@ -830,7 +830,7 @@ bool PViewDataGModel::writeMED(const std
+   }
+ +   int numComp = _steps[0]->getNumComponents();
+-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+   if(MEDfieldCr(fid, (char*)fieldName.c_str(), MED_FLOAT64, (med_int)numComp,
+                 "unknown", "unknown", "unknown", (char*)meshName.c_str()) < 0){
+ #else
+@@ -842,7 +842,7 @@ bool PViewDataGModel::writeMED(const std
+     return false;
+   }
+ +-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+   med_bool changeOfCoord, geoTransform;
+   med_int numNodes = MEDmeshnEntity(fid, (char*)meshName.c_str(),
+                                     MED_NO_DT, MED_NO_IT, MED_NODE,
+@@ -869,7 +869,7 @@ bool PViewDataGModel::writeMED(const std
+     for(unsigned int i = 0; i < profile.size(); i++)
+       for(int k = 0; k < numComp; k++)
+         val[i * numComp + k] = _steps[step]->getData(indices[i])[k];
+-#if (MED_MAJOR_NUM == 3)
++#if (MED_MAJOR_NUM >= 3)
+     if(MEDfieldValueWithProfileWr(fid, (char*)fieldName.c_str(), (med_int)(step + 1),
+                                   MED_NO_IT,
+                                   time, MED_NODE, MED_NO_GEOTYPE, MED_COMPACT_STMODE,

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://alioth-lists.debian.net/pipermail/debian-science-maintainers/attachments/20181230/aabc3369/attachment.sig>


More information about the debian-science-maintainers mailing list