# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4 # $Id$ PortSystem 1.0 PortGroup muniversal 1.0 name dbus version 1.2.24 revision 1 maintainers mcalhoun openmaintainer categories devel platforms darwin description A message bus system, a simple way for applications to talk to one another. long_description \ ${description} homepage http://www.freedesktop.org/Software/dbus master_sites http://dbus.freedesktop.org/releases/dbus checksums md5 565346cecd9cfecf1463540c6086cc2c \ sha1 9593717348ea36ba228b46f165bb67c127c12be8 \ rmd160 2f51def784056bc16fbec2ddc3be22c022a94fb5 # There is a proposal to use launchd with dbus (see https://bugs.freedesktop.org/show_bug.cgi?id=14259). patchfiles 0001-make-session-bus-listen-tag-configurable.patch \ 0002-add-launchd-implementation.patch \ 0003-look-up-DISPLAY-from-launchd-if-not-initialized.patch \ 0004-enable-launchd.patch \ 0005-dont-dup-closed-stdin.patch \ 0006-bus_system-conf-in.patch patch.pre_args -p1 depends_build \ port:pkgconfig set dbus_user messagebus set dbus_group messagebus set startup_root "" depends_lib port:expat use_autoreconf yes configure.args --disable-doxygen-docs \ --disable-xml-docs \ --without-x \ --enable-launchd \ --with-launchd-agent-dir=${prefix}/Library/LaunchAgents pre-configure { # Value must be set in pre-configure because dbus_user may change in variant. configure.args-append --with-dbus-user=${dbus_user} } post-patch { reinplace "s|/usr/local|${prefix}|g" ${worksrcpath}/dbus/dbus-sysdeps-unix.c reinplace {s|broken_poll="no (cross compiling)"|broken_poll=yes|} ${worksrcpath}/configure if { ! [variant_isset no_startupitem] } { # Disable if installed into startup directory. reinplace "s||\\\n\\\n\\\tDisabled\\\n\\\t|" \ ${worksrcpath}/bus/org.freedesktop.dbus-session.plist.in } if { ${os.major} == 9 } { # Allow OnDemand for Leopard. reinplace {s|||} \ ${worksrcpath}/bus/org.freedesktop.dbus-session.plist.in } } use_parallel_build yes test.run yes test.target check pre-test { if {![variant_isset test]} { ui_error "test variant must be activated to enable test support." error "Please enable test variant." } } destroot.keepdirs \ ${destroot}${prefix}/share/dbus-1/services \ ${destroot}${prefix}/var/run/dbus \ ${destroot}${prefix}/etc/dbus-1/system.d \ ${destroot}${prefix}/etc/dbus-1/session.d set plistDir ${prefix}/Library/LaunchDaemons set plistFl ${plistDir}/org.freedesktop.dbus-system.plist # universal_archs_to_use might not be set before pre-fetch. pre-destroot { global merger_dont_diff merger_configure_env # PortGroup muniversal has difficulty merging three files. if {[info exists universal_archs_to_use] && [llength ${universal_archs_to_use}] == 3} { set merger_dont_diff "${prefix}/lib/dbus-1.0/include/dbus/dbus-arch-deps.h" } } post-destroot { # Simplify startup script over startupitem.create. # See http://trac.macports.org/ticket/15081 xinstall -d -m 0755 ${destroot}${plistDir} set plist [open "${destroot}${plistFl}" w 0644] puts ${plist} "" puts ${plist} "" puts ${plist} "" puts ${plist} "" puts ${plist} "Labelorg.freedesktop.dbus-system" puts ${plist} "ProgramArguments" puts ${plist} "" puts ${plist} "\t${prefix}/bin/dbus-daemon" puts ${plist} "\t--system" puts ${plist} "\t--nofork" puts ${plist} "" puts ${plist} "OnDemand" if { ! [variant_isset no_startupitem] } { puts ${plist} "Disabled" } puts ${plist} "" puts ${plist} "" close ${plist} if { ! [variant_isset no_startupitem] } { xinstall -d -m 0755 ${destroot}${startup_root}/Library/LaunchDaemons xinstall -d -m 0755 ${destroot}${startup_root}/Library/LaunchAgents ln -s ${plistFl} ${destroot}${startup_root}/Library/LaunchDaemons ln -s ${prefix}/Library/LaunchAgents/org.freedesktop.dbus-session.plist ${destroot}${startup_root}/Library/LaunchAgents } system "env DYLD_LIBRARY_PATH=${destroot}${prefix}/lib ${destroot}${prefix}/bin/dbus-uuidgen --ensure=${destroot}${prefix}/var/lib/dbus/machine-id" } pre-activate { addgroup ${dbus_group} adduser ${dbus_user} gid=[existsgroup ${dbus_group}] realname=Message\ Bus if { [file exists ${prefix}/var/lib/dbus/machine-id] } { # See http://trac.macports.org/ticket/19234 delete ${prefix}/var/lib/dbus/machine-id } } post-activate { file attributes ${prefix}/var/run/dbus -group ${dbus_group} -owner ${dbus_user} file attributes ${prefix}/libexec/dbus-daemon-launch-helper -group ${dbus_group} if { ![variant_isset no_startupitem] } { if { ! [variant_isset no_root] } { set sudo "sudo " file attributes /Library/LaunchAgents/org.freedesktop.dbus-session.plist -owner root -group wheel file attributes /Library/LaunchDaemons/[file tail ${plistFl}] -owner root -group wheel } else { set sudo "" } ui_msg "#################################################################################################" ui_msg "# Startup items have been generated that will aid in" ui_msg "# starting ${name} with launchd. They are disabled" ui_msg "# by default. Execute the following command to start them," ui_msg "# and to cause it to launch at startup:" ui_msg "#" ui_msg "# ${sudo}launchctl load -w ${startup_root}/Library/LaunchDaemons/[file tail ${plistFl}]" ui_msg "# launchctl load -w ${startup_root}/Library/LaunchAgents/org.freedesktop.dbus-session.plist" ui_msg "##################################################################################################" } } variant test description {enable tests} { configure.args-append --enable-tests } variant no_startupitem description {Do not install startup files.} {} variant no_root description {Run the DBUS daemon as MacPorts install user.} { pre-fetch { if { ${install.user}=="root" || ${install.group}=="wheel" } { ui_error "The DBUS daemon should not be run as root." error "Please do not use this variant with your MacPorts configuration." } } set dbus_user ${install.user} set dbus_group ${install.group} set startup_root [join [lrange [exec /usr/bin/dscl . -read Users/${install.user} NFSHomeDirectory] 1 end]] # Files are installed into user's startup directory. if { ![variant_isset no_staruptitem] } { destroot.violate_mtree yes } } set cross_opts "ac_cv_have_abstract_sockets=no NM='/usr/bin/nm -p'" if { ${os.arch}=="i386" } { if { ${os.major} >= 10 } { set merger_configure_env(ppc) ${cross_opts} } else { set merger_configure_env(ppc) "NM='/usr/bin/nm -p'" } set merger_configure_env(ppc64) ${cross_opts} } else { set merger_configure_env(i386) ${cross_opts} set merger_configure_env(x86_64) ${cross_opts} } livecheck.type regex livecheck.url [lindex ${master_sites} 0] livecheck.regex {dbus-(\d+\.\d*[02468](\.\d+)*)\.tar}