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

This commit is contained in:
Eelco Dolstra 2013-01-08 17:06:43 +01:00
commit 1909f9547d
75 changed files with 738 additions and 84 deletions

View File

@ -11,6 +11,9 @@ stdenv.mkDerivation rec {
buildInputs = [ ncurses boehmgc ]; buildInputs = [ ncurses boehmgc ];
buildNativeInputs = [ help2man perl ]; buildNativeInputs = [ help2man perl ];
# `help2man' wants to run Zile, which fails when cross-compiling.
crossAttrs.buildNativeInputs = [];
# Tests can't be run because most of them rely on the ability to # Tests can't be run because most of them rely on the ability to
# fiddle with the terminal. # fiddle with the terminal.
doCheck = false; doCheck = false;

View File

@ -0,0 +1,47 @@
{ stdenv, fetchurl, pkgconfig, zlib, qt4, freetype, cairo, lua5, texLive, ghostscriptX
, makeWrapper }:
let ghostscript = ghostscriptX; in
stdenv.mkDerivation rec {
name = "ipe-7.1.2";
src = fetchurl {
url = "mirror://sourceforge/ipe7/ipe/7.1.0/${name}-src.tar.gz";
sha256 = "04fs5slci3bmpgz8d038h3hnzzdw57xykcpsmisdxci2xrkxx41k";
};
# changes taken from Gentoo portage
preConfigure = ''
cd src
sed -i \
-e 's/fpic/fPIC/' \
-e 's/moc-qt4/moc/' \
config.mak || die
sed -i -e 's/install -s/install/' common.mak || die
'';
IPEPREFIX="$$out";
URWFONTDIR="${texLive}/texmf-dist/fonts/type1/urw/";
buildInputs = [
pkgconfig zlib qt4 freetype cairo lua5 texLive ghostscript makeWrapper
];
postInstall = ''
for prog in $out/bin/*; do
wrapProgram "$prog" --prefix PATH : "${texLive}/bin"
done
'';
#TODO: make .desktop entry
meta = {
description = "An editor for drawing figures";
homepage = http://ipe7.sourceforge.net;
license = "GPLv3+";
longDescription = ''
Ipe is an extensible drawing editor for creating figures in PDF and Postscript format.
It supports making small figures for inclusion into LaTeX-documents
as well as presentations in PDF.
'';
};
}

View File

@ -5,6 +5,7 @@ cabal.mkDerivation (self: {
version = "0.1.0.2"; version = "0.1.0.2";
sha256 = "1iymh3sd21ba7ijwv5afphn5vhmwchk6725hbcsdwk2d2x2gd674"; sha256 = "1iymh3sd21ba7ijwv5afphn5vhmwchk6725hbcsdwk2d2x2gd674";
buildDepends = [ newtype semigroupoids semigroups vectorSpace ]; buildDepends = [ newtype semigroupoids semigroups vectorSpace ];
jailbreak = true;
meta = { meta = {
description = "Abstractions for animation"; description = "Abstractions for animation";
license = self.stdenv.lib.licenses.bsd3; license = self.stdenv.lib.licenses.bsd3;

View File

@ -4,8 +4,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "comonad-transformers"; pname = "comonad-transformers";
version = "3.0"; version = "3.0.1";
sha256 = "1bjix61rdzmqcd1irh6p91jwy4sz1617sj4zic07p7ng9h7fsz24"; sha256 = "1lmcz01zsgy0lfzsznqbdq83vlk6h10zs7i41nav8qhzzhjn095j";
buildDepends = [ buildDepends = [
comonad contravariant distributive semigroupoids semigroups comonad contravariant distributive semigroupoids semigroups
transformers transformers

View File

@ -2,8 +2,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "comonad"; pname = "comonad";
version = "3.0.0.2"; version = "3.0.1.1";
sha256 = "01q71b446mdbdj81qjrxjl5bshbg4bjih5zpw9fd4y5431bclfhi"; sha256 = "01zqxrqxy6x6nf6rynzmncbhlgbbpshhw10pkimnw5isg3b8qhc2";
buildDepends = [ semigroups transformers ]; buildDepends = [ semigroups transformers ];
meta = { meta = {
homepage = "http://github.com/ekmett/comonad/"; homepage = "http://github.com/ekmett/comonad/";

View File

@ -4,8 +4,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "comonads-fd"; pname = "comonads-fd";
version = "3.0"; version = "3.0.1";
sha256 = "1j5ymj711c49fsk2ilxfpzqr0jr117z8kb5ggyh5nlwjy16m32in"; sha256 = "0ap9sw7h130bza43091mbl9a5bsin6342zawgycdcsag49wm3dyy";
buildDepends = [ buildDepends = [
comonad comonadTransformers mtl semigroups transformers comonad comonadTransformers mtl semigroups transformers
]; ];

View File

@ -10,6 +10,7 @@ cabal.mkDerivation (self: {
dualTree MemoTrie monoidExtras newtype semigroups vectorSpace dualTree MemoTrie monoidExtras newtype semigroups vectorSpace
vectorSpacePoints vectorSpacePoints
]; ];
jailbreak = true;
meta = { meta = {
homepage = "http://projects.haskell.org/diagrams"; homepage = "http://projects.haskell.org/diagrams";
description = "Core libraries for diagrams EDSL"; description = "Core libraries for diagrams EDSL";

View File

@ -10,6 +10,7 @@ cabal.mkDerivation (self: {
active colour dataDefault diagramsCore monoidExtras newtype active colour dataDefault diagramsCore monoidExtras newtype
NumInstances semigroups vectorSpace NumInstances semigroups vectorSpace
]; ];
jailbreak = true;
meta = { meta = {
homepage = "http://projects.haskell.org/diagrams"; homepage = "http://projects.haskell.org/diagrams";
description = "Embedded domain-specific language for declarative graphics"; description = "Embedded domain-specific language for declarative graphics";

View File

@ -1,10 +1,10 @@
{ cabal, transformers }: { cabal, transformers, transformersCompat }:
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "distributive"; pname = "distributive";
version = "0.2.2"; version = "0.3";
sha256 = "13wvr2wb3h2nr1qd3dwjqx0b6g4igjqm3q2cyi4mc41gwihkbhr2"; sha256 = "0z6vwak2n91vpx9ps9j1pbiw0zlh9jmds84yx1yqssbqx8npi32f";
buildDepends = [ transformers ]; buildDepends = [ transformers transformersCompat ];
meta = { meta = {
homepage = "http://github.com/ekmett/distributive/"; homepage = "http://github.com/ekmett/distributive/";
description = "Haskell 98 Distributive functors -- Dual to Traversable"; description = "Haskell 98 Distributive functors -- Dual to Traversable";

View File

@ -5,6 +5,7 @@ cabal.mkDerivation (self: {
version = "0.1.0.0"; version = "0.1.0.0";
sha256 = "0av525gjxzd2hhrg5da647chwbv4j30gccaff2b3n5qijzy8l167"; sha256 = "0av525gjxzd2hhrg5da647chwbv4j30gccaff2b3n5qijzy8l167";
buildDepends = [ monoidExtras newtype semigroups ]; buildDepends = [ monoidExtras newtype semigroups ];
jailbreak = true;
meta = { meta = {
description = "Rose trees with cached and accumulating monoidal annotations"; description = "Rose trees with cached and accumulating monoidal annotations";
license = self.stdenv.lib.licenses.bsd3; license = self.stdenv.lib.licenses.bsd3;

View File

@ -2,8 +2,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "either"; pname = "either";
version = "3.0.2"; version = "3.0.3";
sha256 = "1s3rpxxqc9052hrmiznwqwxhl4826qzbgpivpv5acxfhm0w06lhg"; sha256 = "02kpb8xd19n00ll61haqr6k3hy8qmbdf73gr4zs59q9xh0739qxc";
buildDepends = [ semigroupoids semigroups transformers ]; buildDepends = [ semigroupoids semigroups transformers ];
meta = { meta = {
homepage = "http://github.com/ekmett/either/"; homepage = "http://github.com/ekmett/either/";

View File

@ -2,8 +2,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "fsnotify"; pname = "fsnotify";
version = "0.0.5"; version = "0.0.6";
sha256 = "1pi1dpm48igcc8n5cn8hdml8bknxl18kqhjbh6jan839fgmwagb9"; sha256 = "0ib6ansj3vaq9hxxbsq5jw14w2b61wp4jfahzb3c3x46mdb1bqw5";
buildDepends = [ hinotify systemFileio systemFilepath text time ]; buildDepends = [ hinotify systemFileio systemFilepath text time ];
meta = { meta = {
description = "Cross platform library for file creation, modification, and deletion notification"; description = "Cross platform library for file creation, modification, and deletion notification";

View File

@ -5,14 +5,13 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "hakyll"; pname = "hakyll";
version = "3.5.2.0"; version = "3.5.2.1";
sha256 = "088qhzycpz003qa4b7hnn6frgmidk6219icii04ap964fkw0mqn0"; sha256 = "1fp7jak2sfznvg3lfyjqy13m1iq9821mdq6n5qmqz5dh5b960iv4";
buildDepends = [ buildDepends = [
binary blazeHtml blazeMarkup citeprocHs cryptohash filepath hamlet binary blazeHtml blazeMarkup citeprocHs cryptohash filepath hamlet
lrucache mtl pandoc parsec regexBase regexTdfa snapCore snapServer lrucache mtl pandoc parsec regexBase regexTdfa snapCore snapServer
tagsoup text time tagsoup text time
]; ];
jailbreak = true;
meta = { meta = {
homepage = "http://jaspervdj.be/hakyll"; homepage = "http://jaspervdj.be/hakyll";
description = "A static website compiler library"; description = "A static website compiler library";

View File

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

View File

@ -2,8 +2,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "highlighting-kate"; pname = "highlighting-kate";
version = "0.5.3.3"; version = "0.5.3.4";
sha256 = "08jxl2ba0kb4vj1qbdf4sas8bwbxzayzwsxnjvq358x57i5l302n"; sha256 = "1xm9dr71qna1w65vzaf63hbchpvshfjvvs5038sy04x2ddwdix77";
isLibrary = true; isLibrary = true;
isExecutable = true; isExecutable = true;
buildDepends = [ blazeHtml filepath mtl parsec regexPcre ]; buildDepends = [ blazeHtml filepath mtl parsec regexPcre ];

View File

@ -8,8 +8,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "http-conduit"; pname = "http-conduit";
version = "1.8.6.1"; version = "1.8.6.2";
sha256 = "1vkfld5kn8fql78mw8zwsp524m07kr4a10c411rzpv6xqx92azy7"; sha256 = "0b9iw8gq0kyfmnpv1jba2dx8rik9136zx5q9xdyvy0lczdgb8i09";
buildDepends = [ buildDepends = [
asn1Data attoparsec attoparsecConduit base64Bytestring blazeBuilder asn1Data attoparsec attoparsecConduit base64Bytestring blazeBuilder
blazeBuilderConduit caseInsensitive certificate conduit cookie blazeBuilderConduit caseInsensitive certificate conduit cookie

View File

@ -5,8 +5,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "http-reverse-proxy"; pname = "http-reverse-proxy";
version = "0.1.1"; version = "0.1.1.1";
sha256 = "0p04zpw1v0zhzri7wpikc0b8g7n21kgl8j8238vv7xqxapkal0pc"; sha256 = "0xg6xw0j61db75smys2fgjn0nzv2dy8c1ha4m828ssnxlic98lk2";
buildDepends = [ buildDepends = [
blazeBuilder caseInsensitive classyPreludeConduit conduit blazeBuilder caseInsensitive classyPreludeConduit conduit
dataDefault httpConduit httpTypes liftedBase monadControl network dataDefault httpConduit httpTypes liftedBase monadControl network

View File

@ -5,13 +5,16 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "lens"; pname = "lens";
version = "3.7.1.2"; version = "3.7.2";
sha256 = "1hapcnmyqyc3645gsy1ikwzm2srbbznps6yrfr02y2lcbnjpn3g6"; sha256 = "14kc9yhq7niv49gpdcl55priwnvisawa9jsp8hnplk48p11i2xs3";
buildDepends = [ buildDepends = [
comonad comonadsFd comonadTransformers filepath hashable mtl comonad comonadsFd comonadTransformers filepath hashable mtl
parallel semigroups split text transformers unorderedContainers parallel semigroups split text transformers unorderedContainers
vector vector
]; ];
patchPhase = ''
sed -i -e 's|semigroups.*,|semigroups,|' lens.cabal
'';
meta = { meta = {
homepage = "http://github.com/ekmett/lens/"; homepage = "http://github.com/ekmett/lens/";
description = "Lenses, Folds and Traversals"; description = "Lenses, Folds and Traversals";

View File

@ -5,6 +5,7 @@ cabal.mkDerivation (self: {
version = "0.2.2.1"; version = "0.2.2.1";
sha256 = "0n2zwkwwq8kg9m6qr79mrhlxsfsrjzbyg96gfhcgk21zgc09zary"; sha256 = "0n2zwkwwq8kg9m6qr79mrhlxsfsrjzbyg96gfhcgk21zgc09zary";
buildDepends = [ semigroups ]; buildDepends = [ semigroups ];
jailbreak = true;
meta = { meta = {
description = "Various extra monoid-related definitions and utilities"; description = "Various extra monoid-related definitions and utilities";
license = self.stdenv.lib.licenses.bsd3; license = self.stdenv.lib.licenses.bsd3;

View File

@ -0,0 +1,13 @@
{ cabal }:
cabal.mkDerivation (self: {
pname = "nats";
version = "0.1";
sha256 = "08gh7jjmws70919hmqqmvnfqcpxr34f03jmg3lzmmhqvr15gm1vy";
meta = {
homepage = "http://github.com/ekmett/nats/";
description = "Haskell 98 natural numbers";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
};
})

View File

@ -3,8 +3,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "network-conduit"; pname = "network-conduit";
version = "0.6.2.1"; version = "0.6.2.2";
sha256 = "1pkqkkj18yn31dmxcc8xfq2drg2jm9169my0s3jsxjbyxsyq58l6"; sha256 = "1v8abhw977hr78hkshrbxy04abbbhafvvnhr4xxgqc0phwch02mc";
buildDepends = [ buildDepends = [
conduit liftedBase monadControl network transformers conduit liftedBase monadControl network transformers
]; ];

View File

@ -1,15 +1,15 @@
{ cabal, haskellLexer }: { cabal, filepath, haskellLexer }:
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "pretty-show"; pname = "pretty-show";
version = "1.3.2"; version = "1.5";
sha256 = "0m3kw4d68gd1mhlgi5vy3k2cqi9f0i4s502m2sgy4pww45fjllxy"; sha256 = "1n04f9aypgbhkq0lbji9czv1mjfwv4f80w1c6hqs55gmzwif63m4";
isLibrary = true; isLibrary = true;
isExecutable = true; isExecutable = true;
buildDepends = [ haskellLexer ]; buildDepends = [ filepath haskellLexer ];
meta = { meta = {
homepage = "http://wiki.github.com/yav/pretty-show"; homepage = "http://wiki.github.com/yav/pretty-show";
description = "Tools for working with derived Show instances"; description = "Tools for working with derived `Show` instances and generic inspection of values";
license = self.stdenv.lib.licenses.bsd3; license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms; platforms = self.ghc.meta.platforms;
maintainers = [ self.stdenv.lib.maintainers.andres ]; maintainers = [ self.stdenv.lib.maintainers.andres ];

View File

@ -2,8 +2,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "semigroupoids"; pname = "semigroupoids";
version = "3.0.0.1"; version = "3.0.1";
sha256 = "0ilqmpywiwp9m1k8lrw0mxb0pzc9l8bs2hgzrp8k5iln1yq1fh6i"; sha256 = "12k2yryr31lxhwq42cx05kswljmbli8p8c2wknigzkkam63d8k5h";
buildDepends = [ comonad contravariant semigroups transformers ]; buildDepends = [ comonad contravariant semigroups transformers ];
meta = { meta = {
homepage = "http://github.com/ekmett/semigroupoids"; homepage = "http://github.com/ekmett/semigroupoids";

View File

@ -1,9 +1,10 @@
{ cabal }: { cabal, nats }:
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "semigroups"; pname = "semigroups";
version = "0.8.5"; version = "0.9";
sha256 = "0dnxqqxfyxj0mpy524nvgwagsp6ynadmh2yr4k5159rzbg2xgz90"; sha256 = "0cwyjjlr9zgpxryzdf26pb58dmad0cp8d0493rarhh5zmgighh90";
buildDepends = [ nats ];
meta = { meta = {
homepage = "http://github.com/ekmett/semigroups/"; homepage = "http://github.com/ekmett/semigroups/";
description = "Haskell 98 semigroups"; description = "Haskell 98 semigroups";

View File

@ -2,8 +2,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "texmath"; pname = "texmath";
version = "0.6.1.1"; version = "0.6.1.2";
sha256 = "06yk19jvpj7di1njybk1hdc7hp6c9h3yb4gvi7ljna6wqrh6zqaz"; sha256 = "1izsjy30saz2il16dwx8sh2s30b1pfgcpq6023v135w1bdrzrnmq";
isLibrary = true; isLibrary = true;
isExecutable = true; isExecutable = true;
buildDepends = [ parsec syb xml ]; buildDepends = [ parsec syb xml ];

View File

@ -0,0 +1,15 @@
{ cabal, transformers }:
cabal.mkDerivation (self: {
pname = "transformers-compat";
version = "0.1";
sha256 = "100xw00h2l6iipg6lq5bbncpil3bl6w3frak99klpi8gn6ihd8ah";
buildDepends = [ transformers ];
noHaddock = true;
meta = {
homepage = "http://github.com/ekmett/transformers-compat/";
description = "Lenses, Folds and Traversals";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
};
})

View File

@ -2,8 +2,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "uu-parsinglib"; pname = "uu-parsinglib";
version = "2.7.4"; version = "2.7.4.1";
sha256 = "1cznyn09a3glfkvvzqma3bhjinddkp6v2xwiy5x403v0wy8y565j"; sha256 = "1aya95j7dd0yal0ygy6d4w4wmlhgn5ddy3c5f6ncl4k3kg7hjxd1";
buildDepends = [ ListLike time ]; buildDepends = [ ListLike time ];
meta = { meta = {
homepage = "http://www.cs.uu.nl/wiki/bin/view/HUT/ParserCombinators"; homepage = "http://www.cs.uu.nl/wiki/bin/view/HUT/ParserCombinators";

View File

@ -2,8 +2,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "void"; pname = "void";
version = "0.5.10"; version = "0.5.11";
sha256 = "0adykqns7vvzgrjg7waaklfj3dl1h7vk5rwlfx0f18js6di9zrh4"; sha256 = "0fi8ccnhg0ckz5v3cgxhdd67p0v3g9yawin917ik4vxfbwz5j3v6";
buildDepends = [ semigroups ]; buildDepends = [ semigroups ];
meta = { meta = {
homepage = "http://github.com/ekmett/void"; homepage = "http://github.com/ekmett/void";

View File

@ -0,0 +1,13 @@
diff -ubr wxc-0.90.0.4-orig/src/cpp/eljpen.cpp wxc-0.90.0.4/src/cpp/eljpen.cpp
--- wxc-0.90.0.4-orig/src/cpp/eljpen.cpp 2012-07-03 12:12:17.000000000 +0200
+++ wxc-0.90.0.4/src/cpp/eljpen.cpp 2013-01-07 12:09:50.296417007 +0100
@@ -156,7 +156,7 @@
EWXWEXPORT(void,wxPen_GetStipple)(void* self,wxBitmap* _ref)
{
#if defined(__WXGTK__)
- *_ref = NULL;
+ _ref = NULL;
#else
*_ref = *(((wxPen*)self)->GetStipple());
#endif
Only in wxc-0.90.0.4/src/cpp: eljpen.cpp.orig

View File

@ -10,7 +10,7 @@ cabal.mkDerivation (self: {
postInstall = '' postInstall = ''
cp -v dist/build/libwxc.so.${self.version} $out/lib/libwxc.so cp -v dist/build/libwxc.so.${self.version} $out/lib/libwxc.so
''; '';
patches = [ ./fix-bogus-pointer-assignment.patch ];
meta = { meta = {
homepage = "http://haskell.org/haskellwiki/WxHaskell"; homepage = "http://haskell.org/haskellwiki/WxHaskell";
description = "wxHaskell C++ wrapper"; description = "wxHaskell C++ wrapper";

View File

@ -37,7 +37,11 @@ stdenv.mkDerivation rec {
mkdir -p $out/bin mkdir -p $out/bin
mkdir -p $out/lib mkdir -p $out/lib
mv -v out/${arch}.release/d8 $out/bin mv -v out/${arch}.release/d8 $out/bin
mv -v out/${arch}.release/lib.target/libv8.so $out/lib
${if stdenv.system == "x86_64-darwin" then
"mv -v out/${arch}.release/libv8.dylib $out/lib"
else
"mv -v out/${arch}.release/lib.target/libv8.so $out/lib"}
mv -v include $out/ mv -v include $out/
''; '';
} }

View File

@ -0,0 +1,87 @@
{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
}:
assert (release && target == "android") -> androidKeyStore != null && androidKeyAlias != null && androidKeyStorePassword != null;
assert (release && target == "iphone") -> iosKeyFile != null && iosCertificateName != null && iosCertificate != null && iosCertificatePassword != null;
let
androidsdkComposition = androidsdk {
platformVersions = androidPlatformVersions;
useGoogleAPIs = true;
};
in
stdenv.mkDerivation {
inherit name src;
buildInputs = [] ++ stdenv.lib.optional (stdenv.system == "x86_64-darwin") xcodewrapper;
buildPhase = ''
export HOME=$TMPDIR
mkdir -p $out
${if target == "android" then
if release then
"${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}"
else if target == "iphone" then
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
security delete-keychain $keychainName
''
else
''
# Copy all sources to the output store directory.
# Why? Debug application include *.js files, which are symlinked into their
# sources. If they are not copied, we have dangling references to the
# temp folder.
cp -av * $out
cd $out
${titaniumsdk}/mobilesdk/*/*/iphone/builder.py build 6.0 $(pwd) ${appId} ${name}
''
else throw "Target: ${target} is not supported!"}
'';
installPhase = ''
mkdir -p $out
${if target == "android" && release then ""
else
if target == "android" then
''cp $(ls build/android/bin/*.apk | grep -v '\-unsigned.apk') $out''
else if target == "iphone" && release then
"cp -av build/iphone/build/* $out"
else if target == "iphone" then ""
else throw "Target: ${target} is not supported!"}
'';
}

View File

@ -0,0 +1,18 @@
{pkgs, pkgs_i686}:
rec {
androidenv = pkgs.androidenv;
xcodeenv = if pkgs.stdenv.system == "x86_64-darwin" then pkgs.xcodeenv else null;
titaniumsdk = import ./titaniumsdk.nix {
inherit (pkgs) stdenv fetchurl unzip makeWrapper python jdk;
};
buildApp = import ./build-app.nix {
inherit (pkgs) stdenv;
inherit (androidenv) androidsdk;
inherit (xcodeenv) xcodewrapper;
inherit titaniumsdk;
};
}

View File

@ -0,0 +1,38 @@
let
pkgs = import <nixpkgs> {};
pkgs_i686 = import <nixpkgs> { system = "i686-linux"; };
in
rec {
titaniumenv = import ./.. {
inherit pkgs pkgs_i686;
};
kitchensink_android = import ./kitchensink {
inherit titaniumenv;
inherit (pkgs) fetchgit;
target = "android";
};
kitchensink_iphone = import ./kitchensink {
inherit titaniumenv;
inherit (pkgs) fetchgit;
target = "iphone";
};
emulate_kitchensink = import ./emulate-kitchensink {
inherit (titaniumenv) androidenv;
kitchensink = kitchensink_android;
};
simulate_kitchensink_iphone = import ./simulate-kitchensink {
inherit (titaniumenv) xcodeenv;
kitchensink = kitchensink_iphone;
device = "iPhone";
};
simulate_kitchensink_ipad = import ./simulate-kitchensink {
inherit (titaniumenv) xcodeenv;
kitchensink = kitchensink_iphone;
device = "iPad";
};
}

View File

@ -0,0 +1,10 @@
{androidenv, kitchensink}:
androidenv.emulateApp {
name = "kitchensink";
app = kitchensink;
platformVersion = "8";
useGoogleAPIs = true;
package = "com.appcelerator.kitchensink";
activity = "KitchensinkActivity";
}

View File

@ -0,0 +1,24 @@
{titaniumenv, fetchgit, target, androidPlatformVersions ? [ "8" ]}:
titaniumenv.buildApp {
name = "KitchenSink";
appId = "com.appcelerator.kitchensink";
src = fetchgit {
url = https://github.com/appcelerator/KitchenSink.git;
rev = "0f2c0b818034cc4e6867f0aa2afc98bf77dbff02";
sha256 = "de31496cfb5625d7a193bbbc32a8021e4094ffab20ae13ef2e1583b0394d7c60";
};
inherit target androidPlatformVersions;
/*release = true;
androidKeyStore = /home/sander/keystore;
androidKeyAlias = "sander";
androidKeyStorePassword = "foobar";*/
/*release = true;
iosKeyFile = /Users/sander/Downloads/profile.mobileprovision;
iosCertificateName = "My Company";
iosCertificate = /Users/sander/Downloads/c.p12;
iosCertificatePassword = "";*/
}

View File

@ -0,0 +1,8 @@
{xcodeenv, kitchensink, device}:
xcodeenv.simulateApp {
name = "kitchensink";
app = kitchensink;
inherit device;
baseDir = "build/iphone/build/Debug-iphonesimulator";
}

View File

@ -0,0 +1 @@
s|\t\t\t\t\t\t\t\tapk_zip.write(native_lib, path_in_zip)|\t\t\t\t\t\t\t\tinfo = zipfile.ZipInfo(path_in_zip)\n\t\t\t\t\t\t\t\tinfo.compress_type = zipfile.ZIP_DEFLATED\n\t\t\t\t\t\t\t\tinfo.create_system = 3\n\t\t\t\t\t\t\t\tf = open(native_lib)\n\t\t\t\t\t\t\t\tapk_zip.writestr(info, f.read())\n\t\t\t\t\t\t\t\tf.close()|

View File

@ -0,0 +1 @@
s|apk_zip.write(os.path.join(lib_source_dir, fname), lib_dest_dir + fname)|info = zipfile.ZipInfo(lib_dest_dir + fname)\n\t\t\t\t\tinfo.compress_type = zipfile.ZIP_DEFLATED\n\t\t\t\t\tinfo.create_system = 3\n\t\t\t\t\tf = open(os.path.join(lib_source_dir, fname))\n\t\t\t\t\tapk_zip.writestr(info, f.read())\n\t\t\t\t\tf.close()|

View File

@ -0,0 +1 @@
s|apk_zip.write(os.path.join(lib_source_dir, 'libtiverify.so'), lib_dest_dir + 'libtiverify.so')|info = zipfile.ZipInfo(lib_dest_dir + 'libtiverify.so')\n\t\t\tinfo.compress_type = zipfile.ZIP_DEFLATED\n\t\t\tinfo.create_system = 3\n\t\t\tf = open(os.path.join(lib_source_dir, 'libtiverify.so'))\n\t\t\tapk_zip.writestr(info, f.read())\n\t\t\tf.close()|

View File

@ -0,0 +1,57 @@
{stdenv, fetchurl, unzip, makeWrapper, python, jdk}:
stdenv.mkDerivation {
name = "titanium-mobilesdk-2.1.5.v20121112144658";
src = if (stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux") then fetchurl {
url = http://builds.appcelerator.com.s3.amazonaws.com/mobile/2_1_X/mobilesdk-2.1.5.v20121112144658-linux.zip;
sha1 = "79f073d11ee893c508c5aa675a3126501dd385fd";
}
else if stdenv.system == "x86_64-darwin" then fetchurl {
url = http://builds.appcelerator.com.s3.amazonaws.com/mobile/2_1_X/mobilesdk-2.1.5.v20121112144658-osx.zip;
sha1 = "6a9a726882222d1615de332aa1ca608c15564e1c";
}
else throw "Platform: ${stdenv.system} not supported!";
buildInputs = [ unzip makeWrapper ];
buildCommand = ''
mkdir -p $out
cd $out
yes y | unzip $src
# Fix shebang header for python scripts
find . -name \*.py | while read i
do
sed -i -e "s|#!/usr/bin/env python|#!${python}/bin/python|" $i
done
# Zip files do not support timestamps lower than 1980. We have to apply a few work-arounds to cope with that
# Yes, I know it's nasty :-)
cd mobilesdk/*/*/android
sed -i -f ${./fixtiverify.sed} builder.py
sed -i -f ${./fixselfruntimev8.sed} builder.py
sed -i -f ${./fixnativelibs.sed} builder.py
# Patch some executables
${if stdenv.system == "i686-linux" then
''
patchelf --set-interpreter ${stdenv.gcc.libc}/lib/ld-linux.so.2 titanium_prep.linux32
''
else if stdenv.system == "x86_64-linux" then
''
patchelf --set-interpreter ${stdenv.gcc.libc}/lib/ld-linux-x86-64.so.2 titanium_prep.linux64
''
else ""}
# Wrap builder script
wrapProgram `pwd`/builder.py \
--prefix PYTHONPATH : ${python.modules.sqlite3}/lib/python*/site-packages \
--prefix PATH : ${jdk}/bin \
--prefix JAVA_HOME : ${jdk}
'';
}

View File

@ -0,0 +1,92 @@
{stdenv, xcodewrapper}:
{ name
, src
, target ? null
, configuration ? null
, scheme ? null
, sdk ? null
, arch ? null
, xcodeFlags ? ""
, release ? false
, codeSignIdentity ? null
, certificateFile ? null
, certificatePassword ? null
, provisioningProfile ? null
, generateIPA ? false
, generateXCArchive ? false
}:
assert release -> codeSignIdentity != null && certificateFile != null && certificatePassword != null && provisioningProfile != null;
let
# Set some default values here
_target = if target == null then name else target;
_scheme = if scheme == null then name else scheme;
_configuration = if configuration == null
then
if release then "Release" else "Debug"
else configuration;
_arch = if arch == null
then
if release then "armv7" else "i386"
else arch;
_sdk = if sdk == null
then
if release then "iphoneos6.0" else "iphonesimulator6.0"
else sdk;
# The following is to prevent repetition
deleteKeychain = "security delete-keychain $keychainName";
in
stdenv.mkDerivation {
inherit name src;
buildInputs = [ xcodewrapper ];
buildPhase = ''
${stdenv.lib.optionalString release ''
export HOME=/Users/$(whoami)
keychainName="$(basename $out)"
# Create a keychain
security create-keychain -p "" $keychainName
security default-keychain -s $keychainName
security unlock-keychain -p "" $keychainName
# Import the certificate into the keychain
security import ${certificateFile} -k $keychainName -P "${certificatePassword}" -A
# Determine provisioning ID
PROVISIONING_PROFILE=$(grep UUID -A1 -a ${provisioningProfile} | grep -o "[-A-Z0-9]\{36\}")
if [ ! -f "$HOME/Library/MobileDevice/Provisioning Profiles/$PROVISIONING_PROFILE.mobileprovision" ]
then
# Copy provisioning profile into the home directory
mkdir -p "$HOME/Library/MobileDevice/Provisioning Profiles"
cp ${provisioningProfile} "$HOME/Library/MobileDevice/Provisioning Profiles/$PROVISIONING_PROFILE.mobileprovision"
fi
# Check whether the identity can be found
security find-identity -p codesigning $keychainName
''}
# Do the building
xcodebuild -target ${_target} -configuration ${_configuration} -scheme ${_scheme} -sdk ${_sdk} -arch ${_arch} ONLY_ACTIVE_ARCH=NO CONFIGURATION_TEMP_DIR=$TMPDIR CONFIGURATION_BUILD_DIR=$out ${if generateXCArchive then "archive" else ""} ${xcodeFlags} ${if release then ''"CODE_SIGN_IDENTITY=${codeSignIdentity}" PROVISIONING_PROFILE=$PROVISIONING_PROFILE OTHER_CODE_SIGN_FLAGS="--keychain $HOME/Library/Keychains/$keychainName"'' else ""}
${stdenv.lib.optionalString release ''
${stdenv.lib.optionalString generateIPA ''
# Produce an IPA file
xcrun -sdk iphoneos PackageApplication -v $out/*.app -o $out/${name}.ipa
''}
# Delete our temp keychain
${deleteKeychain}
''}
'';
failureHook = stdenv.lib.optionalString release deleteKeychain;
installPhase = "true";
}

View File

@ -0,0 +1,15 @@
{stdenv}:
rec {
xcodewrapper = import ./xcodewrapper.nix {
inherit stdenv;
};
buildApp = import ./build-app.nix {
inherit stdenv xcodewrapper;
};
simulateApp = import ./simulate-app.nix {
inherit stdenv xcodewrapper;
};
}

View File

@ -0,0 +1,17 @@
{stdenv, xcodewrapper}:
{name, app, device ? "iPhone", baseDir ? ""}:
stdenv.mkDerivation {
inherit name;
buildCommand = ''
ensureDir $out/bin
cat > $out/bin/run-test-simulator << "EOF"
#! ${stdenv.shell} -e
cd ${app}/${baseDir}/${name}.app
"$(readlink "${xcodewrapper}/bin/iPhone Simulator")" -SimulateApplication ./${name} -SimulateDevice '${device}'
EOF
chmod +x $out/bin/run-test-simulator
'';
}

View File

@ -0,0 +1,24 @@
{stdenv}:
let
version = "4.5.2";
in
stdenv.mkDerivation {
name = "xcode-wrapper-"+version;
buildCommand = ''
ensureDir $out/bin
cd $out/bin
ln -s /usr/bin/xcode-select
ln -s /usr/bin/xcodebuild
ln -s /usr/bin/xcrun
ln -s /usr/bin/security
ln -s "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/iPhone Simulator.app/Contents/MacOS/iPhone Simulator"
# Check if we have the xcodebuild version that we want
if [ -z "$($out/bin/xcodebuild -version | grep ${version})" ]
then
echo "We require xcodebuild version: ${version}"
exit 1
fi
'';
}

View File

@ -4,8 +4,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "hlint"; pname = "hlint";
version = "1.8.39"; version = "1.8.40";
sha256 = "009qf441nri8pxzz22xvpz44dhspr9bkh5diaz29abimj10fm375"; sha256 = "18w4dhxv7c1y4x1agdjq99ss5i77jnm8p9vg3jp9gvhk2arhcl0x";
isLibrary = true; isLibrary = true;
isExecutable = true; isExecutable = true;
buildDepends = [ buildDepends = [

View File

@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
"--shared-v8-libpath=${v8}/lib" "--shared-v8-libpath=${v8}/lib"
]; ];
patches = stdenv.lib.optional stdenv.isDarwin ./no-arch-flag.patch; #patches = stdenv.lib.optional stdenv.isDarwin ./no-arch-flag.patch;
prePatch = '' prePatch = ''
sed -e 's|^#!/usr/bin/env python$|#!${python}/bin/python|g' -i tools/{*.py,waf-light,node-waf} configure sed -e 's|^#!/usr/bin/env python$|#!${python}/bin/python|g' -i tools/{*.py,waf-light,node-waf} configure

View File

@ -1,11 +1,11 @@
{ stdenv, fetchurl, devicemapper, libgcrypt, libuuid, pkgconfig, popt }: { stdenv, fetchurl, devicemapper, libgcrypt, libuuid, pkgconfig, popt }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "cryptsetup-1.5.0"; name = "cryptsetup-1.5.1";
src = fetchurl { src = fetchurl {
url = "http://cryptsetup.googlecode.com/files/${name}.tar.bz2"; url = "http://cryptsetup.googlecode.com/files/${name}.tar.bz2";
sha256 = "1l7qcmaq092k28k8sbw845hs6jwn0f05h68rmb7iwh52232m8wa0"; sha256 = "0dib3nw6ifd7d7hr9k4iyaha3hz0pkzairqa38l3fndkr9w3zlhn";
}; };
configureFlags = "--enable-cryptsetup-reencrypt"; configureFlags = "--enable-cryptsetup-reencrypt";

View File

@ -27,19 +27,23 @@ buildPhase() {
installPhase() { installPhase() {
# Install libGL and friends. # Install libGL and friends.
mkdir -p $out/lib mkdir -p $out/lib/vendors
cp -prd libcuda.* libGL.* libnvidia-cfg.* libnvidia-compiler.* libnvidia-tls.* libnvidia-glcore.* libOpenCL.* libvdpau_nvidia* tls $out/lib/
ln -snf libnvidia-glcore.so.$versionNumber $out/lib/libnvidia-glcore.so for f in \
ln -snf libnvidia-glcore.so.$versionNumber $out/lib/libnvidia-glcore.so.1 libcuda libGL libnvcuvid libnvidia-cfg libnvidia-compiler \
ln -snf libGL.so.$versionNumber $out/lib/libGL.so libnvidia-encode libnvidia-glcore libnvidia-ml libnvidia-opencl \
ln -snf libGL.so.$versionNumber $out/lib/libGL.so.1 libnvidia-tls libOpenCL libnvidia-tls libvdpau_nvidia
ln -snf libnvidia-cfg.so.$versionNumber $out/lib/libnvidia-cfg.so.1 do
ln -snf libnvidia-tls.so.$versionNumber $out/lib/libnvidia-tls.so.1 cp -prd $f.* $out/lib/
ln -snf libnvidia-tls.so.$versionNumber $out/lib/tls/libnvidia-tls.so.1 ln -snf $f.so.$versionNumber $out/lib/$f.so
ln -snf libcuda.so.$versionNumber $out/lib/libcuda.so.1 ln -snf $f.so.$versionNumber $out/lib/$f.so.1
ln -snf libcuda.so.1 $out/lib/libcuda.so done
ln -snf libvdpau_nvidia.so.$versionNumber $out/lib/libvdpau_nvidia.so
cp -p nvidia.icd $out/lib/vendors/
cp -prd tls $out/lib/
cp -prd libOpenCL.so.1.0.0 $out/lib/
ln -snf libOpenCL.so.1.0.0 $out/lib/libOpenCL.so
ln -snf libOpenCL.so.1.0.0 $out/lib/libOpenCL.so.1
patchelf --set-rpath $out/lib:$glPath $out/lib/libGL.so.*.* patchelf --set-rpath $out/lib:$glPath $out/lib/libGL.so.*.*
patchelf --set-rpath $out/lib:$glPath $out/lib/libvdpau_nvidia.so.*.* patchelf --set-rpath $out/lib:$glPath $out/lib/libvdpau_nvidia.so.*.*

View File

@ -1,10 +1,18 @@
Make "systemctl daemon-reexec" do the right thing on NixOS. From 0085f49cd0ba889e3db9102f328f6044ae3a2c18 Mon Sep 17 00:00:00 2001
From: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue, 8 Jan 2013 15:44:33 +0100
Subject: [PATCH 1/5] Make "systemctl daemon-reexec" do the right thing on
NixOS
---
src/core/main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/core/main.c b/src/core/main.c diff --git a/src/core/main.c b/src/core/main.c
index 04fc0b3..0f5b0e9 100644 index 1ee3c9c..1686f60 100644
--- a/src/core/main.c --- a/src/core/main.c
+++ b/src/core/main.c +++ b/src/core/main.c
@@ -1819,7 +1819,7 @@ finish: @@ -1858,7 +1858,7 @@ finish:
char_array_0(sfd); char_array_0(sfd);
i = 0; i = 0;
@ -13,3 +21,6 @@ index 04fc0b3..0f5b0e9 100644
if (switch_root_dir) if (switch_root_dir)
args[i++] = "--switched-root"; args[i++] = "--switched-root";
args[i++] = arg_running_as == SYSTEMD_SYSTEM ? "--system" : "--user"; args[i++] = arg_running_as == SYSTEMD_SYSTEM ? "--system" : "--user";
--
1.8.0.1

View File

@ -1,10 +1,17 @@
Ignore duplicate paths in "systemctl start". From 2b0a9106d3aabb365af0cc34b595a1e697120f37 Mon Sep 17 00:00:00 2001
From: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue, 8 Jan 2013 15:45:01 +0100
Subject: [PATCH 2/5] Ignore duplicate paths in "systemctl start"
---
src/systemctl/systemctl.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c
index a4290c4..d3ac3ad 100644 index 2ebfff8..9f99df5 100644
--- a/src/systemctl/systemctl.c --- a/src/systemctl/systemctl.c
+++ b/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c
@@ -1596,8 +1596,11 @@ static int start_unit_one( @@ -1591,8 +1591,11 @@ static int start_unit_one(
r = set_put(s, p); r = set_put(s, p);
if (r < 0) { if (r < 0) {
@ -18,3 +25,6 @@ index a4290c4..d3ac3ad 100644
} }
p = NULL; p = NULL;
--
1.8.0.1

View File

@ -1,9 +1,16 @@
Do start device units for uninitialised encrypted devices, because the From a013beb84f135cebf1c8c9363d5676c1c0a6be7a Mon Sep 17 00:00:00 2001
service that initialises the filesystem depends on the appearance of From: Eelco Dolstra <eelco.dolstra@logicblox.com>
the device unit. Also, this makes more sense to me: the device is Date: Tue, 8 Jan 2013 15:46:30 +0100
ready; it's the filesystem that's not, but taking care of that is the Subject: [PATCH 3/5] Start device units for uninitialised encrypted devices
responsibility of the mount unit. (However, this ignores the fsck
unit, so it's not perfect...) This is necessary because the NixOS service that initialises the
filesystem depends on the appearance of the device unit. Also, this
makes more sense to me: the device is ready; it's the filesystem
that's not, but taking care of that is the responsibility of the mount
unit. (However, this ignores the fsck unit, so it's not perfect...)
---
rules/99-systemd.rules.in | 4 ----
1 file changed, 4 deletions(-)
diff --git a/rules/99-systemd.rules.in b/rules/99-systemd.rules.in diff --git a/rules/99-systemd.rules.in b/rules/99-systemd.rules.in
index d17bdd9..040b10e 100644 index d17bdd9..040b10e 100644
@ -20,3 +27,6 @@ index d17bdd9..040b10e 100644
# Ignore raid devices that are not yet assembled and started # Ignore raid devices that are not yet assembled and started
SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="md*", TEST!="md/array_state", ENV{SYSTEMD_READY}="0" SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="md*", TEST!="md/array_state", ENV{SYSTEMD_READY}="0"
SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="md*", ATTR{md/array_state}=="|clear|inactive", ENV{SYSTEMD_READY}="0" SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="md*", ATTR{md/array_state}=="|clear|inactive", ENV{SYSTEMD_READY}="0"
--
1.8.0.1

View File

@ -0,0 +1,74 @@
From b40d8783f94666035baae567882c0d4be82cda01 Mon Sep 17 00:00:00 2001
From: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue, 8 Jan 2013 15:48:19 +0100
Subject: [PATCH 4/5] Set switch-to-configuration hints for some units
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Target units like local-fs.target need X-StopOnReconfiguration=yes
to ensure dependencies *on* that target properly take into account the
dependencies *of* the target.
X-RestartIfChanged=no is necessary for systemd-journald.service
because restarting it causes services connected to journald to stop
logging.
X-RestartIfChanged=no is necessary for systemd-user-sessions.service
to prevent all user sessions from being killed when this unit changes.
---
units/local-fs.target | 2 ++
units/remote-fs.target | 2 ++
units/systemd-journald.service.in | 5 +++++
units/systemd-user-sessions.service.in | 3 +++
4 files changed, 12 insertions(+)
diff --git a/units/local-fs.target b/units/local-fs.target
index dd92b17..dfcbc7b 100644
--- a/units/local-fs.target
+++ b/units/local-fs.target
@@ -10,3 +10,5 @@ Description=Local File Systems
Documentation=man:systemd.special(7)
OnFailure=emergency.target
OnFailureIsolate=yes
+
+X-StopOnReconfiguration=yes
diff --git a/units/remote-fs.target b/units/remote-fs.target
index 9e68878..85a53d7 100644
--- a/units/remote-fs.target
+++ b/units/remote-fs.target
@@ -9,5 +9,7 @@
Description=Remote File Systems
Documentation=man:systemd.special(7)
+X-StopOnReconfiguration=yes
+
[Install]
WantedBy=multi-user.target
diff --git a/units/systemd-journald.service.in b/units/systemd-journald.service.in
index ab2e50c..9563a7d 100644
--- a/units/systemd-journald.service.in
+++ b/units/systemd-journald.service.in
@@ -24,3 +24,8 @@ CapabilityBoundingSet=CAP_SYS_ADMIN CAP_DAC_OVERRIDE CAP_SYS_PTRACE CAP_SYSLOG C
# Increase the default a bit in order to allow many simultaneous
# services being run since we keep one fd open per service.
LimitNOFILE=16384
+
+# Don't restart journald, since that causes services connected to
+# journald to stop logging (see
+# https://bugs.freedesktop.org/show_bug.cgi?id=56043).
+X-RestartIfChanged=no
diff --git a/units/systemd-user-sessions.service.in b/units/systemd-user-sessions.service.in
index 0869e73..b6ed958 100644
--- a/units/systemd-user-sessions.service.in
+++ b/units/systemd-user-sessions.service.in
@@ -15,3 +15,6 @@ Type=oneshot
RemainAfterExit=yes
ExecStart=@rootlibexecdir@/systemd-user-sessions start
ExecStop=@rootlibexecdir@/systemd-user-sessions stop
+
+# Restart kills all active sessions.
+X-RestartIfChanged=no
--
1.8.0.1

View File

@ -0,0 +1,33 @@
From c5c8ac3a0420fb42ba2f629368fd5bd6ea1e753b Mon Sep 17 00:00:00 2001
From: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue, 8 Jan 2013 15:56:03 +0100
Subject: [PATCH 5/5] sysinit.target: Drop the dependency on local-fs.target
and swap.target
Having all services with DefaultDependencies=yes depend on
local-fs.target is annoying, because some of those services might be
necessary to mount local filesystems. For instance, Charon's
send-keys feature requires sshd to be running in order to receive LUKS
encryption keys, which in turn requires dhcpcd, and so on. So we drop
this dependency (and swap.target as well for consistency). If
services require a specific mount, they should use RequiresMountsFor
in any case.
---
units/sysinit.target | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/units/sysinit.target b/units/sysinit.target
index 8f4fb8f..e0f0147 100644
--- a/units/sysinit.target
+++ b/units/sysinit.target
@@ -9,6 +9,5 @@
Description=System Initialization
Documentation=man:systemd.special(7)
Conflicts=emergency.service emergency.target
-Wants=local-fs.target swap.target
-After=local-fs.target swap.target emergency.service emergency.target
+After=emergency.service emergency.target
RefuseManualStart=yes
--
1.8.0.1

View File

@ -6,17 +6,19 @@
assert stdenv.gcc.libc or null != null; assert stdenv.gcc.libc or null != null;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "systemd-196"; name = "systemd-197";
src = fetchurl { src = fetchurl {
url = "http://www.freedesktop.org/software/systemd/${name}.tar.xz"; url = "http://www.freedesktop.org/software/systemd/${name}.tar.xz";
sha256 = "1gz4an5havzwzp7xsinn01prwvf51hgipb8pbciri0fxlmcadm3b"; sha256 = "1dbljyyc3w4a1af99f15f3sqnfx7mfmc5x5hwxb70kg23ai7x1g6";
}; };
patches = patches =
[ ./reexec.patch [ ./0001-Make-systemctl-daemon-reexec-do-the-right-thing-on-N.patch
./ignore-duplicates.patch ./0002-Ignore-duplicate-paths-in-systemctl-start.patch
./crypt-devices-are-ready.patch ./0003-Start-device-units-for-uninitialised-encrypted-devic.patch
./0004-Set-switch-to-configuration-hints-for-some-units.patch
./0005-sysinit.target-Drop-the-dependency-on-local-fs.targe.patch
]; ];
buildInputs = buildInputs =
@ -27,7 +29,6 @@ stdenv.mkDerivation rec {
configureFlags = configureFlags =
[ "--localstatedir=/var" [ "--localstatedir=/var"
"--sysconfdir=/etc" "--sysconfdir=/etc"
"--with-distro=other"
"--with-rootprefix=$(out)" "--with-rootprefix=$(out)"
"--with-rootprefix=$(out)" "--with-rootprefix=$(out)"
"--with-dbusinterfacedir=$(out)/share/dbus-1/interfaces" "--with-dbusinterfacedir=$(out)/share/dbus-1/interfaces"
@ -55,6 +56,8 @@ stdenv.mkDerivation rec {
--replace /usr/lib/systemd/catalog/ $out/lib/systemd/catalog/ --replace /usr/lib/systemd/catalog/ $out/lib/systemd/catalog/
''; '';
PYTHON_BINARY = "${coreutils}/bin/env python"; # don't want a build time dependency on Python
NIX_CFLAGS_COMPILE = NIX_CFLAGS_COMPILE =
[ "-DKBD_LOADKEYS=\"${kbd}/bin/loadkeys\"" [ "-DKBD_LOADKEYS=\"${kbd}/bin/loadkeys\""
"-DKBD_SETFONT=\"${kbd}/bin/setfont\"" "-DKBD_SETFONT=\"${kbd}/bin/setfont\""

View File

@ -411,7 +411,14 @@ let
client = true; client = true;
}); });
androidenv = import ../development/androidenv { androidenv = import ../development/mobile/androidenv {
inherit pkgs;
pkgs_i686 = pkgsi686Linux;
};
xcodeenv = callPackage ../development/mobile/xcodeenv { };
titaniumenv = import ../development/mobile/titaniumenv {
inherit pkgs; inherit pkgs;
pkgs_i686 = pkgsi686Linux; pkgs_i686 = pkgsi686Linux;
}; };
@ -7318,6 +7325,8 @@ let
lua = lua5; lua = lua5;
}; };
ipe = callPackage ../applications/graphics/ipe { };
iptraf = callPackage ../applications/networking/iptraf { }; iptraf = callPackage ../applications/networking/iptraf { };
irssi = callPackage ../applications/networking/irc/irssi { }; irssi = callPackage ../applications/networking/irc/irssi { };

View File

@ -911,7 +911,7 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
happstackHamlet = callPackage ../development/libraries/haskell/happstack/happstack-hamlet.nix {}; happstackHamlet = callPackage ../development/libraries/haskell/happstack/happstack-hamlet.nix {};
hashable_1_1_2_5 = callPackage ../development/libraries/haskell/hashable/1.1.2.5.nix {}; hashable_1_1_2_5 = callPackage ../development/libraries/haskell/hashable/1.1.2.5.nix {};
hashable_1_3_0_2 = callPackage ../development/libraries/haskell/hashable/1.2.0.2.nix {}; hashable_1_2_0_3 = callPackage ../development/libraries/haskell/hashable/1.2.0.3.nix {};
hashable = self.hashable_1_1_2_5; hashable = self.hashable_1_1_2_5;
hashedStorage = callPackage ../development/libraries/haskell/hashed-storage {}; hashedStorage = callPackage ../development/libraries/haskell/hashed-storage {};
@ -1242,6 +1242,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
NanoProlog = callPackage ../development/libraries/haskell/NanoProlog {}; NanoProlog = callPackage ../development/libraries/haskell/NanoProlog {};
nats = callPackage ../development/libraries/haskell/nats {};
netlist = callPackage ../development/libraries/haskell/netlist {}; netlist = callPackage ../development/libraries/haskell/netlist {};
netlistToVhdl = callPackage ../development/libraries/haskell/netlist-to-vhdl {}; netlistToVhdl = callPackage ../development/libraries/haskell/netlist-to-vhdl {};
@ -1678,6 +1680,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
transformersBase = callPackage ../development/libraries/haskell/transformers-base {}; transformersBase = callPackage ../development/libraries/haskell/transformers-base {};
transformersCompat = callPackage ../development/libraries/haskell/transformers-compat {};
tuple = callPackage ../development/libraries/haskell/tuple {}; tuple = callPackage ../development/libraries/haskell/tuple {};
typeEquality = callPackage ../development/libraries/haskell/type-equality {}; typeEquality = callPackage ../development/libraries/haskell/type-equality {};