[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Ball fails its autopkgtest - how to properly deal with sip files?



Étienne Mollier, on 2021-12-14:
> However, once the sip file is caught, the package fails to build
> from source due to various errors in the generated code.  The
> patch also addresses one of them in its second hunk.  I think I
> was stuck on some "overrides" related errors, but they were
> interleaved within sip output, I can send a proper log later
> this week after an overnight build if needed.

I forgot I had one other patch to address PyString issues, part
of the ftbfs.  And also forgot to mention that I had to enforce
-DSIP_LIBRARIES=/usr/lib/python3/dist-packages from the cmake
call in d/rules.

In hope this helps,
-- 
Étienne Mollier <emollier@emlwks999.eu>
Fingerprint:  8f91 b227 c7d6 f2b1 948c  8236 793c f67e 8f0d 11da
Sent from /dev/pts/1, please excuse my verbosity.
--- ball.orig/source/PYTHON/pyCAPIKernel.C
+++ ball/source/PYTHON/pyCAPIKernel.C
@@ -78,14 +78,14 @@
 		if(type)
 		{
 			auto name  = PyObject_GetAttrString(type, "__name__");
-			auto sname = name ? PyString_AsString(name) : nullptr;
+			auto sname = name ? PyBytes_AsString(name) : nullptr;
 			if(sname)  err << sname << ": ";
 			Py_DecRef(name);
 			Py_DecRef(type);
 		}
 
 		// error message
-		auto svalue = value ? PyString_AsString(value) : nullptr;
+		auto svalue = value ? PyBytes_AsString(value) : nullptr;
 		err << (svalue ? svalue : "(no error message given)");
 		Py_DecRef(value);
 
@@ -121,7 +121,7 @@
 		auto cio = PyObject_GetAttrString(main_module_, "__BALL_CIO");
 		auto cio_val = PyObject_GetAttrString(cio, "getvalue");
 		auto cio_f = PyObject_CallFunction(cio_val, nullptr);
-		auto ret = std::make_pair<bool, string>(true, PyString_AsString(cio_f));
+		auto ret = std::make_pair<bool, string>(true, PyBytes_AsString(cio_f));
 		Py_DecRef(cio_f);
 		Py_DecRef(cio_val);
 		Py_DecRef(cio);
@@ -177,7 +177,7 @@
 
 		for (const auto& pair: args)
 		{
-			auto val = PyString_FromString(pair.second.c_str());
+			auto val = PyBytes_FromString(pair.second.c_str());
 			if (!val)
 			{
 				Log.error() << "[PyInterpreter] Could not create parameter "
@@ -217,7 +217,7 @@
 			return nullptr;
 		}
 
-		auto mod_name = PyString_FromString(name.c_str());
+		auto mod_name = PyBytes_FromString(name.c_str());
 
 		PyObject* module = nullptr;
 		if (PyDict_Contains(module_dict, mod_name))
--- ball.orig/source/PYTHON/EXTENSIONS/BALL/PDBAtom.sip
+++ ball/source/PYTHON/EXTENSIONS/BALL/PDBAtom.sip
@@ -48,7 +48,7 @@
 	virtual bool isValid() const throw();
 	SIP_PYOBJECT __str__();
 %MethodCode
-	sipRes = PyString_FromString(String(String("PDBAtom ") + sipCpp->getName()
+	sipRes = PyBytes_FromString(String(String("PDBAtom ") + sipCpp->getName()
 		+ " { " + sipCpp->getElement().getSymbol() + " @ ("
 		+ String(sipCpp->getPosition().x) + " " + String(sipCpp->getPosition().y) + " "
 		+ String(sipCpp->getPosition().z) + " }").c_str());
--- ball.orig/source/PYTHON/EXTENSIONS/BALL/angle.sip
+++ ball/source/PYTHON/EXTENSIONS/BALL/angle.sip
@@ -46,6 +46,6 @@
 
 	SIP_PYOBJECT __str__();
 %MethodCode
-	sipRes = PyString_FromString(String(sipCpp->toRadian()).c_str());
+	sipRes = PyBytes_FromString(String(sipCpp->toRadian()).c_str());
 %End
 };
--- ball.orig/source/PYTHON/EXTENSIONS/BALL/atom.sip
+++ ball/source/PYTHON/EXTENSIONS/BALL/atom.sip
@@ -23,12 +23,12 @@
 
 	SIP_PYOBJECT __str__();
 %MethodCode
-	sipRes = PyString_FromString(String(*sipCpp).c_str());
+	sipRes = PyBytes_FromString(String(*sipCpp).c_str());
 %End
 
 	SIP_PYOBJECT __repr__();
 %MethodCode
-	sipRes = PyString_FromString(String(*sipCpp).c_str());
+	sipRes = PyBytes_FromString(String(*sipCpp).c_str());
 %End
 };
 
@@ -148,7 +148,7 @@
 	// convert the atom to a string representation
 	SIP_PYOBJECT __str__();
 %MethodCode
-	sipRes = PyString_FromString(String(String("Atom ") + sipCpp->getName()
+	sipRes = PyBytes_FromString(String(String("Atom ") + sipCpp->getName()
 		+ " { " + sipCpp->getElement().getSymbol() + " @ ("
 		+ String(sipCpp->getPosition().x) + " " + String(sipCpp->getPosition().y) + " "
 		+ String(sipCpp->getPosition().z) + ") }").c_str());
@@ -156,7 +156,7 @@
 
 	SIP_PYOBJECT __repr__();
 %MethodCode
-	sipRes = PyString_FromString(String(String("Atom ") + sipCpp->getName()
+	sipRes = PyBytes_FromString(String(String("Atom ") + sipCpp->getName()
 		+ " { " + sipCpp->getElement().getSymbol() + " @ ("
 		+ String(sipCpp->getPosition().x) + " " + String(sipCpp->getPosition().y) + " "
 		+ String(sipCpp->getPosition().z) + " }").c_str());
--- ball.orig/source/PYTHON/EXTENSIONS/BALL/atomContainer.sip
+++ ball/source/PYTHON/EXTENSIONS/BALL/atomContainer.sip
@@ -69,7 +69,7 @@
 
 	SIP_PYOBJECT __str__();
 %MethodCode
-	sipRes = PyString_FromString(String(String("AtomContainer ") + sipCpp->getName()
+	sipRes = PyBytes_FromString(String(String("AtomContainer ") + sipCpp->getName()
 		+ " { " + String(sipCpp->countAtoms()) + " atoms }").c_str());
 %End
 };
--- ball.orig/source/PYTHON/EXTENSIONS/BALL/bond.sip
+++ ball/source/PYTHON/EXTENSIONS/BALL/bond.sip
@@ -103,6 +103,6 @@
 		}
 		tmp += " }";
 	}
-	return PyString_FromString(tmp.c_str());
+	return PyBytes_FromString(tmp.c_str());
 %End
 };
--- ball.orig/source/PYTHON/EXTENSIONS/BALL/box3.sip
+++ ball/source/PYTHON/EXTENSIONS/BALL/box3.sip
@@ -29,6 +29,6 @@
 	tmp += String(sipCpp->getPoint().x) + " ";
 	tmp += String(sipCpp->getPoint().y) + " ";
 	tmp += String(sipCpp->getPoint().z) + ") }";
-	sipRes = PyString_FromString(tmp.c_str());
+	sipRes = PyBytes_FromString(tmp.c_str());
 %End
 };
--- ball.orig/source/PYTHON/EXTENSIONS/BALL/chain.sip
+++ ball/source/PYTHON/EXTENSIONS/BALL/chain.sip
@@ -44,7 +44,7 @@
 
 	SIP_PYOBJECT __str__();
 %MethodCode
-	sipRes = PyString_FromString(String(String("Chain ") + sipCpp->getName()
+	sipRes = PyBytes_FromString(String(String("Chain ") + sipCpp->getName()
 						+ " { " + String(sipCpp->countResidues()) + " residues }").c_str());
 %End
 
--- ball.orig/source/PYTHON/EXTENSIONS/BALL/file.sip
+++ ball/source/PYTHON/EXTENSIONS/BALL/file.sip
@@ -66,7 +66,7 @@
 		case (int)std::ios::in: 		mode_string = "std::ios::in"; break;
 		default:										mode_string = "";
 	}
-	sipRes = PyString_FromString(mode_string);
+	sipRes = PyBytes_FromString(mode_string);
 %End
 
 %ConvertToTypeCode
--- ball.orig/source/PYTHON/EXTENSIONS/BALL/fragment.sip
+++ ball/source/PYTHON/EXTENSIONS/BALL/fragment.sip
@@ -18,7 +18,7 @@
 
 	SIP_PYOBJECT __str__();
 %MethodCode
-	sipRes = PyString_FromString(String(String("Fragment ") + sipCpp->getName()
+	sipRes = PyBytes_FromString(String(String("Fragment ") + sipCpp->getName()
 		+ " { " + String(sipCpp->countAtoms()) + " atoms }").c_str());
 %End
 };
--- ball.orig/source/PYTHON/EXTENSIONS/BALL/molecule.sip
+++ ball/source/PYTHON/EXTENSIONS/BALL/molecule.sip
@@ -40,7 +40,7 @@
 
 	SIP_PYOBJECT __repr__();
 %MethodCode
-	sipRes = PyString_FromString(String(String("Molecule ") + sipCpp->getName()
+	sipRes = PyBytes_FromString(String(String("Molecule ") + sipCpp->getName()
 		+ " { " + String(sipCpp->countAtoms()) + " atoms }").c_str());
 %End
 };
--- ball.orig/source/PYTHON/EXTENSIONS/BALL/nucleicAcid.sip
+++ ball/source/PYTHON/EXTENSIONS/BALL/nucleicAcid.sip
@@ -27,14 +27,14 @@
 
 	SIP_PYOBJECT __str__();
 %MethodCode
-	sipRes = PyString_FromString(String(String("NucleicAcid ") + sipCpp->getName()
+	sipRes = PyBytes_FromString(String(String("NucleicAcid ") + sipCpp->getName()
 		+ " { " + String(sipCpp->countNucleotides()) + " nucleotides,  "
 		+ String(sipCpp->countAtoms()) + " atoms }").c_str());
 %End
 
 	SIP_PYOBJECT __repr__();
 %MethodCode
-	sipRes = PyString_FromString(String(String("NucleicAcid ") + sipCpp->getName()
+	sipRes = PyBytes_FromString(String(String("NucleicAcid ") + sipCpp->getName()
 		+ " { " + String(sipCpp->countNucleotides()) + " nucleotides,  "
 		+ String(sipCpp->countAtoms()) + " atoms }").c_str());
 %End
--- ball.orig/source/PYTHON/EXTENSIONS/BALL/options.sip
+++ ball/source/PYTHON/EXTENSIONS/BALL/options.sip
@@ -38,7 +38,7 @@
 
 	SIP_PYOBJECT __str__();
 %MethodCode
-	sipRes = PyString_FromString(String(String("Options ") + sipCpp->getName()
+	sipRes = PyBytes_FromString(String(String("Options ") + sipCpp->getName()
 		+ " { " + String(sipCpp->getSize()) + " entries }").c_str());
 %End
 };
--- ball.orig/source/PYTHON/EXTENSIONS/BALL/peptideBuilder.sip
+++ ball/source/PYTHON/EXTENSIONS/BALL/peptideBuilder.sip
@@ -22,7 +22,7 @@
 
 	SIP_PYOBJECT __str__();
 %MethodCode
-	sipRes = PyString_FromString((String("{ ") + sipCpp->getType() + " " +
+	sipRes = PyBytes_FromString((String("{ ") + sipCpp->getType() + " " +
 		String(sipCpp->getPhi().toDegree()) + " " +
 		String(sipCpp->getPsi().toDegree()) + " " +
 		String(sipCpp->getOmega().toDegree()) + " }").c_str());
--- ball.orig/source/PYTHON/EXTENSIONS/BALL/property.sip
+++ ball/source/PYTHON/EXTENSIONS/BALL/property.sip
@@ -25,7 +25,7 @@
 %MethodCode
 	if(sipCpp == 0)
 	{
-		sipRes = PyString_FromString("");
+		sipRes = PyBytes_FromString("");
 	}
 	else
 	{
@@ -60,7 +60,7 @@
 				output += BALL::String("Smart Object, Value: ") + BALL::String((unsigned long) &*sipCpp->getSmartObject());
 				break;
 		}
-		sipRes = PyString_FromString(output.c_str());
+		sipRes = PyBytes_FromString(output.c_str());
 	}
 %End
 };
--- ball.orig/source/PYTHON/EXTENSIONS/BALL/protein.sip
+++ ball/source/PYTHON/EXTENSIONS/BALL/protein.sip
@@ -54,7 +54,7 @@
 
   SIP_PYOBJECT __str__();
 %MethodCode
-	sipRes = PyString_FromString(String(String("Protein ") + sipCpp->getName()
+	sipRes = PyBytes_FromString(String(String("Protein ") + sipCpp->getName()
 		+ " { " + String(sipCpp->countResidues()) + " residues }").c_str());
 %End
 };
--- ball.orig/source/PYTHON/EXTENSIONS/BALL/residue.sip
+++ ball/source/PYTHON/EXTENSIONS/BALL/residue.sip
@@ -67,7 +67,7 @@
 
 	SIP_PYOBJECT __str__();
 %MethodCode
-	sipRes = PyString_FromString(String(String("Residue ") + sipCpp->getName() + sipCpp->getID()
+	sipRes = PyBytes_FromString(String(String("Residue ") + sipCpp->getName() + sipCpp->getID()
 		+ " { " + String(sipCpp->countAtoms()) + " atoms }").c_str());
 %End
 };
--- ball.orig/source/PYTHON/EXTENSIONS/BALL/secondaryStructure.sip
+++ ball/source/PYTHON/EXTENSIONS/BALL/secondaryStructure.sip
@@ -49,13 +49,13 @@
 
 	SIP_PYOBJECT __str__();
 %MethodCode
-	return PyString_FromString(String(String("SecondaryStructure ") + sipCpp->getName()
+	return PyBytes_FromString(String(String("SecondaryStructure ") + sipCpp->getName()
 		+ " { " + String(sipCpp->countResidues()) + " residues }").c_str());
 %End
 
 	SIP_PYOBJECT __repr__();
 %MethodCode
-	return PyString_FromString(String(String("SecondaryStructure ") + sipCpp->getName()
+	return PyBytes_FromString(String(String("SecondaryStructure ") + sipCpp->getName()
 		+ " { " + String(sipCpp->countResidues()) + " residues }").c_str());
 %End
 };
--- ball.orig/source/PYTHON/EXTENSIONS/BALL/simpleBox3.sip
+++ ball/source/PYTHON/EXTENSIONS/BALL/simpleBox3.sip
@@ -40,6 +40,6 @@
 	tmp += String(sipCpp->b.x) + " ";
 	tmp += String(sipCpp->b.y) + " ";
 	tmp += String(sipCpp->b.z) + ") }";
-	sipRes = PyString_FromString(tmp.c_str());
+	sipRes = PyBytes_FromString(tmp.c_str());
 %End
 };
--- ball.orig/source/PYTHON/EXTENSIONS/BALL/string.sip
+++ ball/source/PYTHON/EXTENSIONS/BALL/string.sip
@@ -166,11 +166,11 @@
 %MethodCode
 	if (sipCpp == 0)
 	{
-		sipRes = PyString_FromString("");
+		sipRes = PyBytes_FromString("");
 	}
 	else
 	{
-		sipRes = PyString_FromString(sipCpp->c_str());
+		sipRes = PyBytes_FromString(sipCpp->c_str());
 	}
 %End
 
@@ -178,17 +178,17 @@
 %MethodCode
 	if (sipCpp == 0)
 	{
-		sipRes = PyString_FromString("");
+		sipRes = PyBytes_FromString("");
 	}
 	else
 	{
-		sipRes = PyString_FromString(sipCpp->c_str());
+		sipRes = PyBytes_FromString(sipCpp->c_str());
 	}
 %End
 
 %ConvertToTypeCode
 	if (sipIsErr == NULL)
-		return (PyString_Check(sipPy) || BALL_IS_SUBCLASS_INSTANCE(sipPy, String));
+		return (PyBytes_Check(sipPy) || BALL_IS_SUBCLASS_INSTANCE(sipPy, String));
 
 	if (sipPy == Py_None)
 	{
@@ -196,9 +196,9 @@
 		return 1;
 	}
 
-	if (PyString_Check(sipPy))
+	if (PyBytes_Check(sipPy))
 	{
-		*sipCppPtr = new String(PyString_AS_STRING(sipPy));
+		*sipCppPtr = new String(PyBytes_AS_STRING(sipPy));
 		return 1;
 	}
 
--- ball.orig/source/PYTHON/EXTENSIONS/BALL/system.sip
+++ ball/source/PYTHON/EXTENSIONS/BALL/system.sip
@@ -67,7 +67,7 @@
 
 	SIP_PYOBJECT __str__();
 %MethodCode
-	sipRes = PyString_FromString(String(String("System ") + sipCpp->getName()
+	sipRes = PyBytes_FromString(String(String("System ") + sipCpp->getName()
 		+ " { " + String(sipCpp->countMolecules()) + " molecules,  "
 		+ String(sipCpp->countAtoms()) + " atoms }").c_str());
 %End
--- ball.orig/source/PYTHON/EXTENSIONS/BALL/timeStamp.sip
+++ ball/source/PYTHON/EXTENSIONS/BALL/timeStamp.sip
@@ -30,7 +30,7 @@
 	String usec_str(sipCpp->getMicroSeconds() / 1.0e6);
 	time_str.append(usec_str.after("."));
 
-	sipRes = PyString_FromString(time_str.c_str());
+	sipRes = PyBytes_FromString(time_str.c_str());
 %End
 };
 
@@ -61,6 +61,6 @@
 	String usec_str(sipCpp->getTime().getMicroSeconds() / 1.0e6);
 	time_str.append(usec_str.after("."));
 
-	sipRes = PyString_FromString(time_str.c_str());
+	sipRes = PyBytes_FromString(time_str.c_str());
 %End
 };
--- ball.orig/source/PYTHON/EXTENSIONS/BALL/vector2.sip
+++ ball/source/PYTHON/EXTENSIONS/BALL/vector2.sip
@@ -56,6 +56,6 @@
 	tmp = "(";
 	tmp += String(sipCpp->x) + " ";
 	tmp += String(sipCpp->y) + ")";
-	sipRes = PyString_FromString(tmp.c_str());
+	sipRes = PyBytes_FromString(tmp.c_str());
 %End
 };
--- ball.orig/source/PYTHON/EXTENSIONS/BALL/vector3.sip
+++ ball/source/PYTHON/EXTENSIONS/BALL/vector3.sip
@@ -66,6 +66,6 @@
 	tmp += String(sipCpp->x) + " ";
 	tmp += String(sipCpp->y) + " ";
 	tmp += String(sipCpp->z) + ")";
-	sipRes = PyString_FromString(tmp.c_str());
+	sipRes = PyBytes_FromString(tmp.c_str());
 %End
 };
--- ball.orig/source/PYTHON/EXTENSIONS/BALL/version.sip
+++ ball/source/PYTHON/EXTENSIONS/BALL/version.sip
@@ -21,6 +21,6 @@
 
 	SIP_PYOBJECT __str__();
 %MethodCode
-	return PyString_FromString(VersionInfo::getVersion());
+	return PyBytes_FromString(VersionInfo::getVersion());
 %End
 };
--- ball.orig/source/PYTHON/EXTENSIONS/VIEW/colorRGBA.sip
+++ ball/source/PYTHON/EXTENSIONS/VIEW/colorRGBA.sip
@@ -43,7 +43,7 @@
 	String s("ColorRGBA {");
 	s += (String) *sipCpp;
 	s += " }";
-	sipRes = PyString_FromString(s.c_str());
+	sipRes = PyBytes_FromString(s.c_str());
 %End
 
 	SIP_PYOBJECT __repr__();
@@ -51,6 +51,6 @@
 	String s("ColorRGBA {");
 	s += (String) *sipCpp;
 	s += " }";
-	sipRes = PyString_FromString(s.c_str());
+	sipRes = PyBytes_FromString(s.c_str());
 %End
 };
--- ball.orig/source/PYTHON/EXTENSIONS/VIEW/geometricObject.sip
+++ ball/source/PYTHON/EXTENSIONS/VIEW/geometricObject.sip
@@ -61,7 +61,7 @@
 	// convert to a string representation
 	SIP_PYOBJECT __str__();
 %MethodCode
-	sipRes = PyString_FromString(String(String("GeometricObject")
+	sipRes = PyBytes_FromString(String(String("GeometricObject")
 		+ " { "
 		+ " Composite: " + String((long int)sipCpp->getComposite())
 		+ " }").c_str());
@@ -69,7 +69,7 @@
 
 	SIP_PYOBJECT __repr__();
 %MethodCode
-	sipRes = PyString_FromString(String(String("GeometricObject")
+	sipRes = PyBytes_FromString(String(String("GeometricObject")
 		+ " { "
 		+ " Composite: " + String((long int)sipCpp->getComposite())
 		+ " }").c_str());
--- ball.orig/source/PYTHON/EXTENSIONS/VIEW/gridVisualisation.sip
+++ ball/source/PYTHON/EXTENSIONS/VIEW/gridVisualisation.sip
@@ -38,7 +38,7 @@
 	// convert to a string representation
 	SIP_PYOBJECT __str__();
 %MethodCode
-	sipRes = PyString_FromString(String(String("GridVisualisation ")
+	sipRes = PyBytes_FromString(String(String("GridVisualisation ")
 		+ " { "
 		+ "   Grid: " + String((long int)sipCpp->getGrid())
 		+ "   Texture: " + String(sipCpp->getTexture())
@@ -47,7 +47,7 @@
 
 	SIP_PYOBJECT __repr__();
 %MethodCode
-	sipRes = PyString_FromString(String(String("GridVisualisation ")
+	sipRes = PyBytes_FromString(String(String("GridVisualisation ")
 		+ " { "
 		+ "   Grid: " + String((long int)sipCpp->getGrid())
 		+ "   Texture: " + String(sipCpp->getTexture())

Attachment: signature.asc
Description: PGP signature


Reply to: