Je viens de regarder sur un podcast de France Inter et à ma grande surprise, le chemin pour accéder à l'url est /rss/channel/item/enclosure/@url
Et pourtant avec le sed, cela fonctionne.
wget -q http://radiofrance-podcast.net/podcast09/rss_14934.xml -O - | tr '\r' '\n' | tr \' \" | sed -n 's/.*url *= *"\([^"]*\)".*/\1/p'
Pour installer xmllint, il semblerait qu'il n'y ait malheureusement pas de version précompilé et à déposer dans /usr/bin comme pour youtube-dl. Il faut compiler soit même.
J'ai donc télécharger cette version :
http://xmlsoft.org/sources/libxml2-2.9.7-rc1.tar.gz
Puis j'ai fait un ./configure puis un make :
$ make
make all-recursive
make[1]: Entering directory '/home/pi/xml/libxml2-2.9.7'
Making all in include
make[2]: Entering directory '/home/pi/xml/libxml2-2.9.7/include'
Making all in libxml
make[3]: Entering directory '/home/pi/xml/libxml2-2.9.7/include/libxml'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/home/pi/xml/libxml2-2.9.7/include/libxml'
make[3]: Entering directory '/home/pi/xml/libxml2-2.9.7/include'
make[3]: Nothing to be done for 'all-am'.
make[3]: Leaving directory '/home/pi/xml/libxml2-2.9.7/include'
make[2]: Leaving directory '/home/pi/xml/libxml2-2.9.7/include'
Making all in .
make[2]: Entering directory '/home/pi/xml/libxml2-2.9.7'
CC SAX.lo
CC entities.lo
entities.c: In function ‘xmlCopyEntitiesTable__internal_alias’:
entities.c:952:31: warning: cast between incompatible function types from ‘xmlEntity * (*)(xmlEntity *)’ {aka ‘struct _xmlEntity * (*)(struct _xmlEntity *)’} to ‘void * (*)(void *, xmlChar *)’ {aka ‘void * (*)(void *, unsigned char *)’} [-Wcast-function-type]
return(xmlHashCopy(table, (xmlHashCopier) xmlCopyEntity));
^
entities.c: In function ‘xmlDumpEntitiesTable__internal_alias’:
entities.c:1106:24: warning: cast between incompatible function types from ‘void (*)(xmlEntity *, xmlBuffer *)’ {aka ‘void (*)(struct _xmlEntity *, struct _xmlBuffer *)’} to ‘void (*)(void *, void *, xmlChar *)’ {aka ‘void (*)(void *, void *, unsigned char *)’} [-Wcast-function-type]
xmlHashScan(table, (xmlHashScanner)xmlDumpEntityDeclScan, buf);
^
CC encoding.lo
encoding.c: In function ‘UTF16LEToUTF8’:
encoding.c:497:26: warning: cast increases required alignment of target type [-Wcast-align]
unsigned short* in = (unsigned short*) inb;
^
encoding.c: In function ‘UTF8ToUTF16LE’:
encoding.c:579:27: warning: cast increases required alignment of target type [-Wcast-align]
unsigned short* out = (unsigned short*) outb;
^
encoding.c: In function ‘UTF16BEToUTF8’:
encoding.c:735:26: warning: cast increases required alignment of target type [-Wcast-align]
unsigned short* in = (unsigned short*) inb;
^
encoding.c: In function ‘UTF8ToUTF16BE’:
encoding.c:821:27: warning: cast increases required alignment of target type [-Wcast-align]
unsigned short* out = (unsigned short*) outb;
^
CC error.lo
error.c: In function ‘__xmlRaiseError’:
error.c:634:26: warning: cast between incompatible function types from ‘int (*)(FILE * restrict, const char * restrict, ...)’ {aka ‘int (*)(struct _IO_FILE * restrict, const char * restrict, ...)’} to ‘void (*)(void *, const char *, ...)’ [-Wcast-function-type]
else if ((channel == (xmlGenericErrorFunc) fprintf) ||
^
CC parserInternals.lo
parserInternals.c: In function ‘xmlFreeParserCtxt__internal_alias’:
parserInternals.c:1798:40: warning: cast between incompatible function types from ‘xmlFreeFunc’ {aka ‘void (*)(void *)’} to ‘void (*)(void *, xmlChar *)’ {aka ‘void (*)(void *, unsigned char *)’} [-Wcast-function-type]
xmlHashFree(ctxt->attsDefault, (xmlHashDeallocator) xmlFree);
^
CC parser.lo
parser.c: In function ‘xmlGROW’:
parser.c:2089:68: warning: cast between incompatible function types from ‘int (*)(void)’ to ‘int (*)(void *, char *, int)’ [-Wcast-function-type]
((ctxt->input->buf) && (ctxt->input->buf->readcallback != (xmlInputReadCallback) xmlNop)) &&
^
parser.c: In function ‘xmlCtxtReset__internal_alias’:
parser.c:14878:40: warning: cast between incompatible function types from ‘xmlFreeFunc’ {aka ‘void (*)(void *)’} to ‘void (*)(void *, xmlChar *)’ {aka ‘void (*)(void *, unsigned char *)’} [-Wcast-function-type]
xmlHashFree(ctxt->attsDefault, (xmlHashDeallocator) xmlFree);
^
parser.c: In function ‘xmlParseReference__internal_alias’:
parser.c:7039:44: warning: ‘%d’ directive output may be truncated writing between 3 and 10 bytes into a region of size 9 [-Wformat-truncation=]
snprintf((char *)out, sizeof(out), "#%d", value);
^~
parser.c:7039:42: note: directive argument in the range [256, 2147483647]
snprintf((char *)out, sizeof(out), "#%d", value);
^~~~~
parser.c:7039:7: note: ‘snprintf’ output between 5 and 12 bytes into a destination of size 10
snprintf((char *)out, sizeof(out), "#%d", value);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
parser.c:7037:47: warning: ‘snprintf’ output may be truncated before the last format character [-Wformat-truncation=]
snprintf((char *)out, sizeof(out), "#x%X", value);
^
parser.c:7037:7: note: ‘snprintf’ output between 6 and 11 bytes into a destination of size 10
snprintf((char *)out, sizeof(out), "#x%X", value);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CC tree.lo
CC hash.lo
hash.c: In function ‘xmlHashScan3__internal_alias’:
hash.c:916:9: warning: cast between incompatible function types from ‘xmlHashScanner’ {aka ‘void (*)(void *, void *, unsigned char *)’} to ‘void (*)(void *, void *, const xmlChar *, const xmlChar *, const xmlChar *)’ {aka ‘void (*)(void *, void *, const unsigned char *, const unsigned char *, const unsigned char *)’} [-Wcast-function-type]
(xmlHashScannerFull) f, data);
^
CC list.lo
CC xmlIO.lo
xmlIO.c: In function ‘xmlParserInputBufferCreateMem__internal_alias’:
xmlIO.c:2935:22: warning: cast between incompatible function types from ‘int (*)(void)’ to ‘int (*)(void *, char *, int)’ [-Wcast-function-type]
ret->readcallback = (xmlInputReadCallback) xmlNop;
^
CC xmlmemory.lo
CC uri.lo
CC valid.lo
valid.c: In function ‘xmlFreeElementTable__internal_alias’:
valid.c:1608:24: warning: cast between incompatible function types from ‘void (*)(xmlElement *)’ {aka ‘void (*)(struct _xmlElement *)’} to ‘void (*)(void *, xmlChar *)’ {aka ‘void (*)(void *, unsigned char *)’} [-Wcast-function-type]
xmlHashFree(table, (xmlHashDeallocator) xmlFreeElement);
^
valid.c: In function ‘xmlCopyElementTable__internal_alias’:
valid.c:1657:31: warning: cast between incompatible function types from ‘xmlElement * (*)(xmlElement *)’ {aka ‘struct _xmlElement * (*)(struct _xmlElement *)’} to ‘void * (*)(void *, xmlChar *)’ {aka ‘void * (*)(void *, unsigned char *)’} [-Wcast-function-type]
(xmlHashCopier) xmlCopyElement));
^
valid.c: In function ‘xmlDumpElementTable__internal_alias’:
valid.c:1746:24: warning: cast between incompatible function types from ‘void (*)(xmlElement *, xmlBuffer *)’ {aka ‘void (*)(struct _xmlElement *, struct _xmlBuffer *)’} to ‘void (*)(void *, void *, xmlChar *)’ {aka ‘void (*)(void *, void *, unsigned char *)’} [-Wcast-function-type]
xmlHashScan(table, (xmlHashScanner) xmlDumpElementDeclScan, buf);
^
valid.c: In function ‘xmlFreeAttributeTable__internal_alias’:
valid.c:2154:24: warning: cast between incompatible function types from ‘void (*)(xmlAttribute *)’ {aka ‘void (*)(struct _xmlAttribute *)’} to ‘void (*)(void *, xmlChar *)’ {aka ‘void (*)(void *, unsigned char *)’} [-Wcast-function-type]
xmlHashFree(table, (xmlHashDeallocator) xmlFreeAttribute);
^
valid.c: In function ‘xmlCopyAttributeTable__internal_alias’:
valid.c:2202:9: warning: cast between incompatible function types from ‘xmlAttribute * (*)(xmlAttribute *)’ {aka ‘struct _xmlAttribute * (*)(struct _xmlAttribute *)’} to ‘void * (*)(void *, xmlChar *)’ {aka ‘void * (*)(void *, unsigned char *)’} [-Wcast-function-type]
(xmlHashCopier) xmlCopyAttribute));
^
valid.c: In function ‘xmlDumpAttributeTable__internal_alias’:
valid.c:2312:24: warning: cast between incompatible function types from ‘void (*)(xmlAttribute *, xmlBuffer *)’ {aka ‘void (*)(struct _xmlAttribute *, struct _xmlBuffer *)’} to ‘void (*)(void *, void *, xmlChar *)’ {aka ‘void (*)(void *, void *, unsigned char *)’} [-Wcast-function-type]
xmlHashScan(table, (xmlHashScanner) xmlDumpAttributeDeclScan, buf);
^
valid.c: In function ‘xmlFreeNotationTable__internal_alias’:
valid.c:2426:24: warning: cast between incompatible function types from ‘void (*)(xmlNotation *)’ {aka ‘void (*)(struct _xmlNotation *)’} to ‘void (*)(void *, xmlChar *)’ {aka ‘void (*)(void *, unsigned char *)’} [-Wcast-function-type]
xmlHashFree(table, (xmlHashDeallocator) xmlFreeNotation);
^
valid.c: In function ‘xmlCopyNotationTable__internal_alias’:
valid.c:2473:9: warning: cast between incompatible function types from ‘xmlNotation * (*)(xmlNotation *)’ {aka ‘struct _xmlNotation * (*)(struct _xmlNotation *)’} to ‘void * (*)(void *, xmlChar *)’ {aka ‘void * (*)(void *, unsigned char *)’} [-Wcast-function-type]
(xmlHashCopier) xmlCopyNotation));
^
valid.c: In function ‘xmlDumpNotationTable__internal_alias’:
valid.c:2528:24: warning: cast between incompatible function types from ‘void (*)(xmlNotation *, xmlBuffer *)’ {aka ‘void (*)(struct _xmlNotation *, struct _xmlBuffer *)’} to ‘void (*)(void *, void *, xmlChar *)’ {aka ‘void (*)(void *, void *, unsigned char *)’} [-Wcast-function-type]
xmlHashScan(table, (xmlHashScanner) xmlDumpNotationDeclScan, buf);
^
valid.c: In function ‘xmlFreeIDTable__internal_alias’:
valid.c:2664:24: warning: cast between incompatible function types from ‘void (*)(xmlID *)’ {aka ‘void (*)(struct _xmlID *)’} to ‘void (*)(void *, xmlChar *)’ {aka ‘void (*)(void *, unsigned char *)’} [-Wcast-function-type]
xmlHashFree(table, (xmlHashDeallocator) xmlFreeID);
^
valid.c: In function ‘xmlRemoveID__internal_alias’:
valid.c:2764:35: warning: cast between incompatible function types from ‘void (*)(xmlID *)’ {aka ‘void (*)(struct _xmlID *)’} to ‘void (*)(void *, xmlChar *)’ {aka ‘void (*)(void *, unsigned char *)’} [-Wcast-function-type]
xmlHashRemoveEntry(table, ID, (xmlHashDeallocator) xmlFreeID);
^
valid.c: In function ‘xmlFreeRefTable__internal_alias’:
valid.c:3005:24: warning: cast between incompatible function types from ‘void (*)(xmlList *)’ {aka ‘void (*)(struct _xmlList *)’} to ‘void (*)(void *, xmlChar *)’ {aka ‘void (*)(void *, unsigned char *)’} [-Wcast-function-type]
xmlHashFree(table, (xmlHashDeallocator) xmlFreeRefList);
^
valid.c: In function ‘xmlRemoveRef__internal_alias’:
valid.c:3102:45: warning: cast between incompatible function types from ‘void (*)(xmlList *)’ {aka ‘void (*)(struct _xmlList *)’} to ‘void (*)(void *, xmlChar *)’ {aka ‘void (*)(void *, unsigned char *)’} [-Wcast-function-type]
xmlHashUpdateEntry(table, ID, NULL, (xmlHashDeallocator)
^
CC xlink.lo
CC HTMLparser.lo
HTMLparser.c: In function ‘htmlCtxtReset__internal_alias’:
HTMLparser.c:6677:40: warning: cast between incompatible function types from ‘xmlFreeFunc’ {aka ‘void (*)(void *)’} to ‘void (*)(void *, xmlChar *)’ {aka ‘void (*)(void *, unsigned char *)’} [-Wcast-function-type]
xmlHashFree(ctxt->attsDefault, (xmlHashDeallocator) xmlFree);
^
CC HTMLtree.lo
CC debugXML.lo
debugXML.c: In function ‘xmlCtxtDumpEntities’:
debugXML.c:1292:28: warning: cast between incompatible function types from ‘void (*)(xmlEntity *, xmlDebugCtxt *)’ {aka ‘void (*)(struct _xmlEntity *, struct _xmlDebugCtxt *)’} to ‘void (*)(void *, void *, xmlChar *)’ {aka ‘void (*)(void *, void *, unsigned char *)’} [-Wcast-function-type]
xmlHashScan(table, (xmlHashScanner) xmlCtxtDumpEntityCallback,
^
debugXML.c:1302:28: warning: cast between incompatible function types from ‘void (*)(xmlEntity *, xmlDebugCtxt *)’ {aka ‘void (*)(struct _xmlEntity *, struct _xmlDebugCtxt *)’} to ‘void (*)(void *, void *, xmlChar *)’ {aka ‘void (*)(void *, void *, unsigned char *)’} [-Wcast-function-type]
xmlHashScan(table, (xmlHashScanner) xmlCtxtDumpEntityCallback,
^
debugXML.c: In function ‘xmlShellRNGValidate’:
debugXML.c:2366:6: warning: cast between incompatible function types from ‘int (*)(FILE * restrict, const char * restrict, ...)’ {aka ‘int (*)(struct _IO_FILE * restrict, const char * restrict, ...)’} to ‘void (*)(void *, const char *, ...)’ [-Wcast-function-type]
(xmlRelaxNGValidityErrorFunc) fprintf,
^
debugXML.c:2367:6: warning: cast between incompatible function types from ‘int (*)(FILE * restrict, const char * restrict, ...)’ {aka ‘int (*)(struct _IO_FILE * restrict, const char * restrict, ...)’} to ‘void (*)(void *, const char *, ...)’ [-Wcast-function-type]
(xmlRelaxNGValidityWarningFunc) fprintf,
^
debugXML.c:2378:6: warning: cast between incompatible function types from ‘int (*)(FILE * restrict, const char * restrict, ...)’ {aka ‘int (*)(struct _IO_FILE * restrict, const char * restrict, ...)’} to ‘void (*)(void *, const char *, ...)’ [-Wcast-function-type]
(xmlRelaxNGValidityErrorFunc) fprintf,
^
debugXML.c:2379:6: warning: cast between incompatible function types from ‘int (*)(FILE * restrict, const char * restrict, ...)’ {aka ‘int (*)(struct _IO_FILE * restrict, const char * restrict, ...)’} to ‘void (*)(void *, const char *, ...)’ [-Wcast-function-type]
(xmlRelaxNGValidityWarningFunc) fprintf,
^
debugXML.c: In function ‘xmlShellValidate__internal_alias’:
debugXML.c:2650:19: warning: cast between incompatible function types from ‘int (*)(FILE * restrict, const char * restrict, ...)’ {aka ‘int (*)(struct _IO_FILE * restrict, const char * restrict, ...)’} to ‘void (*)(void *, const char *, ...)’ [-Wcast-function-type]
vctxt.error = (xmlValidityErrorFunc) fprintf;
^
debugXML.c:2651:21: warning: cast between incompatible function types from ‘int (*)(FILE * restrict, const char * restrict, ...)’ {aka ‘int (*)(struct _IO_FILE * restrict, const char * restrict, ...)’} to ‘void (*)(void *, const char *, ...)’ [-Wcast-function-type]
vctxt.warning = (xmlValidityWarningFunc) fprintf;
^
CC xpath.lo
xpath.c: In function ‘xmlXPathDistinctSorted__internal_alias’:
xpath.c:4585:23: warning: cast between incompatible function types from ‘xmlFreeFunc’ {aka ‘void (*)(void *)’} to ‘void (*)(void *, xmlChar *)’ {aka ‘void (*)(void *, unsigned char *)’} [-Wcast-function-type]
xmlHashFree(hash, (xmlHashDeallocator) xmlFree);
^
In file included from ./include/libxml/parser.h:18,
from ./include/libxml/globals.h:18,
from ./include/libxml/threads.h:35,
from ./include/libxml/xmlmemory.h:218,
from ./include/libxml/tree.h:1307,
from ./include/libxml/c14n.h:27,
from elfgcchack.h:17,
from libxml.h:106,
from xpath.c:23:
xpath.c: In function ‘xmlXPathRegisterFuncNS__internal_alias’:
xpath.c:4897:73: warning: ISO C forbids passing argument 4 of ‘xmlHashAddEntry2__internal_alias’ between function pointer and ‘void *’ [-Wpedantic]
return(xmlHashAddEntry2(ctxt->funcHash, name, ns_uri, XML_CAST_FPTR(f)));
^
./include/libxml/hash.h:56:29: note: in definition of macro ‘XML_CAST_FPTR’
#define XML_CAST_FPTR(fptr) fptr
^~~~
In file included from libxml.h:106,
from xpath.c:23:
elfgcchack.h:4269:36: note: expected ‘void *’ but argument is of type ‘xmlXPathFunction’ {aka ‘void (*)(struct _xmlXPathParserContext *, int)’}
extern __typeof (xmlHashAddEntry2) xmlHashAddEntry2__internal_alias __attribute((visibility("hidden")));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xpath.c: In function ‘xmlXPathFunctionLookupNS__internal_alias’:
xpath.c:4978:24: warning: ISO C forbids assignment between function pointer and ‘void *’ [-Wpedantic]
XML_CAST_FPTR(ret) = xmlHashLookup2(ctxt->funcHash, name, ns_uri);
^
xpath.c: In function ‘xmlXPathRegisterVariableNS__internal_alias’:
xpath.c:5047:29: warning: cast between incompatible function types from ‘void (*)(xmlXPathObject *)’ {aka ‘void (*)(struct _xmlXPathObject *)’} to ‘void (*)(void *, xmlChar *)’ {aka ‘void (*)(void *, unsigned char *)’} [-Wcast-function-type]
(xmlHashDeallocator)xmlXPathFreeObject));
^
xpath.c:5050:11: warning: cast between incompatible function types from ‘void (*)(xmlXPathObject *)’ {aka ‘void (*)(struct _xmlXPathObject *)’} to ‘void (*)(void *, xmlChar *)’ {aka ‘void (*)(void *, unsigned char *)’} [-Wcast-function-type]
(xmlHashDeallocator)xmlXPathFreeObject));
^
xpath.c: In function ‘xmlXPathRegisteredVariablesCleanup__internal_alias’:
xpath.c:5140:32: warning: cast between incompatible function types from ‘void (*)(xmlXPathObject *)’ {aka ‘void (*)(struct _xmlXPathObject *)’} to ‘void (*)(void *, xmlChar *)’ {aka ‘void (*)(void *, unsigned char *)’} [-Wcast-function-type]
xmlHashFree(ctxt->varHash, (xmlHashDeallocator)xmlXPathFreeObject);
^
xpath.c: In function ‘xmlXPathRegisterNs__internal_alias’:
xpath.c:5171:28: warning: cast between incompatible function types from ‘xmlFreeFunc’ {aka ‘void (*)(void *)’} to ‘void (*)(void *, xmlChar *)’ {aka ‘void (*)(void *, unsigned char *)’} [-Wcast-function-type]
(xmlHashDeallocator)xmlFree));
^
xpath.c:5173:10: warning: cast between incompatible function types from ‘xmlFreeFunc’ {aka ‘void (*)(void *)’} to ‘void (*)(void *, xmlChar *)’ {aka ‘void (*)(void *, unsigned char *)’} [-Wcast-function-type]
(xmlHashDeallocator)xmlFree));
^
xpath.c: In function ‘xmlXPathRegisteredNsCleanup__internal_alias’:
xpath.c:5222:31: warning: cast between incompatible function types from ‘xmlFreeFunc’ {aka ‘void (*)(void *)’} to ‘void (*)(void *, xmlChar *)’ {aka ‘void (*)(void *, unsigned char *)’} [-Wcast-function-type]
xmlHashFree(ctxt->nsHash, (xmlHashDeallocator)xmlFree);
^
In file included from xpath.c:483:
At top level:
trionan.c:218:1: warning: ‘trio_is_negative’ defined but not used [-Wunused-function]
trio_is_negative
^~~~~~~~~~~~~~~~
trionan.c:194:1: warning: ‘trio_is_special_quantity’ defined but not used [-Wunused-function]
trio_is_special_quantity
^~~~~~~~~~~~~~~~~~~~~~~~
CC xpointer.lo
CC xinclude.lo
CC nanohttp.lo
CC nanoftp.lo
CC catalog.lo
catalog.c: In function ‘xmlFreeCatalog__internal_alias’:
catalog.c:444:3: warning: cast between incompatible function types from ‘void (*)(xmlCatalogEntry *)’ {aka ‘void (*)(struct _xmlCatalogEntry *)’} to ‘void (*)(void *, xmlChar *)’ {aka ‘void (*)(void *, unsigned char *)’} [-Wcast-function-type]
(xmlHashDeallocator) xmlFreeCatalogEntry);
^
catalog.c: In function ‘xmlCatalogConvertEntry’:
catalog.c:760:18: warning: cast between incompatible function types from ‘void (*)(xmlCatalogEntry *)’ {aka ‘void (*)(struct _xmlCatalogEntry *)’} to ‘void (*)(void *, xmlChar *)’ {aka ‘void (*)(void *, unsigned char *)’} [-Wcast-function-type]
(xmlHashDeallocator) xmlFreeCatalogEntry);
^
catalog.c: In function ‘xmlConvertSGMLCatalog__internal_alias’:
catalog.c:801:3: warning: cast between incompatible function types from ‘void (*)(xmlCatalogEntry *, xmlCatalog *)’ {aka ‘void (*)(struct _xmlCatalogEntry *, struct _xmlCatalog *)’} to ‘void (*)(void *, void *, xmlChar *)’ {aka ‘void (*)(void *, void *, unsigned char *)’} [-Wcast-function-type]
(xmlHashScanner) xmlCatalogConvertEntry,
^
catalog.c: In function ‘xmlACatalogDump__internal_alias’:
catalog.c:2941:7: warning: cast between incompatible function types from ‘void (*)(xmlCatalogEntry *, FILE *)’ {aka ‘void (*)(struct _xmlCatalogEntry *, struct _IO_FILE *)’} to ‘void (*)(void *, void *, xmlChar *)’ {aka ‘void (*)(void *, void *, unsigned char *)’} [-Wcast-function-type]
(xmlHashScanner) xmlCatalogDumpEntry, out);
^
catalog.c: In function ‘xmlACatalogRemove__internal_alias’:
catalog.c:3006:3: warning: cast between incompatible function types from ‘void (*)(xmlCatalogEntry *)’ {aka ‘void (*)(struct _xmlCatalogEntry *)’} to ‘void (*)(void *, xmlChar *)’ {aka ‘void (*)(void *, unsigned char *)’} [-Wcast-function-type]
(xmlHashDeallocator) xmlFreeCatalogEntry);
^
catalog.c: In function ‘xmlCatalogCleanup__internal_alias’:
catalog.c:3288:7: warning: cast between incompatible function types from ‘void (*)(xmlCatalogEntry *)’ {aka ‘void (*)(struct _xmlCatalogEntry *)’} to ‘void (*)(void *, xmlChar *)’ {aka ‘void (*)(void *, unsigned char *)’} [-Wcast-function-type]
(xmlHashDeallocator)xmlFreeCatalogHashEntryList);
^
CC globals.lo
CC threads.lo
CC c14n.lo
CC xmlstring.lo
CC buf.lo
CC xmlregexp.lo
CC xmlschemas.lo
xmlschemas.c: In function ‘xmlSchemaFree__internal_alias’:
xmlschemas.c:4163:7: warning: cast between incompatible function types from ‘void (*)(xmlSchemaBucket *)’ {aka ‘void (*)(struct _xmlSchemaBucket *)’} to ‘void (*)(void *, xmlChar *)’ {aka ‘void (*)(void *, unsigned char *)’} [-Wcast-function-type]
(xmlHashDeallocator) xmlSchemaBucketFree);
^
xmlschemas.c: In function ‘xmlSchemaDump__internal_alias’:
xmlschemas.c:4546:35: warning: cast between incompatible function types from ‘void (*)(xmlSchemaType *, FILE *)’ {aka ‘void (*)(struct _xmlSchemaType *, struct _IO_FILE *)’} to ‘void (*)(void *, void *, xmlChar *)’ {aka ‘void (*)(void *, void *, unsigned char *)’} [-Wcast-function-type]
xmlHashScan(schema->typeDecl, (xmlHashScanner) xmlSchemaTypeDump,
^
xmlschemas.c: In function ‘xmlSchemaConstructionCtxtFree’:
xmlschemas.c:9922:6: warning: cast between incompatible function types from ‘void (*)(xmlSchemaSubstGroup *)’ {aka ‘void (*)(struct _xmlSchemaSubstGroup *)’} to ‘void (*)(void *, xmlChar *)’ {aka ‘void (*)(void *, unsigned char *)’} [-Wcast-function-type]
(xmlHashDeallocator) xmlSchemaSubstGroupFree);
^
xmlschemas.c: In function ‘xmlSchemaFixupComponents’:
xmlschemas.c:21297:6: warning: cast between incompatible function types from ‘void (*)(xmlSchemaSubstGroup *)’ {aka ‘void (*)(struct _xmlSchemaSubstGroup *)’} to ‘void (*)(void *, xmlChar *)’ {aka ‘void (*)(void *, unsigned char *)’} [-Wcast-function-type]
(xmlHashDeallocator) xmlSchemaSubstGroupFree);
^
xmlschemas.c: In function ‘xmlSchemaAugmentImportedIDC’:
xmlschemas.c:22044:6: warning: cast between incompatible function types from ‘void (*)(xmlSchemaIDC *, xmlSchemaValidCtxt *)’ {aka ‘void (*)(struct _xmlSchemaIDC *, struct _xmlSchemaValidCtxt *)’} to ‘void (*)(void *, void *, xmlChar *)’ {aka ‘void (*)(void *, void *, unsigned char *)’} [-Wcast-function-type]
(xmlHashScanner) xmlSchemaAugmentIDC, vctxt);
^
CC xmlschemastypes.lo
xmlschemastypes.c: In function ‘xmlSchemaCleanupTypes__internal_alias’:
xmlschemastypes.c:649:37: warning: cast between incompatible function types from ‘void (*)(xmlSchemaType *)’ {aka ‘void (*)(struct _xmlSchemaType *)’} to ‘void (*)(void *, xmlChar *)’ {aka ‘void (*)(void *, unsigned char *)’} [-Wcast-function-type]
xmlHashFree(xmlSchemaTypesBank, (xmlHashDeallocator) xmlSchemaFreeType);
^
CC xmlunicode.lo
CC xmlreader.lo
xmlreader.c: In function ‘xmlTextReaderFreeIDTable’:
xmlreader.c:502:24: warning: cast between incompatible function types from ‘void (*)(xmlID *)’ {aka ‘void (*)(struct _xmlID *)’} to ‘void (*)(void *, xmlChar *)’ {aka ‘void (*)(void *, unsigned char *)’} [-Wcast-function-type]
xmlHashFree(table, (xmlHashDeallocator) xmlFreeID);
^
CC relaxng.lo
CC dict.lo
CC SAX2.lo
CC xmlwriter.lo
CC legacy.lo
CC chvalid.lo
CC pattern.lo
CC xmlsave.lo
CC xmlmodule.lo
CC schematron.lo
CC xzlib.lo
CCLD libxml2.la
ar: `u' modifier ignored since `D' is the default (see `U')
CC testdso.lo
CCLD testdso.la
ar: `u' modifier ignored since `D' is the default (see `U')
CC xmllint.o
xmllint.c: In function ‘testSAX’:
xmllint.c:1655:3: warning: cast between incompatible function types from ‘int (*)(FILE * restrict, const char * restrict, ...)’ {aka ‘int (*)(struct _IO_FILE * restrict, const char * restrict, ...)’} to ‘void (*)(void *, const char *, ...)’ [-Wcast-function-type]
(xmlSchemaValidityErrorFunc) fprintf,
^
xmllint.c:1656:3: warning: cast between incompatible function types from ‘int (*)(FILE * restrict, const char * restrict, ...)’ {aka ‘int (*)(struct _IO_FILE * restrict, const char * restrict, ...)’} to ‘void (*)(void *, const char *, ...)’ [-Wcast-function-type]
(xmlSchemaValidityWarningFunc) fprintf,
^
xmllint.c: In function ‘parseAndPrintFile’:
xmllint.c:2307:6: warning: cast between incompatible function types from ‘void (*)(FILE *)’ {aka ‘void (*)(struct _IO_FILE *)’} to ‘int (*)(void *)’ [-Wcast-function-type]
(xmlInputCloseCallback) myClose, f,
^
xmllint.c:2312:6: warning: cast between incompatible function types from ‘void (*)(FILE *)’ {aka ‘void (*)(struct _IO_FILE *)’} to ‘int (*)(void *)’ [-Wcast-function-type]
(xmlInputCloseCallback) myClose, f,
^
xmllint.c:2765:22: warning: cast between incompatible function types from ‘int (*)(FILE * restrict, const char * restrict, ...)’ {aka ‘int (*)(struct _IO_FILE * restrict, const char * restrict, ...)’} to ‘void (*)(void *, const char *, ...)’ [-Wcast-function-type]
cvp->error = (xmlValidityErrorFunc) fprintf;
^
xmllint.c:2766:22: warning: cast between incompatible function types from ‘int (*)(FILE * restrict, const char * restrict, ...)’ {aka ‘int (*)(struct _IO_FILE * restrict, const char * restrict, ...)’} to ‘void (*)(void *, const char *, ...)’ [-Wcast-function-type]
cvp->warning = (xmlValidityWarningFunc) fprintf;
^
xmllint.c:2801:18: warning: cast between incompatible function types from ‘int (*)(FILE * restrict, const char * restrict, ...)’ {aka ‘int (*)(struct _IO_FILE * restrict, const char * restrict, ...)’} to ‘void (*)(void *, const char *, ...)’ [-Wcast-function-type]
cvp->error = (xmlValidityErrorFunc) fprintf;
^
xmllint.c:2802:18: warning: cast between incompatible function types from ‘int (*)(FILE * restrict, const char * restrict, ...)’ {aka ‘int (*)(struct _IO_FILE * restrict, const char * restrict, ...)’} to ‘void (*)(void *, const char *, ...)’ [-Wcast-function-type]
cvp->warning = (xmlValidityWarningFunc) fprintf;
^
xmllint.c:2865:3: warning: cast between incompatible function types from ‘int (*)(FILE * restrict, const char * restrict, ...)’ {aka ‘int (*)(struct _IO_FILE * restrict, const char * restrict, ...)’} to ‘void (*)(void *, const char *, ...)’ [-Wcast-function-type]
(xmlRelaxNGValidityErrorFunc) fprintf,
^
xmllint.c:2866:3: warning: cast between incompatible function types from ‘int (*)(FILE * restrict, const char * restrict, ...)’ {aka ‘int (*)(struct _IO_FILE * restrict, const char * restrict, ...)’} to ‘void (*)(void *, const char *, ...)’ [-Wcast-function-type]
(xmlRelaxNGValidityWarningFunc) fprintf,
^
xmllint.c:2893:3: warning: cast between incompatible function types from ‘int (*)(FILE * restrict, const char * restrict, ...)’ {aka ‘int (*)(struct _IO_FILE * restrict, const char * restrict, ...)’} to ‘void (*)(void *, const char *, ...)’ [-Wcast-function-type]
(xmlSchemaValidityErrorFunc) fprintf,
^
xmllint.c:2894:3: warning: cast between incompatible function types from ‘int (*)(FILE * restrict, const char * restrict, ...)’ {aka ‘int (*)(struct _IO_FILE * restrict, const char * restrict, ...)’} to ‘void (*)(void *, const char *, ...)’ [-Wcast-function-type]
(xmlSchemaValidityWarningFunc) fprintf,
^
xmllint.c: In function ‘main’:
xmllint.c:3590:3: warning: cast between incompatible function types from ‘int (*)(FILE * restrict, const char * restrict, ...)’ {aka ‘int (*)(struct _IO_FILE * restrict, const char * restrict, ...)’} to ‘void (*)(void *, const char *, ...)’ [-Wcast-function-type]
(xmlRelaxNGValidityErrorFunc) fprintf,
^
xmllint.c:3591:3: warning: cast between incompatible function types from ‘int (*)(FILE * restrict, const char * restrict, ...)’ {aka ‘int (*)(struct _IO_FILE * restrict, const char * restrict, ...)’} to ‘void (*)(void *, const char *, ...)’ [-Wcast-function-type]
(xmlRelaxNGValidityWarningFunc) fprintf,
^
xmllint.c:3616:3: warning: cast between incompatible function types from ‘int (*)(FILE * restrict, const char * restrict, ...)’ {aka ‘int (*)(struct _IO_FILE * restrict, const char * restrict, ...)’} to ‘void (*)(void *, const char *, ...)’ [-Wcast-function-type]
(xmlSchemaValidityErrorFunc) fprintf,
^
xmllint.c:3617:3: warning: cast between incompatible function types from ‘int (*)(FILE * restrict, const char * restrict, ...)’ {aka ‘int (*)(struct _IO_FILE * restrict, const char * restrict, ...)’} to ‘void (*)(void *, const char *, ...)’ [-Wcast-function-type]
(xmlSchemaValidityWarningFunc) fprintf,
^
CCLD xmllint
CC xmlcatalog.o
CCLD xmlcatalog
sed -e 's?\@XML_LIBDIR\@?-L/usr/local/lib?g' \
-e 's?\@XML_INCLUDEDIR\@?-I/usr/local/include/libxml2?g' \
-e 's?\@VERSION\@?2.9.7?g' \
-e 's?\@XML_LIBS\@?-lxml2 -lz -lm ?g' \
< ./xml2Conf.sh.in > xml2Conf.tmp \
&& mv xml2Conf.tmp xml2Conf.sh
make[2]: Leaving directory '/home/pi/xml/libxml2-2.9.7'
Making all in doc
make[2]: Entering directory '/home/pi/xml/libxml2-2.9.7/doc'
Making all in .
make[3]: Entering directory '/home/pi/xml/libxml2-2.9.7/doc'
make[3]: Nothing to be done for 'all-am'.
make[3]: Leaving directory '/home/pi/xml/libxml2-2.9.7/doc'
Making all in devhelp
make[3]: Entering directory '/home/pi/xml/libxml2-2.9.7/doc/devhelp'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/home/pi/xml/libxml2-2.9.7/doc/devhelp'
Making all in examples
make[3]: Entering directory '/home/pi/xml/libxml2-2.9.7/doc/examples'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/home/pi/xml/libxml2-2.9.7/doc/examples'
make[2]: Leaving directory '/home/pi/xml/libxml2-2.9.7/doc'
Making all in example
make[2]: Entering directory '/home/pi/xml/libxml2-2.9.7/example'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/pi/xml/libxml2-2.9.7/example'
Making all in xstc
make[2]: Entering directory '/home/pi/xml/libxml2-2.9.7/xstc'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/pi/xml/libxml2-2.9.7/xstc'
Making all in python
make[2]: Entering directory '/home/pi/xml/libxml2-2.9.7/python'
make all-recursive
make[3]: Entering directory '/home/pi/xml/libxml2-2.9.7/python'
Making all in .
make[4]: Entering directory '/home/pi/xml/libxml2-2.9.7/python'
CC libxml.lo
libxml.c:14:10: fatal error: Python.h: No such file or directory
#include <Python.h>
^~~~~~~~~~
compilation terminated.
make[4]: *** [Makefile:623: libxml.lo] Error 1
make[4]: Leaving directory '/home/pi/xml/libxml2-2.9.7/python'
make[3]: *** [Makefile:684: all-recursive] Error 1
make[3]: Leaving directory '/home/pi/xml/libxml2-2.9.7/python'
make[2]: *** [Makefile:524: all] Error 2
make[2]: Leaving directory '/home/pi/xml/libxml2-2.9.7/python'
make[1]: *** [Makefile:1441: all-recursive] Error 1
make[1]: Leaving directory '/home/pi/xml/libxml2-2.9.7'
make: *** [Makefile:860: all] Error 2
Mais j'obtiens une erreur :
libxml.c:14:10: fatal error: Python.h: No such file or directory
#include <Python.h>
^~~~~~~~~~
Il ne trouve pas de fichier ou de répertoire mais lequel ?
Par curiosité j'ai testé l'installation de libxml2 par apt et il est présent.
$ sudo apt install libxml2
Reading package lists... Done
Building dependency tree
Reading state information... Done
libxml2 is already the newest version (2.9.4+dfsg1-7+deb10u1).
0 upgraded, 0 newly installed, 0 to remove and 36 not upgraded.
AI je pris une mauvaise version?