* 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
This commit is contained in:
Eelco Dolstra 2010-10-10 22:34:48 +00:00
parent 71b6bc2be5
commit 0fcf6e1f40
10 changed files with 88 additions and 60 deletions

View File

@ -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+";
};
}

View File

@ -57,6 +57,8 @@ rec {
xfce4_power_manager = callPackage ./applications/xfce4-power-manager.nix { }; xfce4_power_manager = callPackage ./applications/xfce4-power-manager.nix { };
xfce4mixer = callPackage ./applications/xfce4-mixer.nix { };
#### ART #### ART
xfce4icontheme = callPackage ./art/xfce4-icon-theme.nix { }; xfce4icontheme = callPackage ./art/xfce4-icon-theme.nix { };

View File

@ -1,32 +1,17 @@
args: with args; { callPackage, pkgs }:
rec { rec {
gstreamer = makeOverridable (import ./gstreamer) { gstreamer = callPackage ./gstreamer {
inherit (args) fetchurl stdenv perl bison flex flex = pkgs.flex2535;
pkgconfig python which gtkdoc glib libxml2;
}; };
gstPluginsBase = makeOverridable (import ./gst-plugins-base) { gstPluginsBase = callPackage ./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;
};
gstPluginsGood = makeOverridable (import ./gst-plugins-good) { gstPluginsGood = callPackage ./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;
};
gstFfmpeg = makeOverridable (import ./gst-ffmpeg) { gstFfmpeg = callPackage ./gst-ffmpeg { };
inherit fetchurl stdenv pkgconfig gstPluginsBase bzip2;
};
gnonlin = makeOverridable (import ./gnonlin) { gnonlin = callPackage ./gnonlin { };
inherit fetchurl stdenv pkgconfig gstreamer gstPluginsBase;
};
# Header files are in include/${prefix}/ # Header files are in include/${prefix}/
prefix = "gstreamer-0.10"; prefix = "gstreamer-0.10";

View File

@ -1,4 +1,4 @@
args: with args; { stdenv, fetchurl, pkgconfig, gstPluginsBase, gstreamer }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gnonlin-0.10.14"; name = "gnonlin-0.10.14";

View File

@ -1,4 +1,4 @@
{ fetchurl, stdenv, pkgconfig, gstPluginsBase, bzip2 }: { fetchurl, stdenv, pkgconfig, gstPluginsBase, bzip2, liboil }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gst-ffmpeg-0.10.9"; name = "gst-ffmpeg-0.10.9";
@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
propagatedBuildInputs = [ gstPluginsBase ]; propagatedBuildInputs = [ gstPluginsBase ];
buildInputs = [ pkgconfig bzip2 ]; buildInputs = [ pkgconfig bzip2 liboil ];
configureFlags = "--enable-ladspa"; configureFlags = "--enable-ladspa";

View File

@ -1,27 +1,37 @@
{ fetchurl, stdenv, pkgconfig, python, gstreamer { fetchurl, stdenv, pkgconfig, python, gstreamer
, libX11, libXv, libXext, alsaLib, cdparanoia , libogg , xlibs, alsaLib, cdparanoia, libogg
, libtheora, libvorbis, freetype, pango , 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 { stdenv.mkDerivation rec {
name = "gst-plugins-base-0.10.26"; name = "gst-plugins-base-0.10.30";
src = fetchurl { src = fetchurl {
urls = [ urls = [
"${meta.homepage}/src/gst-plugins-base/${name}.tar.bz2" "${meta.homepage}/src/gst-plugins-base/${name}.tar.bz2"
"mirror://gentoo/distfiles/${name}.tar.bz2" "mirror://gentoo/distfiles/${name}.tar.bz2"
]; ];
sha256 = "0znxs3ls0hgc7vmllna3bazw217q1h9lmn5vhnclfadbb3flhvg0"; sha256 = "1mw5n1w7l0hgyzf75srdxlh3knfgrmddbs2ah1f97s8b710qd4v3";
}; };
patchPhase = "sed -i 's@/bin/echo@echo@g' configure"; patchPhase = "sed -i 's@/bin/echo@echo@g' configure";
# TODO : v4l, libvisual # TODO : v4l, libvisual
propagatedBuildInputs = [gstreamer libX11 libXv libXext alsaLib cdparanoia buildInputs =
libogg libtheora libvorbis freetype pango liboil gtk which gtkdoc]; [ pkgconfig glib alsaLib ]
++ stdenv.lib.optionals (!minimalDeps)
buildInputs = [pkgconfig python]; [ xlibs.xlibs xlibs.libXv cdparanoia libogg libtheora libvorbis
freetype pango liboil
];
propagatedBuildInputs = [ gstreamer ];
postInstall = "rm -rf $out/share/gtk-doc";
meta = { meta = {
homepage = http://gstreamer.freedesktop.org; homepage = http://gstreamer.freedesktop.org;

View File

@ -1,23 +1,23 @@
{ fetchurl, stdenv, pkgconfig, gstPluginsBase, aalib, cairo { fetchurl, stdenv, pkgconfig, gstPluginsBase, aalib, cairo
, flac , hal, libjpeg, zlib, speex, libpng, libdv, libcaca, dbus , flac , hal, libjpeg, zlib, speex, libpng, libdv, libcaca, dbus
, libiec61883, libavc1394, ladspaH, taglib, gdbm, pulseaudio , libiec61883, libavc1394, ladspaH, taglib, gdbm, pulseaudio
, libsoup, libcap, libtasn1 , gnome, libcap, libtasn1, liboil
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gst-plugins-good-0.10.18"; name = "gst-plugins-good-0.10.20";
src = fetchurl { src = fetchurl {
urls = [ urls = [
"${meta.homepage}/src/gst-plugins-good/${name}.tar.bz2" "${meta.homepage}/src/gst-plugins-good/${name}.tar.bz2"
"mirror://gentoo/distfiles/${name}.tar.bz2" "mirror://gentoo/distfiles/${name}.tar.bz2"
]; ];
sha256 = "1fabn9h4z1p4h35nrw9fyjhcnl1z6cnikmpcb9q6fd312mr8hfqj"; sha256 = "11x3irvfm9v96rkyh0ajdqd94y4xhshd98lb2zapf7wykq7pyjrw";
}; };
propagatedBuildInputs = [gstPluginsBase aalib cairo flac hal libjpeg propagatedBuildInputs = [gstPluginsBase aalib cairo flac hal libjpeg
zlib speex libpng libdv libcaca dbus.libs libiec61883 libavc1394 ladspaH 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]; buildInputs = [pkgconfig];
configureFlags = "--enable-ladspa"; configureFlags = "--enable-ladspa";

View File

@ -1,25 +1,26 @@
{ fetchurl, stdenv, perl, bison, flex, pkgconfig, python { fetchurl, stdenv, perl, bison, flex, pkgconfig, glib, libxml2 }:
, which, gtkdoc, glib, libxml2 }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gstreamer-0.10.26"; name = "gstreamer-0.10.30";
# TODO: Remove gtkdoc dependency on next upgrade
src = fetchurl { src = fetchurl {
urls = [ urls = [
"${meta.homepage}/src/gstreamer/${name}.tar.bz2" "${meta.homepage}/src/gstreamer/${name}.tar.bz2"
"mirror://gentoo/distfiles/${name}.tar.bz2" "mirror://gentoo/distfiles/${name}.tar.bz2"
]; ];
sha256 = "1gah0ggfavl5z2wmwmwgs3h3ppwk6q1a6k0klk7zj1ph5n2isbc6"; sha256 = "0ajkfkchwpk5zlcis19laqbv84mi61cn3cqbdbrpyy93whdk1vz8";
}; };
buildInputs = [perl bison flex pkgconfig python which gtkdoc ]; buildInputs = [ perl bison flex pkgconfig ];
propagatedBuildInputs = [glib libxml2]; propagatedBuildInputs = [ glib libxml2 ];
configureFlags = '' 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 = { meta = {
homepage = http://gstreamer.freedesktop.org; homepage = http://gstreamer.freedesktop.org;

View File

@ -2942,19 +2942,9 @@ let
#GMP ex-satellite, so better keep it near gmp #GMP ex-satellite, so better keep it near gmp
mpfr = callPackage ../development/libraries/mpfr { }; mpfr = callPackage ../development/libraries/mpfr { };
gst_all = recurseIntoAttrs (import ../development/libraries/gstreamer { gst_all = recurseIntoAttrs
inherit lib stdenv fetchurl perl bison pkgconfig libxml2 (let callPackage = newScope pkgs.gst_all; in
python alsaLib cdparanoia libogg libvorbis libtheora freetype liboil import ../development/libraries/gstreamer { inherit callPackage pkgs; });
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;
});
gnet = callPackage ../development/libraries/gnet { }; gnet = callPackage ../development/libraries/gnet { };
@ -2982,6 +2972,7 @@ let
glib = gtkLibs.glib; glib = gtkLibs.glib;
gtk = gtkLibs.gtk; gtk = gtkLibs.gtk;
pango = gtkLibs.pango;
gtkLibs1x = recurseIntoAttrs (let callPackage = newScope pkgs.gtkLibs1x; in rec { gtkLibs1x = recurseIntoAttrs (let callPackage = newScope pkgs.gtkLibs1x; in rec {

View File

@ -539,6 +539,7 @@ with (import ./release-lib.nix);
thunar = linux; thunar = linux;
xfce4_power_manager = linux; xfce4_power_manager = linux;
xfce4icontheme = linux; xfce4icontheme = linux;
xfce4mixer = linux;
xfce4panel = linux; xfce4panel = linux;
xfce4session = linux; xfce4session = linux;
xfce4settings = linux; xfce4settings = linux;