diff options
author | Ruben Bressler <ruben.bressler@cerpamid.co.cu> | 2010-07-19 18:53:21 -0400 |
---|---|---|
committer | Ruben Bressler <ruben.bressler@cerpamid.co.cu> | 2010-07-19 18:53:21 -0400 |
commit | a19de861c2072c3690ab09c891624c96d5630f3e (patch) | |
tree | 47ea230f617f0518d6f778bee9f4b335bcc8aedd /gnome-base | |
parent | adicionando ultima versión de x11-libs (diff) | |
download | rubenqba-a19de861c2072c3690ab09c891624c96d5630f3e.tar.gz rubenqba-a19de861c2072c3690ab09c891624c96d5630f3e.tar.bz2 rubenqba-a19de861c2072c3690ab09c891624c96d5630f3e.zip |
adicionando ultima versión de gnome-shell
Diffstat (limited to 'gnome-base')
31 files changed, 2585 insertions, 0 deletions
diff --git a/gnome-base/dconf/Manifest b/gnome-base/dconf/Manifest index d3a22fc..12f17f1 100644 --- a/gnome-base/dconf/Manifest +++ b/gnome-base/dconf/Manifest @@ -1,2 +1,4 @@ +DIST dconf-0.4.2.tar.bz2 322396 RMD160 f698dc341b1cb7fd8745b31c16037748a7e265b9 SHA1 8089244cf75ab07b0c111bd541fea3fdcb60bbbc SHA256 81ad18eff80eea5ad3e612e3164d42a5a9989c499a61a5536197107d0b05afa1 DIST dconf-0.5.tar.bz2 310788 RMD160 360083afecdc90fd6c362551faa9e695881b2db2 SHA1 ea1b4b490afe20f8d9619224d047d3230d187db3 SHA256 838a2f9a824e307042da7f367a7c249e6c9165bea2df6d87f48ec0c692214425 +EBUILD dconf-0.4.2.ebuild 620 RMD160 569e9876abaff2c937b978462ca461dc7bb6d4b9 SHA1 fa060f73d4a782f3d4226d095037c86005fb8a58 SHA256 09bf9c66f47aa1baac499e7fbfd313eaab20ca841a051a8bba4c86a9c826ce96 EBUILD dconf-0.5.ebuild 620 RMD160 74a6b3b1e0b81e144699df56ee9059e7e874cad9 SHA1 6b971337ec1723a6016fc3f08e418037082ff87b SHA256 0ff80bedd4ac0e8424b2f46703109b5c37090f713246f71419f51d956b6506ec diff --git a/gnome-base/dconf/dconf-0.4.2.ebuild b/gnome-base/dconf/dconf-0.4.2.ebuild new file mode 100644 index 0000000..394fc71 --- /dev/null +++ b/gnome-base/dconf/dconf-0.4.2.ebuild @@ -0,0 +1,29 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI=3 + +inherit gnome2 + +DESCRIPTION="Simple low-level configuration system" +HOMEPAGE="http://live.gnome.org/dconf" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="doc +introspection" + +RDEPEND=">=dev-libs/glib-2.25.10 + >=dev-libs/libgee-0.5.1 + >=dev-libs/libxml2-2.7.7 + x11-libs/gtk+:2 + introspection? ( >=dev-libs/gobject-introspection-0.6.7 )" +DEPEND="${RDEPEND} + >=dev-lang/vala-0.9.2 + doc? ( >=dev-util/gtk-doc-1.14 )" + +pkg_setup() { + G2CONF="${G2CONF} + $(use_enable introspection)" +} diff --git a/gnome-base/gnome-applets/Manifest b/gnome-base/gnome-applets/Manifest new file mode 100644 index 0000000..c543fca --- /dev/null +++ b/gnome-base/gnome-applets/Manifest @@ -0,0 +1,2 @@ +DIST gnome-applets-2.31.5.tar.bz2 10020371 RMD160 77e37750e90cc01a7f3ba3f8f5c0c6f44f4b8f0e SHA1 bba21eeed9555930af6724340e6baa2226dd786d SHA256 b91d4f86194c70de1c42e7ceb111227e13f0f799bd4f130674b6de9c8dbb1b83 +EBUILD gnome-applets-2.31.5.ebuild 3813 RMD160 aec33bea4e6bb92ca3b0c066f9d942faeedca4b9 SHA1 9b441aa2ab7bc9f1efbb79dfeefab7a04588a6fb SHA256 9ba7150c3bfe616983b8a932654e6cb5e1e1d624c49628ecccbb55a274b51820 diff --git a/gnome-base/gnome-applets/gnome-applets-2.31.5.ebuild b/gnome-base/gnome-applets/gnome-applets-2.31.5.ebuild new file mode 100644 index 0000000..c06da10 --- /dev/null +++ b/gnome-base/gnome-applets/gnome-applets-2.31.5.ebuild @@ -0,0 +1,141 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/gnome-base/gnome-applets/gnome-applets-2.30.0.ebuild,v 1.1 2010/06/13 18:55:04 pacho Exp $ + +EAPI=2 + +PYTHON_DEPEND="2" +inherit eutils gnome2 python + +DESCRIPTION="Applets for the GNOME Desktop and Panel" +HOMEPAGE="http://www.gnome.org/" + +LICENSE="GPL-2 FDL-1.1 LGPL-2" +SLOT="2" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux" +IUSE="acpi apm doc gnome gstreamer hal ipv6 networkmanager policykit" + +# TODO: configure says python stuff is optional +# my secret script says cpufrequtils might be needed in RDEPEND + +HALDEPEND=" hal? ( >=sys-apps/hal-0.5.3 ) " +RDEPEND=">=x11-libs/gtk+-2.20:2 + >=dev-libs/glib-2.22.0 + >=gnome-base/gconf-2.8 + >=gnome-base/gnome-panel-2.13.4 + >=x11-libs/libxklavier-4.0 + >=x11-libs/libwnck-2.9.3 + >=gnome-base/gnome-desktop-2.11.1 + >=x11-libs/libnotify-0.3.2 + >=sys-apps/dbus-1.1.2 + >=dev-libs/dbus-glib-0.74 + >=dev-libs/libxml2-2.5.0 + >=x11-themes/gnome-icon-theme-2.15.91 + >=dev-libs/libgweather-2.22.1 + x11-libs/libX11 + + apm? ( sys-apps/apmd $HALDEPEND ) + acpi? ( $HALDEPEND ) + gnome? ( + >=gnome-base/libgnomekbd-2.21.4.1 + gnome-base/gnome-settings-daemon + + >=gnome-extra/gucharmap-2.23 + >=gnome-base/libgtop-2.11.92 + + >=dev-python/pygobject-2.6 + >=dev-python/pygtk-2.6 + >=dev-python/libgnome-python-2.10 + >=dev-python/gconf-python-2.10 + >=dev-python/gnome-applets-python-2.10 ) + gstreamer? ( + >=media-libs/gstreamer-0.10.2 + >=media-libs/gst-plugins-base-0.10.14 + || ( + >=media-plugins/gst-plugins-alsa-0.10.14 + >=media-plugins/gst-plugins-oss-0.10.14 ) ) + networkmanager? ( >=net-misc/networkmanager-0.7.0 ) + policykit? ( >=sys-auth/polkit-0.92 )" + +DEPEND="${RDEPEND} + >=app-text/scrollkeeper-0.1.4 + >=app-text/gnome-doc-utils-0.3.2 + >=dev-util/pkgconfig-0.19 + >=dev-util/intltool-0.35 + dev-libs/libxslt + ~app-text/docbook-xml-dtd-4.3 + doc? ( app-text/docbook-sgml-utils )" + +DOCS="AUTHORS ChangeLog NEWS README" + +src_prepare() { + gnome2_src_prepare + + # disable pyc compiling + mv py-compile py-compile.orig + ln -s $(type -P true) py-compile + + # Invest applet tests need gconf/proxy/... + sed 's/^TESTS.*/TESTS=/g' -i invest-applet/invest/Makefile.am \ + invest-applet/invest/Makefile.in || die "disabling invest tests failed" +} + +pkg_setup() { + G2CONF="${G2CONF} + --disable-scrollkeeper + --disable-schemas-install + $(use_enable gstreamer mixer-applet) + $(use_with hal) + $(use_enable ipv6) + $(use_enable networkmanager) + $(use_enable policykit polkit)" + + if ! use ppc && ! use apm && ! use acpi; then + G2CONF="${G2CONF} --disable-battstat" + fi + + if use ppc && ! use apm; then + G2CONF="${G2CONF} --disable-battstat" + fi +} + +src_test() { + unset DBUS_SESSION_BUS_ADDRESS + emake check || die "emake check failed" +} + +src_install() { + gnome2_src_install + + local APPLETS="accessx-status battstat charpick cpufreq drivemount geyes + gkb-new gswitchit gweather invest-applet mini-commander + mixer modemlights multiload null_applet stickynotes trashapplet" + + # modemlights is out because it needs system-tools-backends-1 + + for applet in ${APPLETS} ; do + docinto ${applet} + + for d in AUTHORS ChangeLog NEWS README README.themes TODO ; do + [ -s ${applet}/${d} ] && dodoc ${applet}/${d} + done + done +} + +pkg_postinst() { + gnome2_pkg_postinst + + if use acpi && ! use hal ; then + elog "It is highly recommended that you install acpid if you use the" + elog "battstat applet to prevent any issues with other applications" + elog "trying to read acpi information." + fi + + # check for new python modules on bumps + python_mod_optimize $(python_get_sitedir)/invest +} + +pkg_postrm() { + gnome2_pkg_postrm + python_mod_cleanup /usr/$(get_libdir)/python*/site-packages/invest +} diff --git a/gnome-base/gnome-control-center/Manifest b/gnome-base/gnome-control-center/Manifest new file mode 100644 index 0000000..a0cae49 --- /dev/null +++ b/gnome-base/gnome-control-center/Manifest @@ -0,0 +1,2 @@ +DIST gnome-control-center-2.31.5.tar.bz2 3359955 RMD160 aa2b9baee064fb65f1c5dbcea0002b061e0a81eb SHA1 26d06f69990c8a8699336e1b845bcb67d055aefc SHA256 6a0cb7a4af261608618ad7646304561526bad7339f1b1de3d37cc82a14d94759 +EBUILD gnome-control-center-2.31.5.ebuild 1993 RMD160 1674871a7be2bc0d1be16470aa1252b939bfe7d5 SHA1 53eb435babd94d8fe9b868906d41cdf9eb1b7e6e SHA256 a825c4d303e7b5a8fc6c7cab8da6c57d8376d0c499985c5e112c394e587baaaa diff --git a/gnome-base/gnome-control-center/gnome-control-center-2.31.5.ebuild b/gnome-base/gnome-control-center/gnome-control-center-2.31.5.ebuild new file mode 100644 index 0000000..09811bb --- /dev/null +++ b/gnome-base/gnome-control-center/gnome-control-center-2.31.5.ebuild @@ -0,0 +1,82 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/gnome-base/gnome-control-center/gnome-control-center-2.30.1.ebuild,v 1.1 2010/06/13 19:46:46 pacho Exp $ + +EAPI="2" + +inherit gnome2 + +DESCRIPTION="The gnome2 Desktop configuration tool" +HOMEPAGE="http://www.gnome.org/" + +LICENSE="GPL-2" +SLOT="2" +KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~x86-solaris" +IUSE="eds" + +RDEPEND="x11-libs/libXft + >=x11-libs/libXi-1.2 + >=x11-libs/gtk+-2.90.0:3 + >=dev-libs/glib-2.17.4 + >=gnome-base/gconf-2.0 + >=gnome-base/librsvg-2.0 + >=gnome-base/nautilus-2.6 + >=media-libs/fontconfig-1 + >=dev-libs/dbus-glib-0.73 + >=x11-libs/libxklavier-4.0 + >=x11-wm/metacity-2.23.1 + >=gnome-base/libgnomekbd-2.31.2 + >=gnome-base/gnome-desktop-2.29.4:3 + >=gnome-base/gnome-menus-2.11.1 + gnome-base/gnome-settings-daemon + + dev-libs/libunique + x11-libs/pango + dev-libs/libxml2 + media-libs/freetype + >=media-libs/libcanberra-0.4[gtk3] + + eds? ( >=gnome-extra/evolution-data-server-1.7.90 ) + + x11-apps/xmodmap + x11-libs/libXScrnSaver + x11-libs/libXext + x11-libs/libX11 + x11-libs/libXxf86misc + x11-libs/libXrandr + x11-libs/libXrender + x11-libs/libXcursor" +DEPEND="${RDEPEND} + x11-proto/scrnsaverproto + x11-proto/xextproto + x11-proto/xproto + x11-proto/xf86miscproto + x11-proto/kbproto + x11-proto/randrproto + x11-proto/renderproto + + sys-devel/gettext + >=dev-util/intltool-0.40 + >=dev-util/pkgconfig-0.19 + dev-util/desktop-file-utils + + app-text/scrollkeeper + >=app-text/gnome-doc-utils-0.10.1" +# Needed for autoreconf +# gnome-base/gnome-common + +DOCS="AUTHORS ChangeLog NEWS README TODO" + +pkg_setup() { + G2CONF="${G2CONF} + --disable-update-mimedb + --disable-static + $(use_enable eds aboutme)" +} + +src_install() { + gnome2_src_install + # gmodule is used to load plugins + # (on POSIX systems gmodule uses dlopen) + find "${D}" -name "*.la" -delete || die "remove of la files failed" +} diff --git a/gnome-base/gnome-desktop/Manifest b/gnome-base/gnome-desktop/Manifest new file mode 100644 index 0000000..27652bd --- /dev/null +++ b/gnome-base/gnome-desktop/Manifest @@ -0,0 +1,3 @@ +AUX gnome-desktop-2.90.4-remove-shared-data.patch 1698 RMD160 526035a41d48768adad36898b22f158f9abb36a1 SHA1 0b0f4bc3b937bf7b3d1438a521df985400ade355 SHA256 77a41afbad9d030ebc9eb939da0919b4b7f647b53a4e0e8d06f49937ea94f3ea +DIST gnome-desktop-2.90.4.tar.bz2 1671103 RMD160 f2eb189a5c11142d97c12b5f62184b09f5cd6265 SHA1 3f0ac4099542c0d4b7d10acdfb62ae97d11e6d95 SHA256 f116cd1e64f150580476a977dfbab8b5e960b543eef5cbf38cfd8e70ec5ab927 +EBUILD gnome-desktop-2.90.4.ebuild 1735 RMD160 f5ef09e3a872cd61f9c4db41b125b2b67d6a7349 SHA1 9ddab235cad4cc7bedf5ba0d0939c8e4b7d50721 SHA256 5f684671389b3a17061e8ce5925b3c99e787ea521bcce4bc6f86e40208b3bc54 diff --git a/gnome-base/gnome-desktop/files/gnome-desktop-2.90.4-remove-shared-data.patch b/gnome-base/gnome-desktop/files/gnome-desktop-2.90.4-remove-shared-data.patch new file mode 100644 index 0000000..b23c263 --- /dev/null +++ b/gnome-base/gnome-desktop/files/gnome-desktop-2.90.4-remove-shared-data.patch @@ -0,0 +1,69 @@ +--- gnome-desktop-2.90.4.orig/configure.in ++++ gnome-desktop-2.90.4/configure.in +@@ -176,9 +176,6 @@ AC_SUBST(RANDR_PACKAGE) + dnl pkg-config dependency checks + + PKG_CHECK_MODULES(GNOME_DESKTOP, gdk-pixbuf-2.0 >= $GDK_PIXBUF_REQUIRED gtk+-3.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED gio-2.0 >= $GLIB_REQUIRED gconf-2.0 >= $GCONF_REQUIRED $STARTUP_NOTIFICATION_PACKAGE $RANDR_PACKAGE) +- +-dnl for gnome-about +-AM_PATH_PYTHON + + dnl gnome-doc-utils stuff + +@@ -215,9 +212,6 @@ GTK_DOC_CHECK([1.4]) + + AC_CONFIG_FILES([ + Makefile +-gnome-about/Makefile +-gnome-about/gnome-about.desktop.in +-gnome-about/headers/Makefile + libgnome-desktop/Makefile + libgnome-desktop/libgnome/Makefile + libgnome-desktop/libgnomeui/Makefile +@@ -226,14 +220,7 @@ libgnome-desktop/gnome-desktop-3.0-unins + docs/Makefile + docs/reference/Makefile + docs/reference/gnome-desktop3/Makefile +-gnome-version.xml.in + po/Makefile.in +-pixmaps/Makefile +-desktop-docs/Makefile +-desktop-docs/fdl/Makefile +-desktop-docs/gpl/Makefile +-desktop-docs/lgpl/Makefile +-man/Makefile + ]) + + AC_OUTPUT +--- gnome-desktop-2.90.4.orig/Makefile.am ++++ gnome-desktop-2.90.4/Makefile.am +@@ -3,28 +3,17 @@ ACLOCAL_AMFLAGS = -I m4 + SUBDIRS = \ + po \ + libgnome-desktop \ +- gnome-about \ +- pixmaps \ +- desktop-docs \ +- docs \ +- man ++ docs + + EXTRA_DIST = \ + MAINTAINERS \ + ChangeLog.pre-git \ +- gnome-version.xml.in.in \ +- gnome-version.xml \ + COPYING-DOCS \ + HACKING \ + gnome-doc-utils.make + +-versiondir=$(datadir)/gnome-about +-version_DATA=gnome-version.xml +-@INTLTOOL_XML_RULE@ +- + DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --disable-scrollkeeper + +-CLEANFILES = $(version_DATA) + DISTCLEANFILES = \ + gnome-doc-utils.make + diff --git a/gnome-base/gnome-desktop/gnome-desktop-2.90.4.ebuild b/gnome-base/gnome-desktop/gnome-desktop-2.90.4.ebuild new file mode 100644 index 0000000..12e97d9 --- /dev/null +++ b/gnome-base/gnome-desktop/gnome-desktop-2.90.4.ebuild @@ -0,0 +1,57 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI="2" +inherit gnome2 autotools eutils + +DESCRIPTION="Libraries for the gnome desktop that are not part of the UI" +HOMEPAGE="http://www.gnome.org/" + +LICENSE="GPL-2 FDL-1.1 LGPL-2" +SLOT="3" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~x86-solaris" +IUSE="doc" + +RDEPEND=">=x11-libs/gtk+-2.90.2:3 + >=dev-libs/glib-2.19.1 + >=x11-libs/libXrandr-1.2 + >=gnome-base/gconf-2 + >=x11-libs/startup-notification-0.5 + x11-libs/libX11" +DEPEND="${RDEPEND} + sys-devel/gettext + >=dev-util/intltool-0.40 + >=dev-util/pkgconfig-0.9 + >=app-text/gnome-doc-utils-0.3.2 + doc? ( >=dev-util/gtk-doc-1.4 ) + ~app-text/docbook-xml-dtd-4.1.2 + x11-proto/xproto + >=x11-proto/randrproto-1.2" +# Temporarily require the 2.31 version to ensure the proper pixmaps, gnome-about, +# etc. are installed. Switch to doing things the other way around once +# gnome-about no longer uses pygtk 2 +PDEPEND=">=gnome-base/gnome-desktop-2.31:0" + +# Includes X11/Xatom.h in libgnome-desktop/gnome-bg.c which comes from xproto +# Includes X11/extensions/Xrandr.h that includes randr.h from randrproto (and +# eventually libXrandr shouldn't RDEPEND on randrproto) + +DOCS="AUTHORS ChangeLog HACKING NEWS README" + +pkg_setup() { + G2CONF="${G2CONF} + --with-gnome-distributor=Gentoo + --disable-scrollkeeper + --disable-static + --with-pnp-ids-path=/usr/share/libgnome-desktop/pnp.ids" +} + +src_prepare() { + epatch "${FILESDIR}"/${P}-remove-shared-data.patch + + rm -rf desktop-docs gnome-about gnome-version.xml* man pixmaps + + intltoolize --force --copy --automake || die "intltoolize failed" + eautoreconf +} diff --git a/gnome-base/gnome-js-common/Manifest b/gnome-base/gnome-js-common/Manifest new file mode 100644 index 0000000..1a975ee --- /dev/null +++ b/gnome-base/gnome-js-common/Manifest @@ -0,0 +1,2 @@ +DIST gnome-js-common-0.1.1.tar.bz2 274010 RMD160 11608b34c66b077b6ccf0b8042721cbb8155627d SHA1 0297b768f5a91b8d9e4bbc6e7b9c73f3e7f915ba SHA256 6cad015cda5abfd2bccd6b95714ca39c83ca69ca7e6f7326dc75763a758dc8db +EBUILD gnome-js-common-0.1.1.ebuild 526 RMD160 30803a74991ebff658f24d882377238cb3d24213 SHA1 21a2cf69b1ec48075c2d5967e9d9c343edc55867 SHA256 fbef3bdc5c6bbc1f2a3882ea0cd79ea32d8e56c1e44ee529292038f066474b77 diff --git a/gnome-base/gnome-js-common/gnome-js-common-0.1.1.ebuild b/gnome-base/gnome-js-common/gnome-js-common-0.1.1.ebuild new file mode 100644 index 0000000..c28fe69 --- /dev/null +++ b/gnome-base/gnome-js-common/gnome-js-common-0.1.1.ebuild @@ -0,0 +1,29 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI="3" +GCONF_DEBUG="no" +inherit gnome2 + +DESCRIPTION="GNOME JavaScript common modules and tests" +HOMEPAGE="http://gnome.org/" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="" + +RDEPEND="" +DEPEND="sys-devel/gettext + >=dev-util/pkgconfig-0.9 + >=dev-util/intltool-0.35" +DOCS="ChangeLog" + +G2CONF="${G2CONF} --disable-seed --disable-gjs" + +src_install() { + gnome2_src_install + + rm -rf "${ED}"/usr/doc +} diff --git a/gnome-base/gnome-keyring/Manifest b/gnome-base/gnome-keyring/Manifest new file mode 100644 index 0000000..797fbdb --- /dev/null +++ b/gnome-base/gnome-keyring/Manifest @@ -0,0 +1,2 @@ +DIST gnome-keyring-2.31.4.tar.bz2 1600311 RMD160 ba528e39d5904ad6f71cc9ab39004685c6b9f062 SHA1 9f98a3a9fa09f6322df752628b01c23c4e66ad75 SHA256 c5c22ff83cfeba1e2db2145f54c71edf8c341d01748be9096062312d05da73e8 +EBUILD gnome-keyring-2.31.4.ebuild 1336 RMD160 8e697867b70482b4467f31332ca07b8abad82fca SHA1 f84f4628fad56966d77ddcfa9a31318161253481 SHA256 289a1144b5925596303228a8686083a3e0aa1a7d9eca7d89b7be70c4c5a7e584 diff --git a/gnome-base/gnome-keyring/gnome-keyring-2.31.4.ebuild b/gnome-base/gnome-keyring/gnome-keyring-2.31.4.ebuild new file mode 100644 index 0000000..456ad5e --- /dev/null +++ b/gnome-base/gnome-keyring/gnome-keyring-2.31.4.ebuild @@ -0,0 +1,60 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI="2" + +inherit gnome2 pam virtualx autotools + +DESCRIPTION="Password and keyring managing daemon" +HOMEPAGE="http://www.gnome.org/" + +LICENSE="GPL-2 LGPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~x86" +IUSE="debug doc pam test" +# USE=valgrind is probably not a good idea for the tree + +RDEPEND=">=dev-libs/glib-2.16 + >=x11-libs/gtk+-2.20:2 + gnome-base/gconf + >=sys-apps/dbus-1.0 + pam? ( virtual/pam ) + >=dev-libs/libgcrypt-1.2.2 + >=dev-libs/libtasn1-1" +# valgrind? ( dev-util/valgrind )" +DEPEND="${RDEPEND} + sys-devel/gettext + >=dev-util/intltool-0.35 + >=dev-util/pkgconfig-0.9 + doc? ( >=dev-util/gtk-doc-1.9 )" +PDEPEND="gnome-base/libgnome-keyring" + +DOCS="AUTHORS ChangeLog NEWS README" + +pkg_setup() { + G2CONF="${G2CONF} + $(use_enable debug) + $(use_enable test tests) + $(use_enable pam) + $(use_with pam pam-dir $(getpam_mod_dir)) + --with-root-certs=/usr/share/ca-certificates/ + --enable-acl-prompts + --enable-ssh-agent" +# $(use_enable valgrind) +} + +src_prepare() { + gnome2_src_prepare + + # Remove silly CFLAGS + sed 's:CFLAGS="$CFLAGS -Werror:CFLAGS="$CFLAGS:' \ + -i configure.in configure || die "sed failed" + + eautoreconf +} + +src_test() { + unset DBUS_SESSION_BUS_ADDRESS + Xemake check || die "emake check failed!" +} diff --git a/gnome-base/gnome-session/Manifest b/gnome-base/gnome-session/Manifest new file mode 100644 index 0000000..03ad269 --- /dev/null +++ b/gnome-base/gnome-session/Manifest @@ -0,0 +1,7 @@ +AUX Gnome 2404 RMD160 48ab5c98ac1cda3593c99f6996f72a61b63b87c7 SHA1 eb7422e38600214911075bffae52fbb348a1ba44 SHA256 259c067c3293fccb587daba38fae888119250330a624687674e140e31c75d297 +AUX gnome-session-2.26.2-shutdown.patch 4512 RMD160 aa6a5fc66959e099ea7734e1f13af39890a37a9b SHA1 07461b0ed9587e0911cf57d2a8c2eaa74fde2f17 SHA256 2539c04941ac75e5003bddf4e4398ba19cbcbaae7f62277974b061737e4d8859 +AUX gnome-session-2.27.91-gentoo-branding.patch 702 RMD160 6727c2e3dbd8fd29461e1224a160b88e027e1cfc SHA1 3223e8cdda47d006b4b7a8e8428509d7d9e417f1 SHA256 c72c26b77dbe89ca4ec6c36eece99dbf3c5cdc099d563fd8a78d68c7d2a197b4 +AUX gnome-session-2.30.0-session-saving-button.patch 21746 RMD160 f32556cd91edd3904135e4819bfa00621a552f31 SHA1 01a9be032f5d81e7f42d399b5031e1a8b61b41e8 SHA256 e6e283721b556535eef485352c67c68962cd6464b900d601306ed3d5bc0a59ab +DIST gentoo-splash.png 78064 RMD160 e75052892920e1c919aae1f6e53853c27b2e063f SHA1 e93c5f77389a5351af9948f7677c5592355cf860 SHA256 24fa48bc26db0d446e0098b3e94fd3cdec4610faca0b3282da0bec79bedbc179 +DIST gnome-session-2.31.2.tar.bz2 817738 RMD160 5f022f7ead5e06e0ef5b833c26a71dc07f28b423 SHA1 0a55f46041a6a3830990b2c3eb5b98a00d2828e0 SHA256 49c07f4f9a76fba29fae4e5a6c9542ad06de06ef25a7c469ae51d2bb7110dc82 +EBUILD gnome-session-2.31.2.ebuild 2610 RMD160 86c8f0ffcc4fe1ca287cb71deb269a78845f1c9f SHA1 f35bd2c9b7a8e5700b2b5305bea93253aac5b03c SHA256 46cf0e830b526617e5740019c9ce974b35044bb9cd378f8d6411de47039448f4 diff --git a/gnome-base/gnome-session/files/Gnome b/gnome-base/gnome-session/files/Gnome new file mode 100644 index 0000000..d068dae --- /dev/null +++ b/gnome-base/gnome-session/files/Gnome @@ -0,0 +1,111 @@ +#!/bin/sh + +# Great new Gnome2 feature, AA +# We enable this by default + +export GDK_USE_XFT=1 + +if [ -f /etc/xdg/menus/gnome-applications.menu ] ; then + export XDG_MENU_PREFIX=gnome- +fi + +for errfile in "$HOME/.gnomerc-errors" "${TMPDIR-/tmp}/gnomerc-$USER" "/tmp/gnomerc-$USER" +do + if ( cp /dev/null "$errfile" 2> /dev/null ) + then + chmod 600 "$errfile" + exec > "$errfile" 2>&1 + break + fi +done +# +# Distributors: +# You should modify the paths here to fit your distro +# If you need to do so, send me (jirka@5z.com) a patch +# and I'll try to make the script detect the distro stuff +# + +userresources=$HOME/.Xresources +usermodmap=$HOME/.Xmodmap +userxkbmap=$HOME/.Xkbmap + +sysresources=/etc/X11/Xresources +sysmodmap=/etc/X11/Xmodmap +sysxkbmap=/etc/X11/Xkbmap + +rh6sysresources=/etc/X11/xinit/Xresources +rh6sysmodmap=/etc/X11/xinit/Xmodmap + +if [ -x "$HOME/.gnomerc" ]; then + command="$HOME/.gnomerc" +elif [ -x /etc/X11/gdm/gnomerc ]; then + command="/etc/X11/gdm/gnomerc" +else + # as fallback in case the config is screwed + command=`which gnome-session` +fi + +# merge in defaults +if [ -f "$rh6sysresources" ]; then + xrdb -merge "$rh6sysresources" +fi + +if [ -f "$sysresources" ]; then + xrdb -merge "$sysresources" +fi + +if [ -f "$userresources" ]; then + xrdb -merge "$userresources" +fi + +# merge in keymaps +if [ -f "$sysxkbmap" ]; then + setxkbmap `cat "$sysxkbmap"` + XKB_IN_USE=yes +fi + +if [ -f "$userxkbmap" ]; then + setxkbmap `cat "$userxkbmap"` + XKB_IN_USE=yes +fi + +# +# Eeek, this seems like too much magic here +# +if [ -z "$XKB_IN_USE" ] && [ ! -L /etc/X11/X ]; then + if grep '^exec.*/Xsun' /etc/X11/X > /dev/null 2>&1 && [ -f /etc/X11/XF86Config ]; then + xkbsymbols=`sed -n -e 's/^[ ]*XkbSymbols[ ]*"\(.*\)".*$/\1/p' /etc/X11/XF86Config` + if [ -n "$xkbsymbols" ]; then + setxkbmap -symbols "$xkbsymbols" + XKB_IN_USE=yes + fi + fi +fi + +# xkb and xmodmap don't play nice together +if [ -z "$XKB_IN_USE" ]; then + if [ -f "$rh6sysmodmap" ]; then + xmodmap "$rh6sysmodmap" + fi + + if [ -f "$sysmodmap" ]; then + xmodmap "$sysmodmap" + fi + + if [ -f "$usermodmap" ]; then + xmodmap "$usermodmap" + fi +fi + +unset XKB_IN_USE + +# run all system xinitrc shell scripts. +if [ -d /etc/X11/xinit/xinitrc.d ]; then + for i in /etc/X11/xinit/xinitrc.d/* ; do + if [ -x "$i" ]; then + . "$i" + fi + done +fi + +exec $command diff --git a/gnome-base/gnome-session/files/gnome-session-2.26.2-shutdown.patch b/gnome-base/gnome-session/files/gnome-session-2.26.2-shutdown.patch new file mode 100644 index 0000000..29cc569 --- /dev/null +++ b/gnome-base/gnome-session/files/gnome-session-2.26.2-shutdown.patch @@ -0,0 +1,123 @@ +From 281e67308b9828a35ad863c39bd09e595c5e8771 Mon Sep 17 00:00:00 2001 +From: Gilles Dartiguelongue <eva@gentoo.org> +Date: Sun, 19 Apr 2009 16:45:29 +0200 +Subject: [PATCH 1/2] Allow shutdown without PolicyKit. + + Straight forward fix to allow shutdown on systems not using policykit. + + If the system really doesn't have policykit, it will make things work + as in 2.22. + + If pk is in gsm but not in ck, it'll still work as in 2.22. + + If pk is present in both, you just have to fix the logic to make + gsm ask pk if the user has the permission to shutdown _before_ showing + buttons and in case this is not possible, just damn fix pk. + + reported as http://bugzilla.gnome.org/show_bug.cgi?id=549150 +--- + gnome-session/gsm-consolekit.c | 38 ++++++++++++++++++++++---------------- + 1 files changed, 22 insertions(+), 16 deletions(-) + +diff --git a/gnome-session/gsm-consolekit.c b/gnome-session/gsm-consolekit.c +index 5541006..28f4cb7 100644 +--- a/gnome-session/gsm-consolekit.c ++++ b/gnome-session/gsm-consolekit.c +@@ -541,7 +541,7 @@ request_restart_priv (GsmConsolekit *manager, + g_free (error_message); + } + #else +- g_assert_not_reached (); ++ g_warning ("Failed to restart and Policykit support not enabled"); + #endif /* HAVE POLKIT */ + } + +@@ -581,7 +581,7 @@ request_stop_priv (GsmConsolekit *manager, + } + } + #else +- g_assert_not_reached (); ++ g_warning ("Failed to shutdown and Policykit support not enabled"); + #endif /* HAVE POLKIT */ + } + +@@ -979,6 +979,15 @@ gsm_consolekit_can_do_action (GsmConsolekit *manager, + + return result != POLKIT_RESULT_NO && result != POLKIT_RESULT_UNKNOWN; + } ++#else ++static gboolean ++gsm_consolekit_can_do_action (GsmConsolekit *manager, ++ const char *action_id) ++{ ++ /* if we got here, res was true */ ++ return TRUE; ++} ++#endif + + static gboolean + gsm_consolekit_is_session_for_other_user (GsmConsolekit *manager, +@@ -1096,6 +1105,7 @@ gsm_consolekit_is_single_user (GsmConsolekit *manager) + return single; + } + ++#ifdef HAVE_POLKIT_GNOME + static void + obtain_privileges_cb (PolKitAction *action, + gboolean gained_privilege, +@@ -1207,8 +1217,11 @@ gsm_consolekit_get_restart_privileges (GsmConsolekit *manager) + "org.freedesktop.consolekit.system.restart", + "org.freedesktop.consolekit.system.restart-multiple-users"); + #else +- g_debug ("GsmConsolekit: built without PolicyKit-gnome support"); +- return FALSE; ++ g_signal_emit (G_OBJECT (manager), ++ signals [PRIVILEGES_COMPLETED], ++ 0, TRUE, FALSE, FALSE); ++ g_debug ("GsmConsolekit: built without PolicyKit-gnome support, granting anyway"); ++ return TRUE; + #endif + } + +@@ -1220,33 +1233,26 @@ gsm_consolekit_get_stop_privileges (GsmConsolekit *manager) + "org.freedesktop.consolekit.system.stop", + "org.freedesktop.consolekit.system.stop-multiple-users"); + #else +- g_debug ("GsmConsolekit: built without PolicyKit-gnome support"); +- return FALSE; ++ g_signal_emit (G_OBJECT (manager), ++ signals [PRIVILEGES_COMPLETED], ++ 0, TRUE, FALSE, FALSE); ++ g_debug ("GsmConsolekit: built without PolicyKit-gnome support, granting anyway"); ++ return TRUE; + #endif + } + + gboolean + gsm_consolekit_can_restart (GsmConsolekit *manager) + { +-#ifdef HAVE_POLKIT_GNOME + return gsm_consolekit_can_do_action (manager, "org.freedesktop.consolekit.system.restart") || + gsm_consolekit_can_do_action (manager, "org.freedesktop.consolekit.system.restart-multiple-users"); +-#else +- g_debug ("GsmConsolekit: built without PolicyKit-gnome support - cannot restart system"); +- return FALSE; +-#endif + } + + gboolean + gsm_consolekit_can_stop (GsmConsolekit *manager) + { +-#ifdef HAVE_POLKIT_GNOME + return gsm_consolekit_can_do_action (manager, "org.freedesktop.consolekit.system.stop") || + gsm_consolekit_can_do_action (manager, "org.freedesktop.consolekit.system.stop-multiple-users"); +-#else +- g_debug ("GsmConsolekit: built without PolicyKit-gnome support - cannot stop system"); +- return FALSE; +-#endif + } + + gchar * +-- +1.6.3.3 + diff --git a/gnome-base/gnome-session/files/gnome-session-2.27.91-gentoo-branding.patch b/gnome-base/gnome-session/files/gnome-session-2.27.91-gentoo-branding.patch new file mode 100644 index 0000000..60e7dbb --- /dev/null +++ b/gnome-base/gnome-session/files/gnome-session-2.27.91-gentoo-branding.patch @@ -0,0 +1,14 @@ +Our own splash for world domination (updated for 2.27.91) + +--- +--- data/gnome-session.schemas.in.in ++++ data/gnome-session.schemas.in.in +@@ -40,7 +40,7 @@ + <applyto>/apps/gnome-session/options/splash_image</applyto> + <owner>gnome</owner> + <type>string</type> +- <default>splash/gnome-splash.png</default> ++ <default>splash/gentoo-splash.png</default> + <locale name="C"> + <short>Preferred Image to use for login splash screen</short> + <long>This is a relative path value based off the $datadir/pixmaps/ directory. Sub-directories and image names are valid values. Changing this value will effect the next session login.</long> diff --git a/gnome-base/gnome-session/files/gnome-session-2.30.0-session-saving-button.patch b/gnome-base/gnome-session/files/gnome-session-2.30.0-session-saving-button.patch new file mode 100644 index 0000000..b6a4f4e --- /dev/null +++ b/gnome-base/gnome-session/files/gnome-session-2.30.0-session-saving-button.patch @@ -0,0 +1,535 @@ +Based on the patch in GNOME #575544 +Index: gnome-session-2.28.0/gnome-session/gsm-manager.c +=================================================================== +--- gnome-session-2.28.0.orig/gnome-session/gsm-manager.c 2009-09-18 18:36:04.000000000 +0200 ++++ gnome-session-2.28.0/gnome-session/gsm-manager.c 2009-10-24 12:43:56.861770100 +0200 +@@ -68,6 +68,7 @@ + #define GSM_MANAGER_DBUS_NAME "org.gnome.SessionManager" + + #define GSM_MANAGER_PHASE_TIMEOUT 10 /* seconds */ ++#define GSM_MANAGER_SAVE_SESSION_TIMEOUT 2 + + #define GDM_FLEXISERVER_COMMAND "gdmflexiserver" + #define GDM_FLEXISERVER_ARGS "--startnew Standard" +@@ -1147,6 +1148,69 @@ query_end_session_complete (GsmManager * + + } + ++static gboolean ++_client_request_save (GsmClient *client, ++ ClientEndSessionData *data) ++{ ++ gboolean ret; ++ GError *error; ++ ++ error = NULL; ++ ret = gsm_client_request_save (client, data->flags, &error); ++ if (ret) { ++ g_debug ("GsmManager: adding client to query clients: %s", gsm_client_peek_id (client)); ++ data->manager->priv->query_clients = g_slist_prepend (data->manager->priv->query_clients, ++ client); ++ } else if (error) { ++ g_debug ("GsmManager: unable to query client: %s", error->message); ++ g_error_free (error); ++ } ++ ++ return FALSE; ++} ++ ++static gboolean ++_client_request_save_helper (const char *id, ++ GsmClient *client, ++ ClientEndSessionData *data) ++{ ++ return _client_request_save (client, data); ++} ++ ++static void ++query_save_session_complete (GsmManager *manager) ++{ ++ GError *error = NULL; ++ ++ if (g_slist_length (manager->priv->next_query_clients) > 0) { ++ ClientEndSessionData data; ++ ++ data.manager = manager; ++ data.flags = GSM_CLIENT_END_SESSION_FLAG_LAST; ++ ++ g_slist_foreach (manager->priv->next_query_clients, ++ (GFunc)_client_request_save, ++ &data); ++ ++ g_slist_free (manager->priv->next_query_clients); ++ manager->priv->next_query_clients = NULL; ++ ++ return; ++ } ++ ++ if (manager->priv->query_timeout_id > 0) { ++ g_source_remove (manager->priv->query_timeout_id); ++ manager->priv->query_timeout_id = 0; ++ } ++ ++ gsm_session_save (manager->priv->clients, &error); ++ ++ if (error) { ++ g_warning ("Error saving session: %s", error->message); ++ g_error_free (error); ++ } ++} ++ + static guint32 + generate_cookie (void) + { +@@ -1221,6 +1285,21 @@ _on_query_end_session_timeout (GsmManage + return FALSE; + } + ++static gboolean ++_on_query_save_session_timeout (GsmManager *manager) ++{ ++ manager->priv->query_timeout_id = 0; ++ ++ g_debug ("GsmManager: query to save session timed out"); ++ ++ g_slist_free (manager->priv->query_clients); ++ manager->priv->query_clients = NULL; ++ ++ query_save_session_complete (manager); ++ ++ return FALSE; ++} ++ + static void + do_phase_query_end_session (GsmManager *manager) + { +@@ -1857,13 +1936,32 @@ on_client_end_session_response (GsmClien + const char *reason, + GsmManager *manager) + { +- /* just ignore if received outside of shutdown */ +- if (manager->priv->phase < GSM_MANAGER_PHASE_QUERY_END_SESSION) { ++ /* just ignore if we are not yet running */ ++ if (manager->priv->phase < GSM_MANAGER_PHASE_RUNNING) { + return; + } + + g_debug ("GsmManager: Response from end session request: is-ok=%d do-last=%d cancel=%d reason=%s", is_ok, do_last, cancel, reason ? reason :""); + ++ if (manager->priv->phase == GSM_MANAGER_PHASE_RUNNING) { ++ /* Ignore responses when no requests were sent */ ++ if (manager->priv->query_clients == NULL) { ++ return; ++ } ++ ++ manager->priv->query_clients = g_slist_remove (manager->priv->query_clients, client); ++ ++ if (do_last) { ++ manager->priv->next_query_clients = g_slist_prepend (manager->priv->next_query_clients, ++ client); ++ } ++ ++ if (manager->priv->query_clients == NULL) { ++ query_save_session_complete (manager); ++ } ++ return; ++ } ++ + if (cancel) { + cancel_end_session (manager); + return; +@@ -1962,6 +2060,15 @@ on_xsmp_client_logout_request (GsmXSMPCl + } + + static void ++on_xsmp_client_save_request (GsmXSMPClient *client, ++ gboolean show_dialog, ++ GsmManager *manager) ++{ ++ g_debug ("GsmManager: save_request"); ++ gsm_manager_save_session (manager, NULL); ++} ++ ++static void + on_store_client_added (GsmStore *store, + const char *id, + GsmManager *manager) +@@ -1982,6 +2089,10 @@ on_store_client_added (GsmStore *store + "logout-request", + G_CALLBACK (on_xsmp_client_logout_request), + manager); ++ g_signal_connect (client, ++ "save-request", ++ G_CALLBACK (on_xsmp_client_save_request), ++ manager); + } + + g_signal_connect (client, +@@ -2939,6 +3050,41 @@ gsm_manager_shutdown (GsmManager *manage + } + + gboolean ++gsm_manager_save_session (GsmManager *manager, ++ GError **error) ++{ ++ ClientEndSessionData data; ++ ++ g_debug ("GsmManager: SaveSession called"); ++ ++ g_return_val_if_fail (GSM_IS_MANAGER (manager), FALSE); ++ ++ if (manager->priv->phase != GSM_MANAGER_PHASE_RUNNING) { ++ g_set_error (error, ++ GSM_MANAGER_ERROR, ++ GSM_MANAGER_ERROR_NOT_IN_RUNNING, ++ "SaveSession interface is only available during the Running phase"); ++ return FALSE; ++ } ++ ++ data.manager = manager; ++ data.flags = 0; ++ gsm_store_foreach (manager->priv->clients, ++ (GsmStoreFunc)_client_request_save_helper, ++ &data); ++ ++ if (manager->priv->query_clients) { ++ manager->priv->query_timeout_id = g_timeout_add_seconds (GSM_MANAGER_SAVE_SESSION_TIMEOUT, ++ (GSourceFunc)_on_query_save_session_timeout, ++ manager); ++ return TRUE; ++ } else { ++ g_debug ("GsmManager: Nothing to save"); ++ return FALSE; ++ } ++} ++ ++gboolean + gsm_manager_can_shutdown (GsmManager *manager, + gboolean *shutdown_available, + GError **error) +Index: gnome-session-2.28.0/gnome-session/gsm-manager.h +=================================================================== +--- gnome-session-2.28.0.orig/gnome-session/gsm-manager.h 2009-04-19 20:26:52.000000000 +0200 ++++ gnome-session-2.28.0/gnome-session/gsm-manager.h 2009-10-24 12:43:56.861770100 +0200 +@@ -152,6 +152,9 @@ gboolean gsm_manager_is_inhib + gboolean gsm_manager_shutdown (GsmManager *manager, + GError **error); + ++gboolean gsm_manager_save_session (GsmManager *manager, ++ GError **error); ++ + gboolean gsm_manager_can_shutdown (GsmManager *manager, + gboolean *shutdown_available, + GError **error); +Index: gnome-session-2.28.0/gnome-session/gsm-xsmp-client.c +=================================================================== +--- gnome-session-2.28.0.orig/gnome-session/gsm-xsmp-client.c 2009-07-29 02:36:08.000000000 +0200 ++++ gnome-session-2.28.0/gnome-session/gsm-xsmp-client.c 2009-10-24 12:43:56.861770100 +0200 +@@ -70,6 +70,7 @@ enum { + enum { + REGISTER_REQUEST, + LOGOUT_REQUEST, ++ SAVE_REQUEST, + LAST_SIGNAL + }; + +@@ -523,6 +524,30 @@ xsmp_cancel_end_session (GsmClient *clie + return TRUE; + } + ++static gboolean ++xsmp_request_save (GsmClient *client, ++ guint flags, ++ GError **error) ++{ ++ GsmXSMPClient *xsmp = (GsmXSMPClient *) client; ++ ++ g_debug ("GsmXSMPClient: xsmp_request_save ('%s')", xsmp->priv->description); ++ ++ if (xsmp->priv->conn == NULL) { ++ g_set_error (error, ++ GSM_CLIENT_ERROR, ++ GSM_CLIENT_ERROR_NOT_REGISTERED, ++ "Client is not registered"); ++ return FALSE; ++ } ++ ++ if (flags & GSM_CLIENT_END_SESSION_FLAG_LAST) ++ xsmp_save_yourself_phase2 (client); ++ else ++ do_save_yourself (xsmp, SmSaveLocal, FALSE); ++ ++ return TRUE; ++} + static char * + get_desktop_file_path (GsmXSMPClient *client) + { +@@ -993,6 +1018,7 @@ gsm_xsmp_client_class_init (GsmXSMPClien + object_class->get_property = gsm_xsmp_client_get_property; + object_class->set_property = gsm_xsmp_client_set_property; + ++ client_class->impl_request_save = xsmp_request_save; + client_class->impl_save = xsmp_save; + client_class->impl_stop = xsmp_stop; + client_class->impl_query_end_session = xsmp_query_end_session; +@@ -1023,6 +1049,17 @@ gsm_xsmp_client_class_init (GsmXSMPClien + G_TYPE_NONE, + 1, G_TYPE_BOOLEAN); + ++ signals[SAVE_REQUEST] = ++ g_signal_new ("save-request", ++ G_OBJECT_CLASS_TYPE (object_class), ++ G_SIGNAL_RUN_LAST, ++ G_STRUCT_OFFSET (GsmXSMPClientClass, save_request), ++ NULL, ++ NULL, ++ g_cclosure_marshal_VOID__BOOLEAN, ++ G_TYPE_NONE, ++ 1, G_TYPE_BOOLEAN); ++ + g_object_class_install_property (object_class, + PROP_ICE_CONNECTION, + g_param_spec_pointer ("ice-connection", +Index: gnome-session-2.28.0/gnome-session/gsm-xsmp-client.h +=================================================================== +--- gnome-session-2.28.0.orig/gnome-session/gsm-xsmp-client.h 2009-04-19 20:26:52.000000000 +0200 ++++ gnome-session-2.28.0/gnome-session/gsm-xsmp-client.h 2009-10-24 12:43:56.861770100 +0200 +@@ -54,7 +54,8 @@ struct _GsmXSMPClientClass + char **client_id); + gboolean (*logout_request) (GsmXSMPClient *client, + gboolean prompt); +- ++ gboolean (*save_request) (GsmXSMPClient *client, ++ gboolean prompt); + + void (*saved_state) (GsmXSMPClient *client); + +Index: gnome-session-2.28.0/gnome-session/org.gnome.SessionManager.xml +=================================================================== +--- gnome-session-2.28.0.orig/gnome-session/org.gnome.SessionManager.xml 2009-04-19 20:26:52.000000000 +0200 ++++ gnome-session-2.28.0/gnome-session/org.gnome.SessionManager.xml 2009-10-24 12:43:56.865763345 +0200 +@@ -256,6 +256,14 @@ + </doc:doc> + </method> + ++ <method name="SaveSession"> ++ <doc:doc> ++ <doc:description> ++ <doc:para>Request to save session</doc:para> ++ </doc:description> ++ </doc:doc> ++ </method> ++ + <method name="CanShutdown"> + <arg name="is_available" direction="out" type="b"> + <doc:doc> +Index: gnome-session-2.28.0/capplet/gsm-properties-dialog.c +=================================================================== +--- gnome-session-2.28.0.orig/capplet/gsm-properties-dialog.c 2009-08-25 10:03:42.000000000 +0200 ++++ gnome-session-2.28.0/capplet/gsm-properties-dialog.c 2009-10-24 13:21:57.910268989 +0200 +@@ -35,6 +35,12 @@ + #include "gsm-util.h" + #include "gsp-app.h" + #include "gsp-app-manager.h" ++#include <dbus/dbus-glib.h> ++#include <dbus/dbus-glib-lowlevel.h> ++ ++#define GSM_SERVICE_DBUS "org.gnome.SessionManager" ++#define GSM_PATH_DBUS "/org/gnome/SessionManager" ++#define GSM_INTERFACE_DBUS "org.gnome.SessionManager" + + #define GSM_PROPERTIES_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSM_TYPE_PROPERTIES_DIALOG, GsmPropertiesDialogPrivate)) + +@@ -50,6 +56,7 @@ + #define CAPPLET_DELETE_WIDGET_NAME "session_properties_delete_button" + #define CAPPLET_EDIT_WIDGET_NAME "session_properties_edit_button" + #define CAPPLET_SAVE_WIDGET_NAME "session_properties_save_button" ++#define CAPPLET_SESSION_SAVED_WIDGET_NAME "session_properties_session_saved_label" + #define CAPPLET_REMEMBER_WIDGET_NAME "session_properties_remember_toggle" + + #define STARTUP_APP_ICON "system-run" +@@ -493,10 +500,64 @@ on_autosave_value_toggled (GtkToggleButt + } + + static void ++session_saved_message (GsmPropertiesDialog *dialog, ++ const char *msg, ++ gboolean is_error) ++{ ++ GtkLabel *label; ++ gchar *markup; ++ label = GTK_LABEL (gtk_builder_get_object (dialog->priv->xml, CAPPLET_SESSION_SAVED_WIDGET_NAME)); ++ if (is_error) ++ markup = g_markup_printf_escaped ("<span foreground=\"red\">%s</span>", msg); ++ else ++ markup = g_markup_escape_text (msg, -1); ++ gtk_label_set_markup (label, markup); ++ g_free (markup); ++} ++ ++static void ++session_saved_cb (DBusGProxy *proxy, ++ DBusGProxyCall *call_id, ++ void *user_data) ++{ ++ gboolean res; ++ GsmPropertiesDialog *dialog = user_data; ++ ++ res = dbus_g_proxy_end_call (proxy, call_id, NULL, G_TYPE_INVALID); ++ if (res) ++ session_saved_message (dialog, _("Your session has been saved."), FALSE); ++ else ++ session_saved_message (dialog, _("Failed to save session"), TRUE); ++ ++ g_object_unref (proxy); ++} ++ ++static void + on_save_session_clicked (GtkWidget *widget, + GsmPropertiesDialog *dialog) + { +- g_debug ("Session saving is not implemented yet!"); ++ DBusGConnection *conn; ++ DBusGProxy *proxy; ++ DBusGProxyCall *call; ++ ++ conn = dbus_g_bus_get (DBUS_BUS_SESSION, NULL); ++ if (conn == NULL) { ++ session_saved_message (dialog, _("Could not connect to the session bus"), TRUE); ++ return; ++ } ++ ++ proxy = dbus_g_proxy_new_for_name (conn, GSM_SERVICE_DBUS, GSM_PATH_DBUS, GSM_INTERFACE_DBUS); ++ if (proxy == NULL) { ++ session_saved_message (dialog, _("Could not connect to the session manager"), TRUE); ++ return; ++ } ++ ++ call = dbus_g_proxy_begin_call (proxy, "SaveSession", session_saved_cb, dialog, NULL, G_TYPE_INVALID); ++ if (call == NULL) { ++ session_saved_message (dialog, _("Failed to save session"), TRUE); ++ g_object_unref (proxy); ++ return; ++ } + } + + static void +Index: gnome-session-2.28.0/configure.in +=================================================================== +--- gnome-session-2.28.0.orig/configure.in 2009-09-09 02:21:06.000000000 +0200 ++++ gnome-session-2.28.0/configure.in 2009-10-24 12:46:15.021757805 +0200 +@@ -59,6 +59,7 @@ PKG_CHECK_MODULES(GNOME_SESSION, + PKG_CHECK_MODULES(SESSION_PROPERTIES, + glib-2.0 >= $GLIB_REQUIRED + gtk+-2.0 >= $GTK_REQUIRED ++ dbus-glib-1 >= $DBUS_GLIB_REQUIRED + ) + + PKG_CHECK_MODULES(SPLASH, +Index: gnome-session-2.28.0/gnome-session/gsm-client.h +=================================================================== +--- gnome-session-2.28.0.orig/gnome-session/gsm-client.h 2009-04-19 20:26:52.000000000 +0200 ++++ gnome-session-2.28.0/gnome-session/gsm-client.h 2009-10-24 12:43:56.873765479 +0200 +@@ -92,6 +92,9 @@ struct _GsmClientClass + GError **error); + gboolean (*impl_stop) (GsmClient *client, + GError **error); ++ gboolean (*impl_request_save) (GsmClient *client, ++ guint flags, ++ GError **error); + GKeyFile * (*impl_save) (GsmClient *client, + GError **error); + }; +@@ -137,6 +140,9 @@ gboolean gsm_client_cancel_ + + void gsm_client_disconnected (GsmClient *client); + ++gboolean gsm_client_request_save (GsmClient *client, ++ guint flags, ++ GError **error); + GKeyFile *gsm_client_save (GsmClient *client, + GError **error); + /* exported to bus */ +Index: gnome-session-2.28.0/gnome-session/gsm-dbus-client.c +=================================================================== +--- gnome-session-2.28.0.orig/gnome-session/gsm-dbus-client.c 2009-04-19 20:26:52.000000000 +0200 ++++ gnome-session-2.28.0/gnome-session/gsm-dbus-client.c 2009-10-24 12:43:56.873765479 +0200 +@@ -413,6 +413,19 @@ gsm_dbus_client_finalize (GObject *objec + G_OBJECT_CLASS (gsm_dbus_client_parent_class)->finalize (object); + } + ++static gboolean ++dbus_client_request_save (GsmClient *client, ++ guint flags, ++ GError **error) ++{ ++ g_debug ("GsmDBusClient: sending save request to client with id %s", ++ gsm_client_peek_id (client)); ++ ++ /* FIXME: The protocol does not support this */ ++ ++ return FALSE; ++} ++ + static GKeyFile * + dbus_client_save (GsmClient *client, + GError **error) +@@ -665,6 +678,7 @@ gsm_dbus_client_class_init (GsmDBusClien + object_class->set_property = gsm_dbus_client_set_property; + object_class->dispose = gsm_dbus_client_dispose; + ++ client_class->impl_request_save = dbus_client_request_save; + client_class->impl_save = dbus_client_save; + client_class->impl_stop = dbus_client_stop; + client_class->impl_query_end_session = dbus_client_query_end_session; +Index: gnome-session-2.28.0/gnome-session/gsm-client.c +=================================================================== +--- gnome-session-2.28.0.orig/gnome-session/gsm-client.c 2009-04-19 20:26:52.000000000 +0200 ++++ gnome-session-2.28.0/gnome-session/gsm-client.c 2009-10-24 12:43:56.877763612 +0200 +@@ -510,6 +510,16 @@ gsm_client_disconnected (GsmClient *clie + g_signal_emit (client, signals[DISCONNECTED], 0); + } + ++gboolean ++gsm_client_request_save (GsmClient *client, ++ guint flags, ++ GError **error) ++{ ++ g_return_val_if_fail (GSM_IS_CLIENT (client), FALSE); ++ ++ return GSM_CLIENT_GET_CLASS (client)->impl_request_save (client, flags, error); ++} ++ + GKeyFile * + gsm_client_save (GsmClient *client, + GError **error) +Index: gnome-session-2.28.0/data/session-properties.ui +=================================================================== +--- gnome-session-2.28.0.orig/data/session-properties.ui 2009-10-24 12:55:01.946268673 +0200 ++++ gnome-session-2.28.0/data/session-properties.ui 2009-10-24 12:54:11.638268279 +0200 +@@ -148,6 +148,7 @@ + <property name="visible">True</property> + <child> + <object class="GtkButton" id="session_properties_save_button"> ++ <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <child> +@@ -191,6 +192,17 @@ + <property name="position">1</property> + </packing> + </child> ++ <child> ++ <object class="GtkLabel" id="session_properties_session_saved_label"> ++ <property name="visible">True</property> ++ <property name="wrap">True</property> ++ </object> ++ <packing> ++ <property name="expand">False</property> ++ <property name="fill">False</property> ++ <property name="position">2</property> ++ </packing> ++ </child> + </object> + <packing> + <property name="position">1</property> diff --git a/gnome-base/gnome-session/gnome-session-2.31.2.ebuild b/gnome-base/gnome-session/gnome-session-2.31.2.ebuild new file mode 100644 index 0000000..8020f60 --- /dev/null +++ b/gnome-base/gnome-session/gnome-session-2.31.2.ebuild @@ -0,0 +1,94 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/gnome-base/gnome-session/gnome-session-2.30.0-r1.ebuild,v 1.1 2010/06/13 18:13:42 pacho Exp $ + +EAPI="3" + +inherit eutils gnome2 + +DESCRIPTION="Gnome session manager" +HOMEPAGE="http://www.gnome.org/" +SRC_URI="${SRC_URI} + branding? ( mirror://gentoo/gentoo-splash.png )" + +LICENSE="GPL-2 LGPL-2 FDL-1.1" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~ia64 ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~x86-solaris" + +IUSE="branding doc ipv6 +splash elibc_FreeBSD" + +RDEPEND=">=dev-libs/glib-2.16 + >=x11-libs/gtk+-2.14.0:2 + >=dev-libs/dbus-glib-0.76 + >=gnome-base/gconf-2 + >=x11-libs/startup-notification-0.10 + || ( sys-power/upower >=sys-apps/devicekit-power-008 ) + elibc_FreeBSD? ( dev-libs/libexecinfo ) + + x11-libs/libSM + x11-libs/libICE + x11-libs/libX11 + x11-libs/libXau + x11-libs/libXext + x11-libs/libXrender + x11-libs/libXtst + x11-apps/xdpyinfo" +DEPEND="${RDEPEND} + >=dev-lang/perl-5 + >=sys-devel/gettext-0.10.40 + >=dev-util/pkgconfig-0.17 + >=dev-util/intltool-0.40 + !<gnome-base/gdm-2.20.4 + doc? ( + app-text/xmlto + dev-libs/libxslt )" +# gnome-base/gdm does not provide gnome.desktop anymore + +DOCS="AUTHORS ChangeLog NEWS README" + +pkg_setup() { + # TODO: convert libnotify to a configure option + G2CONF="${G2CONF} + --docdir=${EPREFIX}/usr/share/doc/${PF} + --with-default-wm=gnome-wm + $(use_enable splash) + $(use_enable doc docbook-docs) + $(use_enable ipv6)" + + if use branding && ! use splash; then + ewarn "You have disabled splash but enabled branding support" + ewarn "splash support has been auto-enabled for branding" + G2CONF="${G2CONF} --enable-splash" + fi +} + +src_prepare() { + gnome2_src_prepare + + # Patch for Gentoo Branding (bug #42687) + use branding && epatch "${FILESDIR}/${PN}-2.27.91-gentoo-branding.patch" + + # Fix shutdown/restart capability, upstream bug #549150 + # FIXME: Needs updating for 2.27.91 (package is currently masked) + #epatch "${FILESDIR}/${PN}-2.26.2-shutdown.patch" + + # Add "session saving" button back, upstream bug #575544 + epatch "${FILESDIR}/${PN}-2.30.0-session-saving-button.patch" + + # Fix intltoolize broken file, see upstream #577133 + sed "s:'\^\$\$lang\$\$':\^\$\$lang\$\$:g" -i po/Makefile.in.in || die "sed failed" +} + +src_install() { + gnome2_src_install + + dodir /etc/X11/Sessions + exeinto /etc/X11/Sessions + doexe "${FILESDIR}/Gnome" || die "doexe failed" + + # Our own splash for world domination + if use branding; then + insinto /usr/share/pixmaps/splash/ + doins "${DISTDIR}/gentoo-splash.png" || die "doins failed" + fi +} diff --git a/gnome-base/gnome-settings-daemon/Manifest b/gnome-base/gnome-settings-daemon/Manifest new file mode 100644 index 0000000..81cd7cb --- /dev/null +++ b/gnome-base/gnome-settings-daemon/Manifest @@ -0,0 +1,3 @@ +AUX gnome-settings-daemon-2.30.0-gst-vol-control-support.patch 27189 RMD160 77e44583894977b6255fba168d565c5948481401 SHA1 8db1dde75b1866619d6589e989ed27fc45050c50 SHA256 0858e7fdb97086f7f0a284d535d642c23f06fb7d9fc71d9f7477dc856439a158 +DIST gnome-settings-daemon-2.31.5.1.tar.bz2 1300231 RMD160 e38eb64e07c8900145f3d13ba13b5efd127d3d6b SHA1 86c007ea665c584565a5b559c5510dce74b401cf SHA256 5d186da08f0312ca33d55bfce1d627adf85595039a63c5cdd52c5966f25ddb2a +EBUILD gnome-settings-daemon-2.31.5.1.ebuild 2279 RMD160 ab23ee3e252f8fb367e967176aa6677e5989825d SHA1 e6b5d8deb6b33f0d8dedf15d486c9a1a5bb18a3f SHA256 e5e4e4353b724a8e3fc4912119beb45f282ceb82627d49fadc9f1406ab76f3eb diff --git a/gnome-base/gnome-settings-daemon/files/gnome-settings-daemon-2.30.0-gst-vol-control-support.patch b/gnome-base/gnome-settings-daemon/files/gnome-settings-daemon-2.30.0-gst-vol-control-support.patch new file mode 100644 index 0000000..57bb633 --- /dev/null +++ b/gnome-base/gnome-settings-daemon/files/gnome-settings-daemon-2.30.0-gst-vol-control-support.patch @@ -0,0 +1,856 @@ +From 32a79f1b04c352dc9b9c28c4bdd3d772eeff974d Mon Sep 17 00:00:00 2001 +From: Priit Laes <plaes@plaes.org> +Date: Wed, 31 Mar 2010 20:53:05 +0300 +Subject: [PATCH] GStreamer support in the volume applet; powered by the Gentoo GNOME team. + +https://bugzilla.gnome.org/show_bug.cgi?id=571145 +--- + configure.ac | 43 ++ + plugins/media-keys/Makefile.am | 15 +- + plugins/media-keys/cut-n-paste/Makefile.am | 34 ++- + .../cut-n-paste/gvc-gstreamer-acme-vol.c | 402 ++++++++++++++++++++ + .../cut-n-paste/gvc-gstreamer-acme-vol.h | 56 +++ + plugins/media-keys/gsd-media-keys-manager.c | 64 +++- + 6 files changed, 589 insertions(+), 25 deletions(-) + create mode 100644 plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.c + create mode 100644 plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.h + +diff --git a/configure.ac b/configure.ac +index 92f20c8..723a0cf 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -251,6 +251,48 @@ AM_CONDITIONAL(HAVE_PULSE, test "x$have_pulse" = "xtrue") + AC_SUBST(PULSE_CFLAGS) + AC_SUBST(PULSE_LIBS) + ++dnl ============================================== ++dnl GStreamer section ++dnl ============================================== ++GST_MAJORMINOR=auto ++ ++AC_ARG_ENABLE(gstreamer, ++AC_HELP_STRING([--enable-gstreamer],[use gstreamer if available (and optionally specify a version)]), ++[case "${enableval}" in ++ yes) ENABLE_GSTREAMER=yes ;; ++ 0.10) ENABLE_GSTREAMER=yes && GST_MAJORMINOR=0.10 ;; ++ no) ENABLE_GSTREAMER=no ;; ++ *) AC_MSG_ERROR([ ++ *** Bad value ${enableval} for --enable-gstreamer ++ *** Please use one of the following: ++ *** --enable-gstreamer=0.10 ++ ]) ;; ++esac], ++[ENABLE_GSTREAMER=yes]) dnl Default value ++ ++have_gstreamer=no ++if test "x$ENABLE_GSTREAMER" = "xyes"; then ++ GST_REQS=0.10.1.2 ++ PKGS="gstreamer-0.10 >= $GST_REQS gstreamer-plugins-base-0.10 >= $GST_REQS" ++ ++ PKG_CHECK_MODULES(GST, $PKGS, have_gstreamer=yes, ++ AC_MSG_RESULT([no])) ++ ++ if test "x$have_pulse" = "xtrue"; then ++ AC_MSG_ERROR([*** GStreamer & Pulseaudio both are selected ***]) ++ fi ++ ++ if test "x$have_gstreamer" = "xyes"; then ++ GST_LIBS="$GST_LIBS -lgstinterfaces-0.10 -lgstaudio-0.10" ++ AC_DEFINE(HAVE_GSTREAMER,1,[enable gstreamer]) ++ fi ++else ++ AC_MSG_NOTICE([*** GStreamer support disabled ***]) ++fi ++AM_CONDITIONAL(HAVE_GSTREAMER, test "x$have_gstreamer" = "xyes") ++AC_SUBST(GST_LIBS) ++AC_SUBST(GST_CFLAGS) ++ + # --------------------------------------------------------------------------- + # Enable Profiling + # --------------------------------------------------------------------------- +@@ -389,6 +431,7 @@ echo " + dbus-1 system.d dir: ${DBUS_SYS_DIR} + + Libnotify support: ${have_libnotify} ++ GStreamer support: ${have_gstreamer} + PulseAudio support: ${have_pulse} + Profiling support: ${enable_profiling} + " +diff --git a/plugins/media-keys/Makefile.am b/plugins/media-keys/Makefile.am +index f9a71cd..92b19f4 100644 +--- a/plugins/media-keys/Makefile.am ++++ b/plugins/media-keys/Makefile.am +@@ -3,13 +3,8 @@ context = actions + + NULL = + +-SUBDIRS = +-plugin_LTLIBRARIES = +- +-if HAVE_PULSE +-SUBDIRS += cut-n-paste +-plugin_LTLIBRARIES += libmedia-keys.la +-endif ++SUBDIRS = cut-n-paste ++plugin_LTLIBRARIES = libmedia-keys.la + + BUILT_SOURCES = \ + gsd-media-keys-manager-glue.h \ +@@ -100,7 +95,7 @@ libmedia_keys_la_LDFLAGS = \ + + libmedia_keys_la_LIBADD = \ + $(top_builddir)/plugins/common/libcommon.la \ +- $(top_builddir)/plugins/media-keys/cut-n-paste/libgvc.la \ ++ $(top_builddir)/plugins/media-keys/cut-n-paste/libgvc.la \ + $(SETTINGS_PLUGIN_LIBS) \ + $(XF86MISC_LIBS) \ + -lm +@@ -108,9 +103,7 @@ libmedia_keys_la_LIBADD = \ + plugin_in_files = \ + media-keys.gnome-settings-plugin.in + +-if HAVE_PULSE + plugin_DATA = $(plugin_in_files:.gnome-settings-plugin.in=.gnome-settings-plugin) +-endif + + noinst_PROGRAMS = \ + test-media-keys \ +@@ -176,9 +169,7 @@ test_media_keys_LDADD = \ + $(GST_LIBS) \ + -lm + +-if HAVE_PULSE + test_media_keys_LDADD += $(top_builddir)/plugins/media-keys/cut-n-paste/libgvc.la +-endif + + gtkbuilderdir = $(pkgdatadir) + gtkbuilder_DATA = \ +diff --git a/plugins/media-keys/cut-n-paste/Makefile.am b/plugins/media-keys/cut-n-paste/Makefile.am +index bc59a10..6486ac0 100644 +--- a/plugins/media-keys/cut-n-paste/Makefile.am ++++ b/plugins/media-keys/cut-n-paste/Makefile.am +@@ -4,16 +4,24 @@ noinst_LTLIBRARIES = libgvc.la + + INCLUDES = \ + $(WARN_CFLAGS) \ +- $(VOLUME_CONTROL_CFLAGS) \ +- $(PULSE_CFLAGS) \ + $(NULL) + + libgvc_la_LIBADD = \ +- $(VOLUME_CONTROL_LIBS) \ +- $(PULSE_LIBS) \ + $(NULL) + + libgvc_la_SOURCES = \ ++ $(NULL) ++ ++if HAVE_PULSE ++INCLUDES += \ ++ $(VOLUME_CONTROL_CFLAGS) \ ++ $(PULSE_CFLAGS) ++ ++libgvc_la_LIBADD += \ ++ $(VOLUME_CONTROL_LIBS) \ ++ $(PULSE_LIBS) ++ ++libgvc_la_SOURCES += \ + gvc-mixer-stream.h \ + gvc-mixer-stream.c \ + gvc-channel-map.h \ +@@ -31,8 +39,22 @@ libgvc_la_SOURCES = \ + gvc-mixer-event-role.h \ + gvc-mixer-event-role.c \ + gvc-mixer-control.h \ +- gvc-mixer-control.c \ +- $(NULL) ++ gvc-mixer-control.c ++endif ++ ++if HAVE_GSTREAMER ++INCLUDES += \ ++ $(SETTINGS_PLUGIN_CFLAGS) \ ++ $(AM_CFLAGS) \ ++ $(GST_CFLAGS) ++ ++libgvc_la_LIBADD += \ ++ $(GST_LIBS) ++ ++libgvc_la_SOURCES += \ ++ gvc-gstreamer-acme-vol.c \ ++ gvc-gstreamer-acme-vol.h ++endif + + MAINTAINERCLEANFILES = \ + *~ \ +diff --git a/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.c b/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.c +new file mode 100644 +index 0000000..8948480 +--- /dev/null ++++ b/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.c +@@ -0,0 +1,402 @@ ++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ ++ ++/* acme-volume.c ++ ++ Copyright (C) 2002, 2003 Bastien Nocera ++ Copyright (C) 2004 Novell, Inc. ++ Copyright (C) 2009 PERIER Romain <mrpouet@tuxfamily.org> ++ ++ The Gnome Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The Gnome Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the Gnome Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. ++ ++ Author: Bastien Nocera <hadess@hadess.net> ++ Jon Trowbridge <trow@ximian.com> ++*/ ++ ++#include "config.h" ++#include "gvc-gstreamer-acme-vol.h" ++ ++#include <gst/gst.h> ++#include <gst/audio/mixerutils.h> ++#include <gst/interfaces/mixer.h> ++#include <gst/interfaces/propertyprobe.h> ++ ++#include <gconf/gconf-client.h> ++ ++#include <string.h> ++ ++#define TIMEOUT 4 ++ ++#define DEFAULT_MIXER_DEVICE_KEY "/desktop/gnome/sound/default_mixer_device" ++#define DEFAULT_MIXER_TRACKS_KEY "/desktop/gnome/sound/default_mixer_tracks" ++ ++#define ACME_VOLUME_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), ACME_TYPE_VOLUME, AcmeVolumePrivate)) ++ ++struct AcmeVolumePrivate { ++ GstMixer *mixer; ++ GList *mixer_tracks; ++ guint timer_id; ++ gdouble volume; ++ gboolean mute; ++ GConfClient *gconf_client; ++}; ++ ++G_DEFINE_TYPE (AcmeVolume, acme_volume, G_TYPE_OBJECT) ++ ++static gboolean acme_volume_open (AcmeVolume *acme); ++static void acme_volume_close (AcmeVolume *acme); ++static gboolean acme_volume_close_real (AcmeVolume *self); ++ ++static gpointer acme_volume_object = NULL; ++ ++static void ++acme_volume_finalize (GObject *object) ++{ ++ AcmeVolume *self; ++ ++ g_return_if_fail (object != NULL); ++ g_return_if_fail (ACME_IS_VOLUME (object)); ++ ++ self = ACME_VOLUME (object); ++ ++ if (self->_priv->timer_id != 0) ++ g_source_remove (self->_priv->timer_id); ++ acme_volume_close_real (self); ++ ++ if (self->_priv->gconf_client != NULL) { ++ g_object_unref (self->_priv->gconf_client); ++ self->_priv->gconf_client = NULL; ++ } ++ ++ G_OBJECT_CLASS (acme_volume_parent_class)->finalize (object); ++} ++ ++void ++acme_volume_set_mute (AcmeVolume *self, gboolean val) ++{ ++ GList *t; ++ ++ g_return_if_fail(ACME_IS_VOLUME(self)); ++ g_return_if_fail(acme_volume_open(self)); ++ ++ for (t = self->_priv->mixer_tracks; t != NULL; t = t->next) { ++ GstMixerTrack *track = GST_MIXER_TRACK (t->data); ++ gst_mixer_set_mute (self->_priv->mixer, track, val); ++ } ++ self->_priv->mute = val; ++ acme_volume_close (self); ++} ++ ++static void ++update_state (AcmeVolume * self) ++{ ++ gint *volumes, n; ++ gdouble vol = 0; ++ GstMixerTrack *track = GST_MIXER_TRACK (self->_priv->mixer_tracks->data); ++ ++ /* update mixer by getting volume */ ++ volumes = g_new0 (gint, track->num_channels); ++ gst_mixer_get_volume (self->_priv->mixer, track, volumes); ++ for (n = 0; n < track->num_channels; n++) ++ vol += volumes[n]; ++ g_free (volumes); ++ vol /= track->num_channels; ++ vol = 100 * vol / (track->max_volume - track->min_volume); ++ ++ /* update mute flag, and volume if not muted */ ++ if (GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_MUTE)) ++ self->_priv->mute = TRUE; ++ self->_priv->volume = vol; ++} ++ ++gboolean ++acme_volume_get_mute (AcmeVolume *self) ++{ ++ g_return_val_if_fail(acme_volume_open(self), FALSE); ++ ++ update_state (self); ++ acme_volume_close (self); ++ ++ return self->_priv->mute; ++} ++ ++gint ++acme_volume_get_volume (AcmeVolume *self) ++{ ++ ++ g_return_val_if_fail(acme_volume_open(self), 0); ++ ++ update_state (self); ++ ++ acme_volume_close (self); ++ ++ return (gint) (self->_priv->volume + 0.5); ++} ++ ++void ++acme_volume_set_volume (AcmeVolume *self, gint val) ++{ ++ GList *t; ++ ++ g_return_if_fail(acme_volume_open(self)); ++ ++ val = CLAMP (val, 0, 100); ++ ++ for (t = self->_priv->mixer_tracks; t != NULL; t = t->next) { ++ GstMixerTrack *track = GST_MIXER_TRACK (t->data); ++ gint *volumes, n; ++ gdouble scale = (track->max_volume - track->min_volume) / 100.0; ++ gint vol = (gint) (val * scale + track->min_volume + 0.5); ++ ++ volumes = g_new (gint, track->num_channels); ++ for (n = 0; n < track->num_channels; n++) ++ volumes[n] = vol; ++ gst_mixer_set_volume (self->_priv->mixer, track, volumes); ++ g_free (volumes); ++ } ++ ++ /* update state */ ++ self->_priv->volume = val; ++ ++ acme_volume_close (self); ++} ++ ++void ++acme_volume_mute_toggle (AcmeVolume *self) ++{ ++ gboolean muted; ++ ++ g_return_if_fail (self != NULL); ++ g_return_if_fail (ACME_IS_VOLUME(self)); ++ ++ muted = acme_volume_get_mute(self); ++ acme_volume_set_mute(self, !muted); ++} ++ ++gint ++acme_volume_get_threshold (AcmeVolume *self) ++{ ++ GList *t; ++ gint steps = 101; ++ ++ g_return_val_if_fail(acme_volume_open(self), 1); ++ ++ for (t = self->_priv->mixer_tracks; t != NULL; t = t->next) { ++ GstMixerTrack *track = GST_MIXER_TRACK (t->data); ++ gint track_steps = track->max_volume - track->min_volume; ++ if (track_steps > 0 && track_steps < steps) ++ steps = track_steps; ++ } ++ ++ acme_volume_close (self); ++ ++ return 100 / steps + 1; ++} ++ ++static gboolean ++acme_volume_close_real (AcmeVolume *self) ++{ ++ if (self->_priv->mixer != NULL) ++ { ++ gst_element_set_state (GST_ELEMENT (self->_priv->mixer), GST_STATE_NULL); ++ gst_object_unref (GST_OBJECT (self->_priv->mixer)); ++ g_list_foreach (self->_priv->mixer_tracks, (GFunc) g_object_unref, NULL); ++ g_list_free (self->_priv->mixer_tracks); ++ self->_priv->mixer = NULL; ++ self->_priv->mixer_tracks = NULL; ++ } ++ ++ self->_priv->timer_id = 0; ++ return FALSE; ++} ++ ++/* ++ * _acme_set_mixer ++ * @mixer A pointer to mixer element ++ * @data A pointer to user data (AcmeVolume instance to be modified) ++ * @return A gboolean indicating success if Master track was found, failed otherwises. ++ */ ++static gboolean ++_acme_set_mixer(GstMixer *mixer, gpointer user_data) ++{ ++ const GList *tracks; ++ ++ for (tracks = gst_mixer_list_tracks (mixer); tracks != NULL; tracks = tracks->next) { ++ GstMixerTrack *track = GST_MIXER_TRACK (tracks->data); ++ ++ if (GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_MASTER)) { ++ AcmeVolume *self; ++ ++ self = ACME_VOLUME (user_data); ++ ++ self->_priv->mixer = mixer; ++ self->_priv->mixer_tracks = g_list_append (self->_priv->mixer_tracks, g_object_ref (track)); ++ return TRUE; ++ } ++ ++ continue; ++ } ++ ++ return FALSE; ++} ++ ++/* This is a modified version of code from gnome-media's gst-mixer */ ++static gboolean ++acme_volume_open (AcmeVolume *self) ++{ ++ gchar *mixer_device, **factory_and_device = NULL; ++ GList *mixer_list; ++ ++ if (self->_priv->timer_id != 0) { ++ g_source_remove (self->_priv->timer_id); ++ self->_priv->timer_id = 0; ++ return TRUE; ++ } ++ ++ mixer_device = gconf_client_get_string (self->_priv->gconf_client, DEFAULT_MIXER_DEVICE_KEY, NULL); ++ if (mixer_device != NULL) ++ factory_and_device = g_strsplit (mixer_device, ":", 2); ++ ++ if (factory_and_device != NULL && factory_and_device[0] != NULL) { ++ GstElement *element; ++ ++ element = gst_element_factory_make (factory_and_device[0], NULL); ++ ++ if (element != NULL) { ++ if (factory_and_device[1] != NULL && ++ g_object_class_find_property (G_OBJECT_GET_CLASS (element), "device")) ++ g_object_set (G_OBJECT (element), "device", factory_and_device[1], NULL); ++ gst_element_set_state (element, GST_STATE_READY); ++ ++ if (GST_IS_MIXER (element)) ++ self->_priv->mixer = GST_MIXER (element); ++ else { ++ gst_element_set_state (element, GST_STATE_NULL); ++ gst_object_unref (element); ++ } ++ } ++ } ++ ++ g_free (mixer_device); ++ g_strfreev (factory_and_device); ++ ++ if (self->_priv->mixer != NULL) { ++ const GList *m; ++ GSList *tracks, *t; ++ GError *error = NULL; ++ ++ /* Try to use tracks saved in GConf ++ Note: errors need to be treated , for example if the user set a non type list for this key ++ or if the elements type_list are not "matched" */ ++ tracks = gconf_client_get_list (self->_priv->gconf_client, DEFAULT_MIXER_TRACKS_KEY, ++ GCONF_VALUE_STRING, &error); ++ ++ if (error) { ++ g_warning("ERROR: %s\n", error->message); ++ g_error_free(error); ++ } ++ ++ /* We use these tracks ONLY if they are supported on the system with the following mixer */ ++ for (m = gst_mixer_list_tracks (self->_priv->mixer); m != NULL; m = m->next) { ++ GstMixerTrack *track = GST_MIXER_TRACK (m->data); ++ ++ for (t = tracks; t != NULL; t = t->next) ++ if (!strcmp (t->data, track->label)) ++ self->_priv->mixer_tracks = g_list_append (self->_priv->mixer_tracks, g_object_ref (track)); ++ ++ } ++ ++ g_slist_foreach (tracks, (GFunc)g_free, NULL); ++ g_slist_free (tracks); ++ ++ /* If no track stored in GConf is avaiable try to use Master track */ ++ if (self->_priv->mixer_tracks == NULL) { ++ for (m = gst_mixer_list_tracks (self->_priv->mixer); m != NULL; m = m->next) { ++ GstMixerTrack *track = GST_MIXER_TRACK (m->data); ++ ++ if (GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_MASTER)) { ++ self->_priv->mixer_tracks = g_list_append (self->_priv->mixer_tracks, g_object_ref (track)); ++ break; ++ } ++ } ++ } ++ ++ if (self->_priv->mixer_tracks != NULL) ++ return TRUE; ++ else { ++ gst_element_set_state (GST_ELEMENT (self->_priv->mixer), GST_STATE_NULL); ++ gst_object_unref (self->_priv->mixer); ++ } ++ } ++ ++ /* Go through all elements of a certain class and check whether ++ * they implement a mixer. If so, walk through the tracks and look ++ * for first one named "volume". ++ * ++ * We should probably do something intelligent if we don't find an ++ * appropriate mixer/track. But now we do something stupid... ++ * everything just becomes a no-op. ++ */ ++ mixer_list = gst_audio_default_registry_mixer_filter (_acme_set_mixer, ++ TRUE, ++ self); ++ ++ if (mixer_list == NULL) ++ return FALSE; ++ ++ /* do not unref the mixer as we keep the ref for self->priv->mixer */ ++ g_list_free (mixer_list); ++ ++ return TRUE; ++} ++ ++static void ++acme_volume_close (AcmeVolume *self) ++{ ++ self->_priv->timer_id = g_timeout_add_seconds (TIMEOUT, ++ (GSourceFunc) acme_volume_close_real, self); ++} ++ ++static void ++acme_volume_init (AcmeVolume *self) ++{ ++ self->_priv = ACME_VOLUME_GET_PRIVATE (self); ++ self->_priv->gconf_client = gconf_client_get_default (); ++} ++ ++static void ++acme_volume_class_init (AcmeVolumeClass *klass) ++{ ++ G_OBJECT_CLASS (klass)->finalize = acme_volume_finalize; ++ ++ gst_init (NULL, NULL); ++ ++ g_type_class_add_private (klass, sizeof (AcmeVolumePrivate)); ++} ++ ++/* acme_volume_new ++ * @return A singleton instance of type AcmeVolume ++ */ ++AcmeVolume * ++acme_volume_new (void) ++{ ++ if (acme_volume_object == NULL) { ++ acme_volume_object = g_object_new (ACME_TYPE_VOLUME, NULL); ++ return ACME_VOLUME(acme_volume_object); ++ } ++ g_object_ref(acme_volume_object); ++ return ACME_VOLUME(acme_volume_object); ++} ++ +diff --git a/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.h b/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.h +new file mode 100644 +index 0000000..c14ebc8 +--- /dev/null ++++ b/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.h +@@ -0,0 +1,56 @@ ++/* acme-volume.h ++ ++ Copyright (C) 2002, 2003 Bastien Nocera ++ Copyright (C) 2004 Novell, Inc. ++ Copyright (C) 2009 PERIER Romain <mrpouet@tuxfamily.org> ++ ++ The Gnome Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The Gnome Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the Gnome Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. ++ ++ Author: Bastien Nocera <hadess@hadess.net> ++ Jon Trowbridge <trow@ximian.com> ++ */ ++ ++#include <glib-object.h> ++ ++#define ACME_TYPE_VOLUME (acme_volume_get_type ()) ++#define ACME_VOLUME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ACME_TYPE_VOLUME, AcmeVolume)) ++#define ACME_VOLUME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ACME_TYPE_VOLUME, AcmeVolumeClass)) ++#define ACME_IS_VOLUME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ACME_TYPE_VOLUME)) ++#define ACME_VOLUME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ACME_TYPE_VOLUME, AcmeVolumeClass)) ++ ++typedef struct AcmeVolume AcmeVolume; ++typedef struct AcmeVolumeClass AcmeVolumeClass; ++typedef struct AcmeVolumePrivate AcmeVolumePrivate; ++ ++struct AcmeVolume { ++ GObject parent; ++ AcmeVolumePrivate *_priv; ++}; ++ ++struct AcmeVolumeClass { ++ GObjectClass parent; ++}; ++ ++GType acme_volume_get_type (void); ++AcmeVolume *acme_volume_new (void); ++void acme_volume_set_mute (AcmeVolume *self, gboolean val); ++void acme_volume_mute_toggle (AcmeVolume *self); ++gboolean acme_volume_get_mute (AcmeVolume *self); ++void acme_volume_set_volume (AcmeVolume *self, gint val); ++gint acme_volume_get_volume (AcmeVolume *self); ++gint acme_volume_get_threshold (AcmeVolume *self); ++ ++ +diff --git a/plugins/media-keys/gsd-media-keys-manager.c b/plugins/media-keys/gsd-media-keys-manager.c +index b563f73..64893b5 100644 +--- a/plugins/media-keys/gsd-media-keys-manager.c ++++ b/plugins/media-keys/gsd-media-keys-manager.c +@@ -53,6 +53,8 @@ + #ifdef HAVE_PULSE + #include <canberra-gtk.h> + #include "gvc-mixer-control.h" ++#elif defined(HAVE_GSTREAMER) ++#include "gvc-gstreamer-acme-vol.h" + #endif /* HAVE_PULSE */ + + #define GSD_DBUS_PATH "/org/gnome/SettingsDaemon" +@@ -78,6 +80,8 @@ struct GsdMediaKeysManagerPrivate + /* Volume bits */ + GvcMixerControl *volume; + GvcMixerStream *stream; ++#elif defined(HAVE_GSTREAMER) ++ AcmeVolume *volume; + #endif /* HAVE_PULSE */ + GtkWidget *dialog; + GConfClient *conf_client; +@@ -650,14 +654,16 @@ do_touchpad_action (GsdMediaKeysManager *manager) + gconf_client_set_bool (client, TOUCHPAD_ENABLED_KEY, !state, NULL); + } + +-#ifdef HAVE_PULSE ++#if defined(HAVE_PULSE) || defined(HAVE_GSTREAMER) + static void + update_dialog (GsdMediaKeysManager *manager, + guint vol, + gboolean muted, + gboolean sound_changed) + { ++#ifdef HAVE_PULSE + vol = (int) (100 * (double) vol / PA_VOLUME_NORM); ++#endif + vol = CLAMP (vol, 0, 100); + + dialog_init (manager); +@@ -668,12 +674,14 @@ update_dialog (GsdMediaKeysManager *manager, + GSD_MEDIA_KEYS_WINDOW_ACTION_VOLUME); + dialog_show (manager); + ++#ifdef HAVE_PULSE + if (sound_changed != FALSE && muted == FALSE) + ca_gtk_play_for_widget (manager->priv->dialog, 0, + CA_PROP_EVENT_ID, "audio-volume-change", + CA_PROP_EVENT_DESCRIPTION, "volume changed through key press", + CA_PROP_APPLICATION_ID, "org.gnome.VolumeControl", + NULL); ++#endif + } + + static void +@@ -685,7 +693,11 @@ do_sound_action (GsdMediaKeysManager *manager, + int vol_step; + gboolean sound_changed; + ++#ifdef HAVE_PULSE + if (manager->priv->stream == NULL) ++#else ++ if (manager->priv->volume == NULL) ++#endif + return; + + vol_step = gconf_client_get_int (manager->priv->conf_client, +@@ -695,20 +707,35 @@ do_sound_action (GsdMediaKeysManager *manager, + if (vol_step <= 0 || vol_step > 100) + vol_step = VOLUME_STEP; + ++ sound_changed = FALSE; ++#ifdef HAVE_PULSE + norm_vol_step = PA_VOLUME_NORM * vol_step / 100; + + /* FIXME: this is racy */ + vol = gvc_mixer_stream_get_volume (manager->priv->stream); + muted = gvc_mixer_stream_get_is_muted (manager->priv->stream); +- sound_changed = FALSE; +- ++#else ++ if (vol_step > 0) { ++ gint threshold = acme_volume_get_threshold (manager->priv->volume); ++ if (vol_step < threshold) ++ vol_step = threshold; ++ g_debug ("Using volume step of %d", vol_step); ++ } ++ vol = acme_volume_get_volume (manager->priv->volume); ++ muted = acme_volume_get_mute (manager->priv->volume); ++#endif + switch (type) { + case MUTE_KEY: + muted = !muted; +- gvc_mixer_stream_change_is_muted (manager->priv->stream, muted); + sound_changed = TRUE; ++#ifdef HAVE_PULSE ++ gvc_mixer_stream_change_is_muted (manager->priv->stream, muted); ++#else ++ acme_volume_mute_toggle (manager->priv->volume); ++#endif + break; + case VOLUME_DOWN_KEY: ++#ifdef HAVE_PULSE + if (!muted && (vol <= norm_vol_step)) { + muted = !muted; + vol = 0; +@@ -724,11 +751,17 @@ do_sound_action (GsdMediaKeysManager *manager, + sound_changed = TRUE; + } + } ++#else ++ if (!muted && (vol <= vol_step)) ++ acme_volume_mute_toggle (manager->priv->volume); ++ acme_volume_set_volume (manager->priv->volume, vol - vol_step); ++#endif + break; + case VOLUME_UP_KEY: + if (muted) { + muted = !muted; + if (vol == 0) { ++#ifdef HAVE_PULSE + vol = vol + norm_vol_step; + gvc_mixer_stream_change_is_muted (manager->priv->stream, muted); + if (gvc_mixer_stream_set_volume (manager->priv->stream, vol) != FALSE) { +@@ -739,7 +772,15 @@ do_sound_action (GsdMediaKeysManager *manager, + gvc_mixer_stream_change_is_muted (manager->priv->stream, muted); + sound_changed = TRUE; + } ++#else ++ /* We need to unmute otherwise vol is blocked (and muted) */ ++ acme_volume_set_mute (manager->priv->volume, FALSE); ++ } ++ acme_volume_set_volume (manager->priv->volume, vol + vol_step); ++ ++#endif + } else { ++#ifdef HAVE_PULSE + if (vol < MAX_VOLUME) { + if (vol + norm_vol_step >= MAX_VOLUME) { + vol = MAX_VOLUME; +@@ -751,13 +792,18 @@ do_sound_action (GsdMediaKeysManager *manager, + sound_changed = TRUE; + } + } ++#else ++ acme_volume_set_volume (manager->priv->volume, vol + vol_step); ++#endif /* HAVE_PULSE */ + } + break; + } + + update_dialog (manager, vol, muted, sound_changed); + } ++#endif /* defined(HAVE_PULSE) || defined(HAVE_GSTREAMER) */ + ++#ifdef HAVE_PULSE + static void + update_default_sink (GsdMediaKeysManager *manager) + { +@@ -793,7 +839,6 @@ on_control_default_sink_changed (GvcMixerControl *control, + { + update_default_sink (manager); + } +- + #endif /* HAVE_PULSE */ + + static gint +@@ -919,9 +964,9 @@ do_action (GsdMediaKeysManager *manager, + case MUTE_KEY: + case VOLUME_DOWN_KEY: + case VOLUME_UP_KEY: +-#ifdef HAVE_PULSE ++#if defined(HAVE_PULSE) || defined(HAVE_GSTREAMER) + do_sound_action (manager, type); +-#endif /* HAVE_PULSE */ ++#endif /* HAVE_PULSE || HAVE_GSTREAMER */ + break; + case POWER_KEY: + do_exit_action (manager); +@@ -1122,6 +1167,10 @@ gsd_media_keys_manager_start (GsdMediaKeysManager *manager, + gvc_mixer_control_open (manager->priv->volume); + + gnome_settings_profile_end ("gvc_mixer_control_new"); ++#elif defined(HAVE_GSTREAMER) ++ gnome_settings_profile_start ("acme_volume_new"); ++ manager->priv->volume = acme_volume_new (); ++ gnome_settings_profile_end ("acme_volume_new"); + #endif /* HAVE_PULSE */ + g_idle_add ((GSourceFunc) start_media_keys_idle_cb, manager); + +@@ -1199,6 +1248,7 @@ gsd_media_keys_manager_stop (GsdMediaKeysManager *manager) + g_object_unref (priv->stream); + priv->stream = NULL; + } ++#elif defined(HAVE_GSTREAMER) + + if (priv->volume) { + g_object_unref (priv->volume); +-- +1.7.0.3 + diff --git a/gnome-base/gnome-settings-daemon/gnome-settings-daemon-2.31.5.1.ebuild b/gnome-base/gnome-settings-daemon/gnome-settings-daemon-2.31.5.1.ebuild new file mode 100644 index 0000000..5666168 --- /dev/null +++ b/gnome-base/gnome-settings-daemon/gnome-settings-daemon-2.31.5.1.ebuild @@ -0,0 +1,87 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/gnome-base/gnome-settings-daemon/gnome-settings-daemon-2.30.1-r1.ebuild,v 1.1 2010/06/14 12:08:28 pacho Exp $ + +EAPI="2" + +inherit autotools eutils gnome2 + +DESCRIPTION="Gnome Settings Daemon" +HOMEPAGE="http://www.gnome.org" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~x86-solaris" +IUSE="debug libnotify policykit pulseaudio" + +RDEPEND=">=dev-libs/dbus-glib-0.74 + >=dev-libs/glib-2.18.0 + >=x11-libs/gtk+-2.90:3 + >=gnome-base/gconf-2.6.1 + >=gnome-base/libgnomekbd-2.31.2 + >=gnome-base/gnome-desktop-2.29.92:3 + + x11-libs/libX11 + x11-libs/libXi + x11-libs/libXrandr + x11-libs/libXext + x11-libs/libXxf86misc + >=x11-libs/libxklavier-5.0 + media-libs/fontconfig + + libnotify? ( >=x11-libs/libnotify-0.4.3 ) + policykit? ( + >=sys-auth/polkit-0.91 + >=dev-libs/dbus-glib-0.71 + >=sys-apps/dbus-1.1.2 ) + pulseaudio? ( + >=media-sound/pulseaudio-0.9.15 + media-libs/libcanberra[gtk] ) + !pulseaudio? ( + >=media-libs/gstreamer-0.10.1.2 + >=media-libs/gst-plugins-base-0.10.1.2 )" +DEPEND="${RDEPEND} + !<gnome-base/gnome-control-center-2.22 + sys-devel/gettext + >=dev-util/intltool-0.40 + >=dev-util/pkgconfig-0.19 + x11-proto/inputproto + x11-proto/xproto" + +# README is empty +DOCS="AUTHORS NEWS ChangeLog MAINTAINERS" + +pkg_setup() { + G2CONF="${G2CONF} + --disable-static + $(use_enable debug) + $(use_with libnotify) + $(use_enable policykit polkit) + $(use_enable pulseaudio pulse) + $(use_enable !pulseaudio gstreamer)" + + if use pulseaudio; then + elog "Building volume media keys using Pulseaudio" + else + elog "Building volume media keys using GStreamer" + fi +} + +src_prepare() { + gnome2_src_prepare + + # Restore gstreamer volume control support, upstream bug #571145 + epatch "${FILESDIR}/${PN}-2.30.0-gst-vol-control-support.patch" + + intltoolize --force --copy --automake || die "intltoolize failed" + eautoreconf +} + +pkg_postinst() { + gnome2_pkg_postinst + + if ! use pulseaudio; then + elog "GStreamer volume control support is a feature powered by Gentoo GNOME Team" + elog "PLEASE DO NOT report bugs upstream, report on https://bugs.gentoo.org instead" + fi +} diff --git a/gnome-base/gnome-shell/Manifest b/gnome-base/gnome-shell/Manifest index 8251db1..aac33dc 100644 --- a/gnome-base/gnome-shell/Manifest +++ b/gnome-base/gnome-shell/Manifest @@ -1,2 +1,4 @@ DIST gnome-shell-2.29.1.tar.bz2 669050 RMD160 4045a4bbc54dd2a49880e5de7e60b5230bed9596 SHA1 4420e050d284bd565ef5f573318b03361db472c8 SHA256 710b863c0beea45543f8057d31b028ec85e19efeedda2b964d784d6fc1729c0b +DIST gnome-shell-2.31.5.tar.bz2 720054 RMD160 24de2c5213229cccad382a28d219e6244dcc8d59 SHA1 ad86873f324ed1d434c42796c2ed7fb5c6ef4aa9 SHA256 f0193c51d0f934f26193f7522adbbb09e01da6eab977580f6f255bbeecb3a6d0 EBUILD gnome-shell-2.29.1.ebuild 1119 RMD160 e96e6d1b874b9ea4d4a98b0c476448c3b1470c9e SHA1 fea248fe526239879662d07595c868ef4e23dba6 SHA256 af172d91c61b68a1b12bb87ffc599d9145b7a8fc611268101cf0db5cf5caa705 +EBUILD gnome-shell-2.31.5.ebuild 1122 RMD160 85c2c3db8bebe469c113a3eb4ec3c8673dd5aec2 SHA1 7089017d9b4be4cdbf3cc3a1a4e6bc6b9014af5f SHA256 996335479238d8c6116128570dcd7aff43842aca118bf8e121ac9dfcc2d7688c diff --git a/gnome-base/gnome-shell/gnome-shell-2.31.5.ebuild b/gnome-base/gnome-shell/gnome-shell-2.31.5.ebuild new file mode 100644 index 0000000..77111c7 --- /dev/null +++ b/gnome-base/gnome-shell/gnome-shell-2.31.5.ebuild @@ -0,0 +1,51 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI="2" +GCONF_DEBUG="no" + +inherit gnome2 + +DESCRIPTION="Provides core UI functions for the GNOME 3 desktop" +HOMEPAGE="http://live.gnome.org/GnomeShell" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="" + +RDEPEND=">=dev-libs/glib-2.25.9 + >=x11-libs/gtk+-2.90.4:3[introspection] + >=media-libs/gstreamer-0.10.16 + >=media-libs/gst-plugins-base-0.10.16 + >=gnome-base/gnome-desktop-2.90:3 + >=dev-libs/gobject-introspection-0.6.11 + + dev-libs/dbus-glib + >=dev-libs/gjs-0.7 + x11-libs/pango[introspection] + >=media-libs/clutter-1.2.8[introspection] + dev-libs/libcroco:0.6 + + >=gnome-base/dconf-0.4.1 + gnome-base/gconf[introspection] + gnome-base/gnome-menus + gnome-base/librsvg + + x11-libs/startup-notification + x11-libs/libXfixes + >=x11-wm/mutter-2.31.5[introspection] + x11-apps/mesa-progs + + dev-python/dbus-python +" +DEPEND="${RDEPEND} + >=sys-devel/libtool-2.2.6 + >=dev-lang/python-2.5 + sys-devel/gettext + >=dev-util/pkgconfig-0.22 + >=dev-util/intltool-0.26 + gnome-base/gnome-common +" +DOCS="AUTHORS README" diff --git a/gnome-base/libgnomekbd/Manifest b/gnome-base/libgnomekbd/Manifest new file mode 100644 index 0000000..e39fede --- /dev/null +++ b/gnome-base/libgnomekbd/Manifest @@ -0,0 +1,2 @@ +DIST libgnomekbd-2.31.5.tar.bz2 409510 RMD160 18a4095a86b21708a954c620ead4994d5572545d SHA1 fb3bebc174986996859265fa119060e6db852601 SHA256 3a93b6af0f98e6754d6348a35f4059baa73067b8e7f87b6ddbc11aec990d04a8 +EBUILD libgnomekbd-2.31.5.ebuild 1086 RMD160 17b39e9e12e914efffea65d36ff1dad76ffecf99 SHA1 9762a2f617798a928440f8423af77568b1b27576 SHA256 24ff98b46cc8047021d13e777dc94b29e351c4e4101d7b9169c413d0a69b6a8b diff --git a/gnome-base/libgnomekbd/libgnomekbd-2.31.5.ebuild b/gnome-base/libgnomekbd/libgnomekbd-2.31.5.ebuild new file mode 100644 index 0000000..f7d3112 --- /dev/null +++ b/gnome-base/libgnomekbd/libgnomekbd-2.31.5.ebuild @@ -0,0 +1,39 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/gnome-base/libgnomekbd/libgnomekbd-2.30.1.ebuild,v 1.1 2010/06/13 16:47:46 pacho Exp $ + +EAPI="2" +GCONF_DEBUG="no" + +inherit eutils gnome2 multilib + +DESCRIPTION="Gnome keyboard configuration library" +HOMEPAGE="http://www.gnome.org" + +LICENSE="LGPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~x86-solaris" +IUSE="" + +RDEPEND=">=dev-libs/glib-2.18 + >=sys-apps/dbus-0.92 + >=dev-libs/dbus-glib-0.34 + >=gnome-base/gconf-2.14 + >=x11-libs/gtk+-2.18:2 + >=x11-libs/libxklavier-5.0" +DEPEND="${RDEPEND} + >=dev-util/intltool-0.35 + >=dev-util/pkgconfig-0.19" + +DOCS="AUTHORS ChangeLog NEWS README" + +pkg_setup() { + # Only user interaction required graphical tests at the time of 2.22.0 - not useful for us + G2CONF="${G2CONF} --disable-tests --disable-static" +} + +src_compile() { + # FreeBSD doesn't like -j, upstream? bug #???? + use x86-fbsd && MAKEOPTS="${MAKEOPTS} -j1" + gnome2_src_compile +} diff --git a/gnome-base/librsvg/Manifest b/gnome-base/librsvg/Manifest new file mode 100644 index 0000000..ff2d089 --- /dev/null +++ b/gnome-base/librsvg/Manifest @@ -0,0 +1,2 @@ +DIST librsvg-2.31.0.tar.bz2 514232 RMD160 c155e68855d7582e53f6b5d4183a6dd26023a994 SHA1 e95fde763313bef0f235c87d76975d190f348044 SHA256 320b61ef5e6d65624f3733a83134df012a4156ed7f7ae38a6ed19febe1bfa732 +EBUILD librsvg-2.31.0.ebuild 1534 RMD160 730b476a6b1ac89ba96bb9750de1f82c940d27bf SHA1 cd9cca8589f07f59f5b07d34a8476d4c302d02dc SHA256 2e08da9012e9bed3f4013fc7202745db2811fe515f7a4a0ce4047ee473eeebb9 diff --git a/gnome-base/librsvg/librsvg-2.31.0.ebuild b/gnome-base/librsvg/librsvg-2.31.0.ebuild new file mode 100644 index 0000000..0215bd0 --- /dev/null +++ b/gnome-base/librsvg/librsvg-2.31.0.ebuild @@ -0,0 +1,51 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/gnome-base/librsvg/librsvg-2.26.3.ebuild,v 1.3 2010/05/24 23:07:59 abcd Exp $ + +EAPI="3" +GCONF_DEBUG="no" + +inherit gnome2 multilib + +DESCRIPTION="Scalable Vector Graphics (SVG) rendering library" +HOMEPAGE="http://librsvg.sourceforge.net/" + +LICENSE="LGPL-2" +SLOT="2" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris" +IUSE="doc tools" + +# Forcing both gtk+2 and gtk+3 until automagic deps can be fixed +RDEPEND=">=media-libs/fontconfig-1.0.1 + >=media-libs/freetype-2 + >=x11-libs/gtk+-2.16:2 + >=x11-libs/gtk+-2.90:3 + >=dev-libs/glib-2.24 + >=x11-libs/cairo-1.2 + >=x11-libs/pango-1.10 + >=dev-libs/libxml2-2.4.7 + >=dev-libs/libcroco-0.6.1" +DEPEND="${RDEPEND} + >=dev-util/pkgconfig-0.12 + doc? ( >=dev-util/gtk-doc-1 )" +# >=dev-util/gtk-doc-am-1.13 needed by eautoreconf, feel free to drop it when not run it + +DOCS="AUTHORS ChangeLog README NEWS TODO" + +pkg_setup() { + # croco is forced on to respect SVG specification + G2CONF="${G2CONF} + --disable-static + $(use_enable tools) + --with-croco + --enable-pixbuf-loader + --enable-gtk-theme" +} + +pkg_postinst() { + gdk-pixbuf-query-loaders > "${EROOT}/usr/$(get_libdir)/gdk-pixbuf-2.0/2.10.0/loaders.cache" +} + +pkg_postrm() { + gdk-pixbuf-query-loaders > "${EROOT}/usr/$(get_libdir)/gdk-pixbuf-2.0/2.10.0/loaders.cache" +} diff --git a/gnome-base/nautilus/Manifest b/gnome-base/nautilus/Manifest new file mode 100644 index 0000000..3894534 --- /dev/null +++ b/gnome-base/nautilus/Manifest @@ -0,0 +1,3 @@ +AUX nautilus-2.27.4-change-reg-desktop-file-with-no-desktop.patch 1396 RMD160 7efbc47c5f4ac647a15a56a26f80898e8ec896d0 SHA1 24f5281406066fc7fd5ffda23a061144c3667fe1 SHA256 ae9f91dddbbe2d562f5f21786daec6468b8788ece48419cce438d13201eef251 +DIST nautilus-2.31.5.tar.bz2 6047804 RMD160 c741fbb86965bd3365c606a119cd1f9c3441500e SHA1 6def090e0b2a9ae3dc41cd3667965e10294ff002 SHA256 8a2a343376148fa7da92a0962078eb47ed377db9fde0b71c1ef5b561853cfbf8 +EBUILD nautilus-2.31.5.ebuild 2509 RMD160 c568bf2affb999e2bb3807bac607d1976928ad9a SHA1 6664df4f5c49d801ab4b6636e85910aa243b752b SHA256 9159f7e2ffc9bc9b7fdcc0bf63d46019aeeb8fb8e9811f41d7c9234b87237086 diff --git a/gnome-base/nautilus/files/nautilus-2.27.4-change-reg-desktop-file-with-no-desktop.patch b/gnome-base/nautilus/files/nautilus-2.27.4-change-reg-desktop-file-with-no-desktop.patch new file mode 100644 index 0000000..6bd3dee --- /dev/null +++ b/gnome-base/nautilus/files/nautilus-2.27.4-change-reg-desktop-file-with-no-desktop.patch @@ -0,0 +1,33 @@ +Gentoo bug 266398 +GNOME #580793 and #571417 + +Index: nautilus-2.26.2/src/nautilus-main.c +=================================================================== +--- nautilus-2.26.2.orig/src/nautilus-main.c 2009-04-29 17:02:32.709364982 +0200 ++++ nautilus-2.26.2/src/nautilus-main.c 2009-04-29 17:39:36.529860872 +0200 +@@ -391,9 +391,6 @@ main (int argc, char *argv[]) + + g_set_prgname ("nautilus"); + +- if (g_file_test (DATADIR "/applications/nautilus.desktop", G_FILE_TEST_EXISTS)) { +- egg_set_desktop_file (DATADIR "/applications/nautilus.desktop"); +- } + + context = g_option_context_new (_("\n\nBrowse the file system with the file manager")); + g_option_context_add_main_entries (context, options, NULL); +@@ -464,6 +461,15 @@ main (int argc, char *argv[]) + (NAUTILUS_PREFERENCES_DESKTOP_IS_HOME_DIR, TRUE); + } + ++ /* Which .desktop file contains the relevant session management ++ information? */ ++ if ((no_desktop || !eel_preferences_get_boolean (NAUTILUS_PREFERENCES_SHOW_DESKTOP)) ++ && g_file_test (DATADIR "/applications/nautilus-home.desktop", G_FILE_TEST_EXISTS)) { ++ egg_set_desktop_file (DATADIR "/applications/nautilus-home.desktop"); ++ } else if (g_file_test (DATADIR "/applications/nautilus.desktop", G_FILE_TEST_EXISTS)) { ++ egg_set_desktop_file (DATADIR "/applications/nautilus.desktop"); ++ } ++ + application = NULL; + + /* Do either the self-check or the real work. */ diff --git a/gnome-base/nautilus/nautilus-2.31.5.ebuild b/gnome-base/nautilus/nautilus-2.31.5.ebuild new file mode 100644 index 0000000..1436cee --- /dev/null +++ b/gnome-base/nautilus/nautilus-2.31.5.ebuild @@ -0,0 +1,92 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/gnome-base/nautilus/nautilus-2.30.1-r1.ebuild,v 1.1 2010/06/13 17:44:02 pacho Exp $ + +EAPI="2" +GCONF_DEBUG="no" + +inherit eutils gnome2 virtualx + +DESCRIPTION="A file manager for the GNOME desktop" +HOMEPAGE="http://www.gnome.org/projects/nautilus/" + +LICENSE="GPL-2 LGPL-2 FDL-1.1" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux" +IUSE="doc gnome introspection xmp" + +RDEPEND=">=dev-libs/glib-2.25.9 + gnome-base/gnome-desktop:3 + >=x11-libs/pango-1.1.2 + >=x11-libs/gtk+-2.90.5:3[introspection?] + >=dev-libs/libxml2-2.4.7 + >=media-libs/libexif-0.5.12 + >=gnome-base/gconf-2.0[introspection?] + x11-libs/libXext + x11-libs/libXrender + introspection? ( >=dev-libs/gobject-introspection-0.6.4 ) + xmp? ( >=media-libs/exempi-2 )" + +DEPEND="${RDEPEND} + >=dev-lang/perl-5 + sys-devel/gettext + >=dev-util/pkgconfig-0.9 + >=dev-util/intltool-0.40.1 + doc? ( >=dev-util/gtk-doc-1.4 )" +# For eautoreconf +# gnome-base/gnome-common +# dev-util/gtk-doc-am" + +PDEPEND="gnome? ( >=x11-themes/gnome-icon-theme-1.1.91 ) + >=gnome-base/gvfs-0.1.2" + +DOCS="AUTHORS ChangeLog* HACKING MAINTAINERS NEWS README THANKS TODO" + +pkg_setup() { + G2CONF="${G2CONF} + --disable-update-mimedb + --disable-packagekit + $(use_enable introspection) + $(use_enable xmp)" +} + +src_prepare() { + gnome2_src_prepare + + # FIXME: tarball generated with broken gtk-doc, revisit me. + if use doc; then + sed "/^TARGET_DIR/i \GTKDOC_REBASE=/usr/bin/gtkdoc-rebase" \ + -i gtk-doc.make || die "sed 1 failed" + else + sed "/^TARGET_DIR/i \GTKDOC_REBASE=/bin/true" \ + -i gtk-doc.make || die "sed 2 failed" + fi + + # Remove crazy CFLAGS + sed 's:-DG.*DISABLE_DEPRECATED::g' -i configure.in configure \ + || die "sed 4 failed" + + # Fix nautilus flipping-out with --no-desktop -- bug 266398 + epatch "${FILESDIR}/${PN}-2.27.4-change-reg-desktop-file-with-no-desktop.patch" +} + +src_test() { + addwrite "/root/.gnome2_private" + unset SESSION_MANAGER + unset ORBIT_SOCKETDIR + unset DBUS_SESSION_BUS_ADDRESS + Xemake check || die "Test phase failed" +} + +src_install() { + gnome2_src_install + find "${D}" -name "*.la" -delete || die "remove of la files failed" +} + +pkg_postinst() { + gnome2_pkg_postinst + + elog "nautilus can use gstreamer to preview audio files. Just make sure" + elog "to have the necessary plugins available to play the media type you" + elog "want to preview" +} |