diff options
author | Pacho Ramos <pacho@gentoo.org> | 2014-10-11 11:00:51 +0000 |
---|---|---|
committer | Pacho Ramos <pacho@gentoo.org> | 2014-10-11 11:00:51 +0000 |
commit | a055448221afa21ca24664d491264b0e19a503d9 (patch) | |
tree | 5924246210102035a0a9452513e1502718823a45 | |
parent | Backport the poppler-0.26 patch to luatex-0.70 and apply it conditionally, bu... (diff) | |
download | historical-a055448221afa21ca24664d491264b0e19a503d9.tar.gz historical-a055448221afa21ca24664d491264b0e19a503d9.tar.bz2 historical-a055448221afa21ca24664d491264b0e19a503d9.zip |
Version bump, fix compat with musl (#524454 by Anthony Basile), install gatttool (#524640 by Jason Zaman), install hex2hcd (by amak79).
Package-Manager: portage-2.2.12/cvs/Linux x86_64
Manifest-Sign-Key: 0xA188FBD4
-rw-r--r-- | net-wireless/bluez/ChangeLog | 9 | ||||
-rw-r--r-- | net-wireless/bluez/Manifest | 11 | ||||
-rw-r--r-- | net-wireless/bluez/bluez-5.24.ebuild | 209 | ||||
-rw-r--r-- | net-wireless/bluez/files/bluez-5.24-musl-compat.patch | 37 |
4 files changed, 261 insertions, 5 deletions
diff --git a/net-wireless/bluez/ChangeLog b/net-wireless/bluez/ChangeLog index 875c245f19a4..2a30c42bf254 100644 --- a/net-wireless/bluez/ChangeLog +++ b/net-wireless/bluez/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for net-wireless/bluez # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/net-wireless/bluez/ChangeLog,v 1.218 2014/09/25 09:11:55 pacho Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-wireless/bluez/ChangeLog,v 1.219 2014/10/11 11:00:50 pacho Exp $ + +*bluez-5.24 (11 Oct 2014) + + 11 Oct 2014; Pacho Ramos <pacho@gentoo.org> +bluez-5.24.ebuild, + +files/bluez-5.24-musl-compat.patch: + Version bump, fix compat with musl (#524454 by Anthony Basile), install + gatttool (#524640 by Jason Zaman), install hex2hcd (by amak79). 25 Sep 2014; Pacho Ramos <pacho@gentoo.org> bluez-5.23.ebuild: Install docs (#523660 by Mart Raudsepp) diff --git a/net-wireless/bluez/Manifest b/net-wireless/bluez/Manifest index 0cb943bc34bb..704afd039955 100644 --- a/net-wireless/bluez/Manifest +++ b/net-wireless/bluez/Manifest @@ -8,6 +8,7 @@ AUX 0002-autopair-Don-t-handle-the-iCade.patch 1412 SHA256 219c595ea7d022abc7022 AUX 0004-agent-Assert-possible-infinite-loop.patch 583 SHA256 7164b3c2e759336f926210b923b917ee5b3098024fd7a46d39cfe0c0e463ddb3 SHA512 f3af46b27180f500c3f978799633b7a01a9d7720eafdb7a9fb108684161616b976b42d135a2358785830c26642ef7c2175d0f1fa3d6df898fe3bd5e77f6a191d WHIRLPOOL 4c6ecb787db4e3922652433940e734de9c1755be9cd73a27cd0e1b62ca470c76962fef666aff1b2932e306772b5879f34bae366619bb173ae1f92a0cfeff5e3f AUX bluetooth-init.d-r2 532 SHA256 cd8cc3763601470328709c961b0c68a311f6d4af302d46a880fb855ed9d04efe SHA512 a1a391ac545d69aa15a1f98349e68b06b3468759acef95ea82d7cdec58ba40c3d03bda87e0279d186440c84ea940ae09d075269f6cb6b27cf2ca1f2a329e842b WHIRLPOOL ae6b78b8f8d56a567a2d80693366ebc319447267345db373e3b01dcf2c58078cf1615529589f3c3fb1237f7c617583639f3ae501018d11a8eaf68186938bddd2 AUX bluetooth-init.d-r3 571 SHA256 de7f4a890cf994e1c283251ac5ac6b0aedb29104d708e5e7a77702ac2055dec7 SHA512 e5f550a8c0b5c9e8902c920b1bd1ef120698b568fe38220eae2d49099e364ea7b05e3026356e857666a515bb9137c92a774ca1fc70a2b6814b4d03fe29c2ccc2 WHIRLPOOL 84a3655b8b13985759365ac220a27fcc18cdf97373032e2040cf4a5b27a8b1a5df92aa6b45e92442010b338419d82c4f9548af03602c101e9f34d623e4b1b174 +AUX bluez-5.24-musl-compat.patch 1074 SHA256 5384d81e2feaa11268f69036385ae91f2ed5e357df6300c337e88fe5bdf06fef SHA512 620b304749e6f1e725eb9fd19a7e69cc704c5da5f4676a310bb2101eac676dcf47c64a7998403fc3f7929330da5fb5e84ef93c58f7d41aee86deb136c45c1784 WHIRLPOOL cc09186ac50689a3f12580e6c787f91d21dabd9723e0fa7a2ea85ff8a155dd17f58a7f0706d5451d3d269b94884c7baf46f0fa112c5cc15f50c4ade0cd2af6c3 AUX bluez-plugdev.patch 469 SHA256 ec3f06f24f530574edf5eef308afcf16bb7e0a88336a454a0b24698d2491f5f2 SHA512 b7e23b6f52e6f638e6d5deed4e901136c40bc1cbfb302ada8d85873e1792b4e3605802a2c5f786d5d6d53bf4651fc5b611396aaafe5eff90578650c448a5a7a2 WHIRLPOOL 6364590d80d811e55e2f696ba0b57c0173bac859e69de284bbcc3b511c7ea639d48dd7451e5a4abe8746b8c0986867cb680b291880e6a6ada03004e0c72c2583 AUX rfcomm-conf.d 150 SHA256 672498957049fd301f9c9c1dc9fa49430e5e6d3c3f1f3cdce80df3af7d425d08 SHA512 a70aa0dbbabe7e29ee81540a6f98bf191a850da55a28f678975635caf34b363cf4d461a801b3484120ee28fdd21240bd456a4f5d706262700924bd2e9a0972fb WHIRLPOOL 4d8b1f17c87120fcc21eb49644b27813a9463d990d3533cd542710cd14981cb74528b978ca65001fa60153e05260a0ee0a7af1d2855b04484ec1f7318acda8f0 AUX rfcomm-init.d 665 SHA256 88df441dc7a7d5ce28005e311168690ecf877148efc5264e310189a6baedc05e SHA512 30ddaa1e0572d6b436dd20a89ebfdc83369c10ccc307e184c8437ff8b1a91078a4315958f1b013cb1568817562c17440f9ca1284f686ec9bc542cd6d0d321097 WHIRLPOOL b050e49599481a8a13e6ed47fad919b9eaaf39dffe0774783c57a26cbc27c15d59591a6edd19ede7a9844ac6de211fc3d37ced06052d34a9ab02dae271b9696e @@ -17,17 +18,19 @@ DIST bluez-4.101.tar.xz 887236 SHA256 41f9578bef39b8c94a2d6ddeaa556afd22d136936d DIST bluez-5.18.tar.xz 1308192 SHA256 8c8bb13db83d0de6c85def2da8dfa0a758aff595405fb57a00719ed94d558340 SHA512 fbf5d68ae6a0c5c33fb0c645f0b6625624ffb08aa498147c90df53c5a5b3a9e67dc4ae5fcba81fb8399755287ca78cc31f936e7ac3a7760fde9783408a459188 WHIRLPOOL 3cf2e66fc05c996cf2ca2dcb1cd17dc248b0f8ff3ddb95f656b5229058888816a5591ff74f270de88a192e60bcd07145cbf81839e0291fc1316f92e6b1db19f3 DIST bluez-5.21.tar.xz 1387560 SHA256 81eb073516f39ff1fa02fa40120e834f40fdb0b772f8f4153a9ab566cc0a1f4f SHA512 41ce678abd050ad020d1e04e52740167746eaa7f35e339784c07dec44995b07a8e4e96f0e9530eed2faa50c95c756d56ea0c4d412421b69698f8ca4c9051d07e WHIRLPOOL 60d3312fa66903a8a92ab516558cefc9ddc5c81e8cf632fa7a13ce170f10db94ecef52611c704c4d2f5db5eb0470fca8b6fec0ce59136f4c864a3d08c7bad2ff DIST bluez-5.23.tar.xz 1426660 SHA256 cdabd38d7ac8dd392a77ce7d76d5c120b277e4115040ba5d3ab91c05ab37f2c1 SHA512 5cbb5c34963c5b70badab618018eda5017b44d240c3a47b4bbaf88e41b67617c5a299a21509a917ef3bb91be79032aa10837138283b6510e2829a6be1554ef92 WHIRLPOOL c3049637a97c80301307fa8ce7618763df706223d103e6a79c41eecc68203bcd0f999f8f523048acac6f07884ce4ecbc0ef9e2f80bbdafacbbef289fb9531fc8 +DIST bluez-5.24.tar.xz 1444536 SHA256 e870c5fba0bf3496856fc720e2d217856fcf40b59829f8cc0c05902ebb9fb837 SHA512 e4372c5a74dff8c399693504139bbd0d5b7b06822e659530d30cc5cf12842ad96ed1875eed0c46cc7cb63178cc910c6100988d1bb396580c1e0746e6eea50b13 WHIRLPOOL 60c5b6e045bf280d9298df03ec7aa7d42e7993a3492d5375d324adf02b8fd6af42932d8b3878714d27595b67ee8f5a825d8a9149ab584ac364e3282e829a4618 EBUILD bluez-4.101-r8.ebuild 4240 SHA256 b6a8079aaa7d88894758ae5ebb9c0e45099c1593e6a4d2814aa521a55f58eac2 SHA512 149053e66990a699dc393b98d3b009d01174d88704195fc7e80831701fff1c1bd32b60a31e9642170b10d52b2211452de4309c75478fe78ae5640f161b8e639b WHIRLPOOL 15710a42aeda2fa1ce49525eb8281844d5f0e7f4f637b677aaad41d510145fba1ef5932fcd1a0fa9cdaeca0b9100bdd1059574caead836c09476f6d9f2928f80 EBUILD bluez-4.101-r9.ebuild 5288 SHA256 bceb936f0defa0a3a55597090fa9c401e116d92f166557938ef720799349b2b0 SHA512 2a78b052c8d30d1e64aa8038b0c7f9ed9f9d1d8a3e86e864ff3efb1647383e220e1508fd51e0c35be1b4afb17e5e53d2c9e159ee6412e39f1dade91e64d58e5e WHIRLPOOL 5c6b12d96aebbd786df7e2ebaadb89090c8ef41116be89ba9af0b5143150b559ff5992e8aeb876d4b11608cd53bc94bb8118b054486b493c12d45080218b6b10 EBUILD bluez-5.18.ebuild 4223 SHA256 29f3e8a2e50892730a8edef97029eac892802ff435c4b7348de24797c161a844 SHA512 0e4b704a40372371a3e416ac8ba229e2e3022bd4d1804b9124be4d905a6b0b8aa568a3ff46ca6811015ea6e17c4dff0df401abdda792d3b378d054397c6c5b0b WHIRLPOOL a753fc2a8867e3ff0d7685c8b062dc67b87ad4ebe8396a304111c7027e5ddfb9dc5446e5c8c598441d9202ce9bba43f3b5f8654032c175389305a085dae76278 EBUILD bluez-5.21-r1.ebuild 5103 SHA256 78806caf83724a4cbbefad94a4000512e93b4d3d9c5cbd48749bda5b6c725cbd SHA512 ca87e98f3354c74edd1e5b7f6d97fb128744c97402a4c2b946f7e0ad9030d0d2af7c78d8cc1a350e4067932a42b870390eb9d3ae0ef55e068c85de3b7b9c29c6 WHIRLPOOL 5af94dcc54da0222ff67c29c63bf375b79cbc3e10913d32299c0c9e119c21f71c0c113353b1bbd00b54c99ef2e1ef0413181bedcde9a9141efc8a84e61e470c8 EBUILD bluez-5.23.ebuild 5353 SHA256 a6cd356486fd4a6bfbb60e490433939d2b265ca25998cc46ba31d1125726946c SHA512 a490bd63ab34ccded295d5b32d79e7b46a6fcb8811391fd15d53b562299841c34dd474a0043e7fd23d1ff26808007473f14c5b0289980a5ae033cc5a7529da1f WHIRLPOOL 8bb1a23449dffc4e7738aea09289364a48767bf35db874fee96d3024e572c74808ce7f334ec6f557d5abef75fe070ff4d7497b17f472c7e34ec5f2f65f3ea73b -MISC ChangeLog 39244 SHA256 b49a36a531197afa270bd2aea15681f6ccc8f5d439683c3b10985fd705517df7 SHA512 8fda161386149763959f94ce81673f19fcd2676787622721e4499a862650741a1a4f7544b4ab90f24ea17f83c953c9d54f4a386d7ac0b3286e68de903a74e939 WHIRLPOOL 91795d58640024b8ddbc154e01d454876a03cc09b79ed853a7ca35a86e561fb5f1e677dee3003ed60bd226a4fbfd30ec7b9561f3a2f551ef2d74297269cd3c3d +EBUILD bluez-5.24.ebuild 5633 SHA256 ab27b8497beb0d1c2e1e9feccb8fc09baa5f2c873daa66c91065188bce4a63f6 SHA512 d358ab9085907a94b9f7094b555f8b489f08ccedbc7dd7d299e13fbb2bc80ca92ed702372f34d8640c866e0b9071bceccafc32f27748ec9f91028ee850a271c9 WHIRLPOOL e8bd5a3d80e2e16ac522419603e1f0af73fc9c74a88f64763106376ea24fd024c2e40e6adb324cd28e68ad87bc5e817530d7fdc34e99b405e4f994d9ecb117f8 +MISC ChangeLog 39517 SHA256 9a361ec147fd79c4aaa34b5de4e8d83231f178618d54bb13e36ddc54c0cf21ec SHA512 96db51a4d377b98d15dbed960a025d9066176e1910754a612bac98c30b6ad0b38e1a8f6a235177822bd8e6a4ea0b9ea46ee42ec7c13ff370ba39b6f20c3bfd0c WHIRLPOOL 8aa184bee3a5f1e17c7d910d1dacd2dbe01addfcc7ef7f96c38a1f27054158d9de9265f1e67ccee58b7d64d4a562f9aae87a5c0cdd4e8a0693da4d6c0281bc38 MISC metadata.xml 759 SHA256 e649a4a8180f678ead82c6b8fd8d02cecc19f0c592fb059cbbadf14c3028da7f SHA512 91e8f285f398cbd6bd7e739433df5efab185bfcbc755e403639ac504fd8c5699531b205b0a54c4da24785268d8c5b18b06db30536484576726afede6a67c8184 WHIRLPOOL 459f9d3e931bd0c7962ef8633ed28292ca30835f60ff8eabf067051606509ee411d4aafa8e95e1ebfdc626f35e95ae6516b7469b984fcddddae0db3bb007d9a4 -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 -iEYEAREIAAYFAlQj3FwACgkQCaWpQKGI+9S57gCfUJoK4AxLKY0/yFNTKgZn4qKR -qnwAnRCU4E1O+09vs0cgiPLJ5iueYeoh -=owWf +iEYEAREIAAYFAlQ5DeMACgkQCaWpQKGI+9QyuQCfctGvOBmS4tKo0aRtO7tUncb0 +PrAAnA0ZMKcNGlwUOF1x+YflWQR8Vfl2 +=i/OU -----END PGP SIGNATURE----- diff --git a/net-wireless/bluez/bluez-5.24.ebuild b/net-wireless/bluez/bluez-5.24.ebuild new file mode 100644 index 000000000000..bc28f3722c1a --- /dev/null +++ b/net-wireless/bluez/bluez-5.24.ebuild @@ -0,0 +1,209 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-wireless/bluez/bluez-5.24.ebuild,v 1.1 2014/10/11 11:00:50 pacho Exp $ + +EAPI=5 +PYTHON_COMPAT=( python{2_6,2_7,3_2,3_3} ) + +inherit autotools eutils multilib python-any-r1 readme.gentoo systemd udev user multilib-minimal + +DESCRIPTION="Bluetooth Tools and System Daemons for Linux" +HOMEPAGE="http://www.bluez.org" +SRC_URI="mirror://kernel/linux/bluetooth/${P}.tar.xz" + +LICENSE="GPL-2+ LGPL-2.1+" +SLOT="0/3" +KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~x86" +IUSE="cups debug +obex +readline selinux systemd test +udev" +REQUIRED_USE="test? ( ${PYTHON_REQUIRED_USE} )" + +RDEPEND=" + >=dev-libs/glib-2.28:2 + >=sys-apps/dbus-1.6:= + >=sys-apps/hwids-20121202.2 + cups? ( net-print/cups:= ) + obex? ( dev-libs/libical ) + readline? ( sys-libs/readline:= ) + selinux? ( sec-policy/selinux-bluetooth ) + systemd? ( sys-apps/systemd ) + udev? ( >=virtual/udev-172 ) + abi_x86_32? ( + !<app-emulation/emul-linux-x86-soundlibs-20140406-r1 + !app-emulation/emul-linux-x86-soundlibs[-abi_x86_32] + ) +" +DEPEND="${RDEPEND} + virtual/pkgconfig + test? ( + ${PYTHON_DEPS} + >=dev-python/dbus-python-1 + dev-python/pygobject:2 + dev-python/pygobject:3 + ) +" + +DOC_CONTENTS=" + If you want to use rfcomm as a normal user, you need to add the user + to the uucp group. +" + +pkg_setup() { + enewgroup plugdev + use test && python-any-r1_pkg_setup + + if ! use udev; then + ewarn + ewarn "You are installing ${PN} with USE=-udev. This means various bluetooth" + ewarn "devices and adapters from Apple, Dell, Logitech etc. will not work," + ewarn "and hid2hci will not be available." + ewarn + fi +} + +src_prepare() { + # Use static group "plugdev" if there is no ConsoleKit (or systemd logind) + epatch "${FILESDIR}"/bluez-plugdev.patch + + # Fedora patches + # http://www.spinics.net/lists/linux-bluetooth/msg38490.html + epatch "${FILESDIR}"/0001-Allow-using-obexd-without-systemd-in-the-user-sessio.patch + + # http://www.spinics.net/lists/linux-bluetooth/msg40136.html + epatch "${FILESDIR}"/0001-obex-Use-GLib-helper-function-to-manipulate-paths.patch + + # http://www.spinics.net/lists/linux-bluetooth/msg41264.html + epatch "${FILESDIR}"/0002-autopair-Don-t-handle-the-iCade.patch + + # ??? + epatch "${FILESDIR}"/0004-agent-Assert-possible-infinite-loop.patch + + # Ubuntu workaround for bug #501120 + epatch "${FILESDIR}"/0001-work-around-Logitech-diNovo-Edge-keyboard-firmware-i.patch + + # Fix compatibility with musl, bug #524454 + # http://marc.info/?l=linux-bluetooth&m=141269379106447 + epatch "${FILESDIR}/${PN}-5.24-musl-compat.patch" + + if use cups; then + sed -i \ + -e "s:cupsdir = \$(libdir)/cups:cupsdir = $(cups-config --serverbin):" \ + Makefile.{in,tools} || die + fi + + eautoreconf + + multilib_copy_sources +} + +multilib_src_configure() { + local myconf=( + # readline is automagic when client is enabled + # --enable-client always needs readline, bug #504038 + ac_cv_header_readline_readline_h=$(multilib_native_usex readline) + ) + + if ! multilib_is_native_abi; then + myconf+=( + # deps not used for the library + {DBUS,GLIB}_{CFLAGS,LIBS}=' ' + ) + fi + + econf \ + --localstatedir=/var \ + --disable-android \ + --enable-datafiles \ + --enable-experimental \ + --enable-optimization \ + $(use_enable debug) \ + --enable-pie \ + --enable-threads \ + --enable-library \ + $(multilib_native_use_enable test) \ + --enable-tools \ + --enable-manpages \ + --enable-monitor \ + $(multilib_native_use_enable cups) \ + $(multilib_native_use_enable obex) \ + $(multilib_native_use_enable readline client) \ + $(multilib_native_use_enable systemd) \ + $(systemd_with_unitdir) \ + $(multilib_native_use_enable udev) \ + $(multilib_native_use_enable udev sixaxis) +} + +multilib_src_compile() { + if multilib_is_native_abi; then + default + else + emake -f Makefile -f - libs \ + <<<'libs: $(lib_LTLIBRARIES)' + fi +} + +multilib_src_test() { + multilib_is_native_abi && default +} + +multilib_src_install() { + if multilib_is_native_abi; then + emake DESTDIR="${D}" install + + # Upstream don't install this for unknown reasons, bug #524640 + # http://permalink.gmane.org/gmane.linux.bluez.kernel/53115 + dobin attrib/gatttool + dobin tools/hex2hcd + + # Unittests are not that useful once installed + if use test ; then + rm -r "${ED}"/usr/$(get_libdir)/bluez/test || die + fi + else + emake DESTDIR="${D}" \ + install-includeHEADERS \ + install-libLTLIBRARIES \ + install-pkgconfigDATA + fi +} + +multilib_src_install_all() { + prune_libtool_files --modules + + keepdir /var/lib/bluetooth + + # Upstream don't want people to play with them + # But we keep installing them due 'historical' reasons + insinto /etc/bluetooth + local d + for d in input network proximity; do + doins profiles/${d}/${d}.conf + done + doins src/main.conf + doins src/bluetooth.conf + +# FIXME: +# Looks like upstream installs it only for systemd, probably not needed +# insinto /usr/share/dbus-1/system-services +# doins src/org.bluez.service + + newinitd "${FILESDIR}"/bluetooth-init.d-r3 bluetooth + newinitd "${FILESDIR}"/rfcomm-init.d-r2 rfcomm + + einstalldocs + + readme.gentoo_create_doc +} + +pkg_postinst() { + readme.gentoo_print_elog + + use udev && udev_reload + + has_version net-dialup/ppp || elog "To use dial up networking you must install net-dialup/ppp." + + if ! has_version sys-auth/consolekit && ! has_version sys-apps/systemd; then + elog "Since you don't have sys-auth/consolekit neither sys-apps/systemd, you will only" + elog "be able to run bluetooth clients as root. If you want to be able to run bluetooth clients as" + elog "a regular user, you need to add the user to the plugdev group." + fi +} diff --git a/net-wireless/bluez/files/bluez-5.24-musl-compat.patch b/net-wireless/bluez/files/bluez-5.24-musl-compat.patch new file mode 100644 index 000000000000..766734a4affe --- /dev/null +++ b/net-wireless/bluez/files/bluez-5.24-musl-compat.patch @@ -0,0 +1,37 @@ +From 57c33317f5c3f6d21a9b3c56f8d1e97179e4c457 Mon Sep 17 00:00:00 2001 +From: "Anthony G. Basile" <blueness@gentoo.org> +Date: Sat, 4 Oct 2014 09:34:05 -0400 +Subject: [PATCH] emulator/serial.c: use posix_openpt() instead of getpt() + +getpt(3) is glibc-specific and is not provided on musl. Instead, we +use use posix_openpt(3) which is equivalent and portable. + +Signed-off-by: Anthony G. Basile <blueness@gentoo.org> +--- + emulator/serial.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/emulator/serial.c b/emulator/serial.c +index 9583be4..8b49dc6 100644 +--- a/emulator/serial.c ++++ b/emulator/serial.c +@@ -32,6 +32,7 @@ + #include <unistd.h> + #include <stdlib.h> + #include <string.h> ++#include <fcntl.h> + #include <sys/param.h> + #include <sys/epoll.h> + #include <sys/uio.h> +@@ -160,7 +161,7 @@ static void open_pty(struct serial *serial) + { + enum btdev_type uninitialized_var(type); + +- serial->fd = getpt(); ++ serial->fd = posix_openpt(O_RDWR | O_NOCTTY); + if (serial->fd < 0) { + perror("Failed to get master pseudo terminal"); + return; +-- +2.0.4 + |