Merge remote-tracking branch 'origin/master' into systemd
This commit is contained in:
commit
1909f9547d
@ -11,6 +11,9 @@ stdenv.mkDerivation rec {
|
||||
buildInputs = [ ncurses boehmgc ];
|
||||
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
|
||||
# fiddle with the terminal.
|
||||
doCheck = false;
|
||||
|
47
pkgs/applications/graphics/ipe/default.nix
Normal file
47
pkgs/applications/graphics/ipe/default.nix
Normal 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.
|
||||
'';
|
||||
};
|
||||
}
|
@ -5,6 +5,7 @@ cabal.mkDerivation (self: {
|
||||
version = "0.1.0.2";
|
||||
sha256 = "1iymh3sd21ba7ijwv5afphn5vhmwchk6725hbcsdwk2d2x2gd674";
|
||||
buildDepends = [ newtype semigroupoids semigroups vectorSpace ];
|
||||
jailbreak = true;
|
||||
meta = {
|
||||
description = "Abstractions for animation";
|
||||
license = self.stdenv.lib.licenses.bsd3;
|
||||
|
@ -4,8 +4,8 @@
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "comonad-transformers";
|
||||
version = "3.0";
|
||||
sha256 = "1bjix61rdzmqcd1irh6p91jwy4sz1617sj4zic07p7ng9h7fsz24";
|
||||
version = "3.0.1";
|
||||
sha256 = "1lmcz01zsgy0lfzsznqbdq83vlk6h10zs7i41nav8qhzzhjn095j";
|
||||
buildDepends = [
|
||||
comonad contravariant distributive semigroupoids semigroups
|
||||
transformers
|
||||
|
@ -2,8 +2,8 @@
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "comonad";
|
||||
version = "3.0.0.2";
|
||||
sha256 = "01q71b446mdbdj81qjrxjl5bshbg4bjih5zpw9fd4y5431bclfhi";
|
||||
version = "3.0.1.1";
|
||||
sha256 = "01zqxrqxy6x6nf6rynzmncbhlgbbpshhw10pkimnw5isg3b8qhc2";
|
||||
buildDepends = [ semigroups transformers ];
|
||||
meta = {
|
||||
homepage = "http://github.com/ekmett/comonad/";
|
||||
|
@ -4,8 +4,8 @@
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "comonads-fd";
|
||||
version = "3.0";
|
||||
sha256 = "1j5ymj711c49fsk2ilxfpzqr0jr117z8kb5ggyh5nlwjy16m32in";
|
||||
version = "3.0.1";
|
||||
sha256 = "0ap9sw7h130bza43091mbl9a5bsin6342zawgycdcsag49wm3dyy";
|
||||
buildDepends = [
|
||||
comonad comonadTransformers mtl semigroups transformers
|
||||
];
|
||||
|
@ -10,6 +10,7 @@ cabal.mkDerivation (self: {
|
||||
dualTree MemoTrie monoidExtras newtype semigroups vectorSpace
|
||||
vectorSpacePoints
|
||||
];
|
||||
jailbreak = true;
|
||||
meta = {
|
||||
homepage = "http://projects.haskell.org/diagrams";
|
||||
description = "Core libraries for diagrams EDSL";
|
||||
|
@ -10,6 +10,7 @@ cabal.mkDerivation (self: {
|
||||
active colour dataDefault diagramsCore monoidExtras newtype
|
||||
NumInstances semigroups vectorSpace
|
||||
];
|
||||
jailbreak = true;
|
||||
meta = {
|
||||
homepage = "http://projects.haskell.org/diagrams";
|
||||
description = "Embedded domain-specific language for declarative graphics";
|
||||
|
@ -1,10 +1,10 @@
|
||||
{ cabal, transformers }:
|
||||
{ cabal, transformers, transformersCompat }:
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "distributive";
|
||||
version = "0.2.2";
|
||||
sha256 = "13wvr2wb3h2nr1qd3dwjqx0b6g4igjqm3q2cyi4mc41gwihkbhr2";
|
||||
buildDepends = [ transformers ];
|
||||
version = "0.3";
|
||||
sha256 = "0z6vwak2n91vpx9ps9j1pbiw0zlh9jmds84yx1yqssbqx8npi32f";
|
||||
buildDepends = [ transformers transformersCompat ];
|
||||
meta = {
|
||||
homepage = "http://github.com/ekmett/distributive/";
|
||||
description = "Haskell 98 Distributive functors -- Dual to Traversable";
|
||||
|
@ -5,6 +5,7 @@ cabal.mkDerivation (self: {
|
||||
version = "0.1.0.0";
|
||||
sha256 = "0av525gjxzd2hhrg5da647chwbv4j30gccaff2b3n5qijzy8l167";
|
||||
buildDepends = [ monoidExtras newtype semigroups ];
|
||||
jailbreak = true;
|
||||
meta = {
|
||||
description = "Rose trees with cached and accumulating monoidal annotations";
|
||||
license = self.stdenv.lib.licenses.bsd3;
|
||||
|
@ -2,8 +2,8 @@
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "either";
|
||||
version = "3.0.2";
|
||||
sha256 = "1s3rpxxqc9052hrmiznwqwxhl4826qzbgpivpv5acxfhm0w06lhg";
|
||||
version = "3.0.3";
|
||||
sha256 = "02kpb8xd19n00ll61haqr6k3hy8qmbdf73gr4zs59q9xh0739qxc";
|
||||
buildDepends = [ semigroupoids semigroups transformers ];
|
||||
meta = {
|
||||
homepage = "http://github.com/ekmett/either/";
|
||||
|
@ -2,8 +2,8 @@
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "fsnotify";
|
||||
version = "0.0.5";
|
||||
sha256 = "1pi1dpm48igcc8n5cn8hdml8bknxl18kqhjbh6jan839fgmwagb9";
|
||||
version = "0.0.6";
|
||||
sha256 = "0ib6ansj3vaq9hxxbsq5jw14w2b61wp4jfahzb3c3x46mdb1bqw5";
|
||||
buildDepends = [ hinotify systemFileio systemFilepath text time ];
|
||||
meta = {
|
||||
description = "Cross platform library for file creation, modification, and deletion notification";
|
||||
|
@ -5,14 +5,13 @@
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "hakyll";
|
||||
version = "3.5.2.0";
|
||||
sha256 = "088qhzycpz003qa4b7hnn6frgmidk6219icii04ap964fkw0mqn0";
|
||||
version = "3.5.2.1";
|
||||
sha256 = "1fp7jak2sfznvg3lfyjqy13m1iq9821mdq6n5qmqz5dh5b960iv4";
|
||||
buildDepends = [
|
||||
binary blazeHtml blazeMarkup citeprocHs cryptohash filepath hamlet
|
||||
lrucache mtl pandoc parsec regexBase regexTdfa snapCore snapServer
|
||||
tagsoup text time
|
||||
];
|
||||
jailbreak = true;
|
||||
meta = {
|
||||
homepage = "http://jaspervdj.be/hakyll";
|
||||
description = "A static website compiler library";
|
||||
|
@ -2,8 +2,8 @@
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "hashable";
|
||||
version = "1.2.0.2";
|
||||
sha256 = "1l827sh7v2jls2gcbxgbvz5hacwi43bcrxwmd3wp92hfwy1yza65";
|
||||
version = "1.2.0.3";
|
||||
sha256 = "0q4zl2mry6qfp9vln6pxmgqik7szv1sh7if55gydnxln1ybvvgmp";
|
||||
buildDepends = [ text ];
|
||||
meta = {
|
||||
homepage = "http://github.com/tibbe/hashable";
|
@ -2,8 +2,8 @@
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "highlighting-kate";
|
||||
version = "0.5.3.3";
|
||||
sha256 = "08jxl2ba0kb4vj1qbdf4sas8bwbxzayzwsxnjvq358x57i5l302n";
|
||||
version = "0.5.3.4";
|
||||
sha256 = "1xm9dr71qna1w65vzaf63hbchpvshfjvvs5038sy04x2ddwdix77";
|
||||
isLibrary = true;
|
||||
isExecutable = true;
|
||||
buildDepends = [ blazeHtml filepath mtl parsec regexPcre ];
|
||||
|
@ -8,8 +8,8 @@
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "http-conduit";
|
||||
version = "1.8.6.1";
|
||||
sha256 = "1vkfld5kn8fql78mw8zwsp524m07kr4a10c411rzpv6xqx92azy7";
|
||||
version = "1.8.6.2";
|
||||
sha256 = "0b9iw8gq0kyfmnpv1jba2dx8rik9136zx5q9xdyvy0lczdgb8i09";
|
||||
buildDepends = [
|
||||
asn1Data attoparsec attoparsecConduit base64Bytestring blazeBuilder
|
||||
blazeBuilderConduit caseInsensitive certificate conduit cookie
|
||||
|
@ -5,8 +5,8 @@
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "http-reverse-proxy";
|
||||
version = "0.1.1";
|
||||
sha256 = "0p04zpw1v0zhzri7wpikc0b8g7n21kgl8j8238vv7xqxapkal0pc";
|
||||
version = "0.1.1.1";
|
||||
sha256 = "0xg6xw0j61db75smys2fgjn0nzv2dy8c1ha4m828ssnxlic98lk2";
|
||||
buildDepends = [
|
||||
blazeBuilder caseInsensitive classyPreludeConduit conduit
|
||||
dataDefault httpConduit httpTypes liftedBase monadControl network
|
||||
|
@ -5,13 +5,16 @@
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "lens";
|
||||
version = "3.7.1.2";
|
||||
sha256 = "1hapcnmyqyc3645gsy1ikwzm2srbbznps6yrfr02y2lcbnjpn3g6";
|
||||
version = "3.7.2";
|
||||
sha256 = "14kc9yhq7niv49gpdcl55priwnvisawa9jsp8hnplk48p11i2xs3";
|
||||
buildDepends = [
|
||||
comonad comonadsFd comonadTransformers filepath hashable mtl
|
||||
parallel semigroups split text transformers unorderedContainers
|
||||
vector
|
||||
];
|
||||
patchPhase = ''
|
||||
sed -i -e 's|semigroups.*,|semigroups,|' lens.cabal
|
||||
'';
|
||||
meta = {
|
||||
homepage = "http://github.com/ekmett/lens/";
|
||||
description = "Lenses, Folds and Traversals";
|
||||
|
@ -5,6 +5,7 @@ cabal.mkDerivation (self: {
|
||||
version = "0.2.2.1";
|
||||
sha256 = "0n2zwkwwq8kg9m6qr79mrhlxsfsrjzbyg96gfhcgk21zgc09zary";
|
||||
buildDepends = [ semigroups ];
|
||||
jailbreak = true;
|
||||
meta = {
|
||||
description = "Various extra monoid-related definitions and utilities";
|
||||
license = self.stdenv.lib.licenses.bsd3;
|
||||
|
13
pkgs/development/libraries/haskell/nats/default.nix
Normal file
13
pkgs/development/libraries/haskell/nats/default.nix
Normal 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;
|
||||
};
|
||||
})
|
@ -3,8 +3,8 @@
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "network-conduit";
|
||||
version = "0.6.2.1";
|
||||
sha256 = "1pkqkkj18yn31dmxcc8xfq2drg2jm9169my0s3jsxjbyxsyq58l6";
|
||||
version = "0.6.2.2";
|
||||
sha256 = "1v8abhw977hr78hkshrbxy04abbbhafvvnhr4xxgqc0phwch02mc";
|
||||
buildDepends = [
|
||||
conduit liftedBase monadControl network transformers
|
||||
];
|
||||
|
@ -1,15 +1,15 @@
|
||||
{ cabal, haskellLexer }:
|
||||
{ cabal, filepath, haskellLexer }:
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "pretty-show";
|
||||
version = "1.3.2";
|
||||
sha256 = "0m3kw4d68gd1mhlgi5vy3k2cqi9f0i4s502m2sgy4pww45fjllxy";
|
||||
version = "1.5";
|
||||
sha256 = "1n04f9aypgbhkq0lbji9czv1mjfwv4f80w1c6hqs55gmzwif63m4";
|
||||
isLibrary = true;
|
||||
isExecutable = true;
|
||||
buildDepends = [ haskellLexer ];
|
||||
buildDepends = [ filepath haskellLexer ];
|
||||
meta = {
|
||||
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;
|
||||
platforms = self.ghc.meta.platforms;
|
||||
maintainers = [ self.stdenv.lib.maintainers.andres ];
|
||||
|
@ -2,8 +2,8 @@
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "semigroupoids";
|
||||
version = "3.0.0.1";
|
||||
sha256 = "0ilqmpywiwp9m1k8lrw0mxb0pzc9l8bs2hgzrp8k5iln1yq1fh6i";
|
||||
version = "3.0.1";
|
||||
sha256 = "12k2yryr31lxhwq42cx05kswljmbli8p8c2wknigzkkam63d8k5h";
|
||||
buildDepends = [ comonad contravariant semigroups transformers ];
|
||||
meta = {
|
||||
homepage = "http://github.com/ekmett/semigroupoids";
|
||||
|
@ -1,9 +1,10 @@
|
||||
{ cabal }:
|
||||
{ cabal, nats }:
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "semigroups";
|
||||
version = "0.8.5";
|
||||
sha256 = "0dnxqqxfyxj0mpy524nvgwagsp6ynadmh2yr4k5159rzbg2xgz90";
|
||||
version = "0.9";
|
||||
sha256 = "0cwyjjlr9zgpxryzdf26pb58dmad0cp8d0493rarhh5zmgighh90";
|
||||
buildDepends = [ nats ];
|
||||
meta = {
|
||||
homepage = "http://github.com/ekmett/semigroups/";
|
||||
description = "Haskell 98 semigroups";
|
||||
|
@ -2,8 +2,8 @@
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "texmath";
|
||||
version = "0.6.1.1";
|
||||
sha256 = "06yk19jvpj7di1njybk1hdc7hp6c9h3yb4gvi7ljna6wqrh6zqaz";
|
||||
version = "0.6.1.2";
|
||||
sha256 = "1izsjy30saz2il16dwx8sh2s30b1pfgcpq6023v135w1bdrzrnmq";
|
||||
isLibrary = true;
|
||||
isExecutable = true;
|
||||
buildDepends = [ parsec syb xml ];
|
||||
|
@ -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;
|
||||
};
|
||||
})
|
@ -2,8 +2,8 @@
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "uu-parsinglib";
|
||||
version = "2.7.4";
|
||||
sha256 = "1cznyn09a3glfkvvzqma3bhjinddkp6v2xwiy5x403v0wy8y565j";
|
||||
version = "2.7.4.1";
|
||||
sha256 = "1aya95j7dd0yal0ygy6d4w4wmlhgn5ddy3c5f6ncl4k3kg7hjxd1";
|
||||
buildDepends = [ ListLike time ];
|
||||
meta = {
|
||||
homepage = "http://www.cs.uu.nl/wiki/bin/view/HUT/ParserCombinators";
|
||||
|
@ -2,8 +2,8 @@
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "void";
|
||||
version = "0.5.10";
|
||||
sha256 = "0adykqns7vvzgrjg7waaklfj3dl1h7vk5rwlfx0f18js6di9zrh4";
|
||||
version = "0.5.11";
|
||||
sha256 = "0fi8ccnhg0ckz5v3cgxhdd67p0v3g9yawin917ik4vxfbwz5j3v6";
|
||||
buildDepends = [ semigroups ];
|
||||
meta = {
|
||||
homepage = "http://github.com/ekmett/void";
|
||||
|
@ -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
|
@ -10,7 +10,7 @@ cabal.mkDerivation (self: {
|
||||
postInstall = ''
|
||||
cp -v dist/build/libwxc.so.${self.version} $out/lib/libwxc.so
|
||||
'';
|
||||
|
||||
patches = [ ./fix-bogus-pointer-assignment.patch ];
|
||||
meta = {
|
||||
homepage = "http://haskell.org/haskellwiki/WxHaskell";
|
||||
description = "wxHaskell C++ wrapper";
|
||||
|
@ -37,7 +37,11 @@ stdenv.mkDerivation rec {
|
||||
mkdir -p $out/bin
|
||||
mkdir -p $out/lib
|
||||
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/
|
||||
'';
|
||||
}
|
||||
|
87
pkgs/development/mobile/titaniumenv/build-app.nix
Normal file
87
pkgs/development/mobile/titaniumenv/build-app.nix
Normal 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!"}
|
||||
'';
|
||||
}
|
18
pkgs/development/mobile/titaniumenv/default.nix
Normal file
18
pkgs/development/mobile/titaniumenv/default.nix
Normal 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;
|
||||
};
|
||||
}
|
38
pkgs/development/mobile/titaniumenv/examples/default.nix
Normal file
38
pkgs/development/mobile/titaniumenv/examples/default.nix
Normal 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";
|
||||
};
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
{androidenv, kitchensink}:
|
||||
|
||||
androidenv.emulateApp {
|
||||
name = "kitchensink";
|
||||
app = kitchensink;
|
||||
platformVersion = "8";
|
||||
useGoogleAPIs = true;
|
||||
package = "com.appcelerator.kitchensink";
|
||||
activity = "KitchensinkActivity";
|
||||
}
|
@ -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 = "";*/
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
{xcodeenv, kitchensink, device}:
|
||||
|
||||
xcodeenv.simulateApp {
|
||||
name = "kitchensink";
|
||||
app = kitchensink;
|
||||
inherit device;
|
||||
baseDir = "build/iphone/build/Debug-iphonesimulator";
|
||||
}
|
1
pkgs/development/mobile/titaniumenv/fixnativelibs.sed
Normal file
1
pkgs/development/mobile/titaniumenv/fixnativelibs.sed
Normal 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()|
|
1
pkgs/development/mobile/titaniumenv/fixselfruntimev8.sed
Normal file
1
pkgs/development/mobile/titaniumenv/fixselfruntimev8.sed
Normal 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()|
|
1
pkgs/development/mobile/titaniumenv/fixtiverify.sed
Normal file
1
pkgs/development/mobile/titaniumenv/fixtiverify.sed
Normal 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()|
|
57
pkgs/development/mobile/titaniumenv/titaniumsdk.nix
Normal file
57
pkgs/development/mobile/titaniumenv/titaniumsdk.nix
Normal 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}
|
||||
'';
|
||||
}
|
92
pkgs/development/mobile/xcodeenv/build-app.nix
Normal file
92
pkgs/development/mobile/xcodeenv/build-app.nix
Normal 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";
|
||||
}
|
15
pkgs/development/mobile/xcodeenv/default.nix
Normal file
15
pkgs/development/mobile/xcodeenv/default.nix
Normal 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;
|
||||
};
|
||||
}
|
17
pkgs/development/mobile/xcodeenv/simulate-app.nix
Normal file
17
pkgs/development/mobile/xcodeenv/simulate-app.nix
Normal 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
|
||||
'';
|
||||
}
|
||||
|
24
pkgs/development/mobile/xcodeenv/xcodewrapper.nix
Normal file
24
pkgs/development/mobile/xcodeenv/xcodewrapper.nix
Normal 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
|
||||
'';
|
||||
}
|
@ -4,8 +4,8 @@
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "hlint";
|
||||
version = "1.8.39";
|
||||
sha256 = "009qf441nri8pxzz22xvpz44dhspr9bkh5diaz29abimj10fm375";
|
||||
version = "1.8.40";
|
||||
sha256 = "18w4dhxv7c1y4x1agdjq99ss5i77jnm8p9vg3jp9gvhk2arhcl0x";
|
||||
isLibrary = true;
|
||||
isExecutable = true;
|
||||
buildDepends = [
|
||||
|
@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
|
||||
"--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 = ''
|
||||
sed -e 's|^#!/usr/bin/env python$|#!${python}/bin/python|g' -i tools/{*.py,waf-light,node-waf} configure
|
||||
|
@ -1,11 +1,11 @@
|
||||
{ stdenv, fetchurl, devicemapper, libgcrypt, libuuid, pkgconfig, popt }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "cryptsetup-1.5.0";
|
||||
name = "cryptsetup-1.5.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://cryptsetup.googlecode.com/files/${name}.tar.bz2";
|
||||
sha256 = "1l7qcmaq092k28k8sbw845hs6jwn0f05h68rmb7iwh52232m8wa0";
|
||||
sha256 = "0dib3nw6ifd7d7hr9k4iyaha3hz0pkzairqa38l3fndkr9w3zlhn";
|
||||
};
|
||||
|
||||
configureFlags = "--enable-cryptsetup-reencrypt";
|
||||
|
@ -27,19 +27,23 @@ buildPhase() {
|
||||
installPhase() {
|
||||
|
||||
# Install libGL and friends.
|
||||
mkdir -p $out/lib
|
||||
cp -prd libcuda.* libGL.* libnvidia-cfg.* libnvidia-compiler.* libnvidia-tls.* libnvidia-glcore.* libOpenCL.* libvdpau_nvidia* tls $out/lib/
|
||||
mkdir -p $out/lib/vendors
|
||||
|
||||
ln -snf libnvidia-glcore.so.$versionNumber $out/lib/libnvidia-glcore.so
|
||||
ln -snf libnvidia-glcore.so.$versionNumber $out/lib/libnvidia-glcore.so.1
|
||||
ln -snf libGL.so.$versionNumber $out/lib/libGL.so
|
||||
ln -snf libGL.so.$versionNumber $out/lib/libGL.so.1
|
||||
ln -snf libnvidia-cfg.so.$versionNumber $out/lib/libnvidia-cfg.so.1
|
||||
ln -snf libnvidia-tls.so.$versionNumber $out/lib/libnvidia-tls.so.1
|
||||
ln -snf libnvidia-tls.so.$versionNumber $out/lib/tls/libnvidia-tls.so.1
|
||||
ln -snf libcuda.so.$versionNumber $out/lib/libcuda.so.1
|
||||
ln -snf libcuda.so.1 $out/lib/libcuda.so
|
||||
ln -snf libvdpau_nvidia.so.$versionNumber $out/lib/libvdpau_nvidia.so
|
||||
for f in \
|
||||
libcuda libGL libnvcuvid libnvidia-cfg libnvidia-compiler \
|
||||
libnvidia-encode libnvidia-glcore libnvidia-ml libnvidia-opencl \
|
||||
libnvidia-tls libOpenCL libnvidia-tls libvdpau_nvidia
|
||||
do
|
||||
cp -prd $f.* $out/lib/
|
||||
ln -snf $f.so.$versionNumber $out/lib/$f.so
|
||||
ln -snf $f.so.$versionNumber $out/lib/$f.so.1
|
||||
done
|
||||
|
||||
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/libvdpau_nvidia.so.*.*
|
||||
|
@ -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
|
||||
index 04fc0b3..0f5b0e9 100644
|
||||
index 1ee3c9c..1686f60 100644
|
||||
--- a/src/core/main.c
|
||||
+++ b/src/core/main.c
|
||||
@@ -1819,7 +1819,7 @@ finish:
|
||||
@@ -1858,7 +1858,7 @@ finish:
|
||||
char_array_0(sfd);
|
||||
|
||||
i = 0;
|
||||
@ -13,3 +21,6 @@ index 04fc0b3..0f5b0e9 100644
|
||||
if (switch_root_dir)
|
||||
args[i++] = "--switched-root";
|
||||
args[i++] = arg_running_as == SYSTEMD_SYSTEM ? "--system" : "--user";
|
||||
--
|
||||
1.8.0.1
|
||||
|
@ -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
|
||||
index a4290c4..d3ac3ad 100644
|
||||
index 2ebfff8..9f99df5 100644
|
||||
--- a/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);
|
||||
if (r < 0) {
|
||||
@ -18,3 +25,6 @@ index a4290c4..d3ac3ad 100644
|
||||
}
|
||||
|
||||
p = NULL;
|
||||
--
|
||||
1.8.0.1
|
||||
|
@ -1,9 +1,16 @@
|
||||
Do start device units for uninitialised encrypted devices, because the
|
||||
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...)
|
||||
From a013beb84f135cebf1c8c9363d5676c1c0a6be7a Mon Sep 17 00:00:00 2001
|
||||
From: Eelco Dolstra <eelco.dolstra@logicblox.com>
|
||||
Date: Tue, 8 Jan 2013 15:46:30 +0100
|
||||
Subject: [PATCH 3/5] Start device units for uninitialised encrypted devices
|
||||
|
||||
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
|
||||
index d17bdd9..040b10e 100644
|
||||
@ -20,3 +27,6 @@ index d17bdd9..040b10e 100644
|
||||
# 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*", ATTR{md/array_state}=="|clear|inactive", ENV{SYSTEMD_READY}="0"
|
||||
--
|
||||
1.8.0.1
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -6,17 +6,19 @@
|
||||
assert stdenv.gcc.libc or null != null;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "systemd-196";
|
||||
name = "systemd-197";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.freedesktop.org/software/systemd/${name}.tar.xz";
|
||||
sha256 = "1gz4an5havzwzp7xsinn01prwvf51hgipb8pbciri0fxlmcadm3b";
|
||||
sha256 = "1dbljyyc3w4a1af99f15f3sqnfx7mfmc5x5hwxb70kg23ai7x1g6";
|
||||
};
|
||||
|
||||
patches =
|
||||
[ ./reexec.patch
|
||||
./ignore-duplicates.patch
|
||||
./crypt-devices-are-ready.patch
|
||||
[ ./0001-Make-systemctl-daemon-reexec-do-the-right-thing-on-N.patch
|
||||
./0002-Ignore-duplicate-paths-in-systemctl-start.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 =
|
||||
@ -27,7 +29,6 @@ stdenv.mkDerivation rec {
|
||||
configureFlags =
|
||||
[ "--localstatedir=/var"
|
||||
"--sysconfdir=/etc"
|
||||
"--with-distro=other"
|
||||
"--with-rootprefix=$(out)"
|
||||
"--with-rootprefix=$(out)"
|
||||
"--with-dbusinterfacedir=$(out)/share/dbus-1/interfaces"
|
||||
@ -55,6 +56,8 @@ stdenv.mkDerivation rec {
|
||||
--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 =
|
||||
[ "-DKBD_LOADKEYS=\"${kbd}/bin/loadkeys\""
|
||||
"-DKBD_SETFONT=\"${kbd}/bin/setfont\""
|
||||
|
@ -411,7 +411,14 @@ let
|
||||
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;
|
||||
pkgs_i686 = pkgsi686Linux;
|
||||
};
|
||||
@ -7318,6 +7325,8 @@ let
|
||||
lua = lua5;
|
||||
};
|
||||
|
||||
ipe = callPackage ../applications/graphics/ipe { };
|
||||
|
||||
iptraf = callPackage ../applications/networking/iptraf { };
|
||||
|
||||
irssi = callPackage ../applications/networking/irc/irssi { };
|
||||
|
@ -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 {};
|
||||
|
||||
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;
|
||||
|
||||
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 {};
|
||||
|
||||
nats = callPackage ../development/libraries/haskell/nats {};
|
||||
|
||||
netlist = callPackage ../development/libraries/haskell/netlist {};
|
||||
|
||||
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 {};
|
||||
|
||||
transformersCompat = callPackage ../development/libraries/haskell/transformers-compat {};
|
||||
|
||||
tuple = callPackage ../development/libraries/haskell/tuple {};
|
||||
|
||||
typeEquality = callPackage ../development/libraries/haskell/type-equality {};
|
||||
|
Loading…
Reference in New Issue
Block a user