forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
sys-apps/dbus: Security bump to version 1.12.18
Bug: https://bugs.gentoo.org/727104 Package-Manager: Portage-2.3.100, Repoman-2.3.22 Signed-off-by: Lars Wendler <[email protected]>
- Loading branch information
Lars Wendler
committed
Jun 4, 2020
1 parent
b114c06
commit 6db3472
Showing
2 changed files
with
273 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,2 @@ | ||
DIST dbus-1.12.16.tar.gz 2093296 BLAKE2B 46c4f0d384d76dffd31c18a2d2df03d0658479d8f5b2d14b1db2bf0941fecdc023307ec035e3f977fde570a9f6493bbabd020ac2cd81b0577597e355f5a72522 SHA512 27ae805170e9515a8bb0fba5f29d414edc70e3b6b28b7b65bbea47035b8eafa9ac4820cdc92645be6035f6748f8aa45679e1ffc84ba74a64859a3056d318b9bb | ||
DIST dbus-1.12.18.tar.gz 2094453 BLAKE2B eba48940c80a7483b858199156b297d97896232283988940d3cdb915eaa30bcdd13bc01f8410dcdb34193040a8bc8ce2dd45f1310aed791071e5dc5a6b38eb27 SHA512 817674e86a5d4cbfa705a79ca5197176311e47505c5da02334c2811f63b55014b582a12bce53bc73a08a3ad5061f210ba0d1e5f3bbf7697c81ca70c22a76fc13 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,272 @@ | ||
# Copyright 1999-2020 Gentoo Authors | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=7 | ||
|
||
PYTHON_COMPAT=( python3_{6,7} ) | ||
inherit autotools flag-o-matic linux-info python-any-r1 readme.gentoo-r1 systemd virtualx 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 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" | ||
IUSE="debug doc elogind kernel_linux selinux static-libs systemd test user-session X" | ||
RESTRICT="!test? ( test )" | ||
|
||
REQUIRED_USE="?? ( elogind systemd )" | ||
|
||
BDEPEND=" | ||
acct-user/messagebus | ||
app-text/xmlto | ||
app-text/docbook-xml-dtd:4.4 | ||
sys-devel/autoconf-archive | ||
virtual/pkgconfig | ||
doc? ( app-doc/doxygen ) | ||
" | ||
COMMON_DEPEND=" | ||
>=dev-libs/expat-2.1.0 | ||
elogind? ( sys-auth/elogind ) | ||
selinux? ( sys-libs/libselinux ) | ||
systemd? ( sys-apps/systemd:0= ) | ||
X? ( | ||
x11-libs/libX11 | ||
x11-libs/libXt | ||
) | ||
" | ||
DEPEND="${COMMON_DEPEND} | ||
dev-libs/expat | ||
test? ( | ||
${PYTHON_DEPS} | ||
>=dev-libs/glib-2.40:2 | ||
) | ||
" | ||
RDEPEND="${COMMON_DEPEND} | ||
acct-user/messagebus | ||
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" | ||
|
||
PATCHES=( | ||
"${FILESDIR}/${PN}-enable-elogind.patch" | ||
"${FILESDIR}/${PN}-daemon-optional.patch" # bug #653136 | ||
) | ||
|
||
pkg_setup() { | ||
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 | ||
|
||
default | ||
|
||
if [[ ${CHOST} == *-solaris* ]]; then | ||
# fix standards conflict, due to gcc being c99 by default nowadays | ||
sed -i \ | ||
-e 's/_XOPEN_SOURCE=500/_XOPEN_SOURCE=600/' \ | ||
configure.ac || die | ||
fi | ||
|
||
# required for bug 263909, cross-compile so don't remove eautoreconf | ||
eautoreconf | ||
} | ||
|
||
src_configure() { | ||
local rundir=$(usex kernel_linux /run /var/run) | ||
sed -e "s;@rundir@;${EPREFIX}${rundir};g" "${FILESDIR}"/dbus.initd.in \ | ||
> "${T}"/dbus.initd || die | ||
multilib-minimal_src_configure | ||
} | ||
|
||
multilib_src_configure() { | ||
local docconf myconf testconf | ||
|
||
# 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" | ||
$(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}${rundir}"/dbus.pid | ||
--with-system-socket="${EPREFIX}${rundir}"/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-daemon | ||
--disable-selinux | ||
--disable-libaudit | ||
--disable-elogind | ||
--disable-systemd | ||
--without-x | ||
) | ||
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 | ||
testconf=( | ||
$(use_enable test asserts) | ||
$(use_enable test checks) | ||
$(use_enable test embedded-tests) | ||
$(use_enable test stats) | ||
$(has_version dev-libs/dbus-glib && echo --enable-modular-tests) | ||
) | ||
einfo "Running configure in ${TBD}" | ||
ECONF_SOURCE="${S}" econf "${myconf[@]}" "${testconf[@]}" | ||
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 virtx emake -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 "${T}"/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 | ||
# let the init script create the /var/run/dbus directory | ||
rm -rf "${ED}"/var/run | ||
|
||
dodoc AUTHORS ChangeLog NEWS README doc/TODO | ||
readme.gentoo_create_doc | ||
|
||
find "${ED}" -name '*.la' -delete || die | ||
} | ||
|
||
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 | ||
} |