summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/libxml/libxml2.inc
blob: dfe6a9ad2894588306bc624dfa1ed65cdaf3a0dd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
SUMMARY = "XML C Parser Library and Toolkit"
DESCRIPTION = "The XML Parser Library allows for manipulation of XML files.  Libxml2 exports Push and Pull type parser interfaces for both XML and HTML.  It can do DTD validation at parse time, on a parsed document instance or with an arbitrary DTD.  Libxml2 includes complete XPath, XPointer and Xinclude implementations.  It also has a SAX like interface, which is designed to be compatible with Expat."
HOMEPAGE = "http://www.xmlsoft.org/"
BUGTRACKER = "http://bugzilla.gnome.org/buglist.cgi?product=libxml2"
SECTION = "libs"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=bb90c48926316d9af6e2d70ca7013ade \
                    file://hash.c;beginline=6;endline=15;md5=ce702952bfddd7aee22639a2d6b54136 \
                    file://list.c;beginline=4;endline=13;md5=cdbfa3dee51c099edb04e39f762ee907 \
                    file://trio.c;beginline=5;endline=14;md5=6c025753c86d958722ec76e94cae932e"

DEPENDS_virtclass-native = "python-native"
DEPENDS =+ "zlib"

SRC_URI = "ftp://xmlsoft.org/libxml2/libxml2-${PV}.tar.gz \
           file://libxml-64bit.patch"


inherit autotools pkgconfig binconfig

EXTRA_OECONF = "--without-python --without-debug --without-legacy --without-catalog --without-docbook --with-c14n"
EXTRA_OECONF_virtclass-native = "--with-python=${STAGING_BINDIR}/python --without-legacy --with-catalog --without-docbook --with-c14n"
EXTRA_OECONF_virtclass-nativesdk = "--with-python=${STAGING_BINDIR}/python --without-legacy --with-catalog --without-docbook --with-c14n"
EXTRA_OECONF_linuxstdbase = "--without-python --with-debug --with-legacy --with-catalog --with-docbook --with-c14n"

# required for pythong binding
export HOST_SYS
export BUILD_SYS
export STAGING_LIBDIR
export STAGING_INCDIR

export LDFLAGS += "-ldl"

python populate_packages_prepend () {
	# autonamer would call this libxml2-2, but we don't want that
	if bb.data.getVar('DEBIAN_NAMES', d, 1):
		bb.data.setVar('PKG_libxml2', 'libxml2', d)
}

PACKAGES = "${PN}-dbg ${PN}-dev ${PN}-utils ${PN} ${PN}-doc ${PN}-locale"

FILES_${PN}-dev += "${bindir}/*-config ${libdir}/xml2Conf.sh"
FILES_${PN}-utils += "${bindir}/*"

BBCLASSEXTEND = "native nativesdk"
l(logging.INFO) return logger logger = logger_create('bitbake-diffsigs') def find_compare_task(bbhandler, pn, taskname): """ Find the most recent signature files for the specified PN/task and compare them """ if not hasattr(bb.siggen, 'find_siginfo'): logger.error('Metadata does not support finding signature data files') sys.exit(1) if not taskname.startswith('do_'): taskname = 'do_%s' % taskname filedates = bb.siggen.find_siginfo(pn, taskname, None, bbhandler.config_data) latestfiles = sorted(filedates.keys(), key=lambda f: filedates[f])[-2:] if not latestfiles: logger.error('No sigdata files found matching %s %s' % (pn, taskname)) sys.exit(1) elif len(latestfiles) < 2: logger.error('Only one matching sigdata file found for the specified task (%s %s)' % (pn, taskname)) sys.exit(1) else: # Define recursion callback def recursecb(key, hash1, hash2): hashes = [hash1, hash2] hashfiles = bb.siggen.find_siginfo(key, None, hashes, bbhandler.config_data) recout = [] if len(hashfiles) == 2: out2 = bb.siggen.compare_sigfiles(hashfiles[hash1], hashfiles[hash2], recursecb) recout.extend(list(' ' + l for l in out2)) else: recout.append("Unable to find matching sigdata for %s with hashes %s or %s" % (key, hash1, hash2)) return recout # Recurse into signature comparison output = bb.siggen.compare_sigfiles(latestfiles[0], latestfiles[1], recursecb) if output: print '\n'.join(output) sys.exit(0) parser = optparse.OptionParser( description = "Compares siginfo/sigdata files written out by BitBake", usage = """ %prog -t recipename taskname %prog sigdatafile1 sigdatafile2 %prog sigdatafile1""") parser.add_option("-t", "--task", help = "find the signature data files for last two runs of the specified task and compare them", action="store", dest="taskargs", nargs=2, metavar='recipename taskname') options, args = parser.parse_args(sys.argv) if options.taskargs: tinfoil = bb.tinfoil.Tinfoil() tinfoil.prepare(config_only = True) find_compare_task(tinfoil, options.taskargs[0], options.taskargs[1]) else: if len(args) == 1: parser.print_help() else: import cPickle try: if len(args) == 2: output = bb.siggen.dump_sigfile(sys.argv[1]) else: output = bb.siggen.compare_sigfiles(sys.argv[1], sys.argv[2]) except IOError as e: logger.error(str(e)) sys.exit(1) except cPickle.UnpicklingError, EOFError: logger.error('Invalid signature data - ensure you are specifying sigdata/siginfo files') sys.exit(1) if output: print '\n'.join(output)