Merge remote-tracking branch 'origin/master' into systemd

This commit is contained in:
Eelco Dolstra
2013-01-19 00:05:50 +01:00
74 changed files with 2796 additions and 252 deletions

View File

@@ -38,8 +38,8 @@ rec {
name = "lazarus-${version}";
meta = {
description = "Lazarus graphical IDE for FreePascal language";
homepage = http://www.lazarus.freepascal.org ;
homepage = http://www.lazarus.freepascal.org;
maintainers = [args.lib.maintainers.raskin];
platforms = args.lib.platforms.linux;
#platforms = args.lib.platforms.linux;
};
}

View File

@@ -48,13 +48,12 @@ stdenv.mkDerivation rec {
'';
meta = {
description = "Opa is a concise and elegant language for writing distributed web applications. Both client and server sides.";
description = "A concise and elegant language for writing distributed web applications";
longDescription = ''
Opa is a new generation of web development platform that lets you write distributed
web applications using a single technology. Among the the many features of Opa are these:
Opa is concise, simple, concurrent, dynamically distributed, and secure.
Opa is a new generation of web development platform that lets you write distributed
web applications using a single technology. Among the the many features of Opa are these:
Opa is concise, simple, concurrent, dynamically distributed, and secure.
'';
homepage = http://opalang.org/;
license = stdenv.lib.licenses.gpl3;
maintainers = [ stdenv.lib.maintainers.kkallio ];

View File

@@ -68,6 +68,8 @@ let
rm -rf "$out/lib/python${majorVersion}/test"
ln -s $out/lib/python${majorVersion}/pdb.py $out/bin/pdb
ln -s $out/lib/python${majorVersion}/pdb.py $out/bin/pdb${majorVersion}
mv $out/share/man/man1/{python.1,python2.6.1}
ln -s $out/share/man/man1/{python2.6.1,python.1}
'';
passthru = {

View File

@@ -76,6 +76,7 @@ let
rm -rf "$out/lib/python${majorVersion}/test"
ln -s $out/lib/python${majorVersion}/pdb.py $out/bin/pdb
ln -s $out/lib/python${majorVersion}/pdb.py $out/bin/pdb${majorVersion}
ln -s $out/share/man/man1/{python2.7.1.gz,python.1.gz}
'';
passthru = {

View File

@@ -1,12 +1,12 @@
# Create a python that knows about additional python packages via
# PYTHONPATH
{stdenv, python, makeWrapper, extraLibs ? []}:
{ stdenv, python, makeWrapper, recursivePthLoader, extraLibs ? [] }:
stdenv.mkDerivation {
name = "python-${python.version}-wrapper";
propagatedBuildInputs = [python makeWrapper] ++ extraLibs;
propagatedBuildInputs = extraLibs ++ [ python makeWrapper recursivePthLoader ];
unpackPhase = "true";
installPhase = ''

View File

@@ -0,0 +1,13 @@
{ cabal }:
cabal.mkDerivation (self: {
pname = "cipher-rc4";
version = "0.1.2";
sha256 = "0nyrqms7h3hq236h03sjjjqdcxn3iz3fg4ifqj43f4nb8gv0ifb1";
meta = {
homepage = "http://github.com/vincenthz/hs-cipher-rc4";
description = "Fast RC4 cipher implementation";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
};
})

View File

@@ -1,14 +1,14 @@
{ cabal, base64Bytestring, cereal, cprngAes, cryptoApi
, cryptocipher, entropy, skein, tagged
{ cabal, base64Bytestring, cereal, cipherAes, cprngAes, cryptoApi
, entropy, skein, tagged
}:
cabal.mkDerivation (self: {
pname = "clientsession";
version = "0.8.0.2";
sha256 = "189v030g23lvky4vccdaw3p0p6drn26zly80a8n9bbn7b8kbfh4r";
version = "0.8.1";
sha256 = "1x4qfm4hkvm3xmn7hnvcx1j900g97qhks66xzik1wvsjy3piwpgd";
buildDepends = [
base64Bytestring cereal cprngAes cryptoApi cryptocipher entropy
skein tagged
base64Bytestring cereal cipherAes cprngAes cryptoApi entropy skein
tagged
];
meta = {
homepage = "http://github.com/yesodweb/clientsession/tree/master";

View File

@@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "crypto-conduit";
version = "0.4.2";
sha256 = "0kg99kvpm5h8v28sylrp9z868ksz5737377akqy09y90xzb8pak3";
version = "0.4.3";
sha256 = "0h9dmr88hqmz2876mlnzz8s5kmi368zs9pljvvmb9vn7m44gpyrk";
buildDepends = [ cereal conduit cryptoApi transformers ];
meta = {
homepage = "https://github.com/meteficha/crypto-conduit";

View File

@@ -0,0 +1,14 @@
{ cabal, cryptoRandomApi, vector }:
cabal.mkDerivation (self: {
pname = "crypto-numbers";
version = "0.1.3";
sha256 = "115lgnay3ly5r53flh3v5jygqks0rg1i8qmbvrqf9nkmnmw6a5x1";
buildDepends = [ cryptoRandomApi vector ];
meta = {
homepage = "http://github.com/vincenthz/hs-crypto-numbers";
description = "Cryptographic numbers: functions and algorithms";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
};
})

View File

@@ -0,0 +1,18 @@
{ cabal, cryptohash, cryptoNumbers, cryptoPubkeyTypes
, cryptoRandomApi
}:
cabal.mkDerivation (self: {
pname = "crypto-pubkey";
version = "0.1.2";
sha256 = "1law5l7j0r0v89dnibmaipjp0yshffq10xs4rvg2j247v29lhns5";
buildDepends = [
cryptohash cryptoNumbers cryptoPubkeyTypes cryptoRandomApi
];
meta = {
homepage = "http://github.com/vincenthz/hs-crypto-pubkey";
description = "Public Key cryptography";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
};
})

View File

@@ -1,19 +1,20 @@
{ cabal, cereal, cpu, cryptoApi, cryptoPubkeyTypes, primitive
, tagged, vector
{ cabal, cereal, cipherAes, cipherRc4, cpu, cryptoApi
, cryptoPubkeyTypes, primitive, tagged, vector
}:
cabal.mkDerivation (self: {
pname = "cryptocipher";
version = "0.3.7";
sha256 = "14qhi3969q1h9n85flb7wwsr50gdn63q7pmcpm2npy5vkp34lkp5";
version = "0.4.0";
sha256 = "1qbnhzbzypin7h62sn2sibij7clsgmaiq24q3xhgbjrirb6bhqf0";
isLibrary = true;
isExecutable = true;
buildDepends = [
cereal cpu cryptoApi cryptoPubkeyTypes primitive tagged vector
cereal cipherAes cipherRc4 cpu cryptoApi cryptoPubkeyTypes
primitive tagged vector
];
meta = {
homepage = "http://github.com/vincenthz/hs-cryptocipher";
description = "Symmetrical Block, Stream and PubKey Ciphers";
description = "Symmetrical block and stream ciphers";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
maintainers = [ self.stdenv.lib.maintainers.andres ];

View File

@@ -1,16 +1,19 @@
{ cabal, binary, blazeHtml, blazeMarkup, citeprocHs, cryptohash
, filepath, hamlet, lrucache, mtl, pandoc, parsec, regexBase
, regexTdfa, snapCore, snapServer, tagsoup, text, time
{ cabal, binary, blazeHtml, blazeMarkup, citeprocHs, cmdargs
, cryptohash, deepseq, filepath, httpConduit, httpTypes, lrucache
, mtl, pandoc, parsec, random, regexBase, regexTdfa, snapCore
, snapServer, tagsoup, text, time
}:
cabal.mkDerivation (self: {
pname = "hakyll";
version = "3.5.2.1";
sha256 = "1fp7jak2sfznvg3lfyjqy13m1iq9821mdq6n5qmqz5dh5b960iv4";
version = "4.0.0.0";
sha256 = "165r9x158nnnwzd1cxymskkxvfhxsnpam8bi3gjy8bql8arsibzr";
isLibrary = true;
isExecutable = true;
buildDepends = [
binary blazeHtml blazeMarkup citeprocHs cryptohash filepath hamlet
lrucache mtl pandoc parsec regexBase regexTdfa snapCore snapServer
tagsoup text time
binary blazeHtml blazeMarkup citeprocHs cmdargs cryptohash deepseq
filepath httpConduit httpTypes lrucache mtl pandoc parsec random
regexBase regexTdfa snapCore snapServer tagsoup text time
];
meta = {
homepage = "http://jaspervdj.be/hakyll";

View File

@@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "hashable";
version = "1.2.0.3";
sha256 = "0q4zl2mry6qfp9vln6pxmgqik7szv1sh7if55gydnxln1ybvvgmp";
version = "1.2.0.5";
sha256 = "0frqr294bsx4i21xxd5pw59xpaf0nww0dh4bqn0ywblsm9c7nyqh";
buildDepends = [ text ];
meta = {
homepage = "http://github.com/tibbe/hashable";

View File

@@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "hs-bibutils";
version = "4.15";
sha256 = "1h2vqi6ymhx9wpfv5qzvq4fhc4iand93shsncp8nszk64acmz9z9";
version = "4.16";
sha256 = "0501fqv0xlwdmpg65s3rr0fns6gqq15x2zq2a8915n3dvipfkixb";
buildDepends = [ syb ];
meta = {
homepage = "http://gorgias.mine.nu/repos/hs-bibutils/";

View File

@@ -1,21 +1,23 @@
{ cabal, asn1Data, attoparsec, attoparsecConduit, base64Bytestring
, blazeBuilder, blazeBuilderConduit, caseInsensitive, certificate
, conduit, cookie, cprngAes, dataDefault, deepseq, failure
, httpTypes, liftedBase, monadControl, mtl, network, regexCompat
, resourcet, socks, text, time, tls, tlsExtra, transformers
, transformersBase, utf8String, void, zlibConduit
, filepath, httpTypes, liftedBase, mimeTypes, monadControl, mtl
, network, random, regexCompat, resourcet, socks, text, time, tls
, tlsExtra, transformers, transformersBase, utf8String, void
, zlibConduit
}:
cabal.mkDerivation (self: {
pname = "http-conduit";
version = "1.8.6.3";
sha256 = "0ykwfii3qcj77ai0jafgbf5017mckz51gmbk3m8kwm1z6dalb27r";
version = "1.8.7";
sha256 = "12v5rxp4dx6glyijygpp7r7b5b6mscclgfp2cbii78m3hgld097i";
buildDepends = [
asn1Data attoparsec attoparsecConduit base64Bytestring blazeBuilder
blazeBuilderConduit caseInsensitive certificate conduit cookie
cprngAes dataDefault deepseq failure httpTypes liftedBase
monadControl mtl network regexCompat resourcet socks text time tls
tlsExtra transformers transformersBase utf8String void zlibConduit
cprngAes dataDefault deepseq failure filepath httpTypes liftedBase
mimeTypes monadControl mtl network random regexCompat resourcet
socks text time tls tlsExtra transformers transformersBase
utf8String void zlibConduit
];
meta = {
homepage = "http://www.yesodweb.com/book/http-conduit";

View File

@@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "mime-types";
version = "0.1.0.1";
sha256 = "1a34ckmv8qcyk38jydxwph59zcrhnwaah1h6pzn112kysjqjgcsl";
version = "0.1.0.2";
sha256 = "1pkhr8k23386qwa1wmlrcilz75di2l8n5kc4n8pnia05p49akfcs";
buildDepends = [ text ];
meta = {
homepage = "https://github.com/yesodweb/wai";

View File

@@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "network";
version = "2.4.0.1";
sha256 = "00jj3pf2gchkx5wmipm2ijxcmhy37g86ggnp6pb92i5nmb93h1iw";
version = "2.4.1.0";
sha256 = "0m44iqlcnpsaa3iqxb4wbx2l1k2ycxzq8v07bwz7br7yyikv16y3";
buildDepends = [ parsec ];
meta = {
homepage = "https://github.com/haskell/network";

View File

@@ -6,8 +6,8 @@
cabal.mkDerivation (self: {
pname = "persistent";
version = "1.1.3.2";
sha256 = "1q8p5nxsf9fjhsyy1lha852f7vssp9mz6l24gg47mgv6y5mm9myv";
version = "1.1.4";
sha256 = "1frxhyyp8l5xvq5h9zf730c7kpnrryw2mw8mpnav2bs5g6rmmrgj";
buildDepends = [
aeson attoparsec base64Bytestring blazeHtml blazeMarkup conduit
liftedBase monadControl monadLogger pathPieces poolConduit

View File

@@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "smallcheck";
version = "0.6.1";
sha256 = "1p2bsc08lcyzmqdjc5qsr60dr03kvc8xw7kk4lbi9cnn9s9w90vb";
version = "0.6.2";
sha256 = "0yz7an3k71ia7sgs8xpkh37xz9ipsnbf13680185cij8llq8zbyr";
buildDepends = [ dlist ];
meta = {
homepage = "https://github.com/feuerbach/smallcheck";

View File

@@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "system-fileio";
version = "0.3.10";
sha256 = "1f8si6m62nxzj71jgyhxl38szmw8wr3frvgih596vfjxwdhqpkq4";
version = "0.3.11";
sha256 = "0hnjrzhzbqx9l93c8dnl5b54f72ki584cn3jh8m6z56x2lrs24zb";
buildDepends = [ systemFilepath text time ];
meta = {
homepage = "https://john-millikin.com/software/haskell-filesystem/";

View File

@@ -1,16 +1,17 @@
{ cabal, certificate, cipherAes, cryptoApi, cryptocipher
, cryptohash, mtl, network, pem, text, time, tls, vector
{ cabal, certificate, cipherAes, cipherRc4, cryptohash
, cryptoPubkey, cryptoRandomApi, mtl, network, pem, text, time, tls
, vector
}:
cabal.mkDerivation (self: {
pname = "tls-extra";
version = "0.5.1";
sha256 = "0a977qy6ig4bhgsl6y5iw0xv52yswmcc2x37ypm1601wikjv38x3";
version = "0.6.0";
sha256 = "11cf91cgbyp4xzbr3n9h20rvbb6756r9dk74r5w158f3xmlgk5nx";
isLibrary = true;
isExecutable = true;
buildDepends = [
certificate cipherAes cryptoApi cryptocipher cryptohash mtl network
pem text time tls vector
certificate cipherAes cipherRc4 cryptohash cryptoPubkey
cryptoRandomApi mtl network pem text time tls vector
];
meta = {
homepage = "http://github.com/vincenthz/hs-tls";

View File

@@ -1,17 +1,15 @@
{ cabal, cereal, certificate, cryptoApi, cryptocipher, cryptohash
, mtl, network
{ cabal, cereal, certificate, cryptohash, cryptoPubkey
, cryptoRandomApi, mtl, network
}:
cabal.mkDerivation (self: {
pname = "tls";
version = "1.0.3";
sha256 = "14wgwz032skkgkxg2lyh8kwg1fkapmlg2jh74czbacvnssc2iidb";
isLibrary = true;
isExecutable = true;
version = "1.1.1";
sha256 = "0ji83b5z3v6f6a6rgyj5xkjh9vvsqckr7ymzjnhb4zqf0mgymypq";
buildDepends = [
cereal certificate cryptoApi cryptocipher cryptohash mtl network
cereal certificate cryptohash cryptoPubkey cryptoRandomApi mtl
network
];
jailbreak = true;
meta = {
homepage = "http://github.com/vincenthz/hs-tls";
description = "TLS/SSL protocol native implementation (Server and Client)";

View File

@@ -5,8 +5,8 @@
cabal.mkDerivation (self: {
pname = "warp";
version = "1.3.7";
sha256 = "06648wqiwlcsvd41qdqdbgn1zcq890iq39zsxi24vf4s8q7jnzyf";
version = "1.3.7.1";
sha256 = "0kabcxzjc686iayhxln2cmnxm3vk3h0685n4d4ybprv5h1nc6ghl";
buildDepends = [
blazeBuilder blazeBuilderConduit caseInsensitive conduit hashable
httpTypes liftedBase network networkConduit simpleSendfile

View File

@@ -1,6 +1,6 @@
{ stdenv, fetchurl, popt }:
{ stdenv, fetchurl, popt, libiconv }:
stdenv.mkDerivation rec {
stdenv.mkDerivation (rec {
name = "libnatspec-0.2.6";
src = fetchurl {
@@ -16,4 +16,8 @@ stdenv.mkDerivation rec {
platforms = stdenv.lib.platforms.unix;
maintainers = [ stdenv.lib.maintainers.urkud ];
};
}
} // stdenv.lib.optionalAttrs (!stdenv.isLinux) {
NIX_CFLAGS_COMPILE = "-I${libiconv}/include";
NIX_CFLAGS_LINK = "-L${libiconv}/lib -liconv";
})

View File

@@ -49,6 +49,6 @@ rec {
maintainers = [
a.lib.maintainers.raskin
];
platforms = a.lib.platforms.linux ;
#platforms = a.lib.platforms.linux ;
};
}

View File

@@ -1,7 +1,7 @@
{stdenv, androidsdk, titaniumsdk, xcodewrapper}:
{ appId, name, src, target, androidPlatformVersions ? [ "8" ]
, release ? false, androidKeyStore ? null, androidKeyAlias ? null, androidKeyStorePassword ? null
, iosKeyFile ? null, iosCertificateName ? null, iosCertificate ? null, iosCertificatePassword ? null
, iosKeyFile ? null, iosCertificateName ? null, iosCertificate ? null, iosCertificatePassword ? null, iosDistribute ? false
}:
assert (release && target == "android") -> androidKeyStore != null && androidKeyAlias != null && androidKeyStorePassword != null;
@@ -12,9 +12,12 @@ let
platformVersions = androidPlatformVersions;
useGoogleAPIs = true;
};
deleteKeychain = "security delete-keychain $keychainName";
in
stdenv.mkDerivation {
inherit name src;
name = stdenv.lib.replaceChars [" "] [""] name;
inherit src;
buildInputs = [] ++ stdenv.lib.optional (stdenv.system == "x86_64-darwin") xcodewrapper;
@@ -25,13 +28,12 @@ stdenv.mkDerivation {
${if target == "android" then
if release then
"${titaniumsdk}/mobilesdk/*/*/android/builder.py distribute ${name} ${androidsdkComposition}/libexec/android-sdk-* $(pwd) ${appId} ${androidKeyStore} ${androidKeyStorePassword} ${androidKeyAlias} $out"
''${titaniumsdk}/mobilesdk/*/*/android/builder.py distribute "${name}" ${androidsdkComposition}/libexec/android-sdk-* $(pwd) ${appId} ${androidKeyStore} ${androidKeyStorePassword} ${androidKeyAlias} $out''
else
"${titaniumsdk}/mobilesdk/*/*/android/builder.py build ${name} ${androidsdkComposition}/libexec/android-sdk-* $(pwd) ${appId}"
''${titaniumsdk}/mobilesdk/*/*/android/builder.py build "${name}" ${androidsdkComposition}/libexec/android-sdk-* $(pwd) ${appId}''
else if target == "iphone" then
if release then
''
if iosDistribute then ''
export HOME=/Users/$(whoami)
export keychainName=$(basename $out)
@@ -51,11 +53,39 @@ stdenv.mkDerivation {
cp ${iosKeyFile} "$HOME/Library/MobileDevice/Provisioning Profiles/$provisioningId.mobileprovision"
fi
${titaniumsdk}/mobilesdk/*/*/iphone/builder.py adhoc 6.0 $(pwd) ${appId} ${name} "$provisioningId" "${iosCertificateName}" universal "$HOME/Library/Keychains/$keychainName"
${titaniumsdk}/mobilesdk/*/*/iphone/builder.py distribute 6.0 $(pwd) ${appId} "${name}" "$provisioningId" "${iosCertificateName}" $out universal "$HOME/Library/Keychains/$keychainName"
# Remove our generated keychain
security delete-keychain $keychainName
${deleteKeychain}
''
else
if release then
''
export HOME=/Users/$(whoami)
export keychainName=$(basename $out)
# Create a keychain with the component hash name (should always be unique)
security create-keychain -p "" $keychainName
security default-keychain -s $keychainName
security unlock-keychain -p "" $keychainName
security import ${iosCertificate} -k $keychainName -P "${iosCertificatePassword}" -A
provisioningId=$(grep UUID -A1 -a ${iosKeyFile} | grep -o "[-A-Z0-9]\{36\}")
# Ensure that the requested provisioning profile can be found
if [ ! -f "$HOME/Library/MobileDevice/Provisioning Profiles" ]
then
mkdir -p "$HOME/Library/MobileDevice/Provisioning Profiles"
cp ${iosKeyFile} "$HOME/Library/MobileDevice/Provisioning Profiles/$provisioningId.mobileprovision"
fi
${titaniumsdk}/mobilesdk/*/*/iphone/builder.py adhoc 6.0 $(pwd) ${appId} "${name}" "$provisioningId" "${iosCertificateName}" universal "$HOME/Library/Keychains/$keychainName"
# Remove our generated keychain
${deleteKeychain}
''
else
''
@@ -66,7 +96,7 @@ stdenv.mkDerivation {
cp -av * $out
cd $out
${titaniumsdk}/mobilesdk/*/*/iphone/builder.py build 6.0 $(pwd) ${appId} ${name}
${titaniumsdk}/mobilesdk/*/*/iphone/builder.py build 6.0 $(pwd) ${appId} "${name}"
''
else throw "Target: ${target} is not supported!"}
@@ -84,4 +114,6 @@ stdenv.mkDerivation {
else if target == "iphone" then ""
else throw "Target: ${target} is not supported!"}
'';
failureHook = stdenv.lib.optionalString (release && target == "iphone") deleteKeychain;
}

View File

@@ -53,5 +53,8 @@ stdenv.mkDerivation {
--prefix PYTHONPATH : ${python.modules.sqlite3}/lib/python*/site-packages \
--prefix PATH : ${jdk}/bin \
--prefix JAVA_HOME : ${jdk}
'' + stdenv.lib.optionalString (stdenv.system == "x86_64-darwin") ''
# 'ditto' utility is needed to copy stuff to the Xcode organizer. Dirty, but this allows it to work.
sed -i -e "s|ditto|/usr/bin/ditto|g" $out/mobilesdk/osx/*/iphone/builder.py
'';
}

View File

@@ -0,0 +1,12 @@
diff -Naur Google-ProtocolBuffers-0.08-orig/lib/Google/ProtocolBuffers/Compiler.pm Google-ProtocolBuffers-0.08/lib/Google/ProtocolBuffers/Compiler.pm
--- Google-ProtocolBuffers-0.08-orig/lib/Google/ProtocolBuffers/Compiler.pm 2008-10-23 13:46:01.000000000 -0400
+++ Google-ProtocolBuffers-0.08/lib/Google/ProtocolBuffers/Compiler.pm 2013-01-16 13:52:09.855063997 -0500
@@ -16,7 +16,7 @@
my $grammar = <<'END_OF_GRAMMAR';
-proto : <skip: qr! (?: //.*\n | \s+ )* !x>
+proto : <skip: qr! (?: //.*?\n | \s+ | /\*.*?\*/\s* )* !xs>
## list of top level declarations.
## Skip empty declarations and ";".
(message | extend | enum | import | package | option | service | syntax | ";")(s) /\Z/

View File

@@ -3,7 +3,7 @@
(http://pypi.python.org/pypi/setuptools/), which represents a large
number of Python packages nowadays. */
{ python, setuptools, wrapPython, lib, offlineDistutils, setuptoolsSite }:
{ python, setuptools, wrapPython, lib, offlineDistutils, recursivePthLoader }:
{ name, namePrefix ? "python-"
@@ -48,16 +48,14 @@ python.stdenv.mkDerivation (attrs // {
name = namePrefix + name;
# checkPhase after installPhase to run tests on installed packages
phases = "unpackPhase patchPhase configurePhase buildPhase installPhase checkPhase fixupPhase distPhase";
buildInputs = [ python wrapPython setuptools ] ++ buildInputs ++ pythonPath;
# setuptoolsSite is responsible for loading pth files
propagatedBuildInputs = propagatedBuildInputs ++ [ setuptoolsSite ];
propagatedBuildInputs = propagatedBuildInputs ++ [ recursivePthLoader ];
buildInputStrings = map toString buildInputs;
pythonPath = [ setuptools] ++ pythonPath;
pythonPath = [ setuptools ] ++ pythonPath;
preConfigure = ''
PYTHONPATH="${offlineDistutils}/lib/${python.libPrefix}/site-packages:$PYTHONPATH"
@@ -83,9 +81,7 @@ python.stdenv.mkDerivation (attrs // {
# Remove any site.py files generated by easy_install as these
# cause collisions. If pth files are to be processed a
# corresponding site.py needs to be included in the PYTHONPATH.
#
# leave them until we have a better solution: see #209
#rm -f "$out/lib/${python.libPrefix}"/site-packages/site.py*
rm -f "$out/lib/${python.libPrefix}"/site-packages/site.py*
${postInstall}
'';
@@ -94,15 +90,6 @@ python.stdenv.mkDerivation (attrs // {
''
wrapPythonPrograms
# If a user installs a Python package, she probably also wants its
# dependencies in the user environment (since Python modules don't
# have something like an RPATH, so the only way to find the
# dependencies is to have them in the PYTHONPATH variable).
if test -e $out/nix-support/propagated-build-inputs; then
ln -s $out/nix-support/propagated-build-inputs $out/nix-support/propagated-user-env-packages
fi
createBuildInputsPth build-inputs "$buildInputStrings"
for inputsfile in propagated-build-inputs propagated-build-native-inputs; do
if test -e $out/nix-support/$inputsfile; then
createBuildInputsPth $inputsfile "$(cat $out/nix-support/$inputsfile)"

View File

@@ -51,6 +51,9 @@ createBuildInputsPth() {
local inputs="$2"
if [ foo"$inputs" != foo ]; then
for x in $inputs; do
if $(echo -n $x |grep -q python-recursive-pth-loader); then
continue
fi
if test -d "$x"/lib/@libPrefix@/site-packages; then
echo $x/lib/@libPrefix@/site-packages \
>> "$out"/lib/@libPrefix@/site-packages/${name}-nix-python-$category.pth

View File

@@ -1,4 +1,4 @@
{stdenv, fetchurl, python, pkgconfig, cairo, x11}:
{ stdenv, fetchurl, python, pkgconfig, cairo, x11 }:
stdenv.mkDerivation {
name = "pycairo-1.8.8";
@@ -7,5 +7,5 @@ stdenv.mkDerivation {
sha256 = "0q18hd4ai4raljlvd76ylgi30kxpr2qq83ka6gzwh0ya8fcmjlig";
};
buildInputs = [python pkgconfig cairo x11];
buildInputs = [ python pkgconfig cairo x11 ];
}

View File

@@ -12,16 +12,12 @@ stdenv.mkDerivation rec {
buildInputs = [ python pkgconfig glib ];
# in a "normal" setup, pygobject and pygtk are installed into the
# same site-packages: we need a pth file for both. pygtk.py would be
# used to select a specific version, in our setup it should have no
# effect, but we leave it in case somebody expects and calls it.
postInstall = ''
# All python code is installed into a "gtk-2.0" sub-directory. That
# sub-directory may be useful on systems which share several library
# versions in the same prefix, i.e. /usr/local, but on Nix that directory
# is useless. Furthermore, its existence makes it very hard to guess a
# proper $PYTHONPATH that allows "import gtk" to succeed.
cd $(toPythonPath $out)/gtk-2.0
for n in *; do
ln -s "gtk-2.0/$n" "../$n"
done
mv $out/lib/${python.libPrefix}/site-packages/{pygtk.pth,${name}.pth}
'';
meta = {

View File

@@ -1,7 +1,7 @@
{ stdenv, fetchurl, makeWrapper, python, pkgconfig, glib, gtk, pygobject, pycairo
, libglade ? null }:
{ stdenv, fetchurl, python, pkgconfig, glib, gtk, pygobject, pycairo
, buildPythonPackage, libglade ? null }:
stdenv.mkDerivation rec {
buildPythonPackage rec {
name = "pygtk-2.22.0";
src = fetchurl {
@@ -10,26 +10,35 @@ stdenv.mkDerivation rec {
};
buildInputs =
[ makeWrapper python pkgconfig glib gtk ]
[ pkgconfig glib gtk ]
++ stdenv.lib.optional (libglade != null) libglade;
propagatedBuildInputs = [ pygobject pycairo ];
installCommand = "make install";
checkPhase = stdenv.lib.optionalString (libglade == null)
''
sed -i -e "s/glade = importModule('gtk.glade', buildDir)//" \
tests/common.py
sed -i -e "s/, glade$//" \
-e "s/.*testGlade.*//" \
-e "s/.*(glade.*//" \
tests/test_api.py
'' + ''
sed -i -e "s/sys.path.insert(0, os.path.join(buildDir, 'gtk'))//" \
-e "s/sys.path.insert(0, buildDir)//" \
tests/common.py
make check
'';
# XXX: TypeError: Unsupported type: <class 'gtk._gtk.WindowType'>
# The check phase was not executed in the previous
# non-buildPythonPackage setup - not sure why not.
doCheck = false;
postInstall = ''
rm $out/bin/pygtk-codegen-2.0
ln -s ${pygobject}/bin/pygobject-codegen-2.0 $out/bin/pygtk-codegen-2.0
# All python code is installed into a "gtk-2.0" sub-directory. That
# sub-directory may be useful on systems which share several library
# versions in the same prefix, i.e. /usr/local, but on Nix that directory
# is useless. Furthermore, its existence makes it very hard to guess a
# proper $PYTHONPATH that allows "import gtk" to succeed.
cd $(toPythonPath $out)/gtk-2.0
for n in *; do
ln -s "gtk-2.0/$n" "../$n"
done
wrapProgram $out/bin/pygtk-demo --prefix PYTHONPATH ":" \
$(toPythonPath "${pygobject} ${pycairo} $out")
ln -s ${pygobject}/lib/${python.libPrefix}/site-packages/${pygobject.name}.pth \
$out/lib/${python.libPrefix}/site-packages/${name}.pth
'';
}

View File

@@ -1,7 +1,7 @@
{ stdenv, fetchurl, python, wrapPython }:
stdenv.mkDerivation rec {
name = "setuptools-" + version;
name = "python-setuptools-" + version;
version = "0.6c11";

View File

@@ -1,29 +1,32 @@
Without this patch `virtualenv --python=python2.7 .` fails with an error because it notices that the python readline.so is not in the same path as python2.7. I assume this is to avoid copying the wrong file on systems where it is possible to find incompatible libraries by accident. Adding "/nix/store" to the prefix fixes this problem. Unfortunately readline is still not available if you just run `virtualenv .`.
--- virtualenv-1.6.4/virtualenv.py 2012-05-20 00:40:38.070649647 +0200
+++ virtualenv-1.6.4/virtualenv.py 2012-05-20 00:45:10.596242604 +0200
@@ -951,13 +951,7 @@
--- virtualenv-1.8.4/virtualenv.py 2013-01-16 23:43:37.583615220 +0100
+++ virtualenv-1.8.4/virtualenv.py 2013-01-16 23:44:47.885973431 +0100
@@ -1135,17 +1135,7 @@
def change_prefix(filename, dst_prefix):
- prefixes = [sys.prefix]
-
- if sys.platform == "darwin":
- if is_darwin:
- prefixes.extend((
- os.path.join("/Library/Python", sys.version[:3], "site-packages"),
- os.path.join(sys.prefix, "Extras", "lib", "python"),
- os.path.join("~", "Library", "Python", sys.version[:3], "site-packages")))
- os.path.join("~", "Library", "Python", sys.version[:3], "site-packages"),
- # Python 2.6 no-frameworks
- os.path.join("~", ".local", "lib","python", sys.version[:3], "site-packages"),
- # System Python 2.7 on OSX Mountain Lion
- os.path.join("~", "Library", "Python", sys.version[:3], "lib", "python", "site-packages")))
+ prefixes = ["/nix/store", sys.prefix]
if hasattr(sys, 'real_prefix'):
prefixes.append(sys.real_prefix)
@@ -968,6 +962,8 @@
_, relpath = filename.split(src_prefix, 1)
assert relpath[0] == os.sep
relpath = relpath[1:]
+ if src_prefix == "/nix/store":
+ relpath = "/".join(relpath.split("/")[1:])
@@ -1162,6 +1152,8 @@
if src_prefix != os.sep: # sys.prefix == "/"
assert relpath[0] == os.sep
relpath = relpath[1:]
+ if src_prefix == "/nix/store":
+ relpath = "/".join(relpath.split("/")[1:])
return join(dst_prefix, relpath)
assert False, "Filename %s does not start with any of these prefixes: %s" % \
(filename, prefixes)