Skip to content

Commit

Permalink
sys-apps/dbus: Bump to version 1.10.18
Browse files Browse the repository at this point in the history
Package-Manager: Portage-2.3.5, Repoman-2.3.2
  • Loading branch information
Lars Wendler committed Apr 6, 2017
1 parent 2009975 commit 5f1e882
Show file tree
Hide file tree
Showing 2 changed files with 275 additions and 0 deletions.
1 change: 1 addition & 0 deletions sys-apps/dbus/Manifest
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
DIST dbus-1.10.12.tar.gz 1984805 SHA256 210a79430b276eafc6406c71705e9140d25b9956d18068df98a70156dc0e475d SHA512 6616c7b2926a6fb6158d0a0a24d1b887173ca215a2f3185b95cc5f08df64fed1977e16c86c6ae530960453b6c585ae24ea4c9976e7537a45f9c6366c43baa52d WHIRLPOOL 9bd9ed70c4d9890dad09b2bcd07ee40ef472f1436cefe3bc89aaddbb183532939d6ce19da721a673a39f2e6b07e634b179190cec00e1a48fa2d9be6c830cc696
DIST dbus-1.10.14.tar.gz 1985828 SHA256 23238f70353e38ce5ca183ebc9525c0d97ac00ef640ad29cf794782af6e6a083 SHA512 87eda0117ee5fd47952f37a227cc017acdaa174a28e59ecd0c9f2501ffd5d56d015865d472dd9a922d8a52184662bfebff86279eb7431d19583958dd9e4dae26 WHIRLPOOL 83ded40df7b005b9247c9f1c82befc3c989becea0702998df5d43a9fb73489b0d222142a0d32fd11523e839ba8729dc824ff547d13d4c68fe390c788d2c5c750
DIST dbus-1.10.16.tar.gz 1986063 SHA256 a7b0ba6ea3e8d0e08afec5e3030d0245614268276620c536726f8fa6e5c43388 SHA512 1f3cbed3be80fe33b2a05774b17acd63132daa6b93102ac8b287443220ae27358457ddf4ecf2f4d974f881b0361136da785a52db45cd5da160c91b6674ba4a22 WHIRLPOOL 257cd83430dcfd8e9b83e13d0e5a54bbcd56885ba519d162fd1956dcef3d0f6ffa5058f2e43d993686055d26e830d570a260dcff28575fdd09cc860b41faafdc
DIST dbus-1.10.18.tar.gz 1986589 SHA256 6049ddd5f3f3e2618f615f1faeda0a115104423a7996b7aa73e2f36e38cc514a SHA512 726f97d0a2016f4f0625ba332e93e2d33bb16857cd35cb6c79da0f44fff297df948c3df62c31ffbec34713a7b85b3ff5b65f31517fe3511ddbd3bf18bd4748ed WHIRLPOOL ee164e1f6de80595fbfbcbad65d78dab4b91b5ec4e1ce88e1c4015f1c1b531f09796d54db163b2c2eceb3b92261f8a57852d2e0b29f71d9c65f9b91684433d9e
274 changes: 274 additions & 0 deletions sys-apps/dbus/dbus-1.10.18.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,274 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

EAPI=6
PYTHON_COMPAT=( python2_7 )

inherit autotools eutils linux-info flag-o-matic python-any-r1 readme.gentoo-r1 systemd virtualx user multilib-minimal

DESCRIPTION="A message bus system, a simple way for applications to talk to each other"
HOMEPAGE="https://dbus.freedesktop.org/"
SRC_URI="https://dbus.freedesktop.org/releases/dbus/${P}.tar.gz"

LICENSE="|| ( AFL-2.1 GPL-2 )"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x86-solaris"
IUSE="debug doc elogind selinux static-libs systemd test user-session X"

RESTRICT="test"

REQUIRED_USE="?? ( elogind systemd )"

