diff options
Diffstat (limited to 'gnome-base/gnome-keyring/gnome-keyring-3.4.1-r1.ebuild')
-rw-r--r-- | gnome-base/gnome-keyring/gnome-keyring-3.4.1-r1.ebuild | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/gnome-base/gnome-keyring/gnome-keyring-3.4.1-r1.ebuild b/gnome-base/gnome-keyring/gnome-keyring-3.4.1-r1.ebuild new file mode 100644 index 000000000000..c493ebe601b6 --- /dev/null +++ b/gnome-base/gnome-keyring/gnome-keyring-3.4.1-r1.ebuild @@ -0,0 +1,108 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/gnome-base/gnome-keyring/gnome-keyring-3.4.1-r1.ebuild,v 1.1 2012/10/24 07:11:50 tetromino Exp $ + +EAPI="4" +GCONF_DEBUG="no" +GNOME2_LA_PUNT="yes" + +inherit gnome2 pam versionator virtualx + +DESCRIPTION="Password and keyring managing daemon" +HOMEPAGE="http://www.gnome.org/" + +LICENSE="GPL-2+ LGPL-2+" +SLOT="0" +IUSE="+caps debug pam selinux" +KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~sparc-solaris ~x86-solaris" + +RDEPEND=">=app-crypt/gcr-3.3.4 + >=dev-libs/glib-2.28:2 + >=x11-libs/gtk+-3.0:3 + app-misc/ca-certificates + >=dev-libs/libgcrypt-1.2.2 + >=sys-apps/dbus-1.0 + caps? ( sys-libs/libcap-ng ) + pam? ( virtual/pam ) +" +DEPEND="${RDEPEND} + >=dev-util/intltool-0.35 + sys-devel/gettext + virtual/pkgconfig" +PDEPEND=">=gnome-base/libgnome-keyring-3.1.92" +# eautoreconf needs: +# >=dev-util/gtk-doc-am-1.9 +# gtk-doc-am is not needed otherwise (no gtk-docs are installed) + +# FIXME: tests are very flaky and write to /tmp (instead of TMPDIR) +RESTRICT="test" + +src_prepare() { + DOCS="AUTHORS ChangeLog NEWS README" + G2CONF="${G2CONF} + $(use_enable debug) + $(use_with caps libcap-ng) + $(use_enable pam) + $(use_with pam pam-dir $(getpam_mod_dir)) + $(use_enable selinux) + --with-root-certs=${EPREFIX}/etc/ssl/certs/ + --with-ca-certificates=${EPREFIX}/etc/ssl/certs/ca-certificates.crt + --enable-ssh-agent + --enable-gpg-agent" + # Bug #436392, CVE-2012-3466; fixed in 3.6 + epatch "${FILESDIR}/${P}-gpg-cache-method-"{1,2}.patch + gnome2_src_prepare +} + +src_test() { + unset DBUS_SESSION_BUS_ADDRESS + Xemake check +} + +pkg_postinst() { + use caps && fcaps 0:0 755 cap_ipc_lock "${ROOT}"/usr/bin/gnome-keyring-daemon + + gnome2_pkg_postinst +} + +# borrowed from GSoC2010_Gentoo_Capabilities by constanze and Flameeyes +# @FUNCTION: fcaps +# @USAGE: fcaps {uid:gid} {file-mode} {cap1[,cap2,...]} {file} +# @RETURN: 0 if all okay; non-zero if failure and fallback +# @DESCRIPTION: +# fcaps sets the specified capabilities in the effective and permitted set of +# the given file. In case of failure fcaps sets the given file-mode. +# Requires versionator.eclass +fcaps() { + local uid_gid=$1 + local perms=$2 + local capset=$3 + local path=$4 + local res + + chmod $perms $path && \ + chown $uid_gid $path + res=$? + + use caps || return $res + + #set the capability + setcap "$capset=ep" "$path" &> /dev/null + #check if the capability got set correctly + setcap -v "$capset=ep" "$path" &> /dev/null + res=$? + + if [ $res -ne 0 ]; then + ewarn "Failed to set capabilities. Probable reason is missing kernel support." + ewarn "Your kernel must have <FS>_FS_SECURITY enabled (e.g. EXT4_FS_SECURITY)" + ewarn "where <FS> is the filesystem to store ${path}" + if ! version_is_at_least 2.6.33 "$(uname -r)"; then + ewarn "For kernel 2.6.32 or older, you will also need to enable" + ewarn "SECURITY_FILE_CAPABILITIES." + fi + ewarn + ewarn "Falling back to suid now..." + chmod u+s ${path} + fi + return $res +} |