I think this needs to be better justified. What were the reasons upstream didn't want to take this patch? Why would oe-core take it and maintain it until the end of time? Shouldn't this be a product specific feature for those (few) who need it, rather than a project level feature?
Alex On Fri, 23 Aug 2024 at 13:59, quic_dgangire via lists.openembedded.org <[email protected]> wrote: > > From: Damodar Reddy GangiReddy <[email protected]> > > Currently obexd uses session bus. > Distros where session bus is not supported and still obex profiles > are required in that case use system bus instead of session bus > which can be configured with new optional feature > > Additional optional feature has been added to achieve this > with name --enable-use-systembus-for-obexd > > steps to configure system bus > ./configure --enable-use-systembus-for-obexd > > Upstream-Status: Denied > Upstream denied as it is distro specific > > Signed-off-by: Damodar Reddy GangiReddy <[email protected]> > Change-Id: I1db23ed506631ea6ae8f69034e5211751313e046 > --- > meta/recipes-connectivity/bluez5/bluez5.inc | 1 + > ...exd-Add-system-bus-support-for-obexd.patch | 244 ++++++++++++++++++ > 2 files changed, 245 insertions(+) > create mode 100644 > meta/recipes-connectivity/bluez5/bluez5/0001-obexd-Add-system-bus-support-for-obexd.patch > > diff --git a/meta/recipes-connectivity/bluez5/bluez5.inc > b/meta/recipes-connectivity/bluez5/bluez5.inc > index d8b9f81771..9ad307b0d0 100644 > --- a/meta/recipes-connectivity/bluez5/bluez5.inc > +++ b/meta/recipes-connectivity/bluez5/bluez5.inc > @@ -63,6 +63,7 @@ PACKAGECONFIG[mesh] = "--enable-mesh > --enable-external-ell,--disable-mesh, json- > PACKAGECONFIG[btpclient] = "--enable-btpclient > --enable-external-ell,--disable-btpclient, ell" > PACKAGECONFIG[udev] = "--enable-udev,--disable-udev,udev" > PACKAGECONFIG[manpages] = > "--enable-manpages,--disable-manpages,python3-docutils-native" > +PACKAGECONFIG[obexdbus] = > "--enable-use-systembus-for-obexd,--disable-use-systembus-for-obexd" > > SRC_URI = "${KERNELORG_MIRROR}/linux/bluetooth/bluez-${PV}.tar.xz \ > file://init \ > diff --git > a/meta/recipes-connectivity/bluez5/bluez5/0001-obexd-Add-system-bus-support-for-obexd.patch > > b/meta/recipes-connectivity/bluez5/bluez5/0001-obexd-Add-system-bus-support-for-obexd.patch > new file mode 100644 > index 0000000000..025386cd07 > --- /dev/null > +++ > b/meta/recipes-connectivity/bluez5/bluez5/0001-obexd-Add-system-bus-support-for-obexd.patch > @@ -0,0 +1,244 @@ > +From e22394839b98db580f6937c92ffbea499f47aa89 Mon Sep 17 00:00:00 2001 > +From: Damodar Reddy GangiReddy <[email protected]> > +Date: Fri, 23 Aug 2024 12:23:47 +0530 > +Subject: [PATCH BlueZ v1] obexd: Add system bus support for obexd > + > +Currently obexd uses session bus. > +Distros where session bus is not supported and still obex profiles > +are required in that case use system bus instead of session bus > +which can be configured with new optional feature > + > +Additional optional feature has been added to achieve this > +with name --enable-use-systembus-for-obexd > + > +steps to configure system bus > +./configure --enable-use-systembus-for-obexd > + > +Upstream-Status: Denied > +Upstream denied as it is distro specific > + > +Signed-off-by: Damodar Reddy GangiReddy <[email protected]> > + > +--- > + Makefile.obexd | 14 ++++++++++++++ > + configure.ac | 9 +++++++++ > + obexd/client/ftp.c | 3 ++- > + obexd/client/map.c | 3 ++- > + obexd/client/opp.c | 3 ++- > + obexd/client/pbap.c | 3 ++- > + obexd/client/session.c | 3 ++- > + obexd/client/sync.c | 3 ++- > + obexd/plugins/pcsuite.c | 3 ++- > + obexd/src/manager.c | 3 ++- > + src/bluetooth.conf | 12 ++++++++++++ > + tools/obexctl.c | 3 ++- > + 12 files changed, 53 insertions(+), 9 deletions(-) > + > +diff --git a/Makefile.obexd b/Makefile.obexd > +index b7e9f2d33..87432cc37 100644 > +--- a/Makefile.obexd > ++++ b/Makefile.obexd > +@@ -2,6 +2,19 @@ > + if OBEX > + > + if SYSTEMD > ++ > ++if USE_SYSTEMBUS_FOR_OBEXD > ++ > ++systemdsystemunit_DATA += obexd/src/obex.service > ++dbussystembus_DATA += obexd/src/org.bluez.obex.service > ++ > ++obexd-add-service-symlink: > ++ $(LN_S) -f obex.service > $(DESTDIR)$(SYSTEMD_SYSTEMUNITDIR)/dbus-org.bluez.obex.service > ++ > ++obexd-remove-service-symlink: > ++ rm -f $(DESTDIR)$(SYSTEMD_SYSTEMUNITDIR)/dbus-org.bluez.obex.service > ++else > ++ > + systemduserunitdir = $(SYSTEMD_USERUNITDIR) > + systemduserunit_DATA = obexd/src/obex.service > + > +@@ -13,6 +26,7 @@ obexd-add-service-symlink: > + > + obexd-remove-service-symlink: > + rm -f $(DESTDIR)$(SYSTEMD_USERUNITDIR)/dbus-org.bluez.obex.service > ++endif > + else > + obexd-add-service-symlink: > + obexd-remove-service-symlink: > +diff --git a/configure.ac b/configure.ac > +index d31eb1656..cc9a55f4c 100644 > +--- a/configure.ac > ++++ b/configure.ac > +@@ -283,6 +283,15 @@ if (test "${enable_obex}" != "no"); then > + fi > + AM_CONDITIONAL(OBEX, test "${enable_obex}" != "no") > + > ++AC_ARG_ENABLE(use-systembus-for-obexd, > AS_HELP_STRING([--enable-use-systembus-for-obexd], > ++ [enable systembus for obexd]), > [enable_use_systembus_for_obexd=${enableval}]) > ++AM_CONDITIONAL(USE_SYSTEMBUS_FOR_OBEXD, test > "${enable_use_systembus_for_obexd}" = "yes") > ++if (test "${enable_use_systembus_for_obexd}" = "yes"); then > ++ AC_DEFINE(USE_SYSTEMBUS_FOR_OBEXD, 1, [Define to 1 if you want to use > system bus for obexd.]) > ++else > ++ AC_DEFINE(USE_SYSTEMBUS_FOR_OBEXD, 0, [Define to 0 if you want to use > session bus for obexd.]) > ++fi > ++ > + AC_ARG_ENABLE(btpclient, AS_HELP_STRING([--enable-btpclient], > + [enable BTP client]), [enable_btpclient=${enableval}]) > + AM_CONDITIONAL(BTPCLIENT, test "${enable_btpclient}" = "yes") > +diff --git a/obexd/client/ftp.c b/obexd/client/ftp.c > +index 160e0636a..e3cef32f6 100644 > +--- a/obexd/client/ftp.c > ++++ b/obexd/client/ftp.c > +@@ -463,7 +463,8 @@ int ftp_init(void) > + > + DBG(""); > + > +- conn = dbus_bus_get(DBUS_BUS_SESSION, NULL); > ++ conn = dbus_bus_get(USE_SYSTEMBUS_FOR_OBEXD ? > ++ DBUS_BUS_SYSTEM : DBUS_BUS_SESSION, NULL); > + if (!conn) > + return -EIO; > + > +diff --git a/obexd/client/map.c b/obexd/client/map.c > +index 513dcaf14..815806f52 100644 > +--- a/obexd/client/map.c > ++++ b/obexd/client/map.c > +@@ -2063,7 +2063,8 @@ int map_init(void) > + > + DBG(""); > + > +- conn = dbus_bus_get(DBUS_BUS_SESSION, NULL); > ++ conn = dbus_bus_get(USE_SYSTEMBUS_FOR_OBEXD ? > ++ DBUS_BUS_SYSTEM : DBUS_BUS_SESSION, NULL); > + if (!conn) > + return -EIO; > + > +diff --git a/obexd/client/opp.c b/obexd/client/opp.c > +index 90d0c0c8e..4889a3a0f 100644 > +--- a/obexd/client/opp.c > ++++ b/obexd/client/opp.c > +@@ -178,7 +178,8 @@ int opp_init(void) > + > + DBG(""); > + > +- conn = dbus_bus_get(DBUS_BUS_SESSION, NULL); > ++ conn = dbus_bus_get(USE_SYSTEMBUS_FOR_OBEXD ? > ++ DBUS_BUS_SYSTEM : DBUS_BUS_SESSION, NULL); > + if (!conn) > + return -EIO; > + > +diff --git a/obexd/client/pbap.c b/obexd/client/pbap.c > +index 2d2aa9508..1658c853a 100644 > +--- a/obexd/client/pbap.c > ++++ b/obexd/client/pbap.c > +@@ -1303,7 +1303,8 @@ int pbap_init(void) > + > + DBG(""); > + > +- conn = dbus_bus_get(DBUS_BUS_SESSION, NULL); > ++ conn = dbus_bus_get(USE_SYSTEMBUS_FOR_OBEXD ? > ++ DBUS_BUS_SYSTEM : DBUS_BUS_SESSION, NULL); > + if (!conn) > + return -EIO; > + > +diff --git a/obexd/client/session.c b/obexd/client/session.c > +index 7d8ebb04e..4e447e8eb 100644 > +--- a/obexd/client/session.c > ++++ b/obexd/client/session.c > +@@ -583,7 +583,8 @@ struct obc_session *obc_session_create(const char > *source, > + if (driver == NULL) > + return NULL; > + > +- conn = dbus_bus_get(DBUS_BUS_SESSION, NULL); > ++ conn = dbus_bus_get(USE_SYSTEMBUS_FOR_OBEXD ? > ++ DBUS_BUS_SYSTEM : DBUS_BUS_SESSION, NULL); > + if (conn == NULL) > + return NULL; > + > +diff --git a/obexd/client/sync.c b/obexd/client/sync.c > +index 92faf4434..bd339adfa 100644 > +--- a/obexd/client/sync.c > ++++ b/obexd/client/sync.c > +@@ -224,7 +224,8 @@ int sync_init(void) > + > + DBG(""); > + > +- conn = dbus_bus_get(DBUS_BUS_SESSION, NULL); > ++ conn = dbus_bus_get(USE_SYSTEMBUS_FOR_OBEXD ? > ++ DBUS_BUS_SYSTEM : DBUS_BUS_SESSION, NULL); > + if (!conn) > + return -EIO; > + > +diff --git a/obexd/plugins/pcsuite.c b/obexd/plugins/pcsuite.c > +index 07c444ff2..5daed2abb 100644 > +--- a/obexd/plugins/pcsuite.c > ++++ b/obexd/plugins/pcsuite.c > +@@ -322,7 +322,8 @@ static gboolean send_backup_dbus_message(const char > *oper, > + > + file_size = size ? *size : 0; > + > +- conn = g_dbus_setup_bus(DBUS_BUS_SESSION, NULL, NULL); > ++ conn = g_dbus_setup_bus(USE_SYSTEMBUS_FOR_OBEXD ? > ++ DBUS_BUS_SYSTEM : DBUS_BUS_SESSION, NULL, NULL); > + > + if (conn == NULL) > + return FALSE; > +diff --git a/obexd/src/manager.c b/obexd/src/manager.c > +index 3c0c2a7cc..dd83f056d 100644 > +--- a/obexd/src/manager.c > ++++ b/obexd/src/manager.c > +@@ -488,7 +488,8 @@ gboolean manager_init(void) > + > + dbus_error_init(&err); > + > +- connection = g_dbus_setup_bus(DBUS_BUS_SESSION, OBEXD_SERVICE, &err); > ++ connection = g_dbus_setup_bus(USE_SYSTEMBUS_FOR_OBEXD ? > ++ DBUS_BUS_SYSTEM : DBUS_BUS_SESSION, OBEXD_SERVICE, &err); > + if (connection == NULL) { > + if (dbus_error_is_set(&err) == TRUE) { > + fprintf(stderr, "%s\n", err.message); > +diff --git a/src/bluetooth.conf b/src/bluetooth.conf > +index b6c614908..f8879c8bb 100644 > +--- a/src/bluetooth.conf > ++++ b/src/bluetooth.conf > +@@ -21,10 +21,22 @@ > + <allow send_interface="org.freedesktop.DBus.ObjectManager"/> > + <allow send_interface="org.freedesktop.DBus.Properties"/> > + <allow send_interface="org.mpris.MediaPlayer2.Player"/> > ++ <allow own="org.bluez.obex"/> > ++ <allow send_destination="org.bluez.obex"/> > ++ <allow send_interface="org.bluez.obex.Agent1"/> > ++ <allow send_interface="org.bluez.obex.Client1"/> > ++ <allow send_interface="org.bluez.obex.Session1"/> > ++ <allow send_interface="org.bluez.obex.Transfer1"/> > ++ <allow send_interface="org.bluez.obex.ObjectPush1"/> > ++ <allow send_interface="org.bluez.obex.PhonebookAccess1"/> > ++ <allow send_interface="org.bluez.obex.Synchronization1"/> > ++ <allow send_interface="org.bluez.obex.MessageAccess1"/> > ++ <allow send_interface="org.bluez.obex.Message1"/> > + </policy> > + > + <policy context="default"> > + <allow send_destination="org.bluez"/> > ++ <allow send_destination="org.bluez.obex"/> > + </policy> > + > + </busconfig> > +diff --git a/tools/obexctl.c b/tools/obexctl.c > +index 56a76915c..07dc1ae6b 100644 > +--- a/tools/obexctl.c > ++++ b/tools/obexctl.c > +@@ -2154,7 +2154,8 @@ int main(int argc, char *argv[]) > + bt_shell_set_menu(&main_menu); > + bt_shell_set_prompt(PROMPT_OFF); > + > +- dbus_conn = g_dbus_setup_bus(DBUS_BUS_SESSION, NULL, NULL); > ++ dbus_conn = g_dbus_setup_bus(USE_SYSTEMBUS_FOR_OBEXD ? > ++ DBUS_BUS_SYSTEM : DBUS_BUS_SESSION, NULL, > NULL); > + > + client = g_dbus_client_new(dbus_conn, "org.bluez.obex", > + "/org/bluez/obex"); > +-- > +2.34.1 > + > -- > 2.34.1 > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#203685): https://lists.openembedded.org/g/openembedded-core/message/203685 Mute This Topic: https://lists.openembedded.org/mt/108054508/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
