···605605-->
606606607607 <para>
608608- In a case a contributor leaves definitively the Nix community, he should
608608+ In a case a contributor definitively leaves the Nix community, they should
609609 create an issue or post on
610610 <link
611611 xlink:href="https://discourse.nixos.org">Discourse</link> with
612612- references of packages and modules he maintains so the maintainership can be
612612+ references of packages and modules they maintain so the maintainership can be
613613 taken over by other contributors.
614614 </para>
615615 </section>
+22-2
doc/style.css
···99body
1010{
1111 font-family: "Nimbus Sans L", sans-serif;
1212+ font-size: 1em;
1213 background: white;
1314 margin: 2em 1em 2em 1em;
1415}
···2627h2 /* chapters, appendices, subtitle */
2728{
2829 font-size: 180%;
3030+}
3131+3232+div.book
3333+{
3434+ text-align: center;
3535+}
3636+3737+div.book > div
3838+{
3939+ /*
4040+ * based on https://medium.com/@zkareemz/golden-ratio-62b3b6d4282a
4141+ * we do 70 characters per line to fit code listings better
4242+ * 70 * (font-size / 1.618)
4343+ * expression for emacs:
4444+ * (* 70 (/ 1 1.618))
4545+ */
4646+ max-width: 43.2em;
4747+ text-align: left;
4848+ margin: auto;
2949}
30503151/* Extra space between chapters, appendices. */
···102122{
103123 border: 1px solid #b0b0b0;
104124 padding: 3px 3px;
105105- margin-left: 1.5em;
106106- margin-right: 1.5em;
125125+ margin-left: 0.5em;
126126+ margin-right: 0.5em;
107127108128 background: #f4f4f8;
109129 font-family: monospace;
···4141 let x = builtins.parseDrvName name; in "${x.name}-${suffix}-${x.version}");
424243434444- /* Apply a function to each derivation and only to derivations in an attrset
4444+ /* Apply a function to each derivation and only to derivations in an attrset.
4545 */
4646 mapDerivationAttrset = f: set: lib.mapAttrs (name: pkg: if lib.isDerivation pkg then (f pkg) else pkg) set;
47474848+ /* Set the nix-env priority of the package.
4949+ */
5050+ setPrio = priority: addMetaAttrs { inherit priority; };
48514952 /* Decrease the nix-env priority of the package, i.e., other
5053 versions/variants of the package will be preferred.
5154 */
5252- lowPrio = drv: addMetaAttrs { priority = 10; } drv;
5353-5555+ lowPrio = setPrio 10;
54565557 /* Apply lowPrio to an attrset with derivations
5658 */
···6062 /* Increase the nix-env priority of the package, i.e., this
6163 version/variant of the package will be preferred.
6264 */
6363- hiPrio = drv: addMetaAttrs { priority = -10; } drv;
6464-6565+ hiPrio = setPrio (-10);
65666667 /* Apply hiPrio to an attrset with derivations
6768 */
+2-2
nixos/doc/manual/configuration/x-windows.xml
···3535 </para>
3636 <para>
3737 NixOS’s default <emphasis>display manager</emphasis> (the program that
3838- provides a graphical login prompt and manages the X server) is SLiM. You can
3838+ provides a graphical login prompt and manages the X server) is LightDM. You can
3939 select an alternative one by picking one of the following lines:
4040<programlisting>
4141<xref linkend="opt-services.xserver.displayManager.sddm.enable"/> = true;
4242-<xref linkend="opt-services.xserver.displayManager.lightdm.enable"/> = true;
4242+<xref linkend="opt-services.xserver.displayManager.slim.enable"/> = true;
4343</programlisting>
4444 </para>
4545 <para>
+1-1
nixos/doc/manual/installation/installing-usb.xml
···2323[..]
2424$ diskutil unmountDisk diskN
2525Unmount of all volumes on diskN was successful
2626-$ sudo dd bs=1m if=nix.iso of=/dev/rdiskN
2626+$ sudo dd bs=1000000 if=nix.iso of=/dev/rdiskN
2727</programlisting>
2828 Using the 'raw' <command>rdiskN</command> device instead of
2929 <command>diskN</command> completes in minutes instead of hours. After
···7777 Shared folders can be given a name and a path in the host system in the
7878 VirtualBox settings (Machine / Settings / Shared Folders, then click on the
7979 "Add" icon). Add the following to the
8080- <literal>/etc/nixos/configuration.nix</literal> to auto-mount them:
8080+ <literal>/etc/nixos/configuration.nix</literal> to auto-mount them. If you
8181+ do not add <literal>"nofail"</literal>, the system will no boot properly.
8282+ The same goes for disabling <literal>rngd</literal> which is normally used
8383+ to get randomness but this does not work in virtual machines.
8184 </para>
82858386<programlisting>
8487{ config, pkgs, ...} :
8588{
8989+ security.rngd.enable = false; // otherwise vm will not boot
8690 ...
87918892 fileSystems."/virtualboxshare" = {
8993 fsType = "vboxsf";
9094 device = "nameofthesharedfolder";
9191- options = [ "rw" ];
9595+ options = [ "rw" "nofail" ];
9296 };
9397}
9498</programlisting>
+4-2
nixos/modules/misc/ids.nix
···306306 rslsync = 279;
307307 minio = 280;
308308 kanboard = 281;
309309- pykms = 282;
309309+ # pykms = 282; # DynamicUser = true
310310 kodi = 283;
311311 restya-board = 284;
312312 mighttpd2 = 285;
···338338 minetest = 311;
339339 rss2email = 312;
340340 cockroachdb = 313;
341341+ zoneminder = 314;
341342342343 # When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
343344···604605 rslsync = 279;
605606 minio = 280;
606607 kanboard = 281;
607607- pykms = 282;
608608+ # pykms = 282; # DynamicUser = true
608609 kodi = 283;
609610 restya-board = 284;
610611 mighttpd2 = 285;
···636637 minetest = 311;
637638 rss2email = 312;
638639 cockroachdb = 313;
640640+ zoneminder = 314;
639641640642 # When adding a gid, make sure it doesn't match an existing
641643 # uid. Users and groups with the same name should have equal
···77# <organisation>/<repo> - include only the named repository.
8899# include all terraform-providers
1010-terraform-providers terraform-provider- terraform-provider-\\(azure-classic\\|scaffolding\\|google-beta\\|skytap\\)
1010+terraform-providers terraform-provider- terraform-provider-\\(azure-classic\\|scaffolding\\)
11111212# include terraform-provider-matchbox
1313coreos/terraform-provider-matchbox
···11+diff --git a/src/sage/doctest/forker.py b/src/sage/doctest/forker.py
22+index 02e18e67e7..2ebf6eb35f 100644
33+--- a/src/sage/doctest/forker.py
44++++ b/src/sage/doctest/forker.py
55+@@ -1075,6 +1075,14 @@ class SageDocTestRunner(doctest.DocTestRunner, object):
66+ sage: set(ex2.predecessors) == set([ex0,ex1])
77+ True
88+ """
99++
1010++ # Fix ECL dir race conditions by using a separate dir for each process
1111++ # (https://trac.sagemath.org/ticket/26968)
1212++ os.environ['MAXIMA_USERDIR'] = "{}/sage-maxima-{}".format(
1313++ tempfile.gettempdir(),
1414++ os.getpid()
1515++ )
1616++
1717+ if isinstance(globs, RecordingDict):
1818+ globs.start()
1919+ example.sequence_number = len(self.history)
+3
pkgs/applications/science/math/sage/sage-src.nix
···4646 # tests) are also run. That is necessary to test dochtml individually. See
4747 # https://trac.sagemath.org/ticket/26110 for an upstream discussion.
4848 ./patches/Only-test-py2-py3-optional-tests-when-all-of-sage-is.patch
4949+5050+ # Fixes a potential race condition which can lead to transient doctest failures.
5151+ ./patches/fix-ecl-race.patch
4952 ];
50535154 # Patches needed because of package updates. We could just pin the versions of
···39394040 # Hack: The following package is a core package of GHCJS. If we don't declare
4141 # it, then hackage2nix will generate a Hackage database where all dependants
4242- # of this library are maked as "broken".
4242+ # of this library are marked as "broken".
4343 - ghcjs-base-0
44444545default-package-overrides:
···158158 # to be adapted
159159 zfsStable = common {
160160 # comment/uncomment if breaking kernel versions are known
161161- # incompatibleKernelVersion = "4.19";
161161+ incompatibleKernelVersion = "4.20";
162162163163 # this package should point to the latest release.
164164 version = "0.7.12";
+17-32
pkgs/servers/ftp/vsftpd/default.nix
···11-{ stdenv, fetchurl, openssl, sslEnable ? false, libcap, pam }:
11+{ stdenv, fetchurl, libcap, openssl, pam }:
2233stdenv.mkDerivation rec {
44 name = "vsftpd-3.0.3";
···88 sha256 = "1xsyjn68k3fgm2incpb3lz2nikffl9by2safp994i272wvv2nkcx";
99 };
10101111+ buildInputs = [ libcap openssl pam ];
1212+1113 patches = [ ./CVE-2015-1419.patch ];
12141313- preConfigure = stdenv.lib.optionalString sslEnable ''
1414- echo "Will enable SSL"
1515+ postPatch = ''
1516 sed -i "/VSF_BUILD_SSL/s/^#undef/#define/" builddefs.h
1616- '';
1717+1818+ substituteInPlace Makefile \
1919+ --replace -dirafter "" \
2020+ --replace /usr $out \
2121+ --replace /etc $out/etc
17221818- # The gcc-wrappers use -idirafter for glibc, and vsftpd also, and
1919- # their dummyinc come before those of glibc, then the build works bad.
2020- prePatch = ''
2121- sed -i -e 's/-idirafter.*//' Makefile
2323+ mkdir -p $out/sbin $out/man/man{5,8}
2224 '';
23252424- preBuild =
2525- let
2626- sslLibs = if sslEnable then "-lcrypt -lssl -lcrypto" else "";
2727- in ''
2828- makeFlagsArray=( "LIBS=${sslLibs} -lpam -lcap -fstack-protector" )
2929- '';
2626+ NIX_LDFLAGS = "-lcrypt -lssl -lcrypto -lpam -lcap";
30273131- # It won't link without this flag, used in CFLAGS
3232-3333- buildInputs = [ openssl libcap pam ];
3434-3535- installPhase = ''
3636- mkdir -pv $out/sbin
3737- install -v -m 755 vsftpd $out/sbin/vsftpd
3838-3939- mkdir -pv $out/share/man/man{5,8}
4040- install -v -m 644 vsftpd.8 $out/share/man/man8/vsftpd.8
4141- install -v -m 644 vsftpd.conf.5 $out/share/man/man5/vsftpd.conf.5
4242-4343- mkdir -pv $out/etc/xinetd.d
4444- install -v -m 644 xinetd.d/vsftpd $out/etc/xinetd.d/vsftpd
4545- '';
2828+ enableParallelBuilding = true;
46294747- meta = {
4848- platforms = stdenv.lib.platforms.linux;
4949- license = stdenv.lib.licenses.gpl2;
3030+ meta = with stdenv.lib; {
3131+ description = "A very secure FTP daemon";
3232+ license = licenses.gpl2;
3333+ maintainers = with maintainers; [ peterhoeg ];
3434+ platforms = platforms.linux;
5035 };
5136}
···11+diff --git a/scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm.in b/scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm.in
22+index fa7b86079..c9d3c6f6c 100644
33+--- a/scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm.in
44++++ b/scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm.in
55+@@ -877,7 +877,7 @@ our @options = (
66+ },
77+ {
88+ name => 'ZM_HTTP_VERSION',
99+- default => '1.0',
1010++ default => '1.1',
1111+ description => 'The version of HTTP that ZoneMinder will use to connect',
1212+ help => q`
1313+ ZoneMinder can communicate with network cameras using either of
+192
pkgs/servers/zoneminder/default.nix
···11+{ stdenv, lib, fetchFromGitHub, fetchurl, cmake, makeWrapper, pkgconfig
22+, curl, ffmpeg, glib, libjpeg, libselinux, libsepol, mp4v2, mysql, nettools, pcre, perl, perlPackages
33+, polkit, utillinuxMinimal, x264, zlib
44+, avahi, dbus, gettext, git, gnutar, gzip, bzip2, libiconv, openssl, python
55+, coreutils, procps, psmisc }:
66+77+# NOTES:
88+#
99+# 1. ZM_CONFIG_DIR is set to $out/etc/zoneminder as the .conf file distributed
1010+# by upstream contains defaults and is not supposed to be edited so it is fine
1111+# to keep it read-only.
1212+#
1313+# 2. ZM_CONFIG_SUBDIR is where we place our configuration from the NixOS module
1414+# but as the installer will try to put files there, we patch Config.pm after the
1515+# install.
1616+#
1717+# 3. ZoneMinder is run with -T passed to the perl interpreter which makes perl
1818+# ignore PERL5LIB. We therefore have to do the substitution into -I parameters
1919+# ourselves which results in ugly wrappers.
2020+#
2121+# 4. The makefile for the perl modules needs patching to put things into the
2222+# right place. That also means we have to not run "make install" for them.
2323+#
2424+# 5. In principal the various ZM_xx variables should be overridable from the
2525+# config file but some of them are baked into the perl scripts, so we *have* to
2626+# set them here instead of in the configuration in the NixOS module.
2727+#
2828+# 6. I am no PolicyKit expert but the .policy file looks fishy:
2929+# a. The user needs to be known at build-time so we should probably throw
3030+# upstream's policy file away and generate it from the NixOS module
3131+# b. I *think* we may have to substitute the store paths with
3232+# /run/current-system/sw/bin paths for it to work.
3333+#
3434+# 7. we manually fix up the perl paths in the scripts as fixupPhase will only
3535+# handle pkexec and not perl if both are present.
3636+#
3737+# 8. There are several perl modules needed at runtime which are not checked when
3838+# building so if a new version stops working, check if there is a missing
3939+# dependency by running the failing component manually.
4040+#
4141+# 9. Parts of the web UI has a hardcoded /zm path so we create a symlink to work
4242+# around it.
4343+4444+let
4545+ modules = [
4646+ {
4747+ path = "web/api/app/Plugin/Crud";
4848+ src = fetchFromGitHub {
4949+ owner = "ZoneMinder";
5050+ repo = "crud";
5151+ rev = "3.1.0-zm";
5252+ sha256 = "061avzyml7mla4hlx057fm8a9yjh6m6qslgyzn74cv5p2y7f463l";
5353+ };
5454+ }
5555+ {
5656+ path = "web/api/app/Plugin/CakePHP-Enum-Behavior";
5757+ src = fetchFromGitHub {
5858+ owner = "ZoneMinder";
5959+ repo = "CakePHP-Enum-Behavior";
6060+ rev = "1.0-zm";
6161+ sha256 = "0zsi6s8xymb183kx3szspbrwfjqcgga7786zqvydy6hc8c909cgx";
6262+ };
6363+ }
6464+ ];
6565+6666+ addons = [
6767+ {
6868+ path = "scripts/ZoneMinder/lib/ZoneMinder/Control/Xiaomi.pm";
6969+ src = fetchurl {
7070+ url = "https://gist.githubusercontent.com/joshstrange/73a2f24dfaf5cd5b470024096ce2680f/raw/e964270c5cdbf95e5b7f214f7f0fc6113791530e/Xiaomi.pm";
7171+ sha256 = "04n1ap8fx66xfl9q9rypj48pzbgzikq0gisfsfm8wdsmflarz43v";
7272+ };
7373+ }
7474+ ];
7575+7676+ user = "zoneminder";
7777+ dirName = "zoneminder";
7878+ perlBin = "${perl}/bin/perl";
7979+8080+in stdenv.mkDerivation rec {
8181+ name = "zoneminder-${version}";
8282+ version = "1.32.3";
8383+8484+ src = fetchFromGitHub {
8585+ owner = "ZoneMinder";
8686+ repo = "zoneminder";
8787+ rev = version;
8888+ sha256 = "1sx2fn99861zh0gp8g53ynr1q6yfmymxamn82y54jqj6nv475njz";
8989+ };
9090+9191+ patches = [
9292+ ./default-to-http-1dot1.patch
9393+ ];
9494+9595+ postPatch = ''
9696+ ${lib.concatStringsSep "\n" (map (e: ''
9797+ rm -rf ${e.path}/*
9898+ cp -r ${e.src}/* ${e.path}/
9999+ '') modules)}
100100+101101+ rm -rf web/api/lib/Cake/Test
102102+103103+ ${lib.concatStringsSep "\n" (map (e: ''
104104+ cp ${e.src} ${e.path}
105105+ '') addons)}
106106+107107+ for d in scripts/ZoneMinder onvif/{modules,proxy} ; do
108108+ substituteInPlace $d/CMakeLists.txt \
109109+ --replace 'DESTDIR="''${CMAKE_CURRENT_BINARY_DIR}/output"' "PREFIX=$out INSTALLDIRS=site"
110110+ sed -i '/^install/d' $d/CMakeLists.txt
111111+ done
112112+113113+ substituteInPlace misc/CMakeLists.txt \
114114+ --replace '"''${PC_POLKIT_PREFIX}/''${CMAKE_INSTALL_DATAROOTDIR}' "\"$out/share"
115115+116116+ for f in misc/*.policy.in \
117117+ scripts/*.pl* \
118118+ scripts/ZoneMinder/lib/ZoneMinder/Memory.pm.in ; do
119119+ substituteInPlace $f \
120120+ --replace '/usr/bin/perl' '${perlBin}' \
121121+ --replace '/bin:/usr/bin' "$out/bin:${lib.makeBinPath [ coreutils procps psmisc ]}"
122122+ done
123123+124124+ substituteInPlace scripts/zmdbbackup.in \
125125+ --replace /usr/bin/mysqldump ${mysql}/bin/mysqldump
126126+127127+ for f in scripts/ZoneMinder/lib/ZoneMinder/Config.pm.in \
128128+ scripts/zmupdate.pl.in \
129129+ src/zm_config.h.in \
130130+ web/api/app/Config/bootstrap.php.in \
131131+ web/includes/config.php.in ; do
132132+ substituteInPlace $f --replace @ZM_CONFIG_SUBDIR@ /etc/zoneminder
133133+ done
134134+135135+ for f in includes/Event.php views/image.php skins/classic/views/image-ffmpeg.php ; do
136136+ substituteInPlace web/$f \
137137+ --replace "'ffmpeg " "'${ffmpeg}/bin/ffmpeg "
138138+ done
139139+ '';
140140+141141+ buildInputs = [
142142+ curl ffmpeg glib libjpeg libselinux libsepol mp4v2 mysql pcre perl polkit x264 zlib
143143+ utillinuxMinimal # for libmount
144144+ ] ++ (with perlPackages; [
145145+ DateManip DBI DBDmysql LWP SysMmap
146146+ # runtime dependencies not checked at build-time
147147+ JSONMaybeXS LWPProtocolHttps NumberBytesHuman SysCPU SysMemInfo TimeDate
148148+ ]);
149149+150150+ nativeBuildInputs = [ cmake makeWrapper pkgconfig ];
151151+152152+ enableParallelBuilding = true;
153153+154154+ cmakeFlags = [
155155+ "-DWITH_SYSTEMD=ON"
156156+ "-DZM_LOGDIR=/var/log/${dirName}"
157157+ "-DZM_RUNDIR=/run/${dirName}"
158158+ "-DZM_SOCKDIR=/run/${dirName}"
159159+ "-DZM_TMPDIR=/tmp/${dirName}"
160160+ "-DZM_CONFIG_DIR=${placeholder "out"}/etc/zoneminder"
161161+ "-DZM_WEB_USER=${user}"
162162+ "-DZM_WEB_GROUP=${user}"
163163+ ];
164164+165165+ passthru = { inherit dirName; };
166166+167167+ postInstall = ''
168168+ PERL5LIB="$PERL5LIB''${PERL5LIB:+:}$out/${perl.libPrefix}"
169169+170170+ perlFlags="-wT"
171171+ for i in $(IFS=$'\n'; echo $PERL5LIB | tr ':' "\n" | sort -u); do
172172+ perlFlags="$perlFlags -I$i"
173173+ done
174174+175175+ for f in $out/bin/*.pl ; do
176176+ mv $f $out/libexec/
177177+ makeWrapper ${perlBin} $f \
178178+ --prefix PATH : $out/bin \
179179+ --add-flags "$perlFlags $out/libexec/$(basename $f)"
180180+ done
181181+182182+ ln -s $out/share/zoneminder/www $out/share/zoneminder/www/zm
183183+ '';
184184+185185+ meta = with stdenv.lib; {
186186+ description = "Video surveillance software system";
187187+ homepage = https://zoneminder.com;
188188+ license = licenses.gpl3;
189189+ maintainers = with maintainers; [ peterhoeg ];
190190+ platforms = platforms.unix;
191191+ };
192192+}
+9-5
pkgs/tools/admin/pulumi/default.nix
···11-{ stdenv, fetchurl }:
11+{ lib, stdenv, fetchurl, autoPatchelfHook }:
22+33+with lib;
2435let
4655- version = "0.16.7";
77+ version = "0.16.11";
6879 # switch the dropdown to “manual” on https://pulumi.io/quickstart/install.html # TODO: update script
810 pulumiArchPackage = {
911 "x86_64-linux" = {
1012 url = "https://get.pulumi.com/releases/sdk/pulumi-v${version}-linux-x64.tar.gz";
1111- sha256 = "1l1cn8pk05vl7vpmhny9rlz1hj0iqclqjj1r2q12qip7f4qkgsfw";
1313+ sha256 = "176nwqp1dd8vdpl4qajaq2w458f8pgavwvwd93lgnccqw3cznv75";
1214 };
1315 "x86_64-darwin" = {
1416 url = "https://get.pulumi.com/releases/sdk/pulumi-v${version}-darwin-x64.tar.gz";
1515- sha256 = "0p07jvgy0xl524fgb5d9wijxa91isv4h4mcn9qghycqj90yqnjhx";
1717+ sha256 = "1mkz9bkkvpvbpzfnvwpx4892zd05bvjz5rbfwhwzm3wzfcjjs16i";
1618 };
1719 };
1820···2729 cp * $out/bin/
2830 '';
29313030- meta = with stdenv.lib; {
3232+ buildInputs = optionals stdenv.isLinux [ autoPatchelfHook ];
3333+3434+ meta = {
3135 homepage = https://pulumi.io/;
3236 description = "Pulumi is a cloud development platform that makes creating cloud programs easy and productive";
3337 license = with licenses; [ asl20 ];
···1919 # The websites youtube-dl deals with are a very moving target. That means that
2020 # downloads break constantly. Because of that, updates should always be backported
2121 # to the latest stable release.
2222- version = "2019.01.16";
2222+ version = "2019.01.17";
23232424 src = fetchurl {
2525 url = "https://yt-dl.org/downloads/${version}/${pname}-${version}.tar.gz";
2626- sha256 = "1dhbr5n0l6dgjp1620jp30kaizrzagacrj64gd9pwy1916kjm7si";
2626+ sha256 = "0fxajwv81b0bjw9qlwmxd4r93yp5nnqll79vhic0vy72ii0093r7";
2727 };
28282929 nativeBuildInputs = [ makeWrapper ];