Merge master into stdenv-updates

Conflicts (simple):
	pkgs/development/tools/misc/binutils/default.nix
	pkgs/tools/package-management/disnix/default.nix
	pkgs/top-level/all-packages.nix
This commit is contained in:
Vladimír Čunát 2013-07-08 10:48:05 +02:00
commit 8ba92b8895
304 changed files with 7116 additions and 1620 deletions

View File

@ -237,12 +237,12 @@ fetchurl {
<function>fetchurl</function> will first try to download this file
from <link
xlink:href="http://nixos.org/tarballs/sha1/eb72f55e4a8bf08e8c6ef227c0ade3d068ba1082"/>.
xlink:href="http://tarballs.nixos.org/sha1/eb72f55e4a8bf08e8c6ef227c0ade3d068ba1082"/>.
If that file doesnt exist, it will try the original URL. In
general, the “content-addressed” location is
<replaceable>mirror</replaceable><literal>/</literal><replaceable>hash-type</replaceable><literal>/</literal><replaceable>hash</replaceable>.
There is currently only one content-addressable mirror (<link
xlink:href="http://nixos.org/tarballs"/>), but more can be
xlink:href="http://tarballs.nixos.org"/>), but more can be
specified in the <varname>hashedMirrors</varname> attribute in
<filename>pkgs/build-support/fetchurl/mirrors.nix</filename>, or by
setting the <envar>NIX_HASHED_MIRRORS</envar> environment variable

View File

@ -61,7 +61,7 @@ in
meta = {
homepage = "http://lly.org/~rcw/abcde/page/";
licence = "GPLv2+";
license = "GPLv2+";
description = "A Better CD Encoder (ABCDE)";
longDescription = ''

View File

@ -19,7 +19,7 @@ in
meta = {
homepage = http://lly.org/~rcw/cd-discid/;
licence = "GPLv2+";
license = "GPLv2+";
description = "cd-discid, a command-line utility to retrieve a disc's CDDB ID";
longDescription = ''
@ -28,4 +28,4 @@ in
abcde), but can be used for any purpose requiring CDDB data.
'';
};
}
}

View File

