I'd like to adopt dbus package. -- Takashi Yano <takashi.y...@nifty.ne.jp>
FIXME: in theory this *should* work but it clearly is not.
--- origsrc/dbus-1.10.8/configure.ac 2016-03-07 10:06:22.000000000 -0600 +++ src/dbus-1.10.8/configure.ac 2016-05-06 14:25:35.816044900 -0500 @@ -137,7 +137,7 @@ fi # For best security, assume that all non-Windows platforms can do # credentials-passing. -AS_IF([test "$dbus_win" = yes], +AS_IF([test "$dbus_cygwin$dbus_win" != nono], [DBUS_SESSION_CONF_MAYBE_AUTH_EXTERNAL="<!--<auth>EXTERNAL</auth>-->"], [DBUS_SESSION_CONF_MAYBE_AUTH_EXTERNAL="<auth>EXTERNAL</auth>"]) AC_SUBST([DBUS_SESSION_CONF_MAYBE_AUTH_EXTERNAL]) --- origsrc/dbus-1.10.12/bus/system.conf.in 2015-10-22 12:34:22.000000000 -0500 +++ src/dbus-1.10.12/bus/system.conf.in 2016-10-10 13:32:37.353222600 -0500 @@ -32,8 +32,15 @@ <!-- Enable logging to syslog --> <syslog/> - <!-- Only allow socket-credentials-based authentication --> - <auth>EXTERNAL</auth> + <!-- On Unix systems, the most secure authentication mechanism is + EXTERNAL, which uses credential-passing over Unix sockets. + + This authentication mechanism is not available on Windows, + is not suitable for use with the tcp: or nonce-tcp: transports, + and will not work on obscure flavours of Unix that do not have + a supported credentials-passing mechanism. On those platforms/transports, + comment out the <auth> element to allow fallback to DBUS_COOKIE_SHA1. --> + @DBUS_SESSION_CONF_MAYBE_AUTH_EXTERNAL@ <!-- Only listen on a local socket. (abstract=/path/to/socket means use abstract namespace, don't really create filesystem
NAME="dbus" VERSION=1.14.10 RELEASE=1 LICENSE="(AFL-2.1 OR GPL-2.0-or-later) AND GPL-2.0-or-later" CATEGORY="System" SUMMARY="Freedesktop message bus system" DESCRIPTION="D-BUS is a message bus system, a simple way for applications to talk to one another. D-BUS supplies both a system daemon (for events such as 'new hardware device added' or 'printer queue changed') and a per-login-session daemon (for general IPC needs among user applications). Also, the message bus is built on top of a general one-to-one message passing framework, which can be used by any two apps to communicate directly (without going through the message bus daemon)." HOMEPAGE="https://www.freedesktop.org/wiki/Software/dbus" SRC_URI="https://dbus.freedesktop.org/releases/dbus/dbus-${VERSION}.tar.xz" SRC_URI+=" https://src.fedoraproject.org/rpms/dbus/raw/f40/f/00-start-message-bus.sh" SRC_URI+=" messagebus.init" PATCH_URI="1.10.8-cygwin-credentials.patch" PKG_NAMES="dbus dbus-doc dbus-x11 libdbus1_3 libdbus1-devel" dbus_REQUIRES="csih" dbus_CONTENTS=" --exclude=dbus-launch.* etc/dbus-1/ etc/p* etc/rc.d/ usr/bin/*.exe usr/libexec/ usr/share/dbus-1/ usr/share/doc/dbus/[ACHNRT]* usr/share/man/ usr/share/xml/dbus-1/ " dbus_doc_CATEGORY="Doc" dbus_doc_CONTENTS="--exclude=[ACHNRT]* usr/share/doc/dbus/" dbus_x11_CATEGORY="X11" dbus_x11_REQUIRES=${NAME} dbus_x11_CONTENTS="etc/X11/xinit/ usr/bin/dbus-launch.exe usr/share/man/man1/dbus-launch.*" libdbus1_3_CATEGORY="Libs" libdbus1_3_CONTENTS="usr/bin/cygdbus-1-3.dll" libdbus1_devel_CATEGORY="Libs" libdbus1_devel_CONTENTS='--exclude=*.exe usr/include/ usr/lib/' DIFF_EXCLUDES="debug-*.conf org.*.service dbus-daemon.1 dbus-arch-deps.h" # https://bugs.freedesktop.org/show_bug.cgi?id=71297 CPPFLAGS+=" -DFD_SETSIZE=1024" CYGCONF_ARGS=" --with-x --with-xml=expat --with-dbus-user=SYSTEM --with-init-scripts=cygwin --with-session-socket-dir=/tmp " src_install() { cd ${B} cyginstall exeinto /etc/rc.d/init.d newexe ${S}/messagebus.init messagebus exeinto /etc/X11/xinit/xinitrc.d doexe ${S}/00-start-message-bus.sh } DOCS="doc/TODO README.cygwin" HTMLDOCS="doc/*.html" KEEPDIRS=" /usr/share/dbus-1/session.d /usr/share/dbus-1/system.d /usr/share/dbus-1/services /usr/share/dbus-1/system-services "
--- origsrc/dbus-1.14.10/CYGWIN-PATCHES/dbus.postinstall 1970-01-01 09:00:00.000000000 +0900 +++ src/dbus-1.14.10/CYGWIN-PATCHES/dbus.postinstall 2024-02-22 16:33:57.571707900 +0900 @@ -0,0 +1,13 @@ +mkdir -p /var/lib/dbus +/usr/bin/dbus-uuidgen --ensure + +if [ -x /usr/bin/xmlcatalog ] ; then + /usr/bin/xmlcatalog --noout --add "system" \ + "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd" \ + /usr/share/xml/dbus-1/busconfig.dtd \ + /etc/xml/catalog + /usr/bin/xmlcatalog --noout --add "system" \ + "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd" \ + /usr/share/xml/dbus-1/introspect.dtd \ + /etc/xml/catalog +fi --- origsrc/dbus-1.14.10/CYGWIN-PATCHES/dbus.preremove 1970-01-01 09:00:00.000000000 +0900 +++ src/dbus-1.14.10/CYGWIN-PATCHES/dbus.preremove 2024-02-22 16:34:11.364251400 +0900 @@ -0,0 +1,13 @@ +if /usr/bin/cygrunsrv -Q messagebus &>/dev/null +then + /usr/bin/cygrunsrv -E messagebus +fi + +if [ -x /usr/bin/xmlcatalog ] ; then + /usr/bin/xmlcatalog --noout --del \ + /usr/share/xml/dbus-1/busconfig.dtd \ + /etc/xml/catalog + /usr/bin/xmlcatalog --noout --del \ + /usr/share/xml/dbus-1/introspect.dtd \ + /etc/xml/catalog +fi
--- origsrc/dbus-1.14.10/doc/Makefile.am 2022-10-02 23:06:53.000000000 +0900 +++ src/dbus-1.14.10/doc/Makefile.am 2024-02-22 16:18:41.109397800 +0900 @@ -93,10 +93,10 @@ if DBUS_XML_DOCS_ENABLED html_DATA += $(XMLTO_HTML) %.html: %.xml - $(XMLTO) --stringparam generate.consistent.ids=1 html-nochunks $< + $(XMLTO) --skip-validation --stringparam generate.consistent.ids=1 html-nochunks $< %.1: %.1.xml - $(XMLTO) man $< + $(XMLTO) --skip-validation man $< endif if DBUS_DOXYGEN_DOCS_ENABLED
#! /bin/bash # # messagebus Start/Stop the DBus system bus # v1.0 2018-03-04 Yaakov Selkowitz # # chkconfig: 2345 90 60 # description: DBus system bus # processname: dbus-daemon # config: /etc/dbus-1/system.conf # pidfile: /var/run/dbus/pid PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin PREFIX=/usr CONFIG=/etc/dbus-1/system.conf PIDFILE=/var/run/dbus/pid LOGFILE=/var/log/dbus-daemon.log SOCKET=/var/run/dbus/system_bus_socket # Source function library. if [ -f /etc/init.d/functions ] ; then . /etc/init.d/functions fi RETVAL=0 # See how we were called. prog="messagebus" progdir="/usr/bin" DAEMON="$progdir/dbus-daemon.exe" test -f $DAEMON || exit 0 # Source configuration if [ -f /etc/sysconfig/$prog ] ; then . /etc/sysconfig/$prog fi start() { echo -n $"Starting $prog: " # check if cygrunsrv process cygrunsrv --start $prog RETVAL=$? echo [ $RETVAL -eq 0 ] && touch $PIDFILE && echo "done." return $RETVAL } stop() { echo -n $"Stopping $prog: " cygrunsrv --stop $prog if test -r $PIDFILE; then kill `cat $PIDFILE` 2> /dev/null || echo -n " failed" else echo -n " no PID file" fi # this really needs a long time to stop. RETVAL=$? echo "." [ $RETVAL -eq 0 ] && rm -f $PIDFILE $SOCKET && echo "done." return $RETVAL } rhstatus() { # service status cygrunsrv -Q $prog } restart() { echo -n $"Restarting $prog: " $0 stop sleep 1 $0 start echo "done." } install() { echo -n $"Installing $prog daemon: " # some safety measures touch $LOGFILE $PIDFILE chgrp 18 $LOGFILE $PIDFILE chmod g+w $LOGFILE $PIDFILE rm -f $SOCKET #it was compiled with uid=18 cygrunsrv --install $prog --path $DAEMON --args "--nofork --system" --disp "CYGWIN D-Bus system service" echo "done." } uninstall() { echo -n $"Uninstalling $prog daemon: " stop cygrunsrv --remove $prog echo "done." } reload() { echo -n $"Reloading $prog daemon configuration: " echo "unsupported. $0 restart" return 1 /usr/bin/kill -HUP `cat $PIDFILE` RETVAL=$? [ $RETVAL -eq 0 ] && echo "done." RETVAL=$? return $RETVAL } case "$1" in start) start ;; stop) stop ;; restart) restart ;; reload) reload ;; install) install ;; uninstall) uninstall ;; status) rhstatus ;; condrestart) [ -f $PIDFILE ] && restart || : ;; *) echo $"Usage: $0 {start|stop|status|install|uninstall|restart|condrestart}" exit 1 esac exit $?