SUMMARY="D-Bus provides simple way for applications to talk to one another"
DESCRIPTION="NOTE: D-Bus should not be used in native Haiku apps, but is only \
here because some ported software requires it.

D-Bus supplies both a system daemon (for events such as \"\
new hardware device added\" or \"printer queue changed\") and a per-user\
-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). Currently the communicating \
applications are on one computer, or through unencrypted TCP/IP suitable for \
use behind a firewall with shared NFS home directories."
HOMEPAGE="https://freedesktop.org/wiki/Software/dbus/"
COPYRIGHT="2014 Red Hat, Inc."
LICENSE="GNU GPL v2"
REVISION="5"
SOURCE_URI="https://dbus.freedesktop.org/releases/dbus/dbus-$portVersion.tar.gz"
CHECKSUM_SHA256="f77620140ecb4cdc67f37fb444f8a6bea70b5b6461f12f1cbe2cec60fa7de5fe"
PATCHES="dbus-$portVersion.patchset"
ADDITIONAL_FILES="
	systemlaunch.in
	userlaunch.in
	"

ARCHITECTURES="all"
SECONDARY_ARCHITECTURES="x86"

GLOBAL_WRITABLE_FILES="
	settings/dbus-1/session.conf keep-old
	settings/dbus-1/system.conf keep-old
	"

dbusUserHomeDir="/packages/$portVersionedName-$REVISION/.self/$relativeDataDir/dbus/empty"
PACKAGE_USERS="
	messagebus real-name \"messagebus user\" home \"$dbusUserHomeDir\" shell \"/bin/true\" groups \"messagebus\"
	"
PACKAGE_GROUPS="messagebus"

libVersion="3.19.13"
libVersionCompat="$libVersion compat >= ${libVersion%%.*}"

PROVIDES="
	dbus$secondaryArchSuffix = $portVersion
	cmd:dbus_cleanup_sockets = $portVersion
	cmd:dbus_daemon = $portVersion
	cmd:dbus_launch = $portVersion
	cmd:dbus_monitor = $portVersion
	cmd:dbus_run_session = $portVersion
	cmd:dbus_send = $portVersion
	cmd:dbus_test_tool = $portVersion
	cmd:dbus_update_activation_environment = $portVersion
	cmd:dbus_uuidgen = $portVersion
	lib:libdbus_1$secondaryArchSuffix = $libVersionCompat
	"
REQUIRES="
	haiku$secondaryArchSuffix
	lib:libexecinfo$secondaryArchSuffix
	lib:libexpat$secondaryArchSuffix
	lib:libffi$secondaryArchSuffix
	lib:libglib_2.0$secondaryArchSuffix
	lib:libiconv$secondaryArchSuffix
	lib:libz$secondaryArchSuffix
	"

PROVIDES_devel="
	dbus${secondaryArchSuffix}_devel = $portVersion
	devel:libdbus_1$secondaryArchSuffix = $libVersionCompat
	"
REQUIRES_devel="
	dbus$secondaryArchSuffix == $portVersion base
	devel:libexecinfo$secondaryArchSuffix
	"

BUILD_REQUIRES="
	haiku${secondaryArchSuffix}_devel
	devel:libexecinfo$secondaryArchSuffix
	devel:libexpat$secondaryArchSuffix
	devel:libffi$secondaryArchSuffix
	devel:libglib_2.0$secondaryArchSuffix
	devel:libiconv$secondaryArchSuffix
	devel:libz$secondaryArchSuffix
	"
BUILD_PREREQUIRES="
	cmd:awk
	cmd:find
	cmd:g++$secondaryArchSuffix
	cmd:make
	cmd:pkg_config$secondaryArchSuffix
	cmd:python
	"

defineDebugInfoPackage dbus$secondaryArchSuffix \
	"$prefix"/bin/dbus-cleanup-sockets \
	"$prefix"/bin/dbus-daemon \
	"$prefix"/bin/dbus-launch \
	"$prefix"/bin/dbus-monitor \
	"$prefix"/bin/dbus-run-session \
	"$prefix"/bin/dbus-send \
	"$prefix"/bin/dbus-test-tool \
	"$prefix"/bin/dbus-update-activation-environment \
	"$prefix"/bin/dbus-uuidgen \
	"$libDir"/libdbus-1.so.$libVersion

BUILD()
{
	runConfigure --omit-dirs binDir ./configure \
		--with-system-pid-file=/var/run/dbus/pid \
		--with-system-socket=/var/run/dbus/system_bus_socket \
		--bindir=$prefix/bin \
		--disable-static
	make $jobArgs
}

INSTALL()
{
	make install

	rm $libDir/*.la
	mv $libDir/dbus-1.0/include/dbus/*.h $includeDir/dbus-1.0/dbus/
	rm -rf $libDir/dbus-1.0/

	sed -i \
		-e 's|-I${libdir}/dbus-1.0/include||' \
		-e "s|prefix}/include|prefix}/$relativeIncludeDir|g" \
		$libDir/pkgconfig/dbus-1.pc

	prepareInstalledDevelLib libdbus-1
	fixPkgconfig
	packageEntries devel \
		$developDir \
		$libDir/cmake

	mkdir -p $dataDir/dbus/empty

	mkdir -p $dataDir/launch $dataDir/user_launch
	sed \
		-e "s|@APP@|dbus-system|" \
		-e "s|@BIN@|/bin/dbus-daemon$secondaryArchSuffix|" \
		$portDir/additional-files/systemlaunch.in > $dataDir/launch/dbus
	sed \
		-e "s|@APP@|dbus-user|" \
		-e "s|@BIN@|/bin/dbus-daemon$secondaryArchSuffix|" \
		$portDir/additional-files/userlaunch.in > $dataDir/user_launch/dbus
	sed -i \
		-e 's|user="root"|user="baron"|g' \
		$dataDir/dbus-1/system.conf
}

TEST()
{
	make check
}