@ -5,12 +5,11 @@
pythonPackages.buildPythonPackage rec {
name = "mopidy-${version}";
version = "0.14.1";
version = "0.14.2";
src = fetchgit {
url = "https://github.com/mopidy/mopidy.git";
rev = "refs/tags/v${version}";
sha256 = "0lgd8dpiri9m6sigpf1g1qzvz25lkb38lskgwvb8j7x64y104z0v";
url = "https://github.com/mopidy/mopidy/archive/v${version}.tar.gz";
sha256 = "0fqx7lk9g61d744b951cwx0szqbyji58dhw2ravnq9785nkhi7i4";
};
propagatedBuildInputs = with pythonPackages; [

View File

@ -1,4 +1,5 @@
{stdenv, fetchurl, ncurses, curl, taglib, fftw, mpd_clientlib, pkgconfig}:
{ stdenv, fetchurl, ncurses, curl, taglib, fftw, mpd_clientlib, pkgconfig
, libiconvOrEmpty }:
stdenv.mkDerivation rec {
version = "0.5.10";
@ -9,14 +10,15 @@ stdenv.mkDerivation rec {
sha256 = "ff6d5376a2d9caba6f5bb78e68af77cefbdb2f04cd256f738e39f8ac9a79a4a8";
};
buildInputs = [ ncurses curl taglib fftw mpd_clientlib pkgconfig ];
buildInputs = [ ncurses curl taglib fftw mpd_clientlib pkgconfig ]
++ libiconvOrEmpty;
meta = {
meta = with stdenv.lib; {
description = "Curses-based interface for MPD (music player daemon)";
homepage = http://unkart.ovh.org/ncmpcpp/;
license = "GPLv2+";
maintainers = [ stdenv.lib.maintainers.mornfall ];
platforms = stdenv.lib.platforms.all;
homepage = http://unkart.ovh.org/ncmpcpp/;
license = licenses.gpl2Plus;
maintainers = with maintainers; [ lovek323 mornfall ];
platforms = platforms.all;
};
}

View File

@ -1,9 +1,9 @@
{ fetchurl, stdenv, dpkg, xlibs, qt4, alsaLib, makeWrapper, openssl, freetype, glib, pango, cairo, atk, gdk_pixbuf, gtk, cups, nspr, nss, libpng12, GConf, libgcrypt, chromium, sqlite, gst_plugins_base, gstreamer }:
{ fetchurl, stdenv, dpkg, xlibs, qt4, alsaLib, makeWrapper, openssl, freetype, glib, pango, cairo, atk, gdk_pixbuf, gtk, cups, nspr, nss, libpng, GConf, libgcrypt, chromium, sqlite, gst_plugins_base, gstreamer }:
assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux";
let
version = "0.9.0.133";
version = "0.9.1.55";
qt4webkit =
if stdenv.system == "i686-linux" then
fetchurl {
@ -25,13 +25,13 @@ stdenv.mkDerivation {
src =
if stdenv.system == "i686-linux" then
fetchurl {
url = "http://repository.spotify.com/pool/non-free/s/spotify/spotify-client_${version}.gd18ed58.259-1_i386.deb";
sha256 = "15kbwll63pm99262f7xq1z0c5bwmk5cz46pkh8xd5xsqxlsvvv1n";
url = "http://repository.spotify.com/pool/non-free/s/spotify/spotify-client_${version}.gbdd3b79.203-1_i386.deb";
sha256 = "1sls4gb85700126bbk4sz73ipa2rjcinmpnsi78q0bsdj365y2wc";
}
else if stdenv.system == "x86_64-linux" then
fetchurl {
url = "http://repository.spotify.com/pool/non-free/s/spotify/spotify-client_${version}.gd18ed58.259-1_amd64.deb";
sha256 = "0l3nikhf4hyj6z7639s668kd806730va005rwqcxvymxddcbcp03";
url = "http://repository.spotify.com/pool/non-free/s/spotify/spotify-client_${version}.gbdd3b79.203-1_amd64.deb";
sha256 = "10pzj3p8bjbxh9nnm4qc5s1hn9nh7hgh3vbwm0xblj9rn71wl03y";
}
else throw "Spotify not supported on this platform.";
@ -73,7 +73,7 @@ stdenv.mkDerivation {
mkdir -p $out/libexec/spotify
gcc -shared ${./preload.c} -o $preload -ldl -DOUT=\"$out\" -fPIC
wrapProgram $out/bin/spotify --set LD_PRELOAD $preload --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ GConf libpng12 cups libgcrypt sqlite gst_plugins_base gstreamer]}:$out/lib"
wrapProgram $out/bin/spotify --set LD_PRELOAD $preload --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ GConf libpng cups libgcrypt sqlite gst_plugins_base gstreamer]}:$out/lib"
''; # */
dontStrip = true;

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, cmake, pkgconfig, x11, libjpeg, libpng12, libXmu
{ stdenv, fetchurl, cmake, pkgconfig, x11, libjpeg, libpng, libXmu
, fontconfig, freetype, pam, dbus_libs }:
stdenv.mkDerivation rec {
@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
];
buildInputs =
[ cmake pkgconfig x11 libjpeg libpng12 libXmu fontconfig freetype
[ cmake pkgconfig x11 libjpeg libpng libXmu fontconfig freetype
pam dbus_libs
];

View File

@ -44,7 +44,7 @@ EOF
doCheck = true;
meta = {
meta = with stdenv.lib; {
description = "GNU Emacs 24, the extensible, customizable text editor";
longDescription = ''
@ -67,7 +67,7 @@ EOF
homepage = "http://www.gnu.org/software/emacs/";
license = "GPLv3+";
maintainers = with stdenv.lib.maintainers; [ ludo simons chaoflow ];
platforms = stdenv.lib.platforms.all;
maintainers = with maintainers; [ chaoflow lovek323 ludo simons ];
platforms = platforms.all;
};
}

View File

@ -2,7 +2,7 @@
name = "cua-mode-2.10";
builder = ./builder.sh;
src = fetchurl {
url = http://nixos.org/tarballs/cua-mode-2.10.el;
url = http://tarballs.nixos.org/cua-mode-2.10.el;
md5 = "5bf5e43f5f38c8383868c7c6c5baca09";
};
}

View File

@ -1,11 +1,11 @@
{stdenv, fetchurl, kdelibs, cmake, gettext }:
stdenv.mkDerivation rec {
name = "kile-2.1.2";
name = "kile-2.1.3";
src = fetchurl {
url = "mirror://sourceforge/kile/${name}.tar.bz2";
sha256 = "0nx5fmjrxrndnzvknxnybd8qh15jzfxzbny2rljq3amjw02y9lc2";
sha256 = "18nfi37s46v9xav7vyki3phasddgcy4m7nywzxis198vr97yqqx0";
};
nativeBuildInputs = [ cmake gettext ];

View File

@ -10,7 +10,7 @@ stdenv.mkDerivation {
builder = ./builder.sh;
src = fetchurl {
url = http://nixos.org/tarballs/monodevelop-0.6-pre2315.tar.bz2;
url = http://tarballs.nixos.org/monodevelop-0.6-pre2315.tar.bz2;
md5 = "8c33df5629b0676b7ab552854c1de6fd";
};

View File

@ -5,7 +5,7 @@ stdenv.mkDerivation {
builder = ./builder.sh;
src = fetchurl {
url = http://nixos.org/tarballs/monodoc-1.0.6.tar.gz;
url = http://tarballs.nixos.org/monodoc-1.0.6.tar.gz;
md5 = "f2fc27e8e4717d90dc7efa2450625693";
};

View File

@ -40,6 +40,15 @@ composableDerivation {
}.src;
};
# if darwin support is enabled, we want to make sure we're not building with
# OS-installed python framework
preConfigure
= stdenv.lib.optionalString
(stdenv.isDarwin && (config.vim.darwin or true)) ''
sed -i "5387,5390d" src/auto/configure
sed -i "5394d" src/auto/configure
'';
configureFlags
= [ "--enable-gui=${args.gui}" "--with-features=${args.features}" ];
@ -58,7 +67,19 @@ composableDerivation {
// edf { name = "xsmp_interact"; } #Disable XSMP interaction
// edf { name = "mzscheme"; } #Include MzScheme interpreter.
// edf { name = "perl"; feat = "perlinterp"; enable = { nativeBuildInputs = [perl]; };} #Include Perl interpreter.
// edf { name = "python"; feat = "pythoninterp"; enable = { nativeBuildInputs = [python]; }; } #Include Python interpreter.
// edf {
name = "python";
feat = "pythoninterp";
enable = {
nativeBuildInputs = [ python ];
} // lib.optionalAttrs stdenv.isDarwin {
configureFlags
= [ "--enable-pythoninterp=yes"
"--with-python-config-dir=${python}/lib" ];
};
}
// edf { name = "tcl"; enable = { nativeBuildInputs = [tcl]; }; } #Include Tcl interpreter.
// edf { name = "ruby"; feat = "rubyinterp"; enable = { nativeBuildInputs = [ruby]; };} #Include Ruby interpreter.
// edf { name = "lua" ; feat = "luainterp"; enable = { nativeBuildInputs = [lua]; configureFlags = ["--with-lua-prefix=${args.lua}"];};}
@ -104,7 +125,7 @@ composableDerivation {
// edf "gtktest" "gtktest" { } #Do not try to compile and run a test GTK program
*/
postInstall = if stdenv.isLinux then ''
postInstall = stdenv.lib.optionalString stdenv.isLinux ''
rpath=`patchelf --print-rpath $out/bin/vim`;
for i in $nativeBuildInputs; do
echo adding $i/lib
@ -113,7 +134,7 @@ composableDerivation {
echo $nativeBuildInputs
echo $rpath
patchelf --set-rpath $rpath $out/bin/{vim,gvim}
'' else "";
'';
dontStrip = 1;

View File

@ -4,7 +4,7 @@ stdenv.mkDerivation {
name = "batik-1.6";
builder = ./builder.sh;
src = fetchurl {
url = http://nixos.org/tarballs/batik-1.6.zip;
url = http://tarballs.nixos.org/batik-1.6.zip;
md5 = "edff288fc64f968ff96ca49763d50f3c";
};

View File

@ -8,12 +8,12 @@
assert stdenv ? glibc;
stdenv.mkDerivation rec {
version = "1.2";
version = "1.2.2";
name = "darktable-${version}";
src = fetchurl {
url = "mirror://sourceforge/darktable/darktable/1.2/darktable-${version}.tar.xz";
sha256 = "0l2lrly46nda7b2y4gskqqxaajia34g487bgjcpd5ysxbhmmhlnw";
sha256 = "0nf85wjhlisbgwkfkc1wb8y7dpnx3v8zk9g3ghbd51gi7s62x40j";
};
buildInputs =

View File

@ -12,7 +12,7 @@ stdenv.mkDerivation {
inherit makeWrapper;
src = fetchurl {
url = http://nixos.org/tarballs/f-spot-0.0.10.tar.bz2;
url = http://tarballs.nixos.org/f-spot-0.0.10.tar.bz2;
md5 = "19cc6e067ccc261b0502ff6189b79832";
};

View File

@ -1,21 +1,21 @@
{ stdenv, fetchurl, pkgconfig, intltool, babl, gegl, gtk, glib, gdk_pixbuf
, pango, cairo, freetype, fontconfig, lcms2, libpng, libjpeg, poppler, libtiff
, pango, cairo, freetype, fontconfig, lcms, libpng, libjpeg, poppler, libtiff
, webkit, libmng, librsvg, libwmf, zlib, libzip, ghostscript, aalib, jasper
, python, pygtk, libart_lgpl, libexif, gettext, xlibs }:
stdenv.mkDerivation rec {
name = "gimp-2.8.4";
src = fetchurl {
url = "ftp://ftp.gimp.org/pub/gimp/v2.8/${name}.tar.bz2";
md5 = "392592e8755d046317878d226145900f";
};
buildInputs =
buildInputs =
[ pkgconfig intltool babl gegl gtk glib gdk_pixbuf pango cairo
freetype fontconfig lcms2 libpng libjpeg poppler libtiff webkit
freetype fontconfig lcms libpng libjpeg poppler libtiff webkit
libmng librsvg libwmf zlib libzip ghostscript aalib jasper
python pygtk libart_lgpl libexif gettext
python pygtk libart_lgpl libexif gettext
];
passthru = { inherit gtk; }; # probably its a good idea to use the same gtk in plugins ?

View File

@ -1,19 +1,19 @@
{ stdenv, fetchurl, pkgconfig, gtk, freetype
, fontconfig, libart_lgpl, libtiff, libjpeg, libpng12, libexif, zlib, perl
, fontconfig, libart_lgpl, libtiff, libjpeg, libpng, libexif, zlib, perl
, perlXMLParser, python, pygtk, gettext, xlibs, intltool, babl_0_0_22, gegl_0_0_22
}:
stdenv.mkDerivation rec {
name = "gimp-2.6.12";
src = fetchurl {
url = "ftp://ftp.gtk.org/pub/gimp/v2.6/${name}.tar.bz2";
sha256 = "0qpcgaa4pdqqhyyy8vjvzfflxgsrrs25zk79gixzlnbzq3qwjlym";
};
buildInputs = [
pkgconfig gtk freetype fontconfig
libart_lgpl libtiff libjpeg libpng12 libexif zlib perl
libart_lgpl libtiff libjpeg libpng libexif zlib perl
perlXMLParser python pygtk gettext intltool babl_0_0_22 gegl_0_0_22
];

View File

@ -4,11 +4,11 @@
stdenv.mkDerivation rec {
name = "oiio-${version}";
version = "1.1.8";
version = "1.1.12";
src = fetchurl {
url = "https://github.com/OpenImageIO/oiio/archive/Release-${version}.zip";
sha256 = "08a6qhplzs8kianqb1gjgrndg81h3il5531jn9g6i4940b1xispg";
sha256 = "196iq15waa2yyryiwhf6ynlpqnpknm4cc4azakg01xs70yiphsfl";
};
buildInputs = [
@ -31,4 +31,4 @@ stdenv.mkDerivation rec {
maintainers = [ maintainers.goibhniu ];
platforms = platforms.linux;
};
}
}

View File

@ -1,19 +1,23 @@
{stdenv, fetchurl, flvstreamer, ffmpeg, makeWrapper, perl}:
stdenv.mkDerivation {
name = "get_iplayer-2.80";
{stdenv, fetchurl, flvstreamer, ffmpeg, makeWrapper, perl, buildPerlPackage, perlPackages, vlc, rtmpdump}:
buildPerlPackage {
name = "get_iplayer-2.83";
buildInputs = [makeWrapper perl];
propagatedBuildInputs = with perlPackages; [HTMLParser HTTPCookies LWP];
preConfigure = "touch Makefile.PL";
doCheck = false;
installPhase = ''
mkdir -p $out/bin
cp get_iplayer $out/bin
wrapProgram $out/bin/get_iplayer --suffix PATH ${ffmpeg}/bin:${flvstreamer}/bin
sed -i 's|^update_script|#update_script|' $out/bin/get_iplayer
wrapProgram $out/bin/get_iplayer --suffix PATH : ${ffmpeg}/bin:${flvstreamer}/bin:${vlc}/bin:${rtmpdump}/bin
'';
src = fetchurl {
url = ftp://ftp.infradead.org/pub/get_iplayer/get_iplayer-2.80.tar.gz;
sha256 = "1hnadryyzca3bv1hfk2q3np9ihwvyxa3prwcrply6ywy4vnayjf8";
url = ftp://ftp.infradead.org/pub/get_iplayer/get_iplayer-2.83.tar.gz;
sha256 = "169zji0rr3z5ng6r4cyzvs89779m4iklln9gsqpryvm81ipalfga";
};
}

View File

@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
description = "WYSIWYM frontend for LaTeX, DocBook, etc.";
homepage = "http://www.lyx.org";
license = "GPL2";
maintainers = [ stdenv.lib.maintainers.neznalek ];
maintainers = [ stdenv.lib.maintainers.vcunat ];
platforms = stdenv.lib.platforms.linux;
};
}

View File

@ -1,11 +1,13 @@
{ stdenv, fetchurl, kdelibs, kdebase_workspace, gettext }:
let version = "0.11";
in
stdenv.mkDerivation rec {
name = "rsibreak-0.11";
name = "rsibreak-${version}";
src = fetchurl {
url = "${meta.homepage}/files/${name}.tar.bz2";
sha256 = "1yrf73r8mixskh8b531wb8dfs9z7rrw010xsrflhjhjmqh94h8mw";
url = "mirror://debian/pool/main/r/rsibreak/rsibreak_${version}.orig.tar.gz";
sha256 = "0g27aswh8iz5v67v1wkjny4p100vs2gm0lw0qzfkg6sw1pb4i519";
};
nativeBuildInputs = [ gettext ];
@ -13,8 +15,8 @@ stdenv.mkDerivation rec {
buildInputs = [ kdelibs kdebase_workspace ];
meta = {
homepage = http://www.rsibreak.org/;
description = "Repetitive Strain Injury prevention";
homepage = http://userbase.kde.org/RSIBreak; # http://www.rsibreak.org/ is down since 2011
description = "Utility to help prevent repetitive strain injury for KDE 4";
inherit (kdelibs.meta) platforms maintainers;
};
}

View File

@ -0,0 +1,54 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3b61fc0..2206646 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -133,6 +133,9 @@ if (UNIX)
check_type_size(long SIZEOF_LONG)
check_type_size(short SIZEOF_SHORT)
+ # let's just assume cryptopp exists (provided by the Nix expression)
+ list(APPEND libs cryptopp)
+
# pthread is used on both Linux and Mac
check_library_exists("pthread" pthread_create "" HAVE_PTHREAD)
if (HAVE_PTHREAD)
@@ -303,7 +306,6 @@ if (VNC_SUPPORT)
endif()
add_subdirectory(src)
-add_subdirectory(tools)
if (WIN32)
# add /analyze in order to unconver potential bugs in the source code
diff --git a/src/lib/synergy/CCryptoMode.h b/src/lib/synergy/CCryptoMode.h
index 9b7e8ad..0d659ac 100644
--- a/src/lib/synergy/CCryptoMode.h
+++ b/src/lib/synergy/CCryptoMode.h
@@ -17,9 +17,9 @@
#pragma once
-#include <cryptopp562/gcm.h>
-#include <cryptopp562/modes.h>
-#include <cryptopp562/aes.h>
+#include <cryptopp/gcm.h>
+#include <cryptopp/modes.h>
+#include <cryptopp/aes.h>
#include "ECryptoMode.h"
#include "CString.h"
diff --git a/src/lib/synergy/CCryptoStream.h b/src/lib/synergy/CCryptoStream.h
index 104b1f6..09c4dc4 100644
--- a/src/lib/synergy/CCryptoStream.h
+++ b/src/lib/synergy/CCryptoStream.h
@@ -20,8 +20,8 @@
#include "BasicTypes.h"
#include "CStreamFilter.h"
#include "CCryptoMode.h"
-#include <cryptopp562/osrng.h>
-#include <cryptopp562/sha.h>
+#include <cryptopp/osrng.h>
+#include <cryptopp/sha.h>
class CCryptoOptions;

View File

@ -1,19 +1,34 @@
{ stdenv, fetchurl, cmake, x11, libX11, libXi, libXtst }:
{ stdenv, fetchurl, cmake, x11, libX11, libXi, libXtst, libXrandr, xinput
, cryptopp ? null, unzip ? null }:
assert stdenv.isLinux -> cryptopp != null;
assert !stdenv.isLinux -> unzip != null;
with stdenv.lib;
stdenv.mkDerivation rec {
name = "synergy-1.4.10";
name = "synergy-1.4.12";
src = fetchurl {
url = "http://synergy.googlecode.com/files/${name}-Source.tar.gz";
sha256 = "1ghgf96gbk4sdw8sqlc3pjschkmmqybihi12mg6hi26gnk7a5m86";
sha256 = "0j884skwqy8r8ckj9a4rlwsbjwb1yrj9wqma1nwhr2inff6hrdim";
};
buildInputs = [ cmake x11 libX11 libXi libXtst ];
patches = optional stdenv.isLinux ./cryptopp.patch;
postPatch = if stdenv.isLinux then ''
sed -i -e '/HAVE_X11_EXTENSIONS_XRANDR_H/c \
set(HAVE_X11_EXTENSIONS_XRANDR_H true)' CMakeLists.txt
'' else ''
${unzip}/bin/unzip -d tools/cryptopp562 tools/cryptopp562.zip
'';
buildInputs = [ cmake x11 libX11 libXi libXtst libXrandr xinput ]
++ optional stdenv.isLinux cryptopp;
# At this moment make install doesn't work for synergy
# http://synergy-foss.org/spit/issues/details/3317/
installPhase = ''
ensureDir $out/bin
cp ../bin/synergyc $out/bin
@ -21,10 +36,14 @@ stdenv.mkDerivation rec {
cp ../bin/synergyd $out/bin
'';
meta = {
doCheck = true;
checkPhase = "../bin/unittests";
meta = {
description = "Tool to share the mouse keyboard and the clipboard between computers";
homepage = http://synergy-foss.org;
license = stdenv.lib.licenses.gpl2;
platforms = stdenv.lib.platforms.all;
license = licenses.gpl2;
maintainers = [ maintainers.aszlig ];
platforms = platforms.all;
};
}

View File

@ -84,6 +84,11 @@ let
buildPath = "out/${buildType}";
libExecPath = "$out/libexec/${packageName}";
# user namespace sandbox patch
userns_patch = if versionOlder sourceInfo.version "29.0.0.0"
then ./sandbox_userns.patch
else ./sandbox_userns_29.patch;
in stdenv.mkDerivation rec {
name = "${packageName}-${version}";
inherit packageName;
@ -116,18 +121,14 @@ in stdenv.mkDerivation rec {
prePatch = "patchShebangs .";
patches = [ ./sandbox_userns.patch ]
patches = [ userns_patch ]
++ optional cupsSupport ./cups_allow_deprecated.patch;
postPatch = ''
sed -i -r -e 's/-f(stack-protector)(-all)?/-fno-\1/' build/common.gypi
sed -i -e 's|/usr/bin/gcc|gcc|' third_party/WebKit/Source/core/core.gypi
'' + optionalString useOpenSSL ''
cat $opensslPatches | patch -p1 -d third_party/openssl/openssl
'' + ''
sed -i -e 's|/usr/bin/gcc|gcc|' \
third_party/WebKit/Source/${if !versionOlder sourceInfo.version "28.0.0.0"
then "core/core.gypi"
else "WebCore/WebCore.gyp/WebCore.gyp"}
'';
gypFlags = mkGypFlags (gypFlagsUseSystemLibs // {

View File

@ -0,0 +1,287 @@
commit 557daf9cc9c02b8f17e6ee84f9b1ae6e6132d478
Author: aszlig <aszlig@redmoonstudios.org>
Date: Thu May 16 14:17:56 2013 +0200
zygote: Add support for user namespaces on Linux.
The implementation is done by patching the Zygote host to execute the sandbox
binary with CLONE_NEWUSER and setting the uid and gid mapping so that the child
process is using uid 0 and gid 0 which map to the current user of the parent.
Afterwards, the sandbox will continue as if it was called as a setuid binary.
In addition, this adds new_user_namespace as an option in process_util in order
to set the UID and GID mapping correctly. The reason for this is that just
passing CLONE_NEWUSER to clone_flags doesn't help in LaunchProcess(), because
without setting the mappings exec*() will clear the process's capability sets.
If the kernel doesn't support unprivileged user namespaces and the sandbox
binary doesn't have the setuid flag, the Zygote main process will run without a
sandbox. This is to mimic the behaviour if no SUID sandbox binary path is set.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
diff --git a/base/process_util.h b/base/process_util.h
index 0bec8e0..6b6f566 100644
--- a/base/process_util.h
+++ b/base/process_util.h
@@ -175,6 +175,7 @@ struct LaunchOptions {
new_process_group(false)
#if defined(OS_LINUX)
, clone_flags(0)
+ , new_user_namespace(false)
#endif // OS_LINUX
#if defined(OS_CHROMEOS)
, ctrl_terminal_fd(-1)
@@ -249,6 +250,9 @@ struct LaunchOptions {
#if defined(OS_LINUX)
// If non-zero, start the process using clone(), using flags as provided.
int clone_flags;
+
+ // If true, start the process in a new user namespace.
+ bool new_user_namespace;
#endif // defined(OS_LINUX)
#if defined(OS_CHROMEOS)
diff --git a/base/process_util_posix.cc b/base/process_util_posix.cc
index 83afe44..e529b2b 100644
--- a/base/process_util_posix.cc
+++ b/base/process_util_posix.cc
@@ -34,6 +34,13 @@
#include "base/threading/platform_thread.h"
#include "base/threading/thread_restrictions.h"
+#if defined(OS_LINUX)
+#include <sched.h>
+#if !defined(CLONE_NEWUSER)
+#define CLONE_NEWUSER 0x10000000
+#endif
+#endif
+
#if defined(OS_CHROMEOS)
#include <sys/ioctl.h>
#endif
@@ -621,8 +628,19 @@ bool LaunchProcess(const std::vector<std::string>& argv,
pid_t pid;
#if defined(OS_LINUX)
- if (options.clone_flags) {
- pid = syscall(__NR_clone, options.clone_flags, 0, 0, 0);
+ int map_pipe_fd[2];
+ int flags = options.clone_flags;
+
+ if (options.new_user_namespace) {
+ flags |= CLONE_NEWUSER;
+ if (pipe(map_pipe_fd) < 0) {
+ DPLOG(ERROR) << "user namespace pipe";
+ return false;
+ }
+ }
+
+ if (options.clone_flags || options.new_user_namespace) {
+ pid = syscall(__NR_clone, flags, 0, 0, 0);
} else
#endif
{
@@ -635,6 +653,21 @@ bool LaunchProcess(const std::vector<std::string>& argv,
} else if (pid == 0) {
// Child process
+#if defined(OS_LINUX)
+ if (options.new_user_namespace) {
+ // Close the write end of the pipe so we get an EOF when the parent closes
+ // the FD. This is to avoid race conditions when the UID/GID mappings are
+ // written _after_ execvp().
+ close(map_pipe_fd[1]);
+
+ char dummy;
+ if (HANDLE_EINTR(read(map_pipe_fd[0], &dummy, 1)) != 0) {
+ RAW_LOG(ERROR, "Unexpected input in uid/gid mapping pipe.");
+ _exit(127);
+ }
+ }
+#endif
+
// DANGER: fork() rule: in the child, if you don't end up doing exec*(),
// you call _exit() instead of exit(). This is because _exit() does not
// call any previously-registered (in the parent) exit handlers, which
@@ -749,6 +782,40 @@ bool LaunchProcess(const std::vector<std::string>& argv,
_exit(127);
} else {
// Parent process
+#if defined(OS_LINUX)
+ if (options.new_user_namespace) {
+ // We need to write UID/GID mapping here to map the current user outside
+ // the namespace to the root user inside the namespace in order to
+ // correctly "fool" the child process.
+ char buf[256];
+ int map_fd, map_len;
+
+ snprintf(buf, sizeof(buf), "/proc/%d/uid_map", pid);
+ map_fd = open(buf, O_RDWR);
+ DPCHECK(map_fd >= 0);
+ snprintf(buf, sizeof(buf), "0 %d 1", geteuid());
+ map_len = strlen(buf);
+ if (write(map_fd, buf, map_len) != map_len) {
+ RAW_LOG(WARNING, "Can't write to uid_map.");
+ }
+ close(map_fd);
+
+ snprintf(buf, sizeof(buf), "/proc/%d/gid_map", pid);
+ map_fd = open(buf, O_RDWR);
+ DPCHECK(map_fd >= 0);
+ snprintf(buf, sizeof(buf), "0 %d 1", getegid());
+ map_len = strlen(buf);
+ if (write(map_fd, buf, map_len) != map_len) {
+ RAW_LOG(WARNING, "Can't write to gid_map.");
+ }
+ close(map_fd);
+
+ // Close the pipe on the parent, so the child can continue doing the
+ // execvp() call.
+ close(map_pipe_fd[1]);
+ }
+#endif
+
if (options.wait) {
// While this isn't strictly disk IO, waiting for another process to
// finish is the sort of thing ThreadRestrictions is trying to prevent.
diff --git a/content/browser/zygote_host/zygote_host_impl_linux.cc b/content/browser/zygote_host/zygote_host_impl_linux.cc
index 130f44a..c1232d4 100644
--- a/content/browser/zygote_host/zygote_host_impl_linux.cc
+++ b/content/browser/zygote_host/zygote_host_impl_linux.cc
@@ -118,25 +118,31 @@ void ZygoteHostImpl::Init(const std::string& sandbox_cmd) {
sandbox_binary_ = sandbox_cmd.c_str();
- // A non empty sandbox_cmd means we want a SUID sandbox.
- using_suid_sandbox_ = !sandbox_cmd.empty();
+ bool userns_sandbox = false;
+ const std::vector<std::string> cmd_line_unwrapped(cmd_line.argv());
- if (using_suid_sandbox_) {
+ if (!sandbox_cmd.empty()) {
struct stat st;
if (stat(sandbox_binary_.c_str(), &st) != 0) {
LOG(FATAL) << "The SUID sandbox helper binary is missing: "
<< sandbox_binary_ << " Aborting now.";
}
- if (access(sandbox_binary_.c_str(), X_OK) == 0 &&
- (st.st_uid == 0) &&
- (st.st_mode & S_ISUID) &&
- (st.st_mode & S_IXOTH)) {
+ if (access(sandbox_binary_.c_str(), X_OK) == 0) {
+ using_suid_sandbox_ = true;
+
cmd_line.PrependWrapper(sandbox_binary_);
scoped_ptr<sandbox::SetuidSandboxClient>
sandbox_client(sandbox::SetuidSandboxClient::Create());
sandbox_client->SetupLaunchEnvironment();
+
+ if (!((st.st_uid == 0) &&
+ (st.st_mode & S_ISUID) &&
+ (st.st_mode & S_IXOTH))) {
+ userns_sandbox = true;
+ sandbox_client->SetNoSuid();
+ }
} else {
LOG(FATAL) << "The SUID sandbox helper binary was found, but is not "
"configured correctly. Rather than run without sandboxing "
@@ -160,7 +166,19 @@ void ZygoteHostImpl::Init(const std::string& sandbox_cmd) {
base::ProcessHandle process = -1;
base::LaunchOptions options;
options.fds_to_remap = &fds_to_map;
+ if (userns_sandbox)
+ options.new_user_namespace = true;
base::LaunchProcess(cmd_line.argv(), options, &process);
+
+ if (process == -1 && userns_sandbox) {
+ LOG(ERROR) << "User namespace sandbox failed to start, running without "
+ << "sandbox! You need at least kernel 3.8.0 with CONFIG_USER_NS "
+ << "enabled in order to use the sandbox without setuid bit.";
+ using_suid_sandbox_ = false;
+ options.new_user_namespace = false;
+ base::LaunchProcess(cmd_line_unwrapped, options, &process);
+ }
+
CHECK(process != -1) << "Failed to launch zygote process";
if (using_suid_sandbox_) {
diff --git a/content/zygote/zygote_main_linux.cc b/content/zygote/zygote_main_linux.cc
index 7d01722..2f445ef 100644
--- a/content/zygote/zygote_main_linux.cc
+++ b/content/zygote/zygote_main_linux.cc
@@ -395,6 +395,13 @@ static bool EnterSandbox(sandbox::SetuidSandboxClient* setuid_sandbox,
*has_started_new_init = true;
}
+ // Don't set non-dumpable, as it causes trouble when the host tries to find
+ // the zygote process (XXX: Not quite sure why this happens with user
+ // namespaces). Fortunately, we also have the seccomp filter sandbox which
+ // should disallow the use of ptrace.
+ if (setuid_sandbox->IsNoSuid())
+ return true;
+
#if !defined(OS_OPENBSD)
// Previously, we required that the binary be non-readable. This causes the
// kernel to mark the process as non-dumpable at startup. The thinking was
diff --git a/sandbox/linux/suid/client/setuid_sandbox_client.cc b/sandbox/linux/suid/client/setuid_sandbox_client.cc
index 34231d4..36e3201 100644
--- a/sandbox/linux/suid/client/setuid_sandbox_client.cc
+++ b/sandbox/linux/suid/client/setuid_sandbox_client.cc
@@ -166,6 +166,10 @@ bool SetuidSandboxClient::IsInNewNETNamespace() const {
return env_->HasVar(kSandboxNETNSEnvironmentVarName);
}
+bool SetuidSandboxClient::IsNoSuid() const {
+ return env_->HasVar(kSandboxNoSuidVarName);
+}
+
bool SetuidSandboxClient::IsSandboxed() const {
return sandboxed_;
}
@@ -175,5 +179,9 @@ void SetuidSandboxClient::SetupLaunchEnvironment() {
SetSandboxAPIEnvironmentVariable(env_);
}
+void SetuidSandboxClient::SetNoSuid() {
+ env_->SetVar(kSandboxNoSuidVarName, "1");
+}
+
} // namespace sandbox
diff --git a/sandbox/linux/suid/client/setuid_sandbox_client.h b/sandbox/linux/suid/client/setuid_sandbox_client.h
index a9f6536..2e8113a 100644
--- a/sandbox/linux/suid/client/setuid_sandbox_client.h
+++ b/sandbox/linux/suid/client/setuid_sandbox_client.h
@@ -39,6 +39,8 @@ class SetuidSandboxClient {
bool IsInNewPIDNamespace() const;
// Did the setuid helper create a new network namespace ?
bool IsInNewNETNamespace() const;
+ // Is sandboxed without SUID binary ?
+ bool IsNoSuid() const;
// Are we done and fully sandboxed ?
bool IsSandboxed() const;
@@ -46,6 +48,8 @@ class SetuidSandboxClient {
// helper.
void SetupLaunchEnvironment();
+ void SetNoSuid();
+
private:
// Holds the environment. Will never be NULL.
base::Environment* env_;
diff --git a/sandbox/linux/suid/common/sandbox.h b/sandbox/linux/suid/common/sandbox.h
index aad4ff8..bd710d5 100644
--- a/sandbox/linux/suid/common/sandbox.h
+++ b/sandbox/linux/suid/common/sandbox.h
@@ -18,6 +18,7 @@ static const char kAdjustLowMemMarginSwitch[] = "--adjust-low-mem";
static const char kSandboxDescriptorEnvironmentVarName[] = "SBX_D";
static const char kSandboxHelperPidEnvironmentVarName[] = "SBX_HELPER_PID";
+static const char kSandboxNoSuidVarName[] = "SBX_NO_SUID";
static const long kSUIDSandboxApiNumber = 1;
static const char kSandboxEnvironmentApiRequest[] = "SBX_CHROME_API_RQ";

View File

@ -1,18 +1,18 @@
# This file is autogenerated from update.sh in the same directory.
{
dev = {
version = "29.0.1521.3";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-29.0.1521.3.tar.xz";
sha256 = "0szc3g24jlhcp8cgijdv0q9rfn3mhp2kjyc85ml4snskkpasfrv3";
version = "29.0.1547.0";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-29.0.1547.0.tar.xz";
sha256 = "0ydinl0zrsm995rcpph4i56335nzhp1fqnlz39lg4vbjsshchh9x";
};
beta = {
version = "28.0.1500.45";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-28.0.1500.45.tar.xz";
sha256 = "01sxqv6i7m5h0jsypg801w2ivbrir37wdi4ijd5yvprkyzbd90zi";
version = "28.0.1500.52";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-28.0.1500.52.tar.xz";
sha256 = "1d0q8lsvwqkaninmnyc8jjj0pnqxc5rr3lr3mgzj37avksxvyg3v";
};
stable = {
version = "27.0.1453.110";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-27.0.1453.110.tar.xz";
sha256 = "1y61shbzrkcv70x9zyj559g2yyp40hi9y59f7wwx5g076lsaxsw5";
version = "28.0.1500.52";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-28.0.1500.52.tar.xz";
sha256 = "1d0q8lsvwqkaninmnyc8jjj0pnqxc5rr3lr3mgzj37avksxvyg3v";
};
}

View File

@ -1,175 +0,0 @@
{ stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL
, libjpeg, libpng, zlib, cairo, dbus, dbus_glib, bzip2, xlibs
, freetype, fontconfig, file, alsaLib, nspr, nss, libnotify
, yasm, mesa, sqlite, unzip, makeWrapper, pysqlite
, # If you want the resulting program to call itself "Firefox" instead
# of "Shiretoko" or whatever, enable this option. However, those
# binaries may not be distributed without permission from the
# Mozilla Foundation, see
# http://www.mozilla.org/foundation/trademarks/.
enableOfficialBranding ? false
}:
assert stdenv.gcc ? libc && stdenv.gcc.libc != null;
rec {
firefoxVersion = "20.0";
xulVersion = "20.0"; # this attribute is used by other packages
src = fetchurl {
urls = [
# It is better to use this url for official releases, to take load off Mozilla's ftp server.
"http://releases.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2"
# Fall back to this url for versions not available at releases.mozilla.org.
"ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2"
];
sha1 = "6d776c29da0be0d2a50abeb504d63b06b7861218";
};
commonConfigureFlags =
[ "--enable-optimize"
#"--enable-profiling"
"--disable-debug"
"--enable-strip"
"--with-system-jpeg" # now we use recent libjpeg-turbo
"--with-system-zlib"
"--with-system-bz2"
"--with-system-nspr"
"--with-system-nss"
# "--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support"
# "--enable-system-cairo" # <-- doesn't build
"--enable-system-sqlite"
"--disable-crashreporter"
"--disable-tests"
"--disable-necko-wifi" # maybe we want to enable this at some point
"--disable-installer"
"--disable-updater"
];
xulrunner = stdenv.mkDerivation rec {
name = "xulrunner-${xulVersion}";
inherit src;
buildInputs =
[ pkgconfig gtk perl zip libIDL libjpeg libpng zlib cairo bzip2
python dbus dbus_glib pango freetype fontconfig xlibs.libXi
xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt file
alsaLib nspr nss libnotify xlibs.pixman yasm mesa
xlibs.libXScrnSaver xlibs.scrnsaverproto pysqlite
xlibs.libXext xlibs.xextproto sqlite unzip makeWrapper
];
configureFlags =
[ "--enable-application=xulrunner"
"--disable-javaxpcom"
] ++ commonConfigureFlags;
enableParallelBuilding = true;
preConfigure =
''
export NIX_LDFLAGS="$NIX_LDFLAGS -L$out/lib/xulrunner-${xulVersion}"
mkdir ../objdir
cd ../objdir
configureScript=../mozilla-release/configure
''; # */
#installFlags = "SKIP_GRE_REGISTRATION=1";
postInstall = ''
# Fix run-mozilla.sh search
libDir=$(cd $out/lib && ls -d xulrunner-[0-9]*)
echo libDir: $libDir
test -n "$libDir"
cd $out/bin
rm xulrunner
for i in $out/lib/$libDir/*; do
file $i;
if file $i | grep executable &>/dev/null; then
echo -e '#! /bin/sh\nexec "'"$i"'" "$@"' > "$out/bin/$(basename "$i")";
chmod a+x "$out/bin/$(basename "$i")";
fi;
done
for i in $out/lib/$libDir/*.so; do
patchelf --set-rpath "$(patchelf --print-rpath "$i"):$out/lib/$libDir" $i || true
done
for i in $out/lib/$libDir/{plugin-container,xulrunner,xulrunner-stub}; do
wrapProgram $i --prefix LD_LIBRARY_PATH ':' "$out/lib/$libDir"
done
rm -f $out/bin/run-mozilla.sh
''; # */
meta = {
description = "Mozilla Firefox XUL runner";
homepage = http://www.mozilla.com/en-US/firefox/;
};
passthru = { inherit gtk; version = xulVersion; };
};
firefox = stdenv.mkDerivation rec {
name = "firefox-${firefoxVersion}";
inherit src;
enableParallelBuilding = true;
buildInputs =
[ pkgconfig gtk perl zip libIDL libjpeg zlib cairo bzip2 python
dbus dbus_glib pango freetype fontconfig alsaLib nspr nss libnotify
xlibs.pixman yasm mesa sqlite file unzip pysqlite
];
propagatedBuildInputs = [xulrunner];
configureFlags =
[ "--enable-application=browser"
"--with-libxul-sdk=${xulrunner}/lib/xulrunner-devel-${xulrunner.version}"
"--enable-chrome-format=jar"
]
++ commonConfigureFlags
++ stdenv.lib.optional enableOfficialBranding "--enable-official-branding";
makeFlags = [
"SYSTEM_LIBXUL=1"
];
# Hack to work around make's idea of -lbz2 dependency
preConfigure =
''
find . -name Makefile.in -execdir sed -i '{}' -e '1ivpath %.so ${
stdenv.lib.concatStringsSep ":"
(map (s : s + "/lib") (buildInputs ++ [stdenv.gcc.libc]))
}' ';'
'';
postInstall =
''
ln -s ${xulrunner}/lib/xulrunner-${xulrunner.version} $(echo $out/lib/firefox-*)/xulrunner
cd "$out/lib/"firefox-*
rm firefox
echo -e '#!${stdenv.shell}\nexec ${xulrunner}/bin/xulrunner "'"$PWD"'/application.ini" "$@"' > firefox
chmod a+x firefox
''; # */
meta = {
description = "Mozilla Firefox - the browser, reloaded";
homepage = http://www.mozilla.com/en-US/firefox/;
maintainers = [ stdenv.lib.maintainers.eelco ];
};
passthru = {
inherit gtk xulrunner nspr;
isFirefox3Like = true;
};
};
}

View File

@ -19,9 +19,9 @@ assert useSystemCairo -> cairo != null;
let optional = stdenv.lib.optional;
in rec {
firefoxVersion = "21.0";
firefoxVersion = "22.0";
xulVersion = "21.0"; # this attribute is used by other packages
xulVersion = "22.0"; # this attribute is used by other packages
src = fetchurl {
@ -31,7 +31,7 @@ in rec {
# Fall back to this url for versions not available at releases.mozilla.org.
"ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2"
];
sha1 = "e63b5488eaec1956947f59609d5839332ba7ffe1";
sha1 = "db2d5b028b6ea95b5f006b46e153f50f7a52bf80";
};
commonConfigureFlags =
@ -46,7 +46,7 @@ in rec {
"--with-system-nss"
"--with-system-libevent"
"--with-system-libvpx"
# "--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support"
"--with-system-png"
"--enable-startup-notification"
"--enable-system-ffi"
"--enable-system-hunspell"
@ -66,7 +66,7 @@ in rec {
inherit src;
buildInputs =
[ pkgconfig gtk perl zip libIDL libjpeg libpng zlib bzip2
[ pkgconfig libpng gtk perl zip libIDL libjpeg zlib bzip2
python dbus dbus_glib pango freetype fontconfig xlibs.libXi
xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt file
alsaLib nspr nss libnotify xlibs.pixman yasm mesa
@ -82,7 +82,7 @@ in rec {
enableParallelBuilding = true;
patches = optional useSystemCairo ./system-cairo.patch; # probably in 22
patches = optional useSystemCairo ./system-cairo.patch;
preConfigure =
''
@ -136,7 +136,7 @@ in rec {
enableParallelBuilding = true;
buildInputs =
[ pkgconfig gtk perl zip libIDL libjpeg zlib bzip2 python
[ pkgconfig libpng gtk perl zip libIDL libjpeg zlib bzip2 python
dbus dbus_glib pango freetype fontconfig alsaLib nspr nss libnotify
xlibs.pixman yasm mesa sqlite file unzip pysqlite
hunspell libevent libstartup_notification libvpx

View File

@ -1,5 +1,5 @@
{ stdenv, fetchurl, rpm, cpio, mesa, xorg, cairo
, libpng12, gtk, glib, gdk_pixbuf, fontconfig, freetype, curl
, libpng, gtk, glib, gdk_pixbuf, fontconfig, freetype, curl
, dbus_glib, alsaLib, pulseaudio, udev, pango
}:
@ -14,7 +14,7 @@ let
xorg.libXt
xorg.libX11
cairo
libpng12
libpng
gtk
glib
fontconfig
@ -79,13 +79,13 @@ stdenv.mkDerivation rec {
$plugins/libnpgtpo3dautoplugin.so
mkdir -p $out/libexec/google/talkplugin
cp opt/google/talkplugin/GoogleTalkPlugin $out/libexec/google/talkplugin/
cp -prd opt/google/talkplugin/{GoogleTalkPlugin,locale,windowpicker.glade} $out/libexec/google/talkplugin/
mkdir -p $out/libexec/google/talkplugin/lib
cp opt/google/talkplugin/lib/libCg* $out/libexec/google/talkplugin/lib/
patchelf --set-rpath "$out/libexec/google/talkplugin/lib" \
$out/libexec/google/talkplugin/lib/libCgGL.so
$out/libexec/google/talkplugin/lib/libCgGL.so
patchelf \
--set-interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
@ -102,7 +102,7 @@ stdenv.mkDerivation rec {
dontStrip = true;
dontPatchELF = true;
passthru.mozillaPlugin = "/lib/mozilla/plugins";
meta = {

View File

@ -12,8 +12,8 @@
#include <fcntl.h>
#include <limits.h>
char origDir [] = "/opt/google/talkplugin/GoogleTalkPlugin";
char realDir [] = OUT "/libexec/google/talkplugin/GoogleTalkPlugin";
char origDir [] = "/opt/google/talkplugin";
char realDir [] = OUT "/libexec/google/talkplugin";
const char * rewrite(const char * path, char * buf)
{
@ -29,3 +29,31 @@ int execvp(const char * path, char * const argv[])
char buf[PATH_MAX];
return _execvp(rewrite(path, buf), argv);
}
int open(const char *path, int flags, ...)
{
char buf[PATH_MAX];
int (*_open) (const char *, int, mode_t) = dlsym(RTLD_NEXT, "open");
mode_t mode = 0;
if (flags & O_CREAT) {
va_list ap;
va_start(ap, flags);
mode = va_arg(ap, mode_t);
va_end(ap);
}
return _open(rewrite(path, buf), flags, mode);
}
int open64(const char *path, int flags, ...)
{
char buf[PATH_MAX];
int (*_open64) (const char *, int, mode_t) = dlsym(RTLD_NEXT, "open64");
mode_t mode = 0;
if (flags & O_CREAT) {
va_list ap;
va_start(ap, flags);
mode = va_arg(ap, mode_t);
va_end(ap);
}
return _open64(rewrite(path, buf), flags, mode);
}

View File

@ -0,0 +1,42 @@
{ stdenv, fetchurl, sqlite, curl, pkgconfig, libxml2, stfl, json_c, ncurses
, gettext, libiconvOrEmpty, makeWrapper, perl }:
stdenv.mkDerivation rec {
name = "newsbeuter-2.6";
src = fetchurl {
url = "http://www.newsbeuter.org/downloads/${name}.tar.gz";
sha256 = "1hywz5206k0ykjklkjvnfy9fm4jfv9phz8dkzzwhfcjvqv9zv29i";
};
buildInputs
# use gettext instead of libintlOrEmpty so we have access to the msgfmt
# command
= [ pkgconfig sqlite curl libxml2 stfl json_c ncurses gettext perl ]
++ libiconvOrEmpty
++ stdenv.lib.optional stdenv.isDarwin makeWrapper;
preBuild = ''
sed -i -e 104,108d config.sh
sed -i "1 s%^.*$%#!${perl}/bin/perl%" txt2h.pl
export LDFLAGS=-lncursesw
'';
installPhase = ''
DESTDIR=$out prefix=\"\" make install
''
+ stdenv.lib.optionalString stdenv.isDarwin ''
for prog in $out/bin/*; do
wrapProgram "$prog" --prefix DYLD_LIBRARY_PATH : "${stfl}/lib"
done
'';
meta = {
homepage = http://www.newsbeuter.org;
description = "An open-source RSS/Atom feed reader for text terminals";
maintainers = with stdenv.lib.maintainers; [ lovek323 ];
license = stdenv.lib.licenses.mit;
platforms = stdenv.lib.platforms.unix;
};
}

View File

@ -1,21 +1,23 @@
{ stdenv, fetchurl, intltool, pkgconfig, gtk, libglade, libosip, libexosip
, speex, readline, mediastreamer, libsoup }:
, speex, readline, mediastreamer, libsoup, udev, libnotify }:
stdenv.mkDerivation rec {
name = "linphone-3.5.2";
name = "linphone-3.6.1";
src = fetchurl {
url = "mirror://savannah/linphone/3.5.x/sources/${name}.tar.gz";
sha256 = "0830iam7kgqphgk3q6qx93kp5wrf0gnm5air82jamy7377jxadys";
url = "mirror://savannah/linphone/3.6.x/sources/${name}.tar.gz";
sha256 = "186jm4nd4ggb0j8cs8wnpm4sy9cr7chq0c6kx2yc6y4k7qi83fh5";
};
patches = [ ./fix-deprecated.patch ];
buildInputs = [ gtk libglade libosip libexosip readline mediastreamer speex libsoup ];
buildInputs = [ gtk libglade libosip libexosip readline mediastreamer speex libsoup udev
libnotify ];
nativeBuildInputs = [ intltool pkgconfig ];
preConfigure = "rm -r mediastreamer2 oRTP";
preConfigure = ''
rm -r mediastreamer2 oRTP
sed -i s,/bin/echo,echo, coreapi/Makefile*
'';
configureFlags = "--enable-external-ortp --enable-external-mediastreamer";

View File

@ -0,0 +1,84 @@
{ stdenv, fetchurl, libyaml, alsaLib, openssl, libuuid, pkgconfig, pulseaudio, libsamplerate
, commoncpp2, ccrtp, libzrtpcpp, dbus, dbus_cplusplus, expat, pcre, gsm, speex, ilbc, libopus
, autoconf, automake, libtool, gettext, perl
, cmake, qt4
, gtk, glib, dbus_glib, libnotify, intltool, makeWrapper }:
let
name = "sflphone-1.2.3";
src = fetchurl {
url = "https://projects.savoirfairelinux.com/attachments/download/6423/${name}.tar.gz";
sha256 = "0aiwlky7mp5l51a7kkhkmaz7ivapypar291kdxzdxl1s3qy0x6fd";
};
meta = {
homepage = http://sflphone.org/;
license = "GPLv3+";
description = "Free software enterprise-class softphone for GNU/Linux";
platforms = with stdenv.lib.platforms; linux;
maintainers = with stdenv.lib.maintainers; [viric];
};
in
rec {
daemon = stdenv.mkDerivation {
name = name + "-daemon";
inherit src;
patches = [ ./libzrtpcpp-cflags.patch ];
preConfigure = ''
cd daemon
# Post patch, required
autoreconf -vfi
cd libs
bash ./compile_pjsip.sh
cd ..
'';
configureFlags = "--with-expat --with-expat-inc=${expat}/include " +
"--with-expat-lib=-lexpat --with-opus ";
buildInputs = [ libyaml alsaLib openssl libuuid pkgconfig pulseaudio libsamplerate
commoncpp2 ccrtp libzrtpcpp dbus dbus_cplusplus expat pcre gsm speex ilbc libopus
autoconf automake libtool gettext perl ];
};
# This fails still.
# I don't know the best way to make this a KDE program (with switchable kde
# libs, like digikam for example)
/*
kde = stdenv.mkDerivation {
name = name + "-kde";
inherit src;
preConfigure = ''
cd kde
'';
buildInputs = [ daemon cmake qt4 pkgconfig ];
};
*/
gnome = stdenv.mkDerivation {
name = name + "-gnome";
inherit src;
preConfigure = ''
cd gnome
'';
# gtk3 programs have the runtime dependency on XDG_DATA_DIRS
postInstall = ''
wrapProgram $out/bin/sflphone* --prefix XDG_DATA_DIRS ":" ${gtk}/share
'';
buildInputs = [ daemon pkgconfig gtk glib dbus_glib libnotify intltool makeWrapper ];
};
}

View File

@ -0,0 +1,15 @@
diff --git a/daemon/src/audio/audiortp/Makefile.am b/daemon/src/audio/audiortp/Makefile.am
index c27eedd..fe64077 100644
--- a/daemon/src/audio/audiortp/Makefile.am
+++ b/daemon/src/audio/audiortp/Makefile.am
@@ -4,6 +4,10 @@ noinst_LTLIBRARIES = libaudiortp.la
if BUILD_ZRTP
SFL_ZRTP_SRC=audio_zrtp_session.h audio_zrtp_session.cpp zrtp_session_callback.cpp zrtp_session_callback.h
+libaudiortp_la_CXXFLAGS = \
+ @CCGNU2_CFLAGS@ \
+ @ZRTPCPP_CFLAGS@ \
+ @CCRTP_CFLAGS@
endif
libaudiortp_la_SOURCES = \

View File

@ -12,14 +12,14 @@
enableOfficialBranding ? false
}:
let version = "17.0.6"; in
let version = "17.0.7"; in
stdenv.mkDerivation {
name = "thunderbird-${version}";
src = fetchurl {
url = "ftp://ftp.mozilla.org/pub/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.bz2";
sha1 = "cb5cb5dbfe77179b5853345c826eaa2bc634d48c";
sha1 = "d6dca3e1cc4293f2e15d6b35056bd8dc319014ee";
};
enableParallelBuilding = false;

View File

@ -6,16 +6,14 @@ jackaudio ? null }:
stdenv.mkDerivation rec {
name = "mumble-" + version;
version = "1.2.3";
version = "1.2.4";
src = fetchurl {
url = "mirror://sourceforge/mumble/${name}.tar.gz";
sha256 = "0p4as6bcmbzkiff1gvc0f277dzbz2sfys97gcbxw7gjamqi53285";
sha256 = "16wwj6gwcnyjlnzh7wk0l255ldxmbwx0wi652sdp20lsv61q7kx1";
};
patchPhase = ''
sed -e s/qt_ja_JP.qm// -i src/mumble/mumble.pro src/mumble11x/mumble11x.pro
sed -e /qt_ja_JP.qm/d -i src/mumble/mumble_qt.qrc src/mumble11x/mumble_qt.qrc
patch -p1 < ${ ./mumble-jack-support.patch }
'';

View File

@ -0,0 +1,27 @@
{ stdenv, fetchurl, pkgconfig, intltool, glib, gtk2, gnome2 /*just GConf*/
, libsoup, libunique, libxslt, webkit_gtk2, json_glib
, libnotify /*optional*/ }:
let version = "1.8.15";
in
stdenv.mkDerivation rec {
name = "liferea-${version}";
src = fetchurl {
url = "mirror://sourceforge/liferea/Liferea%20Stable/${version}/${name}.tar.bz2";
sha256 = "12hhdl5biwcvr9ds7pdhhvlp4vggjix6xm4z5pnfaz53ai2dnc99";
};
buildInputs = [
pkgconfig intltool gtk2 gnome2.GConf
libsoup libunique libxslt webkit_gtk2 json_glib
libnotify
];
meta = {
description = "A GTK-based news feed agregator";
homepage = http://lzone.de/liferea/;
maintainers = [ stdenv.lib.maintainers.vcunat ];
platforms = stdenv.lib.platforms.all;
};
}

View File

@ -1,11 +1,11 @@
{stdenv, fetchurl, openssl, libsamplerate}:
stdenv.mkDerivation rec {
name = "pjsip-1.8.10";
name = "pjsip-2.1";
src = fetchurl {
url = http://www.pjsip.org/release/1.8.10/pjproject-1.8.10.tar.bz2;
sha256 = "1v2mgbgzn7d3msb406jmg69ms97a0rqg58asykx71dmjipbaiqc0";
url = http://www.pjsip.org/release/2.1/pjproject-2.1.tar.bz2;
md5 = "310eb63638dac93095f6a1fc8ee1f578";
};
buildInputs = [ openssl libsamplerate ];

View File

@ -0,0 +1,13 @@
diff --git a/src/dejitter.c b/src/dejitter.c
index 1904ab3..cb3624d 100644
--- a/src/dejitter.c
+++ b/src/dejitter.c
@@ -22,6 +22,8 @@
#include <errno.h>
+#include <string.h>
+#include <sys/time.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>

View File

@ -1,13 +1,15 @@
{ stdenv, fetchurl, libosip }:
stdenv.mkDerivation {
name = "siproxd-0.8.0";
stdenv.mkDerivation rec {
name = "siproxd-0.8.1";
src = fetchurl {
url = mirror://sourceforge/siproxd/siproxd-0.8.0.tar.gz;
sha256 = "0hl51z33cf68ki707jkrrjjc3a5vpaf49gbrsz3g4rfxypdhc0qs";
url = "mirror://sourceforge/siproxd/${name}.tar.gz";
sha256 = "1bcxl0h5nc28m8lcdhpbl5yc93w98xm53mfzrf04knsvmx7z0bfz";
};
patches = [ ./cheaders.patch ];
buildInputs = [ libosip ];
meta = {

View File

@ -1,11 +1,11 @@
{ stdenv, fetchurl, openssl, protobufc, libconfig }:
stdenv.mkDerivation rec {
name = "umurmur-0.2.12";
name = "umurmur-0.2.13";
src = fetchurl {
url = "http://umurmur.googlecode.com/files/${name}.tar.gz";
sha1 = "5be3c765af3c5f518d1e1bbd828b3582ad4097cd";
sha1 = "c9345b67213f52688fef2113132c62d2edbf4bea";
};
buildInputs = [ openssl protobufc libconfig ];

View File

@ -0,0 +1,16 @@
{ cabal, Cabal, hledgerLib, statistics, time }:
cabal.mkDerivation (self: {
pname = "hledger-irr";
version = "0.1.1.2";
sha256 = "1mh1lzhnxc8ps8n5j37wrmbqafwdyap60j8rqr6xdfa2syfyq8i2";
isLibrary = false;
isExecutable = true;
buildDepends = [ Cabal hledgerLib statistics time ];
meta = {
description = "computes the internal rate of return of an investment";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
maintainers = [ self.stdenv.lib.maintainers.simons ];
};
})

View File

@ -1,15 +1,15 @@
{ stdenv, fetchgit, cmake, boost, gmp, mpfr, libedit, python, texinfo }:
let
rev = "2c7ab8be";
rev = "26d7197";
in
stdenv.mkDerivation {
name = "ledger3-2013.04.${rev}";
name = "ledger3-2013.06.${rev}";
src = fetchgit {
url = "git://github.com/jwiegley/ledger.git";
url = "https://github.com/ledger/ledger.git";
inherit rev;
sha256 = "1ng5ymzqzbgdrn2ghhr7jvcjv5y7ikhyck5p1yv5j024s17xdyj5";
sha256 = "02nf4kdrd61q9rf5rrarwmx47y2ya5qix7n82cj9qi9p4v3k3m2g";
};
buildInputs = [ cmake boost gmp mpfr libedit python texinfo ];

View File

@ -6,7 +6,7 @@
, libXinerama, openssl, gperf, cppunit, GConf, ORBit2, poppler
, librsvg, gnome_vfs, gstreamer, gst_plugins_base, mesa
, autoconf, automake, openldap, bash, hunspell, librdf_redland, nss, nspr
, libwpg, dbus_glib, qt4, kde4, clucene_core_2, libcdr, lcms2, vigra
, libwpg, dbus_glib, qt4, kde4, clucene_core, libcdr, lcms, vigra
, libiodbc, mdds, saneBackends, mythes, libexttextcat, libvisio
, fontsConf
, langs ? [ "en-US" "en-GB" "ca" "ru" "eo" "fr" "nl" "de" ]
@ -162,10 +162,10 @@ stdenv.mkDerivation rec {
];
buildInputs =
[ ant ArchiveZip autoconf automake bison boost cairo clucene_core_2
[ ant ArchiveZip autoconf automake bison boost cairo clucene_core
CompressZlib cppunit cups curl db4 dbus_glib expat file flex fontconfig
freetype GConf getopt gnome_vfs gperf gst_plugins_base gstreamer gtk
hunspell icu jdk kde4.kdelibs lcms2 libcdr libexttextcat libiodbc libjpeg
hunspell icu jdk kde4.kdelibs lcms libcdr libexttextcat libiodbc libjpeg
libmspack librdf_redland librsvg libsndfile libvisio libwpd libwpg libX11
libXaw libXext libXi libXinerama libxml2 libxslt libXtst mdds mesa mythes
neon nspr nss openldap openssl ORBit2 pam perl pkgconfigUpstream poppler

View File

@ -1,6 +1,7 @@
{ stdenv, fetchurl, blas, bzip2, gfortran, liblapack, libX11, libXmu, libXt
, libjpeg, libpng, libtiff, ncurses, pango, pcre, perl, readline, tcl
, texLive, tk, xz, zlib, less, texinfo, graphviz
, texLive, tk, xz, zlib, less, texinfo, graphviz, icu, pkgconfig, bison
, imake, which, jdk, atlas
}:
stdenv.mkDerivation rec {
@ -13,15 +14,65 @@ stdenv.mkDerivation rec {
buildInputs = [ blas bzip2 gfortran liblapack libX11 libXmu libXt
libXt libjpeg libpng libtiff ncurses pango pcre perl readline tcl
texLive tk xz zlib less texinfo graphviz ];
texLive tk xz zlib less texinfo graphviz icu pkgconfig bison imake
which jdk atlas
];
patches = [ ./no-usr-local-search-paths.patch ];
preConfigure = ''
configureFlagsArray=(
--disable-lto
--with-blas="-L${atlas}/lib -lf77blas -latlas"
--with-lapack="-L${liblapack}/lib -llapack"
--with-readline
--with-tcltk --with-tcl-config="${tcl}/lib/tclConfig.sh" --with-tk-config="${tk}/lib/tkConfig.sh"
--with-cairo
--with-libpng
--with-jpeglib
--with-libtiff
--with-system-zlib
--with-system-bzlib
--with-system-pcre
--with-system-xz
--with-ICU
R_SHELL="${stdenv.shell}"
JAVA_HOME="${jdk}"
LDFLAGS="-L${gfortran.gcc}/lib"
)
echo "TCLLIBPATH=${tk}/lib" >>etc/Renviron.in
'';
installTargets = [ "install" "install-info" "install-pdf" ];
doCheck = true;
enableParallelBuilding = true;
meta = {
description = "a free software environment for statistical computing and graphics";
homepage = "http://www.r-project.org/";
description = "a free software environment for statistical computing and graphics";
license = stdenv.lib.licenses.gpl2Plus;
longDescription = ''
GNU R is a language and environment for statistical computing and
graphics that provides a wide variety of statistical (linear and
nonlinear modelling, classical statistical tests, time-series
analysis, classification, clustering, ...) and graphical
techniques, and is highly extensible. One of R's strengths is the
ease with which well-designed publication-quality plots can be
produced, including mathematical symbols and formulae where
needed. R is an integrated suite of software facilities for data
manipulation, calculation and graphical display. It includes an
effective data handling and storage facility, a suite of operators
for calculations on arrays, in particular matrices, a large,
coherent, integrated collection of intermediate tools for data
analysis, graphical facilities for data analysis and display
either on-screen or on hardcopy, and a well-developed, simple and
effective programming language which includes conditionals, loops,
user-defined recursive functions and input and output facilities.
'';
platforms = stdenv.lib.platforms.linux;
maintainers = [ stdenv.lib.maintainers.simons ];
};

View File

@ -0,0 +1,24 @@
diff -ubr R-3.0.1-orig/configure R-3.0.1/configure
--- R-3.0.1-orig/configure 2013-07-04 10:46:42.336133947 +0200
+++ R-3.0.1/configure 2013-07-04 10:46:17.181919960 +0200
@@ -3800,13 +3800,13 @@
: ${LIBnn=$libnn}
## We provide these defaults so that headers and libraries in
## '/usr/local' are found (by the native tools, mostly).
-if test -f "/sw/etc/fink.conf"; then
- : ${CPPFLAGS="-I/sw/include -I/usr/local/include"}
- : ${LDFLAGS="-L/sw/lib -L/usr/local/lib"}
-else
- : ${CPPFLAGS="-I/usr/local/include"}
- : ${LDFLAGS="-L/usr/local/${LIBnn}"}
-fi
+# if test -f "/sw/etc/fink.conf"; then
+# : ${CPPFLAGS="-I/sw/include -I/usr/local/include"}
+# : ${LDFLAGS="-L/sw/lib -L/usr/local/lib"}
+# else
+# : ${CPPFLAGS="-I/usr/local/include"}
+# : ${LDFLAGS="-L/usr/local/${LIBnn}"}
+# fi
## take care not to override the command-line setting
if test "${libdir}" = '${exec_prefix}/lib'; then

View File

@ -1,5 +1,4 @@
{ stdenv, fetchdarcs, ocaml, findlib, lablgl, camlimages, mesa, freeglut, ocaml_mysql, mlgmp, mpfr, gmp, libtiff, libjpeg, libpng12, giflib }:
{ stdenv, fetchdarcs, ocaml, findlib, lablgl, camlimages, mesa, freeglut, ocaml_mysql, mlgmp, mpfr, gmp, libtiff, libjpeg, libpng, giflib }:
let
ocaml_version = (builtins.parseDrvName ocaml.name).version;
@ -16,7 +15,7 @@ stdenv.mkDerivation {
buildInputs = [ ocaml findlib freeglut mesa
lablgl camlimages ocaml_mysql mlgmp mpfr gmp
libtiff libjpeg libpng12 giflib ];
libtiff libjpeg libpng giflib ];
installPhase = ''
mkdir -p $out/bin $out/share/doc/glsurf

View File

@ -21,7 +21,7 @@ stdenv.mkDerivation {
meta = {
homepage = "http://www.gromacs.org";
licence = "GPLv2";
license = "GPLv2";
description = "The GROMACS molecular dynamics software package";
longDescription = ''
GROMACS is a versatile package to perform molecular dynamics,

View File

@ -9,8 +9,9 @@ rec {
git = lib.makeOverridable (import ./git) {
inherit fetchurl stdenv curl openssl zlib expat perl python gettext gnugrep
asciidoc texinfo xmlto docbook2x docbook_xsl docbook_xml_dtd_45 libxslt
cpio tcl tk makeWrapper subversionClient gzip;
asciidoc xmlto docbook2x docbook_xsl docbook_xml_dtd_45 libxslt cpio tcl
tk makeWrapper subversionClient gzip;
texinfo = texinfo5;
svnSupport = false; # for git-svn support
guiSupport = false; # requires tcl/tk
sendEmailSupport = false; # requires plenty of perl libraries

View File

@ -7,14 +7,15 @@
, monadControl, mtl, network, networkInfo, networkMulticast
, networkProtocolXmpp, openssh, QuickCheck, random, regexTdfa
, rsync, SafeSemaphore, SHA, stm, text, time, transformers
, unixCompat, utf8String, uuid, wai, waiLogger, warp, xmlConduit
, xmlTypes, yesod, yesodDefault, yesodForm, yesodStatic
, unixCompat, utf8String, uuid, wai, waiLogger, warp, which
, xmlConduit, xmlTypes, yesod, yesodCore, yesodDefault, yesodForm
, yesodStatic
}:
cabal.mkDerivation (self: {
pname = "git-annex";
version = "4.20130601";
sha256 = "0l6jbi9r26w5h9hfg9v9qybqvijp4n7c9l1zd4ikxg2nqcc8j8ln";
version = "4.20130627";
sha256 = "1q9hdh7m04idx1nm631624s37p6w1b9j1z5n06j2449b3pxqrn3y";
isLibrary = false;
isExecutable = true;
buildDepends = [
@ -25,22 +26,23 @@ cabal.mkDerivation (self: {
MonadCatchIOTransformers monadControl mtl network networkInfo
networkMulticast networkProtocolXmpp QuickCheck random regexTdfa
SafeSemaphore SHA stm text time transformers unixCompat utf8String
uuid wai waiLogger warp xmlConduit xmlTypes yesod yesodDefault
yesodForm yesodStatic
uuid wai waiLogger warp xmlConduit xmlTypes yesod yesodCore
yesodDefault yesodForm yesodStatic
];
buildTools = [ bup curl git gnupg1 lsof openssh rsync ];
buildTools = [ bup curl git gnupg1 lsof openssh rsync which ];
configureFlags = "-fS3
-fWebDAV
-fInotify
-fDbus
-f-Assistant
-f-Webapp
-fAssistant
-fWebapp
-fPairing
-fXMPP
-fDNS
-fProduction
-fTDFA";
preConfigure = "patchShebangs .";
installPhase = "make PREFIX=$out CABAL=./Setup docs install";
checkPhase = ''
export HOME="$NIX_BUILD_TOP/tmp"
mkdir "$HOME"
@ -50,7 +52,7 @@ cabal.mkDerivation (self: {
meta = {
homepage = "http://git-annex.branchable.com/";
description = "manage files with git, without checking their contents into git";
license = "GPL";
license = self.stdenv.lib.licenses.gpl3;
platforms = self.ghc.meta.platforms;
maintainers = [ self.stdenv.lib.maintainers.simons ];
};

View File

@ -49,6 +49,8 @@ stdenv.mkDerivation rec {
preBuild = ''
makeFlagsArray=(APACHE_LIBEXECDIR=$out/modules)
'' + stdenv.lib.optionalString stdenv.isDarwin ''
substituteInPlace configure --replace "-no-cpp-precomp" ""
'';
postInstall = ''
@ -74,7 +76,7 @@ stdenv.mkDerivation rec {
meta = {
description = "A version control system intended to be a compelling replacement for CVS in the open source community";
homepage = http://subversion.apache.org/;
maintainers = [ stdenv.lib.maintainers.eelco ];
maintainers = with stdenv.lib.maintainers; [ eelco lovek323 ];
platforms = stdenv.lib.platforms.all;
};
}

View File

@ -1,9 +0,0 @@
source $stdenv/setup
myPatchPhase()
{
sed -i -e "s|files.length|files.size|" \
-e "s|chlds.length|chlds.size|" src/kmplayerapp.cpp
}
patchPhase=myPatchPhase
genericBuild

View File

@ -1,17 +1,28 @@
{stdenv, fetchurl, lib, cmake, qt4, perl, gettext, pango, gtk, dbus_glib, kdelibs, automoc4, phonon}:
{ stdenv, fetchurl, cmake, pkgconfig, gettext, makeWrapper
, kdelibs, cairo, dbus_glib, mplayer
}:
stdenv.mkDerivation {
name = "kmplayer-0.11.2c";
name = "kmplayer-0.11.3d";
src = fetchurl {
url = http://kmplayer.kde.org/pkgs/kmplayer-0.11.2c.tar.bz2;
sha256 = "1qhafq865bzpz6m9k7cjdv4884qfpn481ak77ly0nidpq2ab0l9m";
url = http://kmplayer.kde.org/pkgs/kmplayer-0.11.3d.tar.bz2;
sha256 = "1yvbkb1hh5y7fqfvixjf2rryzm0fm0fpkx4lmvhi7k7d0v4wpgky";
};
builder = ./builder.sh;
buildInputs = [ cmake qt4 perl gettext stdenv.gcc.libc pango gtk dbus_glib kdelibs automoc4 phonon ];
buildInputs = [
cmake gettext pkgconfig makeWrapper
kdelibs cairo dbus_glib
];
postInstall = ''
wrapProgram $out/bin/kmplayer --suffix PATH : ${mplayer}/bin
'';
meta = {
description = "MPlayer front-end for KDE";
license = "GPL";
homepage = http://kmplayer.kde.org;
maintainers = [ lib.maintainers.sander ];
maintainers = [ stdenv.lib.maintainers.sander ];
};
}

View File

@ -79,7 +79,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
# Old kind of URL:
# url = http://nixos.org/tarballs/mplayer-snapshot-20101227.tar.bz2;
# url = http://tarballs.nixos.org/mplayer-snapshot-20101227.tar.bz2;
# Snapshot I took on 20110423
#Transient

View File

@ -0,0 +1,23 @@
{ stdenv, fetchurl, qt4 }:
stdenv.mkDerivation rec {
name = "smplayer-0.8.5";
src = fetchurl {
url = "mirror://sourceforge/smplayer/${name}.tar.bz2";
sha256 = "0vbfvaqg5c25vabq1mf9xg6kzgvxnpd0i172y1gjznnlpcw2fxrw";
};
buildInputs = [ qt4 ];
preConfigure = ''
makeFlags="PREFIX=$out"
'';
meta = {
description = "A complete front-end for MPlayer";
homepage = "http://smplayer.sourceforge.net/";
license = stdenv.lib.licenses.gpl3Plus;
platforms = stdenv.lib.platforms.linux;
};
}

View File

@ -68,6 +68,11 @@ stdenv.mkDerivation rec {
dontUseCmakeConfigure = true;
preConfigure = ''
substituteInPlace xbmc/linux/LinuxTimezone.cpp \
--replace 'usr/share/zoneinfo' 'etc/zoneinfo'
'';
configureFlags = [
"--enable-external-libraries"
"--disable-webserver"

View File

@ -1,21 +1,41 @@
{ stdenv, fetchurl, python, zlib, pkgconfig, glib, SDL, ncurses, perl, pixman }:
{ stdenv, fetchurl, python, zlib, pkgconfig, glib, ncurses, perl, pixman
, attr, libcap, vde2, alsaLib, texinfo, libuuid
, sdlSupport ? true, SDL
, vncSupport ? true, libjpeg, libpng
, spiceSupport ? false, spice, spice_protocol
, x86Only ? false
}:
stdenv.mkDerivation rec {
name = "qemu-1.4.0";
name = "qemu-1.5.1";
src = fetchurl {
url = "http://wiki.qemu.org/download/${name}.tar.bz2";
sha256 = "1a7d11vjs1p6i1ck2ff9annmkhpkbjl73hl9i1cbg3s0fznrfqh6";
sha256 = "1s7316pgizpayr472la8p8a4vhv7ymmzd5qlbkmq6y9q5zpa25ac";
};
buildInputs = [ python zlib pkgconfig glib SDL ncurses perl pixman ];
buildInputs =
[ python zlib pkgconfig glib ncurses perl pixman attr libcap
vde2 alsaLib texinfo libuuid
]
++ stdenv.lib.optionals sdlSupport [ SDL ]
++ stdenv.lib.optionals vncSupport [ libjpeg libpng ]
++ stdenv.lib.optionals spiceSupport [ spice_protocol spice ];
enableParallelBuilding = true;
configureFlags =
[ "--audio-drv-list=alsa"
"--smbd=smbd" # use `smbd' from $PATH
]
++ stdenv.lib.optional spiceSupport "--enable-spice"
++ stdenv.lib.optional x86Only "--target-list=i386-softmmu,x86_64-softmmu";
meta = {
description = "QEmu processor emulator";
homepage = http://www.qemu.org/;
description = "A generic and open source machine emulator and virtualizer";
license = "GPLv2+";
maintainers = with stdenv.lib.maintainers; [ viric shlevy ];
platforms = with stdenv.lib.platforms; linux;
maintainers = with stdenv.lib.maintainers; [ viric shlevy eelco ];
platforms = stdenv.lib.platforms.linux;
};
}

View File

@ -11,8 +11,7 @@ with stdenv.lib;
let
version = "4.2.12";
extpackRevision = "84980";
version = "4.2.14"; # changes ./guest-additions as well
forEachModule = action: ''
for mod in \
@ -31,12 +30,10 @@ let
done
'';
extensionPack = requireFile {
name = "Oracle_VM_VirtualBox_Extension_Pack-${version}-${extpackRevision}"
+ ".vbox-extpack";
extensionPack = fetchurl {
url = "http://download.virtualbox.org/virtualbox/${version}/Oracle_VM_VirtualBox_Extension_Pack-${version}.vbox-extpack";
# Has to be base16 because it's used as an input to VBoxExtPackHelperApp!
sha256 = "ad15a92e49095c2115bd1793b3b957d3eaf44af0f5d24bb53d6b4fc81c3e2fc4";
url = "https://www.virtualbox.org/wiki/Downloads";
sha256 = "5813cae72790de4893cadb839ffbd148290a44ec6913d901d84c9b3740ab1b1e";
};
in stdenv.mkDerivation {
@ -44,7 +41,7 @@ in stdenv.mkDerivation {
src = fetchurl {
url = "http://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2";
sha256 = "eb65ecac94f63d6292a967d39cb5e28326404c10d0e8c2c50399eedb59c17ee6";
sha256 = "038k65cdvr80da5nfan5r3rjrnxqab2fbf2pr2jq8g1gc4cxrxpq";
};
buildInputs =
@ -137,6 +134,8 @@ in stdenv.mkDerivation {
done
'';
passthru = { inherit version; /* for guest additions */ };
meta = {
description = "PC emulator";
homepage = http://www.virtualbox.org/;

View File

@ -1,15 +1,18 @@
{ stdenv, fetchurl, lib, patchelf, cdrkit, kernelDev, which, makeWrapper
, libX11, libXt, libXext, libXmu, libXcomposite, libXfixes, libXrandr, libXcursor
, dbus }:
, xorg, dbus, virtualbox }:
let version = "4.2.12"; in
let
version = virtualbox.version;
xserverVListFunc = builtins.elemAt (stdenv.lib.splitString "." xorg.xorgserver.version);
xserverABI = xserverVListFunc 0 + xserverVListFunc 1;
in
stdenv.mkDerivation {
name = "VirtualBox-GuestAdditions-${version}-${kernelDev.version}";
src = fetchurl {
url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso";
sha256 = "aed4730b643aca8daa0829e1122b7c8d592b9f6cea902a98e390c4d22373dfb8";
sha256 = "9f08f13bbd818fb3ef9916658542ad0999c35e11afc1f6e8ff0b944405486e8a";
};
KERN_DIR = "${kernelDev}/lib/modules/*/build";
@ -22,7 +25,7 @@ stdenv.mkDerivation {
'';
buildCommand = ''
buildCommand = with xorg; ''
${if stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux" then ''
isoinfo -J -i $src -x /VBoxLinuxAdditions.run > ./VBoxLinuxAdditions.run
chmod 755 ./VBoxLinuxAdditions.run
@ -104,7 +107,7 @@ stdenv.mkDerivation {
# Install Xorg drivers
mkdir -p $out/lib/xorg/modules/{drivers,input}
install -m 644 lib/VBoxGuestAdditions/vboxvideo_drv_112.so $out/lib/xorg/modules/drivers/vboxvideo_drv.so
install -m 644 lib/VBoxGuestAdditions/vboxvideo_drv_${xserverABI}.so $out/lib/xorg/modules/drivers/vboxvideo_drv.so
# Install kernel modules
cd src

View File

@ -1,16 +1,16 @@
{ fetchurl, stdenv, which, pkgconfig, libxcb, xcbutilkeysyms, xcbutilimage,
pam, libX11, libev, cairo }:
pam, libX11, libev, cairo, libxkbcommon, libxkbfile }:
stdenv.mkDerivation rec {
name = "i3lock-2.4.1";
name = "i3lock-2.5";
src = fetchurl {
url = "http://i3wm.org/i3lock/${name}.tar.bz2";
sha256 = "4d29e66841138de562e71903d31ecaaefd8ecffe5e68da0d6c8d560ed543047c";
sha256 = "0xqdklvfcn2accwdbzsly7add0f3rh9sxjnahawas4zwwk4p49xc";
};
buildInputs = [ which pkgconfig libxcb xcbutilkeysyms xcbutilimage pam libX11
libev cairo ];
libev cairo libxkbcommon libxkbfile ];
makeFlags = "all";
installFlags = "PREFIX=\${out} SYSCONFDIR=\${out}/etc";

View File

@ -91,7 +91,7 @@ stdenv.mkDerivation {
urls = urls_;
# If set, prefer the content-addressable mirrors
# (http://nixos.org/tarballs) over the original URLs.
# (http://tarballs.nixos.org) over the original URLs.
preferHashedMirrors = true;
# New-style output content requirements.

View File

@ -2,7 +2,7 @@ rec {
# Content-addressable Nix mirrors.
hashedMirrors = [
http://nixos.org/tarballs
http://tarballs.nixos.org
];
# Mirrors for mirror://site/filename URIs, where "site" is
@ -159,6 +159,7 @@ rec {
# Debian.
debian = [
ftp://ftp.au.debian.org/debian/
ftp://ftp.de.debian.org/debian/
ftp://ftp.es.debian.org/debian/
ftp://ftp.fr.debian.org/debian/

View File

@ -1,22 +1,17 @@
{ pkgs
, linuxKernel ? pkgs.linux_3_9
, kernel ? pkgs.linux_3_9
, img ? "bzImage"
, rootModules ?
[ "cifs" "virtio_net" "virtio_pci" "virtio_blk" "virtio_balloon" "nls_utf8" "ext2" "ext3"
"ext4" "unix" "hmac" "md4" "ecb" "des_generic" "sha256"
]
[ "virtio_pci" "virtio_blk" "virtio_balloon" "ext4" "unix" "9p" "9pnet_virtio" ]
}:
with pkgs;
rec {
# The 15 second CIFS timeout is too short if the host if heavily
# loaded (e.g., in the Hydra build farm when it's running many jobs
# in parallel). So apply a patch to increase the timeout to 120s.
kernel = assert pkgs.linux.features.cifsTimeout; linuxKernel;
kvm = pkgs.qemu;
kvm = pkgs.qemu_kvm;
qemuProg = "${kvm}/bin/qemu-system-" + (if stdenv.system == "x86_64-linux" then "x86_64" else "i386");
modulesClosure = makeModulesClosure {
@ -78,6 +73,8 @@ rec {
mount -t proc none /proc
mount -t sysfs none /sys
echo 2 > /proc/sys/vm/panic_on_oom
for o in $(cat /proc/cmdline); do
case $o in
mountDisk=1)
@ -95,20 +92,14 @@ rec {
done
for i in $(cat ${modulesClosure}/insmod-list); do
args=
case $i in
*/cifs.ko)
args="CIFSMaxBufSize=4194304"
;;
esac
echo "loading module $(basename $i .ko)"
insmod $i $args
insmod $i
done
mount -t tmpfs none /dev
${createDeviceNodes "/dev"}
ifconfig eth0 up 10.0.2.15
ifconfig lo up
mkdir /fs
@ -123,14 +114,14 @@ rec {
echo "mounting Nix store..."
mkdir -p /fs/nix/store
mount -t cifs //10.0.2.4/store /fs/nix/store -o guest,sec=none,sec=ntlm
mount -t 9p store /fs/nix/store -o trans=virtio,version=9p2000.L,msize=262144,cache=fscache
mkdir -p /fs/tmp
mount -t tmpfs -o "mode=755" none /fs/tmp
echo "mounting host's temporary directory..."
mkdir -p /fs/tmp/xchg
mount -t cifs //10.0.2.4/xchg /fs/tmp/xchg -o guest,sec=none,sec=ntlm
mount -t 9p xchg /fs/tmp/xchg -o trans=virtio,version=9p2000.L,msize=262144,cache=fscache
mkdir -p /fs/proc
mount -t proc none /fs/proc
@ -140,6 +131,7 @@ rec {
mkdir -p /fs/etc
ln -sf /proc/mounts /fs/etc/mtab
echo "127.0.0.1 localhost" > /fs/etc/hosts
echo "Now running: $command"
test -n "$command"
@ -195,12 +187,12 @@ rec {
qemuCommandLinux = ''
${kvm}/bin/qemu-kvm \
${qemuProg} \
-enable-kvm \
${lib.optionalString (pkgs.stdenv.system == "x86_64-linux") "-cpu kvm64"} \
-nographic -no-reboot \
-net nic,model=virtio \
-chardev socket,id=samba,path=./samba \
-net user,guestfwd=tcp:10.0.2.4:445-chardev:samba \
-virtfs local,path=/nix/store,security_model=none,mount_tag=store \
-virtfs local,path=$TMPDIR/xchg,security_model=none,mount_tag=xchg \
-drive file=$diskImage,if=virtio,cache=writeback,werror=report \
-kernel ${kernel}/${img} \
-initrd ${initrd}/initrd \
@ -209,40 +201,6 @@ rec {
'';
startSamba =
''
export WHO=`whoami`
mkdir -p $TMPDIR/xchg
cat > $TMPDIR/smb.conf <<SMB
[global]
private dir = $TMPDIR
smb ports = 0
socket address = 127.0.0.1
pid directory = $TMPDIR
lock directory = $TMPDIR
log file = $TMPDIR/log.smbd
smb passwd file = $TMPDIR/smbpasswd
security = share
[store]
force user = $WHO
path = /nix/store
read only = no
guest ok = yes
[xchg]
force user = $WHO
path = $TMPDIR/xchg
read only = no
guest ok = yes
$EXTRA_SAMBA_CONF
SMB
rm -f ./samba
${socat}/bin/socat unix-listen:./samba exec:"${utillinux}/bin/setsid ${samba}/sbin/smbd -s $TMPDIR/smb.conf",nofork > /dev/null 2>&1 &
while [ ! -e ./samba ]; do sleep 0.1; done # ugly
'';
vmRunCommand = qemuCommand: writeText "vm-run" ''
export > saved-env
@ -262,7 +220,6 @@ rec {
diskImage=$diskImage
TMPDIR=$TMPDIR
cd $TMPDIR
${startSamba}
${qemuCommand}
EOF
@ -294,8 +251,8 @@ rec {
defaultCreateRootFS = ''
mkdir /mnt
${e2fsprogs}/sbin/mke2fs -F /dev/${hd}
${utillinux}/bin/mount -t ext2 /dev/${hd} /mnt
${e2fsprogs}/sbin/mkfs.ext4 /dev/${hd}
${utillinux}/bin/mount -t ext4 /dev/${hd} /mnt
if test -e /mnt/.debug; then
exec ${bash}/bin/sh
@ -309,9 +266,9 @@ rec {
/* Run a derivation in a Linux virtual machine (using Qemu/KVM). By
default, there is no disk image; the root filesystem is a tmpfs,
and /nix/store is shared with the host (via the CIFS protocol to
a Samba instance automatically started by Qemu). Thus, any pure
Nix derivation should run unmodified, e.g. the call
and /nix/store is shared with the host (via the 9P protocol).
Thus, any pure Nix derivation should run unmodified, e.g. the
call
runInLinuxVM patchelf
@ -319,7 +276,7 @@ rec {
`preVM' can optionally contain a shell command to be evaluated
*before* the VM is started (i.e., on the host). The attribute
`memSize' specifies the memory size of the VM in megabytes,
defaulting to 256. The attribute `diskImage' can optionally
defaulting to 512. The attribute `diskImage' can optionally
specify a file system image to be attached to /dev/sda. (Note
that currently we expect the image to contain a filesystem, not a
full disk image with a partition table etc.)
@ -334,7 +291,7 @@ rec {
args = ["-e" (vmRunCommand qemuCommandLinux)];
origArgs = attrs.args;
origBuilder = attrs.builder;
QEMU_OPTS = "-m ${toString (if attrs ? memSize then attrs.memSize else 256)}";
QEMU_OPTS = "-m ${toString (if attrs ? memSize then attrs.memSize else 512)}";
});
@ -391,55 +348,6 @@ rec {
});
qemuCommandGeneric = ''
PATH="${samba}/sbin:$PATH" \
${kvm}/bin/qemu-kvm \
-nographic -no-reboot \
-smb $(pwd) -hda $diskImage \
$QEMU_OPTS
'';
/* Run a command in an x86 virtual machine image containing an
arbitrary OS. The VM should be configured to do the following:
- Write log output to the serial port.
- Mount //10.0.2.4/qemu via SMB.
- Execute the command "cmd" on the SMB share. It can access the
original derivation attributes in "saved-env" on the share.
- Produce output under "out" on the SMB share.
- Write an exit code to "in-vm-exit" on the SMB share ("0"
meaning success).
- Power-off or reboot the machine.
*/
runInGenericVM = drv: lib.overrideDerivation drv (attrs: {
requiredSystemFeatures = [ "kvm" ];
builder = "${bash}/bin/sh";
args = ["-e" (vmRunCommand qemuCommandGeneric)];
QEMU_OPTS = "-m ${toString (if attrs ? memSize then attrs.memSize else 256)}";
preVM = ''
diskImage=$(pwd)/disk-image.qcow2
origImage=${attrs.diskImage}
if test -d "$origImage"; then origImage="$origImage/disk-image.qcow2"; fi
${kvm}/bin/qemu-img create -b "$origImage" -f qcow2 $diskImage
echo "$buildCommand" > cmd
eval "$postPreVM"
'';
postVM = ''
cp -prvd out $out
'';
});
/* Like runInLinuxVM, but run the build not using the stdenv from
the Nix store, but using the tools provided by /bin, /usr/bin
etc. from the specified filesystem image, which typically is a
@ -1081,6 +989,30 @@ rec {
packages = commonOpenSUSEPackages;
};
centos64i386 = {
name = "centos-6.4-i386";
fullName = "CentOS 6.4 (i386)";
packagesList = fetchurl {
url = http://mirror.centos.org/centos/6.4/os/i386/repodata/87aa4c4e19f9a3ec93e3d820f1ea6b6ece8810cb45f117a16354465e57a1b50d-primary.xml.gz;
sha256 = "03dml5bmwijlcfhigwa5rc88ikkfdgmg286qwf9yr8zr3574ral7";
};
urlPrefix = http://mirror.centos.org/centos/6.4/os/i386/ ;
archs = ["noarch" "i386"];
packages = commonCentOSPackages;
};
centos64x86_64 = {
name = "centos-6.4-x86_64";
fullName = "CentOS 6.4 (x86_64)";
packagesList = fetchurl {
url = http://mirror.centos.org/centos/6.4/os/x86_64/repodata/4d4030b92f010f466eb4f004312b9f532b9e85e60c5e6421e8b429c180ac1efe-primary.xml.gz;
sha256 = "1zhymj0c2adlx0hn8phcws2rwaskkwmk217hnip4c3q15ywk0h2d";
};
urlPrefix = http://mirror.centos.org/centos/6.4/os/x86_64/ ;
archs = ["noarch" "x86_64"];
packages = commonCentOSPackages;
};
};
@ -1509,6 +1441,28 @@ rec {
"unzip"
];
commonCentOSPackages = [
"autoconf"
"automake"
"basesystem"
"bzip2"
"curl"
"diffutils"
"centos-release"
"findutils"
"gawk"
"gcc-c++"
"gzip"
"make"
"patch"
"perl"
"pkgconfig"
"procps"
"rpm"
"rpm-build"
"tar"
"unzip"
];
/* Common packages for openSUSE images. */
commonOpenSUSEPackages = [

View File

@ -7,8 +7,12 @@ rec {
# Run the PatchELF derivation in a VM.
buildPatchelfInVM = runInLinuxVM patchelf;
buildHelloInVM = runInLinuxVM hello;
testRPMImage = makeImageTestScript diskImages.fedora16i386;
buildPanInVM = runInLinuxVM pan;
testRPMImage = makeImageTestScript diskImages.fedora16x86_64;
buildPatchelfRPM = buildRPM {
@ -17,10 +21,10 @@ rec {
diskImage = diskImages.fedora16x86_64;
};
testUbuntuImage = makeImageTestScript diskImages.ubuntu810i386;
buildInDebian = runInLinuxImage (stdenv.mkDerivation {
name = "deb-compile";
src = patchelf.src;
@ -32,39 +36,4 @@ rec {
'';
});
/*
testFreeBSD = runInGenericVM {
name = "aterm-freebsd";
src = aterm242fixes.src;
diskImage = "/tmp/freebsd-7.0.qcow";
postPreVM = ''
cp $src aterm.tar.bz2
'';
buildCommand = ''
set > /tmp/my-env
. /mnt/saved-env
. /tmp/my-env
unset TEMP
unset TEMPDIR
unset TMP
unset TMPDIR
set -x
echo "Hello World!!!"
mkdir /mnt/out
echo "bar" > /mnt/out/foo
cd /tmp
tar xvf /mnt/aterm.tar.bz2
cd aterm-*
./configure --prefix=/mnt/out
make
make install
'';
};
*/
}

View File

@ -4,7 +4,7 @@ stdenv.mkDerivation {
name = "bakoma-ttf";
src = fetchurl {
url = http://nixos.org/tarballs/bakoma-ttf.tar.bz2;
url = http://tarballs.nixos.org/bakoma-ttf.tar.bz2;
sha256 = "1j1y3cq6ys30m734axc0brdm2q9n2as4h32jws15r7w5fwr991km";
};

View File

@ -4,7 +4,7 @@ stdenv.mkDerivation rec {
name = "cacert-20121229";
src = fetchurl {
url = "http://nixos.org/tarballs/${name}.pem.bz2";
url = "http://tarballs.nixos.org/${name}.pem.bz2";
sha256 = "031s86pqvn620zkj6w97hqgjvkp6vsvlymzz7rwvkv25zvrjsgif";
};

View File

@ -9,10 +9,16 @@ stdenv.mkDerivation {
sha256 = "09ch709cb9fniwc4221xgkq0jf0x0lxs814sqig8p2dcll0llvzk";
};
buildInputs = [ ORBit2 dbus_libs dbus_glib libxml2 polkit gtk ];
buildInputs = [ ORBit2 dbus_libs dbus_glib libxml2 gtk ]
# polkit requires pam, which requires shadow.h, which is not available on
# darwin
++ stdenv.lib.optional (!stdenv.isDarwin) polkit;
propagatedBuildInputs = [ glib ];
nativeBuildInputs = [ pkgconfig intltool ];
configureFlags = "--with-gtk=2.0";
configureFlags = [ "--with-gtk=2.0" ]
# fixes the "libgconfbackend-oldxml.so is not portable" error on darwin
++ stdenv.lib.optional stdenv.isDarwin [ "--enable-static" ];
}

View File

@ -1,4 +1,4 @@
{stdenv, fetchurl_gnome, pkgconfig, glib, libIDL}:
{ stdenv, fetchurl_gnome, pkgconfig, glib, libIDL, libintlOrEmpty }:
stdenv.mkDerivation rec {
name = src.pkgname;
@ -14,5 +14,24 @@ stdenv.mkDerivation rec {
'';
nativeBuildInputs = [ pkgconfig ];
propagatedBuildInputs = [ glib libIDL ];
propagatedBuildInputs = [ glib libIDL ] ++ libintlOrEmpty;
meta = with stdenv.lib; {
homepage = https://projects.gnome.org/ORBit2/;
description = "A a CORBA 2.4-compliant Object Request Broker";
platforms = platforms.unix;
maintainers = with maintainers; [ lovek323 ];
longDescription = ''
ORBit2 is a CORBA 2.4-compliant Object Request Broker (ORB) featuring
mature C, C++ and Python bindings. Bindings (in various degrees of
completeness) are also available for Perl, Lisp, Pascal, Ruby, and TCL;
others are in-progress. It supports POA, DII, DSI, TypeCode, Any, IR and
IIOP. Optional features including INS and threading are available. ORBit2
is engineered for the desktop workstation environment, with a focus on
performance, low resource usage, and security. The core ORB is written in
C, and runs under Linux, UNIX (BSD, Solaris, HP-UX, ...), and Windows.
ORBit2 is developed and released as open source software under GPL/LGPL.
'';
};
}

View File

@ -1,12 +1,12 @@
{ kde, kdelibs, shared_desktop_ontologies, bzip2, libssh, exiv2, attica
, libcanberra, virtuoso, samba, libjpeg, ntrack, pkgconfig, qca2, xz, pulseaudio
, networkmanager, kactivities, kdepimlibs, openexr, ilmbase
, networkmanager, kactivities, kdepimlibs, openexr, ilmbase, config
}:
kde {
buildInputs = [
kdelibs attica xz bzip2 libssh libjpeg exiv2 ntrack
qca2 samba (libcanberra.override { gtk = null; }) pulseaudio
qca2 samba libcanberra pulseaudio
networkmanager kactivities kdepimlibs openexr
#todo: add openslp
];

View File

@ -1,7 +1,7 @@
{ kde, kdelibs, libspectre, analitza, rLang, pkgconfig, gfortran, libqalculate }:
{ kde, kdelibs, libspectre, analitza, R, pkgconfig, gfortran, libqalculate }:
kde {
buildInputs = [ kdelibs libspectre analitza rLang gfortran libqalculate];
buildInputs = [ kdelibs libspectre analitza R gfortran libqalculate];
nativeBuildInputs = [ pkgconfig ];

View File

@ -0,0 +1,22 @@
diff --git a/kopete/protocols/jabber/googletalk/libjingle/talk/session/phone/linphonemediaengine.cc b/kopete/protocols/jabber/googletalk/libjingle/talk/session/phone/linphonemediaengine.cc
index 88fdbd1..57c6c05 100644
--- a/kopete/protocols/jabber/googletalk/libjingle/talk/session/phone/linphonemediaengine.cc
+++ b/kopete/protocols/jabber/googletalk/libjingle/talk/session/phone/linphonemediaengine.cc
@@ -200,7 +200,7 @@ bool LinphoneVoiceChannel::SetSendCodecs(const std::vector<AudioCodec>& codecs)
LOG(LS_INFO) << "Using " << i->name << "/" << i->clockrate;
pt_ = i->id;
audio_stream_ = audio_stream_start(&av_profile, -1, "localhost", port1, i->id, 250, 0); /* -1 means that function will choose some free port */
- port2 = rtp_session_get_local_port(audio_stream_->session);
+ port2 = rtp_session_get_local_port(audio_stream_->ms.session);
first = false;
}
}
@@ -211,7 +211,7 @@ bool LinphoneVoiceChannel::SetSendCodecs(const std::vector<AudioCodec>& codecs)
// working with a buggy client; let's try PCMU.
LOG(LS_WARNING) << "Received empty list of codces; using PCMU/8000";
audio_stream_ = audio_stream_start(&av_profile, -1, "localhost", port1, 0, 250, 0); /* -1 means that function will choose some free port */
- port2 = rtp_session_get_local_port(audio_stream_->session);
+ port2 = rtp_session_get_local_port(audio_stream_->ms.session);
}
return true;

View File

@ -0,0 +1,47 @@
diff --git a/kopete/protocols/jabber/googletalk/libjingle/talk/p2p/base/stun.h b/kopete/protocols/jabber/googletalk/libjingle/talk/p2p/base/stun.h
--- a/kopete/protocols/jabber/googletalk/libjingle/talk/p2p/base/stun.h
+++ b/kopete/protocols/jabber/googletalk/libjingle/talk/p2p/base/stun.h
@@ -25,16 +25,8 @@
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef __STUN_H__
-#define __STUN_H__
-
-// This file contains classes for dealing with the STUN and TURN protocols.
-// Both protocols use the same wire format.
-
-#include "talk/base/basictypes.h"
-#include "talk/base/bytebuffer.h"
-#include <string>
-#include <vector>
+#ifndef STUN__HH__IN__STUNREQUEST_CYCLIC_PROBLEM_FIX
+#define STUN__HH__IN__STUNREQUEST_CYCLIC_PROBLEM_FIX
namespace cricket {
@@ -55,6 +47,23 @@
STUN_DATA_INDICATION = 0x0115
};
+}
+
+#endif // STUN__HH__IN__STUNREQUEST_CYCLIC_PROBLEM_FIX
+
+#ifndef __STUN_H__
+#define __STUN_H__
+
+// This file contains classes for dealing with the STUN and TURN protocols.
+// Both protocols use the same wire format.
+
+#include "talk/base/basictypes.h"
+#include "talk/base/bytebuffer.h"
+#include <string>
+#include <vector>
+
+namespace cricket {
+
// These are the types of attributes defined in STUN & TURN. Next to each is
// the name of the class (T is StunTAttribute) that implements that type.
enum StunAttributeType {

View File

@ -18,6 +18,8 @@ kde {
patchPhase =
''
cp -v ${./FindmsiLBC.cmake} kopete/cmake/modules/FindmsiLBC.cmake
patch -p1 < ${./kopete-4.10.4-kopete-linphonemediaengine.patch}
patch -p1 < ${./kopete-4.10.4-kopete-stun.patch}
'';
cmakeFlags = [ "-DBUILD_skypebuttons=TRUE" ];

View File

@ -5,7 +5,7 @@
kde {
buildInputs =
[ kdelibs shared_desktop_ontologies bzip2 libssh exiv2 attica
samba (libcanberra.override { gtk = null; }) ntrack libjpeg
samba libcanberra ntrack libjpeg
];
passthru.propagatedUserEnvPackages = [ virtuoso ];

View File

@ -6,7 +6,7 @@
kde {
buildInputs =
[ kdelibs shared_desktop_ontologies bzip2 libssh exiv2 attica xz networkmanager
samba (libcanberra.override { gtk = null; }) ntrack libjpeg qca2 pulseaudio
samba libcanberra ntrack libjpeg qca2 pulseaudio
];
nativeBuildInputs = [ pkgconfig ];

View File

@ -0,0 +1,31 @@
{ stdenv, fetchurl, jre, gnutar, bash }:
stdenv.mkDerivation rec {
name = "closure-compiler-${version}";
version = "20130603";
src = fetchurl {
url = "http://dl.google.com/closure-compiler/compiler-${version}.tar.gz";
sha256 = "0bk0s8p9r9an5m0l8y23wjlx490k15i4zah0a384a2akzji8y095";
};
phases = [ "installPhase" ];
buildInputs = [ gnutar ];
installPhase = ''
mkdir -p $out/lib/java $out/bin
tar -xzf $src
cp -r compiler.jar $out/lib/java/
echo "#!${bash}/bin/bash" > $out/bin/closure-compiler
echo "${jre}/bin/java -jar $out/lib/java/compiler.jar \"\$@\"" >> $out/bin/closure-compiler
chmod +x $out/bin/closure-compiler
'';
meta = {
description = "A tool for making JavaScript download and run faster";
homepage = https://developers.google.com/closure/compiler/;
license = stdenv.lib.licenses.asl20;
platforms = stdenv.lib.platforms.linux;
};
}

View File

@ -6,7 +6,7 @@ stdenv.mkDerivation {
src =
if stdenv.system == "i686-linux" then
fetchurl {
url = http://nixos.org/tarballs/ghc-6.4.2-i386-unknown-linux.tar.bz2;
url = http://tarballs.nixos.org/ghc-6.4.2-i386-unknown-linux.tar.bz2;
md5 = "092fe2e25dab22b926babe97cc77db1f";
}
else if stdenv.system == "x86_64-linux" then

View File

@ -0,0 +1,28 @@
{ stdenv, fetchgit, nodejs }:
stdenv.mkDerivation rec {
name = "lessc-${version}";
version = "1.4.0";
src = fetchgit {
url = https://github.com/less/less.js.git;
rev = "refs/tags/v${version}";
sha256 = "12nzaz7v1bnqzylh4zm1srrj7w7f45fqj4sihxyg0bknfvfwdc56";
};
phases = [ "installPhase" ];
installPhase = ''
mkdir -p $out/bin $out/lib
cp -r $src/bin/* $out/bin/
cp -r $src/lib/* $out/lib/
substituteInPlace $out/bin/lessc --replace "/usr/bin/env node" ${nodejs}/bin/node
'';
meta = {
description = "LESS to CSS compiler";
homepage = http://lesscss.org/;
license = stdenv.lib.licenses.asl20;
platforms = stdenv.lib.platforms.linux;
};
}

View File

@ -18,19 +18,23 @@ stdenv.mkDerivation {
propagatedBuildInputs = [ libffi ];
buildInputs = [ perl groff cmake python ]; # ToDo: polly, libc++; enable cxx11?
# created binaries need to be run before installation... I coudn't find a better way
preBuild = ''export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:"`pwd`/lib'';
# created binaries need to be run before installation... I coudn't find a
# better way
preBuild = ( if stdenv.isDarwin
then "export DYLD_LIBRARY_PATH='$DYLD_LIBRARY_PATH:'`pwd`/lib"
else "export LD_LIBRARY_PATH='$LD_LIBRARY_PATH:'`pwd`/lib" );
cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" "-DBUILD_SHARED_LIBS=ON" ];
cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" ]
++ stdenv.lib.optional (!stdenv.isDarwin) [ "-DBUILD_SHARED_LIBS=ON" ];
enableParallelBuilding = true;
#doCheck = true; # tests are broken, don't know why
# doCheck = true; # tests are broken, don't know why
meta = {
homepage = http://llvm.org/;
meta = with stdenv.lib; {
description = "Collection of modular and reusable compiler and toolchain technologies";
license = "BSD";
maintainers = with stdenv.lib.maintainers; [viric shlevy raskin];
platforms = with stdenv.lib.platforms; all;
homepage = http://llvm.org/;
license = licenses.bsd3;
maintainers = with maintainers; [ lovek323 raskin shlevy viric ];
platforms = platforms.all;
};
}

View File

@ -4,7 +4,7 @@ stdenv.mkDerivation {
name = "ocaml-3.08.0";
builder = ./builder.sh;
src = fetchurl {
url = http://nixos.org/tarballs/ocaml-3.08.0.tar.gz;
url = http://tarballs.nixos.org/ocaml-3.08.0.tar.gz;
md5 = "c6ef478362295c150101cdd2efcd38e0";
};
configureScript = ./configure-3.08.0;

View File

@ -4,12 +4,12 @@ let
# !!! These should be on nixos.org
src = if glibc.system == "x86_64-linux" then
fetchurl {
url = http://nixos.org/tarballs/openjdk-bootstrap-x86_64-linux-2012-08-24.tar.xz;
url = http://tarballs.nixos.org/openjdk-bootstrap-x86_64-linux-2012-08-24.tar.xz;
sha256 = "0gla9dxrfq2w1hvgsnn8jg8a60k27im6z43a6iidi0qmwa0wah32";
}
else if glibc.system == "i686-linux" then
fetchurl {
url = http://nixos.org/tarballs/openjdk-bootstrap-i686-linux-2012-08-24.tar.xz;
url = http://tarballs.nixos.org/openjdk-bootstrap-i686-linux-2012-08-24.tar.xz;
sha256 = "184wq212bycwbbq4ix8cc6jwjxkrqw9b01zb86q95kqpa8zy5206";
}
else throw "No bootstrap for system";

View File

@ -2,7 +2,7 @@
stdenv.mkDerivation {
name = "qcmm-2006-01-31";
src = fetchurl {
url = http://nixos.org/tarballs/qc--20060131.tar.gz;
url = http://tarballs.nixos.org/qc--20060131.tar.gz;
md5 = "9097830775bcf22c9bad54f389f5db23";
};
buildInputs = [ mk ocaml noweb groff ];

View File

@ -1,11 +1,12 @@
{ stdenv, fetchurl, php, autoconf, automake }:
stdenv.mkDerivation {
name = "php-xdebug-2.0.5";
stdenv.mkDerivation rec {
version = "2.2.3";
name = "php-xdebug-${version}";
src = fetchurl {
url = "http://xdebug.org/files/xdebug-2.0.5.tgz";
sha256 = "1cmq7c36gj8n41mfq1wba5rij8j77yqhydpcsbcysk1zchg68f26";
url = "http://xdebug.org/files/xdebug-2.2.3.tgz";
sha256 = "076px4ax3qcqr3mmhi9jjkfhn7pcymrpda4hzy6kgn3flhnqfldk";
};
buildInputs = [ php autoconf automake ];

View File

@ -1,7 +1,8 @@
{ stdenv, fetchurl, composableDerivation, autoconf, automake, flex, bison
, apacheHttpd, mysql, libxml2, readline, zlib, curl, gd, postgresql, gettext
, openssl, pkgconfig, sqlite, config, libiconv, libjpeg, libpng, freetype
, libxslt, libmcrypt, bzip2, icu }:
, openssl, pkgconfig, sqlite, config, libjpeg, libpng, freetype, libxslt
, libmcrypt, bzip2, icu, libssh2, makeWrapper, libiconvOrEmpty, libiconv, uwimap
, pam }:
let
libmcryptOverride = libmcrypt.override { disablePosixThreads = true; };
@ -15,7 +16,15 @@ composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed)
enableParallelBuilding = true;
buildInputs = ["flex" "bison" "pkgconfig"];
buildInputs
= [ flex bison pkgconfig ]
++ stdenv.lib.optionals stdenv.isDarwin [ libssh2 makeWrapper ];
# need to include the C++ standard library when compiling on darwin
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-lstdc++";
# need to specify where the dylib for icu is stored
DYLD_LIBRARY_PATH = stdenv.lib.optionalString stdenv.isDarwin "${icu}/lib";
flags = {
@ -35,17 +44,21 @@ composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed)
buildInputs = [curl openssl];
};
pcntl = {
configureFlags = [ "--enable-pcntl" ];
};
zlib = {
configureFlags = ["--with-zlib=${zlib}"];
buildInputs = [zlib];
};
libxml2 = {
configureFlags = [
"--with-libxml-dir=${libxml2}"
#"--with-iconv-dir=${libiconv}"
];
buildInputs = [ libxml2 ];
configureFlags
= [ "--with-libxml-dir=${libxml2}" ]
++ stdenv.lib.optional (libiconvOrEmpty != [])
[ "--with-iconv=${libiconv}" ];
buildInputs = [ libxml2 ] ++ libiconvOrEmpty;
};
readline = {
@ -90,7 +103,7 @@ composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed)
gd = {
configureFlags = [
"--with-gd"
"--with-gd=${gd}"
"--with-freetype-dir=${freetype}"
"--with-png-dir=${libpng}"
"--with-jpeg-dir=${libjpeg}"
@ -120,6 +133,11 @@ composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed)
buildInputs = [gettext];
};
imap = {
configureFlags = [ "--with-imap=${uwimap}" "--with-imap-ssl" ];
buildInputs = [ uwimap openssl pam ];
};
intl = {
configureFlags = ["--enable-intl"];
buildInputs = [icu];
@ -151,45 +169,35 @@ composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed)
ftp = {
configureFlags = ["--enable-ftp"];
};
/*
php is build within this derivation in order to add the xdebug lines to the php.ini.
So both Apache and command line php both use xdebug without having to configure anything.
Xdebug could be put in its own derivation.
* /
meta = {
description = "debugging support for PHP";
homepage = http://xdebug.org;
license = "based on the PHP license - as is";
};
*/
};
cfg = {
mysqlSupport = config.php.mysql or true;
mysqliSupport = config.php.mysqli or true;
pdo_mysqlSupport = config.php.pdo_mysql or true;
libxml2Support = config.php.libxml2 or true;
apxs2Support = config.php.apxs2 or true;
bcmathSupport = config.php.bcmath or true;
socketsSupport = config.php.sockets or true;
bz2Support = config.php.bz2 or false;
curlSupport = config.php.curl or true;
exifSupport = config.php.exif or true;
ftpSupport = config.php.ftp or true;
gdSupport = config.php.gd or true;
gettextSupport = config.php.gettext or true;
imapSupport = config.php.imap or false;
intlSupport = config.php.intl or true;
libxml2Support = config.php.libxml2 or true;
mbstringSupport = config.php.mbstring or true;
mcryptSupport = config.php.mcrypt or false;
mysqlSupport = config.php.mysql or true;
mysqliSupport = config.php.mysqli or true;
opensslSupport = config.php.openssl or true;
pcntlSupport = config.php.pcntl or true;
pdo_mysqlSupport = config.php.pdo_mysql or true;
postgresqlSupport = config.php.postgresql or true;
readlineSupport = config.php.readline or true;
sqliteSupport = config.php.sqlite or true;
soapSupport = config.php.soap or true;
zlibSupport = config.php.zlib or true;
opensslSupport = config.php.openssl or true;
mbstringSupport = config.php.mbstring or true;
gdSupport = config.php.gd or true;
intlSupport = config.php.intl or true;
exifSupport = config.php.exif or true;
socketsSupport = config.php.sockets or true;
sqliteSupport = config.php.sqlite or true;
xslSupport = config.php.xsl or false;
mcryptSupport = config.php.mcrypt or false;
bz2Support = config.php.bz2 or false;
zipSupport = config.php.zip or true;
ftpSupport = config.php.ftp or true;
zlibSupport = config.php.zlib or true;
};
configurePhase = ''
@ -202,7 +210,11 @@ composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed)
installPhase = ''
unset installPhase; installPhase;
cp php.ini-production $iniFile
'';
'' + ( stdenv.lib.optionalString stdenv.isDarwin ''
for prog in $out/bin/*; do
wrapProgram "$prog" --prefix DYLD_LIBRARY_PATH : "$DYLD_LIBRARY_PATH"
done
'' );
src = fetchurl {
url = "http://nl.php.net/get/php-${version}.tar.bz2/from/this/mirror";
@ -212,8 +224,10 @@ composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed)
meta = {
description = "The PHP language runtime engine";
homepage = http://www.php.net/;
license = "PHP-3";
homepage = http://www.php.net/;
license = "PHP-3";
maintainers = with stdenv.lib.maintainers; [ lovek323 ];
platforms = stdenv.lib.platforms.unix;
};
patches = [./fix.patch];

View File

@ -1,6 +1,5 @@
{ stdenv, fetchurl, zlib ? null, zlibSupport ? true, bzip2
, sqlite, tcl, tk, x11, openssl, readline, db4, ncurses, gdbm
}:
, sqlite, tcl, tk, x11, openssl, readline, db4, ncurses, gdbm, libX11 }:
assert zlibSupport -> zlib != null;
@ -25,6 +24,10 @@ let
# doesn't work in Nix because Nix changes the mtime of files in
# the Nix store to 1. So treat that as a special case.
./nix-store-mtime.patch
# patch python to put zero timestamp into pyc
# if DETERMINISTIC_BUILD env var is set
./deterministic-build.patch
];
postPatch = stdenv.lib.optionalString (stdenv.gcc.libc != null) ''
@ -175,7 +178,7 @@ let
tkinter = buildInternalPythonModule {
moduleName = "tkinter";
deps = [ tcl tk x11 ];
deps = [ tcl tk x11 libX11 ];
};
readline = buildInternalPythonModule {

View File

@ -0,0 +1,36 @@
diff -ur orig/Lib/py_compile.py new/Lib/py_compile.py
--- orig/Lib/py_compile.py
+++ new/Lib/py_compile.py
@@ -122,7 +122,10 @@
cfile = file + (__debug__ and 'c' or 'o')
with open(cfile, 'wb') as fc:
fc.write('\0\0\0\0')
- wr_long(fc, timestamp)
+ if "DETERMINISTIC_BUILD" in os.environ:
+ fc.write('\0\0\0\0')
+ else:
+ wr_long(fc, timestamp)
marshal.dump(codeobject, fc)
fc.flush()
fc.seek(0, 0)
diff -ur orig/Python/import.c new/Python/import.c
--- orig/Python/import.c
+++ new/Python/import.c
@@ -939,10 +939,12 @@
return;
}
/* Now write the true mtime (as a 32-bit field) */
- fseek(fp, 4L, 0);
- assert(mtime <= 0xFFFFFFFF);
- PyMarshal_WriteLongToFile((long)mtime, fp, Py_MARSHAL_VERSION);
- fflush(fp);
+ if (Py_GETENV("DETERMINISTIC_BUILD") == NULL) {
+ fseek(fp, 4L, 0);
+ assert(mtime <= 0xFFFFFFFF);
+ PyMarshal_WriteLongToFile((long)mtime, fp, Py_MARSHAL_VERSION);
+ fflush(fp);
+ }
fclose(fp);
if (Py_VerboseFlag)
PySys_WriteStderr("# wrote %s\n", cpathname);

View File

@ -1,37 +0,0 @@
{ stdenv, fetchurl, readline, perl, gfortran, libX11, libpng, libXt, zlib
, withBioconductor ? false
}:
stdenv.mkDerivation {
name = "r-lang";
version = "2.12.0";
src = fetchurl {
url = http://cran.r-project.org/src/base/R-2/R-2.12.0.tar.gz;
sha256 = "93d72d845b01c6cd00e58f04b5e78fd6c83de96a8620505ad2a016772af02179";
};
bioconductor = if withBioconductor then import ../development/libraries/science/biology/bioconductor { inherit fetchurl stdenv readline; } else null;
postUnpack = ''
gunzip R-2.12.0/src/library/Recommended/Matrix_0.999375-44.tar.gz
tar --file=R-2.12.0/src/library/Recommended/Matrix_0.999375-44.tar --delete Matrix/src/dummy.cpp
gzip R-2.12.0/src/library/Recommended/Matrix_0.999375-44.tar
'';
buildInputs = [readline perl gfortran libpng libX11 libXt zlib];
configureFlags = ["--enable-R-shlib"] ;
meta = {
description = "R is a language and environment for statistical computing and graphics";
license = "GPL2";
homepage = http://www.r-project.org/;
longDescription = ''
R is a language and environment for statistical computing and
graphics. It is a GNU project which is similar to the S language.
R provides a wide variety of statistical (linear and nonlinear
modelling, classical statistical tests, time-series analysis,
classification, clustering, ...) and graphical techniques, and is
highly extensible.
'';
};
}

View File

@ -4,12 +4,12 @@
stdenv.mkDerivation rec {
pname = "racket";
version = "5.3.4";
version = "5.3.5";
name = "${pname}-${version}";
src = fetchurl {
url = "http://download.racket-lang.org/installers/${version}/${pname}/${name}-src-unix.tgz";
sha256 = "0yrdmpdvzf092869y6zjjjxl6j2kypgiv7qrfkv7lj8w01pbh7sd";
sha256 = "0xrd25d2iskkih08ydcjqnasg84r7g32apvdw7qzlp4xs1xynjwk";
};
# Various racket executables do run-time searches for these.

View File

@ -43,7 +43,7 @@ stdenv.mkDerivation {
meta = {
description = "Ren'Py Visual Novel Engine";
homepage = "http://renpy.org/";
licence = "MIT";
license = "MIT";
platforms = stdenv.lib.platforms.linux;
};
}

View File

@ -0,0 +1,13 @@
diff -r -u orig/lib/rdoc/generator/template/darkfish/filepage.rhtml new/lib/rdoc/generator/template/darkfish/filepage.rhtml
--- orig/lib/rdoc/generator/template/darkfish/filepage.rhtml
+++ new/lib/rdoc/generator/template/darkfish/filepage.rhtml
@@ -88,9 +88,6 @@
<body class="file file-popup">
<div id="metadata">
<dl>
- <dt class="modified-date">Last Modified</dt>
- <dd class="modified-date"><%= file.last_modified %></dd>
-
<% if file.requires %>
<dt class="requires">Requires</dt>
<dd class="requires">

View File

@ -39,6 +39,10 @@ let
[[ -e "$out/bin/$(basename $prog)" ]]
done
# looks like useless files which break build repeatability and consume space
rm $out/${ruby.gemPath}/doc/*/*/created.rid || true
rm $out/${ruby.gemPath}/gems/*/ext/*/mkmf.log || true
runHook postInstall
'';

View File

@ -28,6 +28,7 @@ g: # Get dependencies from patched gems
erubis = g.erubis_2_7_0;
eventmachine = g.eventmachine_1_0_3;
eventmachine_tail = g.eventmachine_tail_0_6_4;
excon = g.excon_0_25_0;
execjs = g.execjs_1_4_0;
fakes3 = g.fakes3_0_1_5;
faraday = g.faraday_0_8_7;
@ -36,6 +37,8 @@ g: # Get dependencies from patched gems
file_tail = g.file_tail_1_0_12;
foreman = g.foreman_0_62_0;
gettext = g.gettext_2_3_9;
heroku = g.heroku_2_39_4;
heroku_api = g.heroku_api_0_3_13;
highline = g.highline_1_6_16;
hike = g.hike_1_2_1;
hoe = g.hoe_3_1_0;
@ -46,6 +49,7 @@ g: # Get dependencies from patched gems
jsduck = g.jsduck_4_7_1;
json = g.json_1_7_7;
json_pure = g.json_pure_1_7_7;
launchy = g.launchy_2_3_0;
libv8 = g.libv8_3_3_10_4;
locale = g.locale_2_0_8;
lockfile = g.lockfile_2_1_0;
@ -57,6 +61,7 @@ g: # Get dependencies from patched gems
multipart_post = g.multipart_post_1_2_0;
net_sftp = g.net_sftp_2_0_5;
net_ssh = g.net_ssh_2_6_6;
netrc = g.netrc_0_7_7;
nix = g.nix_0_1_1;
nokogiri = g.nokogiri_1_5_9;
papertrail = g.papertrail_0_9_7;
@ -72,9 +77,11 @@ g: # Get dependencies from patched gems
railties = g.railties_3_2_13;
rake = g.rake_10_0_4;
rb_fsevent = g.rb_fsevent_0_9_3;
rb_readline = g.rb_readline_0_5_0;
rdiscount = g.rdiscount_2_0_7_1;
rdoc = g.rdoc_3_12_2;
remote_syslog = g.remote_syslog_1_6_13;
rest_client = g.rest_client_1_6_7;
right_aws = g.right_aws_3_0_5;
right_http_connection = g.right_http_connection_1_3_0;
rjb = g.rjb_1_4_6;
@ -222,6 +229,20 @@ adds support for IRIs and URI templates.
requiredGems = [ ];
sha256 = ''0nn583ba8kq4hhpr4lr2zzpm4r0mga0zfalxxpa6a4v27q71v5hh'';
};
addressable_2_3_5 = {
basename = ''addressable'';
meta = {
description = ''URI Implementation'';
homepage = ''http://addressable.rubyforge.org/'';
longDescription = ''Addressable is a replacement for the URI implementation that is part of
Ruby's standard library. It more closely conforms to the relevant RFCs and
adds support for IRIs and URI templates.
'';
};
name = ''addressable-2.3.5'';
requiredGems = [ ];
sha256 = ''11hv69v6h39j7m4v51a4p7my7xwjbhxbsg3y7ja156z7by10wkg7'';
};
arel_3_0_2 = {
basename = ''arel'';
meta = {
@ -504,6 +525,17 @@ using TCP/IP, especially if custom protocols are required.'';
requiredGems = [ g.eventmachine_1_0_3 ];
sha256 = ''1pvlb34vdzd81kf9f3xyibb4f55xjqm7lqqy28dgyci5cyv50y61'';
};
excon_0_25_0 = {
basename = ''excon'';
meta = {
description = ''speed, persistence, http(s)'';
homepage = ''https://github.com/geemus/excon'';
longDescription = ''EXtended http(s) CONnections'';
};
name = ''excon-0.25.0'';
requiredGems = [ ];
sha256 = ''0wv5bc7d138xw2v608ywl9cwhq7d7gl1l2hzdh96ia2a06hf4rry'';
};
execjs_1_4_0 = {
basename = ''execjs'';
meta = {
@ -593,6 +625,28 @@ So you can use GNU gettext tools for maintaining.
requiredGems = [ g.locale_2_0_8 g.text_1_2_1 ];
sha256 = ''1i4kzkan7mnyr1ihphx0sqs3k4qj9i1ldg4a1cwf5h2fz657wvjj'';
};
heroku_2_39_4 = {
basename = ''heroku'';
meta = {
description = ''Client library and CLI to deploy apps on Heroku.'';
homepage = ''http://heroku.com/'';
longDescription = ''Client library and command-line tool to deploy and manage apps on Heroku.'';
};
name = ''heroku-2.39.4'';
requiredGems = [ g.heroku_api_0_3_13 g.netrc_0_7_7 g.rest_client_1_6_7 g.launchy_2_3_0 g.rubyzip_0_9_9 g.rb_readline_0_5_0 ];
sha256 = ''1dhj529kqk6q66406f7iwlxwsifndlzcm0513i0hzlhc4lbkbf4x'';
};
heroku_api_0_3_13 = {
basename = ''heroku_api'';
meta = {
description = ''Ruby Client for the Heroku API'';
homepage = ''http://github.com/heroku/heroku.rb'';
longDescription = ''Ruby Client for the Heroku API'';
};
name = ''heroku-api-0.3.13'';
requiredGems = [ g.excon_0_25_0 ];
sha256 = ''179asf4rxjyg59zh5s7lcrnj7rrz9ymz1km24hdydgyay7px0yvi'';
};
highline_1_6_16 = {
basename = ''highline'';
meta = {
@ -753,6 +807,17 @@ For extra goodness, see: http://seattlerb.rubyforge.org/hoe/Hoe.pdf'';
requiredGems = [ ];
sha256 = ''0jxp0amx9xhka0ixnhvfgwc5ydr82hkxp81pvw32z31arx7jrwl6'';
};
launchy_2_3_0 = {
basename = ''launchy'';
meta = {
description = ''Launchy is helper class for launching cross-platform applications in a fire and forget manner.'';
homepage = ''http://github.com/copiousfreetime/launchy'';
longDescription = ''Launchy is helper class for launching cross-platform applications in a fire and forget manner. There are application concepts (browser, email client, etc) that are common across all platforms, and they may be launched differently on each platform. Launchy is here to make a common approach to launching external application from within ruby programs.'';
};
name = ''launchy-2.3.0'';
requiredGems = [ g.addressable_2_3_5 ];
sha256 = ''0ckvs40f29ancs0ki12pqb94k380cz41b4gbjplm85ly6kd57sph'';
};
libv8_3_3_10_4 = {
basename = ''libv8'';
meta = {
@ -841,6 +906,38 @@ added from the the {LTSW collection}[http://www.ltsw.se/knbase/internet/mime.htp
requiredGems = [ ];
sha256 = ''1qmx53a2kqk0nnhjbfvbc213wsxiprl0wqm7f2xvcsh253ld91iw'';
};
mime_types_1_23 = {
basename = ''mime_types'';
meta = {
description = ''This library allows for the identification of a file's likely MIME content type'';
homepage = ''http://mime-types.rubyforge.org/'';
longDescription = ''This library allows for the identification of a file's likely MIME content
type. This is release 1.23 that adds the ability to enumerate over the
collection of MIME types and updates the sources of a few MIME types. The
identification of MIME content type is based on a file's filename extensions.
MIME types are used in MIME-compliant communications, as in e-mail or HTTP
traffic, to indicate the type of content which is transmitted. MIME::Types
provides the ability for detailed information about MIME entities (provided as
a set of MIME::Type objects) to be determined and used programmatically. There
are many types defined by RFCs and vendors, so the list is long but not
complete; don't hesitate to ask to add additional information. This library
follows the IANA collection of MIME types (see below for reference).
MIME::Types for Ruby was originally based on and synchronized with MIME::Types
for Perl by Mark Overmeer, copyright 2001 - 2009. As of version 1.15, the data
format for the MIME::Type list has changed and the synchronization will no
longer happen.
MIME::Types is built to conform to the MIME types of RFCs 2045 and 2231. It
follows the official {IANA registry}[http://www.iana.org/assignments/media-types/]
({ftp}[ftp://ftp.iana.org/assignments/media-types]) with some unofficial types
added from the the {LTSW collection}[http://www.ltsw.se/knbase/internet/mime.htp].'';
};
name = ''mime-types-1.23'';
requiredGems = [ ];
sha256 = ''1ch5ngx67nhbq6j1y79c88gzk6i8pzqi860iwfpxp9c0bwf6fags'';
};
minitar_0_5_3 = {
basename = ''minitar'';
meta = {
@ -907,6 +1004,17 @@ added from the the {LTSW collection}[http://www.ltsw.se/knbase/internet/mime.htp
requiredGems = [ ];
sha256 = ''00fdnwv3jf311jjcc51lq8w26r62vzma91i79h5hj8i1ylrilx51'';
};
netrc_0_7_7 = {
basename = ''netrc'';
meta = {
description = ''Library to read and write netrc files.'';
homepage = ''https://github.com/geemus/netrc'';
longDescription = ''This library can read and update netrc files, preserving formatting including comments and whitespace.'';
};
name = ''netrc-0.7.7'';
requiredGems = [ ];
sha256 = ''1y64v93hsxdwgx3dfkyzdki3zqd1slm42dmi23v0zy3kap4vpard'';
};
nix_0_1_1 = {
basename = ''nix'';
meta = {
@ -1129,6 +1237,17 @@ request helpers feature.'';
requiredGems = [ ];
sha256 = ''0bdnxwdxj4r1kdxfi5nszbsb126njrr81p912g64xxs2bgxd1bp1'';
};
rb_readline_0_5_0 = {
basename = ''rb_readline'';
meta = {
description = ''Pure-Ruby Readline Implementation'';
homepage = ''http://github.com/luislavena/rb-readline'';
longDescription = ''The readline library provides a pure Ruby implementation of the GNU readline C library, as well as the Readline extension that ships as part of the standard library.'';
};
name = ''rb-readline-0.5.0'';
requiredGems = [ ];
sha256 = ''1aixbqpwrlzvrii4c80982jih4syanc2jl0lfcbibqvjasy9h9c8'';
};
rdiscount_2_0_7_1 = {
basename = ''rdiscount'';
meta = {
@ -1165,6 +1284,17 @@ See RDoc for a description of RDoc's markup and basic use.'';
requiredGems = [ g.servolux_0_10_0 g.file_tail_1_0_12 g.eventmachine_1_0_3 g.eventmachine_tail_0_6_4 g.syslog_protocol_0_9_2 g.em_resolv_replace_1_1_3 ];
sha256 = ''0q35j02k2l3fw3fdzq0i3rd6chsqr982gj13f3m3lsxm7kms03nw'';
};
rest_client_1_6_7 = {
basename = ''rest_client'';
meta = {
description = ''Simple HTTP and REST client for Ruby, inspired by microframework syntax for specifying actions.'';
homepage = ''http://github.com/archiloque/rest-client'';
longDescription = ''A simple HTTP and REST client for Ruby, inspired by the Sinatra microframework style of specifying actions: get, put, post, delete.'';
};
name = ''rest-client-1.6.7'';
requiredGems = [ g.mime_types_1_23 ];
sha256 = ''0nn7zalgidz2yj0iqh3xvzh626krm2al79dfiij19jdhp0rk8853'';
};
right_aws_3_0_5 = {
basename = ''right_aws'';
meta = {

View File

@ -38,7 +38,9 @@ stdenv.mkDerivation rec {
++ (op (!cursesSupport && stdenv.isDarwin) readline);
enableParallelBuilding = true;
patches = [ ./ruby19-parallel-install.patch ];
patches = [ ./ruby19-parallel-install.patch
./bitperfect-rdoc.patch
];
configureFlags = [ "--enable-shared" "--enable-pthread" ]
# on darwin, we have /usr/include/tk.h -- so the configure script detects

View File

@ -1,5 +1,6 @@
{ fetchurl, stdenv, pkgconfig, libdaemon, dbus, perl, perlXMLParser
, expat, gettext, intltool, glib, qt4 ? null, libiconvOrEmpty
, expat, gettext, intltool, glib, libiconvOrEmpty
, qt4 ? null
, qt4Support ? false
, withLibdnssdCompat ? false }:
@ -25,23 +26,29 @@ stdenv.mkDerivation rec {
[ "--disable-qt3" "--disable-gdbm" "--disable-mono"
"--disable-gtk" "--disable-gtk3"
"--${if qt4Support then "enable" else "disable"}-qt4"
"--disable-python"
"--with-distro=none" "--localstatedir=/var"
] ++ stdenv.lib.optional withLibdnssdCompat "--enable-compat-libdns_sd";
"--disable-python" "--localstatedir=/var" "--with-distro=none" ]
++ stdenv.lib.optional withLibdnssdCompat "--enable-compat-libdns_sd"
# autoipd won't build on darwin
++ stdenv.lib.optional stdenv.isDarwin "--disable-autoipd";
meta = {
preBuild = stdenv.lib.optionalString stdenv.isDarwin ''
sed -i '20 i\
#define __APPLE_USE_RFC_2292' \
avahi-core/socket.c
'';
meta = with stdenv.lib; {
description = "Avahi, an mDNS/DNS-SD implementation";
homepage = http://avahi.org;
license = licenses.lgpl2Plus;
platforms = platforms.unix;
maintainers = with maintainers; [ lovek323 ludo ];
longDescription = ''
Avahi is a system which facilitates service discovery on a local
network. It is an implementation of the mDNS (for "Multicast
DNS") and DNS-SD (for "DNS-Based Service Discovery")
protocols.
'';
homepage = http://avahi.org;
license = "LGPLv2+";
platforms = stdenv.lib.platforms.linux; # arbitrary choice
maintainers = [ stdenv.lib.maintainers.ludo ];
};
}

View File

@ -0,0 +1,91 @@
{ stdenv, fetchurl, icu, expat, zlib, bzip2, python
, enableRelease ? true
, enableDebug ? false
, enableSingleThreaded ? false
, enableMultiThreaded ? true
, enableShared ? true
, enableStatic ? false
, enablePIC ? false
, enableExceptions ? false
, taggedLayout ? ((enableRelease && enableDebug) || (enableSingleThreaded && enableMultiThreaded) || (enableShared && enableStatic))
}:
let
variant = stdenv.lib.concatStringsSep ","
(stdenv.lib.optional enableRelease "release" ++
stdenv.lib.optional enableDebug "debug");
threading = stdenv.lib.concatStringsSep ","
(stdenv.lib.optional enableSingleThreaded "single" ++
stdenv.lib.optional enableMultiThreaded "multi");
link = stdenv.lib.concatStringsSep ","
(stdenv.lib.optional enableShared "shared" ++
stdenv.lib.optional enableStatic "static");
# To avoid library name collisions
layout = if taggedLayout then "tagged" else "system";
cflags = if enablePIC && enableExceptions then
"cflags=\"-fPIC -fexceptions\" cxxflags=-fPIC linkflags=-fPIC"
else if enablePIC then
"cflags=-fPIC cxxflags=-fPIC linkflags=-fPIC"
else if enableExceptions then
"cflags=-fexceptions"
else
"";
in
stdenv.mkDerivation {
name = "boost-1.54.0";
meta = {
homepage = "http://boost.org/";
description = "Boost C++ Library Collection";
license = "boost-license";
platforms = stdenv.lib.platforms.unix;
maintainers = [ stdenv.lib.maintainers.simons ];
};
src = fetchurl {
url = "mirror://sourceforge/boost/boost_1_54_0.tar.bz2";
sha256 = "07df925k56pbz3gvhxpx54aij34qd40a7sxw4im11brnwdyr4zh4";
};
enableParallelBuilding = true;
buildInputs = [icu expat zlib bzip2 python];
configureScript = "./bootstrap.sh";
configureFlags = "--with-icu=${icu} --with-python=${python}/bin/python";
buildPhase = "./b2 -j$NIX_BUILD_CORES -sEXPAT_INCLUDE=${expat}/include -sEXPAT_LIBPATH=${expat}/lib --layout=${layout} variant=${variant} threading=${threading} link=${link} ${cflags} install";
# normal install does not install bjam, this is a separate step
installPhase = ''
cd tools/build/v2
sh bootstrap.sh
./b2 -j$NIX_BUILD_CORES -sEXPAT_INCLUDE=${expat}/include -sEXPAT_LIBPATH=${expat}/lib --layout=${layout} variant=${variant} threading=${threading} link=${link} ${cflags} install
'';
crossAttrs = rec {
buildInputs = [ expat.crossDrv zlib.crossDrv bzip2.crossDrv ];
# all buildInputs set previously fell into propagatedBuildInputs, as usual, so we have to
# override them.
propagatedBuildInputs = buildInputs;
# We want to substitute the contents of configureFlags, removing thus the
# usual --build and --host added on cross building.
preConfigure = ''
export configureFlags="--prefix=$out --without-icu"
'';
buildPhase = ''
set -x
cat << EOF > user-config.jam
using gcc : cross : $crossConfig-g++ ;
EOF
./b2 -j$NIX_BUILD_CORES -sEXPAT_INCLUDE=${expat.crossDrv}/include -sEXPAT_LIBPATH=${expat.crossDrv}/lib --layout=${layout} --user-config=user-config.jam toolset=gcc-cross variant=${variant} threading=${threading} link=${link} ${cflags} --without-python install
'';
};
}

View File

@ -1,18 +1,23 @@
{ stdenv, fetchurl }:
{ stdenv, fetchurl, boost }:
let
version = stdenv.lib.removePrefix "boost-" boost.name;
pkgid = stdenv.lib.replaceChars ["-" "."] ["_" "_"] boost.name;
in
stdenv.mkDerivation {
name = "boost-headers-1.53.0";
name = "boost-headers-${version}";
src = fetchurl {
url = "mirror://sourceforge/boost/boost_1_53_0.tar.bz2";
sha256 = "15livg6y1l3gdsg6ybvp3y4gp0w3xh1rdcq5bjf0qaw804dh92pq";
url = "mirror://sourceforge/boost/${pkgid}.tar.bz2";
sha256 = "07df925k56pbz3gvhxpx54aij34qd40a7sxw4im11brnwdyr4zh4";
};
phases = [ "installPhase" ];
installPhase = ''
mkdir -p $out/include
tar xf $src -C $out/include --strip-components=1 boost_1_53_0/boost
tar xf $src -C $out/include --strip-components=1 ${pkgid}/boost
'';
meta = {

View File

@ -8,7 +8,8 @@ stdenv.mkDerivation {
sha256 = "1p4zzqn02zvnyjy84khiq8v65pl422fb6ni946h9sxh4yw2lgn01";
};
buildInputs = [ openssl pkgconfig libgcrypt ucommon ];
buildInputs = [ openssl pkgconfig libgcrypt ];
propagatedBuildInputs = [ ucommon ];
doCheck = true;

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl }:
{ stdenv, fetchurl, libintlOrEmpty }:
stdenv.mkDerivation rec {
name = "cracklib-2.8.16";
@ -8,8 +8,12 @@ stdenv.mkDerivation rec {
sha256 = "1g3mchdvra9nihxlkl3rdz96as3xnfw5m59hmr5k17l7qa9a8fpw";
};
meta = {
homepage = http://sourceforge.net/projects/cracklib;
buildInputs = libintlOrEmpty;
meta = with stdenv.lib; {
homepage = http://sourceforge.net/projects/cracklib;
description = "A library for checking the strength of passwords";
maintainers = with maintainers; [ lovek323 ];
platforms = platforms.unix;
};
}

View File

@ -8,7 +8,7 @@ stdenv.mkDerivation {
src = fetchurl {
urls = [
http://download.oracle.com/berkeley-db/db-4.4.20.NC.tar.gz
http://nixos.org/tarballs/db-4.4.20.NC.tar.gz
http://tarballs.nixos.org/db-4.4.20.NC.tar.gz
];
md5 = "afd9243ea353bbaa04421488d3b37900";
};

Some files were not shown because too many files have changed in this diff Show More