Merge branch 'master' into stdenv-updates.

This commit is contained in:
Peter Simons
2013-01-04 21:00:53 +01:00
80 changed files with 1022 additions and 222 deletions
@@ -0,0 +1,30 @@
{ fetchurl, stdenv, db4, boost, gmp, mpfr, miniupnpc, qt4, unzip }:
stdenv.mkDerivation rec {
version = "0.0.1-3";
name = "freicoin-${version}";
src = fetchurl {
url = "https://github.com/freicoin/freicoin/archive/v${version}.zip";
sha256 = "19q4llv67kmvfr0x56rnqcf0d050dayv246q4i51mmkvjijc1qpf";
};
# I think that openssl and zlib are required, but come through other
# packages
buildInputs = [ db4 boost gmp mpfr miniupnpc qt4 unzip ];
configurePhase = "qmake";
installPhase = ''
mkdir -p $out/bin
cp freicoin-qt $out/bin
'';
meta = {
description = "Peer-to-peer currency with demurrage fee";
homepage = "http://freicoi.in/";
license = "MIT";
maintainers = with stdenv.lib.maintainers; [viric];
platforms = with stdenv.lib.platforms; linux;
};
}
+3 -3
View File
@@ -3,19 +3,19 @@
}:
stdenv.mkDerivation rec {
version = "2.0.4";
version = "2.0.5";
name = "lyx-${version}";
src = fetchurl {
url = "ftp://ftp.lyx.org/pub/lyx/stable/2.0.x/${name}.tar.xz";
sha256 = "137dzmz1z6aqz9mdj8gmmi0k60s9sfn6gy916j175cwzq6hpncb8";
sha256 = "00pv2d9p8j1p6x87kalbn1bgxg9l4zqh65zcajrnh10a76isv6nk";
};
configureFlags = [
#"--without-included-boost"
/* Boost is a huge dependency from which 1.4 MB of libs would be used.
Using internal boost stuff only increases executable by around 0.2 MB. */
#"--without-included-mythes" # such a small library isn't worth a split package
#"--without-included-mythes" # such a small library isn't worth a separate package
];
buildInputs = [
@@ -0,0 +1,23 @@
{ stdenv, fetchurl, dbus, gnutls2, wxGTK28, libidn, tinyxml, gettext, pkgconfig, xdg_utils, gtk2, sqlite36 }:
let version = "3.6.0.2"; in
stdenv.mkDerivation {
name = "filezilla-${version}";
src = fetchurl {
url = "mirror://sourceforge/project/filezilla/FileZilla_Client/${version}/FileZilla_${version}_src.tar.bz2";
sha256 = "01n6k1q21i21451rdx3rgc4hhxghdn5b0ldzpjsp44ipgww5wsjk";
};
configureFlags = [
"--disable-manualupdatecheck"
];
buildInputs = [ dbus gnutls2 wxGTK28 libidn tinyxml gettext pkgconfig xdg_utils gtk2 sqlite36 ];
meta = {
homepage = "http://filezilla-project.org/";
description = "FileZilla is a cross-platform graphical FTP, FTPS and SFTP client a lot of features, supporting Windows, Linux, Mac OS X and more.";
license = "GPLv2";
};
}
@@ -12,14 +12,14 @@
}:
let
version = "3.20121211";
version = "3.20130102";
in
stdenv.mkDerivation {
name = "git-annex-${version}";
src = fetchurl {
url = "http://git.kitenet.net/?p=git-annex.git;a=snapshot;sf=tgz;h=${version}";
sha256 = "1l5sffcn6mcfk0s808z490s30dbq8m4wi8a11ard35hyf599zawq";
sha256 = "0aga3i7rzq21vyj2wq87n4yl5aljzxc69vbzw43nxx9sr2f3xyh5";
name = "git-annex-${version}.tar.gz";
};
@@ -9,7 +9,7 @@
let
version = "1.8.0.1";
version = "1.8.1";
svn = subversionClient.override { perlBindings = true; };
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
src = fetchurl {
url = "http://git-core.googlecode.com/files/git-${version}.tar.gz";
sha1 = "4e7492f7558f3ba2a450c43efa7de3b0b1adc6c1";
sha1 = "wfj2pbqf9l56014dm330wb13qgcwx3dc";
};
patches = [ ./docbook2texi.patch ];
@@ -1,5 +1,6 @@
{ stdenv, fetchurl, lib, patchelf, cdrkit, kernel, which, makeWrapper
, libX11, libXt, libXext, libXmu, libXcomposite, libXfixes, libXrandr, libXcursor}:
, libX11, libXt, libXext, libXmu, libXcomposite, libXfixes, libXrandr, libXcursor
, dbus }:
let version = "4.2.4"; in
@@ -13,7 +14,7 @@ stdenv.mkDerivation {
KERN_DIR = "${kernel}/lib/modules/*/build";
buildInputs = [ patchelf cdrkit makeWrapper ];
buildInputs = [ patchelf cdrkit makeWrapper dbus ];
installPhase = ''
mkdir -p $out
@@ -56,7 +57,7 @@ stdenv.mkDerivation {
cd ..
# Change the interpreter for various binaries
for i in sbin/VBoxService bin/{VBoxClient,VBoxControl}
for i in sbin/VBoxService bin/{VBoxClient,VBoxControl} lib/VBoxGuestAdditions/mount.vboxsf
do
${if stdenv.system == "i686-linux" then ''
patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux.so.2 $i
@@ -66,14 +67,12 @@ stdenv.mkDerivation {
''
else throw ("Architecture: "+stdenv.system+" not supported for VirtualBox guest additions")
}
patchelf --set-rpath ${stdenv.gcc.gcc}/lib:${dbus}/lib:${libX11}/lib:${libXt}/lib:${libXext}/lib:${libXmu}/lib:${libXfixes}/lib:${libXrandr}/lib:${libXcursor}/lib $i
done
# Change rpath for various binaries and libraries
patchelf --set-rpath ${stdenv.gcc.gcc}/lib:${libX11}/lib:${libXt}/lib:${libXext}/lib:${libXmu}/lib:${libXfixes}/lib:${libXrandr}/lib:${libXcursor}/lib bin/VBoxClient
for i in lib/VBoxOGL*.so
do
patchelf --set-rpath $out/lib $i
patchelf --set-rpath $out/lib:${dbus}/lib $i
done
# Remove references to /usr from various scripts and files
@@ -82,6 +81,7 @@ stdenv.mkDerivation {
# Install binaries
mkdir -p $out/sbin
install -m 4755 lib/VBoxGuestAdditions/mount.vboxsf $out/sbin/mount.vboxsf
install -m 755 sbin/VBoxService $out/sbin
mkdir -p $out/bin
@@ -1,24 +1,19 @@
{ cabal, extensibleExceptions, mtl, utf8String, X11, xmessage }:
{ cabal, extensibleExceptions, filepath, mtl, utf8String, X11 }:
cabal.mkDerivation (self: {
pname = "xmonad";
version = "0.10";
sha256 = "19z5y36pybsm93x6hlj5hzyys9r4ag7hkdib5spsnryk2mv72xj6";
version = "0.11";
sha256 = "1nsv88y2b206n3s5hrsp5ginvz1bj818ns7jmikavb2g33akdgg5";
isLibrary = true;
isExecutable = true;
buildDepends = [ extensibleExceptions mtl utf8String X11 ];
buildDepends = [
extensibleExceptions filepath mtl utf8String X11
];
meta = {
homepage = "http://xmonad.org";
description = "A tiling window manager";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
maintainers = [
self.stdenv.lib.maintainers.andres
];
maintainers = [ self.stdenv.lib.maintainers.andres ];
};
preConfigure = ''
substituteInPlace XMonad/Core.hs --replace \
'"xmessage"' '"${xmessage}/bin/xmessage"'
'';
})
@@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "xmonad-contrib";
version = "0.10";
sha256 = "0lp7qr69rpjy4s3knhdgh2bp6zs81xp0az1lisv4a2i7i1ys7hfq";
version = "0.11";
sha256 = "188brys16b3wmxd22j4284wnpasm8bixdjfxl1jr2q2xi45nzks0";
buildDepends = [
extensibleExceptions mtl random utf8String X11 X11Xft xmonad
];
@@ -11,6 +11,7 @@ cabal.mkDerivation (self: {
xmonadContrib
];
configureFlags = "-f-with_hlist -fwith_split -fwith_parsec";
jailbreak = true;
meta = {
homepage = "http://projects.haskell.org/xmonad-extras";
description = "Third party extensions for xmonad with wacky dependencies";
@@ -1,11 +1,11 @@
{ stdenv, fetchurl }:
stdenv.mkDerivation rec {
name = "man-pages-3.43";
name = "man-pages-3.45";
src = fetchurl {
url = "mirror://kernel/linux/docs/man-pages/Archive/${name}.tar.xz";
sha256 = "05fjq8llfxm77mnf2jhly98780xbkakim7b7hbx6kafvvs5zisrf";
sha256 = "1lwqrp79xcyhnjlyg1n0imz5wc88lpgv909xxz8bdgbk7c1mky0h";
};
preBuild =
+2 -2
View File
@@ -1,4 +1,4 @@
{ stdenv, fetchurl, pkgconfig, yasm, zlib, bzip2
{ stdenv, fetchurl, pkgconfig, yasm, zlib, bzip2, alsaLib
, mp3Support ? true, lame ? null
, speexSupport ? true, speex ? null
, theoraSupport ? true, libtheora ? null
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
++ stdenv.lib.optional dc1394Support "--enable-libdc1394"
++ stdenv.lib.optional x11grabSupport "--enable-x11grab";
buildInputs = [ pkgconfig lame yasm zlib bzip2 ]
buildInputs = [ pkgconfig lame yasm zlib bzip2 alsaLib ]
++ stdenv.lib.optional mp3Support lame
++ stdenv.lib.optional speexSupport speex
++ stdenv.lib.optional theoraSupport libtheora
@@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "Diff";
version = "0.1.3";
sha256 = "02dhy4rp3mkzm5x3h1rkdin2h8qcb7h7nhn14gl2gvl6wdykfh5w";
version = "0.2.0";
sha256 = "15hdkrzwajnfcx8bj4jdcy4jli115g9v20msw1xyc9wnwrmbz97k";
meta = {
description = "O(ND) diff algorithm in haskell";
license = self.stdenv.lib.licenses.bsd3;
@@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "Graphalyze";
version = "0.13.0.1";
sha256 = "1yk7iglsspbj0kxh5rhjkc6q65vz07vpygiig07w86g2s6gad8am";
version = "0.14.0.0";
sha256 = "027nxvv38cza6y6rivmvc9wpglbazkjrkyriwv3mn03pp21y53fg";
buildDepends = [
bktrees fgl filepath graphviz pandoc random text time
];
@@ -1,16 +0,0 @@
{ cabal, libX11, libXext, libXinerama, syb }:
cabal.mkDerivation (self: {
pname = "X11";
version = "1.5.0.1";
sha256 = "0s8k3lhvlks6i1mwfnm5fimfd2f0sjw9k2p67is3x564kih7mh19";
buildDepends = [ syb ];
extraLibraries = [ libX11 libXext libXinerama ];
meta = {
homepage = "https://github.com/haskell-pkg-janitors/X11";
description = "A binding to the X11 graphics library";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
maintainers = [ self.stdenv.lib.maintainers.andres ];
};
})
@@ -1,13 +1,13 @@
{ cabal, hashable, ReadArgs, systemFilepath, text, transformers
, unorderedContainers, vector
{ cabal, hashable, liftedBase, ReadArgs, systemFilepath, text
, transformers, unorderedContainers, vector
}:
cabal.mkDerivation (self: {
pname = "basic-prelude";
version = "0.3.1.0";
sha256 = "15k89z78zjhga36wrvfn8b17hsmlwr1na6xq0gmimivfrdlnz5j0";
version = "0.3.2.0";
sha256 = "1sdwkh9xrsx8v96d06jll7cqc0p6ykv2y9gnjzpbfx0k3ns69kcj";
buildDepends = [
hashable ReadArgs systemFilepath text transformers
hashable liftedBase ReadArgs systemFilepath text transformers
unorderedContainers vector
];
meta = {
@@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "cautious-file";
version = "1.0.1";
sha256 = "0mlgchvdhw9lhml4pqmxxvx1zcqmkcyl3yx6w3zp0df200njzsws";
version = "1.0.2";
sha256 = "1sw5ngwrarq1lsd4c6v2wdmgbhkkq6kpybb62r8ccm11ddgn3yiq";
buildDepends = [ filepath ];
meta = {
description = "Ways to write a file cautiously, to reduce the chances of problems such as data loss due to crashes or power failures";
@@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "classy-prelude-conduit";
version = "0.4.2";
sha256 = "1p5j519s95cgiy5ig0agbfs4vyay8srzwsimnblij68zz5jjfrzp";
version = "0.4.3";
sha256 = "0ny4si6z6i6g6khcg9d3m9wks42sqh8i8kpgghhdwd37v32l3f34";
buildDepends = [
classyPrelude conduit monadControl resourcet transformers void
xmlConduit
@@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "classy-prelude";
version = "0.4.2";
sha256 = "082zqhyswzlnl250g8pf88nmh7pkwxwjwnkp0pm9960qsl6kbn7s";
version = "0.4.3";
sha256 = "1k2iszja03s8azypl8lpkdjvvqsgzg73cl1wp4jl2fqp1psqv36q";
buildDepends = [
basicPrelude hashable systemFilepath text transformers
unorderedContainers vector
@@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "clientsession";
version = "0.8.0.1";
sha256 = "0r6j15wkyp4akhaxvimjxlwdka7cbm3c3nfk5bvkqan1nrip5rxv";
version = "0.8.0.2";
sha256 = "189v030g23lvky4vccdaw3p0p6drn26zly80a8n9bbn7b8kbfh4r";
buildDepends = [
base64Bytestring cereal cprngAes cryptoApi cryptocipher entropy
skein tagged
@@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "conduit";
version = "0.5.5";
sha256 = "0av12gaxsrfmsbs70y532wfwnpz9v6ymn182dr8phpqn8d9lx2iq";
version = "0.5.6";
sha256 = "1a5apcds3jjksz7hzw4ag725796axqk9nm5fhn5i4l82zphq2cxs";
buildDepends = [
liftedBase monadControl resourcet text transformers
transformersBase void
@@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "cprng-aes";
version = "0.3.1";
sha256 = "0z1kpgy9d4yp1vmcparsv3r5g1khv2yqqkr99ac3mgvr6pyh24dk";
version = "0.3.2";
sha256 = "1xwwhg83llf9fzfafxsky65biwk0sla9273rp4gqr7vg9p02k221";
buildDepends = [
cipherAes cryptoApi cryptoRandomApi entropy random
];
@@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "crypto-random-api";
version = "0.1.0";
sha256 = "1zx05hskzdxm0kfj6x9qsx8f659zv77pa189s3xg56i7h18d25md";
version = "0.2.0";
sha256 = "0z49kwgjj7rz235642q64hbkgp0zl6ipn29xd19yb75xc5q7gsan";
buildDepends = [ entropy ];
meta = {
homepage = "http://github.com/vincenthz/hs-crypto-random-api";
@@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "cryptohash";
version = "0.8.2";
sha256 = "0mym1q5sa1pqfffy0p8v12lfim1dlaczppw3c3wjhxgs222303wj";
version = "0.8.3";
sha256 = "1fcqbbclii2hmbhi7h64v0nnbc34zzs107m3lqq38iiyy5fvqqv2";
buildDepends = [ cereal cryptoApi tagged ];
meta = {
homepage = "http://github.com/vincenthz/hs-cryptohash";
@@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "dataenc";
version = "0.14.0.4";
sha256 = "0xnn90nyz4m0rbzykkr5p9270s8dq2bfiz5j7qyzyy5m8vbl15bw";
version = "0.14.0.5";
sha256 = "13gajqbayar7x8sq3rw93i277gqd0bx1i34spshlj4b41fraxc8w";
isLibrary = true;
isExecutable = true;
meta = {
@@ -1,10 +1,10 @@
{ cabal, digestiveFunctors, heist, text, xmlhtml }:
{ cabal, digestiveFunctors, heist, mtl, text, xmlhtml }:
cabal.mkDerivation (self: {
pname = "digestive-functors-heist";
version = "0.5.1.0";
sha256 = "1rycf6y1c0car2m71iia929si5iqpc2rdyyxzp326q0rgj94whpk";
buildDepends = [ digestiveFunctors heist text xmlhtml ];
version = "0.5.1.1";
sha256 = "0jdg35xrikqg3r0rziv71g619vnmn8fzsv63b73m72fbj5xvy881";
buildDepends = [ digestiveFunctors heist mtl text xmlhtml ];
meta = {
homepage = "http://github.com/jaspervdj/digestive-functors";
description = "Heist frontend for the digestive-functors library";
@@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "double-conversion";
version = "0.2.0.5";
sha256 = "1z23a8sfnq5lady8n2kcina9a7df8lmsliscf85x84dxkd3a1ahf";
version = "0.2.0.6";
sha256 = "1c6hy0ghdqf44fvhdpdxjbcr0ahimw283x5fnvjxja36i71qshjp";
buildDepends = [ text ];
meta = {
homepage = "https://github.com/bos/double-conversion";
@@ -1,9 +1,10 @@
{ cabal }:
{ cabal, filepath }:
cabal.mkDerivation (self: {
pname = "file-embed";
version = "0.0.4.6";
sha256 = "0p2vs56s1jy5xaw3axzfsir925z2a46624n32x797lga9khm3qvp";
version = "0.0.4.7";
sha256 = "1hn08499kay0y6ik5z1s58s8r9h1nzf116avgi6ia4b565wpzkvi";
buildDepends = [ filepath ];
meta = {
homepage = "https://github.com/snoyberg/file-embed";
description = "Use Template Haskell to embed file contents directly";
@@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "filestore";
version = "0.5.0.1";
sha256 = "1wbiw3skbbcqi9p97xnhg5lnakq3vyan9v4f68wd3g4swk09xp7l";
version = "0.6";
sha256 = "1bmsqxrkiqw791h0xwasry3jm56rjsyvl9l5r78209bhiv5v6xk0";
isLibrary = true;
isExecutable = true;
buildDepends = [
@@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "fsnotify";
version = "0.0.4";
sha256 = "0s71zxj48jimzhl7wz9j22g9c09z64g61nfmpy4mlrhpkzn1f8sz";
version = "0.0.5";
sha256 = "1pi1dpm48igcc8n5cn8hdml8bknxl18kqhjbh6jan839fgmwagb9";
buildDepends = [ hinotify systemFileio systemFilepath text time ];
meta = {
description = "Cross platform library for file creation, modification, and deletion notification";
@@ -7,8 +7,8 @@
cabal.mkDerivation (self: {
pname = "gitit";
version = "0.10.0.2";
sha256 = "0cnql35h4laqpaymg32dmszwzc74qmbmmjas44gcsd8v5n6f701i";
version = "0.10.1.1";
sha256 = "1akrc362cf3fzfjyyf1g8bzna093kwsiyxdfpz0d9wd3z6jyc8cg";
isLibrary = true;
isExecutable = true;
buildDepends = [
@@ -4,12 +4,11 @@
cabal.mkDerivation (self: {
pname = "graphviz";
version = "2999.14.1.0";
sha256 = "13fni5sf6cdfvgyh7kqjjdhmjxkhbgl3gbi0cbq90n8blzg4q1ql";
version = "2999.15.0.1";
sha256 = "137d8n20fbpdz7az79gqharsfl293pl3xn444338i6blfi47ssdy";
buildDepends = [
colour dlist fgl filepath polyparse text transformers wlPprintText
];
patchPhase = "sed -i -e 's|bytestring.*,|bytestring,|' graphviz.cabal";
meta = {
homepage = "http://projects.haskell.org/graphviz/";
description = "Bindings to Graphviz for graph visualisation";
@@ -5,8 +5,8 @@
cabal.mkDerivation (self: {
pname = "heist";
version = "0.10.2";
sha256 = "13v9x5dph52xddkb2dy4gfrapvihf1881fin996ag0snbma3wh68";
version = "0.10.2.1";
sha256 = "14lp27vlzv6qqv325x2vqqvphw5ads5ywjqpjramv3hhd275fn3d";
buildDepends = [
aeson attoparsec blazeBuilder blazeHtml directoryTree dlist errors
filepath hashable MonadCatchIOTransformers mtl random text time
@@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "hsemail";
version = "1.7.3";
sha256 = "0i9qh4rbgcgpjiz7nj8rrmj0ai53s420dskfvwrbwl4j6z67f7la";
version = "1.7.4";
sha256 = "0nigv0zbkm90m5jskfc5a4zx2d3gyqj1y472jplrgd76s15alsmw";
buildDepends = [ mtl parsec ];
meta = {
homepage = "http://gitorious.org/hsemail";
@@ -8,8 +8,8 @@
cabal.mkDerivation (self: {
pname = "http-conduit";
version = "1.8.5.2";
sha256 = "0c1a6iknvi34sh97j7cfzwyikcz0kdz4vgsc47lr7c2a75gl0via";
version = "1.8.6.1";
sha256 = "1vkfld5kn8fql78mw8zwsp524m07kr4a10c411rzpv6xqx92azy7";
buildDepends = [
asn1Data attoparsec attoparsecConduit base64Bytestring blazeBuilder
blazeBuilderConduit caseInsensitive certificate conduit cookie
@@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "http-date";
version = "0.0.3";
sha256 = "12iylfzz1d0v0gl4cf31dxcmlg0x7bq5f7acacy2pb0ilrxmzsnn";
version = "0.0.4";
sha256 = "1pbm066i1cpa3z2kfsqpva0qixnx87s76dpafz3wf6dkaqj8n8i5";
buildDepends = [ attoparsec ];
meta = {
description = "HTTP Date parser/formatter";
@@ -11,6 +11,7 @@ cabal.mkDerivation (self: {
mainlandPretty mtl srcloc syb symbol
];
buildTools = [ alex happy ];
jailbreak = true;
meta = {
homepage = "http://www.eecs.harvard.edu/~mainland/";
description = "C/CUDA/OpenCL quasiquoting library";
@@ -1,16 +1,16 @@
{ cabal, aeson, attoparsec, curl, mtl, pureMD5, urlencoded
, utf8String, xml
{ cabal, aeson, cereal, cryptoApi, httpConduit, httpTypes, network
, pureMD5, text
}:
cabal.mkDerivation (self: {
pname = "liblastfm";
version = "0.0.3.8";
sha256 = "0icx86x3w85z0pqdxcch583j6jk5id5aw9gf24266mgfg5k6iwdy";
version = "0.1.0.0";
sha256 = "1777p2zysha9z389dkzvc22wph5k2xa6f23xk1ckr8j1q5v9dg6x";
buildDepends = [
aeson attoparsec curl mtl pureMD5 urlencoded utf8String xml
aeson cereal cryptoApi httpConduit httpTypes network pureMD5 text
];
meta = {
description = "Wrapper to Lastfm API";
description = "Lastfm API interface";
license = self.stdenv.lib.licenses.mit;
platforms = self.ghc.meta.platforms;
};
@@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "mainland-pretty";
version = "0.2.4";
sha256 = "0x481k36rz4zvj1nwvrfw1d10vbmmx8gb5f2nc8alnxcbc2y7xwq";
version = "0.2.5";
sha256 = "0h3q7xw69dc0lcqwlacsnv36dlbj0sfgv5imjlqrixy6m5cniq9x";
buildDepends = [ srcloc text ];
meta = {
homepage = "http://www.eecs.harvard.edu/~mainland/";
@@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "persistent-template";
version = "1.1.2";
sha256 = "1hz8cxx2a84c93x364vgahmv4xd3cbpjx4j7si5n0pasyq3clbvr";
version = "1.1.2.1";
sha256 = "02sqrq847cxywj9hwixvi0bqq09kxr9w6lhn6kqg4ww0mw2add6s";
buildDepends = [ aeson monadControl persistent text transformers ];
meta = {
homepage = "http://www.yesodweb.com/book/persistent";
@@ -6,8 +6,8 @@
cabal.mkDerivation (self: {
pname = "persistent";
version = "1.1.3.1";
sha256 = "12gv2gjkrf7qchlv6kj0an8bvpkin8vdhdkxg4ck9ydw7hh292v2";
version = "1.1.3.2";
sha256 = "1q8p5nxsf9fjhsyy1lha852f7vssp9mz6l24gg47mgv6y5mm9myv";
buildDepends = [
aeson attoparsec base64Bytestring blazeHtml blazeMarkup conduit
liftedBase monadControl monadLogger pathPieces poolConduit
@@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "random-fu";
version = "0.2.3.1";
sha256 = "06b4v7012fj1kmnz6i63vbwl9gkhzgk556gmcc62k14299ks8pci";
version = "0.2.4.0";
sha256 = "1wiwh52qfs699mcj3ylwc97pyabczn6dr8j92qczs89g8vvi91wd";
buildDepends = [
erf gamma monadLoops mtl randomShuffle randomSource rvar syb
transformers vector
@@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "random-source";
version = "0.3.0.2";
sha256 = "0sp39bj7rqg4w4rc4d4zgj0f77c23z4xc47p55chy12znc4frlp2";
version = "0.3.0.4";
sha256 = "1gvx9r6vy36lx7fy537zdbnbhpmfxz88a7gh0aiyd2vi7bvnndxy";
buildDepends = [
flexibleDefaults mersenneRandomPure64 mtl mwcRandom random stateref
syb thExtras
@@ -1,10 +1,9 @@
{ cabal, syb }:
{ cabal }:
cabal.mkDerivation (self: {
pname = "srcloc";
version = "0.3.0";
sha256 = "1ymk8k0r9ckk7dalz3virvvpyrf4nw8xvb23cs6ibdjjbzsphpiz";
buildDepends = [ syb ];
version = "0.4.0";
sha256 = "00af562n4m3nwlhl86x8rx7hhpnhwaijin61wk574pp47bh2jg0k";
meta = {
homepage = "http://www.eecs.harvard.edu/~mainland/";
description = "Data types for managing source code locations";
@@ -2,12 +2,11 @@
cabal.mkDerivation (self: {
pname = "tabular";
version = "0.2.2.3";
sha256 = "cf6d9f1928ec6981edcbb06c4dcbaea7a96deef5272192ad4290caa18711ea76";
version = "0.2.2.4";
sha256 = "103fqbypsgykv6z29jp1s75pd99vra9sfa70krcnlhbk9kbvdyjk";
buildDepends = [ csv html mtl ];
jailbreak = true;
meta = {
homepage = "http://patch-tag.com/r/kowey/tabular";
homepage = "http://hub.darcs.net/kowey/tabular";
description = "Two-dimensional data tables with rendering functions";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
@@ -6,8 +6,8 @@
cabal.mkDerivation (self: {
pname = "wai-app-static";
version = "1.3.0.5";
sha256 = "1fz2a30f3imn0m5q6hjkm2xan0ddalhfbzx78pklz4g7k79s1ncn";
version = "1.3.1";
sha256 = "0r2ghx3nqh7nms8yxa874h5pyagj993r077f8riybjyjp078s2lk";
buildDepends = [
base64Bytestring blazeBuilder blazeHtml blazeMarkup cereal
cryptoConduit cryptohash fileEmbed httpDate httpTypes mimeTypes
@@ -6,8 +6,8 @@
cabal.mkDerivation (self: {
pname = "wai-extra";
version = "1.3.0.5";
sha256 = "0xzsnsf4sdbzkw92xyzmyi6qp2qpbh5dj3579sppcihdq9djj8l8";
version = "1.3.1.1";
sha256 = "0590i9zs47fxqlz4l7zrk15x4s1rvzvp0fs1caygr5hw32v8h0by";
buildDepends = [
ansiTerminal blazeBuilder blazeBuilderConduit caseInsensitive
conduit dataDefault dateCache fastLogger httpTypes network
@@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "xss-sanitize";
version = "0.3.2";
sha256 = "0m7gl232i06i090kbrlz67cs4q3pqf8169m9kjdj41kj6jay1dcx";
version = "0.3.3";
sha256 = "0xnyp8nwglh4waawijk1q5z8higf8mggh6hp0pp6ys4bm7gsp74a";
buildDepends = [
attoparsec cssText network tagsoup text utf8String
];
@@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "yaml";
version = "0.8.1.2";
sha256 = "1prk1nxzb84svqr552pgrfxg8kd34zvnh35js8l0q58y9rifxyq0";
version = "0.8.2";
sha256 = "1c83vxgry1425z4wk2mnijy183pnlhamcra7fvh55rvhq4bql1m8";
buildDepends = [
aeson attoparsec conduit resourcet text transformers
unorderedContainers vector
@@ -9,8 +9,8 @@
cabal.mkDerivation (self: {
pname = "yesod-core";
version = "1.1.7";
sha256 = "1z47h7ghhi8mvmrc0rcwb3si1bq4623i5x127k8fahcy6qk4qls8";
version = "1.1.7.1";
sha256 = "07rh6yy8hz660hxz60gvminm166cb5was8qb1l24lrmzchigbf3r";
buildDepends = [
aeson blazeBuilder blazeHtml blazeMarkup caseInsensitive cereal
clientsession conduit cookie failure fastLogger hamlet httpTypes
@@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "zip-archive";
version = "0.1.2.1";
sha256 = "1c0pjbrkfv44nbpz60b1c4xdbkdk8qaxlkfxl51rb2183gj1gkph";
version = "0.1.3.3";
sha256 = "0zzps6s6lsv35qv1xx1fwipk2nwv255wpa956mvzbwdr47pgqjwi";
isLibrary = true;
isExecutable = true;
buildDepends = [ binary digest filepath mtl time utf8String zlib ];
@@ -0,0 +1,13 @@
--- a/tinyxml.pc 1970-01-01 01:00:00.000000000 +0100
+++ b/tinyxml.pc 2012-12-29 08:52:07.512266072 +0100
@@ -0,0 +1,10 @@
+prefix=@out@
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: TinyXML
+Description: A simple, small, C++ XML parser
+Version: @version@
+Libs: -L${libdir} -ltinyxml
+Cflags: -I${includedir}
+64
View File
@@ -0,0 +1,64 @@
? entity.patch
Index: a/tinyxml.cpp
===================================================================
RCS file: b/tinyxml.cpp,v
retrieving revision 1.105
diff -u -r1.105 a/tinyxml.cpp
--- tinyxml.cpp 5 Jun 2010 19:06:57 -0000 1.105
+++ tinyxml.cpp 19 Jul 2010 21:24:16 -0000
@@ -57,30 +57,7 @@
{
unsigned char c = (unsigned char) str[i];
- if ( c == '&'
- && i < ( (int)str.length() - 2 )
- && str[i+1] == '#'
- && str[i+2] == 'x' )
- {
- // Hexadecimal character reference.
- // Pass through unchanged.
- // &#xA9; -- copyright symbol, for example.
- //
- // The -1 is a bug fix from Rob Laveaux. It keeps
- // an overflow from happening if there is no ';'.
- // There are actually 2 ways to exit this loop -
- // while fails (error case) and break (semicolon found).
- // However, there is no mechanism (currently) for
- // this function to return an error.
- while ( i<(int)str.length()-1 )
- {
- outString->append( str.c_str() + i, 1 );
- ++i;
- if ( str[i] == ';' )
- break;
- }
- }
- else if ( c == '&' )
+ if ( c == '&' )
{
outString->append( entity[0].str, entity[0].strLength );
++i;
Index: a/xmltest.cpp
===================================================================
RCS file: b/xmltest.cpp,v
retrieving revision 1.89
diff -u -r1.89 a/xmltest.cpp
--- xmltest.cpp 5 Jun 2010 17:41:52 -0000 1.89
+++ xmltest.cpp 19 Jul 2010 21:24:16 -0000
@@ -1340,6 +1340,16 @@
}*/
}
+ #ifdef TIXML_USE_STL
+ {
+ TiXmlDocument xml;
+ xml.Parse("<foo>foo&amp;#xa+bar</foo>");
+ std::string str;
+ str << xml;
+ XmlTest( "Entity escaping", "<foo>foo&amp;#xa+bar</foo>", str.c_str() );
+ }
+ #endif
+
/* 1417717 experiment
{
TiXmlDocument xml;
@@ -0,0 +1,61 @@
{ stdenv, fetchurl, unzip }:
let
version = "2.6.2";
in stdenv.mkDerivation {
name = "tinyxml-${version}";
src = fetchurl {
url = "mirror://sourceforge/project/tinyxml/tinyxml/${version}/tinyxml_2_6_2.zip";
sha256 = "04nmw6im2d1xp12yir8va93xns5iz816pwi25n9cql3g3i8bjsxc";
};
patches = [
# add pkgconfig file
./2.6.2-add-pkgconfig.patch
# http://sourceforge.net/tracker/index.php?func=detail&aid=3031828&group_id=13559&atid=313559
./2.6.2-entity.patch
];
buildInputs = [ unzip ];
buildPhase = ''
# build xmltest
make
# build the lib as a shared library
g++ -Wall -O2 -shared -fpic tinyxml.cpp \
tinyxmlerror.cpp tinyxmlparser.cpp \
tinystr.cpp -o libtinyxml.so
'';
doCheck = true;
checkPhase = ''
./xmltest
result=$?
if [[ $result != 0 ]] ; then
exit $result
fi
'';
installPhase = ''
mkdir -pv $out/include/
mkdir -pv $out/lib/pkgconfig/
mkdir -pv $out/share/doc/tinyxml/
cp -v libtinyxml.so $out/lib/
cp -v *.h $out/include/
substituteInPlace tinyxml.pc --replace "@out@" "$out"
substituteInPlace tinyxml.pc --replace "@version@" "${version}"
cp -v tinyxml.pc $out/lib/pkgconfig/
cp -v docs/* $out/share/doc/tinyxml/
'';
meta = {
description = "TinyXML is a simple, small, C++ XML parser that can be easily integrating into other programs.";
homepage = "http://www.grinninglizard.com/tinyxml/index.html";
license = "free-non-copyleft";
};
}
@@ -7,12 +7,15 @@ assert withMesa -> mesa != null;
with stdenv.lib;
let
version = "2.9.4";
in
stdenv.mkDerivation {
name = "wxwidgets-2.9.3";
name = "wxwidgets-${version}";
src = fetchurl {
url = "mirror://sourceforge/wxwindows/wxWidgets-2.9.3.tar.bz2";
sha256 = "739c31a360b5c46b55904a7fb086f5cdfff0816efbc491d8263349210bf323b2";
url = "mirror://sourceforge/wxwindows/wxWidgets-${version}.tar.bz2";
sha256 = "04jda4bns7cmp7xy68qz112yg0lribpc6xs5k9gilfqcyhshqlvc";
};
buildInputs = [ gtk libXinerama libSM libXxf86vm xf86vidmodeproto gstreamer gst_plugins_base GConf ]
@@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "SourceGraph";
version = "0.7.0.3";
sha256 = "04bx7przxha38n9vckcxz3mbcxcws5ifbc1xfm0rg6bn8rym78yb";
version = "0.7.0.4";
sha256 = "1rxbanvw1dpdnpmrf5gpl12gn9796yq89dnmdxy56mb9qzsm7nm6";
isLibrary = false;
isExecutable = true;
buildDepends = [
@@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "splot";
version = "0.3.7";
sha256 = "0mal7zphwzycxm2i0v87vn6gvdb582zy51prngj4w11xgpxd7dg1";
version = "0.3.8";
sha256 = "188v9c070wn6gr47k5q55gsiph0lj96d96bss76gz7znknfj9rm3";
isLibrary = false;
isExecutable = true;
buildDepends = [
@@ -0,0 +1,40 @@
{ stdenv, fetchurl, perl, autoconf, makeWrapper, doCheck ? false }:
stdenv.mkDerivation rec {
name = "automake-1.13.1";
src = fetchurl {
url = "mirror://gnu/automake/${name}.tar.xz";
sha256 = "12yi1bzkipi7qdmkdy77pazljsa9z7q66hi6c4rq73p7hbv6rkbf";
};
buildInputs = [ perl autoconf ];
setupHook = ./setup-hook.sh;
# Disable indented log output from Make, otherwise "make.test" will
# fail.
preCheck = "unset NIX_INDENT_MAKE";
inherit doCheck;
# The test suite can run in parallel.
enableParallelBuilding = true;
# Don't fixup "#! /bin/sh" in Libtool, otherwise it will use the
# "fixed" path in generated files!
dontPatchShebangs = true;
meta = {
homepage = "http://www.gnu.org/software/automake/";
description = "GNU Automake, a GNU standard-compliant makefile generator";
license = "GPLv2+";
longDescription = ''
GNU Automake is a tool for automatically generating
`Makefile.in' files compliant with the GNU Coding
Standards. Automake requires the use of Autoconf.
'';
maintainers = [ stdenv.lib.maintainers.ludo stdenv.lib.maintainers.simons ];
};
}
+67
View File
@@ -0,0 +1,67 @@
{ stdenv, lib, fetchurl
, python, pyqt4, pythonPackages
# This little flag adds a huge number of dependencies, but we assume that
# everyone wants Anki to draw plots with statistics by default.
, plotsSupport ? true }:
let
py = pythonPackages;
in
stdenv.mkDerivation rec {
name = "anki-2.0.3";
src = fetchurl {
url = "http://ankisrs.net/download/mirror/${name}.tgz";
sha256 = "f40ee4ef29c91101cf9978ce7bd4c513f13ca7c77497a3fb50b8128adf3a5178";
};
pythonPath = [ pyqt4 py.pysqlite py.sqlalchemy ]
++ lib.optional plotsSupport py.matplotlib;
buildInputs = [ python py.wrapPython ];
preConfigure = ''
substituteInPlace anki \
--replace /usr/share/ $out/share/
substituteInPlace Makefile \
--replace PREFIX=/usr PREFIX=$out \
--replace /local/bin/ /bin/
sed -i '/xdg-mime/ d' Makefile
'';
preInstall = ''
mkdir -p $out/bin
mkdir -p $out/share/pixmaps
mkdir -p $out/share/applications
mkdir -p $out/share/man/man1
'';
postInstall = ''
wrapPythonPrograms
'';
meta = {
homepage = http://ankisrs.net/;
description = "Spaced repetition flashcard program";
# Copy-pasted from the homepage
longDescription = ''
Anki is a program which makes remembering things easy. Because it is a lot
more efficient than traditional study methods, you can either greatly
decrease your time spent studying, or greatly increase the amount you learn.
Anyone who needs to remember things in their daily life can benefit from
Anki. Since it is content-agnostic and supports images, audio, videos and
scientific markup (via LaTeX), the possibilities are endless. For example:
* learning a language
* studying for medical and law exams
* memorizing people's names and faces
* brushing up on geography
* mastering long poems
* even practicing guitar chords!
'';
license = "GPLv3";
};
}
+1 -1
View File
@@ -11,7 +11,7 @@ with import ./trivial.nix;
rec {
hasType = x: isAttrs x && x ? _type;
typeOf = x: if hasType x then x._type else "";
typeOf = x: x._type or "";
setType = typeName: value: value // {
_type = typeName;
+2 -2
View File
@@ -237,7 +237,7 @@ in
import ./generic.nix (
rec {
version = "3.2.35";
version = "3.2.36";
testing = false;
modDirVersion = version;
@@ -248,7 +248,7 @@ import ./generic.nix (
src = fetchurl {
url = "mirror://kernel/linux/kernel/v3.0/${if testing then "testing/" else ""}linux-${version}.tar.xz";
sha256 = "0p665msvhmjmcvgravi10yyfbnvn6bm9xfhsflj61qj0frj0lzn9";
sha256 = "0jyla0mjh1jjk84jywyvd7n6ax27xarkllfjf991rqj32zinlnzn";
};
config = configWithPlatform stdenv.platform;
@@ -1,13 +1,13 @@
{ stdenv, fetchurl, openssl, dbus_libs, pkgconfig, libnl }:
stdenv.mkDerivation rec {
version = "1.0";
version = "1.1";
name = "wpa_supplicant-${version}";
src = fetchurl {
url = "http://hostap.epitest.fi/releases/${name}.tar.gz";
sha256 = "171b9027rbzy64zaal4832ix9i3mm6ypwmynbpia5bss793ivm4i";
sha256 = "00lyifj8cz7qyal6dy1dxbpk3g3bywvdarik8gbj9ds7zmfbwkd5";
};
preBuild = ''
@@ -38,10 +38,11 @@ stdenv.mkDerivation rec {
mkdir -p $out/share/man/man5 $out/share/man/man8
cp -v doc/docbook/*.5 $out/share/man/man5/
cp -v doc/docbook/*.8 $out/share/man/man8/
mkdir -p $out/etc/dbus-1/system.d $out/share/dbus-1/system-services
mkdir -p $out/etc/dbus-1/system.d $out/share/dbus-1/system-services $out/etc/systemd/system
cp -v dbus/*service $out/share/dbus-1/system-services
sed -e "s@/sbin/wpa_supplicant@$out&@" -i $out/share/dbus-1/system-services/*
cp -v dbus/dbus-wpa_supplicant.conf $out/etc/dbus-1/system.d
cp -v systemd/*.service $out/etc/systemd/system
''; # */
meta = {
+10 -6
View File
@@ -1,11 +1,11 @@
{ stdenv, fetchurl, openssl, sslEnable ? false, libcap, pam }:
stdenv.mkDerivation (rec {
name = "vsftpd-2.3.4";
name = "vsftpd-3.0.2";
src = fetchurl {
url = "ftp://vsftpd.beasts.org/users/cevans/${name}.tar.gz";
sha256 = "0nhsqwnb8qkbxx5wjahara1ln85hp151v656psra5brpckwysrml";
url = "https://security.appspot.com/downloads/${name}.tar.gz";
sha256 = "0mjy345wszskz1vnk83360c1y37arwgap3gwz8hy13sjqpig0imy";
};
# The gcc-wrappers use -idirafter for glibc, and vsftpd also, and
@@ -14,9 +14,13 @@ stdenv.mkDerivation (rec {
sed -i -e 's/-idirafter.*//' Makefile
'';
preBuild =''
makeFlagsArray=( "LIBS=${if sslEnable then "-lcrypt -lssl -lcrypto " else ""}-lpam -lcap" )
'';
preBuild = let
sslLibs = if sslEnable then "-lcrypt -lssl -lcrypto " else "";
in ''
makeFlagsArray=( "LIBS=${sslLibs}-lpam -lcap -fstack-protector" )
'';
# It won't link without this flag, used in CFLAGS
buildInputs = [ openssl libcap pam ];
+5 -7
View File
@@ -3,12 +3,12 @@
with stdenv.lib;
stdenv.mkDerivation {
name = "bup-0.25git20120722";
name = "bup-0.25git20121224";
src = fetchgit {
url = "https://github.com/apenwarr/bup.git";
sha256 = "3ad232d7f23071ed34f920bd4c3137583f1adffbe23c022896289bc0a03fe7aa";
rev = "02bd2b566ea5eec2fd656e0ae572b4c7b6b9550a";
url = "https://github.com/bup/bup.git";
sha256 = "f0e0c835ab83f00b28920d493e4150d2247113aad3a74385865c2a8c6f1ba7b8";
rev = "458e92da32ddd3c18fc1c3e52a76e9f0b48b832f";
};
nativeBuildInputs = [ pandoc perl makeWrapper ];
@@ -26,8 +26,6 @@ stdenv.mkDerivation {
substituteInPlace $f --replace "/usr/bin/env python" "${python}/bin/python"
done
substituteInPlace Makefile --replace "./format-subst.pl" "perl ./format-subst.pl"
substituteInPlace lib/bup/csetup.py \
--replace "'bupsplit.c'])" "'bupsplit.c'], library_dirs=['${python}/lib'])"
'';
makeFlags = [
@@ -42,6 +40,6 @@ stdenv.mkDerivation {
Highly efficient file backup system based on the git packfile format.
Capable of doing *fast* incremental backups of virtual machine images.
'';
homepage = "https://github.com/apenwarr/bup";
homepage = "https://github.com/bup/bup";
};
}
+6 -4
View File
@@ -1,12 +1,14 @@
{ stdenv, fetchurl, python, pythonPackages, pycrypto, attr }:
pythonPackages.buildPythonPackage {
name = "obnam-1.2";
pythonPackages.buildPythonPackage rec {
name = "obnam-${version}";
version = "1.3";
namePrefix = "";
src = fetchurl rec {
url = "http://code.liw.fi/debian/pool/main/o/obnam/obnam_1.2.orig.tar.gz";
sha256 = "33457452726d5c393d98c565b8e1ab3ac11276cc42bf67c4eee6c4e4ac9976d6";
url = "http://code.liw.fi/debian/pool/main/o/obnam/obnam_${version}.orig.tar.gz";
sha256 = "1hmi58knv7qjw6jr5m28sip5gwzavk87i3s77xk72anaxhvf4g8w";
};
buildInputs = [ pythonPackages.sphinx attr ];
@@ -0,0 +1,146 @@
diff --git a/cmds-receive.c b/cmds-receive.c
index a8be6fa..6b7cf12 100644
--- a/cmds-receive.c
+++ b/cmds-receive.c
@@ -52,11 +52,13 @@ static int g_verbose = 0;
struct btrfs_receive
{
int mnt_fd;
+ int dest_dir_fd;
int write_fd;
char *write_path;
char *root_path;
+ char *dest_dir_path; /* relative to root_path */
char *full_subvol_path;
struct subvol_info *cur_subvol;
@@ -150,8 +152,11 @@ static int process_subvol(const char *path, const u8 *uuid, u64 ctransid,
r->cur_subvol = calloc(1, sizeof(*r->cur_subvol));
r->parent_subvol = NULL;
- r->cur_subvol->path = strdup(path);
- r->full_subvol_path = path_cat(r->root_path, path);
+ if (strlen(r->dest_dir_path) == 0)
+ r->cur_subvol->path = strdup(path);
+ else
+ r->cur_subvol->path = path_cat(r->dest_dir_path, path);
+ r->full_subvol_path = path_cat3(r->root_path, r->dest_dir_path, path);
fprintf(stderr, "At subvol %s\n", path);
@@ -167,7 +172,7 @@ static int process_subvol(const char *path, const u8 *uuid, u64 ctransid,
memset(&args_v1, 0, sizeof(args_v1));
strcpy(args_v1.name, path);
- ret = ioctl(r->mnt_fd, BTRFS_IOC_SUBVOL_CREATE, &args_v1);
+ ret = ioctl(r->dest_dir_fd, BTRFS_IOC_SUBVOL_CREATE, &args_v1);
if (ret < 0) {
ret = -errno;
fprintf(stderr, "ERROR: creating subvolume %s failed. "
@@ -195,8 +200,11 @@ static int process_snapshot(const char *path, const u8 *uuid, u64 ctransid,
r->cur_subvol = calloc(1, sizeof(*r->cur_subvol));
r->parent_subvol = NULL;
- r->cur_subvol->path = strdup(path);
- r->full_subvol_path = path_cat(r->root_path, path);
+ if (strlen(r->dest_dir_path) == 0)
+ r->cur_subvol->path = strdup(path);
+ else
+ r->cur_subvol->path = path_cat(r->dest_dir_path, path);
+ r->full_subvol_path = path_cat3(r->root_path, r->dest_dir_path, path);
fprintf(stderr, "At snapshot %s\n", path);
@@ -243,7 +251,7 @@ static int process_snapshot(const char *path, const u8 *uuid, u64 ctransid,
goto out;
}
- ret = ioctl(r->mnt_fd, BTRFS_IOC_SNAP_CREATE_V2, &args_v2);
+ ret = ioctl(r->dest_dir_fd, BTRFS_IOC_SNAP_CREATE_V2, &args_v2);
close(args_v2.fd);
if (ret < 0) {
ret = -errno;
@@ -790,17 +798,48 @@ struct btrfs_send_ops send_ops = {
int do_receive(struct btrfs_receive *r, const char *tomnt, int r_fd)
{
int ret;
+ char *dest_dir_full_path;
int end = 0;
- r->root_path = strdup(tomnt);
- r->mnt_fd = open(tomnt, O_RDONLY | O_NOATIME);
+ dest_dir_full_path = realpath(tomnt, NULL);
+ if (!dest_dir_full_path) {
+ ret = -errno;
+ fprintf(stderr, "ERROR: realpath(%s) failed. %s\n", tomnt,
+ strerror(-ret));
+ goto out;
+ }
+ r->dest_dir_fd = open(dest_dir_full_path, O_RDONLY | O_NOATIME);
+ if (r->dest_dir_fd < 0) {
+ ret = -errno;
+ fprintf(stderr, "ERROR: failed to open destination directory %s. %s\n",
+ dest_dir_full_path, strerror(-ret));
+ goto out;
+ }
+
+ ret = find_mount_root(dest_dir_full_path, &r->root_path);
+ if (ret < 0) {
+ ret = -EINVAL;
+ fprintf(stderr, "ERROR: failed to determine mount point "
+ "for %s\n", dest_dir_full_path);
+ goto out;
+ }
+ r->mnt_fd = open(r->root_path, O_RDONLY | O_NOATIME);
if (r->mnt_fd < 0) {
ret = -errno;
- fprintf(stderr, "ERROR: failed to open %s. %s\n", tomnt,
+ fprintf(stderr, "ERROR: failed to open %s. %s\n", r->root_path,
strerror(-ret));
goto out;
}
+ /*
+ * find_mount_root returns a root_path that is a subpath of
+ * dest_dir_full_path. Now get the other part of root_path,
+ * which is the destination dir relative to root_path.
+ */
+ r->dest_dir_path = dest_dir_full_path + strlen(r->root_path);
+ if (r->dest_dir_path[0] == '/')
+ r->dest_dir_path++;
+
ret = subvol_uuid_search_init(r->mnt_fd, &r->sus);
if (ret < 0)
return ret;
diff --git a/cmds-send.c b/cmds-send.c
index 9b47e70..c408bc7 100644
--- a/cmds-send.c
+++ b/cmds-send.c
@@ -81,6 +81,14 @@ int find_mount_root(const char *path, char **mount_root)
}
}
+ if (!longest_match) {
+ fprintf(stderr, "ERROR: Failed to find mount root for path %s.\n",
+ path);
+ fprintf(stderr, "Please make sure that you have a valid \
+ /etc/mtab file.\n");
+ return -ENOENT;
+ }
+
*mount_root = realpath(longest_match, NULL);
free(longest_match);
diff --git a/send-utils.h b/send-utils.h
index da407eb..a3e038b 100644
--- a/send-utils.h
+++ b/send-utils.h
@@ -65,5 +65,6 @@ void subvol_uuid_search_add(struct subvol_uuid_search *s,
char *path_cat(const char *p1, const char *p2);
char *path_cat3(const char *p1, const char *p2, const char *p3);
+int find_mount_root(const char *path, char **mount_root);
#endif /* SEND_UTILS_H_ */
@@ -0,0 +1,13 @@
diff --git a/cmds-receive.c b/cmds-receive.c
index a8be6fa..c182175 100644
--- a/cmds-receive.c
+++ b/cmds-receive.c
@@ -880,7 +880,7 @@ static const char * const receive_cmd_group_usage[] = {
};
static const char * const cmd_receive_usage[] = {
- "btrfs receive [-v] [-i <infile>] <mount>",
+ "btrfs receive [-v] [-f <infile>] <mount>",
"Receive subvolumes from stdin.",
"Receives one or more subvolumes that were previously ",
"sent with btrfs send. The received subvolumes are stored",
@@ -0,0 +1,12 @@
diff --git a/cmds-receive.c b/cmds-receive.c
index 6b7cf12..a6a6a5b 100644
--- a/cmds-receive.c
+++ b/cmds-receive.c
@@ -731,7 +731,7 @@ static int process_chown(const char *path, u64 uid, u64 gid, void *user)
fprintf(stderr, "chown %s - uid=%llu, gid=%llu\n", path,
uid, gid);
- ret = chown(full_path, uid, gid);
+ ret = lchown(full_path, uid, gid);
if (ret < 0) {
ret = -errno;
@@ -0,0 +1,109 @@
/*
btrfs receive currently mandates that incremental receives can only be performed on a parent subvolume
that was also received. This means you cannot apply it to (snapshotted) subvolumes you still have on disk,
as they were not received themselves.
This small utility allows you to set the received_uuid of a subvolume, tricking btrfs receive into using it.
found on btrfs mailing list
read the discussion here: http://comments.gmane.org/gmane.comp.file-systems.btrfs/21922
*/
#define _GNU_SOURCE
#include <unistd.h>
#include <stdlib.h>
#include <errno.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#include <uuid/uuid.h>
#include <sys/ioctl.h>
#include "ctree.h"
#include "ioctl.h"
#include "send-utils.h"
#define CLEAR(var) memset(&var, 0, sizeof(var))
int main(int argc, char **argv) {
int ret, fd;
struct subvol_uuid_search sus;
struct btrfs_ioctl_received_subvol_args rs_args;
struct subvol_info *si;
char uuidbuf[37], parent_uuidbuf[37], received_uuidbuf[37];
if (argc != 3 && argc != 4) {
printf("usage: btrfs-set-received-uuid btrfs-mountpoint src-subvolume-path-relative-to-mountpoint [dest-absolute-subvolume-path]\n");
exit(1);
}
printf("opening srcmnt %s\n", argv[1]);
fd = open(argv[1], O_RDONLY | O_NOATIME);
if (fd < 0) {
printf("failed to open srcmnt %s! %s\n", argv[1], strerror(errno));
exit(2);
}
puts("initializing sub search");
CLEAR(sus);
ret = subvol_uuid_search_init(fd, &sus);
if (ret < 0) {
printf("failed to initialize sub search! %s\n", strerror(-ret));
exit(3);
}
printf("searching srcsub %s\n", argv[2]);
si = subvol_uuid_search(&sus, 0, NULL, 0, argv[2], subvol_search_by_path);
if (!si) {
puts("srcsub not found!");
exit(4);
}
uuid_unparse(si->uuid, uuidbuf);
uuid_unparse(si->parent_uuid, parent_uuidbuf);
uuid_unparse(si->received_uuid, received_uuidbuf);
printf("\nsrcsub found:\n"
" uuid=%s\n"
" parent_uuid=%s\n"
"received_uuid=%s\n"
"ctransid=%Lu otransid=%Lu stransid=%Lu rtransid=%Lu\n\n",
uuidbuf, parent_uuidbuf, received_uuidbuf,
(unsigned long long)(si->ctransid),
(unsigned long long)(si->otransid),
(unsigned long long)(si->stransid),
(unsigned long long)(si->rtransid));
if (argc == 3)
goto done;
printf("opening dst subvol %s\n", argv[3]);
fd = open(argv[3], O_RDONLY | O_NOATIME);
if (fd < 0) {
printf("failed to open dst subvol %s. %s\n", argv[3], strerror(errno));
exit(5);
}
printf("\nhere we go with BTRFS_IOC_SET_RECEIVED_SUBVOL:\n"
"dstsub.received_uuid = srcsub.uuid == %s\n"
"dstsub.stransid = srcsub.ctransid == %Lu\n\n",
uuidbuf, (unsigned long long)(si->ctransid));
CLEAR(rs_args);
memcpy(rs_args.uuid, si->uuid, BTRFS_UUID_SIZE);
rs_args.stransid = si->ctransid;
ret = ioctl(fd, BTRFS_IOC_SET_RECEIVED_SUBVOL, &rs_args);
if (ret < 0) {
printf("BTRFS_IOC_SET_RECEIVED_SUBVOL failed: %s", strerror(-ret));
exit(6);
}
done:
printf("done.\n");
exit(0);
}
@@ -11,8 +11,27 @@ stdenv.mkDerivation {
sha256 = "72d4cd4fb23d876a17146d6231ad40a2151fa47c648485c54cf7478239b43764";
};
patches = [
./subvol-listing.patch
./btrfs-receive-help-text.patch
./btrfs-progs-Fix-the-receive-code-pathing.patch
./btrfs-receive-lchown.patch
];
buildInputs = [ zlib libuuid acl attr e2fsprogs ];
postPatch = ''
cp ${./btrfs-set-received-uuid.c} btrfs-set-received-uuid.c
'';
postBuild = ''
gcc -O2 -luuid -o btrfs-set-received-uuid send-utils.o rbtree.o btrfs-list.o btrfs-set-received-uuid.c
'';
postInstall = ''
cp btrfs-set-received-uuid $out/bin
'';
makeFlags = "prefix=$(out)";
meta = {
@@ -0,0 +1,34 @@
--- a/btrfs-list.c 2012-12-30 12:20:01.394137593 +0100
+++ b/btrfs-list.c 2012-12-30 12:22:47.242452906 +0100
@@ -1004,6 +1004,23 @@
return 0;
}
+static void __drop_deleting_roots(struct root_lookup *root_lookup)
+{
+ struct rb_node *n;
+
+again:
+ n = rb_first(&root_lookup->root);
+ while (n) {
+ struct root_info *entry = rb_entry(n, struct root_info, rb_node);
+ if (!entry->ref_tree) {
+ rb_erase(n, &root_lookup->root);
+ free(entry);
+ goto again;
+ }
+ n = rb_next(n);
+ }
+}
+
static int __list_subvol_search(int fd, struct root_lookup *root_lookup)
{
int ret;
@@ -1123,6 +1140,8 @@
break;
}
+ __drop_deleting_roots(root_lookup);
+
return 0;
}
+9 -3
View File
@@ -1,4 +1,4 @@
{ stdenv, fetchurl, python, pandoc }:
{ stdenv, fetchurl, python, pandoc, zip }:
let
version = "2012.12.11";
@@ -11,7 +11,13 @@ stdenv.mkDerivation {
sha256 = "03zv3z8p0fi122nqj7ff8hkgqscir4s7psm03rq7dfpg1z35klmn";
};
buildInputs = [ python pandoc ];
buildInputs = [ python ];
buildNativeInputs = [ pandoc zip ];
patchPhase = ''
rm youtube-dl
substituteInPlace Makefile --replace "#!/usr/bin/env python" "#!${python}/bin/python"
'';
configurePhase = ''
makeFlagsArray=( PREFIX=$out SYSCONFDIR=$out/etc )
@@ -20,6 +26,6 @@ stdenv.mkDerivation {
meta = {
homepage = "http://rg3.github.com/youtube-dl/";
description = "Command-line tool to download videos from YouTube.com and other sites";
maintainers = [ stdenv.lib.maintainers.bluescreen303 stdenv.lib.maintainers.simons ];
maintainers = with stdenv.lib.maintainers; [ bluescreen303 simons ];
};
}
+20
View File
@@ -0,0 +1,20 @@
{ stdenv, fetchurl, buildPythonPackage }:
buildPythonPackage {
name = "httpie-0.3.1";
namePrefix = "";
src = fetchurl {
url = "http://pypi.python.org/packages/source/h/httpie/httpie-0.3.1.tar.gz";
sha256 = "0abjkwcirmp6qa190qgbgj5fmmkmk5aa3fdiyayl2indh6304x7a";
};
doCheck = false;
meta = {
description = "A command line HTTP client whose goal is to make CLI human-friendly";
homepage = http://httpie.org/;
license = "BSD";
maintainers = [ stdenv.lib.maintainers.antono ];
};
}
@@ -0,0 +1,20 @@
{ fetchurl, stdenv, pkgconfig, pcre, perl }:
stdenv.mkDerivation rec {
name = "maildrop-2.6.0";
src = fetchurl {
url = "mirror://sourceforge/courier/maildrop/2.6.0/maildrop-2.6.0.tar.bz2";
sha256 = "1a94p2b41iy334cwfwmzi19557dn5j61abh0cp2rfc9dkc8ibhdg";
};
buildInputs = [ pkgconfig pcre perl ];
patches = [ ./maildrop.configure.hack.patch ]; # for building in chroot
meta = {
homepage = http://www.courier-mta.org/maildrop/;
description = "Mail filter/mail delivery agent that is used by the Courier Mail Server";
licenses = [ "GPLv3" ];
};
}
@@ -0,0 +1,13 @@
--- a/maildrop/configure 2012-09-06 01:52:13.000000000 +0100
+++ b/maildrop/configure 2013-01-04 03:00:57.095628327 +0000
@@ -17562,8 +17562,8 @@
check_spooldir() {
if test "$CHECKED_SPOOLDIR" != 1
then
- get_spooldir
- MBOX_DIR="$SPOOLDIR"
+ MBOX_DIR="/var/spool/mail"
+ MBOX_RESET_GID=0
CHECKED_SPOOLDIR=1
fi
}
@@ -4,11 +4,11 @@
stdenv.mkDerivation rec {
name = "network-manager-${version}";
version = "0.9.4.0";
version = "0.9.6.4";
src = fetchurl {
url = "mirror://gnome/sources/NetworkManager/0.9/NetworkManager-${version}.tar.xz";
sha256 = "eb4f124008b3d855a37205d03ef035b7218639cd7332bdae5567095977e93e0f";
sha256 = "1sx7h29j9h13qszcppja1p27zq2m7vdrylbcyb47n62x0lg426si";
};
preConfigure = ''
@@ -29,7 +29,9 @@ stdenv.mkDerivation rec {
"--without-resolvconf"
"--sysconfdir=/etc" "--localstatedir=/var"
"--with-dbus-sys-dir=\${out}/etc/dbus-1/system.d"
"--with-crypto=gnutls" "--disable-more-warnings" ];
"--with-crypto=gnutls" "--disable-more-warnings"
"--with-systemdsystemunitdir=$(out)/etc/systemd/system"
"--with-kernel-firmware-dir=/run/current-system/firmware" ];
buildInputs = [ wirelesstools udev libnl libuuid polkit ppp xz ];
+18
View File
@@ -920,6 +920,8 @@ let
hping = callPackage ../tools/networking/hping { };
httpie = callPackage ../tools/networking/httpie { };
httpfs2 = callPackage ../tools/filesystems/httpfs { };
# FIXME: This Hydra snapshot is outdated and depends on the `nixPerl',
@@ -1056,6 +1058,8 @@ let
lzop = callPackage ../tools/compression/lzop { };
maildrop = callPackage ../tools/networking/maildrop { };
mailutils = callPackage ../tools/networking/mailutils {
guile = guile_1_8;
};
@@ -2964,6 +2968,8 @@ let
automake112x = callPackage ../development/tools/misc/automake/automake-1.12.x.nix { };
automake113x = callPackage ../development/tools/misc/automake/automake-1.13.x.nix { };
automoc4 = callPackage ../development/tools/misc/automoc4 { };
avrdude = callPackage ../development/tools/misc/avrdude { };
@@ -4941,6 +4947,10 @@ let
telepathy_qt = callPackage ../development/libraries/telepathy/qt { };
tinyxml = tinyxml2;
tinyxml2 = callPackage ../development/libraries/tinyxml/2.6.2.nix { };
tk = callPackage ../development/libraries/tk { };
tnt = callPackage ../development/libraries/tnt { };
@@ -6984,6 +6994,8 @@ let
feh = callPackage ../applications/graphics/feh { };
filezilla = callPackage ../applications/networking/ftp/filezilla { };
firefox = pkgs.firefoxPkgs.firefox;
firefoxWrapper = wrapFirefox { browser = pkgs.firefox; };
@@ -7033,6 +7045,10 @@ let
freerdpUnstable = callPackage ../applications/networking/remote/freerdp/unstable.nix { };
freicoin = callPackage ../applications/misc/freicoin {
db4 = db48;
};
fspot = callPackage ../applications/graphics/f-spot {
inherit (gnome) libgnome libgnomeui;
gtksharp = gtksharp1;
@@ -8104,6 +8120,8 @@ let
andyetitmoves = if stdenv.isLinux then callPackage ../games/andyetitmoves {} else null;
anki = callPackage ../games/anki { };
asc = callPackage ../games/asc {
lua = lua5;
libsigcxx = libsigcxx12;
+4 -14
View File
@@ -1784,9 +1784,7 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
wxdirect = callPackage ../development/libraries/haskell/wxHaskell/wxdirect.nix {};
X11_1_5_0_1 = callPackage ../development/libraries/haskell/X11/1.5.0.1.nix {};
X11_1_6_0_2 = callPackage ../development/libraries/haskell/X11/1.6.0.2.nix {};
X11 = self.X11_1_6_0_2;
X11 = callPackage ../development/libraries/haskell/X11 {};
X11Xft = callPackage ../development/libraries/haskell/X11-xft {};
@@ -1960,18 +1958,11 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
stm = self.stm_2_3;
};
xmonad = callPackage ../applications/window-managers/xmonad {
X11 = self.X11_1_5_0_1;
};
xmonad = callPackage ../applications/window-managers/xmonad {};
xmonadContrib = callPackage ../applications/window-managers/xmonad/xmonad-contrib.nix {
X11 = self.X11_1_5_0_1;
X11Xft = self.X11Xft.override { X11 = self.X11_1_5_0_1; };
};
xmonadContrib = callPackage ../applications/window-managers/xmonad/xmonad-contrib.nix {};
xmonadExtras = callPackage ../applications/window-managers/xmonad/xmonad-extras.nix {
X11 = self.X11_1_5_0_1;
};
xmonadExtras = callPackage ../applications/window-managers/xmonad/xmonad-extras.nix {};
# Tools.
@@ -1983,7 +1974,6 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
tar = self.tar_0_3_2_0;
};
cabalGhci = callPackage ../development/tools/haskell/cabal-ghci {};
cabalInstall_0_6_2 = callPackage ../tools/package-management/cabal-install/0.6.2.nix {};
+5
View File
@@ -119,6 +119,11 @@ rec {
UBIFS_FS_LZO y
UBIFS_FS_ZLIB y
UBIFS_FS_DEBUG n
# Kdb, for kernel troubles
KGDB y
KGDB_SERIAL_CONSOLE y
KGDB_KDB y
'';
kernelTarget = "uImage";
uboot = "sheevaplug";
+143 -35
View File
@@ -86,13 +86,13 @@ let pythonPackages = python.modules // rec {
alot = buildPythonPackage rec {
rev = "09804636609b4245cde4faceddffdb5361f3d390";
rev = "5b5dbecb5a03840b751219db90bcf4dcffda315e";
name = "alot-0.3.3_${rev}";
src = fetchurl {
url = "https://github.com/pazz/alot/tarball/${rev}";
name = "${name}.tar.bz";
sha256 = "b5239c4dfcd9882608fb48ef80fe9ba9223949ab7e6a2c1abe970ac307ebcd4a";
sha256 = "156q7x4wilhcgmaap7rjci3cgwm5ia85ddgx6xm6lfp5hkf5300v";
};
# error: invalid command 'test'
@@ -1047,6 +1047,22 @@ let pythonPackages = python.modules // rec {
};
};
jedi = buildPythonPackage (rec {
name = "jedi-0.5b5";
src = fetchurl {
url = "http://pypi.python.org/packages/source/j/jedi/${name}.tar.gz";
sha256 = "10xqdhda9kdbc22h4dphxqjncpdb80s1crxsirr5h016rw9czsa4";
};
meta = {
homepage = "https://github.com/davidhalter/jedi";
description = "An autocompletion tool for Python that can be used for text editors.";
license = pkgs.lib.licenses.lgpl3Plus;
maintainers = [ stdenv.lib.maintainers.garbas ];
platforms = python.meta.platforms;
};
});
jinja2 = buildPythonPackage {
name = "jinja2-2.6";
@@ -2102,23 +2118,19 @@ let pythonPackages = python.modules // rec {
pymacs = pkgs.stdenv.mkDerivation rec {
version = "v0.24-beta2";
version = "v0.25";
name = "Pymacs-${version}";
src = fetchurl {
url = "https://github.com/pinard/Pymacs/tarball/${version}";
name = "${name}.tar.gz";
sha256 = "0nzb3wrxwy0cmmj087pszkwgj2v22x0y5m4vxb6axz94zfl02r8j";
sha256 = "1hmy76c5igm95rqbld7gvk0az24smvc8hplfwx2f5rhn6frj3p2i";
};
buildInputs = [ python ];
configurePhase = ''
python p4 -C p4config.py *.in Pymacs contrib tests
'';
installPhase = ''
python setup.py install --prefix=$out
patchPhase = ''
sed -e "s@ install@ install --prefix=$out@g" -i Makefile
'';
meta = with stdenv.lib; {
@@ -2449,21 +2461,15 @@ let pythonPackages = python.modules // rec {
};
});
rope = pkgs.stdenv.mkDerivation rec {
version = "0.9.3";
rope = buildPythonPackage rec {
version = "0.9.4";
name = "rope-${version}";
src = fetchurl {
url = "http://pypi.python.org/packages/source/r/rope/${name}.tar.gz";
sha256 = "1092rlsfna7rm1jkdanilsmw7rr3hlkgyji02xfd02wfcm8xa2i7";
sha256 = "1fm6ahff50b10mlnc0ar4x1fv9sxmcp1g651myyqy7c50hk39h1d";
};
buildInputs = [ python ];
installPhase = ''
python setup.py install --prefix=$out
'';
meta = with stdenv.lib; {
description = "python refactoring library";
homepage = http://rope.sf.net;
@@ -2472,20 +2478,16 @@ let pythonPackages = python.modules // rec {
};
};
ropemacs = pkgs.stdenv.mkDerivation rec {
version = "0.6";
ropemacs = buildPythonPackage rec {
version = "0.7";
name = "ropemacs-${version}";
src = fetchurl {
url = "mirror://sourceforge/rope/${name}.tar.gz";
sha256 = "1afqybmjn7fqkwx8y8kx1kfx181ix73cbq3a0d5n7ryjm7k1r0s4";
url = "http://pypi.python.org/packages/source/r/ropemacs/${name}.tar.gz";
sha256 = "1x5qf1drcdz9jfiiakc60kzqkb3ahsg9j902c5byf3gjfacdrmqj";
};
buildInputs = [ python ];
installPhase = ''
python setup.py install --prefix=$out
'';
propagatedBuildInputs = [ ropemode ];
meta = with stdenv.lib; {
description = "a plugin for performing python refactorings in emacs";
@@ -2495,6 +2497,26 @@ let pythonPackages = python.modules // rec {
};
};
ropemode = buildPythonPackage rec {
version = "0.2";
name = "ropemode-${version}";
src = fetchurl {
url = "http://pypi.python.org/packages/source/r/ropemode/${name}.tar.gz";
sha256 = "0jw6h1wvk6wk0wknqdf7s9pw76m8472jv546lqdd88jbl2scgcjl";
};
propagatedBuildInputs = [ rope ];
meta = with stdenv.lib; {
description = "a plugin for performing python refactorings in emacs";
homepage = http://rope.sf.net;
maintainers = [ maintainers.goibhniu ];
license = licenses.gpl2;
};
};
routes = buildPythonPackage rec {
name = "routes-1.12.3";
@@ -2916,7 +2938,7 @@ let pythonPackages = python.modules // rec {
});
twisted = buildPythonPackage rec {
name = "twisted-10.2.0";
name = "twisted-12.3.0";
src = fetchurl {
url = http://tmrc.mit.edu/mirror/twisted/Twisted/10.2/Twisted-10.2.0.tar.bz2;
@@ -3253,11 +3275,12 @@ let pythonPackages = python.modules // rec {
# };
cliapp = buildPythonPackage rec {
name = "cliapp-1.20120929";
name = "cliapp-${version}";
version = "1.20121216";
src = fetchurl rec {
url = "http://code.liw.fi/debian/pool/main/p/python-cliapp/python-cliapp_1.20120929.orig.tar.gz";
sha256 = "30d5077e53b3e45f892b1c49feaaf4f47e4664400ed71435e77a82a2b823a0f8";
url = "http://code.liw.fi/debian/pool/main/p/python-cliapp/python-cliapp_${version}.orig.tar.gz";
sha256 = "1bzvc4aj3w8g85qycwz1jxa73jj8rl6zrgd4hi78kr4dgslcfns5";
};
buildInputs = [ sphinx ];
@@ -3316,11 +3339,12 @@ let pythonPackages = python.modules // rec {
};
larch = buildPythonPackage rec {
name = "larch-1.20121006";
name = "larch-${version}";
version = "1.20121216";
src = fetchurl rec {
url = "http://code.liw.fi/debian/pool/main/p/python-larch/python-larch_1.20121006.orig.tar.gz";
sha256 = "b4482981010e9c22ee3fce6fdc664b8fc0a1a3a18ed30b40f247f3b44437ccfa";
url = "http://code.liw.fi/debian/pool/main/p/python-larch/python-larch_${version}.orig.tar.gz";
sha256 = "0w4hirs8wkp1hji6nxfmq4rahkd5rgw4cavvdhpdfr4mddycbis3";
};
buildInputs = [ sphinx ];
@@ -3337,4 +3361,88 @@ let pythonPackages = python.modules // rec {
};
};
whisper = buildPythonPackage rec {
name = "whisper-${version}";
version = "0.9.10";
src = fetchurl rec {
url = "https://launchpad.net/graphite/0.9/${version}/+download/${name}.tar.gz";
sha256 = "1zy4z4hrbiqj4ipcv2m9197hf03d4xphllqav9w4c8i6fn8zmd9n";
};
# error: invalid command 'test'
doCheck = false;
meta = {
homepage = http://graphite.wikidot.com/;
description = "Fixed size round-robin style database";
maintainers = [ stdenv.lib.maintainers.rickynils ];
platforms = python.meta.platforms;
};
};
carbon = buildPythonPackage rec {
name = "carbon-${version}";
version = "0.9.10";
src = fetchurl rec {
url = "https://launchpad.net/graphite/0.9/${version}/+download/${name}.tar.gz";
sha256 = "0wjhd87pvpcpvaj3wql2d92g8lpp33iwmxdkp7npic5mjl2y0dsg";
};
buildInputs = [ txamqp zopeInterface twisted ];
propagatedBuildInputs = [ whisper ];
# error: invalid command 'test'
doCheck = false;
meta = {
homepage = http://graphite.wikidot.com/;
description = "Backend data caching and persistence daemon for Graphite";
maintainers = [ stdenv.lib.maintainers.rickynils ];
platforms = python.meta.platforms;
};
};
txamqp = buildPythonPackage rec {
name = "txamqp-${version}";
version = "0.3";
src = fetchurl rec {
url = "https://launchpad.net/txamqp/trunk/${version}/+download/python-txamqp_${version}.orig.tar.gz";
sha256 = "1r2ha0r7g14i4b5figv2spizjrmgfpspdbl1m031lw9px2hhm463";
};
buildInputs = [ twisted ];
meta = {
homepage = https://launchpad.net/txamqp;
description = "Library for communicating with AMQP peers and brokers using Twisted";
maintainers = [ stdenv.lib.maintainers.rickynils ];
platforms = python.meta.platforms;
};
};
graphite_web = buildPythonPackage rec {
name = "graphite-web-${version}";
version = "0.9.10";
src = fetchurl rec {
url = "https://launchpad.net/graphite/0.9/${version}/+download/${name}.tar.gz";
sha256 = "1gj8i6j2i172cldqw98395235bn78ciagw6v17fgv01rmind3lag";
};
buildInputs = [ django pkgs.pycairo ldap memcached python.modules.sqlite3 ];
# error: invalid command 'test'
doCheck = false;
meta = {
homepage = http://graphite.wikidot.com/;
description = "Enterprise scalable realtime graphing";
maintainers = [ stdenv.lib.maintainers.rickynils ];
platforms = python.meta.platforms;
};
};
}; in pythonPackages