commit:     c0f246a255a609281d3e330ab9a7e1cc899b018e
Author:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Thu Dec  8 10:08:05 2016 +0000
Commit:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Thu Dec  8 10:09:11 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c0f246a2

net-wireless/bluez: We need to ensure obexd can be spawned automatically by 
systemd when user-session is enabled in dbus (#577842)

Package-Manager: portage-2.3.2

 net-wireless/bluez/bluez-5.43-r1.ebuild | 255 ++++++++++++++++++++++++++++++++
 net-wireless/bluez/metadata.xml         |  36 ++---
 2 files changed, 273 insertions(+), 18 deletions(-)

diff --git a/net-wireless/bluez/bluez-5.43-r1.ebuild 
b/net-wireless/bluez/bluez-5.43-r1.ebuild
new file mode 100644
index 00000000..86d2a68
--- /dev/null
+++ b/net-wireless/bluez/bluez-5.43-r1.ebuild
@@ -0,0 +1,255 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools eutils multilib python-single-r1 readme.gentoo-r1 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 ~arm64 ~hppa ~mips ~ppc ~ppc64 ~x86"
+
+IUSE="cups doc debug deprecated extra-tools experimental +obex +readline 
selinux systemd test test-programs +udev user-session"
+# Since this release all remaining extra-tools need readline support, but this 
could
+# change in the future, hence, this REQUIRED_USE constraint could be dropped
+# again in the future.
+REQUIRED_USE="
+       extra-tools? ( readline )
+       test? ( ${PYTHON_REQUIRED_USE} )
+       test-programs? ( ${PYTHON_REQUIRED_USE} )
+       user-session? ( systemd )
+"
+
+CDEPEND="
+       >=dev-libs/glib-2.28:2[${MULTILIB_USEDEP}]
+       >=sys-apps/dbus-1.6:=[user-session=]
+       >=sys-apps/hwids-20121202.2
+       cups? ( net-print/cups:= )
+       obex? ( dev-libs/libical:= )
+       readline? ( sys-libs/readline:= )
+       systemd? ( sys-apps/systemd )
+       udev? ( >=virtual/udev-172 )
+"
+TEST_DEPS="${PYTHON_DEPS}
+       >=dev-python/dbus-python-1[${PYTHON_USEDEP}]
+       dev-python/pygobject:3[${PYTHON_USEDEP}]
+"
+
+DEPEND="${CDEPEND}
+       virtual/pkgconfig
+       test? ( ${TEST_DEPS} )
+"
+RDEPEND="${CDEPEND}
+       selinux? ( sec-policy/selinux-bluetooth )
+       test-programs? ( ${TEST_DEPS} )
+"
+DOC_CONTENTS="
+       If you want to use rfcomm as a normal user, you need to add the user
+       to the uucp group.
+"
+
+PATCHES=(
+       # Use static group "plugdev" if there is no ConsoleKit (or systemd 
logind)
+       "${FILESDIR}"/bluez-plugdev.patch
+
+       # Try both udevadm paths to cover udev/systemd vs. eudev locations 
(#539844)
+       # http://www.spinics.net/lists/linux-bluetooth/msg58739.html
+       "${FILESDIR}"/bluez-udevadm-path.patch
+
+       # build: Quote systemd variable names, bug #527432
+       # http://article.gmane.org/gmane.linux.bluez.kernel/67230
+       "${FILESDIR}"/bluez-5.39-systemd-quote.patch
+
+       # Fedora patches
+       # http://www.spinics.net/lists/linux-bluetooth/msg40136.html
+       
"${FILESDIR}"/0001-obex-Use-GLib-helper-function-to-manipulate-paths.patch
+
+       # http://www.spinics.net/lists/linux-bluetooth/msg41264.html
+       "${FILESDIR}"/0002-autopair-Don-t-handle-the-iCade.patch
+
+       # ???
+       "${FILESDIR}"/0004-agent-Assert-possible-infinite-loop.patch
+)
+
+pkg_setup() {
+       enewgroup plugdev
+
+       if use test || use test-programs; then
+               python-single-r1_pkg_setup
+       fi
+
+       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() {
+       default
+
+       # http://www.spinics.net/lists/linux-bluetooth/msg38490.html
+       ! use user-session && eapply 
"${FILESDIR}"/0001-Allow-using-obexd-without-systemd-in-the-user-sessio.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 \
+               --enable-tools \
+               --enable-manpages \
+               --enable-monitor \
+               --with-systemdsystemunitdir="$(systemd_get_systemunitdir)" \
+               $(multilib_native_use_enable cups) \
+               $(multilib_native_use_enable deprecated) \
+               $(multilib_native_use_enable experimental) \
+               $(multilib_native_use_enable obex) \
+               $(multilib_native_use_enable readline client) \
+               $(multilib_native_use_enable systemd) \
+               $(multilib_native_use_enable test-programs test) \
+               $(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
+
+               # Only install extra-tools when relevant USE flag is enabled
+               if use extra-tools; then
+                       ewarn "Upstream doesn't support using this tools and 
their bugs are"
+                       ewarn "likely to be ignored forever, also that tools 
can break"
+                       ewarn "without previous announcement."
+                       ewarn "Upstream also states all this tools are not 
really needed,"
+                       ewarn "then, if you still need to rely on them, you 
must ask them"
+                       ewarn "to either install that tool by default or add 
the needed"
+                       ewarn "functionality to the existing 'official' tools."
+                       ewarn "Please report this issues to:"
+                       ewarn "http://www.bluez.org/development/lists/";
+
+                       # Upstream doesn't install this, bug #524640
+                       # 
http://permalink.gmane.org/gmane.linux.bluez.kernel/53115
+                       # 
http://comments.gmane.org/gmane.linux.bluez.kernel/54564
+                       # gatttool is only built with readline, bug #530776
+                       if use readline; then
+                               dobin attrib/gatttool
+                               dobin tools/btmgmt
+                       fi
+               fi
+
+               # Unittests are not that useful once installed, so make them 
optional
+               if use test-programs; then
+                       # example-gatt-client is the only one needing
+                       # python3, the others are python2 only. Remove
+                       # until we see how to pull in python2 and python3
+                       # for runtime
+                       rm 
"${ED}"/usr/$(get_libdir)/bluez/test/example-gatt-server || die
+                       rm 
"${ED}"/usr/$(get_libdir)/bluez/test/example-gatt-client || die
+                       python_fix_shebang "${ED}"/usr/$(get_libdir)/bluez/test
+                       for i in $(find "${ED}"/usr/$(get_libdir)/bluez/test 
-maxdepth 1 -type f ! -name "*.*"); do
+                               dosym "${i}" /usr/bin/bluez-"${i##*/}"
+                       done
+               fi
+       else
+               emake DESTDIR="${D}" \
+                       install-includeHEADERS \
+                       install-libLTLIBRARIES \
+                       install-pkgconfigDATA
+       fi
+}
+
+multilib_src_install_all() {
+       # We need to ensure obexd can be spawned automatically by systemd
+       # when user-session is enabled:
+       # http://marc.info/?l=linux-bluetooth&m=148096094716386&w=2
+       # https://bugs.gentoo.org/show_bug.cgi?id=577842
+       # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=804908
+       # https://bugs.archlinux.org/task/45816
+       # https://bugzilla.redhat.com/show_bug.cgi?id=1318441
+       # https://bugzilla.redhat.com/show_bug.cgi?id=1389347
+       use user-session && ln -s "${ED}"/usr/lib/systemd/user/obex.service 
"${ED}"/usr/lib/systemd/user/dbus-org.bluez.obex.service
+
+       prune_libtool_files --modules
+
+       keepdir /var/lib/bluetooth
+
+       # Upstream don't want people to play with them
+       # But we keep installing them due to 'historical' reasons
+       insinto /etc/bluetooth
+       local d
+       for d in input network proximity; do
+               doins profiles/${d}/${d}.conf
+       done
+       doins src/main.conf
+
+       newinitd "${FILESDIR}"/bluetooth-init.d-r3 bluetooth
+       newinitd "${FILESDIR}"/rfcomm-init.d-r2 rfcomm
+
+       einstalldocs
+       use doc && dodoc doc/*.txt
+       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"
+               elog "need to add the user to the plugdev group."
+       fi
+}

diff --git a/net-wireless/bluez/metadata.xml b/net-wireless/bluez/metadata.xml
index 7d7038e..111da8c 100644
--- a/net-wireless/bluez/metadata.xml
+++ b/net-wireless/bluez/metadata.xml
@@ -1,27 +1,27 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
 <pkgmetadata>
-  <maintainer type="person">
-    <email>[email protected]</email>
+<maintainer type="person">
+  <email>[email protected]</email>
     <name>Pacho Ramos</name>
   </maintainer>
-  <use>
-    <flag name="deprecated">Build deprecated plugins</flag>
-    <flag name="experimental">Build experimental plugins</flag>
-    <flag name="extra-tools">Install tools that upstream doesn't install on
+<use>
+  <flag name="deprecated">Build deprecated plugins</flag>
+  <flag name="experimental">Build experimental plugins</flag>
+  <flag name="extra-tools">Install tools that upstream doesn't install on
     purpose by default. All this tools shouldn't be used. Then, please
     notify upstream about you still need them to let them know the
     situation.</flag>
-    <flag name="test-programs">Install tools for testing of
-                       various Bluetooth functions</flag>
-    <flag name="hid2hci">The HID proxying makes the keyboard / mouse show up
-                       as regular USB HID devices, but needs them to be
-                       paired before enabling this, otherwise they won't be
-                       detected</flag>
-    <flag name="obex">Enable OBEX transfer support.</flag>
-  </use>
-  <upstream>
-    <remote-id type="cpe">cpe:/a:bluez:bluez</remote-id>
-    <remote-id type="cpe">cpe:/a:bluez:bluez-libs</remote-id>
-  </upstream>
+  <flag name="test-programs">Install tools for testing of
+    various Bluetooth functions</flag>
+  <flag name="hid2hci">The HID proxying makes the keyboard / mouse show up
+    as regular USB HID devices, but needs them to be paired before enabling
+    this, otherwise they won't be detected</flag>
+  <flag name="obex">Enable OBEX transfer support.</flag>
+  <flag name="user-session">Allow compatibility with user-session semantics 
for session bus under systemd</flag>
+</use>
+<upstream>
+  <remote-id type="cpe">cpe:/a:bluez:bluez</remote-id>
+  <remote-id type="cpe">cpe:/a:bluez:bluez-libs</remote-id>
+</upstream>
 </pkgmetadata>

Reply via email to