···179 </para>
180</listitem>
181182+<listitem>
183+ <para>
184+ The <literal>locate</literal> service no longer indexes the Nix store
185+ by default, preventing packages with potentially numerous versions from
186+ cluttering the output. Indexing the store can be activated by setting
187+ <literal>services.locate.includeStore = true</literal>.
188+ </para>
189+</listitem>
190+191</itemizedlist>
192</para>
193
···227 riemanntools = 203;
228 subsonic = 204;
229 riak = 205;
0230231 # When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
232···432 riemanntools = 203;
433 subsonic = 204;
434 riak = 205;
0435436 # When adding a gid, make sure it doesn't match an existing
437 # uid. Users and groups with the same name should have equal
···227 riemanntools = 203;
228 subsonic = 204;
229 riak = 205;
230+ shout = 206;
231232 # When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
233···433 riemanntools = 203;
434 subsonic = 204;
435 riak = 205;
436+ #shout = 206; #unused
437438 # When adding a gid, make sure it doesn't match an existing
439 # uid. Users and groups with the same name should have equal
···76 };
7778 kernelPCRs = mkOption {
79- default = "10,11";
80 type = types.string;
81 description = "PCR indices used in the TPM for kernel measurements.";
82 };
···76 };
7778 kernelPCRs = mkOption {
79+ default = "8,9,10,11,12";
80 type = types.string;
81 description = "PCR indices used in the TPM for kernel measurements.";
82 };
+84-62
nixos/modules/services/misc/gitit.nix
···89 homeDir = "/var/lib/gitit";
100011 gititShared = with cfg.haskellPackages; gitit + "/share/" + pkgs.stdenv.system + "-" + ghc.name + "/" + gitit.pname + "-" + gitit.version;
1213 gititWithPkgs = hsPkgs: extras: hsPkgs.ghcWithPackages (self: with self; [ gitit ] ++ (extras self));
···17 in writeScript "gitit" ''
18 #!${stdenv.shell}
19 cd $HOME
20- export PATH="${makeSearchPath "bin" (
21- [ git curl ] ++ (if cfg.pdfExport == "yes" then [texLiveFull] else [])
22- )}:$PATH";
23 export NIX_GHC="${env}/bin/ghc"
24 export NIX_GHCPKG="${env}/bin/ghc-pkg"
25 export NIX_GHC_DOCDIR="${env}/share/doc/ghc/html"
···27 ${env}/bin/gitit -f ${configFile}
28 '';
2930- gititOptions = let
31-32- yesNo = types.enum [ "yes" "no" ];
33-34- in {
3536 enable = mkOption {
37 type = types.bool;
···202 };
203204 showLhsBirdTracks = mkOption {
205- type = yesNo;
206- default = "no";
207 description = ''
208 Specifies whether to show Haskell code blocks in "bird style", with
209 "> " at the beginning of each line.
···283 };
284285 tableOfContents = mkOption {
286- type = yesNo;
287- default = "yes";
288 description = ''
289 Specifies whether to print a tables of contents (with links to
290 sections) on each wiki page.
···292 };
293294 plugins = mkOption {
295- type = types.path;
296 description = ''
297- Specifies a list of plugins to load. Plugins may be specified either
298- by their path or by their module name. If the plugin name starts
299 with Gitit.Plugin., gitit will assume that the plugin is an installed
300 module and will not try to find a source file.
301- Examples:
302- plugins: plugins/DotPlugin.hs, CapitalizeEmphasisPlugin.hs
303- plugins: plugins/DotPlugin
304- plugins: Gitit.Plugin.InterwikiLinks
305 '';
306 };
307308 useCache = mkOption {
309- type = yesNo;
310- default = "no";
311 description = ''
312 Specifies whether to cache rendered pages. Note that if use-feed is
313 selected, feeds will be cached regardless of the value of use-cache.
···338 };
339340 debugMode = mkOption {
341- type = yesNo;
342- default = "no";
343 description = "Causes debug information to be logged while gitit is running.";
344 };
345346 compressResponses = mkOption {
347- type = yesNo;
348- default = "yes";
349 description = "Specifies whether HTTP responses should be compressed.";
350 };
351···357 line of the file should contain two fields, separated by whitespace.
358 The first field is the mime type, the second is a file extension.
359 For example:
360- video/x-ms-wmx wmx
00361 If the file is not found, some simple defaults will be used.
362 '';
363 };
364365 useReCaptcha = mkOption {
366- type = yesNo;
367- default = "no";
368 description = ''
369- If "yes", causes gitit to use the reCAPTCHA service
370 (http://recaptcha.net) to prevent bots from creating accounts.
371 '';
372 };
···471 };
472473 useFeed = mkOption {
474- type = yesNo;
475- default = "no";
476 description = ''
477 Specifies whether an ATOM feed should be enabled (for the site and
478 for individual pages).
···484 default = null;
485 description = ''
486 The base URL of the wiki, to be used in constructing feed IDs and RPX
487- token_urls. Set this if use-feed is 'yes' or authentication-method
488 is 'rpx'.
489 '';
490 };
491492 absoluteUrls = mkOption {
493- type = yesNo;
494- default = "no";
495 description = ''
496 Make wikilinks absolute with respect to the base-url. So, for
497 example, in a wiki served at the base URL '/wiki', on a page
498 Sub/Page, the wikilink '[Cactus]()' will produce a link to
499- '/wiki/Cactus' if absolute-urls is 'yes', and a relative link to
500 'Cactus' (referring to '/wiki/Sub/Cactus') if absolute-urls is 'no'.
501 '';
502 };
···514 };
515516 pdfExport = mkOption {
517- type = yesNo;
518- default = "no";
519 description = ''
520- If yes, PDF will appear in export options. PDF will be created using
521 pdflatex, which must be installed and in the path. Note that PDF
522 exports create significant additional server load.
523 '';
···537 };
538539 xssSanitize = mkOption {
540- type = yesNo;
541- default = "yes";
542 description = ''
543- If yes, all HTML (including that produced by pandoc) is filtered
544 through xss-sanitize. Set to no only if you trust all of your users.
545 '';
546 };
···560 default-page-type: ${cfg.defaultPageType}
561 math: ${cfg.math}
562 mathjax-script: ${cfg.mathJaxScript}
563- show-lhs-bird-tracks: ${cfg.showLhsBirdTracks}
564 templates-dir: ${cfg.templatesDir}
565 log-file: ${cfg.logFile}
566 log-level: ${cfg.logLevel}
···568 no-delete: ${cfg.noDelete}
569 no-edit: ${cfg.noEdit}
570 default-summary: ${cfg.defaultSummary}
571- table-of-contents: ${cfg.tableOfContents}
572- plugins: ${cfg.plugins}
573- use-cache: ${cfg.useCache}
574 cache-dir: ${cfg.cacheDir}
575 max-upload-size: ${cfg.maxUploadSize}
576 max-page-size: ${cfg.maxPageSize}
577- debug-mode: ${cfg.debugMode}
578- compress-responses: ${cfg.compressResponses}
579 mime-types-file: ${cfg.mimeTypesFile}
580- use-recaptcha: ${cfg.useReCaptcha}
581 recaptcha-private-key: ${toString cfg.reCaptchaPrivateKey}
582 recaptcha-public-key: ${toString cfg.reCaptchaPublicKey}
583 access-question: ${cfg.accessQuestion}
···586 rpx-key: ${toString cfg.rpxKey}
587 mail-command: ${cfg.mailCommand}
588 reset-password-message: ${cfg.resetPasswordMessage}
589- use-feed: ${cfg.useFeed}
590 base-url: ${toString cfg.baseUrl}
591- absolute-urls: ${cfg.absoluteUrls}
592 feed-days: ${toString cfg.feedDays}
593 feed-refresh-time: ${toString cfg.feedRefreshTime}
594- pdf-export: ${cfg.pdfExport}
595 pandoc-user-data: ${toString cfg.pandocUserData}
596- xss-sanitize: ${cfg.xssSanitize}
597 '';
598599in
···608 haskellPackages = mkDefault pkgs.haskellPackages;
609 staticDir = gititShared + "/data/static";
610 templatesDir = gititShared + "/data/templates";
611- plugins = gititShared + "/plugins/Dot.hs";
612 };
613614 users.extraUsers.gitit = {
···628 description = "Git and Pandoc Powered Wiki";
629 after = [ "network.target" ];
630 wantedBy = [ "multi-user.target" ];
00000631632- preStart = with cfg; ''
000633 chown ${uid}:${gid} -R ${homeDir}
634 for dir in ${repositoryPath} ${staticDir} ${templatesDir} ${cacheDir}
635 do
···641 fi
642 done
643 cd ${repositoryPath}
644- if [ ! -d .git ]
645- then
646- ${pkgs.git}/bin/git init
647- ${pkgs.git}/bin/git config user.email "gitit@${config.networking.hostName}"
648- ${pkgs.git}/bin/git config user.name "gitit"
649- chown ${uid}:${gid} -R {repositoryPath}
650- fi
651- cd -
000000000000000000000652 '';
653654 serviceConfig = {
···89 homeDir = "/var/lib/gitit";
1011+ toYesNo = b: if b then "yes" else "no";
12+13 gititShared = with cfg.haskellPackages; gitit + "/share/" + pkgs.stdenv.system + "-" + ghc.name + "/" + gitit.pname + "-" + gitit.version;
1415 gititWithPkgs = hsPkgs: extras: hsPkgs.ghcWithPackages (self: with self; [ gitit ] ++ (extras self));
···19 in writeScript "gitit" ''
20 #!${stdenv.shell}
21 cd $HOME
00022 export NIX_GHC="${env}/bin/ghc"
23 export NIX_GHCPKG="${env}/bin/ghc-pkg"
24 export NIX_GHC_DOCDIR="${env}/share/doc/ghc/html"
···26 ${env}/bin/gitit -f ${configFile}
27 '';
2829+ gititOptions = {
00003031 enable = mkOption {
32 type = types.bool;
···197 };
198199 showLhsBirdTracks = mkOption {
200+ type = types.bool;
201+ default = false;
202 description = ''
203 Specifies whether to show Haskell code blocks in "bird style", with
204 "> " at the beginning of each line.
···278 };
279280 tableOfContents = mkOption {
281+ type = types.bool;
282+ default = true;
283 description = ''
284 Specifies whether to print a tables of contents (with links to
285 sections) on each wiki page.
···287 };
288289 plugins = mkOption {
290+ type = with types; listOf str;
291 description = ''
292+ Specifies a list of plugins to load. Plugins may be specified either
293+ by their path or by their module name. If the plugin name starts
294 with Gitit.Plugin., gitit will assume that the plugin is an installed
295 module and will not try to find a source file.
0000296 '';
297 };
298299 useCache = mkOption {
300+ type = types.bool;
301+ default = false;
302 description = ''
303 Specifies whether to cache rendered pages. Note that if use-feed is
304 selected, feeds will be cached regardless of the value of use-cache.
···329 };
330331 debugMode = mkOption {
332+ type = types.bool;
333+ default = false;
334 description = "Causes debug information to be logged while gitit is running.";
335 };
336337 compressResponses = mkOption {
338+ type = types.bool;
339+ default = true;
340 description = "Specifies whether HTTP responses should be compressed.";
341 };
342···348 line of the file should contain two fields, separated by whitespace.
349 The first field is the mime type, the second is a file extension.
350 For example:
351+<programlisting>
352+video/x-ms-wmx wmx
353+</programlisting>
354 If the file is not found, some simple defaults will be used.
355 '';
356 };
357358 useReCaptcha = mkOption {
359+ type = types.bool;
360+ default = false;
361 description = ''
362+ If true, causes gitit to use the reCAPTCHA service
363 (http://recaptcha.net) to prevent bots from creating accounts.
364 '';
365 };
···464 };
465466 useFeed = mkOption {
467+ type = types.bool;
468+ default = false;
469 description = ''
470 Specifies whether an ATOM feed should be enabled (for the site and
471 for individual pages).
···477 default = null;
478 description = ''
479 The base URL of the wiki, to be used in constructing feed IDs and RPX
480+ token_urls. Set this if useFeed is false or authentication-method
481 is 'rpx'.
482 '';
483 };
484485 absoluteUrls = mkOption {
486+ type = types.bool;
487+ default = false;
488 description = ''
489 Make wikilinks absolute with respect to the base-url. So, for
490 example, in a wiki served at the base URL '/wiki', on a page
491 Sub/Page, the wikilink '[Cactus]()' will produce a link to
492+ '/wiki/Cactus' if absoluteUrls is true, and a relative link to
493 'Cactus' (referring to '/wiki/Sub/Cactus') if absolute-urls is 'no'.
494 '';
495 };
···507 };
508509 pdfExport = mkOption {
510+ type = types.bool;
511+ default = false;
512 description = ''
513+ If true, PDF will appear in export options. PDF will be created using
514 pdflatex, which must be installed and in the path. Note that PDF
515 exports create significant additional server load.
516 '';
···530 };
531532 xssSanitize = mkOption {
533+ type = types.bool;
534+ default = true;
535 description = ''
536+ If true, all HTML (including that produced by pandoc) is filtered
537 through xss-sanitize. Set to no only if you trust all of your users.
538 '';
539 };
···553 default-page-type: ${cfg.defaultPageType}
554 math: ${cfg.math}
555 mathjax-script: ${cfg.mathJaxScript}
556+ show-lhs-bird-tracks: ${toYesNo cfg.showLhsBirdTracks}
557 templates-dir: ${cfg.templatesDir}
558 log-file: ${cfg.logFile}
559 log-level: ${cfg.logLevel}
···561 no-delete: ${cfg.noDelete}
562 no-edit: ${cfg.noEdit}
563 default-summary: ${cfg.defaultSummary}
564+ table-of-contents: ${toYesNo cfg.tableOfContents}
565+ plugins: ${concatStringsSep "," cfg.plugins}
566+ use-cache: ${toYesNo cfg.useCache}
567 cache-dir: ${cfg.cacheDir}
568 max-upload-size: ${cfg.maxUploadSize}
569 max-page-size: ${cfg.maxPageSize}
570+ debug-mode: ${toYesNo cfg.debugMode}
571+ compress-responses: ${toYesNo cfg.compressResponses}
572 mime-types-file: ${cfg.mimeTypesFile}
573+ use-recaptcha: ${toYesNo cfg.useReCaptcha}
574 recaptcha-private-key: ${toString cfg.reCaptchaPrivateKey}
575 recaptcha-public-key: ${toString cfg.reCaptchaPublicKey}
576 access-question: ${cfg.accessQuestion}
···579 rpx-key: ${toString cfg.rpxKey}
580 mail-command: ${cfg.mailCommand}
581 reset-password-message: ${cfg.resetPasswordMessage}
582+ use-feed: ${toYesNo cfg.useFeed}
583 base-url: ${toString cfg.baseUrl}
584+ absolute-urls: ${toYesNo cfg.absoluteUrls}
585 feed-days: ${toString cfg.feedDays}
586 feed-refresh-time: ${toString cfg.feedRefreshTime}
587+ pdf-export: ${toYesNo cfg.pdfExport}
588 pandoc-user-data: ${toString cfg.pandocUserData}
589+ xss-sanitize: ${toYesNo cfg.xssSanitize}
590 '';
591592in
···601 haskellPackages = mkDefault pkgs.haskellPackages;
602 staticDir = gititShared + "/data/static";
603 templatesDir = gititShared + "/data/templates";
604+ plugins = [ ];
605 };
606607 users.extraUsers.gitit = {
···621 description = "Git and Pandoc Powered Wiki";
622 after = [ "network.target" ];
623 wantedBy = [ "multi-user.target" ];
624+ path = with pkgs; [ curl ]
625+ ++ optional cfg.pdfExport texLiveFull
626+ ++ optional (cfg.repositoryType == "darcs") darcs
627+ ++ optional (cfg.repositoryType == "mercurial") mercurial
628+ ++ optional (cfg.repositoryType == "git") git;
629630+ preStart = let
631+ gm = "gitit@${config.networking.hostName}";
632+ in
633+ with cfg; ''
634 chown ${uid}:${gid} -R ${homeDir}
635 for dir in ${repositoryPath} ${staticDir} ${templatesDir} ${cacheDir}
636 do
···642 fi
643 done
644 cd ${repositoryPath}
645+ ${
646+ if repositoryType == "darcs" then
647+ ''
648+ if [ ! -d _darcs ]
649+ then
650+ ${pkgs.darcs}/bin/darcs initialize
651+ echo "${gm}" > _darcs/prefs/email
652+ ''
653+ else if repositoryType == "mercurial" then
654+ ''
655+ if [ ! -d .hg ]
656+ then
657+ ${pkgs.mercurial}/bin/hg init
658+ cat >> .hg/hgrc <<NAMED
659+[ui]
660+username = gitit ${gm}
661+NAMED
662+ ''
663+ else
664+ ''
665+ if [ ! -d .git ]
666+ then
667+ ${pkgs.git}/bin/git init
668+ ${pkgs.git}/bin/git config user.email "${gm}"
669+ ${pkgs.git}/bin/git config user.name "gitit"
670+ ''}
671+ chown ${uid}:${gid} -R ${repositoryPath}
672+ fi
673+ cd -
674 '';
675676 serviceConfig = {
···89 # Annoyingly, these files are updated without a change in URL. This means that
10 # builds will start failing every month or so, until the hashes are updated.
11- version = "2015-07-30";
12in
13stdenv.mkDerivation {
14 name = "geolite-legacy-${version}";
···27 "0j5dq06pjrh6d94wczsg6qdys4v164nvp2a7qqrg8w4knh94qp6n";
28 srcGeoIPASNum = fetchDB
29 "asnum/GeoIPASNum.dat.gz" "GeoIPASNum.dat.gz"
30- "16lfazhyhwmh8fyd7pxzwxp5sxszbqw4xdx3avv78hglhyb2ijkw";
31 srcGeoIPASNumv6 = fetchDB
32 "asnum/GeoIPASNumv6.dat.gz" "GeoIPASNumv6.dat.gz"
33- "16jd6f2pwy8616jb78x8j6zda7h0p1bp786y86rq3ipgcw6g0jgn";
3435 meta = with stdenv.lib; {
36 inherit version;
···89 # Annoyingly, these files are updated without a change in URL. This means that
10 # builds will start failing every month or so, until the hashes are updated.
11+ version = "2015-08-03";
12in
13stdenv.mkDerivation {
14 name = "geolite-legacy-${version}";
···27 "0j5dq06pjrh6d94wczsg6qdys4v164nvp2a7qqrg8w4knh94qp6n";
28 srcGeoIPASNum = fetchDB
29 "asnum/GeoIPASNum.dat.gz" "GeoIPASNum.dat.gz"
30+ "04qlh6zr8m5qxl2gcysb721bqlnqrxhngh128zj1w8rhqckjndgj";
31 srcGeoIPASNumv6 = fetchDB
32 "asnum/GeoIPASNumv6.dat.gz" "GeoIPASNumv6.dat.gz"
33+ "06p9wnypnffsmqg5bszwygb73in4gc0h5l26wk0s43pdaldrdrx0";
3435 meta = with stdenv.lib; {
36 inherit version;
+1-1
pkgs/desktops/gnome-3/3.16/default.nix
···53 gegl_0_3 = pkgs.gegl_0_3.override { inherit gtk; };
5455 version = "3.16";
56- maintainers = with pkgs.lib.maintainers; [ lethalman ];
5758# Simplify the nixos module and gnome packages
59 defaultIconTheme = adwaita-icon-theme;
···53 gegl_0_3 = pkgs.gegl_0_3.override { inherit gtk; };
5455 version = "3.16";
56+ maintainers = with pkgs.lib.maintainers; [ lethalman jgeerds ];
5758# Simplify the nixos module and gnome packages
59 defaultIconTheme = adwaita-icon-theme;
···1-{ stdenv, fetchurl, gupnp, pkgconfig }:
23stdenv.mkDerivation rec {
4 name = "gupnp-av-${version}";
5 majorVersion = "0.12";
6- version = "${majorVersion}.4";
07 src = fetchurl {
8- url = "mirror://gnome/sources/gupnp-av/${majorVersion}/gupnp-av-${version}.tar.xz";
9- sha256 = "0nvsvpiyfslz54j4hjh2gsdjkbi2qj2f4k0aw8s7f05kibprr2jl";
10 };
1112- buildInputs = [ gupnp pkgconfig ];
01314 meta = {
15 homepage = http://gupnp.org/;
16 description = "A collection of helpers for building AV (audio/video) applications using GUPnP";
17- longDescription = "GUPnP implements the UPnP specification: resource announcement and discovery, description, control, event notification, and presentation (GUPnP includes basic web server functionality through libsoup). GUPnP does not include helpers for construction or control of specific standardized resources (e.g. MediaServer); this is left for higher level libraries utilizing the GUPnP framework.";
18 license = stdenv.lib.licenses.gpl2;
19 platforms = stdenv.lib.platforms.linux;
20 };
21-}
···1+{ stdenv, fetchurl, pkgconfig, gupnp, glib, libxml2 }:
23stdenv.mkDerivation rec {
4 name = "gupnp-av-${version}";
5 majorVersion = "0.12";
6+ version = "${majorVersion}.7";
7+8 src = fetchurl {
9+ url = "mirror://gnome/sources/gupnp-av/${majorVersion}/${name}.tar.xz";
10+ sha256 = "35e775bc4f7801d65dcb710905a6b8420ce751a239b5651e6d830615dc906ea8";
11 };
1213+ nativeBuildInputs = [ pkgconfig ];
14+ buildInputs = [ gupnp glib libxml2 ];
1516 meta = {
17 homepage = http://gupnp.org/;
18 description = "A collection of helpers for building AV (audio/video) applications using GUPnP";
019 license = stdenv.lib.licenses.gpl2;
20 platforms = stdenv.lib.platforms.linux;
21 };
22+}
···1diff -ruN a/src/config.py b/src/config.py
2---- a/src/config.py 2014-03-20 22:27:05.000000000 +0100
3-+++ b/src/config.py 2015-07-10 21:24:37.583136078 +0200
4-@@ -18,6 +18,7 @@
506 import os
7- import logging
8+import stat
00910- from configparser import RawConfigParser, NoOptionError, NoSectionError
11- from os import environ, makedirs, path, remove
12-@@ -279,6 +280,13 @@
13- copy2(default, options.filename)
14- elif path.isfile(other):
15- copy2(other, options.filename)
16+
17-+ # Inside the nixstore, the reference file is readonly, so is the copy.
18-+ # Make it writable by the user who just created it.
19-+ if os.path.exists(options.filename):
20-+ os.chmod(options.filename,
21-+ os.stat(options.filename).st_mode | stat.S_IWUSR)
22+
23- firstrun = True
02425- try:
···1diff -ruN a/src/config.py b/src/config.py
2+--- a/src/config.py 2015-07-31 19:35:37.000000000 +0000
3++++ b/src/config.py 2015-08-03 09:23:34.322098081 +0000
4+@@ -14,6 +14,7 @@
56+ import logging.config
7 import os
08+import stat
9+ import sys
10+ import pkg_resources
1112+@@ -563,6 +564,13 @@
13+ copy2(default, options.filename)
14+ elif path.isfile(other):
15+ copy2(other, options.filename)
0016+
17++ # Inside the nixstore, the reference file is readonly, so is the copy.
18++ # Make it writable by the user who just created it.
19++ if os.path.exists(options.filename):
20++ os.chmod(options.filename,
21++ os.stat(options.filename).st_mode | stat.S_IWUSR)
22+
23+ global firstrun
24+ firstrun = True
250