CDEPEND="
>=dev-libs/expat-2
selinux? (
sys-libs/libselinux
)
elogind? ( sys-auth/elogind )
systemd? ( sys-apps/systemd:0= )
X? (
x11-libs/libX11
x11-libs/libXt
)
abi_x86_32? (
!<=app-emulation/emul-linux-x86-baselibs-20131008-r4
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
)
"
DEPEND="${CDEPEND}
app-text/xmlto
app-text/docbook-xml-dtd:4.4
virtual/pkgconfig
doc? ( app-doc/doxygen )
test? (
>=dev-libs/glib-2.36:2
${PYTHON_DEPS}
)
"
RDEPEND="${CDEPEND}
selinux? ( sec-policy/selinux-dbus )
"

DOC_CONTENTS="
Some applications require a session bus in addition to the system
bus. Please see \`man dbus-launch\` for more information.
"

# out of sources build dir for make check
TBD=${WORKDIR}/${P}-tests-build

pkg_setup() {
enewgroup messagebus
enewuser messagebus -1 -1 -1 messagebus

use test && python-any-r1_pkg_setup

if use kernel_linux; then
CONFIG_CHECK="~EPOLL"
linux-info_pkg_setup
fi
}

src_prepare() {
# Tests were restricted because of this
sed -i \
-e 's/.*bus_dispatch_test.*/printf ("Disabled due to excess noise\\n");/' \
-e '/"dispatch"/d' \
bus/test-main.c || die

eapply "${FILESDIR}/${PN}-enable-elogind.patch"

eapply_user

# required for asneeded patch but also for bug 263909, cross-compile so
# don't remove eautoreconf
eautoreconf
}

multilib_src_configure() {
local docconf myconf

# so we can get backtraces from apps
case ${CHOST} in
*-mingw*)
# error: unrecognized command line option '-rdynamic' wrt #488036
;;
*)
append-flags -rdynamic
;;
esac

# libaudit is *only* used in DBus wrt SELinux support, so disable it, if
# not on an SELinux profile.
myconf=(
--localstatedir="${EPREFIX}/var"
--docdir="${EPREFIX}/usr/share/doc/${PF}"
--htmldir="${EPREFIX}/usr/share/doc/${PF}/html"
$(use_enable static-libs static)
$(use_enable debug verbose-mode)
--disable-asserts
--disable-checks
$(use_enable selinux)
$(use_enable selinux libaudit)
--disable-apparmor
$(use_enable kernel_linux inotify)
$(use_enable kernel_FreeBSD kqueue)
$(use_enable elogind)
$(use_enable systemd)
$(use_enable user-session)
--disable-embedded-tests
--disable-modular-tests
$(use_enable debug stats)
--with-session-socket-dir="${EPREFIX}"/tmp
--with-system-pid-file="${EPREFIX}"/var/run/dbus.pid
--with-system-socket="${EPREFIX}"/var/run/dbus/system_bus_socket
--with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
--with-dbus-user=messagebus
$(use_with X x)
)

if [[ ${CHOST} == *-darwin* ]]; then
myconf+=(
--enable-launchd
--with-launchd-agent-dir="${EPREFIX}"/Library/LaunchAgents
)
fi

if multilib_is_native_abi; then
docconf=(
--enable-xml-docs
$(use_enable doc doxygen-docs)
)
else
docconf=(
--disable-xml-docs
--disable-doxygen-docs
)
myconf+=(
--disable-selinux
--disable-libaudit
--disable-elogind
--disable-systemd
--without-x

# expat is used for the daemon only
# fake the check for multilib library build
ac_cv_lib_expat_XML_ParserCreate_MM=yes
)
fi

einfo "Running configure in ${BUILD_DIR}"
ECONF_SOURCE="${S}" econf "${myconf[@]}" "${docconf[@]}"

if multilib_is_native_abi && use test; then
mkdir "${TBD}" || die
cd "${TBD}" || die
einfo "Running configure in ${TBD}"
ECONF_SOURCE="${S}" econf "${myconf[@]}" \
$(use_enable test asserts) \
$(use_enable test checks) \
$(use_enable test embedded-tests) \
$(has_version dev-libs/dbus-glib && echo --enable-modular-tests)
fi
}

multilib_src_compile() {
if multilib_is_native_abi; then
# after the compile, it uses a selinuxfs interface to
# check if the SELinux policy has the right support
use selinux && addwrite /selinux/access

einfo "Running make in ${BUILD_DIR}"
emake

if use test; then
einfo "Running make in ${TBD}"
emake -C "${TBD}"
fi
else
emake -C dbus libdbus-1.la
fi
}

src_test() {
DBUS_VERBOSE=1 Xemake -j1 -C "${TBD}" check
}

multilib_src_install() {
if multilib_is_native_abi; then
emake DESTDIR="${D}" install
else
emake DESTDIR="${D}" install-pkgconfigDATA
emake DESTDIR="${D}" -C dbus \
install-libLTLIBRARIES install-dbusincludeHEADERS \
install-nodist_dbusarchincludeHEADERS
fi
}

multilib_src_install_all() {
newinitd "${FILESDIR}"/dbus.initd-r1 dbus

if use X; then
# dbus X session script (#77504)
# turns out to only work for GDM (and startx). has been merged into
# other desktop (kdm and such scripts)
exeinto /etc/X11/xinit/xinitrc.d
doexe "${FILESDIR}"/80-dbus
fi

# needs to exist for dbus sessions to launch
keepdir /usr/share/dbus-1/services
keepdir /etc/dbus-1/{session,system}.d
# machine-id symlink from pkg_postinst()
keepdir /var/lib/dbus
# let the init script create the /var/run/dbus directory
rm -rf "${ED}"/var/run

dodoc AUTHORS ChangeLog HACKING NEWS README doc/TODO
readme.gentoo_create_doc

prune_libtool_files --all
}

pkg_postinst() {
readme.gentoo_print_elog

# Ensure unique id is generated and put it in /etc wrt #370451 but symlink
# for DBUS_MACHINE_UUID_FILE (see tools/dbus-launch.c) and reverse
# dependencies with hardcoded paths (although the known ones got fixed already)
dbus-uuidgen --ensure="${EROOT%/}"/etc/machine-id
ln -sf "${EPREFIX}"/etc/machine-id "${EROOT%/}"/var/lib/dbus/machine-id

if [[ ${CHOST} == *-darwin* ]]; then
local plist="org.freedesktop.dbus-session.plist"
elog
elog
elog "For MacOS/Darwin we now ship launchd support for dbus."
elog "This enables autolaunch of dbus at session login and makes"
elog "dbus usable under MacOS/Darwin."
elog
elog "The launchd plist file ${plist} has been"
elog "installed in ${EPREFIX}/Library/LaunchAgents."
elog "For it to be used, you will have to do all of the following:"
elog " + cd ~/Library/LaunchAgents"
elog " + ln -s ${EPREFIX}/Library/LaunchAgents/${plist}"
elog " + logout and log back in"
elog
elog "If your application needs a proper DBUS_SESSION_BUS_ADDRESS"
elog "specified and refused to start otherwise, then export the"
elog "the following to your environment:"
elog " DBUS_SESSION_BUS_ADDRESS=\"launchd:env=DBUS_LAUNCHD_SESSION_BUS_SOCKET\""
fi

if use user-session; then
ewarn "You have enabled user-session. Please note this can cause"
ewarn "bogus behaviors in several dbus consumers that are not prepared"
ewarn "for this dbus activation method yet."
ewarn
ewarn "See the following link for background on this change:"
ewarn "https://lists.freedesktop.org/archives/systemd-devel/2015-January/027711.html"
ewarn
ewarn "Known issues are tracked here:"
ewarn "https://bugs.gentoo.org/show_bug.cgi?id=576028"
fi
}

0 comments on commit 5f1e882

Please sign in to comment.