diff --git a/pkgs/applications/editors/zile/default.nix b/pkgs/applications/editors/zile/default.nix index a64561b10996..13a36e258fde 100644 --- a/pkgs/applications/editors/zile/default.nix +++ b/pkgs/applications/editors/zile/default.nix @@ -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; diff --git a/pkgs/applications/graphics/ipe/default.nix b/pkgs/applications/graphics/ipe/default.nix new file mode 100644 index 000000000000..df50dd5bd793 --- /dev/null +++ b/pkgs/applications/graphics/ipe/default.nix @@ -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. + ''; + }; +} diff --git a/pkgs/development/libraries/haskell/active/default.nix b/pkgs/development/libraries/haskell/active/default.nix index 5c563ad9cd73..732000e74824 100644 --- a/pkgs/development/libraries/haskell/active/default.nix +++ b/pkgs/development/libraries/haskell/active/default.nix @@ -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; diff --git a/pkgs/development/libraries/haskell/comonad-transformers/default.nix b/pkgs/development/libraries/haskell/comonad-transformers/default.nix index bc378235b91a..3a56b37edf9b 100644 --- a/pkgs/development/libraries/haskell/comonad-transformers/default.nix +++ b/pkgs/development/libraries/haskell/comonad-transformers/default.nix @@ -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 diff --git a/pkgs/development/libraries/haskell/comonad/default.nix b/pkgs/development/libraries/haskell/comonad/default.nix index 3394de012060..b37ffdf596e1 100644 --- a/pkgs/development/libraries/haskell/comonad/default.nix +++ b/pkgs/development/libraries/haskell/comonad/default.nix @@ -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/"; diff --git a/pkgs/development/libraries/haskell/comonads-fd/default.nix b/pkgs/development/libraries/haskell/comonads-fd/default.nix index 26a18c667a2b..5921d8b07d39 100644 --- a/pkgs/development/libraries/haskell/comonads-fd/default.nix +++ b/pkgs/development/libraries/haskell/comonads-fd/default.nix @@ -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 ]; diff --git a/pkgs/development/libraries/haskell/diagrams/core.nix b/pkgs/development/libraries/haskell/diagrams/core.nix index 3f4942086627..2acf784e8812 100644 --- a/pkgs/development/libraries/haskell/diagrams/core.nix +++ b/pkgs/development/libraries/haskell/diagrams/core.nix @@ -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"; diff --git a/pkgs/development/libraries/haskell/diagrams/lib.nix b/pkgs/development/libraries/haskell/diagrams/lib.nix index 472657b2df71..727a7156a9b8 100644 --- a/pkgs/development/libraries/haskell/diagrams/lib.nix +++ b/pkgs/development/libraries/haskell/diagrams/lib.nix @@ -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"; diff --git a/pkgs/development/libraries/haskell/distributive/default.nix b/pkgs/development/libraries/haskell/distributive/default.nix index a8b07c608d8a..6709569b0540 100644 --- a/pkgs/development/libraries/haskell/distributive/default.nix +++ b/pkgs/development/libraries/haskell/distributive/default.nix @@ -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"; diff --git a/pkgs/development/libraries/haskell/dual-tree/default.nix b/pkgs/development/libraries/haskell/dual-tree/default.nix index f1206fd822ee..741fcbce1c9b 100644 --- a/pkgs/development/libraries/haskell/dual-tree/default.nix +++ b/pkgs/development/libraries/haskell/dual-tree/default.nix @@ -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; diff --git a/pkgs/development/libraries/haskell/either/default.nix b/pkgs/development/libraries/haskell/either/default.nix index 3d293d3b86e6..cbfa53b6d001 100644 --- a/pkgs/development/libraries/haskell/either/default.nix +++ b/pkgs/development/libraries/haskell/either/default.nix @@ -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/"; diff --git a/pkgs/development/libraries/haskell/fsnotify/default.nix b/pkgs/development/libraries/haskell/fsnotify/default.nix index 34a3c13b9fb1..80b6760a3b7b 100644 --- a/pkgs/development/libraries/haskell/fsnotify/default.nix +++ b/pkgs/development/libraries/haskell/fsnotify/default.nix @@ -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"; diff --git a/pkgs/development/libraries/haskell/hakyll/default.nix b/pkgs/development/libraries/haskell/hakyll/default.nix index 093a92dd16ec..50ff535d874b 100644 --- a/pkgs/development/libraries/haskell/hakyll/default.nix +++ b/pkgs/development/libraries/haskell/hakyll/default.nix @@ -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"; diff --git a/pkgs/development/libraries/haskell/hashable/1.2.0.2.nix b/pkgs/development/libraries/haskell/hashable/1.2.0.3.nix similarity index 81% rename from pkgs/development/libraries/haskell/hashable/1.2.0.2.nix rename to pkgs/development/libraries/haskell/hashable/1.2.0.3.nix index 10f9c0ec6206..43d99b63d5a4 100644 --- a/pkgs/development/libraries/haskell/hashable/1.2.0.2.nix +++ b/pkgs/development/libraries/haskell/hashable/1.2.0.3.nix @@ -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"; diff --git a/pkgs/development/libraries/haskell/highlighting-kate/default.nix b/pkgs/development/libraries/haskell/highlighting-kate/default.nix index 4b2e32d23520..cc591acf2022 100644 --- a/pkgs/development/libraries/haskell/highlighting-kate/default.nix +++ b/pkgs/development/libraries/haskell/highlighting-kate/default.nix @@ -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 ]; diff --git a/pkgs/development/libraries/haskell/http-conduit/default.nix b/pkgs/development/libraries/haskell/http-conduit/default.nix index 7ac2a551fc4a..aada13af06ae 100644 --- a/pkgs/development/libraries/haskell/http-conduit/default.nix +++ b/pkgs/development/libraries/haskell/http-conduit/default.nix @@ -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 diff --git a/pkgs/development/libraries/haskell/http-reverse-proxy/default.nix b/pkgs/development/libraries/haskell/http-reverse-proxy/default.nix index 62bc2ebac184..e30a30fc7aa3 100644 --- a/pkgs/development/libraries/haskell/http-reverse-proxy/default.nix +++ b/pkgs/development/libraries/haskell/http-reverse-proxy/default.nix @@ -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 diff --git a/pkgs/development/libraries/haskell/lens/default.nix b/pkgs/development/libraries/haskell/lens/default.nix index dd9966a0d58d..92375e9f14a9 100644 --- a/pkgs/development/libraries/haskell/lens/default.nix +++ b/pkgs/development/libraries/haskell/lens/default.nix @@ -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"; diff --git a/pkgs/development/libraries/haskell/monoid-extras/default.nix b/pkgs/development/libraries/haskell/monoid-extras/default.nix index a86bdce38397..4e8a4154ae1e 100644 --- a/pkgs/development/libraries/haskell/monoid-extras/default.nix +++ b/pkgs/development/libraries/haskell/monoid-extras/default.nix @@ -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; diff --git a/pkgs/development/libraries/haskell/nats/default.nix b/pkgs/development/libraries/haskell/nats/default.nix new file mode 100644 index 000000000000..02f5c289836e --- /dev/null +++ b/pkgs/development/libraries/haskell/nats/default.nix @@ -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; + }; +}) diff --git a/pkgs/development/libraries/haskell/network-conduit/default.nix b/pkgs/development/libraries/haskell/network-conduit/default.nix index 1b2187daaafb..a56c35a214ba 100644 --- a/pkgs/development/libraries/haskell/network-conduit/default.nix +++ b/pkgs/development/libraries/haskell/network-conduit/default.nix @@ -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 ]; diff --git a/pkgs/development/libraries/haskell/pretty-show/default.nix b/pkgs/development/libraries/haskell/pretty-show/default.nix index 791d8c59b749..5fedd0aca292 100644 --- a/pkgs/development/libraries/haskell/pretty-show/default.nix +++ b/pkgs/development/libraries/haskell/pretty-show/default.nix @@ -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 ]; diff --git a/pkgs/development/libraries/haskell/semigroupoids/default.nix b/pkgs/development/libraries/haskell/semigroupoids/default.nix index c2e8deefbad5..7e25fa5913e2 100644 --- a/pkgs/development/libraries/haskell/semigroupoids/default.nix +++ b/pkgs/development/libraries/haskell/semigroupoids/default.nix @@ -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"; diff --git a/pkgs/development/libraries/haskell/semigroups/default.nix b/pkgs/development/libraries/haskell/semigroups/default.nix index 1a412aec908b..ea0f2813b55f 100644 --- a/pkgs/development/libraries/haskell/semigroups/default.nix +++ b/pkgs/development/libraries/haskell/semigroups/default.nix @@ -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"; diff --git a/pkgs/development/libraries/haskell/texmath/default.nix b/pkgs/development/libraries/haskell/texmath/default.nix index 65d9da1548fd..78ec99da8db5 100644 --- a/pkgs/development/libraries/haskell/texmath/default.nix +++ b/pkgs/development/libraries/haskell/texmath/default.nix @@ -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 ]; diff --git a/pkgs/development/libraries/haskell/transformers-compat/default.nix b/pkgs/development/libraries/haskell/transformers-compat/default.nix new file mode 100644 index 000000000000..d36ace0eb299 --- /dev/null +++ b/pkgs/development/libraries/haskell/transformers-compat/default.nix @@ -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; + }; +}) diff --git a/pkgs/development/libraries/haskell/uu-parsinglib/default.nix b/pkgs/development/libraries/haskell/uu-parsinglib/default.nix index 02356789bc30..d28eb827dabf 100644 --- a/pkgs/development/libraries/haskell/uu-parsinglib/default.nix +++ b/pkgs/development/libraries/haskell/uu-parsinglib/default.nix @@ -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"; diff --git a/pkgs/development/libraries/haskell/void/default.nix b/pkgs/development/libraries/haskell/void/default.nix index 5cd54a3e0e77..cdf21c782334 100644 --- a/pkgs/development/libraries/haskell/void/default.nix +++ b/pkgs/development/libraries/haskell/void/default.nix @@ -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"; diff --git a/pkgs/development/libraries/haskell/wxHaskell/fix-bogus-pointer-assignment.patch b/pkgs/development/libraries/haskell/wxHaskell/fix-bogus-pointer-assignment.patch new file mode 100644 index 000000000000..38551d24d43f --- /dev/null +++ b/pkgs/development/libraries/haskell/wxHaskell/fix-bogus-pointer-assignment.patch @@ -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 diff --git a/pkgs/development/libraries/haskell/wxHaskell/wxc.nix b/pkgs/development/libraries/haskell/wxHaskell/wxc.nix index f439b9e1594a..74ca4f91d70f 100644 --- a/pkgs/development/libraries/haskell/wxHaskell/wxc.nix +++ b/pkgs/development/libraries/haskell/wxHaskell/wxc.nix @@ -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"; diff --git a/pkgs/development/libraries/v8/default.nix b/pkgs/development/libraries/v8/default.nix index 5cd083a7e330..1fd6179183fd 100644 --- a/pkgs/development/libraries/v8/default.nix +++ b/pkgs/development/libraries/v8/default.nix @@ -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/ ''; } diff --git a/pkgs/development/androidenv/addon.xml b/pkgs/development/mobile/androidenv/addon.xml similarity index 100% rename from pkgs/development/androidenv/addon.xml rename to pkgs/development/mobile/androidenv/addon.xml diff --git a/pkgs/development/androidenv/addons.nix b/pkgs/development/mobile/androidenv/addons.nix similarity index 100% rename from pkgs/development/androidenv/addons.nix rename to pkgs/development/mobile/androidenv/addons.nix diff --git a/pkgs/development/androidenv/androidsdk.nix b/pkgs/development/mobile/androidenv/androidsdk.nix similarity index 100% rename from pkgs/development/androidenv/androidsdk.nix rename to pkgs/development/mobile/androidenv/androidsdk.nix diff --git a/pkgs/development/androidenv/build-app.nix b/pkgs/development/mobile/androidenv/build-app.nix similarity index 100% rename from pkgs/development/androidenv/build-app.nix rename to pkgs/development/mobile/androidenv/build-app.nix diff --git a/pkgs/development/androidenv/default.nix b/pkgs/development/mobile/androidenv/default.nix similarity index 100% rename from pkgs/development/androidenv/default.nix rename to pkgs/development/mobile/androidenv/default.nix diff --git a/pkgs/development/androidenv/emulate-app.nix b/pkgs/development/mobile/androidenv/emulate-app.nix similarity index 100% rename from pkgs/development/androidenv/emulate-app.nix rename to pkgs/development/mobile/androidenv/emulate-app.nix diff --git a/pkgs/development/androidenv/generate-addons.sh b/pkgs/development/mobile/androidenv/generate-addons.sh similarity index 100% rename from pkgs/development/androidenv/generate-addons.sh rename to pkgs/development/mobile/androidenv/generate-addons.sh diff --git a/pkgs/development/androidenv/generate-addons.xsl b/pkgs/development/mobile/androidenv/generate-addons.xsl similarity index 100% rename from pkgs/development/androidenv/generate-addons.xsl rename to pkgs/development/mobile/androidenv/generate-addons.xsl diff --git a/pkgs/development/androidenv/generate-platforms.sh b/pkgs/development/mobile/androidenv/generate-platforms.sh similarity index 100% rename from pkgs/development/androidenv/generate-platforms.sh rename to pkgs/development/mobile/androidenv/generate-platforms.sh diff --git a/pkgs/development/androidenv/generate-platforms.xsl b/pkgs/development/mobile/androidenv/generate-platforms.xsl similarity index 100% rename from pkgs/development/androidenv/generate-platforms.xsl rename to pkgs/development/mobile/androidenv/generate-platforms.xsl diff --git a/pkgs/development/androidenv/generate-sysimages.sh b/pkgs/development/mobile/androidenv/generate-sysimages.sh similarity index 100% rename from pkgs/development/androidenv/generate-sysimages.sh rename to pkgs/development/mobile/androidenv/generate-sysimages.sh diff --git a/pkgs/development/androidenv/generate-sysimages.xsl b/pkgs/development/mobile/androidenv/generate-sysimages.xsl similarity index 100% rename from pkgs/development/androidenv/generate-sysimages.xsl rename to pkgs/development/mobile/androidenv/generate-sysimages.xsl diff --git a/pkgs/development/androidenv/platform-tools.nix b/pkgs/development/mobile/androidenv/platform-tools.nix similarity index 100% rename from pkgs/development/androidenv/platform-tools.nix rename to pkgs/development/mobile/androidenv/platform-tools.nix diff --git a/pkgs/development/androidenv/platforms-linux.nix b/pkgs/development/mobile/androidenv/platforms-linux.nix similarity index 100% rename from pkgs/development/androidenv/platforms-linux.nix rename to pkgs/development/mobile/androidenv/platforms-linux.nix diff --git a/pkgs/development/androidenv/platforms-macosx.nix b/pkgs/development/mobile/androidenv/platforms-macosx.nix similarity index 100% rename from pkgs/development/androidenv/platforms-macosx.nix rename to pkgs/development/mobile/androidenv/platforms-macosx.nix diff --git a/pkgs/development/androidenv/repository-7.xml b/pkgs/development/mobile/androidenv/repository-7.xml similarity index 100% rename from pkgs/development/androidenv/repository-7.xml rename to pkgs/development/mobile/androidenv/repository-7.xml diff --git a/pkgs/development/androidenv/support.nix b/pkgs/development/mobile/androidenv/support.nix similarity index 100% rename from pkgs/development/androidenv/support.nix rename to pkgs/development/mobile/androidenv/support.nix diff --git a/pkgs/development/androidenv/sysimages.nix b/pkgs/development/mobile/androidenv/sysimages.nix similarity index 100% rename from pkgs/development/androidenv/sysimages.nix rename to pkgs/development/mobile/androidenv/sysimages.nix diff --git a/pkgs/development/mobile/titaniumenv/build-app.nix b/pkgs/development/mobile/titaniumenv/build-app.nix new file mode 100644 index 000000000000..0fd4929bda76 --- /dev/null +++ b/pkgs/development/mobile/titaniumenv/build-app.nix @@ -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!"} + ''; +} diff --git a/pkgs/development/mobile/titaniumenv/default.nix b/pkgs/development/mobile/titaniumenv/default.nix new file mode 100644 index 000000000000..8117b452d70b --- /dev/null +++ b/pkgs/development/mobile/titaniumenv/default.nix @@ -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; + }; +} diff --git a/pkgs/development/mobile/titaniumenv/examples/default.nix b/pkgs/development/mobile/titaniumenv/examples/default.nix new file mode 100644 index 000000000000..1526d4c43590 --- /dev/null +++ b/pkgs/development/mobile/titaniumenv/examples/default.nix @@ -0,0 +1,38 @@ +let + pkgs = import {}; + pkgs_i686 = import { 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"; + }; +} diff --git a/pkgs/development/mobile/titaniumenv/examples/emulate-kitchensink/default.nix b/pkgs/development/mobile/titaniumenv/examples/emulate-kitchensink/default.nix new file mode 100644 index 000000000000..817aa5ab37f5 --- /dev/null +++ b/pkgs/development/mobile/titaniumenv/examples/emulate-kitchensink/default.nix @@ -0,0 +1,10 @@ +{androidenv, kitchensink}: + +androidenv.emulateApp { + name = "kitchensink"; + app = kitchensink; + platformVersion = "8"; + useGoogleAPIs = true; + package = "com.appcelerator.kitchensink"; + activity = "KitchensinkActivity"; +} diff --git a/pkgs/development/mobile/titaniumenv/examples/kitchensink/default.nix b/pkgs/development/mobile/titaniumenv/examples/kitchensink/default.nix new file mode 100644 index 000000000000..8e2b1df264a6 --- /dev/null +++ b/pkgs/development/mobile/titaniumenv/examples/kitchensink/default.nix @@ -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 = "";*/ +} diff --git a/pkgs/development/mobile/titaniumenv/examples/simulate-kitchensink/default.nix b/pkgs/development/mobile/titaniumenv/examples/simulate-kitchensink/default.nix new file mode 100644 index 000000000000..70ec534f6ae2 --- /dev/null +++ b/pkgs/development/mobile/titaniumenv/examples/simulate-kitchensink/default.nix @@ -0,0 +1,8 @@ +{xcodeenv, kitchensink, device}: + +xcodeenv.simulateApp { + name = "kitchensink"; + app = kitchensink; + inherit device; + baseDir = "build/iphone/build/Debug-iphonesimulator"; +} diff --git a/pkgs/development/mobile/titaniumenv/fixnativelibs.sed b/pkgs/development/mobile/titaniumenv/fixnativelibs.sed new file mode 100644 index 000000000000..76b330136b66 --- /dev/null +++ b/pkgs/development/mobile/titaniumenv/fixnativelibs.sed @@ -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()| diff --git a/pkgs/development/mobile/titaniumenv/fixselfruntimev8.sed b/pkgs/development/mobile/titaniumenv/fixselfruntimev8.sed new file mode 100644 index 000000000000..c849aaa611c6 --- /dev/null +++ b/pkgs/development/mobile/titaniumenv/fixselfruntimev8.sed @@ -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()| diff --git a/pkgs/development/mobile/titaniumenv/fixtiverify.sed b/pkgs/development/mobile/titaniumenv/fixtiverify.sed new file mode 100644 index 000000000000..8e1114769c89 --- /dev/null +++ b/pkgs/development/mobile/titaniumenv/fixtiverify.sed @@ -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()| diff --git a/pkgs/development/mobile/titaniumenv/titaniumsdk.nix b/pkgs/development/mobile/titaniumenv/titaniumsdk.nix new file mode 100644 index 000000000000..5e1943b1bdc0 --- /dev/null +++ b/pkgs/development/mobile/titaniumenv/titaniumsdk.nix @@ -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} + ''; +} diff --git a/pkgs/development/mobile/xcodeenv/build-app.nix b/pkgs/development/mobile/xcodeenv/build-app.nix new file mode 100644 index 000000000000..3ac9e4bb9581 --- /dev/null +++ b/pkgs/development/mobile/xcodeenv/build-app.nix @@ -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"; +} diff --git a/pkgs/development/mobile/xcodeenv/default.nix b/pkgs/development/mobile/xcodeenv/default.nix new file mode 100644 index 000000000000..7f834688e636 --- /dev/null +++ b/pkgs/development/mobile/xcodeenv/default.nix @@ -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; + }; +} diff --git a/pkgs/development/mobile/xcodeenv/simulate-app.nix b/pkgs/development/mobile/xcodeenv/simulate-app.nix new file mode 100644 index 000000000000..456732abe1f4 --- /dev/null +++ b/pkgs/development/mobile/xcodeenv/simulate-app.nix @@ -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 + ''; +} + diff --git a/pkgs/development/mobile/xcodeenv/xcodewrapper.nix b/pkgs/development/mobile/xcodeenv/xcodewrapper.nix new file mode 100644 index 000000000000..39804b1a248b --- /dev/null +++ b/pkgs/development/mobile/xcodeenv/xcodewrapper.nix @@ -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 + ''; +} diff --git a/pkgs/development/tools/haskell/hlint/default.nix b/pkgs/development/tools/haskell/hlint/default.nix index bb6d64e54f08..4cbd57a8c5f9 100644 --- a/pkgs/development/tools/haskell/hlint/default.nix +++ b/pkgs/development/tools/haskell/hlint/default.nix @@ -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 = [ diff --git a/pkgs/development/web/nodejs/default.nix b/pkgs/development/web/nodejs/default.nix index 48d1c3069932..533411b92de3 100644 --- a/pkgs/development/web/nodejs/default.nix +++ b/pkgs/development/web/nodejs/default.nix @@ -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 diff --git a/pkgs/os-specific/linux/cryptsetup/default.nix b/pkgs/os-specific/linux/cryptsetup/default.nix index 9e762f649041..6d612f8cdbdc 100644 --- a/pkgs/os-specific/linux/cryptsetup/default.nix +++ b/pkgs/os-specific/linux/cryptsetup/default.nix @@ -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"; diff --git a/pkgs/os-specific/linux/nvidia-x11/builder.sh b/pkgs/os-specific/linux/nvidia-x11/builder.sh index 124c8955e26d..98a03002fc2a 100755 --- a/pkgs/os-specific/linux/nvidia-x11/builder.sh +++ b/pkgs/os-specific/linux/nvidia-x11/builder.sh @@ -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.*.* diff --git a/pkgs/os-specific/linux/systemd/reexec.patch b/pkgs/os-specific/linux/systemd/0001-Make-systemctl-daemon-reexec-do-the-right-thing-on-N.patch similarity index 57% rename from pkgs/os-specific/linux/systemd/reexec.patch rename to pkgs/os-specific/linux/systemd/0001-Make-systemctl-daemon-reexec-do-the-right-thing-on-N.patch index ff13a44ca0b2..dda9bea7674c 100644 --- a/pkgs/os-specific/linux/systemd/reexec.patch +++ b/pkgs/os-specific/linux/systemd/0001-Make-systemctl-daemon-reexec-do-the-right-thing-on-N.patch @@ -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 +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 + diff --git a/pkgs/os-specific/linux/systemd/ignore-duplicates.patch b/pkgs/os-specific/linux/systemd/0002-Ignore-duplicate-paths-in-systemctl-start.patch similarity index 58% rename from pkgs/os-specific/linux/systemd/ignore-duplicates.patch rename to pkgs/os-specific/linux/systemd/0002-Ignore-duplicate-paths-in-systemctl-start.patch index 764eead54eac..14795e521112 100644 --- a/pkgs/os-specific/linux/systemd/ignore-duplicates.patch +++ b/pkgs/os-specific/linux/systemd/0002-Ignore-duplicate-paths-in-systemctl-start.patch @@ -1,10 +1,17 @@ -Ignore duplicate paths in "systemctl start". +From 2b0a9106d3aabb365af0cc34b595a1e697120f37 Mon Sep 17 00:00:00 2001 +From: Eelco Dolstra +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 + diff --git a/pkgs/os-specific/linux/systemd/crypt-devices-are-ready.patch b/pkgs/os-specific/linux/systemd/0003-Start-device-units-for-uninitialised-encrypted-devic.patch similarity index 58% rename from pkgs/os-specific/linux/systemd/crypt-devices-are-ready.patch rename to pkgs/os-specific/linux/systemd/0003-Start-device-units-for-uninitialised-encrypted-devic.patch index 4646ed0e44ca..63de58f97d5a 100644 --- a/pkgs/os-specific/linux/systemd/crypt-devices-are-ready.patch +++ b/pkgs/os-specific/linux/systemd/0003-Start-device-units-for-uninitialised-encrypted-devic.patch @@ -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 +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 + diff --git a/pkgs/os-specific/linux/systemd/0004-Set-switch-to-configuration-hints-for-some-units.patch b/pkgs/os-specific/linux/systemd/0004-Set-switch-to-configuration-hints-for-some-units.patch new file mode 100644 index 000000000000..f819d1640e83 --- /dev/null +++ b/pkgs/os-specific/linux/systemd/0004-Set-switch-to-configuration-hints-for-some-units.patch @@ -0,0 +1,74 @@ +From b40d8783f94666035baae567882c0d4be82cda01 Mon Sep 17 00:00:00 2001 +From: Eelco Dolstra +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 + diff --git a/pkgs/os-specific/linux/systemd/0005-sysinit.target-Drop-the-dependency-on-local-fs.targe.patch b/pkgs/os-specific/linux/systemd/0005-sysinit.target-Drop-the-dependency-on-local-fs.targe.patch new file mode 100644 index 000000000000..54009f2e7fc7 --- /dev/null +++ b/pkgs/os-specific/linux/systemd/0005-sysinit.target-Drop-the-dependency-on-local-fs.targe.patch @@ -0,0 +1,33 @@ +From c5c8ac3a0420fb42ba2f629368fd5bd6ea1e753b Mon Sep 17 00:00:00 2001 +From: Eelco Dolstra +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 + diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix index a207213d12d5..975a37fffce0 100644 --- a/pkgs/os-specific/linux/systemd/default.nix +++ b/pkgs/os-specific/linux/systemd/default.nix @@ -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\"" diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a1a717069034..a31172da5bf3 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -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 { }; diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index 85a672c350fe..9713f8f94dc6 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -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 {};