From 0fcf6e1f404ebb7fae1d3c659334e12a78d89273 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Sun, 10 Oct 2010 22:34:48 +0000 Subject: [PATCH] * Added xfce4-mixer. This requires gstreamer and gst-plugins-base. * Allow gst-plugins-base to be built with a minimal set of dependencies (to prevent dependency bloat in Xfce). * Updated gstreamer. svn path=/nixpkgs/trunk/; revision=24207 --- .../xfce-4/applications/xfce4-mixer.nix | 38 +++++++++++++++++++ pkgs/desktops/xfce-4/default.nix | 2 + .../libraries/gstreamer/default.nix | 31 ++++----------- .../libraries/gstreamer/gnonlin/default.nix | 2 +- .../gstreamer/gst-ffmpeg/default.nix | 4 +- .../gstreamer/gst-plugins-base/default.nix | 28 +++++++++----- .../gstreamer/gst-plugins-good/default.nix | 8 ++-- .../libraries/gstreamer/gstreamer/default.nix | 17 +++++---- pkgs/top-level/all-packages.nix | 17 ++------- pkgs/top-level/release.nix | 1 + 10 files changed, 88 insertions(+), 60 deletions(-) create mode 100644 pkgs/desktops/xfce-4/applications/xfce4-mixer.nix diff --git a/pkgs/desktops/xfce-4/applications/xfce4-mixer.nix b/pkgs/desktops/xfce-4/applications/xfce4-mixer.nix new file mode 100644 index 000000000000..db28274be072 --- /dev/null +++ b/pkgs/desktops/xfce-4/applications/xfce4-mixer.nix @@ -0,0 +1,38 @@ +{ stdenv, fetchurl, pkgconfig, intltool, glib, gst_all, gtk +, libxfce4util, libxfcegui4, xfce4panel, xfconf, makeWrapper }: + +let + + # The usual Gstreamer plugins package has a zillion dependencies + # that we don't need for a simple mixer, so build a minimal package. + gstPluginsBase = gst_all.gstPluginsBase.override { + minimalDeps = true; + }; + +in + +stdenv.mkDerivation rec { + name = "xfce4-mixer-4.6.1"; + + src = fetchurl { + url = "http://archive.xfce.org/src/apps/xfce4-mixer/4.6/${name}.tar.bz2"; + sha1 = "e86163782fc4fc31671c7cb212d23d34106ad3af"; + }; + + buildInputs = + [ pkgconfig intltool glib gst_all.gstreamer gstPluginsBase gtk + libxfce4util libxfcegui4 xfce4panel xfconf makeWrapper + ]; + + postInstall = + '' + mkdir -p $out/nix-support + echo ${gstPluginsBase} > $out/nix-support/propagated-user-env-packages + ''; + + meta = { + homepage = http://www.xfce.org/projects/xfce4-mixer; + description = "A volume control application for the Xfce desktop environment"; + license = "GPLv2+"; + }; +} diff --git a/pkgs/desktops/xfce-4/default.nix b/pkgs/desktops/xfce-4/default.nix index 3d4abf9b3582..6f2eaf1b4bfe 100644 --- a/pkgs/desktops/xfce-4/default.nix +++ b/pkgs/desktops/xfce-4/default.nix @@ -57,6 +57,8 @@ rec { xfce4_power_manager = callPackage ./applications/xfce4-power-manager.nix { }; + xfce4mixer = callPackage ./applications/xfce4-mixer.nix { }; + #### ART xfce4icontheme = callPackage ./art/xfce4-icon-theme.nix { }; diff --git a/pkgs/development/libraries/gstreamer/default.nix b/pkgs/development/libraries/gstreamer/default.nix index 3bb8ea84a2af..37c88580a8ac 100644 --- a/pkgs/development/libraries/gstreamer/default.nix +++ b/pkgs/development/libraries/gstreamer/default.nix @@ -1,32 +1,17 @@ -args: with args; +{ callPackage, pkgs }: + rec { - gstreamer = makeOverridable (import ./gstreamer) { - inherit (args) fetchurl stdenv perl bison flex - pkgconfig python which gtkdoc glib libxml2; + gstreamer = callPackage ./gstreamer { + flex = pkgs.flex2535; }; - gstPluginsBase = makeOverridable (import ./gst-plugins-base) { - inherit gstreamer; - inherit (args) fetchurl stdenv pkgconfig python - libX11 libXv libXext alsaLib cdparanoia libogg libtheora - libvorbis freetype pango liboil gtk which gtkdoc; - }; + gstPluginsBase = callPackage ./gst-plugins-base { }; - gstPluginsGood = makeOverridable (import ./gst-plugins-good) { - inherit gstPluginsBase; - inherit (args) fetchurl stdenv pkgconfig aalib cairo flac hal - libjpeg zlib speex libpng libdv libcaca dbus libiec61883 - libavc1394 ladspaH taglib gdbm pulseaudio libsoup libcap - libtasn1; - }; + gstPluginsGood = callPackage ./gst-plugins-good { }; - gstFfmpeg = makeOverridable (import ./gst-ffmpeg) { - inherit fetchurl stdenv pkgconfig gstPluginsBase bzip2; - }; + gstFfmpeg = callPackage ./gst-ffmpeg { }; - gnonlin = makeOverridable (import ./gnonlin) { - inherit fetchurl stdenv pkgconfig gstreamer gstPluginsBase; - }; + gnonlin = callPackage ./gnonlin { }; # Header files are in include/${prefix}/ prefix = "gstreamer-0.10"; diff --git a/pkgs/development/libraries/gstreamer/gnonlin/default.nix b/pkgs/development/libraries/gstreamer/gnonlin/default.nix index 35f7f3b09860..907f569faed5 100644 --- a/pkgs/development/libraries/gstreamer/gnonlin/default.nix +++ b/pkgs/development/libraries/gstreamer/gnonlin/default.nix @@ -1,4 +1,4 @@ -args: with args; +{ stdenv, fetchurl, pkgconfig, gstPluginsBase, gstreamer }: stdenv.mkDerivation rec { name = "gnonlin-0.10.14"; diff --git a/pkgs/development/libraries/gstreamer/gst-ffmpeg/default.nix b/pkgs/development/libraries/gstreamer/gst-ffmpeg/default.nix index c45af907aaba..e8ea3f2152c7 100644 --- a/pkgs/development/libraries/gstreamer/gst-ffmpeg/default.nix +++ b/pkgs/development/libraries/gstreamer/gst-ffmpeg/default.nix @@ -1,4 +1,4 @@ -{ fetchurl, stdenv, pkgconfig, gstPluginsBase, bzip2 }: +{ fetchurl, stdenv, pkgconfig, gstPluginsBase, bzip2, liboil }: stdenv.mkDerivation rec { name = "gst-ffmpeg-0.10.9"; @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { propagatedBuildInputs = [ gstPluginsBase ]; - buildInputs = [ pkgconfig bzip2 ]; + buildInputs = [ pkgconfig bzip2 liboil ]; configureFlags = "--enable-ladspa"; diff --git a/pkgs/development/libraries/gstreamer/gst-plugins-base/default.nix b/pkgs/development/libraries/gstreamer/gst-plugins-base/default.nix index 37d0a058ffff..dc8d84886c0d 100644 --- a/pkgs/development/libraries/gstreamer/gst-plugins-base/default.nix +++ b/pkgs/development/libraries/gstreamer/gst-plugins-base/default.nix @@ -1,27 +1,37 @@ { fetchurl, stdenv, pkgconfig, python, gstreamer -, libX11, libXv, libXext, alsaLib, cdparanoia , libogg +, xlibs, alsaLib, cdparanoia, libogg , libtheora, libvorbis, freetype, pango -, liboil, gtk, which, gtkdoc }: +, liboil, glib +, # Whether to build no plugins that have external dependencies + # (except the ALSA plugin). + minimalDeps ? false +}: stdenv.mkDerivation rec { - name = "gst-plugins-base-0.10.26"; + name = "gst-plugins-base-0.10.30"; src = fetchurl { urls = [ "${meta.homepage}/src/gst-plugins-base/${name}.tar.bz2" "mirror://gentoo/distfiles/${name}.tar.bz2" ]; - sha256 = "0znxs3ls0hgc7vmllna3bazw217q1h9lmn5vhnclfadbb3flhvg0"; + sha256 = "1mw5n1w7l0hgyzf75srdxlh3knfgrmddbs2ah1f97s8b710qd4v3"; }; patchPhase = "sed -i 's@/bin/echo@echo@g' configure"; -# TODO : v4l, libvisual - propagatedBuildInputs = [gstreamer libX11 libXv libXext alsaLib cdparanoia - libogg libtheora libvorbis freetype pango liboil gtk which gtkdoc]; - - buildInputs = [pkgconfig python]; + # TODO : v4l, libvisual + buildInputs = + [ pkgconfig glib alsaLib ] + ++ stdenv.lib.optionals (!minimalDeps) + [ xlibs.xlibs xlibs.libXv cdparanoia libogg libtheora libvorbis + freetype pango liboil + ]; + propagatedBuildInputs = [ gstreamer ]; + + postInstall = "rm -rf $out/share/gtk-doc"; + meta = { homepage = http://gstreamer.freedesktop.org; diff --git a/pkgs/development/libraries/gstreamer/gst-plugins-good/default.nix b/pkgs/development/libraries/gstreamer/gst-plugins-good/default.nix index 2998c89a51ea..c90fbebee272 100644 --- a/pkgs/development/libraries/gstreamer/gst-plugins-good/default.nix +++ b/pkgs/development/libraries/gstreamer/gst-plugins-good/default.nix @@ -1,23 +1,23 @@ { fetchurl, stdenv, pkgconfig, gstPluginsBase, aalib, cairo , flac , hal, libjpeg, zlib, speex, libpng, libdv, libcaca, dbus , libiec61883, libavc1394, ladspaH, taglib, gdbm, pulseaudio -, libsoup, libcap, libtasn1 +, gnome, libcap, libtasn1, liboil }: stdenv.mkDerivation rec { - name = "gst-plugins-good-0.10.18"; + name = "gst-plugins-good-0.10.20"; src = fetchurl { urls = [ "${meta.homepage}/src/gst-plugins-good/${name}.tar.bz2" "mirror://gentoo/distfiles/${name}.tar.bz2" ]; - sha256 = "1fabn9h4z1p4h35nrw9fyjhcnl1z6cnikmpcb9q6fd312mr8hfqj"; + sha256 = "11x3irvfm9v96rkyh0ajdqd94y4xhshd98lb2zapf7wykq7pyjrw"; }; propagatedBuildInputs = [gstPluginsBase aalib cairo flac hal libjpeg zlib speex libpng libdv libcaca dbus.libs libiec61883 libavc1394 ladspaH - taglib gdbm pulseaudio libsoup libcap libtasn1]; + taglib gdbm pulseaudio gnome.libsoup libcap libtasn1 liboil]; buildInputs = [pkgconfig]; configureFlags = "--enable-ladspa"; diff --git a/pkgs/development/libraries/gstreamer/gstreamer/default.nix b/pkgs/development/libraries/gstreamer/gstreamer/default.nix index 91a699f564fa..0b43fa7d2c8d 100644 --- a/pkgs/development/libraries/gstreamer/gstreamer/default.nix +++ b/pkgs/development/libraries/gstreamer/gstreamer/default.nix @@ -1,25 +1,26 @@ -{ fetchurl, stdenv, perl, bison, flex, pkgconfig, python -, which, gtkdoc, glib, libxml2 }: +{ fetchurl, stdenv, perl, bison, flex, pkgconfig, glib, libxml2 }: stdenv.mkDerivation rec { - name = "gstreamer-0.10.26"; - # TODO: Remove gtkdoc dependency on next upgrade + name = "gstreamer-0.10.30"; src = fetchurl { urls = [ "${meta.homepage}/src/gstreamer/${name}.tar.bz2" "mirror://gentoo/distfiles/${name}.tar.bz2" ]; - sha256 = "1gah0ggfavl5z2wmwmwgs3h3ppwk6q1a6k0klk7zj1ph5n2isbc6"; + sha256 = "0ajkfkchwpk5zlcis19laqbv84mi61cn3cqbdbrpyy93whdk1vz8"; }; - buildInputs = [perl bison flex pkgconfig python which gtkdoc ]; - propagatedBuildInputs = [glib libxml2]; + buildInputs = [ perl bison flex pkgconfig ]; + propagatedBuildInputs = [ glib libxml2 ]; configureFlags = '' - --enable-failing-tests --localstatedir=/var --disable-gtk-doc --disable-docbook + --disable-examples --enable-failing-tests --localstatedir=/var --disable-gtk-doc --disable-docbook ''; + # Hm, apparently --disable-gtk-doc is ignored... + postInstall = "rm -rf $out/share/gtk-doc"; + meta = { homepage = http://gstreamer.freedesktop.org; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 64eb6a115628..10cf515f97eb 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2942,19 +2942,9 @@ let #GMP ex-satellite, so better keep it near gmp mpfr = callPackage ../development/libraries/mpfr { }; - gst_all = recurseIntoAttrs (import ../development/libraries/gstreamer { - inherit lib stdenv fetchurl perl bison pkgconfig libxml2 - python alsaLib cdparanoia libogg libvorbis libtheora freetype liboil - libjpeg zlib speex libpng libdv aalib cairo libcaca flac hal libiec61883 - dbus libavc1394 ladspaH taglib pulseaudio gdbm bzip2 which makeOverridable - libcap libtasn1; - flex = flex2535; - inherit (xorg) libX11 libXv libXext; - inherit (gtkLibs) glib pango gtk; - inherit (gnome) gnomevfs /* <- only passed for the no longer used older versions - it is deprecated and didn't build on amd64 due to samba dependency */ gtkdoc - libsoup; - }); + gst_all = recurseIntoAttrs + (let callPackage = newScope pkgs.gst_all; in + import ../development/libraries/gstreamer { inherit callPackage pkgs; }); gnet = callPackage ../development/libraries/gnet { }; @@ -2982,6 +2972,7 @@ let glib = gtkLibs.glib; gtk = gtkLibs.gtk; + pango = gtkLibs.pango; gtkLibs1x = recurseIntoAttrs (let callPackage = newScope pkgs.gtkLibs1x; in rec { diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix index 6b3fb2d808a6..09b3cd11522d 100644 --- a/pkgs/top-level/release.nix +++ b/pkgs/top-level/release.nix @@ -539,6 +539,7 @@ with (import ./release-lib.nix); thunar = linux; xfce4_power_manager = linux; xfce4icontheme = linux; + xfce4mixer = linux; xfce4panel = linux; xfce4session = linux; xfce4settings = linux;