From 7f757dc3cecb87dd9f3e289f43640c48518d90a8 Mon Sep 17 00:00:00 2001 From: Bertrand Jacquin Date: Mon, 14 Oct 2013 20:11:56 +0200 Subject: sys-apps/dbus: Remove -rdynamic for mingw platform, bug #488036 Package-Manager: portage-2.2.7 --- sys-apps/dbus/ChangeLog | 7 + sys-apps/dbus/Manifest | 7 + sys-apps/dbus/dbus-1.6.16.ebuild | 196 +++++++++++++++++++++ sys-apps/dbus/files/80-dbus | 13 ++ ...n-dropping-capabilities-only-include-AUDI.patch | 39 ++++ sys-apps/dbus/files/dbus.initd | 50 ++++++ sys-apps/dbus/metadata.xml | 14 ++ 7 files changed, 326 insertions(+) create mode 100644 sys-apps/dbus/ChangeLog create mode 100644 sys-apps/dbus/Manifest create mode 100644 sys-apps/dbus/dbus-1.6.16.ebuild create mode 100644 sys-apps/dbus/files/80-dbus create mode 100644 sys-apps/dbus/files/dbus-1.5.12-selinux-when-dropping-capabilities-only-include-AUDI.patch create mode 100644 sys-apps/dbus/files/dbus.initd create mode 100644 sys-apps/dbus/metadata.xml (limited to 'sys-apps') diff --git a/sys-apps/dbus/ChangeLog b/sys-apps/dbus/ChangeLog new file mode 100644 index 00000000..bbc6cdaf --- /dev/null +++ b/sys-apps/dbus/ChangeLog @@ -0,0 +1,7 @@ +*dbus-1.6.16 (14 Oct 2013) + + 14 Oct 2013; Bertrand Jacquin +dbus-1.6.16.ebuild, + +files/80-dbus, + +files/dbus-1.5.12-selinux-when-dropping-capabilities-only-include-AUDI.patch, + +files/dbus.initd, +metadata.xml: + sys-apps/dbus: Remove -rdynamic for mingw platform, bug #488036 diff --git a/sys-apps/dbus/Manifest b/sys-apps/dbus/Manifest new file mode 100644 index 00000000..33fa70a0 --- /dev/null +++ b/sys-apps/dbus/Manifest @@ -0,0 +1,7 @@ +AUX 80-dbus 341 SHA256 76ce25ce8769cdfcb0d7b7e52e5a7e6474448fc34e8ad9393afac1eca1e07fd2 WHIRLPOOL 74e9e79b86fc4802f34737bb47c3a71919f35fb2375119cdcd7fd6dae2de201e006fb4e6a978addd2300f7075180d4b088a69fa60d2ce4d689b6239b4a1307b1 +AUX dbus-1.5.12-selinux-when-dropping-capabilities-only-include-AUDI.patch 1320 SHA256 ab3398f4fb46ec9a134581a825180422b2b8f5e8dd250bca3127c31a39d923a7 WHIRLPOOL 9e30cbcba7ebe13cdc8a9e3ad0bb7d3d6e667dfba23a6cedfbacbbed34f6eb15bc6f0dcb42392f0c1a23ac891f0d820759f4201b8bac9b51d4241e74bed5ca2d +AUX dbus.initd 1185 SHA256 441d76ab72e450f1ced10e25a5b59f422613cc2e3a5f65222d7f0ca149869b32 WHIRLPOOL bafd89f620061144c8bd4bb9112d3a0fe0e9532384b03a81258186e0f3306f7e6b45c23264c9ae794e9a2ae50a54474140119283223993890d6abb04ad09ecae +DIST dbus-1.6.16.tar.gz 1948266 SHA256 463f42873aafcde733de3105e6d166709a42bc961fb4e3ef27657dfd55813573 WHIRLPOOL 83b3dcf90c2f2481a1fb6f67d64e9a9053d726af997c3def9a0c8187ce8f78e1ca977de6a8f2dcea8a5f5ce2d5f2def7cf2a5b6f4d4724d940521422ee6046f3 +EBUILD dbus-1.6.16.ebuild 5258 SHA256 5f9c0aae8956624f7dceb0946b6153e72cf8800e275682f59416b3152b076175 WHIRLPOOL c4841bcef57ba98b0f67eb5365898e53e353ad2de7bae3c7809089cc5b3f1e4d470e3c2112d5ecc02bc843a45e3b8ec80797bd0b439890af78af606993c51617 +MISC ChangeLog 303 SHA256 fce5d15a5d4aa608fb8687b0b07fdff773e8ea5774b91720f592119b0b22ca5c WHIRLPOOL 1211681f0be15b6da715c28dfc4dd93034887e3dab0de910d89eec4e6088830152b7c019e53f4938f5dc6fd8f0bdd19db005991123b6f004301fe2371e86eb9d +MISC metadata.xml 427 SHA256 d8fc8fedafc547578a85222cb60fb7eff3740c8ce101b22ba75aa3e5028135ce WHIRLPOOL 7a2add023434038b287c141213c2caf2adcc7ff5bcfb8025b2db0163bedd436fea64dd0e1a072f00232722738705fdc1f367e758d108373146d6fbea8803d5b2 diff --git a/sys-apps/dbus/dbus-1.6.16.ebuild b/sys-apps/dbus/dbus-1.6.16.ebuild new file mode 100644 index 00000000..40ed2c40 --- /dev/null +++ b/sys-apps/dbus/dbus-1.6.16.ebuild @@ -0,0 +1,196 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-apps/dbus/dbus-1.6.16.ebuild,v 1.1 2013/10/08 16:50:16 ssuominen Exp $ + +EAPI=5 +PYTHON_COMPAT=( python2_7 ) +inherit autotools eutils linux-info flag-o-matic python-any-r1 systemd virtualx user + +DESCRIPTION="A message bus system, a simple way for applications to talk to each other" +HOMEPAGE="http://dbus.freedesktop.org/" +SRC_URI="http://dbus.freedesktop.org/releases/dbus/${P}.tar.gz" + +LICENSE="|| ( AFL-2.1 GPL-2 )" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~arm-linux ~x86-linux" +IUSE="debug doc selinux static-libs systemd test X" + +RDEPEND=">=dev-libs/expat-2 + selinux? ( + sec-policy/selinux-dbus + sys-libs/libselinux + ) + systemd? ( sys-apps/systemd ) + X? ( + x11-libs/libX11 + x11-libs/libXt + )" +DEPEND="${RDEPEND} + virtual/pkgconfig + doc? ( + app-doc/doxygen + app-text/docbook-xml-dtd:4.1.2 + app-text/xmlto + ) + test? ( + >=dev-libs/glib-2.24 + ${PYTHON_DEPS} + )" + +# out of sources build directory +BD=${WORKDIR}/${P}-build +# 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() { + epatch "${FILESDIR}"/${PN}-1.5.12-selinux-when-dropping-capabilities-only-include-AUDI.patch + + # 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 + + # required for asneeded patch but also for bug 263909, cross-compile so + # don't remove eautoreconf + eautoreconf +} + +src_configure() { + local myconf + + # so we can get backtraces from apps + case "${CHOST}" in + *-mingw*) ;; + *) append-flags -rdynamic ;; + esac + + # libaudit is *only* used in DBus wrt SELinux support, so disable it, if + # not on an SELinux profile. + myconf=( + --disable-silent-rules + --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) + $(use_enable kernel_linux inotify) + $(use_enable kernel_FreeBSD kqueue) + $(use_enable systemd) + --disable-embedded-tests + --disable-modular-tests + $(use_enable debug stats) + --with-xml=expat + --with-session-socket-dir=/tmp + --with-system-pid-file=/var/run/dbus.pid + --with-system-socket=/var/run/dbus/system_bus_socket + --with-dbus-user=messagebus + $(use_with X x) + "$(systemd_with_unitdir)" + ) + + mkdir "${BD}" + cd "${BD}" + einfo "Running configure in ${BD}" + ECONF_SOURCE="${S}" econf "${myconf[@]}" \ + $(use_enable doc xml-docs) \ + $(use_enable doc doxygen-docs) + + if use test; then + mkdir "${TBD}" + cd "${TBD}" + 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 +} + +src_compile() { + # after the compile, it uses a selinuxfs interface to + # check if the SELinux policy has the right support + use selinux && addwrite /selinux/access + + cd "${BD}" + einfo "Running make in ${BD}" + emake + + if use test; then + cd "${TBD}" + einfo "Running make in ${TBD}" + emake + fi +} + +src_test() { + cd "${TBD}" + DBUS_VERBOSE=1 Xemake -j1 check +} + +src_install() { + newinitd "${FILESDIR}"/dbus.initd 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 + + dodoc AUTHORS ChangeLog HACKING NEWS README doc/TODO + + cd "${BD}" + emake DESTDIR="${D}" install + + prune_libtool_files --all +} + +pkg_postinst() { + if [ "$(rc-config list default | grep dbus)" = "" ] ; then + elog "To start the D-Bus system-wide messagebus by default" + elog "you should add it to the default runlevel :" + elog "\`rc-update add dbus default\`" + elog + fi + + elog "Some applications require a session bus in addition to the system" + elog "bus. Please see \`man dbus-launch\` for more information." + elog + + if [ "$(rc-status | grep dbus | grep started)" ] ; then + ewarn "You must restart D-Bus \`/etc/init.d/dbus restart\` to run" + ewarn "the new version of the daemon." + ewarn "Don't do this while X is running because it will restart your X as well." + fi + + # 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 "${EROOT}"/etc/machine-id "${EROOT}"/var/lib/dbus/machine-id +} diff --git a/sys-apps/dbus/files/80-dbus b/sys-apps/dbus/files/80-dbus new file mode 100644 index 00000000..5593e2cd --- /dev/null +++ b/sys-apps/dbus/files/80-dbus @@ -0,0 +1,13 @@ +#!/bin/bash + +# launches a session dbus instance + +dbuslaunch="`which dbus-launch 2>/dev/null`" +if [ -n "$dbuslaunch" ] && [ -x "$dbuslaunch" ] && [ -z "$DBUS_SESSION_BUS_ADDRESS" ]; then + if [ -n "$command" ]; then + command="$dbuslaunch --exit-with-session $command" + else + eval `$dbuslaunch --sh-syntax --exit-with-session` + fi +fi + diff --git a/sys-apps/dbus/files/dbus-1.5.12-selinux-when-dropping-capabilities-only-include-AUDI.patch b/sys-apps/dbus/files/dbus-1.5.12-selinux-when-dropping-capabilities-only-include-AUDI.patch new file mode 100644 index 00000000..45d610c5 --- /dev/null +++ b/sys-apps/dbus/files/dbus-1.5.12-selinux-when-dropping-capabilities-only-include-AUDI.patch @@ -0,0 +1,39 @@ +http://bugs.gentoo.org/405975 + +From e1b83fb58eadfd02227673db9a7e2833d29b0c98 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 23 Apr 2012 00:32:43 +0200 +Subject: [PATCH] selinux: when dropping capabilities only include AUDIT caps + if we have them + +When we drop capabilities we shouldn't assume we can keep +CAP_AUDIT_WRITE unconditionally, since it will not be available when +running in containers. + +This patch only adds CAP_AUDIT_WRITE to the list of caps we keep if we +actually have it in the first place. + +This makes audit/selinux enabled D-Bus work in a Linux container. +--- + bus/selinux.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/bus/selinux.c b/bus/selinux.c +index 36287e9..1bfc791 100644 +--- a/bus/selinux.c ++++ b/bus/selinux.c +@@ -1053,8 +1053,9 @@ _dbus_change_to_daemon_user (const char *user, + int rc; + + capng_clear (CAPNG_SELECT_BOTH); +- capng_update (CAPNG_ADD, CAPNG_EFFECTIVE | CAPNG_PERMITTED, +- CAP_AUDIT_WRITE); ++ if (capng_have_capability (CAPNG_PERMITTED, CAP_AUDIT_WRITE)) ++ capng_update (CAPNG_ADD, CAPNG_EFFECTIVE | CAPNG_PERMITTED, ++ CAP_AUDIT_WRITE); + rc = capng_change_id (uid, gid, CAPNG_DROP_SUPP_GRP); + if (rc) + { +-- +1.7.10 + diff --git a/sys-apps/dbus/files/dbus.initd b/sys-apps/dbus/files/dbus.initd new file mode 100644 index 00000000..0410a1bd --- /dev/null +++ b/sys-apps/dbus/files/dbus.initd @@ -0,0 +1,50 @@ +#!/sbin/runscript +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License, v2 or later +# $Header: /var/cvsroot/gentoo-x86/sys-apps/dbus/files/dbus.initd,v 1.1 2011/11/05 13:56:10 ssuominen Exp $ + +extra_started_commands="reload" + +depend() { + need localmount + after bootmisc +} + +start() { + ebegin "Starting D-BUS system messagebus" + /usr/bin/dbus-uuidgen --ensure=/etc/machine-id + + # We need to test if /var/run/dbus exists, since script will fail if it does not + [ ! -e /var/run/dbus ] && mkdir /var/run/dbus + + start-stop-daemon --start --pidfile /var/run/dbus.pid --exec /usr/bin/dbus-daemon -- --system + eend $? +} + +stop() { + local retval + + ebegin "Stopping D-BUS system messagebus" + + start-stop-daemon --stop --pidfile /var/run/dbus.pid + retval=$? + + eend ${retval} + + [ -S /var/run/dbus/system_bus_socket ] && rm -f /var/run/dbus/system_bus_socket + + return ${retval} +} + +reload() { + local retval + + ebegin "Reloading D-BUS messagebus config" + + /usr/bin/dbus-send --print-reply --system --type=method_call \ + --dest=org.freedesktop.DBus \ + / org.freedesktop.DBus.ReloadConfig > /dev/null + retval=$? + eend ${retval} + return ${retval} +} diff --git a/sys-apps/dbus/metadata.xml b/sys-apps/dbus/metadata.xml new file mode 100644 index 00000000..70f327cf --- /dev/null +++ b/sys-apps/dbus/metadata.xml @@ -0,0 +1,14 @@ + + + + freedesktop + + freedesktop-bugs@gentoo.org + + + Build with sys-apps/systemd at_console support + + + cpe:/a:freedesktop:dbus + + -- cgit v1.2.3