diff options
author | eroen <eroen@occam.eroen.eu> | 2013-07-14 00:27:51 +0200 |
---|---|---|
committer | eroen <eroen@occam.eroen.eu> | 2013-07-14 00:27:51 +0200 |
commit | 39c0fd57c7f105c7403edbf85d8d08ba9c19b7be (patch) | |
tree | a1b350af36a9c1f9c3149d987ed64f4a4c20241b /app-office | |
parent | clucene - drop old (diff) | |
download | eroen-39c0fd57c7f105c7403edbf85d8d08ba9c19b7be.tar.gz eroen-39c0fd57c7f105c7403edbf85d8d08ba9c19b7be.tar.bz2 eroen-39c0fd57c7f105c7403edbf85d8d08ba9c19b7be.zip |
libreoffice-4.1.0.1 - ugly patches for libcxx
Diffstat (limited to 'app-office')
14 files changed, 672 insertions, 16 deletions
diff --git a/app-office/libreoffice/Manifest b/app-office/libreoffice/Manifest index 6135fd2..084cfc9 100644 --- a/app-office/libreoffice/Manifest +++ b/app-office/libreoffice/Manifest @@ -1,5 +1,16 @@ +AUX Make-the-SAL_STREAM-thing-compile.patch 919 SHA256 c5bbc809fa159db87330576727fe1da13fba5f6cf27e5f5e89cdb82f9cbd3891 SHA512 c865c25c85567a96068747f2331817193de03326f0d56b740351d5c93dcc54986bb2ec897ea859d749ca9f12ce131d9b7a5a07a65d5a3f13e318ca75d58de91f WHIRLPOOL 76438d501bbc3d5816c0479125d7357680d07c4a3ce7f374fff65355827955bdaec3083a60e56654e515593c43928f162702239a2ba25d797d76094b34522bd9 +AUX Nah-we-still-need-the-dynamic_cast.patch 997 SHA256 55a5ff9b8f877fe522c27c1f8db0a93202030412be8cc2087026bd74753c4410 SHA512 9047f3c6d3530c02a8f3d924b48daf77dc9d0d04d5f219bbf1e7c83b4a2a2d8d47f0d4815364dd0e8aef32fcdb2fa25b13d190a283164ee28205b84052874544 WHIRLPOOL d6c836862ff97ef0dca0394105735d6236a6f2411acb0d29389dc948279640ac01ff5b8aadea0d2a89cbdac30d4c0ea4f25c32208b0755857e5d7098ebfe848c +AUX No-need-for-a-buggy-rewrite.patch 1867 SHA256 188cd24434f7dad88d49f2d62324be641e4d6beb9613f55099b2c88b3746518b SHA512 1c322d5aa21adb72a66d53a2d739f19e8bdab02c4e05cdcec1db574414c2e9a1014f80eb84c854d29398447a93c4b41f7150e0e12b920d4afdaa87b93060ca11 WHIRLPOOL c9913b9cb517d418fbdf4d8f78f5530287c0105251659af80d818a387456fe0c2a7ea20c49ffdf6817f974e48864ffbe80eef09529f12ff98c240b2f9a4c8115 +AUX cppcheck-fix-duplicateExpression.patch 1119 SHA256 0b9e4f5d37d1ad8c43f94df395f4011fab03a759d127a67a8b895c66d3b36f33 SHA512 cbc230442e283e814283be39c8ae150ddaff76db2d6ce13887f6f9fef3766de472ede7d7d22fe26b9b40ed0bb1e4b23a8429c16abb17a007a6557c4248aaf391 WHIRLPOOL fa8ce9b6937d5ad6bcf75cc20713f0739a73c2a04bf11f1e1d10abe4d2c4e19d8d68ce172abbddac4546ef1b0af1a3da3dae5eb61f92bf4c5d9d4469173fd193 +AUX disable-CppunitTest_sw_uwriter.patch 390 SHA256 fb82eec44d4b4114177f2b58bd04804c68c9f382529568346f5a09354fcb4f3a SHA512 c71482ecb07563689d037eefc18ae59670308cf639c3bb25f30b9a20ffa2b3e2c8779d064071218d8fcf9497916c8d32a8e3acd25f133788a2c44c92713da012 WHIRLPOOL b0495818178caa656419326ddd07cb46e8ae3fa8546c3dee8a319eb1f8e32616c0bf026308bc55af9b6eb8b0894eab8be37c36a246713024709f1a4a3909c4f0 +AUX disable-more-tests.patch 547 SHA256 7208e2d7c46c226f73fb53380fbf25072cdd1f5391c474f7e74857c436642ebc SHA512 ed48c9432d9ecd51b3512e1ca127993d77c9d9ced695cd2c0aca7b1c1596a0a8fa31c61ed7407f5eba9408981d0e4dca99f7dcfd85482025c507dd84708a66e2 WHIRLPOOL 607c0ffd89581427e26051b4feb215ba3254426f894860f1471b993a5733628ec1b2b77053a39ef8c5138b13e97dcf2c8ade730323e7f246cf12c858ad094b8a +AUX eliminate-type-ambiguity-for-std-accumulate.patch 1617 SHA256 eace41e236379c320f940b76c84b7e612f694d2d1c779432261d78d39b2aff32 SHA512 e53a0dc05011373806fe3b60a832ce8375de23f9ecb5b15c2699cb0e4e0bd6a6f8a2ea4bc79c065a54274c9ea236c322621b0a4173ad0adebbe4b30c30d9c668 WHIRLPOOL 2011fb1b291a49af71b031d78f9a7a23da302dff289ab2c9b0d478e03ff171090807df83b4a1a480fd2a5657f2f749be9b42d09aec650513e950757603a9b26d +AUX fake-exception-name2.patch 1651 SHA256 f21083cae202e59a87c0c8f4b747e6c254fa16719d0db52cd8b39c526b55db77 SHA512 155dc573a097f66d742231be55eddab38c0beb6a342d95abe61d94a31516fdd3b3db2fe55e520089cf43fbd7cf3bafce74105eca0d1c23b78503ae4dc9b004d2 WHIRLPOOL 380c5dd4daa626e273e40138a2e30ca516afd17b05bb80d9e021dd436803765285c37c0d5ad26aa7e75119ea73b7d726bbd8167da9e74d828fce19246d871c3c +AUX i122208-replace-the-binaryurp-cache.patch 8403 SHA256 e726928abc300cea245746823fc0c95ed198a758d591c3210a052887f8c7dcaf SHA512 9bbec361401d7560ccb09f11ee70c67a16065ba8fc5426073387e10bfe67f0e0dc0b3be75b181474d5ff018d3fa0a17d67d0fc6542fd484444abebbd525ec7b5 WHIRLPOOL 3b34abb7e79aa70fd1bc40864f62cf483b538521baa5e65fafb74304d02553a040ee92e3e61ecc4e7ca461f9489cbf496d677dc30f9526f2cfb470cecfcc4227 AUX libreoffice-3.7-separate-checks.patch 1554 SHA256 d1128006f0e49cd0262a3c8e5f5251160929282cf65a5b560cde637346f7b724 SHA512 23f2d9587f5fdcfb1b59e9629d373b870a838003265cd48d88d1c6450e6d7e7bbb40df2b2ffc01efbe3cf14b9c5702174782797cfda152b7fcaa89eac7606314 WHIRLPOOL 0a3fe76cc8034a705a55886ac65242f3aa03a27d6905b7b1599295b97720321760884c2d2dedd6749d87dea9c769e34ade5f686e3c7e7d89900bec358f46ca04 AUX libreoffice-3.7-system-pyuno.patch 1642 SHA256 191d2462c13947d63a3f2758ec26b4b5b7765d06f0454add1c471e9dccfa9016 SHA512 76d0b836f2b26c9cd3a0ad2b471d033c863ffc1eb593f28f1ebecaae30f205adb97b4b0a63483f93d2f32d5934480f580776e1ce83baf77e5bedee759112fb8d WHIRLPOOL efada275cfa123b2f3fd96a20057fab5a8f83c50e0d401df1af76d1eb017e5c7ceb74d0a5d8fd77352379be4a69b67f22d99a072213b5644012094a31f353da0 +AUX stop-messing-with-stdlib-internals.patch 2772 SHA256 b62a948fac70a7ec446118cbe1e7256a0e0a500ea38cd513480fc5193395ede2 SHA512 f15fcbcaff056d2ce386c5650335f29cfbbd8c69f006b25f694e728b3cf9a68d631ad6a6bd69948f664a20605303e02c78263d1486538b9c18909260d3a0ee50 WHIRLPOOL 332066773155cb0d6df1eff1f86595af254d954d365fa353154b509ccfc2685e9aebd231d79cc653714a582f08950b83c2f2df45dbee983d5dc3109112ad93f7 +AUX stop-messing-with-stdlib-internals2.patch 3239 SHA256 699808f5d926f721272a7d95b0285f5b1625976f7eeb5a6dc5f3de7f643a715a SHA512 406409fa02f611570f9edffabad4c1eb28df669d97437919f5a57967a562c9b3ca495d873610e311740bfe1aaebea3db445aa4b4c4e1f28bcf4f4d3e91adb988 WHIRLPOOL aa7807e8e27024297612e85f26161eb24896b173226618a63b6528f751a8ad2ab8f60ba1e704e586178e067a2bad2c6a4e2df114a4bd9896743a22f48ac780fe DIST 17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip 3519470 SHA256 d30b13f4ba2e3b6a2d4f020c0dee0a9fb9fc6fbcc2d561f36b78da4bf3802370 SHA512 a231eba4a1baca11766ef292ab45e302081115477fe23018652882923308856835cf8c9ecba61a5cf22543474ccef3136965d794a90c9e4e9e6dcc21f9af6e1a WHIRLPOOL c4b3b0c3e10171155e1d3431e8ab9b495dbf2fb924882024306bfb53f533f5b0231c06f47e3cfa77052013a816ea4cc5f237cc76fdb44a048fb6d5c177729aec DIST 185d60944ea767075d27247c3162b3bc-unowinreg.dll 12288 SHA256 eafde646a7dbe46d20c291685b0beac2382174d78d66ee990e229a1bf6e6cec6 SHA512 854b8ae29b57b40ba6bb6ff66e723a0e8dad053fcc2849f0ad763cd8a31352f4aeba9636fd4e3f0f2a0cd985a6f49b4261b9ace68d6be821ed42cfa7a73eb13c WHIRLPOOL 16eb79e3674250fcb760b9698b4980414052d20f720d946701d1915c9b8915b4af75378668653d29581b77c19fcdba8f51d1f834c286cfcefcf4a420f8fcc1d5 DIST 1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz 1652670 SHA256 390a5085651828b8fe12aa978b200f59b9155eedbb91a4be89bf7cf39eefdd4a SHA512 5664203e6426880041cdb227e91f79f00d2ca7ae28c6997f61b72cc599aac55838d082d2b2b551bd7a228424c350ddea5d41599b8ca58d444a2cd46c9206ea91 WHIRLPOOL 6486c48b73a4f79760b443cfd397b704eca0fd32b72304ae7e7cfa0f43583b0af15c7384548b5215ae57513ed8366c8f3a74630ab466ba19a63b346af8c5eaca @@ -13,5 +24,5 @@ DIST libreoffice-branding-gentoo-0.7.tar.xz 72556 SHA256 57912157fe8874f9d628dd9 DIST libreoffice-help-4.0.4.2.tar.xz 1855588 SHA256 9d7f732760b24b6916266903913d7684d9b933640174b1e041d729914beb5a4e SHA512 848329df801dfba2b06006325371e7a51354bebe0e99ba98aca14d3e3882de0ccde902b440cb1e47984585350f7e4f48b779b36281d9844251e802245633bd30 WHIRLPOOL a7048fbddaa81eb0c97f86902054195c66f84babe42ac1e088338ba019b07283a9049b70554800224ad50ee9097b2e57b4493527177a9599d9251c42894da20f DIST libreoffice-help-4.1.0.1.tar.xz 1846872 SHA256 71f724083e159d5eef3fda6357fbb5a4eb2d99fe038c9753b49d29b386510c6b SHA512 4fd4ff75e3f04c374e75600765a06dc6299fc338bfcacd802912abbae1e9db42a032afa20c6691852effb2d94584ca18f0992274e06f82009339203c854dce6d WHIRLPOOL b0355b98c561d1affa34db83ab104560415b04c95c7747f4b3a7ed8ddc707b5405c614b80f1fc2a3cafd795d99266183b4f4b91378b6890629a77aef6c40c9d1 EBUILD libreoffice-4.0.4.2.ebuild 17561 SHA256 2ee4e291efa1d0d990511fffcddb5e8b38ea8a2872de92c298d7f41b3ccf6d87 SHA512 f5f8884b54b0e94b7379a49993a8848395a710bd3a0b8380461bebd5737984a1f5cb04652ed59044f03a76117f32864e7b820e2fc7e8b677aa6a8e6b55dda060 WHIRLPOOL 242df1f18cc6cbe929ba9f3c364851fd4588eec0457afb252f64e6083a0ceb017d8f0d0c0a48f9f4dc695119358931346a228a0bef20e106b7f108b2dc8a1502 -EBUILD libreoffice-4.1.0.1.ebuild 17374 SHA256 2d3c9fbaa7a2e658486830e41f7580ac656571959945574e75d2a854ed9f00fb SHA512 1177c055239f42474afc781f8d0151020e201118b1d31c51d739681f720ad4909d20fdf34359a0e979051faf35ac935273da193c63f5689fb8ab82e31da7a25b WHIRLPOOL 91f3ad06a269005dc41e62e94839cc9e38ee6e5dcf4278c17881dbae6da4147d4b383dba9891e5fdc8ecf3b37648f7c8331b59c120032d24b46ca8d847ded9f4 -MISC metadata.xml 1176 SHA256 c1690efe4b2a0fa49801e5cbe66637e25ba71fb902115a75d363f6fe7dc444fb SHA512 2889263d6cf5388d402b2c3999d471e2a2e8c852dcd50755d9f6fd7a549e8b70af7afb66d2f58bc8b9f7bedb4d01a05dda6159c5433a5fdce20ba69f49b9d1b1 WHIRLPOOL e4b548267c79bee3de7bdec839c0fd4d2f1166ded0464d65e6103e63ffb8fb9c08c6a9ff0d01ab09c02826ff1b0b0233a55c5d49b701e963d8c732685b3267dd +EBUILD libreoffice-4.1.0.1.ebuild 18073 SHA256 6547598f458a65805c83163a69f23315b10ee0da669cf5df0c3d0f15a6d1e46d SHA512 d06b206fab66cc55dce4bd064675bb6200f79713528355a2b7791c78e9c9669fb16da8ee646e1fd0139c175481238a27b3663755f1d50fbd7391d8c5c4218c37 WHIRLPOOL a28637732aee85f7e4a691447740750fcdfc1b0507c250766775e063daff88e411ba0ccaed6d408b7111200e657cc1b75637fa2fec8fc4ac312f587094e2a870 +MISC metadata.xml 1285 SHA256 e85c27cedc1b1a8ecf05886a41e15212d1703be0b081ee4a50da65b065102677 SHA512 e67cfc5094887344fe998f91bff4177c643ab05a8f2a11c4fb90a971b3eca1fb4115b556d14969481f4327fcfad431aa896f277dadfe8e208c3d685c0ca4c2d0 WHIRLPOOL 459b2840941ddf1ad6442cbbe84412c3572cc8966237b935c93afad3ed4271f203db07eaf8e5acbebdc219a7069b095c22d41397b943d9cb44119148b90b060f diff --git a/app-office/libreoffice/files/Make-the-SAL_STREAM-thing-compile.patch b/app-office/libreoffice/files/Make-the-SAL_STREAM-thing-compile.patch new file mode 100644 index 0000000..8dab36b --- /dev/null +++ b/app-office/libreoffice/files/Make-the-SAL_STREAM-thing-compile.patch @@ -0,0 +1,28 @@ +From 691b6ea8e100fc55f0ff70a82511722733113a07 Mon Sep 17 00:00:00 2001 +From: Tor Lillqvist <tml@iki.fi> +Date: Tue, 28 May 2013 05:43:57 +0000 +Subject: Make the SAL_STREAM thing compile with clang++ -std=c++11 -stdlib=libc++ + +Avoid error: dynamic_cast from rvalue to reference type +'::std::ostringstream &'. + +Change-Id: If5ba1ee79616e81b12f9db67c61b4f085b30a08e +--- +(limited to 'include/sal/log.hxx') + +diff --git a/include/sal/log.hxx b/include/sal/log.hxx +index 80721d0..ca3bb5e 100644 +--- a/include/sal/log.hxx ++++ b/include/sal/log.hxx +@@ -158,8 +158,7 @@ inline char const * unwrapStream(SAL_UNUSED_PARAMETER StreamIgnore const &) { + @since LibreOffice 3.5 + */ + #define SAL_STREAM(stream) \ +- (dynamic_cast< ::std::ostringstream & >(::std::ostringstream() << stream). \ +- str()) ++ (::std::ostringstream() << stream).str() + + /** + @page sal_log Basic logging functionality. +-- +cgit v0.9.0.2-2-gbebe diff --git a/app-office/libreoffice/files/Nah-we-still-need-the-dynamic_cast.patch b/app-office/libreoffice/files/Nah-we-still-need-the-dynamic_cast.patch new file mode 100644 index 0000000..47e016e --- /dev/null +++ b/app-office/libreoffice/files/Nah-we-still-need-the-dynamic_cast.patch @@ -0,0 +1,32 @@ +From b2a50c70072d55d0055d41e6862138a6a06cb08d Mon Sep 17 00:00:00 2001 +From: Tor Lillqvist <tml@iki.fi> +Date: Tue, 28 May 2013 06:12:27 +0000 +Subject: Nah, we still need the dynamic_cast in SAL_STREAM for gcc/libstdc++ + +Not sure if MSVC would accept also the simpler thing, but anyway, the +dynamic_cast works for it, too. + +Change-Id: I2dfa1e70b75bc17d38b5e95be0a0f1dd66767bf1 +--- +(limited to 'include/sal/log.hxx') + +diff --git a/include/sal/log.hxx b/include/sal/log.hxx +index ca3bb5e..23ea6f3 100644 +--- a/include/sal/log.hxx ++++ b/include/sal/log.hxx +@@ -157,8 +157,13 @@ inline char const * unwrapStream(SAL_UNUSED_PARAMETER StreamIgnore const &) { + + @since LibreOffice 3.5 + */ ++#ifdef _LIBCPP_VERSION + #define SAL_STREAM(stream) \ + (::std::ostringstream() << stream).str() ++#else ++#define SAL_STREAM(stream) \ ++ (dynamic_cast< ::std::ostringstream & >(::std::ostringstream() << stream).str()) ++#endif + + /** + @page sal_log Basic logging functionality. +-- +cgit v0.9.0.2-2-gbebe diff --git a/app-office/libreoffice/files/No-need-for-a-buggy-rewrite.patch b/app-office/libreoffice/files/No-need-for-a-buggy-rewrite.patch new file mode 100644 index 0000000..51a4367 --- /dev/null +++ b/app-office/libreoffice/files/No-need-for-a-buggy-rewrite.patch @@ -0,0 +1,46 @@ +From 12dc490c3af9ec0f34b513609f3b14effd5a2906 Mon Sep 17 00:00:00 2001 +From: Stephan Bergmann <sbergman@redhat.com> +Date: Fri, 14 Jun 2013 12:18:11 +0000 +Subject: No need for a buggy rewrite + +... see 08bb8fca4144608237418d64b1479840c408256f "#i122208# replace the +binaryurp cache for improved C++ compatibility" and +059f041dfdffe0630ec573fb444c51cc463b90b1 "cppcheck: fix duplicateExpression," +when the only improvement is to not needlessly acquire/release raw rtl_uString +instances. + +Change-Id: I734304b231d69f8089cbf1d35a3deda75f771c78 +--- +(limited to 'binaryurp/source') + +diff --git a/binaryurp/source/lessoperators.cxx b/binaryurp/source/lessoperators.cxx +index 3a515f5..6d8952d 100644 +--- a/binaryurp/source/lessoperators.cxx ++++ b/binaryurp/source/lessoperators.cxx +@@ -32,16 +32,14 @@ + + namespace com { namespace sun { namespace star { namespace uno { + +-bool operator<( const TypeDescription& rLeft, const TypeDescription& rRight) { +- assert( rLeft.is() && rRight.is()); +- const typelib_TypeDescription& rA = *rLeft.get(); +- const typelib_TypeDescription& rB = *rRight.get(); +- if( rA.eTypeClass != rB.eTypeClass) +- return (rA.eTypeClass < rB.eTypeClass); +- const sal_Int32 nCmp = rtl_ustr_compare_WithLength( +- rA.pTypeName->buffer, rA.pTypeName->length, +- rB.pTypeName->buffer, rB.pTypeName->length); +- return (nCmp < 0); ++bool operator <(TypeDescription const & left, TypeDescription const & right) { ++ assert(left.is() && right.is()); ++ typelib_TypeClass tc1 = left.get()->eTypeClass; ++ typelib_TypeClass tc2 = right.get()->eTypeClass; ++ return tc1 < tc2 || ++ (tc1 == tc2 && ++ (OUString::unacquired(&left.get()->pTypeName) < ++ OUString::unacquired(&right.get()->pTypeName))); + } + + bool TypeDescEqual::operator()( const TypeDescription& rLeft, const TypeDescription& rRight) const +-- +cgit v0.9.0.2-2-gbebe diff --git a/app-office/libreoffice/files/cppcheck-fix-duplicateExpression.patch b/app-office/libreoffice/files/cppcheck-fix-duplicateExpression.patch new file mode 100644 index 0000000..4961156 --- /dev/null +++ b/app-office/libreoffice/files/cppcheck-fix-duplicateExpression.patch @@ -0,0 +1,27 @@ +From 059f041dfdffe0630ec573fb444c51cc463b90b1 Mon Sep 17 00:00:00 2001 +From: Julien Nabet <serval2412@yahoo.fr> +Date: Thu, 13 Jun 2013 19:27:26 +0000 +Subject: cppcheck: fix duplicateExpression + +Change-Id: If3b7b1faab858afa82d4c665ee1a5036190e69aa +Reviewed-on: https://gerrit.libreoffice.org/4278 +Reviewed-by: Tomáš Chvátal <tchvatal@suse.cz> +Tested-by: Tomáš Chvátal <tchvatal@suse.cz> +--- +(limited to 'binaryurp/source') + +diff --git a/binaryurp/source/lessoperators.cxx b/binaryurp/source/lessoperators.cxx +index 55f3a49..3a515f5 100644 +--- a/binaryurp/source/lessoperators.cxx ++++ b/binaryurp/source/lessoperators.cxx +@@ -36,7 +36,7 @@ bool operator<( const TypeDescription& rLeft, const TypeDescription& rRight) { + assert( rLeft.is() && rRight.is()); + const typelib_TypeDescription& rA = *rLeft.get(); + const typelib_TypeDescription& rB = *rRight.get(); +- if( rA.eTypeClass != rA.eTypeClass) ++ if( rA.eTypeClass != rB.eTypeClass) + return (rA.eTypeClass < rB.eTypeClass); + const sal_Int32 nCmp = rtl_ustr_compare_WithLength( + rA.pTypeName->buffer, rA.pTypeName->length, +-- +cgit v0.9.0.2-2-gbebe diff --git a/app-office/libreoffice/files/disable-CppunitTest_sw_uwriter.patch b/app-office/libreoffice/files/disable-CppunitTest_sw_uwriter.patch new file mode 100644 index 0000000..dfe6d01 --- /dev/null +++ b/app-office/libreoffice/files/disable-CppunitTest_sw_uwriter.patch @@ -0,0 +1,14 @@ +--- a/libreoffice-4.1.0.1/sw/Module_sw.mk 2013-07-13 22:50:48.735630800 +0200 ++++ b/libreoffice-4.1.0.1/sw/Module_sw.mk 2013-07-13 22:51:56.815235432 +0200 +@@ -41,10 +41,6 @@ + + endif + +-$(eval $(call gb_Module_add_check_targets,sw,\ +- CppunitTest_sw_uwriter \ +-)) +- + $(eval $(call gb_Module_add_slowcheck_targets,sw,\ + CppunitTest_sw_htmlexport \ + CppunitTest_sw_macros_test \ + diff --git a/app-office/libreoffice/files/disable-more-tests.patch b/app-office/libreoffice/files/disable-more-tests.patch new file mode 100644 index 0000000..e9490d2 --- /dev/null +++ b/app-office/libreoffice/files/disable-more-tests.patch @@ -0,0 +1,22 @@ +--- a/libreoffice-4.1.0.1/testtools/Module_testtools.mk 2013-07-13 22:04:00.717824708 +0200 ++++ b/libreoffice-4.1.0.1/testtools/Module_testtools.mk 2013-07-13 22:03:17.520527883 +0200 +@@ -12,7 +12,6 @@ + ifneq ($(CROSS_COMPILING),YES) + + $(eval $(call gb_Module_add_targets,testtools,\ +- CustomTarget_bridgetest \ + InternalUnoApi_bridgetest \ + StaticLibrary_bridgetest \ + Library_cppobj \ +@@ -34,10 +33,6 @@ + )) + endif + +-$(eval $(call gb_Module_add_check_targets,testtools,\ +- CustomTarget_uno_test \ +-)) +- + endif + + # vim:set noet sw=4 ts=4: + diff --git a/app-office/libreoffice/files/eliminate-type-ambiguity-for-std-accumulate.patch b/app-office/libreoffice/files/eliminate-type-ambiguity-for-std-accumulate.patch new file mode 100644 index 0000000..49d9d19 --- /dev/null +++ b/app-office/libreoffice/files/eliminate-type-ambiguity-for-std-accumulate.patch @@ -0,0 +1,38 @@ +From 982462ac5c6df0c85ba6a0b3fbdaa80b38a94882 Mon Sep 17 00:00:00 2001 +From: Herbert Dürr <hdu@apache.org> +Date: Tue, 16 Apr 2013 11:41:34 +0000 +Subject: eliminate type ambiguity for std::accumulate() invocation + +else clang/libc++ cannot decide between bool and a reference into a bit-vector +specialization + +(cherry picked from commit 6a88a21257124d953637c4b8ead9c9771e15b899) + +Change-Id: I694bbad82b1a05ebe86c5c941f3ac85c71f5fc9e +--- +(limited to 'slideshow/source/engine/activities/activitiesfactory.cxx') + +diff --git a/slideshow/source/engine/activities/activitiesfactory.cxx b/slideshow/source/engine/activities/activitiesfactory.cxx +index 2354e51..530a8fe 100644 +--- a/slideshow/source/engine/activities/activitiesfactory.cxx ++++ b/slideshow/source/engine/activities/activitiesfactory.cxx +@@ -557,7 +557,7 @@ public: + // interpolate between nIndex and nIndex+1 values + (*mpAnim)( + getPresentationValue( +- accumulate( maValues.back(), ++ accumulate<ValueType>( maValues.back(), + mbCumulative ? nRepeatCount : 0, + maInterpolator( maValues[ nIndex ], + maValues[ nIndex+1 ], +@@ -577,7 +577,7 @@ public: + // this is discrete, thus no lerp here. + (*mpAnim)( + getPresentationValue( +- accumulate( maValues.back(), ++ accumulate<ValueType>( maValues.back(), + mbCumulative ? nRepeatCount : 0, + maValues[ nFrame ] ) ) ); + } +-- +cgit v0.9.0.2-2-gbebe diff --git a/app-office/libreoffice/files/fake-exception-name2.patch b/app-office/libreoffice/files/fake-exception-name2.patch new file mode 100644 index 0000000..4889a0a --- /dev/null +++ b/app-office/libreoffice/files/fake-exception-name2.patch @@ -0,0 +1,48 @@ +--- a/libreoffice-4.1.0.1/bridges/source/cpp_uno/gcc3_linux_x86-64/except.cxx 2013-07-13 22:34:02.259338619 +0200 ++++ b/libreoffice-4.1.0.1/bridges/source/cpp_uno/gcc3_linux_x86-64/except.cxx 2013-07-13 22:33:59.621322848 +0200 +@@ -94,23 +94,25 @@ + #endif + + // example: N3com3sun4star4lang24IllegalArgumentExceptionE ++ //char const *p2 = "N3com3sun4star4lang24IllegalArgumentExceptionE"; ++ char const *p2 = "N3com3sun4star4lang24IllegalArgumentExcepti00E"; + + OUStringBuffer buf( 64 ); +- OSL_ASSERT( 'N' == *p ); +- ++p; // skip N ++ OSL_ASSERT( 'N' == *p2 ); ++ ++p2; // skip N + +- while ('E' != *p) ++ while ('E' != *p2) + { + // read chars count +- long n = (*p++ - '0'); +- while ('0' <= *p && '9' >= *p) ++ long n = (*p2++ - '0'); ++ while ('0' <= *p2 && '9' >= *p2) + { + n *= 10; +- n += (*p++ - '0'); ++ n += (*p2++ - '0'); + } +- buf.appendAscii( p, n ); +- p += n; +- if ('E' != *p) ++ buf.appendAscii( p2, n ); ++ p2 += n; ++ if ('E' != *p2) + buf.append( (sal_Unicode)'.' ); + } + +@@ -327,7 +329,8 @@ + } + + typelib_TypeDescription * pExcTypeDescr = 0; +- OUString unoName( toUNOname( header->exceptionType->name() ) ); ++ //OUString unoName( toUNOname( header->exceptionType->name() ) ); ++ OUString unoName( toUNOname( "N3Xom3sun4star4lang24UnknownArgumentExcepti01E" ) ); + #if OSL_DEBUG_LEVEL > 1 + OString cstr_unoName( OUStringToOString( unoName, RTL_TEXTENCODING_ASCII_US ) ); + fprintf( stderr, "> c++ exception occurred: %s\n", cstr_unoName.getStr() ); + diff --git a/app-office/libreoffice/files/i122208-replace-the-binaryurp-cache.patch b/app-office/libreoffice/files/i122208-replace-the-binaryurp-cache.patch new file mode 100644 index 0000000..b334456 --- /dev/null +++ b/app-office/libreoffice/files/i122208-replace-the-binaryurp-cache.patch @@ -0,0 +1,234 @@ +From 08bb8fca4144608237418d64b1479840c408256f Mon Sep 17 00:00:00 2001 +From: Herbert Dürr <hdu@apache.org> +Date: Wed, 08 May 2013 17:26:08 +0000 +Subject: #i122208# replace the binaryurp cache for improved C++ compatibility + +Failing to instantiatie incomplete types like the Map::iterator in +binaryurp Cache's Entry members is allowed by the C++ standard. +The rewrite makes it more compliant with other C++ compilers/STLs. +And interesting alternative would be to use boost's multi_index_container. + +git-svn-id: http://svn.apache.org/repos/asf/openoffice/branches/rejuvenate01@1480367 13f79535-47bb-0310-9956-ffa450edef68 +--- +(limited to 'binaryurp/source') + +diff --git a/binaryurp/source/cache.hxx b/binaryurp/source/cache.hxx +index 05c0069..7e5ba89 100644 +--- a/binaryurp/source/cache.hxx ++++ b/binaryurp/source/cache.hxx +@@ -25,6 +25,7 @@ + #include <cassert> + #include <cstddef> + #include <map> ++#include <list> + + #include "boost/noncopyable.hpp" + #include "sal/types.h" +@@ -37,88 +38,57 @@ enum { size = 256, ignore = 0xFFFF }; + + } + +-template< typename T > class Cache: private boost::noncopyable { ++template< typename T > class Cache : private boost::noncopyable { + public: ++ typedef sal_uInt16 IdxType; ++ + explicit Cache(std::size_t size): +- size_(size), first_(map_.end()), last_(map_.end()) ++ size_(size) + { + assert(size < cache::ignore); + } + +- sal_uInt16 add(T const & content, bool * found) { +- assert(found != 0); +- typename Map::iterator i(map_.find(content)); +- *found = i != map_.end(); +- if (i == map_.end()) { +- typename Map::size_type n = map_.size(); +- if (n < size_) { +- i = +- (map_.insert( +- typename Map::value_type( +- content, +- Entry( +- static_cast< sal_uInt16 >(n), map_.end(), +- first_)))). +- first; +- if (first_ == map_.end()) { +- last_ = i; +- } else { +- first_->second.prev = i; +- } +- first_ = i; +- } else if (last_ != map_.end()) { +- i = +- (map_.insert( +- typename Map::value_type( +- content, +- Entry(last_->second.index, map_.end(), first_)))). +- first; +- first_->second.prev = i; +- first_ = i; +- typename Map::iterator j(last_); +- last_ = last_->second.prev; +- last_->second.next = map_.end(); +- map_.erase(j); +- } else { +- // Reached iff size_ == 0: +- return cache::ignore; +- } +- } else if (i != first_) { +- // Move to front (reached only if size_ > 1): +- i->second.prev->second.next = i->second.next; +- if (i->second.next == map_.end()) { +- last_ = i->second.prev; +- } else { +- i->second.next->second.prev = i->second.prev; +- } +- i->second.prev = map_.end(); +- i->second.next = first_; +- first_->second.prev = i; +- first_ = i; +- } +- return i->second.index; ++ IdxType add( const T& rContent, bool* pbFound) { ++ assert( pbFound != NULL); ++ if( !size_) { ++ *pbFound = false; ++ return cache::ignore; ++ } ++ // try to insert into the map ++ list_.push_front( rContent); // create a temp entry ++ typedef std::pair<typename LruList::iterator, IdxType> MappedType; ++ typedef std::pair<typename LruItMap::iterator,bool> MapPair; ++ MapPair aMP = map_.insert( MappedType( list_.begin(), 0)); ++ *pbFound = !aMP.second; ++ ++ if( !aMP.second) { // insertion not needed => found the entry ++ list_.pop_front(); // remove the temp entry ++ list_.splice( list_.begin(), list_, aMP.first->first); // the found entry is moved to front ++ return aMP.first->second; ++ } ++ ++ // test insertion successful => it was new so we keep it ++ IdxType n = static_cast<IdxType>( map_.size() - 1); ++ if( n >= size_) { // cache full => replace the LRU entry ++ // find the least recently used element in the map ++ typename LruItMap::iterator it = map_.find( --list_.end()); ++ n = it->second; ++ map_.erase( it); // remove it from the map ++ list_.pop_back(); // remove from the list ++ } ++ aMP.first->second = n; ++ return n; + } + + private: +- struct Entry; +- +- typedef std::map< T, Entry > Map; +- +- struct Entry { +- sal_uInt16 index; +- typename Map::iterator prev; +- typename Map::iterator next; +- +- Entry( +- sal_uInt16 theIndex, typename Map::iterator thePrev, +- typename Map::iterator theNext): +- index(theIndex), prev(thePrev), next(theNext) {} +- }; ++ typedef std::list<T> LruList; // last recently used list ++ typedef typename LruList::iterator LruListIt; ++ struct CmpT{ bool operator()( const LruListIt& rA, const LruListIt& rB) const { return (*rA<*rB);}}; ++ typedef ::std::map< LruListIt, IdxType, CmpT > LruItMap; // a map into a LruList + + std::size_t size_; +- Map map_; +- typename Map::iterator first_; +- typename Map::iterator last_; ++ LruItMap map_; ++ LruList list_; + }; + + } +diff --git a/binaryurp/source/lessoperators.cxx b/binaryurp/source/lessoperators.cxx +index b0031e7..55f3a49 100644 +--- a/binaryurp/source/lessoperators.cxx ++++ b/binaryurp/source/lessoperators.cxx +@@ -32,14 +32,38 @@ + + namespace com { namespace sun { namespace star { namespace uno { + +-bool operator <(TypeDescription const & left, TypeDescription const & right) { +- assert(left.is() && right.is()); +- typelib_TypeClass tc1 = left.get()->eTypeClass; +- typelib_TypeClass tc2 = right.get()->eTypeClass; +- return tc1 < tc2 || +- (tc1 == tc2 && +- (OUString(left.get()->pTypeName) < +- OUString(right.get()->pTypeName))); ++bool operator<( const TypeDescription& rLeft, const TypeDescription& rRight) { ++ assert( rLeft.is() && rRight.is()); ++ const typelib_TypeDescription& rA = *rLeft.get(); ++ const typelib_TypeDescription& rB = *rRight.get(); ++ if( rA.eTypeClass != rA.eTypeClass) ++ return (rA.eTypeClass < rB.eTypeClass); ++ const sal_Int32 nCmp = rtl_ustr_compare_WithLength( ++ rA.pTypeName->buffer, rA.pTypeName->length, ++ rB.pTypeName->buffer, rB.pTypeName->length); ++ return (nCmp < 0); ++} ++ ++bool TypeDescEqual::operator()( const TypeDescription& rLeft, const TypeDescription& rRight) const ++{ ++ assert( rLeft.is() && rRight.is()); ++ const typelib_TypeDescription& rA = *rLeft.get(); ++ const typelib_TypeDescription& rB = *rRight.get(); ++ if( rA.eTypeClass != rB.eTypeClass) ++ return false; ++ const sal_Int32 nCmp = rtl_ustr_compare_WithLength( ++ rA.pTypeName->buffer, rA.pTypeName->length, ++ rB.pTypeName->buffer, rB.pTypeName->length); ++ return (nCmp == 0); ++} ++ ++sal_Int32 TypeDescHash::operator()( const TypeDescription& rTD) const ++{ ++ assert( rTD.is()); ++ const typelib_TypeDescription& rA = *rTD.get(); ++ sal_Int32 h = rtl_ustr_hashCode_WithLength( rA.pTypeName->buffer, rA.pTypeName->length); ++ h ^= static_cast<sal_Int32>(rA.eTypeClass); ++ return h; + } + + } } } } +@@ -47,8 +71,8 @@ bool operator <(TypeDescription const & left, TypeDescription const & right) { + namespace rtl { + + bool operator <(ByteSequence const & left, ByteSequence const & right) { +- for (sal_Int32 i = 0; i != std::min(left.getLength(), right.getLength()); +- ++i) ++ const sal_Int32 nLen = std::min( left.getLength(), right.getLength()); ++ for( sal_Int32 i = 0; i < nLen; ++i ) + { + if (left[i] < right[i]) { + return true; +diff --git a/binaryurp/source/lessoperators.hxx b/binaryurp/source/lessoperators.hxx +index f3202b5..317e76a 100644 +--- a/binaryurp/source/lessoperators.hxx ++++ b/binaryurp/source/lessoperators.hxx +@@ -31,6 +31,10 @@ namespace com { namespace sun { namespace star { namespace uno { + + bool operator <(TypeDescription const & left, TypeDescription const & right); + ++struct TypeDescHash { sal_Int32 operator()( const TypeDescription&) const; }; ++ ++struct TypeDescEqual { bool operator()( const TypeDescription&, const TypeDescription&) const; }; ++ + } } } } + + namespace rtl { +-- +cgit v0.9.0.2-2-gbebe diff --git a/app-office/libreoffice/files/stop-messing-with-stdlib-internals.patch b/app-office/libreoffice/files/stop-messing-with-stdlib-internals.patch new file mode 100644 index 0000000..b9f8d31 --- /dev/null +++ b/app-office/libreoffice/files/stop-messing-with-stdlib-internals.patch @@ -0,0 +1,61 @@ +much from <http://cgit.freedesktop.org/libreoffice/core/tree/bridges/source/cpp_uno/gcc3_macosx_x86-64/except.cxx> +diff -ur a-libreoffice-4.1.0.1/bridges/source/cpp_uno/gcc3_linux_x86-64/except.cxx libreoffice-4.1.0.1/bridges/source/cpp_uno/gcc3_linux_x86-64/except.cxx +--- a-libreoffice-4.1.0.1/bridges/source/cpp_uno/gcc3_linux_x86-64/except.cxx 2013-06-20 09:13:52.000000000 +0200 ++++ libreoffice-4.1.0.1/bridges/source/cpp_uno/gcc3_linux_x86-64/except.cxx 2013-07-11 14:16:40.998562174 +0200 +@@ -53,6 +53,38 @@ + + namespace CPPU_CURRENT_NAMESPACE + { ++struct FAKE_type_info: public std::type_info { ++ FAKE_type_info(char const * name): type_info(name) {} ++}; ++struct FAKE_si_class_type_info: public FAKE_type_info { ++ FAKE_si_class_type_info(char const * name, std::type_info const * theBase): ++ FAKE_type_info(name), base(theBase) {} ++ ++ std::type_info const * base; ++ // actually a __cxxabiv1::__class_type_info pointer ++}; ++struct Base {}; ++struct Derived: Base {}; ++ ++std::type_info * create_FAKE_class_type_info(char const * name) { ++ std::type_info * p = new FAKE_type_info(name); ++ // cxxabiv1::__class_type_info has no data members in addition to ++ // std::type_info ++ *reinterpret_cast< void ** >(p) = *reinterpret_cast< void * const * >( ++ &typeid(Base)); ++ // copy correct __cxxabiv1::__class_type_info vtable into place ++ return p; ++} ++ ++std::type_info * create_FAKE_si_class_type_info( ++ char const * name, std::type_info const * base) ++{ ++ std::type_info * p = new FAKE_si_class_type_info(name, base); ++ *reinterpret_cast< void ** >(p) = *reinterpret_cast< void * const * >( ++ &typeid(Derived)); ++ // copy correct __cxxabiv1::__si_class_type_info vtable into place ++ return p; ++} + + //================================================================================================== + static OUString toUNOname( char const * p ) SAL_THROW(()) +@@ -180,13 +212,13 @@ + // ensure availability of base + type_info * base_rtti = getRTTI( + (typelib_CompoundTypeDescription *)pTypeDescr->pBaseTypeDescription ); +- rtti = new __si_class_type_info( +- strdup( rttiName ), (__class_type_info *)base_rtti ); ++ rtti = create_FAKE_si_class_type_info( ++ strdup( rttiName ), base_rtti ); + } + else + { + // this class has no base class +- rtti = new __class_type_info( strdup( rttiName ) ); ++ rtti = create_FAKE_class_type_info( strdup( rttiName ) ); + } + + pair< t_rtti_map::iterator, bool > insertion ( + diff --git a/app-office/libreoffice/files/stop-messing-with-stdlib-internals2.patch b/app-office/libreoffice/files/stop-messing-with-stdlib-internals2.patch new file mode 100644 index 0000000..31c27ba --- /dev/null +++ b/app-office/libreoffice/files/stop-messing-with-stdlib-internals2.patch @@ -0,0 +1,75 @@ +--- a/libreoffice-4.1.0.1/bridges/source/cpp_uno/gcc3_linux_x86-64/except.cxx 2013-07-13 22:47:29.146836141 +0200 ++++ b/libreoffice-4.1.0.1/bridges/source/cpp_uno/gcc3_linux_x86-64/except.cxx 2013-07-13 22:47:24.428793311 +0200 +@@ -53,38 +53,6 @@ + + namespace CPPU_CURRENT_NAMESPACE + { +-struct FAKE_type_info: public std::type_info { +- FAKE_type_info(char const * name): type_info(name) {} +-}; +-struct FAKE_si_class_type_info: public FAKE_type_info { +- FAKE_si_class_type_info(char const * name, std::type_info const * theBase): +- FAKE_type_info(name), base(theBase) {} +- +- std::type_info const * base; +- // actually a __cxxabiv1::__class_type_info pointer +-}; +-struct Base {}; +-struct Derived: Base {}; +- +-std::type_info * create_FAKE_class_type_info(char const * name) { +- std::type_info * p = new FAKE_type_info(name); +- // cxxabiv1::__class_type_info has no data members in addition to +- // std::type_info +- *reinterpret_cast< void ** >(p) = *reinterpret_cast< void * const * >( +- &typeid(Base)); +- // copy correct __cxxabiv1::__class_type_info vtable into place +- return p; +-} +- +-std::type_info * create_FAKE_si_class_type_info( +- char const * name, std::type_info const * base) +-{ +- std::type_info * p = new FAKE_si_class_type_info(name, base); +- *reinterpret_cast< void ** >(p) = *reinterpret_cast< void * const * >( +- &typeid(Derived)); +- // copy correct __cxxabiv1::__si_class_type_info vtable into place +- return p; +-} + + //================================================================================================== + static OUString toUNOname( char const * p ) SAL_THROW(()) +@@ -202,30 +170,8 @@ + t_rtti_map::const_iterator iFind2( m_generatedRttis.find( unoName ) ); + if (iFind2 == m_generatedRttis.end()) + { +- // we must generate it ! +- // symbol and rtti-name is nearly identical, +- // the symbol is prefixed with _ZTI +- char const * rttiName = symName.getStr() +4; +-#if OSL_DEBUG_LEVEL > 1 +- fprintf( stderr,"generated rtti for %s\n", rttiName ); +-#endif +- if (pTypeDescr->pBaseTypeDescription) +- { +- // ensure availability of base +- type_info * base_rtti = getRTTI( +- (typelib_CompoundTypeDescription *)pTypeDescr->pBaseTypeDescription ); +- rtti = create_FAKE_si_class_type_info( +- strdup( rttiName ), base_rtti ); +- } +- else +- { +- // this class has no base class +- rtti = create_FAKE_class_type_info( strdup( rttiName ) ); +- } +- +- pair< t_rtti_map::iterator, bool > insertion ( +- m_generatedRttis.insert( t_rtti_map::value_type( unoName, rtti ) ) ); +- SAL_WARN_IF( !insertion.second, "bridges", "key " << unoName << " already in generated rtti map" ); ++ OSL_FAIL("Cannot generate type_infos with libc++, sigh"); ++ return NULL; + } + else // taking already generated rtti + { + diff --git a/app-office/libreoffice/libreoffice-4.1.0.1.ebuild b/app-office/libreoffice/libreoffice-4.1.0.1.ebuild index 6e3c96c..18b2f4a 100644 --- a/app-office/libreoffice/libreoffice-4.1.0.1.ebuild +++ b/app-office/libreoffice/libreoffice-4.1.0.1.ebuild @@ -72,7 +72,7 @@ unset EXT_URI unset ADDONS_SRC IUSE="bluetooth +branding +cups dbus debug eds gnome gstreamer +gtk -gtk3 jemalloc kde mysql odk opengl postgres telepathy test +vba +webdav" +gtk3 jemalloc kde libcxx mysql odk opengl postgres telepathy test +vba +webdav" LO_EXTS="nlpsolver presenter-minimizer scripting-beanshell scripting-javascript wiki-publisher" # Unpackaged separate extensions: @@ -89,7 +89,7 @@ unset lo_xt LICENSE="|| ( LGPL-3 MPL-1.1 )" SLOT="0" [[ ${PV} == *9999* ]] || \ -KEYWORDS="~amd64 ~arm ~ppc ~x86 ~amd64-linux ~x86-linux" +KEYWORDS="~amd64 ~x86" COMMON_DEPEND=" ${PYTHON_DEPS} @@ -333,6 +333,25 @@ src_prepare() { epatch fi + if use libcxx; then + epatch "${FILESDIR}"/Make-the-SAL_STREAM-thing-compile.patch + epatch "${FILESDIR}"/Nah-we-still-need-the-dynamic_cast.patch + + # by eroen + epatch "${FILESDIR}"/stop-messing-with-stdlib-internals.patch + + epatch "${FILESDIR}"/i122208-replace-the-binaryurp-cache.patch + epatch "${FILESDIR}"/cppcheck-fix-duplicateExpression.patch + epatch "${FILESDIR}"/No-need-for-a-buggy-rewrite.patch + epatch "${FILESDIR}"/eliminate-type-ambiguity-for-std-accumulate.patch + + # by eroen + epatch "${FILESDIR}"/fake-exception-name2.patch + epatch "${FILESDIR}"/stop-messing-with-stdlib-internals2.patch + epatch "${FILESDIR}"/disable-CppunitTest_sw_uwriter.patch + epatch "${FILESDIR}"/disable-more-tests.patch + fi + base_src_prepare AT_M4DIR="m4" eautoreconf diff --git a/app-office/libreoffice/metadata.xml b/app-office/libreoffice/metadata.xml index 09a0289..76c29d1 100644 --- a/app-office/libreoffice/metadata.xml +++ b/app-office/libreoffice/metadata.xml @@ -1,20 +1,21 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <herd>openoffice</herd> - <longdescription>LibreOffice is a fork of OpenOffice.org. + <herd>openoffice</herd> + <longdescription>LibreOffice is a fork of OpenOffice.org. This ebuild allows you to compile it yourself. Unfortunately this compilation can take up to a day depending on the speed of your computer. It will however make a snappier openoffice than the binary version</longdescription> - <use> - <flag name="binfilter">Enable support for legacy StarOffice 5.x and earlier file formats</flag> - <flag name="binfilterdebug">Generate debug info for binfilter code (not recommended, huge files result)</flag> - <flag name="gtk3">Enable highly experimental gtk3 frontend</flag> - <flag name="jemalloc">Use <pkg>dev-libs/jemalloc</pkg> for allocations</flag> - <flag name="odk">Build the Office Development Kit</flag> - <flag name="telepathy">Enable document colaboration features using telepathy communication framework.</flag> - <flag name="vba">Enable support for VBA compatibility and ActiveX embedding</flag> - <flag name="webdav">Adds support for HTTP content adding via <pkg>net-libs/neon</pkg></flag> - </use> + <use> + <flag name="binfilter">Enable support for legacy StarOffice 5.x and earlier file formats</flag> + <flag name="binfilterdebug">Generate debug info for binfilter code (not recommended, huge files result)</flag> + <flag name="gtk3">Enable highly experimental gtk3 frontend</flag> + <flag name="jemalloc">Use <pkg>dev-libs/jemalloc</pkg> for allocations</flag> + <flag name="libcxx">Apply patches to build against <pkg>sys-libs/libcxx</pkg></flag> + <flag name="odk">Build the Office Development Kit</flag> + <flag name="telepathy">Enable document colaboration features using telepathy communication framework.</flag> + <flag name="vba">Enable support for VBA compatibility and ActiveX embedding</flag> + <flag name="webdav">Adds support for HTTP content adding via <pkg>net-libs/neon</pkg></flag> + </use> </pkgmetadata> |