diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/ChangeLog b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/ChangeLog index 7d23be34b9..069770915e 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/ChangeLog +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/ChangeLog @@ -1,6 +1,291 @@ # ChangeLog for dev-libs/libxml2 -# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-libs/libxml2/ChangeLog,v 1.304 2011/02/26 17:17:33 arfrever Exp $ +# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/dev-libs/libxml2/ChangeLog,v 1.372 2012/12/18 07:48:21 tetromino Exp $ + +*libxml2-2.9.0-r1 (18 Dec 2012) +*libxml2-2.8.0-r4 (18 Dec 2012) + + 18 Dec 2012; Alexandre Rostovtsev + -libxml2-2.8.0-r2.ebuild, +libxml2-2.8.0-r4.ebuild, +libxml2-2.9.0-r1.ebuild, + +files/libxml2-2.9.0-manual-python.patch: + Update to EAPI5 and python-r1.eclass. Always install pre-built docs in a + devhelp-compatible location. Add a patch for cleaner multiple python ABI + support. + + 15 Dec 2012; Raúl Porcel libxml2-2.8.0-r3.ebuild: + alpha/ia64/m68k/s390/sh/sparc stable wrt #444836 + + 02 Dec 2012; Agostino Sarubbo libxml2-2.8.0-r3.ebuild: + Stable for ppc64, wrt bug #444836 + + 02 Dec 2012; Markus Meier libxml2-2.8.0-r3.ebuild: + arm stable, bug #444836 + + 29 Nov 2012; libxml2-2.8.0-r3.ebuild: + Stable for ppc, wrt bug #444836 + + 27 Nov 2012; Jeroen Roovers libxml2-2.8.0-r3.ebuild: + Stable for HPPA (bug #444836). + + 27 Nov 2012; Agostino Sarubbo libxml2-2.8.0-r3.ebuild: + Stable for x86, wrt bug #444836 + + 27 Nov 2012; Agostino Sarubbo libxml2-2.8.0-r3.ebuild: + Stable for amd64, wrt bug #444836 + +*libxml2-2.9.0 (27 Nov 2012) + + 27 Nov 2012; Alexandre Rostovtsev + +libxml2-2.9.0.ebuild, +files/libxml2-2.9.0-disable_static_modules.patch, + +files/libxml2-2.9.0-large-file-parse.patch, + +files/libxml2-2.9.0-nsclean.patch, +files/libxml2-2.9.0-rand_seed.patch, + +files/libxml2-2.9.0-streaming-validation.patch, + +files/libxml2-2.9.0-thread-alloc.patch, + +files/libxml2-2.9.0-thread-portability.patch: + Version bump featuring improved push parser and XPath evaluation (bug + #444290). Update to EAPI5, always install docs in a devhelp-compatible + location following current gnome team style guidelines, and run a more + complete test suite. + + 26 Nov 2012; Alexandre Rostovtsev + libxml2-2.8.0-r3.ebuild: + Comment typo + +*libxml2-2.8.0-r3 (26 Nov 2012) + + 26 Nov 2012; Alexandre Rostovtsev + +libxml2-2.8.0-r3.ebuild, + +files/libxml2-2.8.0-xmlParseAttValueComplex-underflow.patch: + Fix buffer underflow (bug #444836, CVE-2012-5134, thanks to Mike Gilbert). + + 22 Sep 2012; Pacho Ramos + -files/libxml2-2.8.0_rc1-randomization-threads.patch, + -libxml2-2.8.0-r1.ebuild, -libxml2-2.8.0_rc1.ebuild: + Drop old. + + 18 Sep 2012; Anthony G. Basile libxml2-2.8.0-r2.ebuild: + stable ppc, bug #434344 + + 17 Sep 2012; Anthony G. Basile libxml2-2.8.0-r2.ebuild: + stable ppc64, bug #434344 + + 15 Sep 2012; Raúl Porcel libxml2-2.8.0-r2.ebuild: + alpha/arm/ia64/s390/sh/sparc stable wrt #434344 + + 15 Sep 2012; Andreas Schuerch libxml2-2.8.0-r2.ebuild: + x86 stable, see bug 434344 + + 11 Sep 2012; Agostino Sarubbo libxml2-2.8.0-r2.ebuild: + Stable for amd64, wrt bug #434344 + + 10 Sep 2012; Jeroen Roovers libxml2-2.8.0-r2.ebuild: + Stable for HPPA (bug #434344). + +*libxml2-2.8.0-r2 (09 Sep 2012) + + 09 Sep 2012; Alexandre Rostovtsev + -files/libxml2-2.7.2-winnt.patch, -libxml2-2.7.8-r5.ebuild, + -files/libxml2-2.7.8-allocation-error-copying-entities.patch, + -files/libxml2-2.7.8-error-xpath.patch, + -files/libxml2-2.7.8-hardening-xpath.patch, + -files/libxml2-2.7.8-hash-randomization.patch, + -files/libxml2-2.7.8-reactivate-script.patch, + -files/libxml2-2.7.8-reallocation-failures.patch, + -files/libxml2-2.7.8-windows-thread_t.patch, + -files/libxml2-2.7.8-xpath-freeing.patch, + -files/libxml2-2.7.8-xpath-freeing2.patch, + -files/libxml2-2.7.8-xpath-memory.patch, +libxml2-2.8.0-r2.ebuild: + Add upstream patches to ensure special treatment for namespace nodes + (CVE-2012-2871, bug #434344, thanks to Paweł Hajdan, Jr. and Sean Amoss). + Drop old version. + + 04 Jun 2012; Alexandre Rostovtsev + libxml2-2.8.0-r1.ebuild, +files/libxml2-2.8.0-icu-linking.patch: + De-uglify fix for bug #417539 with an upstreamable patch, thanks to Rafał + Mużyło and Arfrever. + + 29 May 2012; Brent Baude libxml2-2.8.0_rc1.ebuild: + Marking libxml2-2.8.0_rc1 ppc64 for bug 416209 + + 27 May 2012; Jeroen Roovers libxml2-2.8.0-r1.ebuild: + Marked ~hppa (bug #417569). + + 26 May 2012; Raúl Porcel libxml2-2.8.0_rc1.ebuild: + alpha/ia64/m68k/s390/sh/sparc stable wrt #416209 + + 26 May 2012; Alexis Ballier libxml2-2.8.0-r1.ebuild: + keyword ~amd64-fbsd, bug #417569 + + 26 May 2012; Markus Meier libxml2-2.8.0_rc1.ebuild: + arm stable, bug #416209 + +*libxml2-2.8.0-r1 (26 May 2012) + + 26 May 2012; Alexandre Rostovtsev + -libxml2-2.8.0.ebuild, +libxml2-2.8.0-r1.ebuild: + Prevent libxml2's python module from linking to out-of-build-tree libxml2 + library by hacking the relink_command entry in its build-time .la file. Fixes + bug #417539 ("'LIBXML2_2.7.9' not found" errors). Forced to drop hppa and + amd64-fbsd keywords, bug #417569. Drop broken 2.8.0 ebuild. + +*libxml2-2.8.0 (25 May 2012) + + 25 May 2012; Alexandre Rostovtsev + libxml2-2.8.0_rc1.ebuild, +libxml2-2.8.0.ebuild: + Version bump to 2.8.0 final. Point rc1's SRC_URI at Gentoo mirrors since the + rc1 tarball is no longer available from upstream (bug #416209 comment #10). + + 22 May 2012; Jeroen Roovers libxml2-2.8.0_rc1.ebuild: + Stable for HPPA (bug #416209). + + 21 May 2012; Agostino Sarubbo libxml2-2.8.0_rc1.ebuild: + Stable for amd64, wrt bug #416209 + + 21 May 2012; Jeff Horelick libxml2-2.8.0_rc1.ebuild: + marked x86 per bug 416209 + + 21 May 2012; Brent Baude libxml2-2.8.0_rc1.ebuild: + Marking libxml2-2.8.0_rc1 ppc for bug 416209 + + 21 May 2012; Alexandre Rostovtsev + libxml2-2.8.0_rc1.ebuild: + Remove unnecessary definition, thanks to Arfrever for pointing out. + +*libxml2-2.8.0_rc1 (21 May 2012) + + 21 May 2012; Alexandre Rostovtsev + -libxml2-2.7.8-r4.ebuild, +libxml2-2.8.0_rc1.ebuild, + +files/libxml2-2.8.0_rc1-randomization-threads.patch, + +files/libxml2-2.8.0_rc1-winnt.patch: + Version bump with numerous bugfixes, including for bug #416209 (out-of-bounds + write, CVE-2011-3102, thanks to Paweł Hajdan, Jr.). Drop old. + + 26 Apr 2012; Alexis Ballier libxml2-2.7.8-r5.ebuild: + keyword ~amd64-fbsd + + 08 Mar 2012; Alexandre Rostovtsev + libxml2-2.7.8-r5.ebuild, +files/libxml2-2.7.8-windows-thread_t.patch: + Fix building against pthreads-win32 (bug #407371, thanks to Nathan Phillip + Brink (binki)). + + 03 Mar 2012; Raúl Porcel libxml2-2.7.8-r5.ebuild: + arm/ia64/m68k/s390/sh/sparc stable wrt #405261 + + 03 Mar 2012; Brent Baude libxml2-2.7.8-r5.ebuild: + Marking libxml2-2.7.8-r5 ppc64 for bug 405261 + + 02 Mar 2012; Tobias Klausmann libxml2-2.7.8-r5.ebuild: + Stable on alpha, bug #405261 + + 29 Feb 2012; Jeff Horelick libxml2-2.7.8-r5.ebuild: + marked x86 per security bug 405261 + + 28 Feb 2012; Brent Baude libxml2-2.7.8-r5.ebuild: + Marking libxml2-2.7.8-r5 ppc for bug 405261 + + 23 Feb 2012; Agostino Sarubbo libxml2-2.7.8-r5.ebuild: + Stable for AMD64, wrt security bug #405261 + + 23 Feb 2012; Jeroen Roovers libxml2-2.7.8-r5.ebuild: + Stable for HPPA (bug #405261). + +*libxml2-2.7.8-r5 (23 Feb 2012) + + 23 Feb 2012; Alexandre Rostovtsev + -libxml2-2.7.8-r1.ebuild, -libxml2-2.7.8-r2.ebuild, -libxml2-2.7.8-r3.ebuild, + +libxml2-2.7.8-r5.ebuild, +files/libxml2-2.7.8-hash-randomization.patch: + Add hashing randomization to prevent DoS vulnerability (CVE-2012-0841, bug + #405261, thanks to Michael Harrison for reporting). Drop old. + + 20 Feb 2012; Patrick Lauer libxml2-2.7.8-r1.ebuild, + libxml2-2.7.8-r2.ebuild, libxml2-2.7.8-r3.ebuild, libxml2-2.7.8-r4.ebuild: + Restricting pypy #403751 + + 16 Jan 2012; Jeroen Roovers libxml2-2.7.8-r4.ebuild: + Stable for HPPA (bug #398361). + + 14 Jan 2012; Raúl Porcel libxml2-2.7.8-r4.ebuild: + alpha/arm/ia64/m68k/s390/sh/sparc stable wrt #398361 + + 12 Jan 2012; Pawel Hajdan jr libxml2-2.7.8-r4.ebuild: + x86 stable wrt bug #398361 + + 11 Jan 2012; Mark Loeser libxml2-2.7.8-r4.ebuild: + Stable for ppc/ppc64; bug #398361 + + 10 Jan 2012; Agostino Sarubbo libxml2-2.7.8-r4.ebuild: + Stable for AMD64, wrt security bug #398361 + +*libxml2-2.7.8-r4 (10 Jan 2012) + + 10 Jan 2012; Alexandre Rostovtsev + +libxml2-2.7.8-r4.ebuild, + +files/libxml2-2.7.8-allocation-error-copying-entities.patch: + Fix heap-based overflow in parsing long entity references (CVE-2011-3919, bug + #398361, thanks to Agostino Sarubbo for reporting). + + 30 Oct 2011; Raúl Porcel libxml2-2.7.8-r3.ebuild: + alpha/ia64/m68k/s390/sh/sparc stable wrt #385699 + + 28 Oct 2011; Markus Meier libxml2-2.7.8-r3.ebuild: + arm stable, bug #385699 + + 21 Oct 2011; Pawel Hajdan jr libxml2-2.7.8-r3.ebuild: + x86 stable wrt bug #385699 + + 20 Oct 2011; Tony Vroon libxml2-2.7.8-r3.ebuild: + Marked stable on AMD64 based on arch testing by Agostino "ago" Sarubbo & Ian + "idella4" Delaney in security bug #386985. + + 18 Oct 2011; Jeroen Roovers libxml2-2.7.8-r3.ebuild: + Stable for HPPA (bug #385699). + + 18 Oct 2011; Jeroen Roovers libxml2-2.7.8-r2.ebuild: + Stable for HPPA (bug #385699). + + 16 Oct 2011; Kacper Kowalik libxml2-2.7.8-r3.ebuild: + ppc/ppc64 stable wrt #386985 + +*libxml2-2.7.8-r3 (15 Oct 2011) + + 15 Oct 2011; Pacho Ramos -libxml2-2.7.8.ebuild, + +libxml2-2.7.8-r3.ebuild, +files/libxml2-2.7.8-error-xpath.patch, + +files/libxml2-2.7.8-hardening-xpath.patch: + Fix CVE-2011-{2821,2834}, bug #386985, thanks to Michael Harrison and Tim + Sammut. Remove old. + + 14 Oct 2011; Samuli Suominen libxml2-2.7.8-r2.ebuild: + amd64 stable wrt #385699 + +*libxml2-2.7.8-r2 (14 Aug 2011) + + 14 Aug 2011; Nirbheek Chauhan +libxml2-2.7.8-r2.ebuild: + USE=static-libs support, bug 378249 + + 03 Jul 2011; Kacper Kowalik libxml2-2.7.8-r1.ebuild: + ppc64 stable wrt #370715 + + 22 Jun 2011; Brent Baude libxml2-2.7.8-r1.ebuild: + Marking libxml2-2.7.8-r1 ppc for bug 370715 + + 19 Jun 2011; Raúl Porcel libxml2-2.7.8-r1.ebuild: + alpha/ia64/m68k/s390/sh/sparc stable wrt #370715 + + 14 Jun 2011; Markus Meier libxml2-2.7.8-r1.ebuild: + amd64/arm stable, bug #370715 + + 14 Jun 2011; Pawel Hajdan jr libxml2-2.7.8-r1.ebuild: + x86 stable wrt bug #370715 + + 14 Jun 2011; Jeroen Roovers libxml2-2.7.8-r1.ebuild: + Stable for HPPA (bug #370715). + +*libxml2-2.7.8-r1 (13 Jun 2011) + + 13 Jun 2011; Pacho Ramos -libxml2-2.7.7.ebuild, + +libxml2-2.7.8-r1.ebuild, +files/libxml2-2.7.8-reallocation-failures.patch: + Fix some potential problems on reallocation failures (CVE-2011-1944), bug + #370715 by Sylvia. Remove old. 26 Feb 2011; Arfrever Frehtes Taifersar Arahesis libxml2-2.7.8.ebuild, +files/libxml2-2.7.8-disable_static_modules.patch: diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/Manifest index 5889e00abc..97dbd8421d 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/Manifest @@ -1,3 +1,39 @@ -DIST libxml2-2.7.8.tar.gz 4881808 RMD160 30709622cfe3e2175e73d6701b7e19a25ab5ac47 SHA1 859dd535edbb851cc15b64740ee06551a7a17d40 SHA256 cda23bc9ebd26474ca8f3d67e7d1c4a1f1e7106364b690d822e009fdc3c417ec -DIST xsts-2002-01-16.tar.gz 6894439 RMD160 e8905fe1451a1c367b0104af24edca73bad1db08 SHA1 ca6344e6c47f8c28231f5b213d0c8deb0311a409 SHA256 55e5c08db29946a91ea8e70e8f2418d3fd30d8b6777941dfba7f54726ffd9914 -DIST xsts-2004-01-14.tar.gz 2761085 RMD160 faff2d7826e47ae9968564bc83dab1b54c5e4bf6 SHA1 5896c2aa2cda464246306c5cf0577ed506eefaab SHA256 09bdf9f81f381ebf9bc158a9472e498e896f7a02eb7461146e9abe1b9493ca17 +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA256 + +AUX libxml2-2.7.1-catalog_path.patch 2209 SHA256 b3343f0611f9cb6e55bf62047a988653e3e9cc50f194b18adbc330b455236290 SHA512 99c1953865c560d2b7a01cf5fd61b1c5150857f3df8a9753ca583f6ff0a99e01c02d2586bb12220a615cf9c40a540dbe0d17996c0547bc0d20cbeefd6b45682d WHIRLPOOL 9b4daf434b38a0ae8103f02625ae033e7a94012a18cabc981f34b93fe8b422477905b74cfee300eb6a37e1af8bd358dd84804a5d0b6be8645ae9ee3e4c6fcd9b +AUX libxml2-2.7.8-disable_static_modules.patch 365 SHA256 2f2ade9ee034af32cbd6600d45b2e23d3153dd9bb57a07a9f364836d24b189df SHA512 021c81b33802877d6fe11c8b8df86a9d4ed3dd5a7944c544abd40228805ffcab9cce9fb48b4299c164abf66d0b9815153f86851e3ebbf5004b76fe03cc54ed7e WHIRLPOOL 0c95f97d5d7fecf04f59020ae60d58d216770dce7711370f6c394ea1796c81c7087599c52a31640e27e0f60464da26e3e72a7014fbc6b9739aa2af222a73b53e +AUX libxml2-2.8.0-icu-linking.patch 3890 SHA256 69b37a49e8b9f0d71eda75a2c438426373c96290cd57a7f2c662a82066ce3b2b SHA512 c4caffcbf5e4baef4564fa9cf93a539622da61b849f2505360e0ca2243a5433cf2a318cd4df5e338bbe1a8650763d5af2894ce5d1b16196ada7b96983031c712 WHIRLPOOL 3716f2ed5cfb9fcf1024c17aa4d26a83f68c13a2d57ab64c52ba26676b6f681ad48575ac5070a679fd9ed3b3b1d11f2270bb2f281fd639159d545e5d816c3eaf +AUX libxml2-2.8.0-xmlParseAttValueComplex-underflow.patch 692 SHA256 fd86a145f57c425f00d55a0ac515442ecb22a76462a256797a7b1d385953997f SHA512 1ef15347ddf7c34649b7664a2f9164f906ce2d4019280c2543d7209010626f3aadbba9abafb26b4bce64f6c51cfad417a1a5a4caab4a836989f753f05083cb3d WHIRLPOOL 582f19fa221fc6815ec977c6c8e74fcd5556299c10791f1be6eee1db4bfc11f509e02c157ae5afbe6cda89cf694dd82aae367425bee8e029408063d013b315df +AUX libxml2-2.8.0_rc1-winnt.patch 2392 SHA256 c18b2c15550b3ff4709a85cd18d16368928319b1b7fd8875dc34acd67076b134 SHA512 e78d010c82f18386b4f0ff84497585755b43416563bccd11f8e4dbf0153ca8842934fe05dce6c2373d8360574a2165795a78ea991682aed9610000d2bfcb0164 WHIRLPOOL a87eefa17ad113ae4aed14744715b4e1781e0869a3bb789bdf4f243bdb3687d0d4b6ee2addc85bf5b2f86b9d1cc442d946f0329011f033e3a7855ae0ad79b745 +AUX libxml2-2.9.0-disable_static_modules.patch 837 SHA256 745a4c7006874fbbbf30bd4ed07622a496445bf848a60f5ad5100889016f482a SHA512 7ced4510bcd3380f2910cac7420ab727de931939b9012f4ba034b66b32803f4e773fd81850451aa8a24530cc2d0898cebb3a329b42ab3c5daa41be63ae4303ec WHIRLPOOL 1584c94b2f8c583caa84a2ee8e2b23e31a3ef7060dba7f6c0c73fcdf7ec529e9cdc33294781465779ca7d7e6ef5265d7c0d158947ca5b3a7ba0a083333453a67 +AUX libxml2-2.9.0-large-file-parse.patch 1597 SHA256 c7ae7c9e94720f7ef1adfc5e60b0559a7a0ca0b302e8058b994f0b84b97f9ab6 SHA512 e049379b2e8cc26f6a6e348842eaa3955005834f61d56c53538ee0bd8a7cdda5cc51df8ed590a37799b1e04e692c2ef0954fb5728fb848a2e9d62162e5a761db WHIRLPOOL e360313cbf9b88f3fb6e80da44232a4d5ca84a43a9528fd2c5f102a4b47cee2da093fef24733afd958fb1c57df89d2ed30d079262b75be747e6e5ead8b3f2976 +AUX libxml2-2.9.0-manual-python.patch 1409 SHA256 647023249861bece60c719c49421a539342ab11a9c9023ee3175e29faaa24974 SHA512 1e06c52c729752d5bb72ac57ec0aa5c384eed49f79d38088eb9514c0a15c0f433309cd60ebfabbe75bf6166d93d1c7eb2a5ba6fd44a18bea8583590fdbcb3f11 WHIRLPOOL ec9653cab65af8833fef1264fe96ceeb8863047a3f699b8e69afbe8e5e47ef50e4e589a62d305d58352f560507cb606e45e1be5603b3b3758474fa192bb51506 +AUX libxml2-2.9.0-nsclean.patch 806 SHA256 3f135045a44423e7e50269bbc2464af50a86f33beef08bb0af6922091b39c9f2 SHA512 6cdf243fe5424a0506645930c7fa1fe38bb43d712bec6f5d88ffb3abfb70ce9af1414ddbde3c5266af53bd3a6a8ef26c5322ae701853ec008a53b9f6dc8b79c5 WHIRLPOOL 92ff510b095214b1a548abe0c19b475cf5d8885a8feec5e804e5e351a468bf5e30af9bacc2744da66b6a488661d9763f8fba1e6ee1de60f7e7602a45415561e0 +AUX libxml2-2.9.0-rand_seed.patch 845 SHA256 3a7c229c664aade8eb454da19f90cae3d9927d4c76859c85070da13c36565f7a SHA512 caca91890785959317943aae8b21dbed4bbc3a93cbee8d52101ee38f554ca464bb423962c4f52adf515361bdaf655b6bd3a664ff7503e8777f0cb9d4938d6eed WHIRLPOOL a3404a6311b433927c44467263235faf407437efbb52fc95d8fc65b42e1ad44b8c0c7181b07e0251aa186c07e74d6350b3568407c0e09a185659740bbe5e668d +AUX libxml2-2.9.0-streaming-validation.patch 1639 SHA256 295f3012c24d96fca5c38ca32449e3651ed85e1592db910631c7ef380b515d26 SHA512 efa42db1bae6cef4ad078d8550939a18f2e796499d428038ac1c1028466b8472963f26ade3142e89a4475c9a0c54daec0909510e7080b34538ff89ad2e82a3f1 WHIRLPOOL 188cc683b6631bb0d01ba941cf2405802cbd02ea7eb8b1a772a8511f948467f53e5a60e0463fab516c4fb11517eb7fa1e4e2d1856a537348ccbf473deae2b2fe +AUX libxml2-2.9.0-thread-alloc.patch 1819 SHA256 ab0e44f05903ea70babeff17aaac09f344c9ce069264ecb4f27f9a6929c6af73 SHA512 80308f3f0087bcc0f08848e10c75b6333247f960190940e7a20575ce41d382fbd46350b0b8631a6c877f8edb06bcc930659c9e9e8ea71bc381f0a4287c22c935 WHIRLPOOL 24c4ba69c70ff949848795418cbfe59326c09a0b90126c67853fe7ee39854a824c56e092e7dacfe6a969eb4d451e6d2354c382c03e6d5c657eab07a50c14babe +AUX libxml2-2.9.0-thread-portability.patch 1385 SHA256 0839bbd63e3eaa083e91e34d3c8a04700d2dc1e8242117f27d941bd16cfd9e32 SHA512 e07933f7c6a2170c822652c2216f90a60f3334a67d6ffa01e3ed9958842b0634bb4c0bb32d410dcbf99f82b091d8398adb4cf3e0666efa62a29084e1f7111ff8 WHIRLPOOL 29301cdc15e4ac04f3f03bf15099a4c70492b6b77f1bd3461613ac465311aabdb2c4dbcdefce5a2494fbbec155079fb50bd1b86904759df3c92734265ea8e405 +DIST libxml2-2.8.0-namespace-node-patches.tar.bz2 4929 SHA256 659f4d9fa8971346f545492474a95e655a84c47fe02978c418528b1ad3e23af2 SHA512 37e4b985ebce9fc69f1e58eccb3281d5bc1786e3d886b5a0649d47d2564a998f95dac3b6214bfc597c993828f9d1c43cd1edb60ded8058c376e4ce024036e06d WHIRLPOOL 4209036c5ae8cdf9ab75d248fbb92e042e343f6f806d2c3fffcfa24bfa97cb156d323bec8b867a8df929b1f19f84f922cfbbd23eda6c490447e545b26f4ccf95 +DIST libxml2-2.8.0.tar.gz 4915203 SHA256 f2e2d0e322685193d1affec83b21dc05d599e17a7306d7b90de95bb5b9ac622a SHA512 e36ca96e5ba18f767346f1310c43d3c8c9a35c53252de18ad63ebce7f1f8df7ae40dd0719b2c6d78f5a64e61be154eec63a36ae738d29e93a9139c524a289ad4 WHIRLPOOL 3731ba80e6f6d6eba4d12d39ff564c81f9c26ff79df8c3f7bd264c5b27332732552186f5e9f3ff10661b1571cda0b75ac966fc65d0cbb3da9e73791f6b2369ad +DIST libxml2-2.9.0.tar.gz 5161069 SHA256 ad25d91958b7212abdc12b9611cfb4dc4e5cddb6d1e9891532f48aacee422b82 SHA512 b13268ea3725a8b534974ece33981b001324164e5687df94b0d15c77189070e2a5d9f08c1646e5492e70a607ca0adf00788772fcf300ac2d4a110e9bf57d4afe WHIRLPOOL 652e3b1e9b4241cd9bb7ab5f5c1261091378693057cb552b7f0517ebf7e48569abefde06707d4b2f56a08c13b693dcec76bdc360d7cd11937464bb4f87161116 +DIST xmlts20080827.tar.gz 638940 SHA256 96151685cec997e1f9f3387e3626d61e6284d4d6e66e0e440c209286c03e9cc7 SHA512 7325d0977c4427fc4944b291ccf896a665f654cc24399e5565c12a849c2bc3aef4fa3ee42a09ac115abcb6570c51a8fbd052c38d64d164279ecdecad5a4e884d WHIRLPOOL 50835380c3ea208df0bf9ce032ed2df69c4c6cb5a53ffdd39a08fb4f1d166f311b2ef2fe0d9911ae1ebff92aeb42f6ea55e727dfe0b7a3b95e6c7240315b3eda +DIST xsts-2002-01-16.tar.gz 6894439 SHA256 55e5c08db29946a91ea8e70e8f2418d3fd30d8b6777941dfba7f54726ffd9914 SHA512 43300af6d39c1e2221b0ed7318fe14c7464eeb6eb030ed1e22eb29b4ab17f014e2a4c8887c3a46ae5d243e3072da27f00f4e285498ae6f1288177d38d1108288 WHIRLPOOL 84dd51959460a4f8aa582d57ad39229c546ca7fe155012c57c368b59f5d31400d8b940a343a7320058330ca611303139cacdffed514783f96406ac5366026b11 +DIST xsts-2004-01-14.tar.gz 2761085 SHA256 09bdf9f81f381ebf9bc158a9472e498e896f7a02eb7461146e9abe1b9493ca17 SHA512 32854388d7e720ad67156baf50bf2bae7bd878ca3e35fd7e44e57cad3f434f69d56bbbedd61509f8a1faf01c9eae74a078df8fe130780b182c05c05cb1c39ebe WHIRLPOOL c46a3bf7d6dd771757f4304995cc177cf51c6cdd0e9778851fc13d3809c7b984690b4f273b3e075abe018110968eb7fc78f5b83170d3e18bacf00a4ed64b213d +EBUILD libxml2-2.8.0-r3.ebuild 6787 SHA256 1afcbec83bf17d8792aea3dc965e6a0ac63cb4434442e93ff33cf67d9d2ba0f2 SHA512 e4cba7a6230f759043001f7c7bca8b9feced7af6007140e6a3a3d4ec7224cce423f14561b591385b24836ac7304c1e64f79f24b32c9fb3368ea04f0259c247b0 WHIRLPOOL 175651d0eb8f217bcfb702677ae473b1c3ac802ac46bf2f00407af232c15894f9480adf4915f3ba2af61ffa9ed16a61ce318d8c367f5df74a5cab3c593059ef9 +EBUILD libxml2-2.8.0-r4.ebuild 6283 SHA256 21a9eb54ca7369ab0cf16e39e2c6c22d6ce52dcfd9325e660efbe5c03f736004 SHA512 bfd2b51676405e6ade1d8f324fb139ec046c7acddaaafdd60b3e81a1266a92bff61d6ec8626a54c3838da249f65a4356316c07f29ffe3eeeaeb5cedd02e5991b WHIRLPOOL a28c56cefc801a5bca6a63685d098c322136987c1dee0e96d33615aa210a4c433d267002a49e1aaf636e3b08e37244dca00e271c951d03ac59421bf2319b0e08 +EBUILD libxml2-2.9.0-r1.ebuild 6252 SHA256 59dcc7aabf53a7d4ca4f44f16c1e2bb4826019296e90c587ea695005bf77c04d SHA512 1a2442497e2b75d64c270c30c5b66e848ad1b0b6fd26cc5ea320bbb7332ff686af32dec0e901e69fbe0e37ba1da052cc150cd73f3da7a2a0ac8959f3540f4f62 WHIRLPOOL 604489ba471231532c266ee2f10d8945e9b770850fcecc0729256db3cf68713722683548e93d068f0f3ffc3fcb4edb07be682c479be4d34de3bf67b4f4ce6014 +EBUILD libxml2-2.9.0.ebuild 6709 SHA256 bd8797034f93eec971d5ab022b04e322f885da1a2b0dbe6679ced1ec59cf59d5 SHA512 9bd9dd5edfcac75a7d270adb8b0a0b1bd8901a235581ace3bee69bf8119454ba08cb22881b11de9bd9946d27be53cd57087e25597c7379eb4e486814068cda50 WHIRLPOOL d79ec012de245dc17b349d112a0ce05400b70a3f4fbff79a2b8eec43ce0d0740abd9f53d55bfa8c480d12f19e9da644e0e0f5131112ff703247193af6203f9fd +MISC ChangeLog 52726 SHA256 1005e7dac38c8fadcf5911d553c0b622f641f44a52beb651ca8cbad2b8e2c6ec SHA512 b735e9d9221b333dd86bf7ca397c3af67c86f6c7aeda73c5d61790806061c807d2d44a46528499721c07db2841e5829c0958a3ca01698dda1830805e03375b3c WHIRLPOOL 30502f01927de02246c9bdaf9a68192a1e7e3c881aa639448e3d888d072a9076e58c20c7cafcb47f0e4a91e051e92fef020a70f9b115d5fe3c8e193a2ffe2cd7 +MISC metadata.xml 158 SHA256 3a7dbca0fdc557de69783e0663e2d76ddab129ea8a19b2d0ef6d3e5d1b947ce1 SHA512 7fbfbd2b3ed1b81867d55648509f778fdbe2091af53727b3426a3c7f453ae7e1663a99fdd2101508b8d6c85b3158459c93551b77a6a394f02d7e11cbc8a5ecf4 WHIRLPOOL 4bcd5662974877d42ebc4361b6eb412bfeea2af7144b436ce7ed152327d554afc321c376625ba0bb85a704b70d86e3c4882dff3573047acddd8ffccf655d4f7e +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v2.0.19 (GNU/Linux) + +iQEcBAEBCAAGBQJQ0B/HAAoJEJ0WA1zPCt1hld8IAIzrzcSfqx45uMET/vQZqjZG +SWHrPKeEgXFxYpZiX3dpwj3/XMk+e2lMoNRj+gWpQLG86uHhHoEtmrG2iUsrXrOQ +Hi2p5VAbTfdvMLcHOQDPog/geiWxmird6Qq0WKuL8vLlJVwe6uDkbNPYYVLhrbvA +SxrSsqss7oQnB/Jei5l3w1Xe/fNatKbpyZ6wJbArwGVSwgzWl/zuD+R4VHgVsTqx +Tmxr++pXG6bMCEUZNq1tlZiMjnqIL2r5dLkS0u/Uvrudnn+W5QjLbwj/KC0E3xxL +KgqkMpnu4kO012KT3YEbmE15xDX965M+oROni368QSXnfIHBw05/ji43OwMEg0o= +=gm7x +-----END PGP SIGNATURE----- diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.7.8-allocation-error-copying-entities.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.7.8-allocation-error-copying-entities.patch new file mode 100644 index 0000000000..c0d943311f --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.7.8-allocation-error-copying-entities.patch @@ -0,0 +1,21 @@ +From 5bd3c061823a8499b27422aee04ea20aae24f03e Mon Sep 17 00:00:00 2001 +From: Daniel Veillard +Date: Fri, 16 Dec 2011 10:53:35 +0000 +Subject: Fix an allocation error when copying entities + +--- +diff --git a/parser.c b/parser.c +index 4e5dcb9..c55e41d 100644 +--- a/parser.c ++++ b/parser.c +@@ -2709,7 +2709,7 @@ xmlStringLenDecodeEntities(xmlParserCtxtPtr ctxt, const xmlChar *str, int len, + + buffer[nbchars++] = '&'; + if (nbchars > buffer_size - i - XML_PARSER_BUFFER_SIZE) { +- growBuffer(buffer, XML_PARSER_BUFFER_SIZE); ++ growBuffer(buffer, i + XML_PARSER_BUFFER_SIZE); + } + for (;i > 0;i--) + buffer[nbchars++] = *cur++; +-- +cgit v0.9.0.2 diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.7.8-error-xpath.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.7.8-error-xpath.patch new file mode 100644 index 0000000000..a12a050741 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.7.8-error-xpath.patch @@ -0,0 +1,62 @@ +From 1d4526f6f4ec8d18c40e2a09b387652a6c1aa2cd Mon Sep 17 00:00:00 2001 +From: Daniel Veillard +Date: Tue, 11 Oct 2011 08:34:34 +0000 +Subject: Fix missing error status in XPath evaluation + +Started by Chris Evans, I added a few more place where the +error should have been set in the evaluation context. +--- +diff --git a/xpath.c b/xpath.c +index bcee2ea..d9d902c 100644 +--- a/xpath.c ++++ b/xpath.c +@@ -2485,6 +2485,7 @@ valuePush(xmlXPathParserContextPtr ctxt, xmlXPathObjectPtr value) + sizeof(ctxt->valueTab[0])); + if (tmp == NULL) { + xmlGenericError(xmlGenericErrorContext, "realloc failed !\n"); ++ ctxt->error = XPATH_MEMORY_ERROR; + return (0); + } + ctxt->valueMax *= 2; +@@ -9340,6 +9341,7 @@ xmlXPathTranslateFunction(xmlXPathParserContextPtr ctxt, int nargs) { + if ( (ch & 0xc0) != 0xc0 ) { + xmlGenericError(xmlGenericErrorContext, + "xmlXPathTranslateFunction: Invalid UTF8 string\n"); ++ /* not asserting an XPath error is probably better */ + break; + } + /* then skip over remaining bytes for this char */ +@@ -9347,6 +9349,7 @@ xmlXPathTranslateFunction(xmlXPathParserContextPtr ctxt, int nargs) { + if ( (*cptr++ & 0xc0) != 0x80 ) { + xmlGenericError(xmlGenericErrorContext, + "xmlXPathTranslateFunction: Invalid UTF8 string\n"); ++ /* not asserting an XPath error is probably better */ + break; + } + if (ch & 0x80) /* must have had error encountered */ +@@ -13410,6 +13413,7 @@ xmlXPathCompOpEval(xmlXPathParserContextPtr ctxt, xmlXPathStepOpPtr op) + xmlGenericError(xmlGenericErrorContext, + "xmlXPathCompOpEval: variable %s bound to undefined prefix %s\n", + (char *) op->value4, (char *)op->value5); ++ ctxt->error = XPATH_UNDEF_PREFIX_ERROR; + return (total); + } + val = xmlXPathVariableLookupNS(ctxt->context, +@@ -13464,6 +13468,7 @@ xmlXPathCompOpEval(xmlXPathParserContextPtr ctxt, xmlXPathStepOpPtr op) + "xmlXPathCompOpEval: function %s bound to undefined prefix %s\n", + (char *)op->value4, (char *)op->value5); + xmlXPathPopFrame(ctxt, frame); ++ ctxt->error = XPATH_UNDEF_PREFIX_ERROR; + return (total); + } + func = xmlXPathFunctionLookupNS(ctxt->context, +@@ -14042,6 +14047,7 @@ xmlXPathCompOpEval(xmlXPathParserContextPtr ctxt, xmlXPathStepOpPtr op) + } + xmlGenericError(xmlGenericErrorContext, + "XPath: unknown precompiled operation %d\n", op->op); ++ ctxt->error = XPATH_INVALID_OPERAND; + return (total); + } + +-- +cgit v0.9.0.2 diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.7.8-hardening-xpath.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.7.8-hardening-xpath.patch new file mode 100644 index 0000000000..8e699ec8c0 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.7.8-hardening-xpath.patch @@ -0,0 +1,224 @@ +From f5048b3e71fc30ad096970b8df6e7af073bae4cb Mon Sep 17 00:00:00 2001 +From: Daniel Veillard +Date: Thu, 18 Aug 2011 09:10:13 +0000 +Subject: Hardening of XPath evaluation + +Add a mechanism of frame for XPath evaluation when entering a function +or a scoped evaluation, also fix a potential problem in predicate +evaluation. +--- +diff --git a/include/libxml/xpath.h b/include/libxml/xpath.h +index 1a9e30e..ddd9dd8 100644 +--- a/include/libxml/xpath.h ++++ b/include/libxml/xpath.h +@@ -68,7 +68,8 @@ typedef enum { + XPATH_UNDEF_PREFIX_ERROR, + XPATH_ENCODING_ERROR, + XPATH_INVALID_CHAR_ERROR, +- XPATH_INVALID_CTXT ++ XPATH_INVALID_CTXT, ++ XPATH_STACK_ERROR + } xmlXPathError; + + /* +@@ -380,6 +381,8 @@ struct _xmlXPathParserContext { + xmlXPathCompExprPtr comp; /* the precompiled expression */ + int xptr; /* it this an XPointer expression */ + xmlNodePtr ancestor; /* used for walking preceding axis */ ++ ++ int valueFrame; /* used to limit Pop on the stack */ + }; + + /************************************************************************ +diff --git a/xpath.c b/xpath.c +index b59ac5a..bcee2ea 100644 +--- a/xpath.c ++++ b/xpath.c +@@ -252,6 +252,7 @@ static const char *xmlXPathErrorMessages[] = { + "Encoding error\n", + "Char out of XML range\n", + "Invalid or incomplete context\n", ++ "Stack usage errror\n", + "?? Unknown error ??\n" /* Must be last in the list! */ + }; + #define MAXERRNO ((int)(sizeof(xmlXPathErrorMessages) / \ +@@ -2398,6 +2399,42 @@ xmlXPathCacheConvertNumber(xmlXPathContextPtr ctxt, xmlXPathObjectPtr val) { + ************************************************************************/ + + /** ++ * xmlXPathSetFrame: ++ * @ctxt: an XPath parser context ++ * ++ * Set the callee evaluation frame ++ * ++ * Returns the previous frame value to be restored once done ++ */ ++static int ++xmlXPathSetFrame(xmlXPathParserContextPtr ctxt) { ++ int ret; ++ ++ if (ctxt == NULL) ++ return(0); ++ ret = ctxt->valueFrame; ++ ctxt->valueFrame = ctxt->valueNr; ++ return(ret); ++} ++ ++/** ++ * xmlXPathPopFrame: ++ * @ctxt: an XPath parser context ++ * @frame: the previous frame value ++ * ++ * Remove the callee evaluation frame ++ */ ++static void ++xmlXPathPopFrame(xmlXPathParserContextPtr ctxt, int frame) { ++ if (ctxt == NULL) ++ return; ++ if (ctxt->valueNr < ctxt->valueFrame) { ++ xmlXPatherror(ctxt, __FILE__, __LINE__, XPATH_STACK_ERROR); ++ } ++ ctxt->valueFrame = frame; ++} ++ ++/** + * valuePop: + * @ctxt: an XPath evaluation context + * +@@ -2412,6 +2449,12 @@ valuePop(xmlXPathParserContextPtr ctxt) + + if ((ctxt == NULL) || (ctxt->valueNr <= 0)) + return (NULL); ++ ++ if (ctxt->valueNr <= ctxt->valueFrame) { ++ xmlXPatherror(ctxt, __FILE__, __LINE__, XPATH_STACK_ERROR); ++ return (NULL); ++ } ++ + ctxt->valueNr--; + if (ctxt->valueNr > 0) + ctxt->value = ctxt->valueTab[ctxt->valueNr - 1]; +@@ -6154,6 +6197,7 @@ xmlXPathCompParserContext(xmlXPathCompExprPtr comp, xmlXPathContextPtr ctxt) { + ret->valueNr = 0; + ret->valueMax = 10; + ret->value = NULL; ++ ret->valueFrame = 0; + + ret->context = ctxt; + ret->comp = comp; +@@ -11711,6 +11755,7 @@ xmlXPathCompOpEvalPositionalPredicate(xmlXPathParserContextPtr ctxt, + xmlXPathObjectPtr contextObj = NULL, exprRes = NULL; + xmlNodePtr oldContextNode, contextNode = NULL; + xmlXPathContextPtr xpctxt = ctxt->context; ++ int frame; + + #ifdef LIBXML_XPTR_ENABLED + /* +@@ -11730,6 +11775,8 @@ xmlXPathCompOpEvalPositionalPredicate(xmlXPathParserContextPtr ctxt, + */ + exprOp = &ctxt->comp->steps[op->ch2]; + for (i = 0; i < set->nodeNr; i++) { ++ xmlXPathObjectPtr tmp; ++ + if (set->nodeTab[i] == NULL) + continue; + +@@ -11757,23 +11804,25 @@ xmlXPathCompOpEvalPositionalPredicate(xmlXPathParserContextPtr ctxt, + xmlXPathNodeSetAddUnique(contextObj->nodesetval, + contextNode); + ++ frame = xmlXPathSetFrame(ctxt); + valuePush(ctxt, contextObj); + res = xmlXPathCompOpEvalToBoolean(ctxt, exprOp, 1); ++ tmp = valuePop(ctxt); ++ xmlXPathPopFrame(ctxt, frame); + + if ((ctxt->error != XPATH_EXPRESSION_OK) || (res == -1)) { +- xmlXPathObjectPtr tmp; +- /* pop the result if any */ +- tmp = valuePop(ctxt); +- if (tmp != contextObj) { ++ while (tmp != contextObj) { + /* + * Free up the result + * then pop off contextObj, which will be freed later + */ + xmlXPathReleaseObject(xpctxt, tmp); +- valuePop(ctxt); ++ tmp = valuePop(ctxt); + } + goto evaluation_error; + } ++ /* push the result back onto the stack */ ++ valuePush(ctxt, tmp); + + if (res) + pos++; +@@ -13377,7 +13426,9 @@ xmlXPathCompOpEval(xmlXPathParserContextPtr ctxt, xmlXPathStepOpPtr op) + xmlXPathFunction func; + const xmlChar *oldFunc, *oldFuncURI; + int i; ++ int frame; + ++ frame = xmlXPathSetFrame(ctxt); + if (op->ch1 != -1) + total += + xmlXPathCompOpEval(ctxt, &comp->steps[op->ch1]); +@@ -13385,15 +13436,18 @@ xmlXPathCompOpEval(xmlXPathParserContextPtr ctxt, xmlXPathStepOpPtr op) + xmlGenericError(xmlGenericErrorContext, + "xmlXPathCompOpEval: parameter error\n"); + ctxt->error = XPATH_INVALID_OPERAND; ++ xmlXPathPopFrame(ctxt, frame); + return (total); + } +- for (i = 0; i < op->value; i++) ++ for (i = 0; i < op->value; i++) { + if (ctxt->valueTab[(ctxt->valueNr - 1) - i] == NULL) { + xmlGenericError(xmlGenericErrorContext, + "xmlXPathCompOpEval: parameter error\n"); + ctxt->error = XPATH_INVALID_OPERAND; ++ xmlXPathPopFrame(ctxt, frame); + return (total); + } ++ } + if (op->cache != NULL) + XML_CAST_FPTR(func) = op->cache; + else { +@@ -13409,6 +13463,7 @@ xmlXPathCompOpEval(xmlXPathParserContextPtr ctxt, xmlXPathStepOpPtr op) + xmlGenericError(xmlGenericErrorContext, + "xmlXPathCompOpEval: function %s bound to undefined prefix %s\n", + (char *)op->value4, (char *)op->value5); ++ xmlXPathPopFrame(ctxt, frame); + return (total); + } + func = xmlXPathFunctionLookupNS(ctxt->context, +@@ -13430,6 +13485,7 @@ xmlXPathCompOpEval(xmlXPathParserContextPtr ctxt, xmlXPathStepOpPtr op) + func(ctxt, op->value); + ctxt->context->function = oldFunc; + ctxt->context->functionURI = oldFuncURI; ++ xmlXPathPopFrame(ctxt, frame); + return (total); + } + case XPATH_OP_ARG: +@@ -14333,6 +14389,7 @@ xmlXPathRunEval(xmlXPathParserContextPtr ctxt, int toBool) + ctxt->valueNr = 0; + ctxt->valueMax = 10; + ctxt->value = NULL; ++ ctxt->valueFrame = 0; + } + #ifdef XPATH_STREAMING + if (ctxt->comp->stream) { +diff --git a/xpointer.c b/xpointer.c +index 7a42d02..37afa3a 100644 +--- a/xpointer.c ++++ b/xpointer.c +@@ -1269,6 +1269,7 @@ xmlXPtrEvalXPointer(xmlXPathParserContextPtr ctxt) { + ctxt->valueNr = 0; + ctxt->valueMax = 10; + ctxt->value = NULL; ++ ctxt->valueFrame = 0; + } + SKIP_BLANKS; + if (CUR == '/') { +-- +cgit v0.9.0.2 diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.7.8-reallocation-failures.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.7.8-reallocation-failures.patch new file mode 100644 index 0000000000..a18756cb87 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.7.8-reallocation-failures.patch @@ -0,0 +1,101 @@ +From d7958b21e7f8c447a26bb2436f08402b2c308be4 Mon Sep 17 00:00:00 2001 +From: Chris Evans +Date: Wed, 23 Mar 2011 00:13:06 +0000 +Subject: Fix some potential problems on reallocation failures + +The count was incremented before the allocation +and not fixed in case of failure +* xpath.c: corrects a few instances where the available count of some + structure is updated before we know the allocation actually + succeeds +--- +diff --git a/xpath.c b/xpath.c +index 8b56189..608fe00 100644 +--- a/xpath.c ++++ b/xpath.c +@@ -3522,13 +3522,13 @@ xmlXPathNodeSetAddNs(xmlNodeSetPtr cur, xmlNodePtr node, xmlNsPtr ns) { + } else if (cur->nodeNr == cur->nodeMax) { + xmlNodePtr *temp; + +- cur->nodeMax *= 2; +- temp = (xmlNodePtr *) xmlRealloc(cur->nodeTab, cur->nodeMax * ++ temp = (xmlNodePtr *) xmlRealloc(cur->nodeTab, cur->nodeMax * 2 * + sizeof(xmlNodePtr)); + if (temp == NULL) { + xmlXPathErrMemory(NULL, "growing nodeset\n"); + return; + } ++ cur->nodeMax *= 2; + cur->nodeTab = temp; + } + cur->nodeTab[cur->nodeNr++] = xmlXPathNodeSetDupNs(node, ns); +@@ -3627,14 +3627,14 @@ xmlXPathNodeSetAddUnique(xmlNodeSetPtr cur, xmlNodePtr val) { + } else if (cur->nodeNr == cur->nodeMax) { + xmlNodePtr *temp; + +- cur->nodeMax *= 2; +- temp = (xmlNodePtr *) xmlRealloc(cur->nodeTab, cur->nodeMax * ++ temp = (xmlNodePtr *) xmlRealloc(cur->nodeTab, cur->nodeMax * 2 * + sizeof(xmlNodePtr)); + if (temp == NULL) { + xmlXPathErrMemory(NULL, "growing nodeset\n"); + return; + } + cur->nodeTab = temp; ++ cur->nodeMax *= 2; + } + if (val->type == XML_NAMESPACE_DECL) { + xmlNsPtr ns = (xmlNsPtr) val; +@@ -3738,14 +3738,14 @@ xmlXPathNodeSetMerge(xmlNodeSetPtr val1, xmlNodeSetPtr val2) { + } else if (val1->nodeNr == val1->nodeMax) { + xmlNodePtr *temp; + +- val1->nodeMax *= 2; +- temp = (xmlNodePtr *) xmlRealloc(val1->nodeTab, val1->nodeMax * ++ temp = (xmlNodePtr *) xmlRealloc(val1->nodeTab, val1->nodeMax * 2 * + sizeof(xmlNodePtr)); + if (temp == NULL) { + xmlXPathErrMemory(NULL, "merging nodeset\n"); + return(NULL); + } + val1->nodeTab = temp; ++ val1->nodeMax *= 2; + } + if (n2->type == XML_NAMESPACE_DECL) { + xmlNsPtr ns = (xmlNsPtr) n2; +@@ -3907,14 +3907,14 @@ xmlXPathNodeSetMergeAndClear(xmlNodeSetPtr set1, xmlNodeSetPtr set2, + } else if (set1->nodeNr >= set1->nodeMax) { + xmlNodePtr *temp; + +- set1->nodeMax *= 2; + temp = (xmlNodePtr *) xmlRealloc( +- set1->nodeTab, set1->nodeMax * sizeof(xmlNodePtr)); ++ set1->nodeTab, set1->nodeMax * 2 * sizeof(xmlNodePtr)); + if (temp == NULL) { + xmlXPathErrMemory(NULL, "merging nodeset\n"); + return(NULL); + } + set1->nodeTab = temp; ++ set1->nodeMax *= 2; + } + if (n2->type == XML_NAMESPACE_DECL) { + xmlNsPtr ns = (xmlNsPtr) n2; +@@ -3991,14 +3991,14 @@ xmlXPathNodeSetMergeAndClearNoDupls(xmlNodeSetPtr set1, xmlNodeSetPtr set2, + } else if (set1->nodeNr >= set1->nodeMax) { + xmlNodePtr *temp; + +- set1->nodeMax *= 2; + temp = (xmlNodePtr *) xmlRealloc( +- set1->nodeTab, set1->nodeMax * sizeof(xmlNodePtr)); ++ set1->nodeTab, set1->nodeMax * 2 * sizeof(xmlNodePtr)); + if (temp == NULL) { + xmlXPathErrMemory(NULL, "merging nodeset\n"); + return(NULL); + } + set1->nodeTab = temp; ++ set1->nodeMax *= 2; + } + set1->nodeTab[set1->nodeNr++] = n2; + } +-- +cgit v0.9 diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.7.8-stop-parse.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.7.8-stop-parse.patch new file mode 100644 index 0000000000..01ac5b791b --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.7.8-stop-parse.patch @@ -0,0 +1,53 @@ +Index: third_party/libxml/src/parser.c +=================================================================== +--- third_party/libxml/src/parser.c (revision 100884) ++++ third_party/libxml/src/parser.c (working copy) +@@ -4827,7 +4827,8 @@ + (ctxt->sax->processingInstruction != NULL)) + ctxt->sax->processingInstruction(ctxt->userData, + target, NULL); +- ctxt->instate = state; ++ if (ctxt->instate != XML_PARSER_EOF) ++ ctxt->instate = state; + return; + } + buf = (xmlChar *) xmlMallocAtomic(size * sizeof(xmlChar)); +@@ -4907,7 +4908,8 @@ + } else { + xmlFatalErr(ctxt, XML_ERR_PI_NOT_STARTED, NULL); + } +- ctxt->instate = state; ++ if (ctxt->instate != XML_PARSER_EOF) ++ ctxt->instate = state; + } + } + +@@ -9466,6 +9468,8 @@ + else + name = xmlParseStartTag(ctxt); + #endif /* LIBXML_SAX1_ENABLED */ ++ if (ctxt->instate == XML_PARSER_EOF) ++ return; + if (name == NULL) { + spacePop(ctxt); + return; +@@ -10845,6 +10849,8 @@ + else + name = xmlParseStartTag(ctxt); + #endif /* LIBXML_SAX1_ENABLED */ ++ if (ctxt->instate == XML_PARSER_EOF) ++ goto done; + if (name == NULL) { + spacePop(ctxt); + ctxt->instate = XML_PARSER_EOF; +@@ -11031,7 +11037,9 @@ + else + xmlParseEndTag1(ctxt, 0); + #endif /* LIBXML_SAX1_ENABLED */ +- if (ctxt->nameNr == 0) { ++ if (ctxt->instate == XML_PARSER_EOF) { ++ /* Nothing */ ++ } else if (ctxt->nameNr == 0) { + ctxt->instate = XML_PARSER_EPILOG; + } else { + ctxt->instate = XML_PARSER_CONTENT; diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.7.8-utf-8.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.7.8-utf-8.patch new file mode 100644 index 0000000000..45c91615a9 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.7.8-utf-8.patch @@ -0,0 +1,22 @@ +Index: third_party/libxml/src/xmlsave.c +=================================================================== +--- third_party/libxml/src/xmlsave.c (revision 117989) ++++ third_party/libxml/src/xmlsave.c (working copy) +@@ -248,7 +248,7 @@ + /* + * We assume we have UTF-8 input. + */ +- if (outend - out < 10) break; ++ if (outend - out < 11) break; + + if (*in < 0xC0) { + xmlSaveErr(XML_SAVE_NOT_UTF8, NULL, NULL); +@@ -1928,7 +1928,7 @@ + /* + * We assume we have UTF-8 content. + */ +- unsigned char tmp[10]; ++ unsigned char tmp[12]; + int val = 0, l = 1; + + if (base != cur) diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.8.0-icu-linking.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.8.0-icu-linking.patch new file mode 100644 index 0000000000..92c9a98c65 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.8.0-icu-linking.patch @@ -0,0 +1,125 @@ +From 6ee653ecbef38c0e57860903541f1f3c97dbe75b Mon Sep 17 00:00:00 2001 +From: Arfrever Frehtes Taifersar Arahesis +Date: Sat, 26 May 2012 17:37:43 +0000 +Subject: [PATCH] Handle ICU_LIBS as LIBADD, not LDFLAGS to prevent linking + errors + +--- + Makefile.am | 2 +- + configure.in | 15 ++++++++------- + libxml-2.0-uninstalled.pc.in | 2 +- + libxml-2.0.pc.in | 2 +- + 4 files changed, 11 insertions(+), 10 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index f82cefa..0b25666 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -18,7 +18,7 @@ bin_PROGRAMS = xmllint xmlcatalog + bin_SCRIPTS=xml2-config + + lib_LTLIBRARIES = libxml2.la +-libxml2_la_LIBADD = @THREAD_LIBS@ @Z_LIBS@ @LZMA_LIBS@ $(ICONV_LIBS) @M_LIBS@ @WIN32_EXTRA_LIBADD@ ++libxml2_la_LIBADD = @ICU_LIBS@ @THREAD_LIBS@ @Z_LIBS@ @LZMA_LIBS@ $(ICONV_LIBS) @M_LIBS@ @WIN32_EXTRA_LIBADD@ + + if USE_VERSION_SCRIPT + LIBXML2_VERSION_SCRIPT = $(VERSION_SCRIPT_FLAGS)$(srcdir)/libxml2.syms +diff --git a/configure.in b/configure.in +index 0fb4983..ac45b58 100644 +--- a/configure.in ++++ b/configure.in +@@ -97,7 +97,7 @@ dnl + dnl zlib option might change flags, so we save them initially + dnl + _cppflags="${CPPFLAGS}" +-_ldflags="${LDFLAGS}" ++_libs="${LIBS}" + + AC_ARG_WITH(c14n, + [ --with-c14n add the Canonicalization support (on)]) +@@ -154,7 +154,7 @@ AC_ARG_WITH(readline, + if test "$withval" != "no" -a "$withval" != "yes"; then + RDL_DIR=$withval + CPPFLAGS="${CPPFLAGS} -I$withval/include" +- LDFLAGS="${LDFLAGS} -L$withval/lib" ++ LIBS="${LIBS} -L$withval/lib" + fi + ]) + AC_ARG_WITH(regexps, +@@ -190,7 +190,7 @@ AC_ARG_WITH(zlib, + if test "$withval" != "no" -a "$withval" != "yes"; then + Z_DIR=$withval + CPPFLAGS="${CPPFLAGS} -I$withval/include" +- LDFLAGS="${LDFLAGS} -L$withval/lib" ++ LIBS="${LIBS} -L$withval/lib" + fi + ]) + AC_ARG_WITH(lzma, +@@ -198,7 +198,7 @@ AC_ARG_WITH(lzma, + if test "$withval" != "no" -a "$withval" != "yes"; then + LZMA_DIR=$withval + CPPFLAGS="${CPPFLAGS} -I$withval/include" +- LDFLAGS="${LDFLAGS} -L$withval/lib" ++ LIBS="${LIBS} -L$withval/lib" + fi + ]) + AC_ARG_WITH(coverage, +@@ -428,7 +428,7 @@ AC_SUBST(LZMA_LIBS) + AC_SUBST(WITH_LZMA) + + CPPFLAGS=${_cppflags} +-LDFLAGS=${_ldflags} ++LIBS=${_libs} + + echo Checking headers + +@@ -1365,14 +1365,14 @@ XML_LIBTOOLLIBS="libxml2.la" + AC_SUBST(WITH_ICONV) + + WITH_ICU=0 ++ICU_LIBS="" + if test "$with_icu" != "yes" ; then + echo Disabling ICU support + else + ICU_CONFIG=icu-config + if ${ICU_CONFIG} --cflags >/dev/null 2>&1 + then +- ICU_LIBS=`icu-config --ldflags` +- LDFLAGS="$LDFLAGS $ICU_LIBS" ++ ICU_LIBS=`${ICU_CONFIG} --ldflags` + WITH_ICU=1 + echo Enabling ICU support + else +@@ -1380,6 +1380,7 @@ else + fi + fi + AC_SUBST(WITH_ICU) ++AC_SUBST(ICU_LIBS) + + WITH_ISO8859X=1 + if test "$WITH_ICONV" != "1" ; then +diff --git a/libxml-2.0-uninstalled.pc.in b/libxml-2.0-uninstalled.pc.in +index 0a4c833..cab6834 100644 +--- a/libxml-2.0-uninstalled.pc.in ++++ b/libxml-2.0-uninstalled.pc.in +@@ -8,5 +8,5 @@ Name: libXML + Version: @VERSION@ + Description: libXML library version2. + Requires: +-Libs: -L${libdir} -lxml2 @THREAD_LIBS@ @Z_LIBS@ @ICONV_LIBS@ @M_LIBS@ @LIBS@ ++Libs: -L${libdir} -lxml2 @ICU_LIBS@ @THREAD_LIBS@ @Z_LIBS@ @ICONV_LIBS@ @M_LIBS@ @LIBS@ + Cflags: -I${includedir} @XML_INCLUDEDIR@ @XML_CFLAGS@ +diff --git a/libxml-2.0.pc.in b/libxml-2.0.pc.in +index 31a1b8c..f5f5f03 100644 +--- a/libxml-2.0.pc.in ++++ b/libxml-2.0.pc.in +@@ -9,5 +9,5 @@ Version: @VERSION@ + Description: libXML library version2. + Requires: + Libs: -L${libdir} -lxml2 +-Libs.private: @THREAD_LIBS@ @Z_LIBS@ @ICONV_LIBS@ @M_LIBS@ @WIN32_EXTRA_LIBADD@ @LIBS@ ++Libs.private: @ICU_LIBS@ @THREAD_LIBS@ @Z_LIBS@ @ICONV_LIBS@ @M_LIBS@ @WIN32_EXTRA_LIBADD@ @LIBS@ + Cflags: @XML_INCLUDEDIR@ @XML_CFLAGS@ +-- +1.7.8.6 + diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.8.0-xmlParseAttValueComplex-underflow.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.8.0-xmlParseAttValueComplex-underflow.patch new file mode 100644 index 0000000000..be9cfee03a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.8.0-xmlParseAttValueComplex-underflow.patch @@ -0,0 +1,25 @@ +From 6a36fbe3b3e001a8a840b5c1fdd81cefc9947f0d Mon Sep 17 00:00:00 2001 +From: Daniel Veillard +Date: Mon, 29 Oct 2012 10:39:55 +0800 +Subject: [PATCH] Fix potential out of bound access + +--- + parser.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/parser.c b/parser.c +index 0d8d7f2..bd634e9 100644 +--- a/parser.c ++++ b/parser.c +@@ -4076,7 +4076,7 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { + goto error; + + if ((in_space) && (normalize)) { +- while (buf[len - 1] == 0x20) len--; ++ while ((len > 0) && (buf[len - 1] == 0x20)) len--; + } + buf[len] = 0; + if (RAW == '<') { +-- +1.8.0 + diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.8.0_rc1-winnt.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.8.0_rc1-winnt.patch new file mode 100644 index 0000000000..cce3ecb058 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.8.0_rc1-winnt.patch @@ -0,0 +1,91 @@ +From 168e20836fe9614dd2dd4b42006c17a783f11c48 Mon Sep 17 00:00:00 2001 +From: Markus Duft +Date: Thu, 20 Nov 2008 11:04:33 -0500 +Subject: [PATCH] Fix for ~x86-winnt + +[Alexandre Rostovtsev : port to 2.8.0-rc1] +--- + dict.c | 2 +- + include/wsockcompat.h | 2 +- + nanohttp.c | 2 +- + xmlIO.c | 4 ++++ + 4 files changed, 7 insertions(+), 3 deletions(-) + +diff --git a/dict.c b/dict.c +index 3579f64..71e7bc6 100644 +--- a/dict.c ++++ b/dict.c +@@ -47,7 +47,7 @@ + #else + #ifdef HAVE_INTTYPES_H + #include +-#elif defined(WIN32) ++#elif defined(WIN32) || defined (__PARITY__) + typedef unsigned __int32 uint32_t; + #endif + #endif +diff --git a/include/wsockcompat.h b/include/wsockcompat.h +index c762a64..1ed822b 100644 +--- a/include/wsockcompat.h ++++ b/include/wsockcompat.h +@@ -27,7 +27,7 @@ + #endif + #endif + +-#if defined( __MINGW32__ ) || defined( _MSC_VER ) ++#if defined( __MINGW32__ ) || defined( _MSC_VER ) || defined(__PARITY__) + /* Include here to ensure that it doesn't get included later + * (e.g. by iconv.h) and overwrites the definition of EWOULDBLOCK. */ + #include +diff --git a/nanohttp.c b/nanohttp.c +index 2437fed..dbe97a7 100644 +--- a/nanohttp.c ++++ b/nanohttp.c +@@ -74,7 +74,7 @@ + #define XML_SOCKLEN_T unsigned int + #endif + +-#if defined(__MINGW32__) || defined(_WIN32_WCE) ++#if defined(__MINGW32__) || defined(_WIN32_WCE) || defined(__PARITY__) + #ifndef _WINSOCKAPI_ + #define _WINSOCKAPI_ + #endif +diff --git a/xmlIO.c b/xmlIO.c +index 73a995d..99562f6 100644 +--- a/xmlIO.c ++++ b/xmlIO.c +@@ -47,6 +47,7 @@ + #include /* for CP_UTF8 */ + #endif + ++#ifndef __PARITY__ + /* Figure a portable way to know if a file is a directory. */ + #ifndef HAVE_STAT + # ifdef HAVE__STAT +@@ -82,6 +83,7 @@ + # endif + # endif + #endif ++#endif /* __PARITY__ */ + + #include + #include +@@ -657,6 +659,7 @@ xmlWrapStatUtf8(const char *path,struct stat *info) + { + #ifdef HAVE_STAT + int retval = -1; ++#ifndef __PARITY__ + wchar_t *wPath; + + wPath = __xmlIOWin32UTF8ToWChar(path); +@@ -665,6 +668,7 @@ xmlWrapStatUtf8(const char *path,struct stat *info) + retval = _wstat(wPath,info); + xmlFree(wPath); + } ++#endif + /* maybe path in native encoding */ + if(retval < 0) + retval = stat(path,info); +-- +1.7.8.6 + diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.9.0-disable_static_modules.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.9.0-disable_static_modules.patch new file mode 100644 index 0000000000..a7a8215d86 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.9.0-disable_static_modules.patch @@ -0,0 +1,21 @@ +diff --git a/python/Makefile.am b/python/Makefile.am +index 4a8b5d5..b976893 100644 +--- a/python/Makefile.am ++++ b/python/Makefile.am +@@ -19,13 +19,14 @@ if WITH_PYTHON + AM_CPPFLAGS = \ + -I$(top_builddir)/include \ + -I$(top_srcdir)/include \ +- -I$(PYTHON_INCLUDES) ++ -I$(PYTHON_INCLUDES) \ ++ -shared + + python_LTLIBRARIES = libxml2mod.la + + libxml2mod_la_SOURCES = libxml.c libxml_wrap.h libxml2-py.h libxml2-py.c types.c + libxml2mod_la_LIBADD = $(top_builddir)/libxml2.la $(CYGWIN_EXTRA_PYTHON_LIBADD) $(WIN32_EXTRA_PYTHON_LIBADD) $(PYTHON_LIBS) -lpython$(PYTHON_VERSION) +-libxml2mod_la_LDFLAGS = $(CYGWIN_EXTRA_LDFLAGS) $(WIN32_EXTRA_LDFLAGS) -module -avoid-version ++libxml2mod_la_LDFLAGS = $(CYGWIN_EXTRA_LDFLAGS) $(WIN32_EXTRA_LDFLAGS) -module -avoid-version -shared + + BUILT_SOURCES = libxml2-export.c libxml2-py.h libxml2-py.c + diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.9.0-large-file-parse.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.9.0-large-file-parse.patch new file mode 100644 index 0000000000..61de4d624a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.9.0-large-file-parse.patch @@ -0,0 +1,56 @@ +From 153cf15905cf4ec080612ada6703757d10caba1e Mon Sep 17 00:00:00 2001 +From: Daniel Veillard +Date: Fri, 26 Oct 2012 13:50:47 +0800 +Subject: [PATCH] Fix large parse of file from memory + +https://bugzilla.redhat.com/show_bug.cgi?id=862969 +The new code trying to detect excessive input lookup would +just get wrong sometimes in the case of very large file parsed +directly from memory. +--- + libxml.h | 2 ++ + parser.c | 1 + + xmlIO.c | 2 +- + 3 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/libxml.h b/libxml.h +index efe285b..7558b5f 100644 +--- a/libxml.h ++++ b/libxml.h +@@ -91,6 +91,8 @@ void __xmlGlobalInitMutexDestroy(void); + int __xmlRandom(void); + #endif + ++int xmlNop(void); ++ + #ifdef IN_LIBXML + #ifdef __GNUC__ + #ifdef PIC +diff --git a/parser.c b/parser.c +index 43f53d9..0d8d7f2 100644 +--- a/parser.c ++++ b/parser.c +@@ -2025,6 +2025,7 @@ static void xmlSHRINK (xmlParserCtxtPtr ctxt) { + static void xmlGROW (xmlParserCtxtPtr ctxt) { + if ((((ctxt->input->end - ctxt->input->cur) > XML_MAX_LOOKUP_LIMIT) || + ((ctxt->input->cur - ctxt->input->base) > XML_MAX_LOOKUP_LIMIT)) && ++ ((ctxt->input->buf) && (ctxt->input->buf->readcallback != xmlNop)) && + ((ctxt->options & XML_PARSE_HUGE) == 0)) { + xmlFatalErr(ctxt, XML_ERR_INTERNAL_ERROR, "Huge input lookup"); + ctxt->instate = XML_PARSER_EOF; +diff --git a/xmlIO.c b/xmlIO.c +index f8f438b..44254e4 100644 +--- a/xmlIO.c ++++ b/xmlIO.c +@@ -800,7 +800,7 @@ xmlCheckFilename (const char *path) + return 1; + } + +-static int ++int + xmlNop(void) { + return(0); + } +-- +1.8.0 + diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.9.0-manual-python.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.9.0-manual-python.patch new file mode 100644 index 0000000000..2ebb4f040a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.9.0-manual-python.patch @@ -0,0 +1,45 @@ +From 2a74d41325c9e8043a2beec8b957ddf66f57cfd5 Mon Sep 17 00:00:00 2001 +From: Alexandre Rostovtsev +Date: Tue, 18 Dec 2012 02:09:14 -0500 +Subject: [PATCH] build/test/install python bindings manually + +To support building for multiple python ABIs, we want to skip checks for +python in configure, and build/test/install python bindings manually. +--- + configure.in | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/configure.in b/configure.in +index 3d5f48b..b467c51 100644 +--- a/configure.in ++++ b/configure.in +@@ -748,7 +748,7 @@ PYTHON_INCLUDES= + PYTHON_SITE_PACKAGES= + PYTHON_TESTS= + pythondir= +-if test "$with_python" != "no" ; then ++if false ; then + if test -x "$with_python/bin/python" + then + echo Found python in $with_python/bin/python +@@ -823,7 +823,7 @@ if test "$with_python" != "no" ; then + else + PYTHON= + fi +-AM_CONDITIONAL(WITH_PYTHON, test "$PYTHON_INCLUDES" != "") ++AM_CONDITIONAL(WITH_PYTHON, test "$with_python" != "no") + if test "$PYTHON_INCLUDES" != "" + then + PYTHON_SUBDIR=python +@@ -1429,7 +1429,7 @@ else + echo "Enabled Schemas/Relax-NG support" + WITH_SCHEMAS=1 + TEST_SCHEMAS="Schemastests Relaxtests" +- if test "$PYTHON_INCLUDES" != "" ; then ++ if test "$with_python" != "no" ; then + PYTHON_TESTS="$PYTHON_TESTS RelaxNGPythonTests SchemasPythonTests" + fi + with_regexps=yes +-- +1.8.0.2 + diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.9.0-nsclean.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.9.0-nsclean.patch new file mode 100644 index 0000000000..994363fa9d --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.9.0-nsclean.patch @@ -0,0 +1,27 @@ +From 711b15d545713b3a34a51ce8163d1162533647c9 Mon Sep 17 00:00:00 2001 +From: Daniel Veillard +Date: Thu, 25 Oct 2012 19:23:26 +0800 +Subject: [PATCH] Fix a bug in the nsclean option of the parser + +Raised as a side effect of: +https://bugzilla.gnome.org/show_bug.cgi?id=663844 +--- + parser.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/parser.c b/parser.c +index 19f1217..43f53d9 100644 +--- a/parser.c ++++ b/parser.c +@@ -1540,7 +1540,7 @@ nsPush(xmlParserCtxtPtr ctxt, const xmlChar *prefix, const xmlChar *URL) + { + if (ctxt->options & XML_PARSE_NSCLEAN) { + int i; +- for (i = 0;i < ctxt->nsNr;i += 2) { ++ for (i = ctxt->nsNr - 2;i >= 0;i -= 2) { + if (ctxt->nsTab[i] == prefix) { + /* in scope */ + if (ctxt->nsTab[i + 1] == URL) +-- +1.8.0 + diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.9.0-rand_seed.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.9.0-rand_seed.patch new file mode 100644 index 0000000000..7798a2c7b2 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.9.0-rand_seed.patch @@ -0,0 +1,31 @@ +From e7715a5963afebfb027120db6914926ec9a7373d Mon Sep 17 00:00:00 2001 +From: Wouter Van Rooy +Date: Fri, 14 Sep 2012 14:39:42 +0800 +Subject: [PATCH] rand_seed should be static in dict.c + +For https://bugzilla.gnome.org/show_bug.cgi?id=683933 +rand_seed should be a static variable in dict.c + +We ran into a problem with another library that exports rand_seed as a +function. Combined with 2.7.8 this was not a problem but later versions +have this problem. +--- + dict.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/dict.c b/dict.c +index 9935a25..164c7f2 100644 +--- a/dict.c ++++ b/dict.c +@@ -143,7 +143,7 @@ static int xmlDictInitialized = 0; + /* + * Internal data for random function, protected by xmlDictMutex + */ +-unsigned int rand_seed = 0; ++static unsigned int rand_seed = 0; + #endif + #endif + +-- +1.8.0 + diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.9.0-streaming-validation.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.9.0-streaming-validation.patch new file mode 100644 index 0000000000..5fa2d6f0c1 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.9.0-streaming-validation.patch @@ -0,0 +1,54 @@ +From 6c91aa384f48ff6d406553a6dd47fd556c1ef2e6 Mon Sep 17 00:00:00 2001 +From: Daniel Veillard +Date: Thu, 25 Oct 2012 15:33:59 +0800 +Subject: [PATCH] Fix a regression in 2.9.0 breaking validation while + streaming + +https://bugzilla.gnome.org/show_bug.cgi?id=684774 +with help from Kjell Ahlstedt +--- + SAX2.c | 2 +- + parser.c | 7 +++++-- + 2 files changed, 6 insertions(+), 3 deletions(-) + +diff --git a/SAX2.c b/SAX2.c +index a24abc8..3eea39a 100644 +--- a/SAX2.c ++++ b/SAX2.c +@@ -2202,7 +2202,7 @@ xmlSAX2StartElementNs(void *ctx, + (ctxt->myDoc->intSubset->elements == NULL) && + (ctxt->myDoc->intSubset->attributes == NULL) && + (ctxt->myDoc->intSubset->entities == NULL)))) { +- xmlErrValid(ctxt, XML_ERR_NO_DTD, ++ xmlErrValid(ctxt, XML_DTD_NO_DTD, + "Validation failed: no DTD found !", NULL, NULL); + ctxt->validate = 0; + } +diff --git a/parser.c b/parser.c +index 28b0d80..19f1217 100644 +--- a/parser.c ++++ b/parser.c +@@ -11633,7 +11633,7 @@ xmlParseTryOrFinish(xmlParserCtxtPtr ctxt, int terminate) { + "PP: Parsing internal subset\n"); + #endif + ctxt->inSubset = 1; +- ctxt->progressive = 1; ++ ctxt->progressive = 0; + ctxt->checkIndex = 0; + xmlParseDocTypeDecl(ctxt); + if (RAW == '[') { +@@ -12219,7 +12219,10 @@ xmldecl_done: + } + ctxt->instate = XML_PARSER_EOF; + } +- return((xmlParserErrors) ctxt->errNo); ++ if (ctxt->wellFormed == 0) ++ return((xmlParserErrors) ctxt->errNo); ++ else ++ return(0); + } + + /************************************************************************ +-- +1.8.0 + diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.9.0-thread-alloc.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.9.0-thread-alloc.patch new file mode 100644 index 0000000000..2d0d5f788a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.9.0-thread-alloc.patch @@ -0,0 +1,65 @@ +From 0ad948ede2b5060a144c72e4e27c38d24a272ef4 Mon Sep 17 00:00:00 2001 +From: Tim Starling +Date: Mon, 29 Oct 2012 13:41:55 +1100 +Subject: [PATCH] Define LIBXML_THREAD_ALLOC_ENABLED via xmlversion.h + +Otherwise, direct calls to xmlFree() etc. from the application will +use a different set of allocation functions to what was used to allocate +the memory internally. +--- + configure.in | 4 +++- + include/libxml/xmlversion.h.in | 9 +++++++++ + 2 files changed, 12 insertions(+), 1 deletion(-) + +diff --git a/configure.in b/configure.in +index 6da057c..245c033 100644 +--- a/configure.in ++++ b/configure.in +@@ -954,6 +954,7 @@ WITH_THREADS=0 + THREAD_CFLAGS="" + TEST_THREADS="" + THREADS_W32="" ++WITH_THREAD_ALLOC=0 + + if test "$with_threads" = "no" ; then + echo Disabling multithreaded support +@@ -1017,7 +1018,7 @@ else + fi + fi + if test "$with_thread_alloc" = "yes" -a "$WITH_THREADS" = "1" ; then +- THREAD_CFLAGS="$THREAD_CFLAGS -DLIBXML_THREAD_ALLOC_ENABLED" ++ WITH_THREAD_ALLOC=1 + fi + + AC_SUBST(THREAD_LIBS) +@@ -1025,6 +1026,7 @@ AC_SUBST(BASE_THREAD_LIBS) + AC_SUBST(WITH_THREADS) + AC_SUBST(THREAD_CFLAGS) + AC_SUBST(TEST_THREADS) ++AC_SUBST(WITH_THREAD_ALLOC) + AM_CONDITIONAL([THREADS_W32],[test -n "$THREADS_W32"]) + + dnl +diff --git a/include/libxml/xmlversion.h.in b/include/libxml/xmlversion.h.in +index c98e7ca..00a836f 100644 +--- a/include/libxml/xmlversion.h.in ++++ b/include/libxml/xmlversion.h.in +@@ -98,6 +98,15 @@ XMLPUBFUN void XMLCALL xmlCheckVersion(int version); + #endif + + /** ++ * LIBXML_THREAD_ALLOC_ENABLED: ++ * ++ * Whether the allocation hooks are per-thread ++ */ ++#if @WITH_THREAD_ALLOC@ ++#define LIBXML_THREAD_ALLOC_ENABLED ++#endif ++ ++/** + * LIBXML_TREE_ENABLED: + * + * Whether the DOM like tree manipulation API support is configured in +-- +1.8.0 + diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.9.0-thread-portability.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.9.0-thread-portability.patch new file mode 100644 index 0000000000..a85d612917 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.9.0-thread-portability.patch @@ -0,0 +1,37 @@ +From 3f6cfbd1d38d0634a2ddcb9a0a13e1b5a2195a5e Mon Sep 17 00:00:00 2001 +From: Friedrich Haubensak +Date: Wed, 12 Sep 2012 17:34:53 +0200 +Subject: [PATCH] Fix a thread portability problem + +cannot compile libxml2-2.9.0 using studio 12.1 compiler on solaris 10 + +I.M.O. structure initializer (as PTHREAD_ONCE_INIT) cannot be used in +a structure assignment anyway +--- + threads.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/threads.c b/threads.c +index f206149..7e85a26 100644 +--- a/threads.c ++++ b/threads.c +@@ -146,6 +146,7 @@ struct _xmlRMutex { + static pthread_key_t globalkey; + static pthread_t mainthread; + static pthread_once_t once_control = PTHREAD_ONCE_INIT; ++static pthread_once_t once_control_init = PTHREAD_ONCE_INIT; + static pthread_mutex_t global_init_lock = PTHREAD_MUTEX_INITIALIZER; + #elif defined HAVE_WIN32_THREADS + #if defined(HAVE_COMPILER_TLS) +@@ -915,7 +916,7 @@ xmlCleanupThreads(void) + #ifdef HAVE_PTHREAD_H + if ((libxml_is_threaded) && (pthread_key_delete != NULL)) + pthread_key_delete(globalkey); +- once_control = PTHREAD_ONCE_INIT; ++ once_control = once_control_init; + #elif defined(HAVE_WIN32_THREADS) && !defined(HAVE_COMPILER_TLS) && (!defined(LIBXML_STATIC) || defined(LIBXML_STATIC_FOR_DLL)) + if (globalkey != TLS_OUT_OF_INDEXES) { + xmlGlobalStateCleanupHelperParams *p; +-- +1.8.0 + diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.7.8-r4.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.7.8-r4.ebuild new file mode 100644 index 0000000000..e2249c4f38 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.7.8-r4.ebuild @@ -0,0 +1,237 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-libs/libxml2/libxml2-2.7.8-r4.ebuild,v 1.6 2012/01/16 02:59:51 jer Exp $ + +EAPI="3" +PYTHON_DEPEND="python? 2" +PYTHON_USE_WITH="-build xml" +PYTHON_USE_WITH_OPT="python" +SUPPORT_PYTHON_ABIS="1" +RESTRICT_PYTHON_ABIS="3.* *-jython" + +inherit libtool flag-o-matic eutils python autotools prefix + +DESCRIPTION="Version 2 of the library to manipulate XML files" +HOMEPAGE="http://www.xmlsoft.org/" + +LICENSE="MIT" +SLOT="2" +KEYWORDS="alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt" +IUSE="debug doc examples icu ipv6 python readline static-libs test" + +XSTS_HOME="http://www.w3.org/XML/2004/xml-schema-test-suite" +XSTS_NAME_1="xmlschema2002-01-16" +XSTS_NAME_2="xmlschema2004-01-14" +XSTS_TARBALL_1="xsts-2002-01-16.tar.gz" +XSTS_TARBALL_2="xsts-2004-01-14.tar.gz" + +SRC_URI="ftp://xmlsoft.org/${PN}/${P}.tar.gz + test? ( + ${XSTS_HOME}/${XSTS_NAME_1}/${XSTS_TARBALL_1} + ${XSTS_HOME}/${XSTS_NAME_2}/${XSTS_TARBALL_2} )" + +RDEPEND="sys-libs/zlib + icu? ( dev-libs/icu ) + readline? ( sys-libs/readline )" + +DEPEND="${RDEPEND} + hppa? ( >=sys-devel/binutils-2.15.92.0.2 )" + +pkg_setup() { + if use python; then + python_pkg_setup + fi +} + +src_unpack() { + # ${A} isn't used to avoid unpacking of test tarballs into $WORKDIR, + # as they are needed as tarballs in ${S}/xstc instead and not unpacked + unpack ${P}.tar.gz + cd "${S}" + + if use test; then + cp "${DISTDIR}/${XSTS_TARBALL_1}" \ + "${DISTDIR}/${XSTS_TARBALL_2}" \ + "${S}"/xstc/ \ + || die "Failed to install test tarballs" + fi +} + +src_prepare() { + # Patches needed for prefix support + epatch "${FILESDIR}"/${PN}-2.7.1-catalog_path.patch + epatch "${FILESDIR}"/${PN}-2.7.2-winnt.patch + + eprefixify catalog.c xmlcatalog.c runtest.c xmllint.c + + epunt_cxx + + # Reactivate the shared library versionning script + epatch "${FILESDIR}/${P}-reactivate-script.patch" + + # Fix a potential memory access error + epatch "${FILESDIR}/${P}-xpath-memory.patch" + + # Fix a potential freeing error in XPath + epatch "${FILESDIR}/${P}-xpath-freeing.patch" + epatch "${FILESDIR}/${P}-xpath-freeing2.patch" + + # Fix some potential problems on reallocation failures + epatch "${FILESDIR}/${P}-reallocation-failures.patch" + + epatch "${FILESDIR}/${P}-disable_static_modules.patch" + + # Hardening of XPath evaluation + epatch "${FILESDIR}/${P}-hardening-xpath.patch" + + # Fix missing error status in XPath evaluation + epatch "${FILESDIR}/${P}-error-xpath.patch" + + # Heap-based overflow in parsing long entity references + epatch "${FILESDIR}/${P}-allocation-error-copying-entities.patch" + + epatch "${FILESDIR}/${P}-stop-parse.patch" + epatch "${FILESDIR}/${P}-utf-8.patch" + + # Please do not remove, as else we get references to PORTAGE_TMPDIR + # in /usr/lib/python?.?/site-packages/libxml2mod.la among things. + # We now need to run eautoreconf at the end to prevent maintainer mode. +# elibtoolize + + # Python bindings are built/tested/installed manually. + sed -e "s/@PYTHON_SUBDIR@//" -i Makefile.am || die "sed failed" + + eautoreconf +} + +src_configure() { + # USE zlib support breaks gnome2 + # (libgnomeprint for instance fails to compile with + # fresh install, and existing) - (22 Dec 2002). + + # The meaning of the 'debug' USE flag does not apply to the --with-debug + # switch (enabling the libxml2 debug module). See bug #100898. + + # --with-mem-debug causes unusual segmentation faults (bug #105120). + + local myconf="--with-html-subdir=${PF}/html + --docdir=${EPREFIX}/usr/share/doc/${PF} + $(use_with debug run-debug) + $(use_with icu) + $(use_with python) + $(use_with readline) + $(use_with readline history) + $(use_enable ipv6) + $(use_enable static-libs static)" + + # filter seemingly problematic CFLAGS (#26320) + filter-flags -fprefetch-loop-arrays -funroll-loops + + econf ${myconf} +} + +src_compile() { + default + + if use python; then + python_copy_sources python + building() { + emake PYTHON_INCLUDES="${EPREFIX}$(python_get_includedir)" \ + PYTHON_SITE_PACKAGES="${EPREFIX}$(python_get_sitedir)" + } + python_execute_function -s --source-dir python building + fi +} + +src_test() { + default + + if use python; then + testing() { + emake test + } + python_execute_function -s --source-dir python testing + fi +} + +src_install() { + emake DESTDIR="${D}" \ + EXAMPLES_DIR="${EPREFIX}"/usr/share/doc/${PF}/examples \ + install || die "Installation failed" + + # on windows, xmllint is installed by interix libxml2 in parent prefix. + # this is the version to use. the native winnt version does not support + # symlinks, which makes repoman fail if the portage tree is linked in + # from another location (which is my default). -- mduft + if [[ ${CHOST} == *-winnt* ]]; then + rm -rf "${ED}"/usr/bin/xmllint + rm -rf "${ED}"/usr/bin/xmlcatalog + fi + + if use python; then + installation() { + emake DESTDIR="${D}" \ + PYTHON_SITE_PACKAGES="${EPREFIX}$(python_get_sitedir)" \ + docsdir="${EPREFIX}"/usr/share/doc/${PF}/python \ + exampledir="${EPREFIX}"/usr/share/doc/${PF}/python/examples \ + install + } + python_execute_function -s --source-dir python installation + + python_clean_installation_image + fi + + rm -rf "${ED}"/usr/share/doc/${P} + dodoc AUTHORS ChangeLog Copyright NEWS README* TODO* || die "dodoc failed" + + if ! use python; then + rm -rf "${ED}"/usr/share/doc/${PF}/python + rm -rf "${ED}"/usr/share/doc/${PN}-python-${PV} + fi + + if ! use doc; then + rm -rf "${ED}"/usr/share/gtk-doc + rm -rf "${ED}"/usr/share/doc/${PF}/html + fi + + if ! use examples; then + rm -rf "${ED}/usr/share/doc/${PF}/examples" + rm -rf "${ED}/usr/share/doc/${PF}/python/examples" + fi + + if ! use static-libs; then + # Remove useless .la files + find "${D}" -name '*.la' -exec rm -f {} + || die "la file removal failed" + fi +} + +pkg_postinst() { + if use python; then + python_mod_optimize drv_libxml2.py libxml2.py + fi + + # We don't want to do the xmlcatalog during stage1, as xmlcatalog will not + # be in / and stage1 builds to ROOT=/tmp/stage1root. This fixes bug #208887. + if [ "${ROOT}" != "/" ] + then + elog "Skipping XML catalog creation for stage building (bug #208887)." + else + # need an XML catalog, so no-one writes to a non-existent one + CATALOG="${EROOT}etc/xml/catalog" + + # we dont want to clobber an existing catalog though, + # only ensure that one is there + # + if [ ! -e ${CATALOG} ]; then + [ -d "${EROOT}etc/xml" ] || mkdir -p "${EROOT}etc/xml" + "${EPREFIX}"/usr/bin/xmlcatalog --create > ${CATALOG} + einfo "Created XML catalog in ${CATALOG}" + fi + fi +} + +pkg_postrm() { + if use python; then + python_mod_cleanup drv_libxml2.py libxml2.py + fi +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.8.0-r3.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.8.0-r3.ebuild new file mode 100644 index 0000000000..1c10030310 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.8.0-r3.ebuild @@ -0,0 +1,228 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-libs/libxml2/libxml2-2.8.0-r3.ebuild,v 1.9 2012/12/15 17:42:56 armin76 Exp $ + +EAPI="4" +PYTHON_DEPEND="python? 2" +PYTHON_USE_WITH="xml" +PYTHON_USE_WITH_OPT="python" +SUPPORT_PYTHON_ABIS="1" +RESTRICT_PYTHON_ABIS="3.* *-jython 2.7-pypy-*" + +inherit libtool flag-o-matic eutils python autotools prefix + +DESCRIPTION="Version 2 of the library to manipulate XML files" +HOMEPAGE="http://www.xmlsoft.org/" + +LICENSE="MIT" +SLOT="2" +KEYWORDS="alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt" +IUSE="debug doc examples icu ipv6 lzma python readline static-libs test" + +XSTS_HOME="http://www.w3.org/XML/2004/xml-schema-test-suite" +XSTS_NAME_1="xmlschema2002-01-16" +XSTS_NAME_2="xmlschema2004-01-14" +XSTS_TARBALL_1="xsts-2002-01-16.tar.gz" +XSTS_TARBALL_2="xsts-2004-01-14.tar.gz" + +SRC_URI="ftp://xmlsoft.org/${PN}/${PN}-${PV/_rc/-rc}.tar.gz + test? ( + ${XSTS_HOME}/${XSTS_NAME_1}/${XSTS_TARBALL_1} + ${XSTS_HOME}/${XSTS_NAME_2}/${XSTS_TARBALL_2} ) + http://dev.gentoo.org/~tetromino/distfiles/${PN}/${P}-namespace-node-patches.tar.bz2" + +RDEPEND="sys-libs/zlib + icu? ( dev-libs/icu ) + lzma? ( app-arch/xz-utils ) + readline? ( sys-libs/readline )" + +DEPEND="${RDEPEND} + hppa? ( >=sys-devel/binutils-2.15.92.0.2 )" + +S="${WORKDIR}/${PN}-${PV%_rc*}" + +pkg_setup() { + use python && python_pkg_setup +} + +src_unpack() { + # ${A} isn't used to avoid unpacking of test tarballs into $WORKDIR, + # as they are needed as tarballs in ${S}/xstc instead and not unpacked + unpack ${P/_rc/-rc}.tar.gz + unpack "${P}-namespace-node-patches.tar.bz2" + cd "${S}" + + if use test; then + cp "${DISTDIR}/${XSTS_TARBALL_1}" \ + "${DISTDIR}/${XSTS_TARBALL_2}" \ + "${S}"/xstc/ \ + || die "Failed to install test tarballs" + fi +} + +src_prepare() { + # Patches needed for prefix support + epatch "${FILESDIR}"/${PN}-2.7.1-catalog_path.patch + epatch "${FILESDIR}"/${PN}-2.8.0_rc1-winnt.patch + + eprefixify catalog.c xmlcatalog.c runtest.c xmllint.c + + epunt_cxx + + epatch "${FILESDIR}/${PN}-2.7.8-disable_static_modules.patch" + + # Prevent linking to out-of-build-tree libxml2, bug #417539 + epatch "${FILESDIR}/${PN}-2.8.0-icu-linking.patch" + + # Namespace nodes require special treatment, bug #434344 + epatch ../patch/*.patch + + # Buffer underflow in xmlParseAttValueComplex, bug #444836; fixed in 2.9.1 + epatch "${FILESDIR}/${PN}-2.8.0-xmlParseAttValueComplex-underflow.patch" + + # Please do not remove, as else we get references to PORTAGE_TMPDIR + # in /usr/lib/python?.?/site-packages/libxml2mod.la among things. + # We now need to run eautoreconf at the end to prevent maintainer mode. +# elibtoolize + + # Python bindings are built/tested/installed manually. + sed -e "s/@PYTHON_SUBDIR@//" -i Makefile.am || die "sed 1 failed" + + # Use Gentoo's python-config naming scheme + sed -e 's/python$PYTHON_VERSION-config/python-config-$PYTHON_VERSION/' \ + -i configure.in || die "sed 2 failed" + + eautoreconf +} + +src_configure() { + # USE zlib support breaks gnome2 + # (libgnomeprint for instance fails to compile with + # fresh install, and existing) - (22 Dec 2002). + + # The meaning of the 'debug' USE flag does not apply to the --with-debug + # switch (enabling the libxml2 debug module). See bug #100898. + + # --with-mem-debug causes unusual segmentation faults (bug #105120). + + local myconf=( + --with-html-subdir=${PF}/html + --docdir="${EPREFIX}/usr/share/doc/${PF}" + $(use_with debug run-debug) + $(use_with icu) + $(use_with lzma) + $(use_with python) + $(use_with readline) + $(use_with readline history) + $(use_enable ipv6) + $(use_enable static-libs static) ) + + # filter seemingly problematic CFLAGS (#26320) + filter-flags -fprefetch-loop-arrays -funroll-loops + + econf "${myconf[@]}" +} + +src_compile() { + default + + if use python; then + python_copy_sources python + building() { + emake PYTHON_INCLUDES="${EPREFIX}$(python_get_includedir)" \ + PYTHON_SITE_PACKAGES="${EPREFIX}$(python_get_sitedir)" + } + python_execute_function -s --source-dir python building + fi +} + +src_test() { + default + + if use python; then + testing() { + emake test + } + python_execute_function -s --source-dir python testing + fi +} + +src_install() { + emake DESTDIR="${D}" \ + EXAMPLES_DIR="${EPREFIX}"/usr/share/doc/${PF}/examples \ + install || die "Installation failed" + + # on windows, xmllint is installed by interix libxml2 in parent prefix. + # this is the version to use. the native winnt version does not support + # symlinks, which makes repoman fail if the portage tree is linked in + # from another location (which is my default). -- mduft + if [[ ${CHOST} == *-winnt* ]]; then + rm -rf "${ED}"/usr/bin/xmllint + rm -rf "${ED}"/usr/bin/xmlcatalog + fi + + if use python; then + installation() { + emake DESTDIR="${D}" \ + PYTHON_SITE_PACKAGES="${EPREFIX}$(python_get_sitedir)" \ + docsdir="${EPREFIX}"/usr/share/doc/${PF}/python \ + exampledir="${EPREFIX}"/usr/share/doc/${PF}/python/examples \ + install + } + python_execute_function -s --source-dir python installation + + python_clean_installation_image + fi + + rm -rf "${ED}"/usr/share/doc/${P} + dodoc AUTHORS ChangeLog Copyright NEWS README* TODO* + + if ! use python; then + rm -rf "${ED}"/usr/share/doc/${PF}/python + rm -rf "${ED}"/usr/share/doc/${PN}-python-${PV} + fi + + if ! use doc; then + rm -rf "${ED}"/usr/share/gtk-doc + rm -rf "${ED}"/usr/share/doc/${PF}/html + fi + + if ! use examples; then + rm -rf "${ED}/usr/share/doc/${PF}/examples" + rm -rf "${ED}/usr/share/doc/${PF}/python/examples" + fi + + # Always remove useless .la files + find "${D}" -name '*.la' -exec rm -f {} + || die "la file removal failed" +} + +pkg_postinst() { + if use python; then + python_mod_optimize drv_libxml2.py libxml2.py + fi + + # We don't want to do the xmlcatalog during stage1, as xmlcatalog will not + # be in / and stage1 builds to ROOT=/tmp/stage1root. This fixes bug #208887. + if [ "${ROOT}" != "/" ] + then + elog "Skipping XML catalog creation for stage building (bug #208887)." + else + # need an XML catalog, so no-one writes to a non-existent one + CATALOG="${EROOT}etc/xml/catalog" + + # we dont want to clobber an existing catalog though, + # only ensure that one is there + # + if [ ! -e ${CATALOG} ]; then + [ -d "${EROOT}etc/xml" ] || mkdir -p "${EROOT}etc/xml" + "${EPREFIX}"/usr/bin/xmlcatalog --create > ${CATALOG} + einfo "Created XML catalog in ${CATALOG}" + fi + fi +} + +pkg_postrm() { + if use python; then + python_mod_cleanup drv_libxml2.py libxml2.py + fi +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.8.0-r4.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.8.0-r4.ebuild new file mode 100644 index 0000000000..a13d8a632b --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.8.0-r4.ebuild @@ -0,0 +1,197 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-libs/libxml2/libxml2-2.8.0-r4.ebuild,v 1.1 2012/12/18 07:48:21 tetromino Exp $ + +EAPI="5" +PYTHON_COMPAT=( python{2_5,2_6,2_7} ) +PYTHON_REQ_USE="xml" + +inherit libtool flag-o-matic eutils python-r1 autotools prefix + +DESCRIPTION="Version 2 of the library to manipulate XML files" +HOMEPAGE="http://www.xmlsoft.org/" + +LICENSE="MIT" +SLOT="2" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt" +IUSE="debug examples icu ipv6 lzma python readline static-libs test" + +XSTS_HOME="http://www.w3.org/XML/2004/xml-schema-test-suite" +XSTS_NAME_1="xmlschema2002-01-16" +XSTS_NAME_2="xmlschema2004-01-14" +XSTS_TARBALL_1="xsts-2002-01-16.tar.gz" +XSTS_TARBALL_2="xsts-2004-01-14.tar.gz" +XMLCONF_TARBALL="xmlts20080827.tar.gz" + +SRC_URI="ftp://xmlsoft.org/${PN}/${PN}-${PV/_rc/-rc}.tar.gz + test? ( + ${XSTS_HOME}/${XSTS_NAME_1}/${XSTS_TARBALL_1} + ${XSTS_HOME}/${XSTS_NAME_2}/${XSTS_TARBALL_2} + http://www.w3.org/XML/Test/${XMLCONF_TARBALL} ) + http://dev.gentoo.org/~tetromino/distfiles/${PN}/${P}-namespace-node-patches.tar.bz2" + +RDEPEND="sys-libs/zlib:= + icu? ( dev-libs/icu:= ) + lzma? ( app-arch/xz-utils:= ) + python? ( ${PYTHON_DEPS} ) + readline? ( sys-libs/readline:= )" + +DEPEND="${RDEPEND} + dev-util/gtk-doc-am + hppa? ( >=sys-devel/binutils-2.15.92.0.2 )" + +S="${WORKDIR}/${PN}-${PV%_rc*}" + +src_unpack() { + # ${A} isn't used to avoid unpacking of test tarballs into $WORKDIR, + # as they are needed as tarballs in ${S}/xstc instead and not unpacked + unpack ${P/_rc/-rc}.tar.gz + unpack "${P}-namespace-node-patches.tar.bz2" + cd "${S}" + + if use test; then + cp "${DISTDIR}/${XSTS_TARBALL_1}" \ + "${DISTDIR}/${XSTS_TARBALL_2}" \ + "${S}"/xstc/ \ + || die "Failed to install test tarballs" + unpack ${XMLCONF_TARBALL} + fi +} + +src_prepare() { + # Patches needed for prefix support + epatch "${FILESDIR}"/${PN}-2.7.1-catalog_path.patch + epatch "${FILESDIR}"/${PN}-2.8.0_rc1-winnt.patch + + eprefixify catalog.c xmlcatalog.c runtest.c xmllint.c + + epunt_cxx + + epatch "${FILESDIR}/${PN}-2.7.8-disable_static_modules.patch" + + # Prevent linking to out-of-build-tree libxml2, bug #417539 + epatch "${FILESDIR}/${PN}-2.8.0-icu-linking.patch" + + # Namespace nodes require special treatment, bug #434344 + epatch ../patch/*.patch + + # Buffer underflow in xmlParseAttValueComplex, bug #444836; fixed in 2.9.1 + epatch "${FILESDIR}/${PN}-2.8.0-xmlParseAttValueComplex-underflow.patch" + + # Please do not remove, as else we get references to PORTAGE_TMPDIR + # in /usr/lib/python?.?/site-packages/libxml2mod.la among things. + # We now need to run eautoreconf at the end to prevent maintainer mode. +# elibtoolize + + # Python bindings are built/tested/installed manually. + epatch "${FILESDIR}/${PN}-2.9.0-manual-python.patch" + + eautoreconf +} + +src_configure() { + # filter seemingly problematic CFLAGS (#26320) + filter-flags -fprefetch-loop-arrays -funroll-loops + + # USE zlib support breaks gnome2 + # (libgnomeprint for instance fails to compile with + # fresh install, and existing) - (22 Dec 2002). + + # The meaning of the 'debug' USE flag does not apply to the --with-debug + # switch (enabling the libxml2 debug module). See bug #100898. + + # --with-mem-debug causes unusual segmentation faults (bug #105120). + econf \ + -with-html-subdir=${PF}/html \ + --docdir="${EPREFIX}/usr/share/doc/${PF}" \ + $(use_with debug run-debug) \ + $(use_with icu) \ + $(use_with lzma) \ + $(use_with python) \ + $(use_with readline) \ + $(use_with readline history) \ + $(use_enable ipv6) \ + $(use_enable static-libs static) +} + +src_compile() { + default + if use python; then + python_copy_sources + python_foreach_impl libxml2_py_emake + fi +} + +src_test() { + default + use python && python_foreach_impl libxml2_py_emake test +} + +src_install() { + emake DESTDIR="${D}" \ + EXAMPLES_DIR="${EPREFIX}"/usr/share/doc/${PF}/examples install + + # on windows, xmllint is installed by interix libxml2 in parent prefix. + # this is the version to use. the native winnt version does not support + # symlinks, which makes repoman fail if the portage tree is linked in + # from another location (which is my default). -- mduft + if [[ ${CHOST} == *-winnt* ]]; then + rm -rf "${ED}"/usr/bin/xmllint + rm -rf "${ED}"/usr/bin/xmlcatalog + fi + + if use python; then + python_foreach_impl libxml2_py_emake DESTDIR="${D}" \ + docsdir="${EPREFIX}"/usr/share/doc/${PF}/python \ + exampledir="${EPREFIX}"/usr/share/doc/${PF}/python/examples \ + install + python_foreach_impl python_optimize + fi + + rm -rf "${ED}"/usr/share/doc/${P} + dodoc AUTHORS ChangeLog Copyright NEWS README* TODO* + + if ! use python; then + rm -rf "${ED}"/usr/share/doc/${PF}/python + rm -rf "${ED}"/usr/share/doc/${PN}-python-${PV} + fi + + if ! use examples; then + rm -rf "${ED}/usr/share/doc/${PF}/examples" + rm -rf "${ED}/usr/share/doc/${PF}/python/examples" + fi + + prune_libtool_files --modules +} + +pkg_postinst() { + # We don't want to do the xmlcatalog during stage1, as xmlcatalog will not + # be in / and stage1 builds to ROOT=/tmp/stage1root. This fixes bug #208887. + if [[ "${ROOT}" != "/" ]]; then + elog "Skipping XML catalog creation for stage building (bug #208887)." + else + # need an XML catalog, so no-one writes to a non-existent one + CATALOG="${EROOT}etc/xml/catalog" + + # we dont want to clobber an existing catalog though, + # only ensure that one is there + # + if [[ ! -e ${CATALOG} ]]; then + [[ -d "${EROOT}etc/xml" ]] || mkdir -p "${EROOT}etc/xml" + "${EPREFIX}"/usr/bin/xmlcatalog --create > "${CATALOG}" + einfo "Created XML catalog in ${CATALOG}" + fi + fi +} + +libxml2_py_emake() { + pushd "${BUILD_DIR}/python" > /dev/null || die + emake \ + PYTHON="${PYTHON}" \ + PYTHON_INCLUDES="${EPREFIX}/usr/include/${EPYTHON}" \ + PYTHON_LIBS="$(python-config --ldflags)" \ + PYTHON_SITE_PACKAGES="$(python_get_sitedir)" \ + pythondir="$(python_get_sitedir)" \ + PYTHON_VERSION=${EPYTHON/python} "$@" + popd > /dev/null +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.9.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.9.0-r1.ebuild new file mode 100644 index 0000000000..59046c3957 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.9.0-r1.ebuild @@ -0,0 +1,197 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-libs/libxml2/libxml2-2.9.0-r1.ebuild,v 1.1 2012/12/18 07:48:21 tetromino Exp $ + +EAPI="5" +PYTHON_COMPAT=( python{2_5,2_6,2_7} ) +PYTHON_REQ_USE="xml" + +inherit libtool flag-o-matic eutils python-r1 autotools prefix + +DESCRIPTION="Version 2 of the library to manipulate XML files" +HOMEPAGE="http://www.xmlsoft.org/" + +LICENSE="MIT" +SLOT="2" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt" +IUSE="debug examples icu ipv6 lzma python readline static-libs test" + +XSTS_HOME="http://www.w3.org/XML/2004/xml-schema-test-suite" +XSTS_NAME_1="xmlschema2002-01-16" +XSTS_NAME_2="xmlschema2004-01-14" +XSTS_TARBALL_1="xsts-2002-01-16.tar.gz" +XSTS_TARBALL_2="xsts-2004-01-14.tar.gz" +XMLCONF_TARBALL="xmlts20080827.tar.gz" + +SRC_URI="ftp://xmlsoft.org/${PN}/${PN}-${PV/_rc/-rc}.tar.gz + test? ( + ${XSTS_HOME}/${XSTS_NAME_1}/${XSTS_TARBALL_1} + ${XSTS_HOME}/${XSTS_NAME_2}/${XSTS_TARBALL_2} + http://www.w3.org/XML/Test/${XMLCONF_TARBALL} )" + +RDEPEND="sys-libs/zlib:= + icu? ( dev-libs/icu:= ) + lzma? ( app-arch/xz-utils:= ) + python? ( ${PYTHON_DEPS} ) + readline? ( sys-libs/readline:= )" + +DEPEND="${RDEPEND} + dev-util/gtk-doc-am + hppa? ( >=sys-devel/binutils-2.15.92.0.2 )" + +S="${WORKDIR}/${PN}-${PV%_rc*}" + +src_unpack() { + # ${A} isn't used to avoid unpacking of test tarballs into $WORKDIR, + # as they are needed as tarballs in ${S}/xstc instead and not unpacked + unpack ${P/_rc/-rc}.tar.gz + cd "${S}" + + if use test; then + cp "${DISTDIR}/${XSTS_TARBALL_1}" \ + "${DISTDIR}/${XSTS_TARBALL_2}" \ + "${S}"/xstc/ \ + || die "Failed to install test tarballs" + unpack ${XMLCONF_TARBALL} + fi +} + +src_prepare() { + # Patches needed for prefix support + epatch "${FILESDIR}"/${PN}-2.7.1-catalog_path.patch + epatch "${FILESDIR}"/${PN}-2.8.0_rc1-winnt.patch + + eprefixify catalog.c xmlcatalog.c runtest.c xmllint.c + + epunt_cxx + + epatch "${FILESDIR}/${PN}-2.9.0-disable_static_modules.patch" + + # Important patches from 2.9.1 + epatch "${FILESDIR}/${P}-rand_seed.patch" \ + "${FILESDIR}/${P}-thread-portability.patch" \ + "${FILESDIR}/${P}-streaming-validation.patch" \ + "${FILESDIR}/${P}-nsclean.patch" \ + "${FILESDIR}/${P}-large-file-parse.patch" \ + "${FILESDIR}/${P}-thread-alloc.patch" + + # Buffer underflow in xmlParseAttValueComplex, bug #444836; fixed in 2.9.1 + epatch "${FILESDIR}/${PN}-2.8.0-xmlParseAttValueComplex-underflow.patch" + + # Please do not remove, as else we get references to PORTAGE_TMPDIR + # in /usr/lib/python?.?/site-packages/libxml2mod.la among things. + # We now need to run eautoreconf at the end to prevent maintainer mode. +# elibtoolize + + # Python bindings are built/tested/installed manually. + epatch "${FILESDIR}/${PN}-2.9.0-manual-python.patch" + + eautoreconf +} + +src_configure() { + # filter seemingly problematic CFLAGS (#26320) + filter-flags -fprefetch-loop-arrays -funroll-loops + + # USE zlib support breaks gnome2 + # (libgnomeprint for instance fails to compile with + # fresh install, and existing) - (22 Dec 2002). + + # The meaning of the 'debug' USE flag does not apply to the --with-debug + # switch (enabling the libxml2 debug module). See bug #100898. + + # --with-mem-debug causes unusual segmentation faults (bug #105120). + econf \ + -with-html-subdir=${PF}/html \ + --docdir="${EPREFIX}/usr/share/doc/${PF}" \ + $(use_with debug run-debug) \ + $(use_with icu) \ + $(use_with lzma) \ + $(use_with python) \ + $(use_with readline) \ + $(use_with readline history) \ + $(use_enable ipv6) \ + $(use_enable static-libs static) +} + +src_compile() { + default + if use python; then + python_copy_sources + python_foreach_impl libxml2_py_emake + fi +} + +src_test() { + default + use python && python_foreach_impl libxml2_py_emake test +} + +src_install() { + emake DESTDIR="${D}" \ + EXAMPLES_DIR="${EPREFIX}"/usr/share/doc/${PF}/examples install + + # on windows, xmllint is installed by interix libxml2 in parent prefix. + # this is the version to use. the native winnt version does not support + # symlinks, which makes repoman fail if the portage tree is linked in + # from another location (which is my default). -- mduft + if [[ ${CHOST} == *-winnt* ]]; then + rm -rf "${ED}"/usr/bin/xmllint + rm -rf "${ED}"/usr/bin/xmlcatalog + fi + + if use python; then + python_foreach_impl libxml2_py_emake DESTDIR="${D}" \ + docsdir="${EPREFIX}"/usr/share/doc/${PF}/python \ + exampledir="${EPREFIX}"/usr/share/doc/${PF}/python/examples \ + install + python_foreach_impl python_optimize + fi + + rm -rf "${ED}"/usr/share/doc/${P} + dodoc AUTHORS ChangeLog Copyright NEWS README* TODO* + + if ! use python; then + rm -rf "${ED}"/usr/share/doc/${PF}/python + rm -rf "${ED}"/usr/share/doc/${PN}-python-${PV} + fi + + if ! use examples; then + rm -rf "${ED}/usr/share/doc/${PF}/examples" + rm -rf "${ED}/usr/share/doc/${PF}/python/examples" + fi + + prune_libtool_files --modules +} + +pkg_postinst() { + # We don't want to do the xmlcatalog during stage1, as xmlcatalog will not + # be in / and stage1 builds to ROOT=/tmp/stage1root. This fixes bug #208887. + if [[ "${ROOT}" != "/" ]]; then + elog "Skipping XML catalog creation for stage building (bug #208887)." + else + # need an XML catalog, so no-one writes to a non-existent one + CATALOG="${EROOT}etc/xml/catalog" + + # we dont want to clobber an existing catalog though, + # only ensure that one is there + # + if [[ ! -e ${CATALOG} ]]; then + [[ -d "${EROOT}etc/xml" ]] || mkdir -p "${EROOT}etc/xml" + "${EPREFIX}"/usr/bin/xmlcatalog --create > "${CATALOG}" + einfo "Created XML catalog in ${CATALOG}" + fi + fi +} + +libxml2_py_emake() { + pushd "${BUILD_DIR}/python" > /dev/null || die + emake \ + PYTHON="${PYTHON}" \ + PYTHON_INCLUDES="${EPREFIX}/usr/include/${EPYTHON}" \ + PYTHON_LIBS="$(python-config --ldflags)" \ + PYTHON_SITE_PACKAGES="$(python_get_sitedir)" \ + pythondir="$(python_get_sitedir)" \ + PYTHON_VERSION=${EPYTHON/python} "$@" + popd > /dev/null +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.9.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.9.0.ebuild new file mode 100644 index 0000000000..9d40169a35 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.9.0.ebuild @@ -0,0 +1,226 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-libs/libxml2/libxml2-2.9.0.ebuild,v 1.1 2012/11/27 05:43:54 tetromino Exp $ + +EAPI="5" +PYTHON_DEPEND="python? 2" +PYTHON_USE_WITH="xml" +PYTHON_USE_WITH_OPT="python" +SUPPORT_PYTHON_ABIS="1" +RESTRICT_PYTHON_ABIS="3.* *-jython 2.7-pypy-*" + +inherit libtool flag-o-matic eutils python autotools prefix + +DESCRIPTION="Version 2 of the library to manipulate XML files" +HOMEPAGE="http://www.xmlsoft.org/" + +LICENSE="MIT" +SLOT="2" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt" +IUSE="debug examples icu ipv6 lzma python readline static-libs test" + +XSTS_HOME="http://www.w3.org/XML/2004/xml-schema-test-suite" +XSTS_NAME_1="xmlschema2002-01-16" +XSTS_NAME_2="xmlschema2004-01-14" +XSTS_TARBALL_1="xsts-2002-01-16.tar.gz" +XSTS_TARBALL_2="xsts-2004-01-14.tar.gz" +XMLCONF_TARBALL="xmlts20080827.tar.gz" + +SRC_URI="ftp://xmlsoft.org/${PN}/${PN}-${PV/_rc/-rc}.tar.gz + test? ( + ${XSTS_HOME}/${XSTS_NAME_1}/${XSTS_TARBALL_1} + ${XSTS_HOME}/${XSTS_NAME_2}/${XSTS_TARBALL_2} + http://www.w3.org/XML/Test/${XMLCONF_TARBALL} )" + +RDEPEND="sys-libs/zlib + icu? ( dev-libs/icu ) + lzma? ( app-arch/xz-utils ) + readline? ( sys-libs/readline )" + +DEPEND="${RDEPEND} + dev-util/gtk-doc-am + hppa? ( >=sys-devel/binutils-2.15.92.0.2 )" + +S="${WORKDIR}/${PN}-${PV%_rc*}" + +pkg_setup() { + use python && python_pkg_setup +} + +src_unpack() { + # ${A} isn't used to avoid unpacking of test tarballs into $WORKDIR, + # as they are needed as tarballs in ${S}/xstc instead and not unpacked + unpack ${P/_rc/-rc}.tar.gz + cd "${S}" + + if use test; then + cp "${DISTDIR}/${XSTS_TARBALL_1}" \ + "${DISTDIR}/${XSTS_TARBALL_2}" \ + "${S}"/xstc/ \ + || die "Failed to install test tarballs" + unpack ${XMLCONF_TARBALL} + fi +} + +src_prepare() { + # Patches needed for prefix support + epatch "${FILESDIR}"/${PN}-2.7.1-catalog_path.patch + epatch "${FILESDIR}"/${PN}-2.8.0_rc1-winnt.patch + + eprefixify catalog.c xmlcatalog.c runtest.c xmllint.c + + epunt_cxx + + epatch "${FILESDIR}/${PN}-2.9.0-disable_static_modules.patch" + + # Important patches from 2.9.1 + epatch "${FILESDIR}/${P}-rand_seed.patch" \ + "${FILESDIR}/${P}-thread-portability.patch" \ + "${FILESDIR}/${P}-streaming-validation.patch" \ + "${FILESDIR}/${P}-nsclean.patch" \ + "${FILESDIR}/${P}-large-file-parse.patch" \ + "${FILESDIR}/${P}-thread-alloc.patch" + + # Buffer underflow in xmlParseAttValueComplex, bug #444836; fixed in 2.9.1 + epatch "${FILESDIR}/${PN}-2.8.0-xmlParseAttValueComplex-underflow.patch" + + # Please do not remove, as else we get references to PORTAGE_TMPDIR + # in /usr/lib/python?.?/site-packages/libxml2mod.la among things. + # We now need to run eautoreconf at the end to prevent maintainer mode. +# elibtoolize + + # Python bindings are built/tested/installed manually. + sed -e 's/$(PYTHON_SUBDIR)//' -i Makefile.am || die "sed 1 failed" + + # Use Gentoo's python-config naming scheme + sed -e 's/python$PYTHON_VERSION-config/python-config-$PYTHON_VERSION/' \ + -i configure.in || die "sed 2 failed" + + eautoreconf +} + +src_configure() { + # USE zlib support breaks gnome2 + # (libgnomeprint for instance fails to compile with + # fresh install, and existing) - (22 Dec 2002). + + # The meaning of the 'debug' USE flag does not apply to the --with-debug + # switch (enabling the libxml2 debug module). See bug #100898. + + # --with-mem-debug causes unusual segmentation faults (bug #105120). + + local myconf=( + --with-html-subdir=${PF}/html + --docdir="${EPREFIX}/usr/share/doc/${PF}" + $(use_with debug run-debug) + $(use_with icu) + $(use_with lzma) + $(use_with python) + $(use_with readline) + $(use_with readline history) + $(use_enable ipv6) + $(use_enable static-libs static) ) + + # filter seemingly problematic CFLAGS (#26320) + filter-flags -fprefetch-loop-arrays -funroll-loops + + econf "${myconf[@]}" +} + +src_compile() { + default + + if use python; then + python_copy_sources python + building() { + emake PYTHON_INCLUDES="${EPREFIX}$(python_get_includedir)" \ + PYTHON_SITE_PACKAGES="${EPREFIX}$(python_get_sitedir)" + } + python_execute_function -s --source-dir python building + fi +} + +src_test() { + default + + if use python; then + testing() { + emake test + } + python_execute_function -s --source-dir python testing + fi +} + +src_install() { + emake DESTDIR="${D}" \ + EXAMPLES_DIR="${EPREFIX}"/usr/share/doc/${PF}/examples \ + install || die "Installation failed" + + # on windows, xmllint is installed by interix libxml2 in parent prefix. + # this is the version to use. the native winnt version does not support + # symlinks, which makes repoman fail if the portage tree is linked in + # from another location (which is my default). -- mduft + if [[ ${CHOST} == *-winnt* ]]; then + rm -rf "${ED}"/usr/bin/xmllint + rm -rf "${ED}"/usr/bin/xmlcatalog + fi + + if use python; then + installation() { + emake DESTDIR="${D}" \ + PYTHON_SITE_PACKAGES="${EPREFIX}$(python_get_sitedir)" \ + docsdir="${EPREFIX}"/usr/share/doc/${PF}/python \ + exampledir="${EPREFIX}"/usr/share/doc/${PF}/python/examples \ + install + } + python_execute_function -s --source-dir python installation + + python_clean_installation_image + fi + + rm -rf "${ED}"/usr/share/doc/${P} + dodoc AUTHORS ChangeLog Copyright NEWS README* TODO* + + if ! use python; then + rm -rf "${ED}"/usr/share/doc/${PF}/python + rm -rf "${ED}"/usr/share/doc/${PN}-python-${PV} + fi + + if ! use examples; then + rm -rf "${ED}/usr/share/doc/${PF}/examples" + rm -rf "${ED}/usr/share/doc/${PF}/python/examples" + fi + + prune_libtool_files +} + +pkg_postinst() { + if use python; then + python_mod_optimize drv_libxml2.py libxml2.py + fi + + # We don't want to do the xmlcatalog during stage1, as xmlcatalog will not + # be in / and stage1 builds to ROOT=/tmp/stage1root. This fixes bug #208887. + if [ "${ROOT}" != "/" ] + then + elog "Skipping XML catalog creation for stage building (bug #208887)." + else + # need an XML catalog, so no-one writes to a non-existent one + CATALOG="${EROOT}etc/xml/catalog" + + # we dont want to clobber an existing catalog though, + # only ensure that one is there + # + if [ ! -e ${CATALOG} ]; then + [ -d "${EROOT}etc/xml" ] || mkdir -p "${EROOT}etc/xml" + "${EPREFIX}"/usr/bin/xmlcatalog --create > ${CATALOG} + einfo "Created XML catalog in ${CATALOG}" + fi + fi +} + +pkg_postrm() { + if use python; then + python_mod_cleanup drv_libxml2.py libxml2.py + fi +}